@flanksource/clicky-ui 0.3.17 → 0.3.19

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 (923) hide show
  1. package/dist/ai.cjs +12 -6
  2. package/dist/ai.cjs.map +1 -1
  3. package/dist/ai.js +10 -4
  4. package/dist/ai.js.map +1 -1
  5. package/dist/chat.cjs +36 -0
  6. package/dist/chat.cjs.map +1 -1
  7. package/dist/chat.js +37 -1
  8. package/dist/chat.js.map +1 -1
  9. package/dist/components/Combobox.cjs +122 -153
  10. package/dist/components/Combobox.cjs.map +1 -1
  11. package/dist/components/Combobox.d.ts.map +1 -1
  12. package/dist/components/Combobox.js +124 -155
  13. package/dist/components/Combobox.js.map +1 -1
  14. package/dist/components/ComboboxControl.cjs +145 -0
  15. package/dist/components/ComboboxControl.cjs.map +1 -0
  16. package/dist/components/ComboboxControl.d.ts +37 -0
  17. package/dist/components/ComboboxControl.d.ts.map +1 -0
  18. package/dist/components/ComboboxControl.js +145 -0
  19. package/dist/components/ComboboxControl.js.map +1 -0
  20. package/dist/components/ComboboxMenu.cjs +35 -14
  21. package/dist/components/ComboboxMenu.cjs.map +1 -1
  22. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  23. package/dist/components/ComboboxMenu.js +35 -14
  24. package/dist/components/ComboboxMenu.js.map +1 -1
  25. package/dist/components/ComboboxTags.cjs +40 -0
  26. package/dist/components/ComboboxTags.cjs.map +1 -0
  27. package/dist/components/ComboboxTags.d.ts +8 -0
  28. package/dist/components/ComboboxTags.d.ts.map +1 -0
  29. package/dist/components/ComboboxTags.js +40 -0
  30. package/dist/components/ComboboxTags.js.map +1 -0
  31. package/dist/components/EndpointSelector.model.cjs +96 -0
  32. package/dist/components/EndpointSelector.model.cjs.map +1 -0
  33. package/dist/components/EndpointSelector.model.d.ts +2 -0
  34. package/dist/components/EndpointSelector.model.d.ts.map +1 -1
  35. package/dist/components/EndpointSelector.model.js +96 -0
  36. package/dist/components/EndpointSelector.model.js.map +1 -0
  37. package/dist/components/ErrorWrapper.cjs +168 -0
  38. package/dist/components/ErrorWrapper.cjs.map +1 -0
  39. package/dist/components/ErrorWrapper.d.ts +19 -0
  40. package/dist/components/ErrorWrapper.d.ts.map +1 -0
  41. package/dist/components/ErrorWrapper.js +168 -0
  42. package/dist/components/ErrorWrapper.js.map +1 -0
  43. package/dist/components/FilterBar.cjs +116 -4
  44. package/dist/components/FilterBar.cjs.map +1 -1
  45. package/dist/components/FilterBar.d.ts +37 -2
  46. package/dist/components/FilterBar.d.ts.map +1 -1
  47. package/dist/components/FilterBar.js +116 -4
  48. package/dist/components/FilterBar.js.map +1 -1
  49. package/dist/components/JSONPathField.cjs +112 -0
  50. package/dist/components/JSONPathField.cjs.map +1 -0
  51. package/dist/components/JSONPathField.d.ts +36 -0
  52. package/dist/components/JSONPathField.d.ts.map +1 -0
  53. package/dist/components/JSONPathField.js +112 -0
  54. package/dist/components/JSONPathField.js.map +1 -0
  55. package/dist/components/JSONPathPlayground.cjs +225 -0
  56. package/dist/components/JSONPathPlayground.cjs.map +1 -0
  57. package/dist/components/JSONPathPlayground.d.ts +59 -0
  58. package/dist/components/JSONPathPlayground.d.ts.map +1 -0
  59. package/dist/components/JSONPathPlayground.js +225 -0
  60. package/dist/components/JSONPathPlayground.js.map +1 -0
  61. package/dist/components/JsonSchemaForm.cjs +8 -4
  62. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  63. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  64. package/dist/components/JsonSchemaForm.js +8 -4
  65. package/dist/components/JsonSchemaForm.js.map +1 -1
  66. package/dist/components/OnePasswordSelector.cjs +178 -0
  67. package/dist/components/OnePasswordSelector.cjs.map +1 -0
  68. package/dist/components/OnePasswordSelector.d.ts +8 -0
  69. package/dist/components/OnePasswordSelector.d.ts.map +1 -0
  70. package/dist/components/OnePasswordSelector.js +178 -0
  71. package/dist/components/OnePasswordSelector.js.map +1 -0
  72. package/dist/components/OnePasswordSelector.model.cjs +31 -0
  73. package/dist/components/OnePasswordSelector.model.cjs.map +1 -0
  74. package/dist/components/OnePasswordSelector.model.d.ts +27 -0
  75. package/dist/components/OnePasswordSelector.model.d.ts.map +1 -0
  76. package/dist/components/OnePasswordSelector.model.js +31 -0
  77. package/dist/components/OnePasswordSelector.model.js.map +1 -0
  78. package/dist/components/SecretFormField.cjs +142 -0
  79. package/dist/components/SecretFormField.cjs.map +1 -0
  80. package/dist/components/SecretFormField.d.ts +9 -0
  81. package/dist/components/SecretFormField.d.ts.map +1 -0
  82. package/dist/components/SecretFormField.js +142 -0
  83. package/dist/components/SecretFormField.js.map +1 -0
  84. package/dist/components/SecretKeySelector.cjs +20 -14
  85. package/dist/components/SecretKeySelector.cjs.map +1 -1
  86. package/dist/components/SecretKeySelector.d.ts +4 -1
  87. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  88. package/dist/components/SecretKeySelector.js +20 -14
  89. package/dist/components/SecretKeySelector.js.map +1 -1
  90. package/dist/components/TreePickerField.cjs +71 -27
  91. package/dist/components/TreePickerField.cjs.map +1 -1
  92. package/dist/components/TreePickerField.d.ts +31 -2
  93. package/dist/components/TreePickerField.d.ts.map +1 -1
  94. package/dist/components/TreePickerField.js +72 -28
  95. package/dist/components/TreePickerField.js.map +1 -1
  96. package/dist/components/TriStateToggle.cjs +53 -0
  97. package/dist/components/TriStateToggle.cjs.map +1 -0
  98. package/dist/components/TriStateToggle.d.ts +27 -0
  99. package/dist/components/TriStateToggle.d.ts.map +1 -0
  100. package/dist/components/TriStateToggle.js +53 -0
  101. package/dist/components/TriStateToggle.js.map +1 -0
  102. package/dist/components/combobox-types.d.ts +25 -1
  103. package/dist/components/combobox-types.d.ts.map +1 -1
  104. package/dist/components/combobox-utils.cjs +26 -0
  105. package/dist/components/combobox-utils.cjs.map +1 -1
  106. package/dist/components/combobox-utils.d.ts +10 -0
  107. package/dist/components/combobox-utils.d.ts.map +1 -1
  108. package/dist/components/combobox-utils.js +26 -0
  109. package/dist/components/combobox-utils.js.map +1 -1
  110. package/dist/components/filter-bar-utils.cjs +12 -0
  111. package/dist/components/filter-bar-utils.cjs.map +1 -1
  112. package/dist/components/filter-bar-utils.d.ts.map +1 -1
  113. package/dist/components/filter-bar-utils.js +12 -0
  114. package/dist/components/filter-bar-utils.js.map +1 -1
  115. package/dist/components/jotai-bindings-core.cjs.map +1 -1
  116. package/dist/components/jotai-bindings-core.d.ts +4 -1
  117. package/dist/components/jotai-bindings-core.d.ts.map +1 -1
  118. package/dist/components/jotai-bindings-core.js.map +1 -1
  119. package/dist/components/json-schema-form-accordion-array.cjs +290 -0
  120. package/dist/components/json-schema-form-accordion-array.cjs.map +1 -0
  121. package/dist/components/json-schema-form-accordion-array.d.ts +7 -0
  122. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -0
  123. package/dist/components/json-schema-form-accordion-array.js +290 -0
  124. package/dist/components/json-schema-form-accordion-array.js.map +1 -0
  125. package/dist/components/json-schema-form-array.cjs +99 -110
  126. package/dist/components/json-schema-form-array.cjs.map +1 -1
  127. package/dist/components/json-schema-form-array.d.ts +1 -1
  128. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  129. package/dist/components/json-schema-form-array.js +98 -109
  130. package/dist/components/json-schema-form-array.js.map +1 -1
  131. package/dist/components/json-schema-form-error-display.cjs +4 -2
  132. package/dist/components/json-schema-form-error-display.cjs.map +1 -1
  133. package/dist/components/json-schema-form-error-display.d.ts +4 -2
  134. package/dist/components/json-schema-form-error-display.d.ts.map +1 -1
  135. package/dist/components/json-schema-form-error-display.js +4 -2
  136. package/dist/components/json-schema-form-error-display.js.map +1 -1
  137. package/dist/components/json-schema-form-extensions.cjs +10 -0
  138. package/dist/components/json-schema-form-extensions.cjs.map +1 -0
  139. package/dist/components/json-schema-form-extensions.d.ts +8 -0
  140. package/dist/components/json-schema-form-extensions.d.ts.map +1 -0
  141. package/dist/components/json-schema-form-extensions.js +10 -0
  142. package/dist/components/json-schema-form-extensions.js.map +1 -0
  143. package/dist/components/json-schema-form-fields.cjs +25 -101
  144. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  145. package/dist/components/json-schema-form-fields.d.ts +1 -32
  146. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  147. package/dist/components/json-schema-form-fields.js +28 -104
  148. package/dist/components/json-schema-form-fields.js.map +1 -1
  149. package/dist/components/json-schema-form-item-summary.cjs +131 -0
  150. package/dist/components/json-schema-form-item-summary.cjs.map +1 -0
  151. package/dist/components/json-schema-form-item-summary.d.ts +13 -0
  152. package/dist/components/json-schema-form-item-summary.d.ts.map +1 -0
  153. package/dist/components/json-schema-form-item-summary.js +131 -0
  154. package/dist/components/json-schema-form-item-summary.js.map +1 -0
  155. package/dist/components/json-schema-form-layout.cjs +156 -0
  156. package/dist/components/json-schema-form-layout.cjs.map +1 -0
  157. package/dist/components/json-schema-form-layout.d.ts +43 -0
  158. package/dist/components/json-schema-form-layout.d.ts.map +1 -0
  159. package/dist/components/json-schema-form-layout.js +156 -0
  160. package/dist/components/json-schema-form-layout.js.map +1 -0
  161. package/dist/components/json-schema-form-lookup-tree.cjs +149 -0
  162. package/dist/components/json-schema-form-lookup-tree.cjs.map +1 -0
  163. package/dist/components/json-schema-form-lookup-tree.d.ts +22 -0
  164. package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -0
  165. package/dist/components/json-schema-form-lookup-tree.js +149 -0
  166. package/dist/components/json-schema-form-lookup-tree.js.map +1 -0
  167. package/dist/components/json-schema-form-object.cjs +11 -4
  168. package/dist/components/json-schema-form-object.cjs.map +1 -1
  169. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  170. package/dist/components/json-schema-form-object.js +11 -4
  171. package/dist/components/json-schema-form-object.js.map +1 -1
  172. package/dist/components/json-schema-form-render.cjs +53 -29
  173. package/dist/components/json-schema-form-render.cjs.map +1 -1
  174. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  175. package/dist/components/json-schema-form-render.js +53 -29
  176. package/dist/components/json-schema-form-render.js.map +1 -1
  177. package/dist/components/json-schema-form-resolve.cjs +62 -13
  178. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  179. package/dist/components/json-schema-form-resolve.d.ts +1 -0
  180. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  181. package/dist/components/json-schema-form-resolve.js +62 -13
  182. package/dist/components/json-schema-form-resolve.js.map +1 -1
  183. package/dist/components/json-schema-form-table-array.cjs +123 -0
  184. package/dist/components/json-schema-form-table-array.cjs.map +1 -0
  185. package/dist/components/json-schema-form-table-array.d.ts +7 -0
  186. package/dist/components/json-schema-form-table-array.d.ts.map +1 -0
  187. package/dist/components/json-schema-form-table-array.js +123 -0
  188. package/dist/components/json-schema-form-table-array.js.map +1 -0
  189. package/dist/components/json-schema-form-tone.cjs +34 -0
  190. package/dist/components/json-schema-form-tone.cjs.map +1 -0
  191. package/dist/components/json-schema-form-tone.d.ts +8 -0
  192. package/dist/components/json-schema-form-tone.d.ts.map +1 -0
  193. package/dist/components/json-schema-form-tone.js +34 -0
  194. package/dist/components/json-schema-form-tone.js.map +1 -0
  195. package/dist/components/json-schema-form-types.d.ts +88 -10
  196. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  197. package/dist/components/json-schema-form-utils.cjs +47 -4
  198. package/dist/components/json-schema-form-utils.cjs.map +1 -1
  199. package/dist/components/json-schema-form-utils.d.ts +19 -4
  200. package/dist/components/json-schema-form-utils.d.ts.map +1 -1
  201. package/dist/components/json-schema-form-utils.js +47 -4
  202. package/dist/components/json-schema-form-utils.js.map +1 -1
  203. package/dist/components/jsonPathTree.cjs +189 -0
  204. package/dist/components/jsonPathTree.cjs.map +1 -0
  205. package/dist/components/jsonPathTree.d.ts +92 -0
  206. package/dist/components/jsonPathTree.d.ts.map +1 -0
  207. package/dist/components/jsonPathTree.js +189 -0
  208. package/dist/components/jsonPathTree.js.map +1 -0
  209. package/dist/components/secret-form-extension.cjs +30 -0
  210. package/dist/components/secret-form-extension.cjs.map +1 -0
  211. package/dist/components/secret-form-extension.d.ts +23 -0
  212. package/dist/components/secret-form-extension.d.ts.map +1 -0
  213. package/dist/components/secret-form-extension.js +30 -0
  214. package/dist/components/secret-form-extension.js.map +1 -0
  215. package/dist/components/tri-state.cjs +8 -0
  216. package/dist/components/tri-state.cjs.map +1 -0
  217. package/dist/components/tri-state.d.ts +5 -0
  218. package/dist/components/tri-state.d.ts.map +1 -0
  219. package/dist/components/tri-state.js +8 -0
  220. package/dist/components/tri-state.js.map +1 -0
  221. package/dist/components/useComboboxLayout.cjs +59 -0
  222. package/dist/components/useComboboxLayout.cjs.map +1 -0
  223. package/dist/components/useComboboxLayout.d.ts +5 -0
  224. package/dist/components/useComboboxLayout.d.ts.map +1 -0
  225. package/dist/components/useComboboxLayout.js +59 -0
  226. package/dist/components/useComboboxLayout.js.map +1 -0
  227. package/dist/components.cjs +37 -0
  228. package/dist/components.cjs.map +1 -1
  229. package/dist/components.d.ts +20 -4
  230. package/dist/components.d.ts.map +1 -1
  231. package/dist/components.js +38 -1
  232. package/dist/components.js.map +1 -1
  233. package/dist/data/Clicky.cjs +51 -2
  234. package/dist/data/Clicky.cjs.map +1 -1
  235. package/dist/data/Clicky.d.ts +10 -1
  236. package/dist/data/Clicky.d.ts.map +1 -1
  237. package/dist/data/Clicky.js +51 -2
  238. package/dist/data/Clicky.js.map +1 -1
  239. package/dist/data/DataTable.cjs +185 -53
  240. package/dist/data/DataTable.cjs.map +1 -1
  241. package/dist/data/DataTable.d.ts +63 -3
  242. package/dist/data/DataTable.d.ts.map +1 -1
  243. package/dist/data/DataTable.js +185 -53
  244. package/dist/data/DataTable.js.map +1 -1
  245. package/dist/data/LogsTable.cjs +10 -1
  246. package/dist/data/LogsTable.cjs.map +1 -1
  247. package/dist/data/LogsTable.d.ts +3 -1
  248. package/dist/data/LogsTable.d.ts.map +1 -1
  249. package/dist/data/LogsTable.js +10 -1
  250. package/dist/data/LogsTable.js.map +1 -1
  251. package/dist/data/TaskExecDetails.cjs +40 -0
  252. package/dist/data/TaskExecDetails.cjs.map +1 -0
  253. package/dist/data/TaskExecDetails.d.ts +5 -0
  254. package/dist/data/TaskExecDetails.d.ts.map +1 -0
  255. package/dist/data/TaskExecDetails.js +40 -0
  256. package/dist/data/TaskExecDetails.js.map +1 -0
  257. package/dist/data/TaskManager.cjs +99 -14
  258. package/dist/data/TaskManager.cjs.map +1 -1
  259. package/dist/data/TaskManager.d.ts.map +1 -1
  260. package/dist/data/TaskManager.js +100 -15
  261. package/dist/data/TaskManager.js.map +1 -1
  262. package/dist/data/TaskProgress.cjs +59 -14
  263. package/dist/data/TaskProgress.cjs.map +1 -1
  264. package/dist/data/TaskProgress.d.ts +2 -1
  265. package/dist/data/TaskProgress.d.ts.map +1 -1
  266. package/dist/data/TaskProgress.js +59 -14
  267. package/dist/data/TaskProgress.js.map +1 -1
  268. package/dist/data/TaskSnapshot.cjs.map +1 -1
  269. package/dist/data/TaskSnapshot.d.ts +12 -1
  270. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  271. package/dist/data/TaskSnapshot.js.map +1 -1
  272. package/dist/data/TreeNode.cjs +3 -0
  273. package/dist/data/TreeNode.cjs.map +1 -1
  274. package/dist/data/TreeNode.d.ts.map +1 -1
  275. package/dist/data/TreeNode.js +3 -0
  276. package/dist/data/TreeNode.js.map +1 -1
  277. package/dist/data/ai/AdvancedChatConfig.cjs +289 -0
  278. package/dist/data/ai/AdvancedChatConfig.cjs.map +1 -0
  279. package/dist/data/ai/AdvancedChatConfig.d.ts +21 -0
  280. package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -0
  281. package/dist/data/ai/AdvancedChatConfig.js +289 -0
  282. package/dist/data/ai/AdvancedChatConfig.js.map +1 -0
  283. package/dist/data/ai/AdvancedCostsPanel.cjs +120 -0
  284. package/dist/data/ai/AdvancedCostsPanel.cjs.map +1 -0
  285. package/dist/data/ai/AdvancedCostsPanel.d.ts +16 -0
  286. package/dist/data/ai/AdvancedCostsPanel.d.ts.map +1 -0
  287. package/dist/data/ai/AdvancedCostsPanel.js +120 -0
  288. package/dist/data/ai/AdvancedCostsPanel.js.map +1 -0
  289. package/dist/data/ai/ChatWindow.catalogs.cjs +74 -0
  290. package/dist/data/ai/ChatWindow.catalogs.cjs.map +1 -0
  291. package/dist/data/ai/ChatWindow.catalogs.d.ts +16 -0
  292. package/dist/data/ai/ChatWindow.catalogs.d.ts.map +1 -0
  293. package/dist/data/ai/ChatWindow.catalogs.js +74 -0
  294. package/dist/data/ai/ChatWindow.catalogs.js.map +1 -0
  295. package/dist/data/ai/ChatWindow.cjs +78 -100
  296. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  297. package/dist/data/ai/ChatWindow.d.ts +1 -1
  298. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  299. package/dist/data/ai/ChatWindow.js +80 -102
  300. package/dist/data/ai/ChatWindow.js.map +1 -1
  301. package/dist/data/ai/ChatWindow.preferences.cjs.map +1 -1
  302. package/dist/data/ai/ChatWindow.preferences.d.ts +2 -4
  303. package/dist/data/ai/ChatWindow.preferences.d.ts.map +1 -1
  304. package/dist/data/ai/ChatWindow.preferences.js.map +1 -1
  305. package/dist/data/ai/ChatWindow.runtime.cjs +120 -0
  306. package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -0
  307. package/dist/data/ai/ChatWindow.runtime.d.ts +20 -0
  308. package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -0
  309. package/dist/data/ai/ChatWindow.runtime.js +120 -0
  310. package/dist/data/ai/ChatWindow.runtime.js.map +1 -0
  311. package/dist/data/ai/ChatWindow.thread.cjs +1 -1
  312. package/dist/data/ai/ChatWindow.thread.cjs.map +1 -1
  313. package/dist/data/ai/ChatWindow.thread.js +1 -1
  314. package/dist/data/ai/ChatWindow.thread.js.map +1 -1
  315. package/dist/data/ai/ChatWindow.tool-catalog.cjs +20 -0
  316. package/dist/data/ai/ChatWindow.tool-catalog.cjs.map +1 -1
  317. package/dist/data/ai/ChatWindow.tool-catalog.d.ts +17 -1
  318. package/dist/data/ai/ChatWindow.tool-catalog.d.ts.map +1 -1
  319. package/dist/data/ai/ChatWindow.tool-catalog.js +20 -0
  320. package/dist/data/ai/ChatWindow.tool-catalog.js.map +1 -1
  321. package/dist/data/ai/ChatWindow.types.d.ts +13 -5
  322. package/dist/data/ai/ChatWindow.types.d.ts.map +1 -1
  323. package/dist/data/ai/ChatWindowManager.cjs +3 -1
  324. package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
  325. package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
  326. package/dist/data/ai/ChatWindowManager.js +3 -1
  327. package/dist/data/ai/ChatWindowManager.js.map +1 -1
  328. package/dist/data/ai/PromptPicker/PromptPicker.cjs +1 -1
  329. package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
  330. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +1 -1
  331. package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
  332. package/dist/data/ai/PromptPicker/PromptPicker.js +1 -1
  333. package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
  334. package/dist/data/ai/PromptRunEditor/index.cjs +2 -2
  335. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  336. package/dist/data/ai/PromptRunEditor/index.d.ts +1 -1
  337. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  338. package/dist/data/ai/PromptRunEditor/index.js +2 -2
  339. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  340. package/dist/data/ai/RuntimeModePicker.cjs +1 -1
  341. package/dist/data/ai/RuntimeModePicker.cjs.map +1 -1
  342. package/dist/data/ai/RuntimeModePicker.d.ts +1 -1
  343. package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
  344. package/dist/data/ai/RuntimeModePicker.js +1 -1
  345. package/dist/data/ai/RuntimeModePicker.js.map +1 -1
  346. package/dist/data/ai/SessionInspector.files.cjs +26 -43
  347. package/dist/data/ai/SessionInspector.files.cjs.map +1 -1
  348. package/dist/data/ai/SessionInspector.files.d.ts.map +1 -1
  349. package/dist/data/ai/SessionInspector.files.js +26 -43
  350. package/dist/data/ai/SessionInspector.files.js.map +1 -1
  351. package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
  352. package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
  353. package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
  354. package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
  355. package/dist/data/ai/SessionInspector.model.cjs +1 -1
  356. package/dist/data/ai/SessionInspector.model.cjs.map +1 -1
  357. package/dist/data/ai/SessionInspector.model.js +1 -1
  358. package/dist/data/ai/SessionInspector.model.js.map +1 -1
  359. package/dist/data/ai/SessionViewer.rows.cjs +4 -16
  360. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
  361. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  362. package/dist/data/ai/SessionViewer.rows.js +4 -16
  363. package/dist/data/ai/SessionViewer.rows.js.map +1 -1
  364. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +12 -3
  365. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
  366. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +1 -1
  367. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
  368. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +12 -3
  369. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
  370. package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -1
  371. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +1 -1
  372. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
  373. package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -1
  374. package/dist/data/ai/SpecRuntimeEditor/fields.js +1 -1
  375. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  376. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +2 -2
  377. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  378. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  379. package/dist/data/ai/ThreadPicker.cjs +65 -3
  380. package/dist/data/ai/ThreadPicker.cjs.map +1 -1
  381. package/dist/data/ai/ThreadPicker.d.ts +11 -5
  382. package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
  383. package/dist/data/ai/ThreadPicker.js +65 -3
  384. package/dist/data/ai/ThreadPicker.js.map +1 -1
  385. package/dist/data/ai/ToolPreferences.cjs +65 -685
  386. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  387. package/dist/data/ai/ToolPreferences.d.ts +15 -17
  388. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  389. package/dist/data/ai/ToolPreferences.js +64 -683
  390. package/dist/data/ai/ToolPreferences.js.map +1 -1
  391. package/dist/data/ai/ToolPreferences.model.cjs +148 -0
  392. package/dist/data/ai/ToolPreferences.model.cjs.map +1 -0
  393. package/dist/data/ai/ToolPreferences.model.d.ts +31 -0
  394. package/dist/data/ai/ToolPreferences.model.d.ts.map +1 -0
  395. package/dist/data/ai/ToolPreferences.model.js +148 -0
  396. package/dist/data/ai/ToolPreferences.model.js.map +1 -0
  397. package/dist/data/ai/ToolPreferencesList.cjs +270 -0
  398. package/dist/data/ai/ToolPreferencesList.cjs.map +1 -0
  399. package/dist/data/ai/ToolPreferencesList.d.ts +18 -0
  400. package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -0
  401. package/dist/data/ai/ToolPreferencesList.js +270 -0
  402. package/dist/data/ai/ToolPreferencesList.js.map +1 -0
  403. package/dist/data/ai/agent-action-icons.cjs.map +1 -1
  404. package/dist/data/ai/agent-action-icons.js.map +1 -1
  405. package/dist/data/ai/chat-window-context.cjs +4 -1
  406. package/dist/data/ai/chat-window-context.cjs.map +1 -1
  407. package/dist/data/ai/chat-window-context.d.ts +7 -0
  408. package/dist/data/ai/chat-window-context.d.ts.map +1 -1
  409. package/dist/data/ai/chat-window-context.js +4 -1
  410. package/dist/data/ai/chat-window-context.js.map +1 -1
  411. package/dist/data/ai/index.d.ts +6 -3
  412. package/dist/data/ai/index.d.ts.map +1 -1
  413. package/dist/data/ai/session-tones.cjs +67 -0
  414. package/dist/data/ai/session-tones.cjs.map +1 -0
  415. package/dist/data/ai/session-tones.d.ts +34 -0
  416. package/dist/data/ai/session-tones.d.ts.map +1 -0
  417. package/dist/data/ai/session-tones.js +67 -0
  418. package/dist/data/ai/session-tones.js.map +1 -0
  419. package/dist/data/ai/thread-costs.cjs +39 -0
  420. package/dist/data/ai/thread-costs.cjs.map +1 -0
  421. package/dist/data/ai/thread-costs.d.ts +62 -0
  422. package/dist/data/ai/thread-costs.d.ts.map +1 -0
  423. package/dist/data/ai/thread-costs.js +39 -0
  424. package/dist/data/ai/thread-costs.js.map +1 -0
  425. package/dist/data/cells/CellFilterActions.cjs +68 -0
  426. package/dist/data/cells/CellFilterActions.cjs.map +1 -0
  427. package/dist/data/cells/CellFilterActions.d.ts +15 -0
  428. package/dist/data/cells/CellFilterActions.d.ts.map +1 -0
  429. package/dist/data/cells/CellFilterActions.js +68 -0
  430. package/dist/data/cells/CellFilterActions.js.map +1 -0
  431. package/dist/data/chat/Chat.cjs +156 -113
  432. package/dist/data/chat/Chat.cjs.map +1 -1
  433. package/dist/data/chat/Chat.d.ts +24 -7
  434. package/dist/data/chat/Chat.d.ts.map +1 -1
  435. package/dist/data/chat/Chat.fixtures.cjs +48 -3
  436. package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
  437. package/dist/data/chat/Chat.fixtures.d.ts +1 -1
  438. package/dist/data/chat/Chat.fixtures.d.ts.map +1 -1
  439. package/dist/data/chat/Chat.fixtures.js +48 -3
  440. package/dist/data/chat/Chat.fixtures.js.map +1 -1
  441. package/dist/data/chat/Chat.js +160 -117
  442. package/dist/data/chat/Chat.js.map +1 -1
  443. package/dist/data/chat/Chat.runtime.cjs +63 -0
  444. package/dist/data/chat/Chat.runtime.cjs.map +1 -0
  445. package/dist/data/chat/Chat.runtime.d.ts +16 -0
  446. package/dist/data/chat/Chat.runtime.d.ts.map +1 -0
  447. package/dist/data/chat/Chat.runtime.js +63 -0
  448. package/dist/data/chat/Chat.runtime.js.map +1 -0
  449. package/dist/data/chat/ChatRuntimeToolbar.cjs +62 -0
  450. package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -0
  451. package/dist/data/chat/ChatRuntimeToolbar.d.ts +14 -0
  452. package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -0
  453. package/dist/data/chat/ChatRuntimeToolbar.js +62 -0
  454. package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -0
  455. package/dist/data/chat/ToolCall.cjs +86 -24
  456. package/dist/data/chat/ToolCall.cjs.map +1 -1
  457. package/dist/data/chat/ToolCall.d.ts +12 -5
  458. package/dist/data/chat/ToolCall.d.ts.map +1 -1
  459. package/dist/data/chat/ToolCall.js +86 -24
  460. package/dist/data/chat/ToolCall.js.map +1 -1
  461. package/dist/data/chat/approval.cjs +49 -6
  462. package/dist/data/chat/approval.cjs.map +1 -1
  463. package/dist/data/chat/approval.d.ts +11 -4
  464. package/dist/data/chat/approval.d.ts.map +1 -1
  465. package/dist/data/chat/approval.js +49 -6
  466. package/dist/data/chat/approval.js.map +1 -1
  467. package/dist/data/chat/index.d.ts +5 -3
  468. package/dist/data/chat/index.d.ts.map +1 -1
  469. package/dist/data/chat/tool-render/ToolArgs.cjs +50 -0
  470. package/dist/data/chat/tool-render/ToolArgs.cjs.map +1 -0
  471. package/dist/data/chat/tool-render/ToolArgs.d.ts +7 -0
  472. package/dist/data/chat/tool-render/ToolArgs.d.ts.map +1 -0
  473. package/dist/data/chat/tool-render/ToolArgs.js +50 -0
  474. package/dist/data/chat/tool-render/ToolArgs.js.map +1 -0
  475. package/dist/data/chat/tool-render/ToolParams.cjs +155 -0
  476. package/dist/data/chat/tool-render/ToolParams.cjs.map +1 -0
  477. package/dist/data/chat/tool-render/ToolParams.d.ts +20 -0
  478. package/dist/data/chat/tool-render/ToolParams.d.ts.map +1 -0
  479. package/dist/data/chat/tool-render/ToolParams.js +155 -0
  480. package/dist/data/chat/tool-render/ToolParams.js.map +1 -0
  481. package/dist/data/chat/tool-render/ToolValue.cjs +140 -0
  482. package/dist/data/chat/tool-render/ToolValue.cjs.map +1 -0
  483. package/dist/data/chat/tool-render/ToolValue.d.ts +16 -0
  484. package/dist/data/chat/tool-render/ToolValue.d.ts.map +1 -0
  485. package/dist/data/chat/tool-render/ToolValue.js +140 -0
  486. package/dist/data/chat/tool-render/ToolValue.js.map +1 -0
  487. package/dist/data/chat/tool-render/adapter.cjs +48 -0
  488. package/dist/data/chat/tool-render/adapter.cjs.map +1 -0
  489. package/dist/data/chat/tool-render/adapter.d.ts +57 -0
  490. package/dist/data/chat/tool-render/adapter.d.ts.map +1 -0
  491. package/dist/data/chat/tool-render/adapter.js +48 -0
  492. package/dist/data/chat/tool-render/adapter.js.map +1 -0
  493. package/dist/data/chat/tool-render/context.cjs +16 -0
  494. package/dist/data/chat/tool-render/context.cjs.map +1 -0
  495. package/dist/data/chat/tool-render/context.d.ts +6 -0
  496. package/dist/data/chat/tool-render/context.d.ts.map +1 -0
  497. package/dist/data/chat/tool-render/context.js +16 -0
  498. package/dist/data/chat/tool-render/context.js.map +1 -0
  499. package/dist/data/chat/tool-render/defaults.cjs +45 -0
  500. package/dist/data/chat/tool-render/defaults.cjs.map +1 -0
  501. package/dist/data/chat/tool-render/defaults.d.ts +11 -0
  502. package/dist/data/chat/tool-render/defaults.d.ts.map +1 -0
  503. package/dist/data/chat/tool-render/defaults.js +45 -0
  504. package/dist/data/chat/tool-render/defaults.js.map +1 -0
  505. package/dist/data/chat/tool-render/index.d.ts +13 -0
  506. package/dist/data/chat/tool-render/index.d.ts.map +1 -0
  507. package/dist/data/chat/tool-render/known-tool-views.cjs +208 -0
  508. package/dist/data/chat/tool-render/known-tool-views.cjs.map +1 -0
  509. package/dist/data/chat/tool-render/known-tool-views.d.ts +10 -0
  510. package/dist/data/chat/tool-render/known-tool-views.d.ts.map +1 -0
  511. package/dist/data/chat/tool-render/known-tool-views.js +208 -0
  512. package/dist/data/chat/tool-render/known-tool-views.js.map +1 -0
  513. package/dist/data/chat/tool-render/known-tools.cjs +58 -0
  514. package/dist/data/chat/tool-render/known-tools.cjs.map +1 -0
  515. package/dist/data/chat/tool-render/known-tools.d.ts +4 -0
  516. package/dist/data/chat/tool-render/known-tools.d.ts.map +1 -0
  517. package/dist/data/chat/tool-render/known-tools.js +58 -0
  518. package/dist/data/chat/tool-render/known-tools.js.map +1 -0
  519. package/dist/data/chat/tool-render/normalize.cjs +42 -0
  520. package/dist/data/chat/tool-render/normalize.cjs.map +1 -0
  521. package/dist/data/chat/tool-render/normalize.d.ts +13 -0
  522. package/dist/data/chat/tool-render/normalize.d.ts.map +1 -0
  523. package/dist/data/chat/tool-render/normalize.js +42 -0
  524. package/dist/data/chat/tool-render/normalize.js.map +1 -0
  525. package/dist/data/chat/tool-render/registry.cjs +14 -0
  526. package/dist/data/chat/tool-render/registry.cjs.map +1 -0
  527. package/dist/data/chat/tool-render/registry.d.ts +7 -0
  528. package/dist/data/chat/tool-render/registry.d.ts.map +1 -0
  529. package/dist/data/chat/tool-render/registry.js +14 -0
  530. package/dist/data/chat/tool-render/registry.js.map +1 -0
  531. package/dist/data/chat/tool-render/schema.cjs +57 -0
  532. package/dist/data/chat/tool-render/schema.cjs.map +1 -0
  533. package/dist/data/chat/tool-render/schema.d.ts +28 -0
  534. package/dist/data/chat/tool-render/schema.d.ts.map +1 -0
  535. package/dist/data/chat/tool-render/schema.js +57 -0
  536. package/dist/data/chat/tool-render/schema.js.map +1 -0
  537. package/dist/data/chat/tool-render/shape.cjs +94 -0
  538. package/dist/data/chat/tool-render/shape.cjs.map +1 -0
  539. package/dist/data/chat/tool-render/shape.d.ts +39 -0
  540. package/dist/data/chat/tool-render/shape.d.ts.map +1 -0
  541. package/dist/data/chat/tool-render/shape.js +94 -0
  542. package/dist/data/chat/tool-render/shape.js.map +1 -0
  543. package/dist/data/chat/tool-render/summary.cjs +34 -0
  544. package/dist/data/chat/tool-render/summary.cjs.map +1 -0
  545. package/dist/data/chat/tool-render/summary.d.ts +8 -0
  546. package/dist/data/chat/tool-render/summary.d.ts.map +1 -0
  547. package/dist/data/chat/tool-render/summary.js +34 -0
  548. package/dist/data/chat/tool-render/summary.js.map +1 -0
  549. package/dist/data/chat/types.cjs.map +1 -1
  550. package/dist/data/chat/types.d.ts +7 -0
  551. package/dist/data/chat/types.d.ts.map +1 -1
  552. package/dist/data/chat/types.js.map +1 -1
  553. package/dist/data/chat/usage-snapshot.cjs +17 -0
  554. package/dist/data/chat/usage-snapshot.cjs.map +1 -0
  555. package/dist/data/chat/usage-snapshot.d.ts +21 -0
  556. package/dist/data/chat/usage-snapshot.d.ts.map +1 -0
  557. package/dist/data/chat/usage-snapshot.js +17 -0
  558. package/dist/data/chat/usage-snapshot.js.map +1 -0
  559. package/dist/data/data-table-filter-values.cjs +103 -0
  560. package/dist/data/data-table-filter-values.cjs.map +1 -0
  561. package/dist/data/data-table-filter-values.d.ts +34 -0
  562. package/dist/data/data-table-filter-values.d.ts.map +1 -0
  563. package/dist/data/data-table-filter-values.js +103 -0
  564. package/dist/data/data-table-filter-values.js.map +1 -0
  565. package/dist/data/data-table-server-filters.cjs +165 -0
  566. package/dist/data/data-table-server-filters.cjs.map +1 -0
  567. package/dist/data/data-table-server-filters.d.ts +128 -0
  568. package/dist/data/data-table-server-filters.d.ts.map +1 -0
  569. package/dist/data/data-table-server-filters.js +165 -0
  570. package/dist/data/data-table-server-filters.js.map +1 -0
  571. package/dist/data/query-browser/QueryBrowser.cjs +204 -155
  572. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
  573. package/dist/data/query-browser/QueryBrowser.d.ts +2 -41
  574. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  575. package/dist/data/query-browser/QueryBrowser.editor.cjs +88 -0
  576. package/dist/data/query-browser/QueryBrowser.editor.cjs.map +1 -0
  577. package/dist/data/query-browser/QueryBrowser.editor.d.ts +12 -0
  578. package/dist/data/query-browser/QueryBrowser.editor.d.ts.map +1 -0
  579. package/dist/data/query-browser/QueryBrowser.editor.js +88 -0
  580. package/dist/data/query-browser/QueryBrowser.editor.js.map +1 -0
  581. package/dist/data/query-browser/QueryBrowser.js +205 -156
  582. package/dist/data/query-browser/QueryBrowser.js.map +1 -1
  583. package/dist/data/query-browser/QueryBrowser.types.cjs +11 -0
  584. package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -0
  585. package/dist/data/query-browser/QueryBrowser.types.d.ts +92 -0
  586. package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -0
  587. package/dist/data/query-browser/QueryBrowser.types.js +11 -0
  588. package/dist/data/query-browser/QueryBrowser.types.js.map +1 -0
  589. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs +56 -0
  590. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs.map +1 -0
  591. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +5 -0
  592. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -0
  593. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js +56 -0
  594. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js.map +1 -0
  595. package/dist/data/query-browser/QueryBrowserResults.cjs +80 -0
  596. package/dist/data/query-browser/QueryBrowserResults.cjs.map +1 -0
  597. package/dist/data/query-browser/QueryBrowserResults.d.ts +16 -0
  598. package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -0
  599. package/dist/data/query-browser/QueryBrowserResults.js +80 -0
  600. package/dist/data/query-browser/QueryBrowserResults.js.map +1 -0
  601. package/dist/data/query-browser/index.d.ts +2 -1
  602. package/dist/data/query-browser/index.d.ts.map +1 -1
  603. package/dist/data/runtime/ProviderStatusPanel.cjs +187 -0
  604. package/dist/data/runtime/ProviderStatusPanel.cjs.map +1 -0
  605. package/dist/data/runtime/ProviderStatusPanel.d.ts +10 -0
  606. package/dist/data/runtime/ProviderStatusPanel.d.ts.map +1 -0
  607. package/dist/data/runtime/ProviderStatusPanel.js +187 -0
  608. package/dist/data/runtime/ProviderStatusPanel.js.map +1 -0
  609. package/dist/data/runtime/RuntimeBar.cjs +147 -0
  610. package/dist/data/runtime/RuntimeBar.cjs.map +1 -0
  611. package/dist/data/{ai → runtime}/RuntimeBar.d.ts +8 -6
  612. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -0
  613. package/dist/data/runtime/RuntimeBar.js +147 -0
  614. package/dist/data/runtime/RuntimeBar.js.map +1 -0
  615. package/dist/data/runtime/RuntimeBar.model.cjs.map +1 -0
  616. package/dist/data/{ai → runtime}/RuntimeBar.model.d.ts +2 -2
  617. package/dist/data/runtime/RuntimeBar.model.d.ts.map +1 -0
  618. package/dist/data/runtime/RuntimeBar.model.js.map +1 -0
  619. package/dist/data/{ai → runtime}/RuntimeBarCombo.cjs +25 -30
  620. package/dist/data/runtime/RuntimeBarCombo.cjs.map +1 -0
  621. package/dist/data/{ai → runtime}/RuntimeBarCombo.d.ts +4 -3
  622. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -0
  623. package/dist/data/{ai → runtime}/RuntimeBarCombo.js +25 -30
  624. package/dist/data/runtime/RuntimeBarCombo.js.map +1 -0
  625. package/dist/data/{ai/RuntimeBar.cjs → runtime/RuntimeBarSegments.cjs} +54 -120
  626. package/dist/data/runtime/RuntimeBarSegments.cjs.map +1 -0
  627. package/dist/data/runtime/RuntimeBarSegments.d.ts +25 -0
  628. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -0
  629. package/dist/data/{ai/RuntimeBar.js → runtime/RuntimeBarSegments.js} +58 -124
  630. package/dist/data/runtime/RuntimeBarSegments.js.map +1 -0
  631. package/dist/data/runtime/availability.cjs +11 -0
  632. package/dist/data/runtime/availability.cjs.map +1 -0
  633. package/dist/data/runtime/availability.d.ts +6 -0
  634. package/dist/data/runtime/availability.d.ts.map +1 -0
  635. package/dist/data/runtime/availability.js +11 -0
  636. package/dist/data/runtime/availability.js.map +1 -0
  637. package/dist/data/runtime/model-capabilities.cjs.map +1 -0
  638. package/dist/data/runtime/model-capabilities.d.ts.map +1 -0
  639. package/dist/data/runtime/model-capabilities.js.map +1 -0
  640. package/dist/data/runtime/provider-status.cjs +106 -0
  641. package/dist/data/runtime/provider-status.cjs.map +1 -0
  642. package/dist/data/runtime/provider-status.d.ts +24 -0
  643. package/dist/data/runtime/provider-status.d.ts.map +1 -0
  644. package/dist/data/runtime/provider-status.js +106 -0
  645. package/dist/data/runtime/provider-status.js.map +1 -0
  646. package/dist/data/{ai → runtime}/runtime-mode.cjs +119 -27
  647. package/dist/data/runtime/runtime-mode.cjs.map +1 -0
  648. package/dist/data/{ai → runtime}/runtime-mode.d.ts +7 -1
  649. package/dist/data/runtime/runtime-mode.d.ts.map +1 -0
  650. package/dist/data/{ai → runtime}/runtime-mode.js +120 -28
  651. package/dist/data/runtime/runtime-mode.js.map +1 -0
  652. package/dist/data/task-exec-details.cjs +9 -0
  653. package/dist/data/task-exec-details.cjs.map +1 -0
  654. package/dist/data/task-exec-details.d.ts +3 -0
  655. package/dist/data/task-exec-details.d.ts.map +1 -0
  656. package/dist/data/task-exec-details.js +9 -0
  657. package/dist/data/task-exec-details.js.map +1 -0
  658. package/dist/data/task-query-keys.cjs +26 -0
  659. package/dist/data/task-query-keys.cjs.map +1 -0
  660. package/dist/data/task-query-keys.d.ts +27 -0
  661. package/dist/data/task-query-keys.d.ts.map +1 -0
  662. package/dist/data/task-query-keys.js +26 -0
  663. package/dist/data/task-query-keys.js.map +1 -0
  664. package/dist/data/version-info.cjs +3 -3
  665. package/dist/data/version-info.js +3 -3
  666. package/dist/data.cjs +18 -0
  667. package/dist/data.cjs.map +1 -1
  668. package/dist/data.d.ts +6 -2
  669. package/dist/data.d.ts.map +1 -1
  670. package/dist/data.js +18 -0
  671. package/dist/data.js.map +1 -1
  672. package/dist/hooks/use-hotkey.cjs +6 -1
  673. package/dist/hooks/use-hotkey.cjs.map +1 -1
  674. package/dist/hooks/use-hotkey.d.ts.map +1 -1
  675. package/dist/hooks/use-hotkey.js +6 -1
  676. package/dist/hooks/use-hotkey.js.map +1 -1
  677. package/dist/hooks/use-task-run.cjs +7 -4
  678. package/dist/hooks/use-task-run.cjs.map +1 -1
  679. package/dist/hooks/use-task-run.d.ts +12 -0
  680. package/dist/hooks/use-task-run.d.ts.map +1 -1
  681. package/dist/hooks/use-task-run.js +7 -4
  682. package/dist/hooks/use-task-run.js.map +1 -1
  683. package/dist/icons/index.d.ts +1 -0
  684. package/dist/icons/index.d.ts.map +1 -1
  685. package/dist/icons/registry.cjs +692 -0
  686. package/dist/icons/registry.cjs.map +1 -0
  687. package/dist/icons/registry.d.ts +21 -0
  688. package/dist/icons/registry.d.ts.map +1 -0
  689. package/dist/icons/registry.js +692 -0
  690. package/dist/icons/registry.js.map +1 -0
  691. package/dist/icons.cjs +3 -0
  692. package/dist/icons.cjs.map +1 -1
  693. package/dist/icons.js +4 -1
  694. package/dist/icons.js.map +1 -1
  695. package/dist/index.cjs +65 -0
  696. package/dist/index.cjs.map +1 -1
  697. package/dist/index.js +67 -2
  698. package/dist/index.js.map +1 -1
  699. package/dist/layout/AppShell.cjs +92 -56
  700. package/dist/layout/AppShell.cjs.map +1 -1
  701. package/dist/layout/AppShell.d.ts +49 -1
  702. package/dist/layout/AppShell.d.ts.map +1 -1
  703. package/dist/layout/AppShell.js +92 -56
  704. package/dist/layout/AppShell.js.map +1 -1
  705. package/dist/layout/AppShell.nav.cjs +144 -19
  706. package/dist/layout/AppShell.nav.cjs.map +1 -1
  707. package/dist/layout/AppShell.nav.d.ts +6 -1
  708. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  709. package/dist/layout/AppShell.nav.js +144 -19
  710. package/dist/layout/AppShell.nav.js.map +1 -1
  711. package/dist/layout/SplitPane.cjs +23 -7
  712. package/dist/layout/SplitPane.cjs.map +1 -1
  713. package/dist/layout/SplitPane.d.ts +3 -1
  714. package/dist/layout/SplitPane.d.ts.map +1 -1
  715. package/dist/layout/SplitPane.js +23 -7
  716. package/dist/layout/SplitPane.js.map +1 -1
  717. package/dist/lib/format.cjs +86 -4
  718. package/dist/lib/format.cjs.map +1 -1
  719. package/dist/lib/format.d.ts +69 -0
  720. package/dist/lib/format.d.ts.map +1 -1
  721. package/dist/lib/format.js +86 -4
  722. package/dist/lib/format.js.map +1 -1
  723. package/dist/lib/path-tree.cjs +69 -0
  724. package/dist/lib/path-tree.cjs.map +1 -0
  725. package/dist/lib/path-tree.d.ts +54 -0
  726. package/dist/lib/path-tree.d.ts.map +1 -0
  727. package/dist/lib/path-tree.js +69 -0
  728. package/dist/lib/path-tree.js.map +1 -0
  729. package/dist/monaco.d.ts +1 -0
  730. package/dist/monaco.d.ts.map +1 -1
  731. package/dist/overlay/DropdownMenuSubmenu.cjs +13 -7
  732. package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
  733. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  734. package/dist/overlay/DropdownMenuSubmenu.js +13 -7
  735. package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
  736. package/dist/overlay/Tour.cjs +173 -0
  737. package/dist/overlay/Tour.cjs.map +1 -0
  738. package/dist/overlay/Tour.d.ts +61 -0
  739. package/dist/overlay/Tour.d.ts.map +1 -0
  740. package/dist/overlay/Tour.js +173 -0
  741. package/dist/overlay/Tour.js.map +1 -0
  742. package/dist/overlay/TourCard.cjs +108 -0
  743. package/dist/overlay/TourCard.cjs.map +1 -0
  744. package/dist/overlay/TourCard.d.ts +23 -0
  745. package/dist/overlay/TourCard.d.ts.map +1 -0
  746. package/dist/overlay/TourCard.js +108 -0
  747. package/dist/overlay/TourCard.js.map +1 -0
  748. package/dist/overlay/TourProvider.cjs +160 -0
  749. package/dist/overlay/TourProvider.cjs.map +1 -0
  750. package/dist/overlay/TourProvider.d.ts +31 -0
  751. package/dist/overlay/TourProvider.d.ts.map +1 -0
  752. package/dist/overlay/TourProvider.js +160 -0
  753. package/dist/overlay/TourProvider.js.map +1 -0
  754. package/dist/overlay/TourSpotlight.cjs +47 -0
  755. package/dist/overlay/TourSpotlight.cjs.map +1 -0
  756. package/dist/overlay/TourSpotlight.d.ts +12 -0
  757. package/dist/overlay/TourSpotlight.d.ts.map +1 -0
  758. package/dist/overlay/TourSpotlight.js +47 -0
  759. package/dist/overlay/TourSpotlight.js.map +1 -0
  760. package/dist/overlay/modalStack.cjs +18 -4
  761. package/dist/overlay/modalStack.cjs.map +1 -1
  762. package/dist/overlay/modalStack.d.ts +10 -2
  763. package/dist/overlay/modalStack.d.ts.map +1 -1
  764. package/dist/overlay/modalStack.js +19 -5
  765. package/dist/overlay/modalStack.js.map +1 -1
  766. package/dist/overlay/tour-anchor.cjs +114 -0
  767. package/dist/overlay/tour-anchor.cjs.map +1 -0
  768. package/dist/overlay/tour-anchor.d.ts +30 -0
  769. package/dist/overlay/tour-anchor.d.ts.map +1 -0
  770. package/dist/overlay/tour-anchor.js +114 -0
  771. package/dist/overlay/tour-anchor.js.map +1 -0
  772. package/dist/overlay/tour-context.cjs +12 -0
  773. package/dist/overlay/tour-context.cjs.map +1 -0
  774. package/dist/overlay/tour-context.d.ts +40 -0
  775. package/dist/overlay/tour-context.d.ts.map +1 -0
  776. package/dist/overlay/tour-context.js +12 -0
  777. package/dist/overlay/tour-context.js.map +1 -0
  778. package/dist/overlay/tour-geometry.cjs +65 -0
  779. package/dist/overlay/tour-geometry.cjs.map +1 -0
  780. package/dist/overlay/tour-geometry.d.ts +47 -0
  781. package/dist/overlay/tour-geometry.d.ts.map +1 -0
  782. package/dist/overlay/tour-geometry.js +65 -0
  783. package/dist/overlay/tour-geometry.js.map +1 -0
  784. package/dist/overlay/tour-model.cjs +79 -0
  785. package/dist/overlay/tour-model.cjs.map +1 -0
  786. package/dist/overlay/tour-model.d.ts +29 -0
  787. package/dist/overlay/tour-model.d.ts.map +1 -0
  788. package/dist/overlay/tour-model.js +79 -0
  789. package/dist/overlay/tour-model.js.map +1 -0
  790. package/dist/overlay/tour-progress.cjs +54 -0
  791. package/dist/overlay/tour-progress.cjs.map +1 -0
  792. package/dist/overlay/tour-progress.d.ts +40 -0
  793. package/dist/overlay/tour-progress.d.ts.map +1 -0
  794. package/dist/overlay/tour-progress.js +54 -0
  795. package/dist/overlay/tour-progress.js.map +1 -0
  796. package/dist/overlay/tour-types.d.ts +144 -0
  797. package/dist/overlay/tour-types.d.ts.map +1 -0
  798. package/dist/overlay/use-tour-anchor.cjs +43 -0
  799. package/dist/overlay/use-tour-anchor.cjs.map +1 -0
  800. package/dist/overlay/use-tour-anchor.d.ts +23 -0
  801. package/dist/overlay/use-tour-anchor.d.ts.map +1 -0
  802. package/dist/overlay/use-tour-anchor.js +43 -0
  803. package/dist/overlay/use-tour-anchor.js.map +1 -0
  804. package/dist/overlay/use-tour-rect.cjs +33 -0
  805. package/dist/overlay/use-tour-rect.cjs.map +1 -0
  806. package/dist/overlay/use-tour-rect.d.ts +12 -0
  807. package/dist/overlay/use-tour-rect.d.ts.map +1 -0
  808. package/dist/overlay/use-tour-rect.js +33 -0
  809. package/dist/overlay/use-tour-rect.js.map +1 -0
  810. package/dist/overlay/use-tour-step.cjs +66 -0
  811. package/dist/overlay/use-tour-step.cjs.map +1 -0
  812. package/dist/overlay/use-tour-step.d.ts +45 -0
  813. package/dist/overlay/use-tour-step.d.ts.map +1 -0
  814. package/dist/overlay/use-tour-step.js +66 -0
  815. package/dist/overlay/use-tour-step.js.map +1 -0
  816. package/dist/overlay/zIndex.cjs +8 -0
  817. package/dist/overlay/zIndex.cjs.map +1 -1
  818. package/dist/overlay/zIndex.d.ts +8 -0
  819. package/dist/overlay/zIndex.d.ts.map +1 -1
  820. package/dist/overlay/zIndex.js +8 -0
  821. package/dist/overlay/zIndex.js.map +1 -1
  822. package/dist/rpc/CommandOutput.cjs +8 -0
  823. package/dist/rpc/CommandOutput.cjs.map +1 -1
  824. package/dist/rpc/CommandOutput.d.ts +4 -1
  825. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  826. package/dist/rpc/CommandOutput.js +8 -0
  827. package/dist/rpc/CommandOutput.js.map +1 -1
  828. package/dist/rpc/EntityExplorerApp.cjs +10 -16
  829. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  830. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  831. package/dist/rpc/EntityExplorerApp.js +10 -16
  832. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  833. package/dist/rpc/FilterForm.cjs +20 -0
  834. package/dist/rpc/FilterForm.cjs.map +1 -1
  835. package/dist/rpc/FilterForm.js +20 -0
  836. package/dist/rpc/FilterForm.js.map +1 -1
  837. package/dist/rpc/OperationActionBar.cjs +1 -1
  838. package/dist/rpc/OperationActionBar.cjs.map +1 -1
  839. package/dist/rpc/OperationActionBar.js +1 -1
  840. package/dist/rpc/OperationActionBar.js.map +1 -1
  841. package/dist/rpc/OperationCatalog.cjs +83 -7
  842. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  843. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  844. package/dist/rpc/OperationCatalog.js +84 -8
  845. package/dist/rpc/OperationCatalog.js.map +1 -1
  846. package/dist/rpc/OperationResultView.cjs +2 -0
  847. package/dist/rpc/OperationResultView.cjs.map +1 -1
  848. package/dist/rpc/OperationResultView.d.ts +6 -0
  849. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  850. package/dist/rpc/OperationResultView.js +2 -0
  851. package/dist/rpc/OperationResultView.js.map +1 -1
  852. package/dist/rpc/SchemaActionForm.cjs +2 -21
  853. package/dist/rpc/SchemaActionForm.cjs.map +1 -1
  854. package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
  855. package/dist/rpc/SchemaActionForm.js +3 -22
  856. package/dist/rpc/SchemaActionForm.js.map +1 -1
  857. package/dist/rpc/apiClient.cjs +16 -2
  858. package/dist/rpc/apiClient.cjs.map +1 -1
  859. package/dist/rpc/apiClient.d.ts.map +1 -1
  860. package/dist/rpc/apiClient.js +16 -2
  861. package/dist/rpc/apiClient.js.map +1 -1
  862. package/dist/rpc/formMetadata.cjs +123 -49
  863. package/dist/rpc/formMetadata.cjs.map +1 -1
  864. package/dist/rpc/formMetadata.d.ts +14 -6
  865. package/dist/rpc/formMetadata.d.ts.map +1 -1
  866. package/dist/rpc/formMetadata.js +121 -47
  867. package/dist/rpc/formMetadata.js.map +1 -1
  868. package/dist/rpc/operationFilterSearch.cjs +23 -0
  869. package/dist/rpc/operationFilterSearch.cjs.map +1 -0
  870. package/dist/rpc/operationFilterSearch.d.ts +22 -0
  871. package/dist/rpc/operationFilterSearch.d.ts.map +1 -0
  872. package/dist/rpc/operationFilterSearch.js +23 -0
  873. package/dist/rpc/operationFilterSearch.js.map +1 -0
  874. package/dist/rpc/operationLookupFetcher.cjs +28 -0
  875. package/dist/rpc/operationLookupFetcher.cjs.map +1 -0
  876. package/dist/rpc/operationLookupFetcher.d.ts +17 -0
  877. package/dist/rpc/operationLookupFetcher.d.ts.map +1 -0
  878. package/dist/rpc/operationLookupFetcher.js +28 -0
  879. package/dist/rpc/operationLookupFetcher.js.map +1 -0
  880. package/dist/rpc/surfaceNav.cjs +77 -0
  881. package/dist/rpc/surfaceNav.cjs.map +1 -0
  882. package/dist/rpc/surfaceNav.d.ts +19 -0
  883. package/dist/rpc/surfaceNav.d.ts.map +1 -0
  884. package/dist/rpc/surfaceNav.js +77 -0
  885. package/dist/rpc/surfaceNav.js.map +1 -0
  886. package/dist/rpc/types.cjs.map +1 -1
  887. package/dist/rpc/types.d.ts +21 -2
  888. package/dist/rpc/types.d.ts.map +1 -1
  889. package/dist/rpc/types.js.map +1 -1
  890. package/dist/rpc.cjs +2 -0
  891. package/dist/rpc.cjs.map +1 -1
  892. package/dist/rpc.d.ts +1 -0
  893. package/dist/rpc.d.ts.map +1 -1
  894. package/dist/rpc.js +2 -0
  895. package/dist/rpc.js.map +1 -1
  896. package/dist/styles.css +1 -1
  897. package/dist/utils.cjs +8 -0
  898. package/dist/utils.cjs.map +1 -1
  899. package/dist/utils.d.ts +2 -1
  900. package/dist/utils.d.ts.map +1 -1
  901. package/dist/utils.js +10 -2
  902. package/dist/utils.js.map +1 -1
  903. package/package.json +1 -1
  904. package/dist/data/ai/RuntimeBar.cjs.map +0 -1
  905. package/dist/data/ai/RuntimeBar.d.ts.map +0 -1
  906. package/dist/data/ai/RuntimeBar.js.map +0 -1
  907. package/dist/data/ai/RuntimeBar.model.cjs.map +0 -1
  908. package/dist/data/ai/RuntimeBar.model.d.ts.map +0 -1
  909. package/dist/data/ai/RuntimeBar.model.js.map +0 -1
  910. package/dist/data/ai/RuntimeBarCombo.cjs.map +0 -1
  911. package/dist/data/ai/RuntimeBarCombo.d.ts.map +0 -1
  912. package/dist/data/ai/RuntimeBarCombo.js.map +0 -1
  913. package/dist/data/ai/model-capabilities.cjs.map +0 -1
  914. package/dist/data/ai/model-capabilities.d.ts.map +0 -1
  915. package/dist/data/ai/model-capabilities.js.map +0 -1
  916. package/dist/data/ai/runtime-mode.cjs.map +0 -1
  917. package/dist/data/ai/runtime-mode.d.ts.map +0 -1
  918. package/dist/data/ai/runtime-mode.js.map +0 -1
  919. /package/dist/data/{ai → runtime}/RuntimeBar.model.cjs +0 -0
  920. /package/dist/data/{ai → runtime}/RuntimeBar.model.js +0 -0
  921. /package/dist/data/{ai → runtime}/model-capabilities.cjs +0 -0
  922. /package/dist/data/{ai → runtime}/model-capabilities.d.ts +0 -0
  923. /package/dist/data/{ai → runtime}/model-capabilities.js +0 -0
@@ -0,0 +1,43 @@
1
+ import { useState, useRef, useEffect } from "react";
2
+ import { resolveAnchor } from "./tour-anchor.js";
3
+ function prefersReducedMotion(element) {
4
+ var _a;
5
+ const view = element.ownerDocument.defaultView;
6
+ return ((_a = view == null ? void 0 : view.matchMedia) == null ? void 0 : _a.call(view, "(prefers-reduced-motion: reduce)").matches) ?? false;
7
+ }
8
+ function useTourAnchor(options) {
9
+ const { root, target, timeoutMs, scrollIntoView = true, key } = options;
10
+ const [result, setResult] = useState({ anchor: null, state: "idle" });
11
+ const scrollRef = useRef(scrollIntoView);
12
+ scrollRef.current = scrollIntoView;
13
+ useEffect(() => {
14
+ if (target === void 0) {
15
+ setResult({ anchor: null, state: "idle" });
16
+ return;
17
+ }
18
+ setResult({ anchor: null, state: "waiting" });
19
+ const controller = new AbortController();
20
+ void resolveAnchor({ root, target, timeoutMs, signal: controller.signal }).then(
21
+ (resolution) => {
22
+ if (controller.signal.aborted) return;
23
+ if (resolution.status !== "found") {
24
+ setResult({ anchor: null, state: "missing" });
25
+ return;
26
+ }
27
+ setResult({ anchor: resolution.element, state: "found" });
28
+ if (!scrollRef.current || !resolution.element.scrollIntoView) return;
29
+ resolution.element.scrollIntoView({
30
+ block: "center",
31
+ inline: "nearest",
32
+ behavior: prefersReducedMotion(resolution.element) ? "auto" : "smooth"
33
+ });
34
+ }
35
+ );
36
+ return () => controller.abort();
37
+ }, [key, timeoutMs]);
38
+ return result;
39
+ }
40
+ export {
41
+ useTourAnchor
42
+ };
43
+ //# sourceMappingURL=use-tour-anchor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tour-anchor.js","sources":["../../src/overlay/use-tour-anchor.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { resolveAnchor } from \"./tour-anchor\";\nimport type { TourRootSource, TourTarget } from \"./tour-types\";\n\n/**\n * React lifecycle around `resolveAnchor`: one bounded wait per step, aborted when\n * the step changes or the tour unmounts, plus the scroll-into-view that makes the\n * spotlight land somewhere the operator can actually see.\n */\n\nexport type TourAnchorState = \"idle\" | \"waiting\" | \"found\" | \"missing\";\n\nexport type UseTourAnchorOptions = {\n root: TourRootSource;\n /** Omit for an anchorless (centred) step; the hook then reports `idle`. */\n target?: TourTarget | undefined;\n timeoutMs: number;\n /** Scroll the anchor into view once it resolves. Defaults to `true`. */\n scrollIntoView?: boolean | undefined;\n /** Changes to this restart the wait — pass the step id. */\n key: string;\n};\n\nexport type UseTourAnchorResult = {\n anchor: HTMLElement | null;\n state: TourAnchorState;\n};\n\nfunction prefersReducedMotion(element: HTMLElement): boolean {\n const view = element.ownerDocument.defaultView;\n return view?.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches ?? false;\n}\n\nexport function useTourAnchor(options: UseTourAnchorOptions): UseTourAnchorResult {\n const { root, target, timeoutMs, scrollIntoView = true, key } = options;\n const [result, setResult] = useState<UseTourAnchorResult>({ anchor: null, state: \"idle\" });\n const scrollRef = useRef(scrollIntoView);\n scrollRef.current = scrollIntoView;\n\n useEffect(() => {\n if (target === undefined) {\n setResult({ anchor: null, state: \"idle\" });\n return;\n }\n\n setResult({ anchor: null, state: \"waiting\" });\n const controller = new AbortController();\n\n void resolveAnchor({ root, target, timeoutMs, signal: controller.signal }).then(\n (resolution) => {\n if (controller.signal.aborted) return;\n if (resolution.status !== \"found\") {\n setResult({ anchor: null, state: \"missing\" });\n return;\n }\n setResult({ anchor: resolution.element, state: \"found\" });\n if (!scrollRef.current || !resolution.element.scrollIntoView) return;\n resolution.element.scrollIntoView({\n block: \"center\",\n inline: \"nearest\",\n behavior: prefersReducedMotion(resolution.element) ? \"auto\" : \"smooth\",\n });\n },\n );\n\n return () => controller.abort();\n // `root` and `target` are re-created per render by most callers; `key` (the\n // step id) is the identity that should restart the wait.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, timeoutMs]);\n\n return result;\n}\n"],"names":[],"mappings":";;AA4BA,SAAS,qBAAqB,SAA+B;;AAC3D,QAAM,OAAO,QAAQ,cAAc;AACnC,WAAO,kCAAM,eAAN,8BAAmB,oCAAoC,YAAW;AAC3E;AAEO,SAAS,cAAc,SAAoD;AAChF,QAAM,EAAE,MAAM,QAAQ,WAAW,iBAAiB,MAAM,QAAQ;AAChE,QAAM,CAAC,QAAQ,SAAS,IAAI,SAA8B,EAAE,QAAQ,MAAM,OAAO,QAAQ;AACzF,QAAM,YAAY,OAAO,cAAc;AACvC,YAAU,UAAU;AAEpB,YAAU,MAAM;AACd,QAAI,WAAW,QAAW;AACxB,gBAAU,EAAE,QAAQ,MAAM,OAAO,QAAQ;AACzC;AAAA,IACF;AAEA,cAAU,EAAE,QAAQ,MAAM,OAAO,WAAW;AAC5C,UAAM,aAAa,IAAI,gBAAA;AAEvB,SAAK,cAAc,EAAE,MAAM,QAAQ,WAAW,QAAQ,WAAW,OAAA,CAAQ,EAAE;AAAA,MACzE,CAAC,eAAe;AACd,YAAI,WAAW,OAAO,QAAS;AAC/B,YAAI,WAAW,WAAW,SAAS;AACjC,oBAAU,EAAE,QAAQ,MAAM,OAAO,WAAW;AAC5C;AAAA,QACF;AACA,kBAAU,EAAE,QAAQ,WAAW,SAAS,OAAO,SAAS;AACxD,YAAI,CAAC,UAAU,WAAW,CAAC,WAAW,QAAQ,eAAgB;AAC9D,mBAAW,QAAQ,eAAe;AAAA,UAChC,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,UAAU,qBAAqB,WAAW,OAAO,IAAI,SAAS;AAAA,QAAA,CAC/D;AAAA,MACH;AAAA,IAAA;AAGF,WAAO,MAAM,WAAW,MAAA;AAAA,EAI1B,GAAG,CAAC,KAAK,SAAS,CAAC;AAEnB,SAAO;AACT;"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("react");
4
+ const react$1 = require("@floating-ui/react");
5
+ const tourGeometry = require("./tour-geometry.cjs");
6
+ function useTourRect(anchor, options) {
7
+ const { padding, radius } = options;
8
+ const [rect, setRect] = react.useState(null);
9
+ react.useEffect(() => {
10
+ if (!anchor) {
11
+ setRect(null);
12
+ return;
13
+ }
14
+ const view = anchor.ownerDocument.defaultView;
15
+ if (!view) return;
16
+ const measure = () => {
17
+ setRect(
18
+ tourGeometry.spotlightRect({
19
+ anchor: anchor.getBoundingClientRect(),
20
+ padding,
21
+ radius: radius ?? tourGeometry.anchorRadius(anchor) + padding,
22
+ viewport: { width: view.innerWidth, height: view.innerHeight }
23
+ })
24
+ );
25
+ };
26
+ measure();
27
+ if (typeof ResizeObserver === "undefined") return;
28
+ return react$1.autoUpdate(anchor, anchor, measure);
29
+ }, [anchor, padding, radius]);
30
+ return rect;
31
+ }
32
+ exports.useTourRect = useTourRect;
33
+ //# sourceMappingURL=use-tour-rect.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tour-rect.cjs","sources":["../../src/overlay/use-tour-rect.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autoUpdate } from \"@floating-ui/react\";\nimport { anchorRadius, spotlightRect, type SpotlightRect } from \"./tour-geometry\";\n\n/**\n * Keeps the spotlight cutout locked to its anchor through scrolling, resizing,\n * and layout shifts. Separate from the card's own `autoUpdate` subscription:\n * both are cheap, and feeding floating-ui a virtual reference built from this\n * rect would still need its own update trigger.\n */\nexport function useTourRect(\n anchor: HTMLElement | null,\n options: { padding: number; radius?: number | undefined },\n): SpotlightRect | null {\n const { padding, radius } = options;\n const [rect, setRect] = useState<SpotlightRect | null>(null);\n\n useEffect(() => {\n if (!anchor) {\n setRect(null);\n return;\n }\n const view = anchor.ownerDocument.defaultView;\n if (!view) return;\n\n const measure = () => {\n setRect(\n spotlightRect({\n anchor: anchor.getBoundingClientRect(),\n padding,\n radius: radius ?? anchorRadius(anchor) + padding,\n viewport: { width: view.innerWidth, height: view.innerHeight },\n }),\n );\n };\n\n measure();\n // jsdom has no ResizeObserver, and autoUpdate constructs one unconditionally.\n if (typeof ResizeObserver === \"undefined\") return;\n return autoUpdate(anchor, anchor, measure);\n }, [anchor, padding, radius]);\n\n return rect;\n}\n"],"names":["useState","useEffect","spotlightRect","anchorRadius","autoUpdate"],"mappings":";;;;;AAUO,SAAS,YACd,QACA,SACsB;AACtB,QAAM,EAAE,SAAS,OAAA,IAAW;AAC5B,QAAM,CAAC,MAAM,OAAO,IAAIA,MAAAA,SAA+B,IAAI;AAE3DC,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,QAAQ;AACX,cAAQ,IAAI;AACZ;AAAA,IACF;AACA,UAAM,OAAO,OAAO,cAAc;AAClC,QAAI,CAAC,KAAM;AAEX,UAAM,UAAU,MAAM;AACpB;AAAA,QACEC,2BAAc;AAAA,UACZ,QAAQ,OAAO,sBAAA;AAAA,UACf;AAAA,UACA,QAAQ,UAAUC,0BAAa,MAAM,IAAI;AAAA,UACzC,UAAU,EAAE,OAAO,KAAK,YAAY,QAAQ,KAAK,YAAA;AAAA,QAAY,CAC9D;AAAA,MAAA;AAAA,IAEL;AAEA,YAAA;AAEA,QAAI,OAAO,mBAAmB,YAAa;AAC3C,WAAOC,mBAAW,QAAQ,QAAQ,OAAO;AAAA,EAC3C,GAAG,CAAC,QAAQ,SAAS,MAAM,CAAC;AAE5B,SAAO;AACT;;"}
@@ -0,0 +1,12 @@
1
+ import { SpotlightRect } from './tour-geometry';
2
+ /**
3
+ * Keeps the spotlight cutout locked to its anchor through scrolling, resizing,
4
+ * and layout shifts. Separate from the card's own `autoUpdate` subscription:
5
+ * both are cheap, and feeding floating-ui a virtual reference built from this
6
+ * rect would still need its own update trigger.
7
+ */
8
+ export declare function useTourRect(anchor: HTMLElement | null, options: {
9
+ padding: number;
10
+ radius?: number | undefined;
11
+ }): SpotlightRect | null;
12
+ //# sourceMappingURL=use-tour-rect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tour-rect.d.ts","sourceRoot":"","sources":["../../src/overlay/use-tour-rect.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAElF;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACxD,aAAa,GAAG,IAAI,CA8BtB"}
@@ -0,0 +1,33 @@
1
+ import { useState, useEffect } from "react";
2
+ import { autoUpdate } from "@floating-ui/react";
3
+ import { spotlightRect, anchorRadius } from "./tour-geometry.js";
4
+ function useTourRect(anchor, options) {
5
+ const { padding, radius } = options;
6
+ const [rect, setRect] = useState(null);
7
+ useEffect(() => {
8
+ if (!anchor) {
9
+ setRect(null);
10
+ return;
11
+ }
12
+ const view = anchor.ownerDocument.defaultView;
13
+ if (!view) return;
14
+ const measure = () => {
15
+ setRect(
16
+ spotlightRect({
17
+ anchor: anchor.getBoundingClientRect(),
18
+ padding,
19
+ radius: radius ?? anchorRadius(anchor) + padding,
20
+ viewport: { width: view.innerWidth, height: view.innerHeight }
21
+ })
22
+ );
23
+ };
24
+ measure();
25
+ if (typeof ResizeObserver === "undefined") return;
26
+ return autoUpdate(anchor, anchor, measure);
27
+ }, [anchor, padding, radius]);
28
+ return rect;
29
+ }
30
+ export {
31
+ useTourRect
32
+ };
33
+ //# sourceMappingURL=use-tour-rect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tour-rect.js","sources":["../../src/overlay/use-tour-rect.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autoUpdate } from \"@floating-ui/react\";\nimport { anchorRadius, spotlightRect, type SpotlightRect } from \"./tour-geometry\";\n\n/**\n * Keeps the spotlight cutout locked to its anchor through scrolling, resizing,\n * and layout shifts. Separate from the card's own `autoUpdate` subscription:\n * both are cheap, and feeding floating-ui a virtual reference built from this\n * rect would still need its own update trigger.\n */\nexport function useTourRect(\n anchor: HTMLElement | null,\n options: { padding: number; radius?: number | undefined },\n): SpotlightRect | null {\n const { padding, radius } = options;\n const [rect, setRect] = useState<SpotlightRect | null>(null);\n\n useEffect(() => {\n if (!anchor) {\n setRect(null);\n return;\n }\n const view = anchor.ownerDocument.defaultView;\n if (!view) return;\n\n const measure = () => {\n setRect(\n spotlightRect({\n anchor: anchor.getBoundingClientRect(),\n padding,\n radius: radius ?? anchorRadius(anchor) + padding,\n viewport: { width: view.innerWidth, height: view.innerHeight },\n }),\n );\n };\n\n measure();\n // jsdom has no ResizeObserver, and autoUpdate constructs one unconditionally.\n if (typeof ResizeObserver === \"undefined\") return;\n return autoUpdate(anchor, anchor, measure);\n }, [anchor, padding, radius]);\n\n return rect;\n}\n"],"names":[],"mappings":";;;AAUO,SAAS,YACd,QACA,SACsB;AACtB,QAAM,EAAE,SAAS,OAAA,IAAW;AAC5B,QAAM,CAAC,MAAM,OAAO,IAAI,SAA+B,IAAI;AAE3D,YAAU,MAAM;AACd,QAAI,CAAC,QAAQ;AACX,cAAQ,IAAI;AACZ;AAAA,IACF;AACA,UAAM,OAAO,OAAO,cAAc;AAClC,QAAI,CAAC,KAAM;AAEX,UAAM,UAAU,MAAM;AACpB;AAAA,QACE,cAAc;AAAA,UACZ,QAAQ,OAAO,sBAAA;AAAA,UACf;AAAA,UACA,QAAQ,UAAU,aAAa,MAAM,IAAI;AAAA,UACzC,UAAU,EAAE,OAAO,KAAK,YAAY,QAAQ,KAAK,YAAA;AAAA,QAAY,CAC9D;AAAA,MAAA;AAAA,IAEL;AAEA,YAAA;AAEA,QAAI,OAAO,mBAAmB,YAAa;AAC3C,WAAO,WAAW,QAAQ,QAAQ,OAAO;AAAA,EAC3C,GAAG,CAAC,QAAQ,SAAS,MAAM,CAAC;AAE5B,SAAO;AACT;"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("react");
4
+ const tourModel = require("./tour-model.cjs");
5
+ function useStepRoute(options) {
6
+ const { step, context, onNavigate } = options;
7
+ const routeRef = react.useRef(null);
8
+ const [navigating, setNavigating] = react.useState(false);
9
+ const contextRef = react.useRef(context);
10
+ contextRef.current = context;
11
+ const pendingRoute = (step == null ? void 0 : step.route) !== void 0 && step.route !== routeRef.current;
12
+ react.useEffect(() => {
13
+ if (!step || step.route === void 0 || step.route === routeRef.current) return;
14
+ const route = step.route;
15
+ routeRef.current = route;
16
+ const ctx = contextRef.current;
17
+ if (!onNavigate || !ctx) return;
18
+ setNavigating(true);
19
+ void Promise.resolve(onNavigate(route, ctx)).finally(() => setNavigating(false));
20
+ }, [step == null ? void 0 : step.id]);
21
+ return { navigating, pendingRoute };
22
+ }
23
+ function useMissingAnchorPolicy(options) {
24
+ const { definition, step, index, missing, policy, onStepError, onSkip } = options;
25
+ const skipRef = react.useRef(onSkip);
26
+ skipRef.current = onSkip;
27
+ react.useEffect(() => {
28
+ if (!missing || !step) return;
29
+ const target = tourModel.describeTarget(step.target);
30
+ const message = `Tour "${definition.id}" step "${step.id}": anchor ${target} never appeared`;
31
+ if (policy === "fail") throw new Error(message);
32
+ console.warn(`clicky-ui ${message}`);
33
+ onStepError == null ? void 0 : onStepError({ tourId: definition.id, step, index, reason: "anchor-timeout", target });
34
+ if (policy === "skip") skipRef.current(tourModel.nextStepIndex(definition.steps, index, "next"));
35
+ }, [missing, step == null ? void 0 : step.id, policy]);
36
+ }
37
+ function useActiveAnchorMarker(anchor) {
38
+ react.useEffect(() => {
39
+ if (!anchor) return;
40
+ anchor.dataset.tourActive = "true";
41
+ return () => {
42
+ delete anchor.dataset.tourActive;
43
+ };
44
+ }, [anchor]);
45
+ }
46
+ function useStepLifecycle(options) {
47
+ const { step, context, settled } = options;
48
+ const contextRef = react.useRef(context);
49
+ contextRef.current = context;
50
+ react.useEffect(() => {
51
+ var _a;
52
+ if (!step || !settled) return;
53
+ const ctx = contextRef.current;
54
+ if (!ctx) return;
55
+ void ((_a = step.onEnter) == null ? void 0 : _a.call(step, ctx));
56
+ return () => {
57
+ var _a2;
58
+ return (_a2 = step.onExit) == null ? void 0 : _a2.call(step, ctx);
59
+ };
60
+ }, [step == null ? void 0 : step.id, settled]);
61
+ }
62
+ exports.useActiveAnchorMarker = useActiveAnchorMarker;
63
+ exports.useMissingAnchorPolicy = useMissingAnchorPolicy;
64
+ exports.useStepLifecycle = useStepLifecycle;
65
+ exports.useStepRoute = useStepRoute;
66
+ //# sourceMappingURL=use-tour-step.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tour-step.cjs","sources":["../../src/overlay/use-tour-step.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { describeTarget, nextStepIndex } from \"./tour-model\";\nimport type {\n TourDefinition,\n TourMissingAnchor,\n TourStep,\n TourStepContext,\n TourStepErrorInfo,\n} from \"./tour-types\";\n\n/**\n * The per-step effects of a running tour, kept out of the renderer: route\n * hand-off, the missing-anchor policy, `onEnter`/`onExit`, and the active-anchor\n * marker.\n */\n\n/**\n * Asks the host to navigate when the entered step lives on a different route.\n * The tour deliberately does NOT then wait on the route changing — the anchor\n * appearing is the only readiness signal, so one mechanism covers route change,\n * lazy chunk, and data fetch, and the same steps still run where there is no\n * router at all.\n */\nexport function useStepRoute(options: {\n step: TourStep | undefined;\n context: TourStepContext | null;\n onNavigate: ((route: string, ctx: TourStepContext) => void | Promise<void>) | undefined;\n}): { navigating: boolean; pendingRoute: boolean } {\n const { step, context, onNavigate } = options;\n const routeRef = useRef<string | null>(null);\n const [navigating, setNavigating] = useState(false);\n const contextRef = useRef(context);\n contextRef.current = context;\n\n const pendingRoute = step?.route !== undefined && step.route !== routeRef.current;\n\n useEffect(() => {\n if (!step || step.route === undefined || step.route === routeRef.current) return;\n const route = step.route;\n routeRef.current = route;\n const ctx = contextRef.current;\n if (!onNavigate || !ctx) return;\n setNavigating(true);\n void Promise.resolve(onNavigate(route, ctx)).finally(() => setNavigating(false));\n // Once per entered step whose route differs; the context object changes as\n // the anchor resolves and must not retrigger navigation.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [step?.id]);\n\n return { navigating, pendingRoute };\n}\n\n/**\n * Applies the missing-anchor policy. `\"center\"` (the default) keeps the step and\n * its counter but always warns and reports, so a broken anchor is loud without\n * being fatal in front of a user; `\"skip\"` silently rewrites the tour and is\n * opt-in; `\"fail\"` is for stories and tests.\n */\nexport function useMissingAnchorPolicy(options: {\n definition: TourDefinition;\n step: TourStep | undefined;\n index: number;\n missing: boolean;\n policy: TourMissingAnchor;\n onStepError: ((info: TourStepErrorInfo) => void) | undefined;\n onSkip: (nextIndex: number | null) => void;\n}): void {\n const { definition, step, index, missing, policy, onStepError, onSkip } = options;\n const skipRef = useRef(onSkip);\n skipRef.current = onSkip;\n\n useEffect(() => {\n if (!missing || !step) return;\n const target = describeTarget(step.target);\n const message = `Tour \"${definition.id}\" step \"${step.id}\": anchor ${target} never appeared`;\n if (policy === \"fail\") throw new Error(message);\n\n console.warn(`clicky-ui ${message}`);\n onStepError?.({ tourId: definition.id, step, index, reason: \"anchor-timeout\", target });\n if (policy === \"skip\") skipRef.current(nextStepIndex(definition.steps, index, \"next\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [missing, step?.id, policy]);\n}\n\n/** Marks the spotlit element so styles and end-to-end tests can find it. */\nexport function useActiveAnchorMarker(anchor: HTMLElement | null): void {\n useEffect(() => {\n if (!anchor) return;\n anchor.dataset.tourActive = \"true\";\n return () => {\n delete anchor.dataset.tourActive;\n };\n }, [anchor]);\n}\n\n/** Runs `onEnter` once the step has settled, and `onExit` when it is left. */\nexport function useStepLifecycle(options: {\n step: TourStep | undefined;\n context: TourStepContext | null;\n settled: boolean;\n}): void {\n const { step, context, settled } = options;\n const contextRef = useRef(context);\n contextRef.current = context;\n\n useEffect(() => {\n if (!step || !settled) return;\n const ctx = contextRef.current;\n if (!ctx) return;\n void step.onEnter?.(ctx);\n return () => step.onExit?.(ctx);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [step?.id, settled]);\n}\n"],"names":["useRef","useState","useEffect","describeTarget","nextStepIndex","_a"],"mappings":";;;;AAuBO,SAAS,aAAa,SAIsB;AACjD,QAAM,EAAE,MAAM,SAAS,WAAA,IAAe;AACtC,QAAM,WAAWA,MAAAA,OAAsB,IAAI;AAC3C,QAAM,CAAC,YAAY,aAAa,IAAIC,MAAAA,SAAS,KAAK;AAClD,QAAM,aAAaD,MAAAA,OAAO,OAAO;AACjC,aAAW,UAAU;AAErB,QAAM,gBAAe,6BAAM,WAAU,UAAa,KAAK,UAAU,SAAS;AAE1EE,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,QAAQ,KAAK,UAAU,UAAa,KAAK,UAAU,SAAS,QAAS;AAC1E,UAAM,QAAQ,KAAK;AACnB,aAAS,UAAU;AACnB,UAAM,MAAM,WAAW;AACvB,QAAI,CAAC,cAAc,CAAC,IAAK;AACzB,kBAAc,IAAI;AAClB,SAAK,QAAQ,QAAQ,WAAW,OAAO,GAAG,CAAC,EAAE,QAAQ,MAAM,cAAc,KAAK,CAAC;AAAA,EAIjF,GAAG,CAAC,6BAAM,EAAE,CAAC;AAEb,SAAO,EAAE,YAAY,aAAA;AACvB;AAQO,SAAS,uBAAuB,SAQ9B;AACP,QAAM,EAAE,YAAY,MAAM,OAAO,SAAS,QAAQ,aAAa,WAAW;AAC1E,QAAM,UAAUF,MAAAA,OAAO,MAAM;AAC7B,UAAQ,UAAU;AAElBE,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,WAAW,CAAC,KAAM;AACvB,UAAM,SAASC,UAAAA,eAAe,KAAK,MAAM;AACzC,UAAM,UAAU,SAAS,WAAW,EAAE,WAAW,KAAK,EAAE,aAAa,MAAM;AAC3E,QAAI,WAAW,OAAQ,OAAM,IAAI,MAAM,OAAO;AAE9C,YAAQ,KAAK,aAAa,OAAO,EAAE;AACnC,+CAAc,EAAE,QAAQ,WAAW,IAAI,MAAM,OAAO,QAAQ,kBAAkB;AAC9E,QAAI,WAAW,OAAQ,SAAQ,QAAQC,wBAAc,WAAW,OAAO,OAAO,MAAM,CAAC;AAAA,EAEvF,GAAG,CAAC,SAAS,6BAAM,IAAI,MAAM,CAAC;AAChC;AAGO,SAAS,sBAAsB,QAAkC;AACtEF,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,OAAQ;AACb,WAAO,QAAQ,aAAa;AAC5B,WAAO,MAAM;AACX,aAAO,OAAO,QAAQ;AAAA,IACxB;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AACb;AAGO,SAAS,iBAAiB,SAIxB;AACP,QAAM,EAAE,MAAM,SAAS,QAAA,IAAY;AACnC,QAAM,aAAaF,MAAAA,OAAO,OAAO;AACjC,aAAW,UAAU;AAErBE,QAAAA,UAAU,MAAM;;AACd,QAAI,CAAC,QAAQ,CAAC,QAAS;AACvB,UAAM,MAAM,WAAW;AACvB,QAAI,CAAC,IAAK;AACV,WAAK,UAAK,YAAL,8BAAe;AACpB,WAAO,MAAA;;AAAM,cAAAG,MAAA,KAAK,WAAL,gBAAAA,IAAA,WAAc;AAAA;AAAA,EAE7B,GAAG,CAAC,6BAAM,IAAI,OAAO,CAAC;AACxB;;;;;"}
@@ -0,0 +1,45 @@
1
+ import { TourDefinition, TourMissingAnchor, TourStep, TourStepContext, TourStepErrorInfo } from './tour-types';
2
+ /**
3
+ * The per-step effects of a running tour, kept out of the renderer: route
4
+ * hand-off, the missing-anchor policy, `onEnter`/`onExit`, and the active-anchor
5
+ * marker.
6
+ */
7
+ /**
8
+ * Asks the host to navigate when the entered step lives on a different route.
9
+ * The tour deliberately does NOT then wait on the route changing — the anchor
10
+ * appearing is the only readiness signal, so one mechanism covers route change,
11
+ * lazy chunk, and data fetch, and the same steps still run where there is no
12
+ * router at all.
13
+ */
14
+ export declare function useStepRoute(options: {
15
+ step: TourStep | undefined;
16
+ context: TourStepContext | null;
17
+ onNavigate: ((route: string, ctx: TourStepContext) => void | Promise<void>) | undefined;
18
+ }): {
19
+ navigating: boolean;
20
+ pendingRoute: boolean;
21
+ };
22
+ /**
23
+ * Applies the missing-anchor policy. `"center"` (the default) keeps the step and
24
+ * its counter but always warns and reports, so a broken anchor is loud without
25
+ * being fatal in front of a user; `"skip"` silently rewrites the tour and is
26
+ * opt-in; `"fail"` is for stories and tests.
27
+ */
28
+ export declare function useMissingAnchorPolicy(options: {
29
+ definition: TourDefinition;
30
+ step: TourStep | undefined;
31
+ index: number;
32
+ missing: boolean;
33
+ policy: TourMissingAnchor;
34
+ onStepError: ((info: TourStepErrorInfo) => void) | undefined;
35
+ onSkip: (nextIndex: number | null) => void;
36
+ }): void;
37
+ /** Marks the spotlit element so styles and end-to-end tests can find it. */
38
+ export declare function useActiveAnchorMarker(anchor: HTMLElement | null): void;
39
+ /** Runs `onEnter` once the step has settled, and `onExit` when it is left. */
40
+ export declare function useStepLifecycle(options: {
41
+ step: TourStep | undefined;
42
+ context: TourStepContext | null;
43
+ settled: boolean;
44
+ }): void;
45
+ //# sourceMappingURL=use-tour-step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tour-step.d.ts","sourceRoot":"","sources":["../../src/overlay/use-tour-step.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AAEH;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACzF,GAAG;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAuBjD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,UAAU,EAAE,cAAc,CAAC;IAC3B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5C,GAAG,IAAI,CAgBP;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAQtE;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,IAAI,CAaP"}
@@ -0,0 +1,66 @@
1
+ import { useRef, useState, useEffect } from "react";
2
+ import { describeTarget, nextStepIndex } from "./tour-model.js";
3
+ function useStepRoute(options) {
4
+ const { step, context, onNavigate } = options;
5
+ const routeRef = useRef(null);
6
+ const [navigating, setNavigating] = useState(false);
7
+ const contextRef = useRef(context);
8
+ contextRef.current = context;
9
+ const pendingRoute = (step == null ? void 0 : step.route) !== void 0 && step.route !== routeRef.current;
10
+ useEffect(() => {
11
+ if (!step || step.route === void 0 || step.route === routeRef.current) return;
12
+ const route = step.route;
13
+ routeRef.current = route;
14
+ const ctx = contextRef.current;
15
+ if (!onNavigate || !ctx) return;
16
+ setNavigating(true);
17
+ void Promise.resolve(onNavigate(route, ctx)).finally(() => setNavigating(false));
18
+ }, [step == null ? void 0 : step.id]);
19
+ return { navigating, pendingRoute };
20
+ }
21
+ function useMissingAnchorPolicy(options) {
22
+ const { definition, step, index, missing, policy, onStepError, onSkip } = options;
23
+ const skipRef = useRef(onSkip);
24
+ skipRef.current = onSkip;
25
+ useEffect(() => {
26
+ if (!missing || !step) return;
27
+ const target = describeTarget(step.target);
28
+ const message = `Tour "${definition.id}" step "${step.id}": anchor ${target} never appeared`;
29
+ if (policy === "fail") throw new Error(message);
30
+ console.warn(`clicky-ui ${message}`);
31
+ onStepError == null ? void 0 : onStepError({ tourId: definition.id, step, index, reason: "anchor-timeout", target });
32
+ if (policy === "skip") skipRef.current(nextStepIndex(definition.steps, index, "next"));
33
+ }, [missing, step == null ? void 0 : step.id, policy]);
34
+ }
35
+ function useActiveAnchorMarker(anchor) {
36
+ useEffect(() => {
37
+ if (!anchor) return;
38
+ anchor.dataset.tourActive = "true";
39
+ return () => {
40
+ delete anchor.dataset.tourActive;
41
+ };
42
+ }, [anchor]);
43
+ }
44
+ function useStepLifecycle(options) {
45
+ const { step, context, settled } = options;
46
+ const contextRef = useRef(context);
47
+ contextRef.current = context;
48
+ useEffect(() => {
49
+ var _a;
50
+ if (!step || !settled) return;
51
+ const ctx = contextRef.current;
52
+ if (!ctx) return;
53
+ void ((_a = step.onEnter) == null ? void 0 : _a.call(step, ctx));
54
+ return () => {
55
+ var _a2;
56
+ return (_a2 = step.onExit) == null ? void 0 : _a2.call(step, ctx);
57
+ };
58
+ }, [step == null ? void 0 : step.id, settled]);
59
+ }
60
+ export {
61
+ useActiveAnchorMarker,
62
+ useMissingAnchorPolicy,
63
+ useStepLifecycle,
64
+ useStepRoute
65
+ };
66
+ //# sourceMappingURL=use-tour-step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tour-step.js","sources":["../../src/overlay/use-tour-step.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { describeTarget, nextStepIndex } from \"./tour-model\";\nimport type {\n TourDefinition,\n TourMissingAnchor,\n TourStep,\n TourStepContext,\n TourStepErrorInfo,\n} from \"./tour-types\";\n\n/**\n * The per-step effects of a running tour, kept out of the renderer: route\n * hand-off, the missing-anchor policy, `onEnter`/`onExit`, and the active-anchor\n * marker.\n */\n\n/**\n * Asks the host to navigate when the entered step lives on a different route.\n * The tour deliberately does NOT then wait on the route changing — the anchor\n * appearing is the only readiness signal, so one mechanism covers route change,\n * lazy chunk, and data fetch, and the same steps still run where there is no\n * router at all.\n */\nexport function useStepRoute(options: {\n step: TourStep | undefined;\n context: TourStepContext | null;\n onNavigate: ((route: string, ctx: TourStepContext) => void | Promise<void>) | undefined;\n}): { navigating: boolean; pendingRoute: boolean } {\n const { step, context, onNavigate } = options;\n const routeRef = useRef<string | null>(null);\n const [navigating, setNavigating] = useState(false);\n const contextRef = useRef(context);\n contextRef.current = context;\n\n const pendingRoute = step?.route !== undefined && step.route !== routeRef.current;\n\n useEffect(() => {\n if (!step || step.route === undefined || step.route === routeRef.current) return;\n const route = step.route;\n routeRef.current = route;\n const ctx = contextRef.current;\n if (!onNavigate || !ctx) return;\n setNavigating(true);\n void Promise.resolve(onNavigate(route, ctx)).finally(() => setNavigating(false));\n // Once per entered step whose route differs; the context object changes as\n // the anchor resolves and must not retrigger navigation.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [step?.id]);\n\n return { navigating, pendingRoute };\n}\n\n/**\n * Applies the missing-anchor policy. `\"center\"` (the default) keeps the step and\n * its counter but always warns and reports, so a broken anchor is loud without\n * being fatal in front of a user; `\"skip\"` silently rewrites the tour and is\n * opt-in; `\"fail\"` is for stories and tests.\n */\nexport function useMissingAnchorPolicy(options: {\n definition: TourDefinition;\n step: TourStep | undefined;\n index: number;\n missing: boolean;\n policy: TourMissingAnchor;\n onStepError: ((info: TourStepErrorInfo) => void) | undefined;\n onSkip: (nextIndex: number | null) => void;\n}): void {\n const { definition, step, index, missing, policy, onStepError, onSkip } = options;\n const skipRef = useRef(onSkip);\n skipRef.current = onSkip;\n\n useEffect(() => {\n if (!missing || !step) return;\n const target = describeTarget(step.target);\n const message = `Tour \"${definition.id}\" step \"${step.id}\": anchor ${target} never appeared`;\n if (policy === \"fail\") throw new Error(message);\n\n console.warn(`clicky-ui ${message}`);\n onStepError?.({ tourId: definition.id, step, index, reason: \"anchor-timeout\", target });\n if (policy === \"skip\") skipRef.current(nextStepIndex(definition.steps, index, \"next\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [missing, step?.id, policy]);\n}\n\n/** Marks the spotlit element so styles and end-to-end tests can find it. */\nexport function useActiveAnchorMarker(anchor: HTMLElement | null): void {\n useEffect(() => {\n if (!anchor) return;\n anchor.dataset.tourActive = \"true\";\n return () => {\n delete anchor.dataset.tourActive;\n };\n }, [anchor]);\n}\n\n/** Runs `onEnter` once the step has settled, and `onExit` when it is left. */\nexport function useStepLifecycle(options: {\n step: TourStep | undefined;\n context: TourStepContext | null;\n settled: boolean;\n}): void {\n const { step, context, settled } = options;\n const contextRef = useRef(context);\n contextRef.current = context;\n\n useEffect(() => {\n if (!step || !settled) return;\n const ctx = contextRef.current;\n if (!ctx) return;\n void step.onEnter?.(ctx);\n return () => step.onExit?.(ctx);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [step?.id, settled]);\n}\n"],"names":["_a"],"mappings":";;AAuBO,SAAS,aAAa,SAIsB;AACjD,QAAM,EAAE,MAAM,SAAS,WAAA,IAAe;AACtC,QAAM,WAAW,OAAsB,IAAI;AAC3C,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,aAAa,OAAO,OAAO;AACjC,aAAW,UAAU;AAErB,QAAM,gBAAe,6BAAM,WAAU,UAAa,KAAK,UAAU,SAAS;AAE1E,YAAU,MAAM;AACd,QAAI,CAAC,QAAQ,KAAK,UAAU,UAAa,KAAK,UAAU,SAAS,QAAS;AAC1E,UAAM,QAAQ,KAAK;AACnB,aAAS,UAAU;AACnB,UAAM,MAAM,WAAW;AACvB,QAAI,CAAC,cAAc,CAAC,IAAK;AACzB,kBAAc,IAAI;AAClB,SAAK,QAAQ,QAAQ,WAAW,OAAO,GAAG,CAAC,EAAE,QAAQ,MAAM,cAAc,KAAK,CAAC;AAAA,EAIjF,GAAG,CAAC,6BAAM,EAAE,CAAC;AAEb,SAAO,EAAE,YAAY,aAAA;AACvB;AAQO,SAAS,uBAAuB,SAQ9B;AACP,QAAM,EAAE,YAAY,MAAM,OAAO,SAAS,QAAQ,aAAa,WAAW;AAC1E,QAAM,UAAU,OAAO,MAAM;AAC7B,UAAQ,UAAU;AAElB,YAAU,MAAM;AACd,QAAI,CAAC,WAAW,CAAC,KAAM;AACvB,UAAM,SAAS,eAAe,KAAK,MAAM;AACzC,UAAM,UAAU,SAAS,WAAW,EAAE,WAAW,KAAK,EAAE,aAAa,MAAM;AAC3E,QAAI,WAAW,OAAQ,OAAM,IAAI,MAAM,OAAO;AAE9C,YAAQ,KAAK,aAAa,OAAO,EAAE;AACnC,+CAAc,EAAE,QAAQ,WAAW,IAAI,MAAM,OAAO,QAAQ,kBAAkB;AAC9E,QAAI,WAAW,OAAQ,SAAQ,QAAQ,cAAc,WAAW,OAAO,OAAO,MAAM,CAAC;AAAA,EAEvF,GAAG,CAAC,SAAS,6BAAM,IAAI,MAAM,CAAC;AAChC;AAGO,SAAS,sBAAsB,QAAkC;AACtE,YAAU,MAAM;AACd,QAAI,CAAC,OAAQ;AACb,WAAO,QAAQ,aAAa;AAC5B,WAAO,MAAM;AACX,aAAO,OAAO,QAAQ;AAAA,IACxB;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AACb;AAGO,SAAS,iBAAiB,SAIxB;AACP,QAAM,EAAE,MAAM,SAAS,QAAA,IAAY;AACnC,QAAM,aAAa,OAAO,OAAO;AACjC,aAAW,UAAU;AAErB,YAAU,MAAM;;AACd,QAAI,CAAC,QAAQ,CAAC,QAAS;AACvB,UAAM,MAAM,WAAW;AACvB,QAAI,CAAC,IAAK;AACV,WAAK,UAAK,YAAL,8BAAe;AACpB,WAAO,MAAA;;AAAM,cAAAA,MAAA,KAAK,WAAL,gBAAAA,IAAA,WAAc;AAAA;AAAA,EAE7B,GAAG,CAAC,6BAAM,IAAI,OAAO,CAAC;AACxB;"}
@@ -15,6 +15,14 @@ const zIndex = {
15
15
  modalStep: 10,
16
16
  /** How far above the top modal floating content sits (below the next nest). */
17
17
  popoverOverModalOffset: 5,
18
+ /**
19
+ * Guided-tour dim/spotlight. Above every app overlay including a modal a step
20
+ * may point at, and below toasts. Floating content opened *during* a tour
21
+ * clears the dim via `useFloatingZIndex` (see ./modalStack).
22
+ */
23
+ tour: 5e4,
24
+ /** How far above the dim the tour's own step card sits. */
25
+ tourCardOffset: 10,
18
26
  /** Toasts / notifications — always the topmost layer. */
19
27
  toast: 1e5
20
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"zIndex.cjs","sources":["../../src/overlay/zIndex.ts"],"sourcesContent":["/**\n * Centralized z-index scale for clicky-ui overlays — the single source of truth\n * so stacking conflicts (e.g. a dropdown opened inside a modal rendering behind\n * it) cannot recur.\n *\n * These are applied as inline `style={{ zIndex }}`, never as arbitrary `z-[N]`\n * Tailwind classes: a consumer's Tailwind build only generates the arbitrary\n * classes it can scan from clicky-ui's published dist, so a freshly chosen\n * `z-[N]` may silently emit no rule. Inline styles are immune to that.\n *\n * Floating, transient content (dropdown / combobox / menu / tooltip / popover)\n * must clear whatever modal is open, so its z-index is computed relative to the\n * active modal via `useFloatingZIndex` (see ./modalStack) rather than taken from\n * a constant here.\n *\n * Layers NOT listed here are intentionally local: they live inside their own\n * stacking context and never participate in the global ordering —\n * `Timeline` (`z-[1]`), `RangeSlider` thumbs (20/30), and `Modal`'s\n * `ConfirmClosePrompt` (`z-10`, relative to the modal panel).\n */\nexport const zIndex = {\n /** In-flow raised affordances (sticky bits). */\n raised: 30,\n /** Persistent chat launcher. */\n chatFab: 60,\n /** Floating chat windows; `ChatWindowManager` increments from this base. */\n chatWindow: 61,\n /** Floating transient content when NO modal is open (above app chrome). */\n popover: 9000,\n /** Modal/dialog at depth 0; nested modals add `modalStep` per level. */\n modal: 10000,\n /** Per-level step between stacked modals. */\n modalStep: 10,\n /** How far above the top modal floating content sits (below the next nest). */\n popoverOverModalOffset: 5,\n /** Toasts / notifications — always the topmost layer. */\n toast: 100000,\n} as const;\n"],"names":[],"mappings":";;AAoBO,MAAM,SAAS;AAAA;AAAA,EAEpB,QAAQ;AAAA;AAAA,EAER,SAAS;AAAA;AAAA,EAET,YAAY;AAAA;AAAA,EAEZ,SAAS;AAAA;AAAA,EAET,OAAO;AAAA;AAAA,EAEP,WAAW;AAAA;AAAA,EAEX,wBAAwB;AAAA;AAAA,EAExB,OAAO;AACT;;"}
1
+ {"version":3,"file":"zIndex.cjs","sources":["../../src/overlay/zIndex.ts"],"sourcesContent":["/**\n * Centralized z-index scale for clicky-ui overlays — the single source of truth\n * so stacking conflicts (e.g. a dropdown opened inside a modal rendering behind\n * it) cannot recur.\n *\n * These are applied as inline `style={{ zIndex }}`, never as arbitrary `z-[N]`\n * Tailwind classes: a consumer's Tailwind build only generates the arbitrary\n * classes it can scan from clicky-ui's published dist, so a freshly chosen\n * `z-[N]` may silently emit no rule. Inline styles are immune to that.\n *\n * Floating, transient content (dropdown / combobox / menu / tooltip / popover)\n * must clear whatever modal is open, so its z-index is computed relative to the\n * active modal via `useFloatingZIndex` (see ./modalStack) rather than taken from\n * a constant here.\n *\n * Layers NOT listed here are intentionally local: they live inside their own\n * stacking context and never participate in the global ordering —\n * `Timeline` (`z-[1]`), `RangeSlider` thumbs (20/30), and `Modal`'s\n * `ConfirmClosePrompt` (`z-10`, relative to the modal panel).\n */\nexport const zIndex = {\n /** In-flow raised affordances (sticky bits). */\n raised: 30,\n /** Persistent chat launcher. */\n chatFab: 60,\n /** Floating chat windows; `ChatWindowManager` increments from this base. */\n chatWindow: 61,\n /** Floating transient content when NO modal is open (above app chrome). */\n popover: 9000,\n /** Modal/dialog at depth 0; nested modals add `modalStep` per level. */\n modal: 10000,\n /** Per-level step between stacked modals. */\n modalStep: 10,\n /** How far above the top modal floating content sits (below the next nest). */\n popoverOverModalOffset: 5,\n /**\n * Guided-tour dim/spotlight. Above every app overlay including a modal a step\n * may point at, and below toasts. Floating content opened *during* a tour\n * clears the dim via `useFloatingZIndex` (see ./modalStack).\n */\n tour: 50000,\n /** How far above the dim the tour's own step card sits. */\n tourCardOffset: 10,\n /** Toasts / notifications — always the topmost layer. */\n toast: 100000,\n} as const;\n"],"names":[],"mappings":";;AAoBO,MAAM,SAAS;AAAA;AAAA,EAEpB,QAAQ;AAAA;AAAA,EAER,SAAS;AAAA;AAAA,EAET,YAAY;AAAA;AAAA,EAEZ,SAAS;AAAA;AAAA,EAET,OAAO;AAAA;AAAA,EAEP,WAAW;AAAA;AAAA,EAEX,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMxB,MAAM;AAAA;AAAA,EAEN,gBAAgB;AAAA;AAAA,EAEhB,OAAO;AACT;;"}
@@ -33,6 +33,14 @@ export declare const zIndex: {
33
33
  readonly modalStep: 10;
34
34
  /** How far above the top modal floating content sits (below the next nest). */
35
35
  readonly popoverOverModalOffset: 5;
36
+ /**
37
+ * Guided-tour dim/spotlight. Above every app overlay including a modal a step
38
+ * may point at, and below toasts. Floating content opened *during* a tour
39
+ * clears the dim via `useFloatingZIndex` (see ./modalStack).
40
+ */
41
+ readonly tour: 50000;
42
+ /** How far above the dim the tour's own step card sits. */
43
+ readonly tourCardOffset: 10;
36
44
  /** Toasts / notifications — always the topmost layer. */
37
45
  readonly toast: 100000;
38
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"zIndex.d.ts","sourceRoot":"","sources":["../../src/overlay/zIndex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,MAAM;IACjB,gDAAgD;;IAEhD,gCAAgC;;IAEhC,4EAA4E;;IAE5E,2EAA2E;;IAE3E,wEAAwE;;IAExE,6CAA6C;;IAE7C,+EAA+E;;IAE/E,yDAAyD;;CAEjD,CAAC"}
1
+ {"version":3,"file":"zIndex.d.ts","sourceRoot":"","sources":["../../src/overlay/zIndex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,MAAM;IACjB,gDAAgD;;IAEhD,gCAAgC;;IAEhC,4EAA4E;;IAE5E,2EAA2E;;IAE3E,wEAAwE;;IAExE,6CAA6C;;IAE7C,+EAA+E;;IAE/E;;;;OAIG;;IAEH,2DAA2D;;IAE3D,yDAAyD;;CAEjD,CAAC"}
@@ -13,6 +13,14 @@ const zIndex = {
13
13
  modalStep: 10,
14
14
  /** How far above the top modal floating content sits (below the next nest). */
15
15
  popoverOverModalOffset: 5,
16
+ /**
17
+ * Guided-tour dim/spotlight. Above every app overlay including a modal a step
18
+ * may point at, and below toasts. Floating content opened *during* a tour
19
+ * clears the dim via `useFloatingZIndex` (see ./modalStack).
20
+ */
21
+ tour: 5e4,
22
+ /** How far above the dim the tour's own step card sits. */
23
+ tourCardOffset: 10,
16
24
  /** Toasts / notifications — always the topmost layer. */
17
25
  toast: 1e5
18
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"zIndex.js","sources":["../../src/overlay/zIndex.ts"],"sourcesContent":["/**\n * Centralized z-index scale for clicky-ui overlays — the single source of truth\n * so stacking conflicts (e.g. a dropdown opened inside a modal rendering behind\n * it) cannot recur.\n *\n * These are applied as inline `style={{ zIndex }}`, never as arbitrary `z-[N]`\n * Tailwind classes: a consumer's Tailwind build only generates the arbitrary\n * classes it can scan from clicky-ui's published dist, so a freshly chosen\n * `z-[N]` may silently emit no rule. Inline styles are immune to that.\n *\n * Floating, transient content (dropdown / combobox / menu / tooltip / popover)\n * must clear whatever modal is open, so its z-index is computed relative to the\n * active modal via `useFloatingZIndex` (see ./modalStack) rather than taken from\n * a constant here.\n *\n * Layers NOT listed here are intentionally local: they live inside their own\n * stacking context and never participate in the global ordering —\n * `Timeline` (`z-[1]`), `RangeSlider` thumbs (20/30), and `Modal`'s\n * `ConfirmClosePrompt` (`z-10`, relative to the modal panel).\n */\nexport const zIndex = {\n /** In-flow raised affordances (sticky bits). */\n raised: 30,\n /** Persistent chat launcher. */\n chatFab: 60,\n /** Floating chat windows; `ChatWindowManager` increments from this base. */\n chatWindow: 61,\n /** Floating transient content when NO modal is open (above app chrome). */\n popover: 9000,\n /** Modal/dialog at depth 0; nested modals add `modalStep` per level. */\n modal: 10000,\n /** Per-level step between stacked modals. */\n modalStep: 10,\n /** How far above the top modal floating content sits (below the next nest). */\n popoverOverModalOffset: 5,\n /** Toasts / notifications — always the topmost layer. */\n toast: 100000,\n} as const;\n"],"names":[],"mappings":"AAoBO,MAAM,SAAS;AAAA;AAAA,EAEpB,QAAQ;AAAA;AAAA,EAER,SAAS;AAAA;AAAA,EAET,YAAY;AAAA;AAAA,EAEZ,SAAS;AAAA;AAAA,EAET,OAAO;AAAA;AAAA,EAEP,WAAW;AAAA;AAAA,EAEX,wBAAwB;AAAA;AAAA,EAExB,OAAO;AACT;"}
1
+ {"version":3,"file":"zIndex.js","sources":["../../src/overlay/zIndex.ts"],"sourcesContent":["/**\n * Centralized z-index scale for clicky-ui overlays — the single source of truth\n * so stacking conflicts (e.g. a dropdown opened inside a modal rendering behind\n * it) cannot recur.\n *\n * These are applied as inline `style={{ zIndex }}`, never as arbitrary `z-[N]`\n * Tailwind classes: a consumer's Tailwind build only generates the arbitrary\n * classes it can scan from clicky-ui's published dist, so a freshly chosen\n * `z-[N]` may silently emit no rule. Inline styles are immune to that.\n *\n * Floating, transient content (dropdown / combobox / menu / tooltip / popover)\n * must clear whatever modal is open, so its z-index is computed relative to the\n * active modal via `useFloatingZIndex` (see ./modalStack) rather than taken from\n * a constant here.\n *\n * Layers NOT listed here are intentionally local: they live inside their own\n * stacking context and never participate in the global ordering —\n * `Timeline` (`z-[1]`), `RangeSlider` thumbs (20/30), and `Modal`'s\n * `ConfirmClosePrompt` (`z-10`, relative to the modal panel).\n */\nexport const zIndex = {\n /** In-flow raised affordances (sticky bits). */\n raised: 30,\n /** Persistent chat launcher. */\n chatFab: 60,\n /** Floating chat windows; `ChatWindowManager` increments from this base. */\n chatWindow: 61,\n /** Floating transient content when NO modal is open (above app chrome). */\n popover: 9000,\n /** Modal/dialog at depth 0; nested modals add `modalStep` per level. */\n modal: 10000,\n /** Per-level step between stacked modals. */\n modalStep: 10,\n /** How far above the top modal floating content sits (below the next nest). */\n popoverOverModalOffset: 5,\n /**\n * Guided-tour dim/spotlight. Above every app overlay including a modal a step\n * may point at, and below toasts. Floating content opened *during* a tour\n * clears the dim via `useFloatingZIndex` (see ./modalStack).\n */\n tour: 50000,\n /** How far above the dim the tour's own step card sits. */\n tourCardOffset: 10,\n /** Toasts / notifications — always the topmost layer. */\n toast: 100000,\n} as const;\n"],"names":[],"mappings":"AAoBO,MAAM,SAAS;AAAA;AAAA,EAEpB,QAAQ;AAAA;AAAA,EAER,SAAS;AAAA;AAAA,EAET,YAAY;AAAA;AAAA,EAEZ,SAAS;AAAA;AAAA,EAET,OAAO;AAAA;AAAA,EAEP,WAAW;AAAA;AAAA,EAEX,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMxB,MAAM;AAAA;AAAA,EAEN,gBAAgB;AAAA;AAAA,EAEhB,OAAO;AACT;"}
@@ -28,6 +28,8 @@ function CommandOutput({
28
28
  search,
29
29
  timeRange,
30
30
  externalFilters,
31
+ cellFilters,
32
+ onCellFilterChange,
31
33
  pagination,
32
34
  rowSelection,
33
35
  download
@@ -62,6 +64,8 @@ function CommandOutput({
62
64
  ...search ? { search } : {},
63
65
  ...timeRange ? { timeRange } : {},
64
66
  ...externalFilters ? { externalFilters } : {},
67
+ ...cellFilters ? { cellFilters } : {},
68
+ ...onCellFilterChange ? { onCellFilterChange } : {},
65
69
  ...pagination ? { pagination } : {},
66
70
  ...rowSelection ? { rowSelection } : {},
67
71
  ...download ? { download } : {}
@@ -134,6 +138,8 @@ function OutputBody({
134
138
  search,
135
139
  timeRange,
136
140
  externalFilters,
141
+ cellFilters,
142
+ onCellFilterChange,
137
143
  pagination,
138
144
  rowSelection,
139
145
  download
@@ -157,6 +163,8 @@ function OutputBody({
157
163
  ...search ? { search } : {},
158
164
  ...timeRange ? { timeRange } : {},
159
165
  ...externalFilters ? { externalFilters } : {},
166
+ ...cellFilters ? { cellFilters } : {},
167
+ ...onCellFilterChange ? { onCellFilterChange } : {},
160
168
  ...pagination ? { pagination } : {},
161
169
  ...rowSelection ? { rowSelection } : {},
162
170
  ...download ? { download } : {},
@@ -1 +1 @@
1
- {"version":3,"file":"CommandOutput.cjs","sources":["../../src/rpc/CommandOutput.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport type {\n FilterBarFilter,\n FilterBarRangeProps,\n FilterBarSearchProps,\n} from \"../components/FilterBar\";\nimport {\n DataTable,\n type DataTableColumn,\n type DataTablePagination,\n} from \"../data/DataTable\";\nimport {\n Clicky,\n type ClickyCommandRuntime,\n type ClickyDownloadOptions,\n type ClickyDocument,\n type ClickyNode,\n type ClickyTableRowClick,\n type ClickyTableRowHref,\n type ClickyTableRowPredicate,\n type ClickyTableRowSelection,\n} from \"../data/Clicky\";\nimport { parseClickyData } from \"../data/clicky-parse\";\nimport { JsonView } from \"../data/JsonView\";\nimport { cn } from \"../lib/utils\";\nimport type { ExecutionResponse } from \"./types\";\n\nexport type CommandOutputProps = {\n response?: ExecutionResponse | null;\n loading?: boolean;\n loadingMessage?: string;\n emptyMessage?: string;\n ariaLabel?: string;\n className?: string;\n bare?: boolean;\n commandRuntime?: ClickyCommandRuntime;\n onTableRowClick?: ClickyTableRowClick;\n getTableRowHref?: ClickyTableRowHref;\n isTableRowClickable?: ClickyTableRowPredicate;\n search?: FilterBarSearchProps;\n timeRange?: FilterBarRangeProps;\n externalFilters?: FilterBarFilter[];\n pagination?: DataTablePagination;\n rowSelection?: ClickyTableRowSelection;\n download?: ClickyDownloadOptions;\n};\n\ntype LoadingResultRow = {\n result: string;\n status: string;\n updated: string;\n details: string;\n};\n\nconst LOADING_RESULT_COLUMNS: DataTableColumn<LoadingResultRow>[] = [\n { key: \"result\", label: \"Result\", grow: true },\n { key: \"status\", label: \"Status\", shrink: true },\n { key: \"updated\", label: \"Updated\", shrink: true },\n { key: \"details\", label: \"Details\", grow: true },\n];\n\nexport function CommandOutput({\n response,\n loading = false,\n loadingMessage = \"Loading execution results…\",\n emptyMessage = \"No response yet.\",\n ariaLabel,\n className,\n bare = false,\n commandRuntime,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n search,\n timeRange,\n externalFilters,\n pagination,\n rowSelection,\n download,\n}: CommandOutputProps) {\n const text = response?.stdout || response?.output || \"\";\n const ct = response?.contentType || \"application/json\";\n\n const parsed = useMemo(() => {\n if (!response) return null;\n if (response.parsed !== undefined) return response.parsed;\n if (!text.trim()) return null;\n try {\n return JSON.parse(text.trim());\n } catch {\n return null;\n }\n }, [response, text]);\n\n let output: ReactNode;\n if (response) {\n output = (\n <OutputBody\n text={text}\n parsed={parsed}\n contentType={ct}\n bare={bare}\n {...(response.requestUrl ? { url: response.requestUrl } : {})}\n {...(response.blob ? { blob: response.blob } : {})}\n {...(commandRuntime ? { commandRuntime } : {})}\n {...(onTableRowClick ? { onTableRowClick } : {})}\n {...(getTableRowHref ? { getTableRowHref } : {})}\n {...(isTableRowClickable ? { isTableRowClickable } : {})}\n {...(search ? { search } : {})}\n {...(timeRange ? { timeRange } : {})}\n {...(externalFilters ? { externalFilters } : {})}\n {...(pagination ? { pagination } : {})}\n {...(rowSelection ? { rowSelection } : {})}\n {...(download ? { download } : {})}\n />\n );\n } else if (loading) {\n output = <LoadingOutput loadingMessage={loadingMessage} />;\n } else {\n output = <p className=\"text-sm text-muted-foreground\">{emptyMessage}</p>;\n }\n\n const pending =\n loading && response ? (\n <div\n role=\"status\"\n className=\"rounded-md border border-border bg-muted/40 px-3 py-1.5 text-xs text-muted-foreground\"\n >\n {loadingMessage}\n </div>\n ) : null;\n\n const content =\n bare || !response ? (\n <div className=\"flex min-h-0 flex-1 flex-col gap-2\">\n {pending}\n {output}\n </div>\n ) : (\n <div className=\"space-y-3\">\n {pending}\n <div className=\"flex items-center gap-2\">\n <span\n className={\n response.success\n ? \"rounded-md border px-2 py-0.5 text-xs\"\n : \"rounded-md bg-destructive px-2 py-0.5 text-xs text-destructive-foreground\"\n }\n >\n {response.success ? \"Success\" : \"Failed\"}\n </span>\n <span className=\"rounded-md border px-2 py-0.5 font-mono text-xs\">\n exit {response.exit_code}\n </span>\n {ct !== \"application/json\" && (\n <span className=\"rounded-md bg-secondary px-2 py-0.5 font-mono text-xs text-secondary-foreground\">\n {ct.split(\";\")[0]}\n </span>\n )}\n {response.error && (\n <span className=\"text-sm text-destructive\">{response.error}</span>\n )}\n </div>\n\n {response.cli && (\n <pre className=\"overflow-x-auto rounded-md bg-muted p-3 font-mono text-xs\">\n $ {response.cli}\n </pre>\n )}\n\n {output}\n </div>\n );\n\n if (ariaLabel || className) {\n return (\n <div\n role={ariaLabel ? \"region\" : undefined}\n aria-label={ariaLabel}\n aria-busy={loading || undefined}\n className={cn(\"mt-3 flex min-h-0 flex-col\", className)}\n >\n {content}\n </div>\n );\n }\n\n return content;\n}\n\nfunction OutputBody({\n text,\n parsed,\n contentType,\n url,\n blob,\n bare,\n commandRuntime,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n search,\n timeRange,\n externalFilters,\n pagination,\n rowSelection,\n download,\n}: {\n text: string;\n parsed: unknown;\n contentType: string;\n url?: string;\n blob?: Blob;\n bare?: boolean;\n commandRuntime?: ClickyCommandRuntime;\n onTableRowClick?: ClickyTableRowClick;\n getTableRowHref?: ClickyTableRowHref;\n isTableRowClickable?: ClickyTableRowPredicate;\n search?: FilterBarSearchProps;\n timeRange?: FilterBarRangeProps;\n externalFilters?: FilterBarFilter[];\n pagination?: DataTablePagination;\n rowSelection?: ClickyTableRowSelection;\n download?: ClickyDownloadOptions;\n}) {\n const ct = (contentType.split(\";\")[0] ?? \"\").trim();\n\n if (ct === \"application/pdf\" && blob) {\n return <PdfOutput blob={blob} />;\n }\n\n const clickyPayload: string | ClickyNode | ClickyDocument | undefined =\n typeof parsed === \"string\" || (parsed != null && typeof parsed === \"object\")\n ? (parsed as ClickyNode | ClickyDocument)\n : text;\n const parsedClicky =\n clickyPayload === \"\" ? null : parseClickyData(clickyPayload);\n\n if (\n parsedClicky?.ok ||\n ct === \"application/clicky+json\" ||\n ct === \"application/json+clicky\"\n ) {\n const clicky = (\n <Clicky\n data={\n parsedClicky?.ok\n ? parsedClicky.document\n : ((parsed as Parameters<typeof Clicky>[0][\"data\"]) ?? text)\n }\n {...(url ? { url } : {})}\n {...(commandRuntime ? { commandRuntime } : {})}\n {...(onTableRowClick ? { onTableRowClick } : {})}\n {...(getTableRowHref ? { getTableRowHref } : {})}\n {...(isTableRowClickable ? { isTableRowClickable } : {})}\n {...(search ? { search } : {})}\n {...(timeRange ? { timeRange } : {})}\n {...(externalFilters ? { externalFilters } : {})}\n {...(pagination ? { pagination } : {})}\n {...(rowSelection ? { rowSelection } : {})}\n {...(download ? { download } : {})}\n className=\"flex min-h-0 flex-1 flex-col\"\n />\n );\n\n const detailOutput = (\n <div className=\"detail-output flex min-h-0 flex-1 flex-col\">\n {clicky}\n </div>\n );\n if (bare) return detailOutput;\n\n return (\n <Tabs\n defaultValue=\"rendered\"\n tabs={[\n { value: \"rendered\", label: \"Rendered\", content: detailOutput },\n { value: \"raw\", label: \"Raw\", content: <TextOutput text={text} /> },\n ]}\n />\n );\n }\n\n if (ct === \"text/html\") {\n const iframe = (\n <iframe\n srcDoc={text}\n className=\"h-[600px] w-full rounded-md border bg-background\"\n sandbox=\"allow-same-origin\"\n />\n );\n if (bare) return iframe;\n return (\n <Tabs\n defaultValue=\"preview\"\n tabs={[\n { value: \"preview\", label: \"Preview\", content: iframe },\n {\n value: \"source\",\n label: \"Source\",\n content: <TextOutput text={text} />,\n },\n ]}\n />\n );\n }\n\n if (parsed) {\n const json = <JsonViewer data={parsed} />;\n if (bare) return json;\n return (\n <Tabs\n defaultValue=\"output\"\n tabs={[\n { value: \"output\", label: \"Output\", content: json },\n { value: \"raw\", label: \"Raw\", content: <TextOutput text={text} /> },\n ]}\n />\n );\n }\n\n if (text) return <TextOutput text={text} />;\n\n return <p className=\"py-4 text-sm text-muted-foreground\">No output</p>;\n}\n\nfunction LoadingOutput({ loadingMessage }: { loadingMessage: string }) {\n return (\n <DataTable<LoadingResultRow>\n data={[]}\n columns={LOADING_RESULT_COLUMNS}\n loading\n loadingMessage={loadingMessage}\n loadingRowCount={8}\n showGlobalFilter={false}\n showDensityControl={false}\n hideableColumns={false}\n resizableColumns={false}\n persistColumnWidths={false}\n persistColumnVisibility={false}\n persistDensity={false}\n />\n );\n}\n\nfunction PdfOutput({ blob }: { blob: Blob }) {\n const [url, setURL] = useState(\"\");\n\n useEffect(() => {\n const next = URL.createObjectURL(blob);\n setURL(next);\n return () => URL.revokeObjectURL(next);\n }, [blob]);\n\n if (!url) return null;\n return (\n <div className=\"space-y-2\">\n <a\n href={url}\n download=\"output.pdf\"\n className=\"inline-block rounded-md border px-3 py-1.5 text-sm hover:bg-accent\"\n >\n Download PDF\n </a>\n <iframe src={url} className=\"h-[600px] w-full rounded-md border\" />\n </div>\n );\n}\n\nfunction JsonViewer({ data }: { data: unknown }) {\n return (\n <div className=\"overflow-auto rounded-md bg-muted p-4 font-mono text-xs\">\n <JsonView\n data={data as object | unknown[]}\n defaultOpenDepth={Number.MAX_SAFE_INTEGER}\n />\n </div>\n );\n}\n\nfunction TextOutput({\n text,\n variant = \"default\",\n}: {\n text: string;\n variant?: \"default\" | \"error\";\n}) {\n return (\n <pre\n className={`max-h-96 overflow-auto whitespace-pre-wrap rounded-md p-4 font-mono text-sm ${\n variant === \"error\"\n ? \"bg-red-50 text-red-800 dark:bg-red-950 dark:text-red-200\"\n : \"bg-muted\"\n }`}\n >\n {text}\n </pre>\n );\n}\n\nfunction Tabs({\n defaultValue,\n tabs,\n}: {\n defaultValue: string;\n tabs: Array<{ value: string; label: string; content: ReactNode }>;\n}) {\n const [value, setValue] = useState(defaultValue);\n const active = tabs.find((tab) => tab.value === value) ?? tabs[0];\n if (!active) return null;\n return (\n <div className=\"space-y-3\">\n <div className=\"inline-flex rounded-md border bg-muted p-1\">\n {tabs.map((tab) => (\n <button\n key={tab.value}\n type=\"button\"\n className={`rounded px-2 py-1 text-xs ${\n tab.value === active.value\n ? \"bg-background text-foreground shadow-sm\"\n : \"text-muted-foreground\"\n }`}\n onClick={() => setValue(tab.value)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n <div>{active.content}</div>\n </div>\n );\n}\n"],"names":["useMemo","jsx","jsxs","cn","parseClickyData","Clicky","DataTable","useState","useEffect","JsonView"],"mappings":"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"}
1
+ {"version":3,"file":"CommandOutput.cjs","sources":["../../src/rpc/CommandOutput.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport type {\n FilterBarFilter,\n FilterBarRangeProps,\n FilterBarSearchProps,\n} from \"../components/FilterBar\";\nimport {\n DataTable,\n type DataTableColumn,\n type DataTablePagination,\n} from \"../data/DataTable\";\nimport {\n Clicky,\n type ClickyCommandRuntime,\n type ClickyDownloadOptions,\n type ClickyDocument,\n type ClickyNode,\n type ClickyTableRowClick,\n type ClickyTableRowHref,\n type ClickyTableRowPredicate,\n type ClickyTableRowSelection,\n} from \"../data/Clicky\";\nimport type {\n CellFilterChange,\n CellFilterMode,\n} from \"../data/cells/CellFilterActions\";\nimport { parseClickyData } from \"../data/clicky-parse\";\nimport { JsonView } from \"../data/JsonView\";\nimport { cn } from \"../lib/utils\";\nimport type { ExecutionResponse } from \"./types\";\n\nexport type CommandOutputProps = {\n response?: ExecutionResponse | null;\n loading?: boolean;\n loadingMessage?: string;\n emptyMessage?: string;\n ariaLabel?: string;\n className?: string;\n bare?: boolean;\n commandRuntime?: ClickyCommandRuntime;\n onTableRowClick?: ClickyTableRowClick;\n getTableRowHref?: ClickyTableRowHref;\n isTableRowClickable?: ClickyTableRowPredicate;\n search?: FilterBarSearchProps;\n timeRange?: FilterBarRangeProps;\n externalFilters?: FilterBarFilter[];\n cellFilters?: Record<string, Record<string, CellFilterMode>>;\n onCellFilterChange?: (change: CellFilterChange) => void;\n pagination?: DataTablePagination;\n rowSelection?: ClickyTableRowSelection;\n download?: ClickyDownloadOptions;\n};\n\ntype LoadingResultRow = {\n result: string;\n status: string;\n updated: string;\n details: string;\n};\n\nconst LOADING_RESULT_COLUMNS: DataTableColumn<LoadingResultRow>[] = [\n { key: \"result\", label: \"Result\", grow: true },\n { key: \"status\", label: \"Status\", shrink: true },\n { key: \"updated\", label: \"Updated\", shrink: true },\n { key: \"details\", label: \"Details\", grow: true },\n];\n\nexport function CommandOutput({\n response,\n loading = false,\n loadingMessage = \"Loading execution results…\",\n emptyMessage = \"No response yet.\",\n ariaLabel,\n className,\n bare = false,\n commandRuntime,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n search,\n timeRange,\n externalFilters,\n cellFilters,\n onCellFilterChange,\n pagination,\n rowSelection,\n download,\n}: CommandOutputProps) {\n const text = response?.stdout || response?.output || \"\";\n const ct = response?.contentType || \"application/json\";\n\n const parsed = useMemo(() => {\n if (!response) return null;\n if (response.parsed !== undefined) return response.parsed;\n if (!text.trim()) return null;\n try {\n return JSON.parse(text.trim());\n } catch {\n return null;\n }\n }, [response, text]);\n\n let output: ReactNode;\n if (response) {\n output = (\n <OutputBody\n text={text}\n parsed={parsed}\n contentType={ct}\n bare={bare}\n {...(response.requestUrl ? { url: response.requestUrl } : {})}\n {...(response.blob ? { blob: response.blob } : {})}\n {...(commandRuntime ? { commandRuntime } : {})}\n {...(onTableRowClick ? { onTableRowClick } : {})}\n {...(getTableRowHref ? { getTableRowHref } : {})}\n {...(isTableRowClickable ? { isTableRowClickable } : {})}\n {...(search ? { search } : {})}\n {...(timeRange ? { timeRange } : {})}\n {...(externalFilters ? { externalFilters } : {})}\n {...(cellFilters ? { cellFilters } : {})}\n {...(onCellFilterChange ? { onCellFilterChange } : {})}\n {...(pagination ? { pagination } : {})}\n {...(rowSelection ? { rowSelection } : {})}\n {...(download ? { download } : {})}\n />\n );\n } else if (loading) {\n output = <LoadingOutput loadingMessage={loadingMessage} />;\n } else {\n output = <p className=\"text-sm text-muted-foreground\">{emptyMessage}</p>;\n }\n\n const pending =\n loading && response ? (\n <div\n role=\"status\"\n className=\"rounded-md border border-border bg-muted/40 px-3 py-1.5 text-xs text-muted-foreground\"\n >\n {loadingMessage}\n </div>\n ) : null;\n\n const content =\n bare || !response ? (\n <div className=\"flex min-h-0 flex-1 flex-col gap-2\">\n {pending}\n {output}\n </div>\n ) : (\n <div className=\"space-y-3\">\n {pending}\n <div className=\"flex items-center gap-2\">\n <span\n className={\n response.success\n ? \"rounded-md border px-2 py-0.5 text-xs\"\n : \"rounded-md bg-destructive px-2 py-0.5 text-xs text-destructive-foreground\"\n }\n >\n {response.success ? \"Success\" : \"Failed\"}\n </span>\n <span className=\"rounded-md border px-2 py-0.5 font-mono text-xs\">\n exit {response.exit_code}\n </span>\n {ct !== \"application/json\" && (\n <span className=\"rounded-md bg-secondary px-2 py-0.5 font-mono text-xs text-secondary-foreground\">\n {ct.split(\";\")[0]}\n </span>\n )}\n {response.error && (\n <span className=\"text-sm text-destructive\">{response.error}</span>\n )}\n </div>\n\n {response.cli && (\n <pre className=\"overflow-x-auto rounded-md bg-muted p-3 font-mono text-xs\">\n $ {response.cli}\n </pre>\n )}\n\n {output}\n </div>\n );\n\n if (ariaLabel || className) {\n return (\n <div\n role={ariaLabel ? \"region\" : undefined}\n aria-label={ariaLabel}\n aria-busy={loading || undefined}\n className={cn(\"mt-3 flex min-h-0 flex-col\", className)}\n >\n {content}\n </div>\n );\n }\n\n return content;\n}\n\nfunction OutputBody({\n text,\n parsed,\n contentType,\n url,\n blob,\n bare,\n commandRuntime,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n search,\n timeRange,\n externalFilters,\n cellFilters,\n onCellFilterChange,\n pagination,\n rowSelection,\n download,\n}: {\n text: string;\n parsed: unknown;\n contentType: string;\n url?: string;\n blob?: Blob;\n bare?: boolean;\n commandRuntime?: ClickyCommandRuntime;\n onTableRowClick?: ClickyTableRowClick;\n getTableRowHref?: ClickyTableRowHref;\n isTableRowClickable?: ClickyTableRowPredicate;\n search?: FilterBarSearchProps;\n timeRange?: FilterBarRangeProps;\n externalFilters?: FilterBarFilter[];\n cellFilters?: Record<string, Record<string, CellFilterMode>>;\n onCellFilterChange?: (change: CellFilterChange) => void;\n pagination?: DataTablePagination;\n rowSelection?: ClickyTableRowSelection;\n download?: ClickyDownloadOptions;\n}) {\n const ct = (contentType.split(\";\")[0] ?? \"\").trim();\n\n if (ct === \"application/pdf\" && blob) {\n return <PdfOutput blob={blob} />;\n }\n\n const clickyPayload: string | ClickyNode | ClickyDocument | undefined =\n typeof parsed === \"string\" || (parsed != null && typeof parsed === \"object\")\n ? (parsed as ClickyNode | ClickyDocument)\n : text;\n const parsedClicky =\n clickyPayload === \"\" ? null : parseClickyData(clickyPayload);\n\n if (\n parsedClicky?.ok ||\n ct === \"application/clicky+json\" ||\n ct === \"application/json+clicky\"\n ) {\n const clicky = (\n <Clicky\n data={\n parsedClicky?.ok\n ? parsedClicky.document\n : ((parsed as Parameters<typeof Clicky>[0][\"data\"]) ?? text)\n }\n {...(url ? { url } : {})}\n {...(commandRuntime ? { commandRuntime } : {})}\n {...(onTableRowClick ? { onTableRowClick } : {})}\n {...(getTableRowHref ? { getTableRowHref } : {})}\n {...(isTableRowClickable ? { isTableRowClickable } : {})}\n {...(search ? { search } : {})}\n {...(timeRange ? { timeRange } : {})}\n {...(externalFilters ? { externalFilters } : {})}\n {...(cellFilters ? { cellFilters } : {})}\n {...(onCellFilterChange ? { onCellFilterChange } : {})}\n {...(pagination ? { pagination } : {})}\n {...(rowSelection ? { rowSelection } : {})}\n {...(download ? { download } : {})}\n className=\"flex min-h-0 flex-1 flex-col\"\n />\n );\n\n const detailOutput = (\n <div className=\"detail-output flex min-h-0 flex-1 flex-col\">\n {clicky}\n </div>\n );\n if (bare) return detailOutput;\n\n return (\n <Tabs\n defaultValue=\"rendered\"\n tabs={[\n { value: \"rendered\", label: \"Rendered\", content: detailOutput },\n { value: \"raw\", label: \"Raw\", content: <TextOutput text={text} /> },\n ]}\n />\n );\n }\n\n if (ct === \"text/html\") {\n const iframe = (\n <iframe\n srcDoc={text}\n className=\"h-[600px] w-full rounded-md border bg-background\"\n sandbox=\"allow-same-origin\"\n />\n );\n if (bare) return iframe;\n return (\n <Tabs\n defaultValue=\"preview\"\n tabs={[\n { value: \"preview\", label: \"Preview\", content: iframe },\n {\n value: \"source\",\n label: \"Source\",\n content: <TextOutput text={text} />,\n },\n ]}\n />\n );\n }\n\n if (parsed) {\n const json = <JsonViewer data={parsed} />;\n if (bare) return json;\n return (\n <Tabs\n defaultValue=\"output\"\n tabs={[\n { value: \"output\", label: \"Output\", content: json },\n { value: \"raw\", label: \"Raw\", content: <TextOutput text={text} /> },\n ]}\n />\n );\n }\n\n if (text) return <TextOutput text={text} />;\n\n return <p className=\"py-4 text-sm text-muted-foreground\">No output</p>;\n}\n\nfunction LoadingOutput({ loadingMessage }: { loadingMessage: string }) {\n return (\n <DataTable<LoadingResultRow>\n data={[]}\n columns={LOADING_RESULT_COLUMNS}\n loading\n loadingMessage={loadingMessage}\n loadingRowCount={8}\n showGlobalFilter={false}\n showDensityControl={false}\n hideableColumns={false}\n resizableColumns={false}\n persistColumnWidths={false}\n persistColumnVisibility={false}\n persistDensity={false}\n />\n );\n}\n\nfunction PdfOutput({ blob }: { blob: Blob }) {\n const [url, setURL] = useState(\"\");\n\n useEffect(() => {\n const next = URL.createObjectURL(blob);\n setURL(next);\n return () => URL.revokeObjectURL(next);\n }, [blob]);\n\n if (!url) return null;\n return (\n <div className=\"space-y-2\">\n <a\n href={url}\n download=\"output.pdf\"\n className=\"inline-block rounded-md border px-3 py-1.5 text-sm hover:bg-accent\"\n >\n Download PDF\n </a>\n <iframe src={url} className=\"h-[600px] w-full rounded-md border\" />\n </div>\n );\n}\n\nfunction JsonViewer({ data }: { data: unknown }) {\n return (\n <div className=\"overflow-auto rounded-md bg-muted p-4 font-mono text-xs\">\n <JsonView\n data={data as object | unknown[]}\n defaultOpenDepth={Number.MAX_SAFE_INTEGER}\n />\n </div>\n );\n}\n\nfunction TextOutput({\n text,\n variant = \"default\",\n}: {\n text: string;\n variant?: \"default\" | \"error\";\n}) {\n return (\n <pre\n className={`max-h-96 overflow-auto whitespace-pre-wrap rounded-md p-4 font-mono text-sm ${\n variant === \"error\"\n ? \"bg-red-50 text-red-800 dark:bg-red-950 dark:text-red-200\"\n : \"bg-muted\"\n }`}\n >\n {text}\n </pre>\n );\n}\n\nfunction Tabs({\n defaultValue,\n tabs,\n}: {\n defaultValue: string;\n tabs: Array<{ value: string; label: string; content: ReactNode }>;\n}) {\n const [value, setValue] = useState(defaultValue);\n const active = tabs.find((tab) => tab.value === value) ?? tabs[0];\n if (!active) return null;\n return (\n <div className=\"space-y-3\">\n <div className=\"inline-flex rounded-md border bg-muted p-1\">\n {tabs.map((tab) => (\n <button\n key={tab.value}\n type=\"button\"\n className={`rounded px-2 py-1 text-xs ${\n tab.value === active.value\n ? \"bg-background text-foreground shadow-sm\"\n : \"text-muted-foreground\"\n }`}\n onClick={() => setValue(tab.value)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n <div>{active.content}</div>\n </div>\n );\n}\n"],"names":["useMemo","jsx","jsxs","cn","parseClickyData","Clicky","DataTable","useState","useEffect","JsonView"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { FilterBarFilter, FilterBarRangeProps, FilterBarSearchProps } from '../components/FilterBar';
2
2
  import { DataTablePagination } from '../data/DataTable';
3
3
  import { ClickyCommandRuntime, ClickyDownloadOptions, ClickyTableRowClick, ClickyTableRowHref, ClickyTableRowPredicate, ClickyTableRowSelection } from '../data/Clicky';
4
+ import { CellFilterChange, CellFilterMode } from '../data/cells/CellFilterActions';
4
5
  import { ExecutionResponse } from './types';
5
6
  export type CommandOutputProps = {
6
7
  response?: ExecutionResponse | null;
@@ -17,9 +18,11 @@ export type CommandOutputProps = {
17
18
  search?: FilterBarSearchProps;
18
19
  timeRange?: FilterBarRangeProps;
19
20
  externalFilters?: FilterBarFilter[];
21
+ cellFilters?: Record<string, Record<string, CellFilterMode>>;
22
+ onCellFilterChange?: (change: CellFilterChange) => void;
20
23
  pagination?: DataTablePagination;
21
24
  rowSelection?: ClickyTableRowSelection;
22
25
  download?: ClickyDownloadOptions;
23
26
  };
24
- export declare function CommandOutput({ response, loading, loadingMessage, emptyMessage, ariaLabel, className, bare, commandRuntime, onTableRowClick, getTableRowHref, isTableRowClickable, search, timeRange, externalFilters, pagination, rowSelection, download, }: CommandOutputProps): import("react/jsx-runtime").JSX.Element;
27
+ export declare function CommandOutput({ response, loading, loadingMessage, emptyMessage, ariaLabel, className, bare, commandRuntime, onTableRowClick, getTableRowHref, isTableRowClickable, search, timeRange, externalFilters, cellFilters, onCellFilterChange, pagination, rowSelection, download, }: CommandOutputProps): import("react/jsx-runtime").JSX.Element;
25
28
  //# sourceMappingURL=CommandOutput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandOutput.d.ts","sourceRoot":"","sources":["../../src/rpc/CommandOutput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAG1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC7B,MAAM,gBAAgB,CAAC;AAIxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAgBF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,OAAe,EACf,cAA6C,EAC7C,YAAiC,EACjC,SAAS,EACT,SAAS,EACT,IAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,MAAM,EACN,SAAS,EACT,eAAe,EACf,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,EAAE,kBAAkB,2CA6GpB"}
1
+ {"version":3,"file":"CommandOutput.d.ts","sourceRoot":"","sources":["../../src/rpc/CommandOutput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAG1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACf,MAAM,iCAAiC,CAAC;AAIzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7D,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAgBF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,OAAe,EACf,cAA6C,EAC7C,YAAiC,EACjC,SAAS,EACT,SAAS,EACT,IAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,MAAM,EACN,SAAS,EACT,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,EAAE,kBAAkB,2CA+GpB"}