@flanksource/clicky-ui 0.3.10 → 0.3.11

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 (1162) hide show
  1. package/NOTICE.md +85 -0
  2. package/README.md +33 -2
  3. package/dist/ai.cjs +71 -5
  4. package/dist/ai.cjs.map +1 -1
  5. package/dist/ai.js +71 -5
  6. package/dist/ai.js.map +1 -1
  7. package/dist/chat.cjs +17 -13
  8. package/dist/chat.cjs.map +1 -1
  9. package/dist/chat.js +8 -4
  10. package/dist/clicky.d.ts +1 -1
  11. package/dist/clicky.d.ts.map +1 -1
  12. package/dist/comments/CommentCard.cjs +84 -38
  13. package/dist/comments/CommentCard.cjs.map +1 -1
  14. package/dist/comments/CommentCard.d.ts +1 -1
  15. package/dist/comments/CommentCard.d.ts.map +1 -1
  16. package/dist/comments/CommentCard.js +85 -39
  17. package/dist/comments/CommentCard.js.map +1 -1
  18. package/dist/comments/CommentComposer.cjs +21 -11
  19. package/dist/comments/CommentComposer.cjs.map +1 -1
  20. package/dist/comments/CommentComposer.d.ts.map +1 -1
  21. package/dist/comments/CommentComposer.js +21 -11
  22. package/dist/comments/CommentComposer.js.map +1 -1
  23. package/dist/comments/CommentProvider.cjs +84 -12
  24. package/dist/comments/CommentProvider.cjs.map +1 -1
  25. package/dist/comments/CommentProvider.d.ts +4 -2
  26. package/dist/comments/CommentProvider.d.ts.map +1 -1
  27. package/dist/comments/CommentProvider.js +86 -14
  28. package/dist/comments/CommentProvider.js.map +1 -1
  29. package/dist/comments/CommentSidePanel.cjs +116 -38
  30. package/dist/comments/CommentSidePanel.cjs.map +1 -1
  31. package/dist/comments/CommentSidePanel.d.ts +2 -0
  32. package/dist/comments/CommentSidePanel.d.ts.map +1 -1
  33. package/dist/comments/CommentSidePanel.js +117 -39
  34. package/dist/comments/CommentSidePanel.js.map +1 -1
  35. package/dist/comments/CommentThread.cjs +4 -0
  36. package/dist/comments/CommentThread.cjs.map +1 -1
  37. package/dist/comments/CommentThread.d.ts +5 -1
  38. package/dist/comments/CommentThread.d.ts.map +1 -1
  39. package/dist/comments/CommentThread.js +4 -0
  40. package/dist/comments/CommentThread.js.map +1 -1
  41. package/dist/comments/CommentThreadList.cjs +17 -5
  42. package/dist/comments/CommentThreadList.cjs.map +1 -1
  43. package/dist/comments/CommentThreadList.d.ts +3 -1
  44. package/dist/comments/CommentThreadList.d.ts.map +1 -1
  45. package/dist/comments/CommentThreadList.js +18 -6
  46. package/dist/comments/CommentThreadList.js.map +1 -1
  47. package/dist/comments/comment-context.cjs +88 -0
  48. package/dist/comments/comment-context.cjs.map +1 -1
  49. package/dist/comments/comment-context.d.ts +26 -0
  50. package/dist/comments/comment-context.d.ts.map +1 -1
  51. package/dist/comments/comment-context.js +89 -1
  52. package/dist/comments/comment-context.js.map +1 -1
  53. package/dist/comments.cjs +3 -0
  54. package/dist/comments.cjs.map +1 -1
  55. package/dist/comments.d.ts +1 -1
  56. package/dist/comments.d.ts.map +1 -1
  57. package/dist/comments.js +4 -1
  58. package/dist/components/Combobox.cjs +145 -34
  59. package/dist/components/Combobox.cjs.map +1 -1
  60. package/dist/components/Combobox.d.ts +24 -1
  61. package/dist/components/Combobox.d.ts.map +1 -1
  62. package/dist/components/Combobox.js +147 -36
  63. package/dist/components/Combobox.js.map +1 -1
  64. package/dist/components/DatePicker.cjs +1 -1
  65. package/dist/components/DatePicker.cjs.map +1 -1
  66. package/dist/components/DatePicker.js +1 -1
  67. package/dist/components/DatePicker.js.map +1 -1
  68. package/dist/components/DateTimePicker.cjs +1 -1
  69. package/dist/components/DateTimePicker.cjs.map +1 -1
  70. package/dist/components/DateTimePicker.js +1 -1
  71. package/dist/components/DateTimePicker.js.map +1 -1
  72. package/dist/components/FilterBar.cjs +41 -459
  73. package/dist/components/FilterBar.cjs.map +1 -1
  74. package/dist/components/FilterBar.d.ts +4 -62
  75. package/dist/components/FilterBar.d.ts.map +1 -1
  76. package/dist/components/FilterBar.js +13 -430
  77. package/dist/components/FilterBar.js.map +1 -1
  78. package/dist/components/InputField.cjs +97 -0
  79. package/dist/components/InputField.cjs.map +1 -0
  80. package/dist/components/InputField.d.ts +42 -0
  81. package/dist/components/InputField.d.ts.map +1 -0
  82. package/dist/components/InputField.js +97 -0
  83. package/dist/components/InputField.js.map +1 -0
  84. package/dist/components/JsonSchemaForm.cjs +90 -15
  85. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  86. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  87. package/dist/components/JsonSchemaForm.js +92 -17
  88. package/dist/components/JsonSchemaForm.js.map +1 -1
  89. package/dist/components/MdxEditorField.cjs.map +1 -1
  90. package/dist/components/MdxEditorField.d.ts +1 -1
  91. package/dist/components/MdxEditorField.d.ts.map +1 -1
  92. package/dist/components/MdxEditorField.js.map +1 -1
  93. package/dist/components/MdxEditorToolbar.cjs +6 -1
  94. package/dist/components/MdxEditorToolbar.cjs.map +1 -1
  95. package/dist/components/MdxEditorToolbar.d.ts.map +1 -1
  96. package/dist/components/MdxEditorToolbar.js +6 -1
  97. package/dist/components/MdxEditorToolbar.js.map +1 -1
  98. package/dist/components/MultiSelect.cjs +0 -1
  99. package/dist/components/MultiSelect.cjs.map +1 -1
  100. package/dist/components/MultiSelect.d.ts.map +1 -1
  101. package/dist/components/MultiSelect.js +0 -1
  102. package/dist/components/MultiSelect.js.map +1 -1
  103. package/dist/components/SearchInput.cjs +14 -43
  104. package/dist/components/SearchInput.cjs.map +1 -1
  105. package/dist/components/SearchInput.d.ts +6 -5
  106. package/dist/components/SearchInput.d.ts.map +1 -1
  107. package/dist/components/SearchInput.js +15 -44
  108. package/dist/components/SearchInput.js.map +1 -1
  109. package/dist/components/SecretKeySelector.cjs +155 -67
  110. package/dist/components/SecretKeySelector.cjs.map +1 -1
  111. package/dist/components/SecretKeySelector.d.ts +34 -16
  112. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  113. package/dist/components/SecretKeySelector.js +158 -70
  114. package/dist/components/SecretKeySelector.js.map +1 -1
  115. package/dist/components/SecretKeySelector.model.cjs +32 -0
  116. package/dist/components/SecretKeySelector.model.cjs.map +1 -0
  117. package/dist/components/SecretKeySelector.model.d.ts +4 -0
  118. package/dist/components/SecretKeySelector.model.d.ts.map +1 -0
  119. package/dist/components/SecretKeySelector.model.js +32 -0
  120. package/dist/components/SecretKeySelector.model.js.map +1 -0
  121. package/dist/components/SegmentedControl.cjs +41 -6
  122. package/dist/components/SegmentedControl.cjs.map +1 -1
  123. package/dist/components/SegmentedControl.d.ts +7 -3
  124. package/dist/components/SegmentedControl.d.ts.map +1 -1
  125. package/dist/components/SegmentedControl.js +41 -6
  126. package/dist/components/SegmentedControl.js.map +1 -1
  127. package/dist/components/filter-bar-context.cjs +10 -0
  128. package/dist/components/filter-bar-context.cjs.map +1 -0
  129. package/dist/components/filter-bar-context.d.ts +5 -0
  130. package/dist/components/filter-bar-context.d.ts.map +1 -0
  131. package/dist/components/filter-bar-context.js +10 -0
  132. package/dist/components/filter-bar-context.js.map +1 -0
  133. package/dist/components/filter-bar-field-utils.cjs +119 -0
  134. package/dist/components/filter-bar-field-utils.cjs.map +1 -0
  135. package/dist/components/filter-bar-field-utils.d.ts +21 -0
  136. package/dist/components/filter-bar-field-utils.d.ts.map +1 -0
  137. package/dist/components/filter-bar-field-utils.js +119 -0
  138. package/dist/components/filter-bar-field-utils.js.map +1 -0
  139. package/dist/components/filter-bar-multi.cjs +193 -0
  140. package/dist/components/filter-bar-multi.cjs.map +1 -0
  141. package/dist/components/filter-bar-multi.d.ts +74 -0
  142. package/dist/components/filter-bar-multi.d.ts.map +1 -0
  143. package/dist/components/filter-bar-multi.js +193 -0
  144. package/dist/components/filter-bar-multi.js.map +1 -0
  145. package/dist/components/json-schema-form-array.cjs +81 -10
  146. package/dist/components/json-schema-form-array.cjs.map +1 -1
  147. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  148. package/dist/components/json-schema-form-array.js +82 -11
  149. package/dist/components/json-schema-form-array.js.map +1 -1
  150. package/dist/components/json-schema-form-fields.cjs +156 -24
  151. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  152. package/dist/components/json-schema-form-fields.d.ts +9 -1
  153. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  154. package/dist/components/json-schema-form-fields.js +156 -24
  155. package/dist/components/json-schema-form-fields.js.map +1 -1
  156. package/dist/components/json-schema-form-object.cjs +35 -12
  157. package/dist/components/json-schema-form-object.cjs.map +1 -1
  158. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  159. package/dist/components/json-schema-form-object.js +37 -14
  160. package/dist/components/json-schema-form-object.js.map +1 -1
  161. package/dist/components/json-schema-form-render.cjs +21 -3
  162. package/dist/components/json-schema-form-render.cjs.map +1 -1
  163. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  164. package/dist/components/json-schema-form-render.js +22 -4
  165. package/dist/components/json-schema-form-render.js.map +1 -1
  166. package/dist/components/json-schema-form-resolve.cjs +123 -13
  167. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  168. package/dist/components/json-schema-form-resolve.d.ts +1 -0
  169. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  170. package/dist/components/json-schema-form-resolve.js +123 -13
  171. package/dist/components/json-schema-form-resolve.js.map +1 -1
  172. package/dist/components/json-schema-form-types.d.ts +30 -1
  173. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  174. package/dist/components/json-schema-form-utils.cjs +19 -0
  175. package/dist/components/json-schema-form-utils.cjs.map +1 -1
  176. package/dist/components/json-schema-form-utils.d.ts +3 -0
  177. package/dist/components/json-schema-form-utils.d.ts.map +1 -1
  178. package/dist/components/json-schema-form-utils.js +19 -0
  179. package/dist/components/json-schema-form-utils.js.map +1 -1
  180. package/dist/components/loading.cjs +17 -0
  181. package/dist/components/loading.cjs.map +1 -1
  182. package/dist/components/loading.d.ts +9 -0
  183. package/dist/components/loading.d.ts.map +1 -1
  184. package/dist/components/loading.js +17 -0
  185. package/dist/components/loading.js.map +1 -1
  186. package/dist/components/mdx-editor-field-plugins.cjs +28 -4
  187. package/dist/components/mdx-editor-field-plugins.cjs.map +1 -1
  188. package/dist/components/mdx-editor-field-plugins.d.ts.map +1 -1
  189. package/dist/components/mdx-editor-field-plugins.js +28 -4
  190. package/dist/components/mdx-editor-field-plugins.js.map +1 -1
  191. package/dist/components/mdx-editor-options.d.ts +23 -1
  192. package/dist/components/mdx-editor-options.d.ts.map +1 -1
  193. package/dist/components.cjs +13 -1
  194. package/dist/components.cjs.map +1 -1
  195. package/dist/components.d.ts +20 -16
  196. package/dist/components.d.ts.map +1 -1
  197. package/dist/components.js +14 -2
  198. package/dist/components.js.map +1 -1
  199. package/dist/data/Clicky.cjs +301 -51
  200. package/dist/data/Clicky.cjs.map +1 -1
  201. package/dist/data/Clicky.d.ts +21 -3
  202. package/dist/data/Clicky.d.ts.map +1 -1
  203. package/dist/data/Clicky.js +301 -51
  204. package/dist/data/Clicky.js.map +1 -1
  205. package/dist/data/CodeBlock.cjs +100 -20
  206. package/dist/data/CodeBlock.cjs.map +1 -1
  207. package/dist/data/CodeBlock.d.ts +18 -1
  208. package/dist/data/CodeBlock.d.ts.map +1 -1
  209. package/dist/data/CodeBlock.js +101 -21
  210. package/dist/data/CodeBlock.js.map +1 -1
  211. package/dist/data/CodeDiff.cjs +221 -0
  212. package/dist/data/CodeDiff.cjs.map +1 -0
  213. package/dist/data/CodeDiff.d.ts +24 -0
  214. package/dist/data/CodeDiff.d.ts.map +1 -0
  215. package/dist/data/CodeDiff.js +221 -0
  216. package/dist/data/CodeDiff.js.map +1 -0
  217. package/dist/data/DataTable.cjs +359 -219
  218. package/dist/data/DataTable.cjs.map +1 -1
  219. package/dist/data/DataTable.d.ts +12 -0
  220. package/dist/data/DataTable.d.ts.map +1 -1
  221. package/dist/data/DataTable.js +353 -213
  222. package/dist/data/DataTable.js.map +1 -1
  223. package/dist/data/FilterPill.cjs +43 -35
  224. package/dist/data/FilterPill.cjs.map +1 -1
  225. package/dist/data/FilterPill.d.ts +9 -1
  226. package/dist/data/FilterPill.d.ts.map +1 -1
  227. package/dist/data/FilterPill.js +43 -35
  228. package/dist/data/FilterPill.js.map +1 -1
  229. package/dist/data/FixtureEditor/FenceForm.cjs +123 -0
  230. package/dist/data/FixtureEditor/FenceForm.cjs.map +1 -0
  231. package/dist/data/FixtureEditor/FenceForm.d.ts +14 -0
  232. package/dist/data/FixtureEditor/FenceForm.d.ts.map +1 -0
  233. package/dist/data/FixtureEditor/FenceForm.js +123 -0
  234. package/dist/data/FixtureEditor/FenceForm.js.map +1 -0
  235. package/dist/data/FixtureEditor/FixtureEditor.cjs +236 -0
  236. package/dist/data/FixtureEditor/FixtureEditor.cjs.map +1 -0
  237. package/dist/data/FixtureEditor/FixtureEditor.d.ts +3 -0
  238. package/dist/data/FixtureEditor/FixtureEditor.d.ts.map +1 -0
  239. package/dist/data/FixtureEditor/FixtureEditor.js +236 -0
  240. package/dist/data/FixtureEditor/FixtureEditor.js.map +1 -0
  241. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.cjs +128 -0
  242. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.cjs.map +1 -0
  243. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts +8 -0
  244. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts.map +1 -0
  245. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.js +128 -0
  246. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.js.map +1 -0
  247. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.cjs +148 -0
  248. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.cjs.map +1 -0
  249. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts +11 -0
  250. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts.map +1 -0
  251. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.js +148 -0
  252. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.js.map +1 -0
  253. package/dist/data/FixtureEditor/RawFenceEditor.cjs +35 -0
  254. package/dist/data/FixtureEditor/RawFenceEditor.cjs.map +1 -0
  255. package/dist/data/FixtureEditor/RawFenceEditor.d.ts +11 -0
  256. package/dist/data/FixtureEditor/RawFenceEditor.d.ts.map +1 -0
  257. package/dist/data/FixtureEditor/RawFenceEditor.js +35 -0
  258. package/dist/data/FixtureEditor/RawFenceEditor.js.map +1 -0
  259. package/dist/data/FixtureEditor/fixture-blocks.cjs +130 -0
  260. package/dist/data/FixtureEditor/fixture-blocks.cjs.map +1 -0
  261. package/dist/data/FixtureEditor/fixture-blocks.d.ts +26 -0
  262. package/dist/data/FixtureEditor/fixture-blocks.d.ts.map +1 -0
  263. package/dist/data/FixtureEditor/fixture-blocks.js +130 -0
  264. package/dist/data/FixtureEditor/fixture-blocks.js.map +1 -0
  265. package/dist/data/FixtureEditor/fixture-code-block-model.cjs +17 -0
  266. package/dist/data/FixtureEditor/fixture-code-block-model.cjs.map +1 -0
  267. package/dist/data/FixtureEditor/fixture-code-block-model.d.ts +3 -0
  268. package/dist/data/FixtureEditor/fixture-code-block-model.d.ts.map +1 -0
  269. package/dist/data/FixtureEditor/fixture-code-block-model.js +17 -0
  270. package/dist/data/FixtureEditor/fixture-code-block-model.js.map +1 -0
  271. package/dist/data/FixtureEditor/fixture-frontmatter.cjs +300 -0
  272. package/dist/data/FixtureEditor/fixture-frontmatter.cjs.map +1 -0
  273. package/dist/data/FixtureEditor/fixture-frontmatter.d.ts +32 -0
  274. package/dist/data/FixtureEditor/fixture-frontmatter.d.ts.map +1 -0
  275. package/dist/data/FixtureEditor/fixture-frontmatter.js +300 -0
  276. package/dist/data/FixtureEditor/fixture-frontmatter.js.map +1 -0
  277. package/dist/data/FixtureEditor/index.d.ts +5 -0
  278. package/dist/data/FixtureEditor/index.d.ts.map +1 -0
  279. package/dist/data/FixtureEditor/types.d.ts +44 -0
  280. package/dist/data/FixtureEditor/types.d.ts.map +1 -0
  281. package/dist/data/LogDetails.cjs +4 -4
  282. package/dist/data/LogDetails.cjs.map +1 -1
  283. package/dist/data/LogDetails.js +4 -4
  284. package/dist/data/LogDetails.js.map +1 -1
  285. package/dist/data/Markdown.cjs +29 -1
  286. package/dist/data/Markdown.cjs.map +1 -1
  287. package/dist/data/Markdown.d.ts +3 -2
  288. package/dist/data/Markdown.d.ts.map +1 -1
  289. package/dist/data/Markdown.js +30 -2
  290. package/dist/data/Markdown.js.map +1 -1
  291. package/dist/data/Properties.cjs +160 -40
  292. package/dist/data/Properties.cjs.map +1 -1
  293. package/dist/data/Properties.d.ts +8 -2
  294. package/dist/data/Properties.d.ts.map +1 -1
  295. package/dist/data/Properties.js +160 -40
  296. package/dist/data/Properties.js.map +1 -1
  297. package/dist/data/SchemaViewer.cjs +1 -1
  298. package/dist/data/SchemaViewer.cjs.map +1 -1
  299. package/dist/data/SchemaViewer.js +2 -2
  300. package/dist/data/SchemaViewer.js.map +1 -1
  301. package/dist/data/ai/ChatWindow.cjs +336 -18
  302. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  303. package/dist/data/ai/ChatWindow.d.ts +13 -4
  304. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  305. package/dist/data/ai/ChatWindow.js +336 -18
  306. package/dist/data/ai/ChatWindow.js.map +1 -1
  307. package/dist/data/ai/ChatWindow.test-utils.d.ts +12 -0
  308. package/dist/data/ai/ChatWindow.test-utils.d.ts.map +1 -0
  309. package/dist/data/ai/PolicyTree.cjs +265 -0
  310. package/dist/data/ai/PolicyTree.cjs.map +1 -0
  311. package/dist/data/ai/PolicyTree.d.ts +33 -0
  312. package/dist/data/ai/PolicyTree.d.ts.map +1 -0
  313. package/dist/data/ai/PolicyTree.js +265 -0
  314. package/dist/data/ai/PolicyTree.js.map +1 -0
  315. package/dist/data/ai/PromptPicker/PromptPicker.cjs +251 -0
  316. package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -0
  317. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +31 -0
  318. package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -0
  319. package/dist/data/ai/PromptPicker/PromptPicker.js +251 -0
  320. package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -0
  321. package/dist/data/ai/PromptPicker/index.d.ts +4 -0
  322. package/dist/data/ai/PromptPicker/index.d.ts.map +1 -0
  323. package/dist/data/ai/PromptPicker/prompt-runtime.cjs +39 -0
  324. package/dist/data/ai/PromptPicker/prompt-runtime.cjs.map +1 -0
  325. package/dist/data/ai/PromptPicker/prompt-runtime.d.ts +9 -0
  326. package/dist/data/ai/PromptPicker/prompt-runtime.d.ts.map +1 -0
  327. package/dist/data/ai/PromptPicker/prompt-runtime.js +39 -0
  328. package/dist/data/ai/PromptPicker/prompt-runtime.js.map +1 -0
  329. package/dist/data/ai/PromptPicker/types.d.ts +25 -0
  330. package/dist/data/ai/PromptPicker/types.d.ts.map +1 -0
  331. package/dist/data/ai/PromptRunEditor/index.cjs +242 -0
  332. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -0
  333. package/dist/data/ai/PromptRunEditor/index.d.ts +42 -0
  334. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -0
  335. package/dist/data/ai/PromptRunEditor/index.js +242 -0
  336. package/dist/data/ai/PromptRunEditor/index.js.map +1 -0
  337. package/dist/data/ai/RuntimeModePicker.cjs +61 -0
  338. package/dist/data/ai/RuntimeModePicker.cjs.map +1 -0
  339. package/dist/data/ai/RuntimeModePicker.d.ts +12 -0
  340. package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -0
  341. package/dist/data/ai/RuntimeModePicker.js +61 -0
  342. package/dist/data/ai/RuntimeModePicker.js.map +1 -0
  343. package/dist/data/ai/SessionInspector.cjs +432 -0
  344. package/dist/data/ai/SessionInspector.cjs.map +1 -0
  345. package/dist/data/ai/SessionInspector.d.ts +11 -0
  346. package/dist/data/ai/SessionInspector.d.ts.map +1 -0
  347. package/dist/data/ai/SessionInspector.js +432 -0
  348. package/dist/data/ai/SessionInspector.js.map +1 -0
  349. package/dist/data/ai/SessionViewer.cjs +208 -196
  350. package/dist/data/ai/SessionViewer.cjs.map +1 -1
  351. package/dist/data/ai/SessionViewer.d.ts +39 -3
  352. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  353. package/dist/data/ai/SessionViewer.fixtures.d.ts.map +1 -1
  354. package/dist/data/ai/SessionViewer.grouping.cjs +44 -0
  355. package/dist/data/ai/SessionViewer.grouping.cjs.map +1 -0
  356. package/dist/data/ai/SessionViewer.grouping.d.ts +17 -0
  357. package/dist/data/ai/SessionViewer.grouping.d.ts.map +1 -0
  358. package/dist/data/ai/SessionViewer.grouping.js +44 -0
  359. package/dist/data/ai/SessionViewer.grouping.js.map +1 -0
  360. package/dist/data/ai/SessionViewer.input.cjs +219 -0
  361. package/dist/data/ai/SessionViewer.input.cjs.map +1 -0
  362. package/dist/data/ai/SessionViewer.input.d.ts +44 -0
  363. package/dist/data/ai/SessionViewer.input.d.ts.map +1 -0
  364. package/dist/data/ai/SessionViewer.input.js +219 -0
  365. package/dist/data/ai/SessionViewer.input.js.map +1 -0
  366. package/dist/data/ai/SessionViewer.js +209 -197
  367. package/dist/data/ai/SessionViewer.js.map +1 -1
  368. package/dist/data/ai/SessionViewer.model.cjs +203 -105
  369. package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
  370. package/dist/data/ai/SessionViewer.model.d.ts +45 -7
  371. package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
  372. package/dist/data/ai/SessionViewer.model.js +203 -105
  373. package/dist/data/ai/SessionViewer.model.js.map +1 -1
  374. package/dist/data/ai/SessionViewer.rows.cjs +751 -0
  375. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -0
  376. package/dist/data/ai/SessionViewer.rows.d.ts +20 -0
  377. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -0
  378. package/dist/data/ai/SessionViewer.rows.js +751 -0
  379. package/dist/data/ai/SessionViewer.rows.js.map +1 -0
  380. package/dist/data/ai/SessionViewer.unified.d.ts +193 -0
  381. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -0
  382. package/dist/data/ai/SessionViewerMenu.cjs +57 -68
  383. package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
  384. package/dist/data/ai/SessionViewerMenu.d.ts +3 -3
  385. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
  386. package/dist/data/ai/SessionViewerMenu.js +58 -69
  387. package/dist/data/ai/SessionViewerMenu.js.map +1 -1
  388. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.cjs +25 -0
  389. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.cjs.map +1 -0
  390. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts +12 -0
  391. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts.map +1 -0
  392. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.js +25 -0
  393. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.js.map +1 -0
  394. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +44 -0
  395. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -0
  396. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +6 -0
  397. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -0
  398. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +44 -0
  399. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -0
  400. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.cjs +137 -0
  401. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.cjs.map +1 -0
  402. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts +12 -0
  403. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts.map +1 -0
  404. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.js +137 -0
  405. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.js.map +1 -0
  406. package/dist/data/ai/SpecRuntimeEditor/Footer.cjs +29 -0
  407. package/dist/data/ai/SpecRuntimeEditor/Footer.cjs.map +1 -0
  408. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +8 -0
  409. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts.map +1 -0
  410. package/dist/data/ai/SpecRuntimeEditor/Footer.js +29 -0
  411. package/dist/data/ai/SpecRuntimeEditor/Footer.js.map +1 -0
  412. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +481 -0
  413. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -0
  414. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +16 -0
  415. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -0
  416. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +481 -0
  417. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -0
  418. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs +421 -0
  419. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs.map +1 -0
  420. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +17 -0
  421. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts.map +1 -0
  422. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js +421 -0
  423. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js.map +1 -0
  424. package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts +8 -0
  425. package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts.map +1 -0
  426. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +98 -0
  427. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -0
  428. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +10 -0
  429. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -0
  430. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +98 -0
  431. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -0
  432. package/dist/data/ai/SpecRuntimeEditor/Rail.cjs +23 -0
  433. package/dist/data/ai/SpecRuntimeEditor/Rail.cjs.map +1 -0
  434. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +7 -0
  435. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts.map +1 -0
  436. package/dist/data/ai/SpecRuntimeEditor/Rail.js +23 -0
  437. package/dist/data/ai/SpecRuntimeEditor/Rail.js.map +1 -0
  438. package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs +77 -0
  439. package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs.map +1 -0
  440. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +14 -0
  441. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts.map +1 -0
  442. package/dist/data/ai/SpecRuntimeEditor/SectionCard.js +77 -0
  443. package/dist/data/ai/SpecRuntimeEditor/SectionCard.js.map +1 -0
  444. package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs +65 -0
  445. package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -0
  446. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +12 -0
  447. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -0
  448. package/dist/data/ai/SpecRuntimeEditor/VerifySection.js +65 -0
  449. package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -0
  450. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs +227 -0
  451. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs.map +1 -0
  452. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts +8 -0
  453. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -0
  454. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js +227 -0
  455. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js.map +1 -0
  456. package/dist/data/ai/SpecRuntimeEditor/env-model.cjs +45 -0
  457. package/dist/data/ai/SpecRuntimeEditor/env-model.cjs.map +1 -0
  458. package/dist/data/ai/SpecRuntimeEditor/env-model.d.ts +7 -0
  459. package/dist/data/ai/SpecRuntimeEditor/env-model.d.ts.map +1 -0
  460. package/dist/data/ai/SpecRuntimeEditor/env-model.js +45 -0
  461. package/dist/data/ai/SpecRuntimeEditor/env-model.js.map +1 -0
  462. package/dist/data/ai/SpecRuntimeEditor/fields.cjs +287 -0
  463. package/dist/data/ai/SpecRuntimeEditor/fields.cjs.map +1 -0
  464. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +79 -0
  465. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts.map +1 -0
  466. package/dist/data/ai/SpecRuntimeEditor/fields.js +287 -0
  467. package/dist/data/ai/SpecRuntimeEditor/fields.js.map +1 -0
  468. package/dist/data/ai/SpecRuntimeEditor/index.cjs +213 -0
  469. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -0
  470. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +41 -0
  471. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -0
  472. package/dist/data/ai/SpecRuntimeEditor/index.js +213 -0
  473. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -0
  474. package/dist/data/ai/SpecRuntimeEditor/permissions-model.cjs +252 -0
  475. package/dist/data/ai/SpecRuntimeEditor/permissions-model.cjs.map +1 -0
  476. package/dist/data/ai/SpecRuntimeEditor/permissions-model.d.ts +36 -0
  477. package/dist/data/ai/SpecRuntimeEditor/permissions-model.d.ts.map +1 -0
  478. package/dist/data/ai/SpecRuntimeEditor/permissions-model.js +252 -0
  479. package/dist/data/ai/SpecRuntimeEditor/permissions-model.js.map +1 -0
  480. package/dist/data/ai/SpecRuntimeEditor/presets.cjs +214 -0
  481. package/dist/data/ai/SpecRuntimeEditor/presets.cjs.map +1 -0
  482. package/dist/data/ai/SpecRuntimeEditor/presets.d.ts +35 -0
  483. package/dist/data/ai/SpecRuntimeEditor/presets.d.ts.map +1 -0
  484. package/dist/data/ai/SpecRuntimeEditor/presets.js +214 -0
  485. package/dist/data/ai/SpecRuntimeEditor/presets.js.map +1 -0
  486. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs +15 -0
  487. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -0
  488. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +13 -0
  489. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -0
  490. package/dist/data/ai/SpecRuntimeEditor/summaries.js +15 -0
  491. package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -0
  492. package/dist/data/ai/SpecRuntimeEditor/types.cjs +74 -0
  493. package/dist/data/ai/SpecRuntimeEditor/types.cjs.map +1 -0
  494. package/dist/data/ai/SpecRuntimeEditor/types.d.ts +19 -0
  495. package/dist/data/ai/SpecRuntimeEditor/types.d.ts.map +1 -0
  496. package/dist/data/ai/SpecRuntimeEditor/types.js +74 -0
  497. package/dist/data/ai/SpecRuntimeEditor/types.js.map +1 -0
  498. package/dist/data/ai/SpecRuntimeEditor/update.cjs +144 -0
  499. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -0
  500. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +28 -0
  501. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -0
  502. package/dist/data/ai/SpecRuntimeEditor/update.js +144 -0
  503. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -0
  504. package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.cjs +55 -0
  505. package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.cjs.map +1 -0
  506. package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.d.ts +9 -0
  507. package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.d.ts.map +1 -0
  508. package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.js +55 -0
  509. package/dist/data/ai/SpecRuntimeEditor/use-scrollspy.js.map +1 -0
  510. package/dist/data/ai/SpecRuntimeEditor.model.cjs +398 -0
  511. package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -0
  512. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +169 -0
  513. package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -0
  514. package/dist/data/ai/SpecRuntimeEditor.model.js +398 -0
  515. package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -0
  516. package/dist/data/ai/ToolPreferences.cjs +705 -165
  517. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  518. package/dist/data/ai/ToolPreferences.d.ts +29 -5
  519. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  520. package/dist/data/ai/ToolPreferences.js +707 -167
  521. package/dist/data/ai/ToolPreferences.js.map +1 -1
  522. package/dist/data/ai/ToolSchemaBrowser.cjs +549 -0
  523. package/dist/data/ai/ToolSchemaBrowser.cjs.map +1 -0
  524. package/dist/data/ai/ToolSchemaBrowser.d.ts +7 -0
  525. package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -0
  526. package/dist/data/ai/ToolSchemaBrowser.js +549 -0
  527. package/dist/data/ai/ToolSchemaBrowser.js.map +1 -0
  528. package/dist/data/ai/agent-action-icons.cjs +78 -0
  529. package/dist/data/ai/agent-action-icons.cjs.map +1 -0
  530. package/dist/data/ai/agent-action-icons.d.ts +22 -0
  531. package/dist/data/ai/agent-action-icons.d.ts.map +1 -0
  532. package/dist/data/ai/agent-action-icons.js +78 -0
  533. package/dist/data/ai/agent-action-icons.js.map +1 -0
  534. package/dist/data/ai/index.d.ts +21 -6
  535. package/dist/data/ai/index.d.ts.map +1 -1
  536. package/dist/data/ai/model-capabilities.cjs +23 -0
  537. package/dist/data/ai/model-capabilities.cjs.map +1 -0
  538. package/dist/data/ai/model-capabilities.d.ts +9 -0
  539. package/dist/data/ai/model-capabilities.d.ts.map +1 -0
  540. package/dist/data/ai/model-capabilities.js +23 -0
  541. package/dist/data/ai/model-capabilities.js.map +1 -0
  542. package/dist/data/ai/runtime-mode.cjs +133 -0
  543. package/dist/data/ai/runtime-mode.cjs.map +1 -0
  544. package/dist/data/ai/runtime-mode.d.ts +31 -0
  545. package/dist/data/ai/runtime-mode.d.ts.map +1 -0
  546. package/dist/data/ai/runtime-mode.js +133 -0
  547. package/dist/data/ai/runtime-mode.js.map +1 -0
  548. package/dist/data/ai/session-categories.cjs +34 -0
  549. package/dist/data/ai/session-categories.cjs.map +1 -1
  550. package/dist/data/ai/session-categories.d.ts +2 -0
  551. package/dist/data/ai/session-categories.d.ts.map +1 -1
  552. package/dist/data/ai/session-categories.js +34 -0
  553. package/dist/data/ai/session-categories.js.map +1 -1
  554. package/dist/data/ai/session-cost.cjs +13 -0
  555. package/dist/data/ai/session-cost.cjs.map +1 -0
  556. package/dist/data/ai/session-cost.d.ts +8 -0
  557. package/dist/data/ai/session-cost.d.ts.map +1 -0
  558. package/dist/data/ai/session-cost.js +13 -0
  559. package/dist/data/ai/session-cost.js.map +1 -0
  560. package/dist/data/ai/tool-name.d.ts +10 -0
  561. package/dist/data/ai/tool-name.d.ts.map +1 -0
  562. package/dist/data/ai/use-session-scroll.cjs +96 -0
  563. package/dist/data/ai/use-session-scroll.cjs.map +1 -0
  564. package/dist/data/ai/use-session-scroll.d.ts +43 -0
  565. package/dist/data/ai/use-session-scroll.d.ts.map +1 -0
  566. package/dist/data/ai/use-session-scroll.js +96 -0
  567. package/dist/data/ai/use-session-scroll.js.map +1 -0
  568. package/dist/data/cells/TagList.cjs +4 -2
  569. package/dist/data/cells/TagList.cjs.map +1 -1
  570. package/dist/data/cells/TagList.d.ts +2 -1
  571. package/dist/data/cells/TagList.d.ts.map +1 -1
  572. package/dist/data/cells/TagList.js +4 -2
  573. package/dist/data/cells/TagList.js.map +1 -1
  574. package/dist/data/chat/Chat.cjs +49 -15
  575. package/dist/data/chat/Chat.cjs.map +1 -1
  576. package/dist/data/chat/Chat.d.ts +16 -2
  577. package/dist/data/chat/Chat.d.ts.map +1 -1
  578. package/dist/data/chat/Chat.js +49 -15
  579. package/dist/data/chat/Chat.js.map +1 -1
  580. package/dist/data/chat/ContextMeter.cjs +164 -0
  581. package/dist/data/chat/ContextMeter.cjs.map +1 -0
  582. package/dist/data/chat/ContextMeter.d.ts +50 -0
  583. package/dist/data/chat/ContextMeter.d.ts.map +1 -0
  584. package/dist/data/chat/ContextMeter.js +164 -0
  585. package/dist/data/chat/ContextMeter.js.map +1 -0
  586. package/dist/data/chat/ModelSelector.cjs +139 -10
  587. package/dist/data/chat/ModelSelector.cjs.map +1 -1
  588. package/dist/data/chat/ModelSelector.d.ts +44 -3
  589. package/dist/data/chat/ModelSelector.d.ts.map +1 -1
  590. package/dist/data/chat/ModelSelector.js +141 -12
  591. package/dist/data/chat/ModelSelector.js.map +1 -1
  592. package/dist/data/chat/clickyOperationsToTools.cjs +83 -69
  593. package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -1
  594. package/dist/data/chat/clickyOperationsToTools.d.ts +3 -3
  595. package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -1
  596. package/dist/data/chat/clickyOperationsToTools.js +83 -69
  597. package/dist/data/chat/clickyOperationsToTools.js.map +1 -1
  598. package/dist/data/chat/effort-icons.cjs +43 -0
  599. package/dist/data/chat/effort-icons.cjs.map +1 -0
  600. package/dist/data/chat/effort-icons.d.ts +10 -0
  601. package/dist/data/chat/effort-icons.d.ts.map +1 -0
  602. package/dist/data/chat/effort-icons.js +43 -0
  603. package/dist/data/chat/effort-icons.js.map +1 -0
  604. package/dist/data/chat/index.d.ts +3 -3
  605. package/dist/data/chat/index.d.ts.map +1 -1
  606. package/dist/data/chat/provider-icons.cjs +25 -6
  607. package/dist/data/chat/provider-icons.cjs.map +1 -1
  608. package/dist/data/chat/provider-icons.d.ts +3 -5
  609. package/dist/data/chat/provider-icons.d.ts.map +1 -1
  610. package/dist/data/chat/provider-icons.js +25 -6
  611. package/dist/data/chat/provider-icons.js.map +1 -1
  612. package/dist/data/chat/types.cjs +42 -0
  613. package/dist/data/chat/types.cjs.map +1 -1
  614. package/dist/data/chat/types.d.ts +83 -19
  615. package/dist/data/chat/types.d.ts.map +1 -1
  616. package/dist/data/chat/types.js +42 -0
  617. package/dist/data/chat/types.js.map +1 -1
  618. package/dist/data/code-block-actions.cjs +101 -0
  619. package/dist/data/code-block-actions.cjs.map +1 -0
  620. package/dist/data/code-block-actions.d.ts +20 -0
  621. package/dist/data/code-block-actions.d.ts.map +1 -0
  622. package/dist/data/code-block-actions.js +101 -0
  623. package/dist/data/code-block-actions.js.map +1 -0
  624. package/dist/data/code-diff.cjs +106 -0
  625. package/dist/data/code-diff.cjs.map +1 -0
  626. package/dist/data/code-diff.d.ts +20 -0
  627. package/dist/data/code-diff.d.ts.map +1 -0
  628. package/dist/data/code-diff.js +106 -0
  629. package/dist/data/code-diff.js.map +1 -0
  630. package/dist/data/code-highlight.cjs +30 -0
  631. package/dist/data/code-highlight.cjs.map +1 -1
  632. package/dist/data/code-highlight.d.ts +8 -0
  633. package/dist/data/code-highlight.d.ts.map +1 -1
  634. package/dist/data/code-highlight.js +30 -0
  635. package/dist/data/code-highlight.js.map +1 -1
  636. package/dist/data/git/GitChangeList.cjs +410 -0
  637. package/dist/data/git/GitChangeList.cjs.map +1 -0
  638. package/dist/data/git/GitChangeList.d.ts +69 -0
  639. package/dist/data/git/GitChangeList.d.ts.map +1 -0
  640. package/dist/data/git/GitChangeList.js +410 -0
  641. package/dist/data/git/GitChangeList.js.map +1 -0
  642. package/dist/data/git/git-dates.cjs +37 -0
  643. package/dist/data/git/git-dates.cjs.map +1 -0
  644. package/dist/data/git/git-dates.d.ts +4 -0
  645. package/dist/data/git/git-dates.d.ts.map +1 -0
  646. package/dist/data/git/git-dates.js +37 -0
  647. package/dist/data/git/git-dates.js.map +1 -0
  648. package/dist/data/git/index.d.ts +3 -0
  649. package/dist/data/git/index.d.ts.map +1 -0
  650. package/dist/data/query-browser/QueryBrowser.cjs +323 -0
  651. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -0
  652. package/dist/data/query-browser/QueryBrowser.completion.cjs +99 -0
  653. package/dist/data/query-browser/QueryBrowser.completion.cjs.map +1 -0
  654. package/dist/data/query-browser/QueryBrowser.completion.d.ts +34 -0
  655. package/dist/data/query-browser/QueryBrowser.completion.d.ts.map +1 -0
  656. package/dist/data/query-browser/QueryBrowser.completion.js +99 -0
  657. package/dist/data/query-browser/QueryBrowser.completion.js.map +1 -0
  658. package/dist/data/query-browser/QueryBrowser.d.ts +42 -0
  659. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -0
  660. package/dist/data/query-browser/QueryBrowser.js +323 -0
  661. package/dist/data/query-browser/QueryBrowser.js.map +1 -0
  662. package/dist/data/query-browser/index.d.ts +3 -0
  663. package/dist/data/query-browser/index.d.ts.map +1 -0
  664. package/dist/data/version-info.cjs +3 -3
  665. package/dist/data/version-info.cjs.map +1 -1
  666. package/dist/data/version-info.js +3 -3
  667. package/dist/data/version-info.js.map +1 -1
  668. package/dist/data.cjs +164 -0
  669. package/dist/data.cjs.map +1 -1
  670. package/dist/data.d.ts +7 -2
  671. package/dist/data.d.ts.map +1 -1
  672. package/dist/data.js +166 -2
  673. package/dist/data.js.map +1 -1
  674. package/dist/icons/components/UiArrowFatUp.cjs +15 -0
  675. package/dist/icons/components/UiArrowFatUp.cjs.map +1 -0
  676. package/dist/icons/components/UiArrowFatUp.d.ts +15 -0
  677. package/dist/icons/components/UiArrowFatUp.d.ts.map +1 -0
  678. package/dist/icons/components/UiArrowFatUp.js +15 -0
  679. package/dist/icons/components/UiArrowFatUp.js.map +1 -0
  680. package/dist/icons/components/UiAsterisk.cjs +15 -0
  681. package/dist/icons/components/UiAsterisk.cjs.map +1 -0
  682. package/dist/icons/components/UiAsterisk.d.ts +15 -0
  683. package/dist/icons/components/UiAsterisk.d.ts.map +1 -0
  684. package/dist/icons/components/UiAsterisk.js +15 -0
  685. package/dist/icons/components/UiAsterisk.js.map +1 -0
  686. package/dist/icons/components/UiAtom.cjs +15 -0
  687. package/dist/icons/components/UiAtom.cjs.map +1 -0
  688. package/dist/icons/components/UiAtom.d.ts +15 -0
  689. package/dist/icons/components/UiAtom.d.ts.map +1 -0
  690. package/dist/icons/components/UiAtom.js +15 -0
  691. package/dist/icons/components/UiAtom.js.map +1 -0
  692. package/dist/icons/components/UiBatteryChargingVertical.cjs +15 -0
  693. package/dist/icons/components/UiBatteryChargingVertical.cjs.map +1 -0
  694. package/dist/icons/components/UiBatteryChargingVertical.d.ts +15 -0
  695. package/dist/icons/components/UiBatteryChargingVertical.d.ts.map +1 -0
  696. package/dist/icons/components/UiBatteryChargingVertical.js +15 -0
  697. package/dist/icons/components/UiBatteryChargingVertical.js.map +1 -0
  698. package/dist/icons/components/UiBatteryVerticalEmpty.cjs +15 -0
  699. package/dist/icons/components/UiBatteryVerticalEmpty.cjs.map +1 -0
  700. package/dist/icons/components/UiBatteryVerticalEmpty.d.ts +15 -0
  701. package/dist/icons/components/UiBatteryVerticalEmpty.d.ts.map +1 -0
  702. package/dist/icons/components/UiBatteryVerticalEmpty.js +15 -0
  703. package/dist/icons/components/UiBatteryVerticalEmpty.js.map +1 -0
  704. package/dist/icons/components/UiBatteryVerticalFull.cjs +15 -0
  705. package/dist/icons/components/UiBatteryVerticalFull.cjs.map +1 -0
  706. package/dist/icons/components/UiBatteryVerticalFull.d.ts +15 -0
  707. package/dist/icons/components/UiBatteryVerticalFull.d.ts.map +1 -0
  708. package/dist/icons/components/UiBatteryVerticalFull.js +15 -0
  709. package/dist/icons/components/UiBatteryVerticalFull.js.map +1 -0
  710. package/dist/icons/components/UiBatteryVerticalHigh.cjs +15 -0
  711. package/dist/icons/components/UiBatteryVerticalHigh.cjs.map +1 -0
  712. package/dist/icons/components/UiBatteryVerticalHigh.d.ts +15 -0
  713. package/dist/icons/components/UiBatteryVerticalHigh.d.ts.map +1 -0
  714. package/dist/icons/components/UiBatteryVerticalHigh.js +15 -0
  715. package/dist/icons/components/UiBatteryVerticalHigh.js.map +1 -0
  716. package/dist/icons/components/UiBatteryVerticalLow.cjs +15 -0
  717. package/dist/icons/components/UiBatteryVerticalLow.cjs.map +1 -0
  718. package/dist/icons/components/UiBatteryVerticalLow.d.ts +15 -0
  719. package/dist/icons/components/UiBatteryVerticalLow.d.ts.map +1 -0
  720. package/dist/icons/components/UiBatteryVerticalLow.js +15 -0
  721. package/dist/icons/components/UiBatteryVerticalLow.js.map +1 -0
  722. package/dist/icons/components/UiBatteryVerticalMedium.cjs +15 -0
  723. package/dist/icons/components/UiBatteryVerticalMedium.cjs.map +1 -0
  724. package/dist/icons/components/UiBatteryVerticalMedium.d.ts +15 -0
  725. package/dist/icons/components/UiBatteryVerticalMedium.d.ts.map +1 -0
  726. package/dist/icons/components/UiBatteryVerticalMedium.js +15 -0
  727. package/dist/icons/components/UiBatteryVerticalMedium.js.map +1 -0
  728. package/dist/icons/components/UiChatDots.cjs +15 -0
  729. package/dist/icons/components/UiChatDots.cjs.map +1 -0
  730. package/dist/icons/components/UiChatDots.d.ts +15 -0
  731. package/dist/icons/components/UiChatDots.d.ts.map +1 -0
  732. package/dist/icons/components/UiChatDots.js +15 -0
  733. package/dist/icons/components/UiChatDots.js.map +1 -0
  734. package/dist/icons/components/UiCoins.cjs +15 -0
  735. package/dist/icons/components/UiCoins.cjs.map +1 -0
  736. package/dist/icons/components/UiCoins.d.ts +15 -0
  737. package/dist/icons/components/UiCoins.d.ts.map +1 -0
  738. package/dist/icons/components/UiCoins.js +15 -0
  739. package/dist/icons/components/UiCoins.js.map +1 -0
  740. package/dist/icons/components/UiCompass.cjs +15 -0
  741. package/dist/icons/components/UiCompass.cjs.map +1 -0
  742. package/dist/icons/components/UiCompass.d.ts +15 -0
  743. package/dist/icons/components/UiCompass.d.ts.map +1 -0
  744. package/dist/icons/components/UiCompass.js +15 -0
  745. package/dist/icons/components/UiCompass.js.map +1 -0
  746. package/dist/icons/components/UiCurrencyDollar.cjs +15 -0
  747. package/dist/icons/components/UiCurrencyDollar.cjs.map +1 -0
  748. package/dist/icons/components/UiCurrencyDollar.d.ts +15 -0
  749. package/dist/icons/components/UiCurrencyDollar.d.ts.map +1 -0
  750. package/dist/icons/components/UiCurrencyDollar.js +15 -0
  751. package/dist/icons/components/UiCurrencyDollar.js.map +1 -0
  752. package/dist/icons/components/UiCursorClick.cjs +15 -0
  753. package/dist/icons/components/UiCursorClick.cjs.map +1 -0
  754. package/dist/icons/components/UiCursorClick.d.ts +15 -0
  755. package/dist/icons/components/UiCursorClick.d.ts.map +1 -0
  756. package/dist/icons/components/UiCursorClick.js +15 -0
  757. package/dist/icons/components/UiCursorClick.js.map +1 -0
  758. package/dist/icons/components/UiCursorText.cjs +15 -0
  759. package/dist/icons/components/UiCursorText.cjs.map +1 -0
  760. package/dist/icons/components/UiCursorText.d.ts +15 -0
  761. package/dist/icons/components/UiCursorText.d.ts.map +1 -0
  762. package/dist/icons/components/UiCursorText.js +15 -0
  763. package/dist/icons/components/UiCursorText.js.map +1 -0
  764. package/dist/icons/components/UiEllipsisBold.cjs +10 -0
  765. package/dist/icons/components/UiEllipsisBold.cjs.map +1 -0
  766. package/dist/icons/components/UiEllipsisBold.d.ts +9 -0
  767. package/dist/icons/components/UiEllipsisBold.d.ts.map +1 -0
  768. package/dist/icons/components/UiEllipsisBold.js +10 -0
  769. package/dist/icons/components/UiEllipsisBold.js.map +1 -0
  770. package/dist/icons/components/UiFastForwardCircle.cjs +15 -0
  771. package/dist/icons/components/UiFastForwardCircle.cjs.map +1 -0
  772. package/dist/icons/components/UiFastForwardCircle.d.ts +15 -0
  773. package/dist/icons/components/UiFastForwardCircle.d.ts.map +1 -0
  774. package/dist/icons/components/UiFastForwardCircle.js +15 -0
  775. package/dist/icons/components/UiFastForwardCircle.js.map +1 -0
  776. package/dist/icons/components/UiFilePlus.cjs +15 -0
  777. package/dist/icons/components/UiFilePlus.cjs.map +1 -0
  778. package/dist/icons/components/UiFilePlus.d.ts +15 -0
  779. package/dist/icons/components/UiFilePlus.d.ts.map +1 -0
  780. package/dist/icons/components/UiFilePlus.js +15 -0
  781. package/dist/icons/components/UiFilePlus.js.map +1 -0
  782. package/dist/icons/components/UiGavel.cjs +15 -0
  783. package/dist/icons/components/UiGavel.cjs.map +1 -0
  784. package/dist/icons/components/UiGavel.d.ts +15 -0
  785. package/dist/icons/components/UiGavel.d.ts.map +1 -0
  786. package/dist/icons/components/UiGavel.js +15 -0
  787. package/dist/icons/components/UiGavel.js.map +1 -0
  788. package/dist/icons/components/UiGearSix.cjs +15 -0
  789. package/dist/icons/components/UiGearSix.cjs.map +1 -0
  790. package/dist/icons/components/UiGearSix.d.ts +15 -0
  791. package/dist/icons/components/UiGearSix.d.ts.map +1 -0
  792. package/dist/icons/components/UiGearSix.js +15 -0
  793. package/dist/icons/components/UiGearSix.js.map +1 -0
  794. package/dist/icons/components/UiGitCommit.cjs +15 -0
  795. package/dist/icons/components/UiGitCommit.cjs.map +1 -0
  796. package/dist/icons/components/UiGitCommit.d.ts +15 -0
  797. package/dist/icons/components/UiGitCommit.d.ts.map +1 -0
  798. package/dist/icons/components/UiGitCommit.js +15 -0
  799. package/dist/icons/components/UiGitCommit.js.map +1 -0
  800. package/dist/icons/components/UiHandPalm.cjs +15 -0
  801. package/dist/icons/components/UiHandPalm.cjs.map +1 -0
  802. package/dist/icons/components/UiHandPalm.d.ts +15 -0
  803. package/dist/icons/components/UiHandPalm.d.ts.map +1 -0
  804. package/dist/icons/components/UiHandPalm.js +15 -0
  805. package/dist/icons/components/UiHandPalm.js.map +1 -0
  806. package/dist/icons/components/UiKeyboard.cjs +15 -0
  807. package/dist/icons/components/UiKeyboard.cjs.map +1 -0
  808. package/dist/icons/components/UiKeyboard.d.ts +15 -0
  809. package/dist/icons/components/UiKeyboard.d.ts.map +1 -0
  810. package/dist/icons/components/UiKeyboard.js +15 -0
  811. package/dist/icons/components/UiKeyboard.js.map +1 -0
  812. package/dist/icons/components/UiListChecks.cjs +15 -0
  813. package/dist/icons/components/UiListChecks.cjs.map +1 -0
  814. package/dist/icons/components/UiListChecks.d.ts +15 -0
  815. package/dist/icons/components/UiListChecks.d.ts.map +1 -0
  816. package/dist/icons/components/UiListChecks.js +15 -0
  817. package/dist/icons/components/UiListChecks.js.map +1 -0
  818. package/dist/icons/components/UiLogoAnthropic.cjs +10 -0
  819. package/dist/icons/components/UiLogoAnthropic.cjs.map +1 -0
  820. package/dist/icons/components/UiLogoAnthropic.d.ts +9 -0
  821. package/dist/icons/components/UiLogoAnthropic.d.ts.map +1 -0
  822. package/dist/icons/components/UiLogoAnthropic.js +10 -0
  823. package/dist/icons/components/UiLogoAnthropic.js.map +1 -0
  824. package/dist/icons/components/UiLogoClaude.cjs +10 -0
  825. package/dist/icons/components/UiLogoClaude.cjs.map +1 -0
  826. package/dist/icons/components/UiLogoClaude.d.ts +9 -0
  827. package/dist/icons/components/UiLogoClaude.d.ts.map +1 -0
  828. package/dist/icons/components/UiLogoClaude.js +10 -0
  829. package/dist/icons/components/UiLogoClaude.js.map +1 -0
  830. package/dist/icons/components/UiLogoDeepseek.cjs +10 -0
  831. package/dist/icons/components/UiLogoDeepseek.cjs.map +1 -0
  832. package/dist/icons/components/UiLogoDeepseek.d.ts +9 -0
  833. package/dist/icons/components/UiLogoDeepseek.d.ts.map +1 -0
  834. package/dist/icons/components/UiLogoDeepseek.js +10 -0
  835. package/dist/icons/components/UiLogoDeepseek.js.map +1 -0
  836. package/dist/icons/components/UiLogoGemini.cjs +10 -0
  837. package/dist/icons/components/UiLogoGemini.cjs.map +1 -0
  838. package/dist/icons/components/UiLogoGemini.d.ts +9 -0
  839. package/dist/icons/components/UiLogoGemini.d.ts.map +1 -0
  840. package/dist/icons/components/UiLogoGemini.js +10 -0
  841. package/dist/icons/components/UiLogoGemini.js.map +1 -0
  842. package/dist/icons/components/UiLogoGoogle.cjs +10 -0
  843. package/dist/icons/components/UiLogoGoogle.cjs.map +1 -0
  844. package/dist/icons/components/UiLogoGoogle.d.ts +9 -0
  845. package/dist/icons/components/UiLogoGoogle.d.ts.map +1 -0
  846. package/dist/icons/components/UiLogoGoogle.js +10 -0
  847. package/dist/icons/components/UiLogoGoogle.js.map +1 -0
  848. package/dist/icons/components/UiLogoHuggingface.cjs +10 -0
  849. package/dist/icons/components/UiLogoHuggingface.cjs.map +1 -0
  850. package/dist/icons/components/UiLogoHuggingface.d.ts +9 -0
  851. package/dist/icons/components/UiLogoHuggingface.d.ts.map +1 -0
  852. package/dist/icons/components/UiLogoHuggingface.js +10 -0
  853. package/dist/icons/components/UiLogoHuggingface.js.map +1 -0
  854. package/dist/icons/components/UiLogoMeta.cjs +10 -0
  855. package/dist/icons/components/UiLogoMeta.cjs.map +1 -0
  856. package/dist/icons/components/UiLogoMeta.d.ts +9 -0
  857. package/dist/icons/components/UiLogoMeta.d.ts.map +1 -0
  858. package/dist/icons/components/UiLogoMeta.js +10 -0
  859. package/dist/icons/components/UiLogoMeta.js.map +1 -0
  860. package/dist/icons/components/UiLogoMistral.cjs +10 -0
  861. package/dist/icons/components/UiLogoMistral.cjs.map +1 -0
  862. package/dist/icons/components/UiLogoMistral.d.ts +9 -0
  863. package/dist/icons/components/UiLogoMistral.d.ts.map +1 -0
  864. package/dist/icons/components/UiLogoMistral.js +10 -0
  865. package/dist/icons/components/UiLogoMistral.js.map +1 -0
  866. package/dist/icons/components/UiLogoOllama.cjs +10 -0
  867. package/dist/icons/components/UiLogoOllama.cjs.map +1 -0
  868. package/dist/icons/components/UiLogoOllama.d.ts +9 -0
  869. package/dist/icons/components/UiLogoOllama.d.ts.map +1 -0
  870. package/dist/icons/components/UiLogoOllama.js +10 -0
  871. package/dist/icons/components/UiLogoOllama.js.map +1 -0
  872. package/dist/icons/components/UiLogoOpenai.cjs +10 -0
  873. package/dist/icons/components/UiLogoOpenai.cjs.map +1 -0
  874. package/dist/icons/components/UiLogoOpenai.d.ts +9 -0
  875. package/dist/icons/components/UiLogoOpenai.d.ts.map +1 -0
  876. package/dist/icons/components/UiLogoOpenai.js +10 -0
  877. package/dist/icons/components/UiLogoOpenai.js.map +1 -0
  878. package/dist/icons/components/UiLogoPerplexity.cjs +10 -0
  879. package/dist/icons/components/UiLogoPerplexity.cjs.map +1 -0
  880. package/dist/icons/components/UiLogoPerplexity.d.ts +9 -0
  881. package/dist/icons/components/UiLogoPerplexity.d.ts.map +1 -0
  882. package/dist/icons/components/UiLogoPerplexity.js +10 -0
  883. package/dist/icons/components/UiLogoPerplexity.js.map +1 -0
  884. package/dist/icons/components/UiPalette.cjs +15 -0
  885. package/dist/icons/components/UiPalette.cjs.map +1 -0
  886. package/dist/icons/components/UiPalette.d.ts +15 -0
  887. package/dist/icons/components/UiPalette.d.ts.map +1 -0
  888. package/dist/icons/components/UiPalette.js +15 -0
  889. package/dist/icons/components/UiPalette.js.map +1 -0
  890. package/dist/icons/components/UiPauseCircle.cjs +15 -0
  891. package/dist/icons/components/UiPauseCircle.cjs.map +1 -0
  892. package/dist/icons/components/UiPauseCircle.d.ts +15 -0
  893. package/dist/icons/components/UiPauseCircle.d.ts.map +1 -0
  894. package/dist/icons/components/UiPauseCircle.js +15 -0
  895. package/dist/icons/components/UiPauseCircle.js.map +1 -0
  896. package/dist/icons/components/UiPencilSimpleLine.cjs +15 -0
  897. package/dist/icons/components/UiPencilSimpleLine.cjs.map +1 -0
  898. package/dist/icons/components/UiPencilSimpleLine.d.ts +15 -0
  899. package/dist/icons/components/UiPencilSimpleLine.d.ts.map +1 -0
  900. package/dist/icons/components/UiPencilSimpleLine.js +15 -0
  901. package/dist/icons/components/UiPencilSimpleLine.js.map +1 -0
  902. package/dist/icons/components/UiPlugsConnected.cjs +15 -0
  903. package/dist/icons/components/UiPlugsConnected.cjs.map +1 -0
  904. package/dist/icons/components/UiPlugsConnected.d.ts +15 -0
  905. package/dist/icons/components/UiPlugsConnected.d.ts.map +1 -0
  906. package/dist/icons/components/UiPlugsConnected.js +15 -0
  907. package/dist/icons/components/UiPlugsConnected.js.map +1 -0
  908. package/dist/icons/components/UiProhibit.cjs +15 -0
  909. package/dist/icons/components/UiProhibit.cjs.map +1 -0
  910. package/dist/icons/components/UiProhibit.d.ts +15 -0
  911. package/dist/icons/components/UiProhibit.d.ts.map +1 -0
  912. package/dist/icons/components/UiProhibit.js +15 -0
  913. package/dist/icons/components/UiProhibit.js.map +1 -0
  914. package/dist/icons/components/UiRepeat.cjs +15 -0
  915. package/dist/icons/components/UiRepeat.cjs.map +1 -0
  916. package/dist/icons/components/UiRepeat.d.ts +15 -0
  917. package/dist/icons/components/UiRepeat.d.ts.map +1 -0
  918. package/dist/icons/components/UiRepeat.js +15 -0
  919. package/dist/icons/components/UiRepeat.js.map +1 -0
  920. package/dist/icons/components/UiScan.cjs +15 -0
  921. package/dist/icons/components/UiScan.cjs.map +1 -0
  922. package/dist/icons/components/UiScan.d.ts +15 -0
  923. package/dist/icons/components/UiScan.d.ts.map +1 -0
  924. package/dist/icons/components/UiScan.js +15 -0
  925. package/dist/icons/components/UiScan.js.map +1 -0
  926. package/dist/icons/components/UiScroll.cjs +15 -0
  927. package/dist/icons/components/UiScroll.cjs.map +1 -0
  928. package/dist/icons/components/UiScroll.d.ts +15 -0
  929. package/dist/icons/components/UiScroll.d.ts.map +1 -0
  930. package/dist/icons/components/UiScroll.js +15 -0
  931. package/dist/icons/components/UiScroll.js.map +1 -0
  932. package/dist/icons/components/UiShieldSlash.cjs +15 -0
  933. package/dist/icons/components/UiShieldSlash.cjs.map +1 -0
  934. package/dist/icons/components/UiShieldSlash.d.ts +15 -0
  935. package/dist/icons/components/UiShieldSlash.d.ts.map +1 -0
  936. package/dist/icons/components/UiShieldSlash.js +15 -0
  937. package/dist/icons/components/UiShieldSlash.js.map +1 -0
  938. package/dist/icons/components/UiStack.cjs +19 -0
  939. package/dist/icons/components/UiStack.cjs.map +1 -0
  940. package/dist/icons/components/UiStack.d.ts +15 -0
  941. package/dist/icons/components/UiStack.d.ts.map +1 -0
  942. package/dist/icons/components/UiStack.js +19 -0
  943. package/dist/icons/components/UiStack.js.map +1 -0
  944. package/dist/icons/components/UiStrategy.cjs +15 -0
  945. package/dist/icons/components/UiStrategy.cjs.map +1 -0
  946. package/dist/icons/components/UiStrategy.d.ts +15 -0
  947. package/dist/icons/components/UiStrategy.d.ts.map +1 -0
  948. package/dist/icons/components/UiStrategy.js +15 -0
  949. package/dist/icons/components/UiStrategy.js.map +1 -0
  950. package/dist/icons/components/UiThermometer.cjs +15 -0
  951. package/dist/icons/components/UiThermometer.cjs.map +1 -0
  952. package/dist/icons/components/UiThermometer.d.ts +15 -0
  953. package/dist/icons/components/UiThermometer.d.ts.map +1 -0
  954. package/dist/icons/components/UiThermometer.js +15 -0
  955. package/dist/icons/components/UiThermometer.js.map +1 -0
  956. package/dist/icons/components/UiTimer.cjs +15 -0
  957. package/dist/icons/components/UiTimer.cjs.map +1 -0
  958. package/dist/icons/components/UiTimer.d.ts +15 -0
  959. package/dist/icons/components/UiTimer.d.ts.map +1 -0
  960. package/dist/icons/components/UiTimer.js +15 -0
  961. package/dist/icons/components/UiTimer.js.map +1 -0
  962. package/dist/icons/index.d.ts +84 -0
  963. package/dist/icons/index.d.ts.map +1 -1
  964. package/dist/icons.cjs +132 -0
  965. package/dist/icons.cjs.map +1 -1
  966. package/dist/icons.js +132 -0
  967. package/dist/icons.js.map +1 -1
  968. package/dist/index.cjs +186 -1
  969. package/dist/index.cjs.map +1 -1
  970. package/dist/index.js +190 -5
  971. package/dist/index.js.map +1 -1
  972. package/dist/layout/Workspace.cjs +191 -0
  973. package/dist/layout/Workspace.cjs.map +1 -0
  974. package/dist/layout/Workspace.d.ts +17 -0
  975. package/dist/layout/Workspace.d.ts.map +1 -0
  976. package/dist/layout/Workspace.js +191 -0
  977. package/dist/layout/Workspace.js.map +1 -0
  978. package/dist/layout/Workspace.model.cjs +142 -0
  979. package/dist/layout/Workspace.model.cjs.map +1 -0
  980. package/dist/layout/Workspace.model.d.ts +43 -0
  981. package/dist/layout/Workspace.model.d.ts.map +1 -0
  982. package/dist/layout/Workspace.model.js +142 -0
  983. package/dist/layout/Workspace.model.js.map +1 -0
  984. package/dist/layout/Workspace.regions.cjs +305 -0
  985. package/dist/layout/Workspace.regions.cjs.map +1 -0
  986. package/dist/layout/Workspace.regions.d.ts +17 -0
  987. package/dist/layout/Workspace.regions.d.ts.map +1 -0
  988. package/dist/layout/Workspace.regions.js +305 -0
  989. package/dist/layout/Workspace.regions.js.map +1 -0
  990. package/dist/lib/tokens.cjs +14 -0
  991. package/dist/lib/tokens.cjs.map +1 -0
  992. package/dist/lib/tokens.d.ts +5 -0
  993. package/dist/lib/tokens.d.ts.map +1 -0
  994. package/dist/lib/tokens.js +14 -0
  995. package/dist/lib/tokens.js.map +1 -0
  996. package/dist/monaco/MonacoEditor.cjs +69 -0
  997. package/dist/monaco/MonacoEditor.cjs.map +1 -0
  998. package/dist/monaco/MonacoEditor.d.ts +5 -0
  999. package/dist/monaco/MonacoEditor.d.ts.map +1 -0
  1000. package/dist/monaco/MonacoEditor.js +52 -0
  1001. package/dist/monaco/MonacoEditor.js.map +1 -0
  1002. package/dist/monaco/MonacoProvider.cjs +22 -0
  1003. package/dist/monaco/MonacoProvider.cjs.map +1 -0
  1004. package/dist/monaco/MonacoProvider.d.ts +3 -0
  1005. package/dist/monaco/MonacoProvider.d.ts.map +1 -0
  1006. package/dist/monaco/MonacoProvider.js +22 -0
  1007. package/dist/monaco/MonacoProvider.js.map +1 -0
  1008. package/dist/monaco/MonacoSchemaEditor.cjs +108 -0
  1009. package/dist/monaco/MonacoSchemaEditor.cjs.map +1 -0
  1010. package/dist/monaco/MonacoSchemaEditor.d.ts +4 -0
  1011. package/dist/monaco/MonacoSchemaEditor.d.ts.map +1 -0
  1012. package/dist/monaco/MonacoSchemaEditor.js +108 -0
  1013. package/dist/monaco/MonacoSchemaEditor.js.map +1 -0
  1014. package/dist/monaco/schema-normalizer.cjs +38 -0
  1015. package/dist/monaco/schema-normalizer.cjs.map +1 -0
  1016. package/dist/monaco/schema-normalizer.d.ts +7 -0
  1017. package/dist/monaco/schema-normalizer.d.ts.map +1 -0
  1018. package/dist/monaco/schema-normalizer.js +38 -0
  1019. package/dist/monaco/schema-normalizer.js.map +1 -0
  1020. package/dist/monaco/schema-registry.cjs +67 -0
  1021. package/dist/monaco/schema-registry.cjs.map +1 -0
  1022. package/dist/monaco/schema-registry.d.ts +3 -0
  1023. package/dist/monaco/schema-registry.d.ts.map +1 -0
  1024. package/dist/monaco/schema-registry.js +67 -0
  1025. package/dist/monaco/schema-registry.js.map +1 -0
  1026. package/dist/monaco/types.d.ts +31 -0
  1027. package/dist/monaco/types.d.ts.map +1 -0
  1028. package/dist/monaco/use-monaco-worker.cjs +10 -0
  1029. package/dist/monaco/use-monaco-worker.cjs.map +1 -0
  1030. package/dist/monaco/use-monaco-worker.d.ts +4 -0
  1031. package/dist/monaco/use-monaco-worker.d.ts.map +1 -0
  1032. package/dist/monaco/use-monaco-worker.js +10 -0
  1033. package/dist/monaco/use-monaco-worker.js.map +1 -0
  1034. package/dist/monaco-schema.cjs +5 -0
  1035. package/dist/monaco-schema.cjs.map +1 -0
  1036. package/dist/monaco-schema.d.ts +3 -0
  1037. package/dist/monaco-schema.d.ts.map +1 -0
  1038. package/dist/monaco-schema.js +5 -0
  1039. package/dist/monaco-schema.js.map +1 -0
  1040. package/dist/monaco.cjs +11 -0
  1041. package/dist/monaco.cjs.map +1 -0
  1042. package/dist/monaco.d.ts +6 -0
  1043. package/dist/monaco.d.ts.map +1 -0
  1044. package/dist/monaco.js +11 -0
  1045. package/dist/monaco.js.map +1 -0
  1046. package/dist/overlay/CellActions.cjs +183 -0
  1047. package/dist/overlay/CellActions.cjs.map +1 -0
  1048. package/dist/overlay/CellActions.d.ts +18 -0
  1049. package/dist/overlay/CellActions.d.ts.map +1 -0
  1050. package/dist/overlay/CellActions.js +183 -0
  1051. package/dist/overlay/CellActions.js.map +1 -0
  1052. package/dist/overlay/DropdownMenu.cjs +50 -59
  1053. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  1054. package/dist/overlay/DropdownMenu.d.ts +21 -2
  1055. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  1056. package/dist/overlay/DropdownMenu.js +38 -47
  1057. package/dist/overlay/DropdownMenu.js.map +1 -1
  1058. package/dist/overlay/DropdownMenuSubmenu.cjs +210 -0
  1059. package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -0
  1060. package/dist/overlay/DropdownMenuSubmenu.d.ts +12 -0
  1061. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -0
  1062. package/dist/overlay/DropdownMenuSubmenu.js +210 -0
  1063. package/dist/overlay/DropdownMenuSubmenu.js.map +1 -0
  1064. package/dist/overlay/Modal.cjs +14 -2
  1065. package/dist/overlay/Modal.cjs.map +1 -1
  1066. package/dist/overlay/Modal.d.ts +9 -2
  1067. package/dist/overlay/Modal.d.ts.map +1 -1
  1068. package/dist/overlay/Modal.js +14 -2
  1069. package/dist/overlay/Modal.js.map +1 -1
  1070. package/dist/overlay/dropdownMenuContext.cjs +16 -0
  1071. package/dist/overlay/dropdownMenuContext.cjs.map +1 -0
  1072. package/dist/overlay/dropdownMenuContext.d.ts +16 -0
  1073. package/dist/overlay/dropdownMenuContext.d.ts.map +1 -0
  1074. package/dist/overlay/dropdownMenuContext.js +16 -0
  1075. package/dist/overlay/dropdownMenuContext.js.map +1 -0
  1076. package/dist/rpc/CommandOutput.cjs +28 -9
  1077. package/dist/rpc/CommandOutput.cjs.map +1 -1
  1078. package/dist/rpc/CommandOutput.d.ts +4 -2
  1079. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  1080. package/dist/rpc/CommandOutput.js +28 -9
  1081. package/dist/rpc/CommandOutput.js.map +1 -1
  1082. package/dist/rpc/EntityExplorerApp.cjs +8 -1
  1083. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  1084. package/dist/rpc/EntityExplorerApp.d.ts +9 -1
  1085. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  1086. package/dist/rpc/EntityExplorerApp.js +8 -1
  1087. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  1088. package/dist/rpc/OperationActionBar.cjs +63 -41
  1089. package/dist/rpc/OperationActionBar.cjs.map +1 -1
  1090. package/dist/rpc/OperationActionBar.d.ts +2 -1
  1091. package/dist/rpc/OperationActionBar.d.ts.map +1 -1
  1092. package/dist/rpc/OperationActionBar.js +63 -41
  1093. package/dist/rpc/OperationActionBar.js.map +1 -1
  1094. package/dist/rpc/OperationCatalog.cjs +111 -80
  1095. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  1096. package/dist/rpc/OperationCatalog.d.ts +2 -1
  1097. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  1098. package/dist/rpc/OperationCatalog.js +112 -81
  1099. package/dist/rpc/OperationCatalog.js.map +1 -1
  1100. package/dist/rpc/OperationCommandPage.cjs +2 -0
  1101. package/dist/rpc/OperationCommandPage.cjs.map +1 -1
  1102. package/dist/rpc/OperationCommandPage.d.ts +3 -2
  1103. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  1104. package/dist/rpc/OperationCommandPage.js +2 -0
  1105. package/dist/rpc/OperationCommandPage.js.map +1 -1
  1106. package/dist/rpc/OperationEntityContextPicker.cjs +448 -0
  1107. package/dist/rpc/OperationEntityContextPicker.cjs.map +1 -0
  1108. package/dist/rpc/OperationEntityContextPicker.d.ts +28 -0
  1109. package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -0
  1110. package/dist/rpc/OperationEntityContextPicker.js +448 -0
  1111. package/dist/rpc/OperationEntityContextPicker.js.map +1 -0
  1112. package/dist/rpc/OperationEntityContextPicker.model.cjs +60 -0
  1113. package/dist/rpc/OperationEntityContextPicker.model.cjs.map +1 -0
  1114. package/dist/rpc/OperationEntityContextPicker.model.d.ts +7 -0
  1115. package/dist/rpc/OperationEntityContextPicker.model.d.ts.map +1 -0
  1116. package/dist/rpc/OperationEntityContextPicker.model.js +60 -0
  1117. package/dist/rpc/OperationEntityContextPicker.model.js.map +1 -0
  1118. package/dist/rpc/OperationEntityPage.cjs +47 -22
  1119. package/dist/rpc/OperationEntityPage.cjs.map +1 -1
  1120. package/dist/rpc/OperationEntityPage.d.ts +32 -2
  1121. package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
  1122. package/dist/rpc/OperationEntityPage.js +47 -22
  1123. package/dist/rpc/OperationEntityPage.js.map +1 -1
  1124. package/dist/rpc/OperationResultView.cjs +4 -2
  1125. package/dist/rpc/OperationResultView.cjs.map +1 -1
  1126. package/dist/rpc/OperationResultView.d.ts +3 -2
  1127. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  1128. package/dist/rpc/OperationResultView.js +4 -2
  1129. package/dist/rpc/OperationResultView.js.map +1 -1
  1130. package/dist/rpc/SchemaActionForm.cjs +151 -17
  1131. package/dist/rpc/SchemaActionForm.cjs.map +1 -1
  1132. package/dist/rpc/SchemaActionForm.d.ts +7 -1
  1133. package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
  1134. package/dist/rpc/SchemaActionForm.js +152 -18
  1135. package/dist/rpc/SchemaActionForm.js.map +1 -1
  1136. package/dist/rpc/types.cjs.map +1 -1
  1137. package/dist/rpc/types.d.ts +24 -0
  1138. package/dist/rpc/types.d.ts.map +1 -1
  1139. package/dist/rpc/types.js.map +1 -1
  1140. package/dist/rpc.cjs +6 -0
  1141. package/dist/rpc.cjs.map +1 -1
  1142. package/dist/rpc.d.ts +5 -3
  1143. package/dist/rpc.d.ts.map +1 -1
  1144. package/dist/rpc.js +6 -0
  1145. package/dist/rpc.js.map +1 -1
  1146. package/dist/styles.css +1 -1
  1147. package/dist/tailwind-preset.cjs +8 -0
  1148. package/dist/tailwind-preset.cjs.map +1 -1
  1149. package/dist/tailwind-preset.d.ts.map +1 -1
  1150. package/dist/tailwind-preset.js +8 -0
  1151. package/dist/tailwind-preset.js.map +1 -1
  1152. package/oxlint-plugins/README.md +82 -19
  1153. package/oxlint-plugins/clicky-ui-no-adhoc-overlay.js +5 -50
  1154. package/oxlint-plugins/clicky-ui-no-direct-z-index.js +134 -0
  1155. package/oxlint-plugins/clicky-ui.js +3 -0
  1156. package/package.json +26 -3
  1157. package/dist/data/chat/ContextUsage.cjs +0 -99
  1158. package/dist/data/chat/ContextUsage.cjs.map +0 -1
  1159. package/dist/data/chat/ContextUsage.d.ts +0 -19
  1160. package/dist/data/chat/ContextUsage.d.ts.map +0 -1
  1161. package/dist/data/chat/ContextUsage.js +0 -99
  1162. package/dist/data/chat/ContextUsage.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const react = require("react");
5
- const utils = require("../lib/utils.cjs");
6
4
  const Icon = require("../data/Icon.cjs");
5
+ const utils = require("../lib/utils.cjs");
6
+ const InputField = require("./InputField.cjs");
7
7
  const UiSearch = require("../icons/components/UiSearch.cjs");
8
8
  function SearchInput({
9
9
  value,
@@ -11,51 +11,22 @@ function SearchInput({
11
11
  placeholder = "Search…",
12
12
  shortcut = "⌘K",
13
13
  onShortcut,
14
+ prefix,
14
15
  className,
15
16
  ...rest
16
17
  }) {
17
- const inputRef = react.useRef(null);
18
- const shortcutKey = shortcut ? shortcut.slice(-1).toLowerCase() : "k";
19
- react.useEffect(() => {
20
- if (!onShortcut) return;
21
- const handler = (e) => {
22
- var _a;
23
- if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === shortcutKey) {
24
- e.preventDefault();
25
- onShortcut();
26
- (_a = inputRef.current) == null ? void 0 : _a.focus();
27
- }
28
- };
29
- window.addEventListener("keydown", handler);
30
- return () => window.removeEventListener("keydown", handler);
31
- }, [onShortcut, shortcutKey]);
32
- return /* @__PURE__ */ jsxRuntime.jsxs(
33
- "div",
18
+ return /* @__PURE__ */ jsxRuntime.jsx(
19
+ InputField.InputField,
34
20
  {
35
- className: utils.cn(
36
- "flex items-center gap-density-2 rounded-md border border-border bg-secondary px-density-3",
37
- "h-control-h focus-within:ring-2 focus-within:ring-ring",
38
- className
39
- ),
40
- children: [
41
- /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiSearch.UiSearch, className: "shrink-0 text-muted-foreground" }),
42
- /* @__PURE__ */ jsxRuntime.jsx(
43
- "input",
44
- {
45
- ref: inputRef,
46
- type: "search",
47
- value,
48
- onChange: (e) => onChange(e.target.value),
49
- placeholder,
50
- className: utils.cn(
51
- "min-w-0 flex-1 border-none bg-transparent text-sm text-foreground outline-none",
52
- "placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:appearance-none"
53
- ),
54
- ...rest
55
- }
56
- ),
57
- shortcut && /* @__PURE__ */ jsxRuntime.jsx("kbd", { className: "shrink-0 rounded border border-border px-1 font-mono text-[10px] text-muted-foreground", children: shortcut })
58
- ]
21
+ type: "search",
22
+ value,
23
+ onChange: (next) => onChange(next),
24
+ placeholder,
25
+ shortcut,
26
+ onShortcut,
27
+ prefix: prefix ?? /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiSearch.UiSearch, className: "shrink-0 text-muted-foreground" }),
28
+ className: utils.cn("bg-secondary px-density-3", className),
29
+ ...rest
59
30
  }
60
31
  );
61
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.cjs","sources":["../../src/components/SearchInput.tsx"],"sourcesContent":["import { useEffect, useRef, type InputHTMLAttributes } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"../data/Icon\";\nimport { UiSearch } from \"../icons\";\n\ntype NativeInputProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"onChange\" | \"size\"\n>;\n\nexport type SearchInputProps = NativeInputProps & {\n /** Controlled query value. */\n value: string;\n /** Called with the next query string. */\n onChange: (value: string) => void;\n /** Placeholder text. */\n placeholder?: string;\n /**\n * Keyboard-shortcut hint rendered as a trailing `<kbd>` (Gavel's `⌘K`).\n * Pass `null` to hide it. Defaults to `⌘K`.\n */\n shortcut?: string | null;\n /**\n * When set, the matching shortcut (cmd/ctrl + the last character of\n * `shortcut`, default `k`) focuses the input from anywhere on the page.\n */\n onShortcut?: () => void;\n /** Classes applied to the wrapper. */\n className?: string;\n};\n\n/**\n * Search field with a leading magnifier and an optional trailing keyboard-hint\n * (the Gavel app-bar `⌘K` search). Controlled. Built on clicky tokens. When\n * `onShortcut` is provided, a global cmd/ctrl+K listener is wired so the field\n * can be focused from anywhere.\n */\nexport function SearchInput({\n value,\n onChange,\n placeholder = \"Search…\",\n shortcut = \"⌘K\",\n onShortcut,\n className,\n ...rest\n}: SearchInputProps) {\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n // Match cmd/ctrl + the shortcut's trailing key (e.g. \"k\" from \"⌘K\").\n const shortcutKey = shortcut ? shortcut.slice(-1).toLowerCase() : \"k\";\n\n useEffect(() => {\n if (!onShortcut) return;\n const handler = (e: KeyboardEvent) => {\n if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === shortcutKey) {\n e.preventDefault();\n onShortcut();\n inputRef.current?.focus();\n }\n };\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n }, [onShortcut, shortcutKey]);\n\n return (\n <div\n className={cn(\n \"flex items-center gap-density-2 rounded-md border border-border bg-secondary px-density-3\",\n \"h-control-h focus-within:ring-2 focus-within:ring-ring\",\n className,\n )}\n >\n <Icon icon={UiSearch} className=\"shrink-0 text-muted-foreground\" />\n <input\n ref={inputRef}\n type=\"search\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={placeholder}\n className={cn(\n \"min-w-0 flex-1 border-none bg-transparent text-sm text-foreground outline-none\",\n \"placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:appearance-none\",\n )}\n {...rest}\n />\n {shortcut && (\n <kbd className=\"shrink-0 rounded border border-border px-1 font-mono text-[10px] text-muted-foreground\">\n {shortcut}\n </kbd>\n )}\n </div>\n );\n}\n"],"names":["useRef","useEffect","jsxs","cn","jsx","Icon","UiSearch"],"mappings":";;;;;;;AAqCO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAqB;AACnB,QAAM,WAAWA,MAAAA,OAAgC,IAAI;AAGrD,QAAM,cAAc,WAAW,SAAS,MAAM,EAAE,EAAE,gBAAgB;AAElEC,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,WAAY;AACjB,UAAM,UAAU,CAAC,MAAqB;;AACpC,WAAK,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,YAAA,MAAkB,aAAa;AACnE,UAAE,eAAA;AACF,mBAAA;AACA,uBAAS,YAAT,mBAAkB;AAAA,MACpB;AAAA,IACF;AACA,WAAO,iBAAiB,WAAW,OAAO;AAC1C,WAAO,MAAM,OAAO,oBAAoB,WAAW,OAAO;AAAA,EAC5D,GAAG,CAAC,YAAY,WAAW,CAAC;AAE5B,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,MAAAA;AAAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAAC,2BAAAA,IAACC,KAAAA,MAAA,EAAK,MAAMC,SAAAA,UAAU,WAAU,kCAAiC;AAAA,QACjEF,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,MAAK;AAAA,YACL;AAAA,YACA,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,YACxC;AAAA,YACA,WAAWD,MAAAA;AAAAA,cACT;AAAA,cACA;AAAA,YAAA;AAAA,YAED,GAAG;AAAA,UAAA;AAAA,QAAA;AAAA,QAEL,YACCC,2BAAAA,IAAC,OAAA,EAAI,WAAU,0FACZ,UAAA,SAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;;"}
1
+ {"version":3,"file":"SearchInput.cjs","sources":["../../src/components/SearchInput.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Icon } from \"../data/Icon\";\nimport { UiSearch } from \"../icons\";\nimport { cn } from \"../lib/utils\";\nimport { InputField, type InputFieldInputProps } from \"./InputField\";\n\nexport type SearchInputProps = Omit<\n InputFieldInputProps,\n \"onChange\" | \"prefix\" | \"type\" | \"value\"\n> & {\n /** Controlled query value. */\n value: string;\n /** Called with the next query string. */\n onChange: (value: string) => void;\n /** Placeholder text. */\n placeholder?: string;\n /** Leading adornment. Defaults to the search icon. */\n prefix?: ReactNode | undefined;\n /**\n * Keyboard-shortcut hint rendered as a trailing `<kbd>` (Gavel's `⌘K`).\n * Pass `null` to hide it. Defaults to `⌘K`.\n */\n shortcut?: string | null;\n /**\n * When set, the matching shortcut (cmd/ctrl + the last character of\n * `shortcut`, default `k`) focuses the input from anywhere on the page.\n */\n onShortcut?: () => void;\n /** Classes applied to the wrapper. */\n className?: string;\n};\n\n/**\n * Search field with a leading magnifier and an optional trailing keyboard-hint\n * (the Gavel app-bar `⌘K` search). Controlled. Built on clicky tokens. When\n * `onShortcut` is provided, a global cmd/ctrl+K listener is wired so the field\n * can be focused from anywhere.\n */\nexport function SearchInput({\n value,\n onChange,\n placeholder = \"Search…\",\n shortcut = \"⌘K\",\n onShortcut,\n prefix,\n className,\n ...rest\n}: SearchInputProps) {\n return (\n <InputField\n type=\"search\"\n value={value}\n onChange={(next) => onChange(next)}\n placeholder={placeholder}\n shortcut={shortcut}\n onShortcut={onShortcut}\n prefix={\n prefix ?? (\n <Icon icon={UiSearch} className=\"shrink-0 text-muted-foreground\" />\n )\n }\n className={cn(\"bg-secondary px-density-3\", className)}\n {...rest}\n />\n );\n}\n"],"names":["jsx","InputField","Icon","UiSearch","cn"],"mappings":";;;;;;;AAsCO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAqB;AACnB,SACEA,2BAAAA;AAAAA,IAACC,WAAAA;AAAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL;AAAA,MACA,UAAU,CAAC,SAAS,SAAS,IAAI;AAAA,MACjC;AAAA,MACA;AAAA,MACA;AAAA,MACA,QACE,UACED,2BAAAA,IAACE,KAAAA,QAAK,MAAMC,SAAAA,UAAU,WAAU,kCAAiC;AAAA,MAGrE,WAAWC,MAAAA,GAAG,6BAA6B,SAAS;AAAA,MACnD,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;;"}
@@ -1,12 +1,14 @@
1
- import { InputHTMLAttributes } from 'react';
2
- type NativeInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "size">;
3
- export type SearchInputProps = NativeInputProps & {
1
+ import { ReactNode } from 'react';
2
+ import { InputFieldInputProps } from './InputField';
3
+ export type SearchInputProps = Omit<InputFieldInputProps, "onChange" | "prefix" | "type" | "value"> & {
4
4
  /** Controlled query value. */
5
5
  value: string;
6
6
  /** Called with the next query string. */
7
7
  onChange: (value: string) => void;
8
8
  /** Placeholder text. */
9
9
  placeholder?: string;
10
+ /** Leading adornment. Defaults to the search icon. */
11
+ prefix?: ReactNode | undefined;
10
12
  /**
11
13
  * Keyboard-shortcut hint rendered as a trailing `<kbd>` (Gavel's `⌘K`).
12
14
  * Pass `null` to hide it. Defaults to `⌘K`.
@@ -26,6 +28,5 @@ export type SearchInputProps = NativeInputProps & {
26
28
  * `onShortcut` is provided, a global cmd/ctrl+K listener is wired so the field
27
29
  * can be focused from anywhere.
28
30
  */
29
- export declare function SearchInput({ value, onChange, placeholder, shortcut, onShortcut, className, ...rest }: SearchInputProps): import("react/jsx-runtime").JSX.Element;
30
- export {};
31
+ export declare function SearchInput({ value, onChange, placeholder, shortcut, onShortcut, prefix, className, ...rest }: SearchInputProps): import("react/jsx-runtime").JSX.Element;
31
32
  //# sourceMappingURL=SearchInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../src/components/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAKpE,KAAK,gBAAgB,GAAG,IAAI,CAC1B,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,OAAO,GAAG,UAAU,GAAG,MAAM,CAC9B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG;IAChD,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,WAAuB,EACvB,QAAe,EACf,UAAU,EACV,SAAS,EACT,GAAG,IAAI,EACR,EAAE,gBAAgB,2CA+ClB"}
1
+ {"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../src/components/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAc,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,oBAAoB,EACpB,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CACzC,GAAG;IACF,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,WAAuB,EACvB,QAAe,EACf,UAAU,EACV,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE,gBAAgB,2CAkBlB"}
@@ -1,7 +1,7 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { useRef, useEffect } from "react";
3
- import { cn } from "../lib/utils.js";
1
+ import { jsx } from "react/jsx-runtime";
4
2
  import { Icon } from "../data/Icon.js";
3
+ import { cn } from "../lib/utils.js";
4
+ import { InputField } from "./InputField.js";
5
5
  import { UiSearch } from "../icons/components/UiSearch.js";
6
6
  function SearchInput({
7
7
  value,
@@ -9,51 +9,22 @@ function SearchInput({
9
9
  placeholder = "Search…",
10
10
  shortcut = "⌘K",
11
11
  onShortcut,
12
+ prefix,
12
13
  className,
13
14
  ...rest
14
15
  }) {
15
- const inputRef = useRef(null);
16
- const shortcutKey = shortcut ? shortcut.slice(-1).toLowerCase() : "k";
17
- useEffect(() => {
18
- if (!onShortcut) return;
19
- const handler = (e) => {
20
- var _a;
21
- if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === shortcutKey) {
22
- e.preventDefault();
23
- onShortcut();
24
- (_a = inputRef.current) == null ? void 0 : _a.focus();
25
- }
26
- };
27
- window.addEventListener("keydown", handler);
28
- return () => window.removeEventListener("keydown", handler);
29
- }, [onShortcut, shortcutKey]);
30
- return /* @__PURE__ */ jsxs(
31
- "div",
16
+ return /* @__PURE__ */ jsx(
17
+ InputField,
32
18
  {
33
- className: cn(
34
- "flex items-center gap-density-2 rounded-md border border-border bg-secondary px-density-3",
35
- "h-control-h focus-within:ring-2 focus-within:ring-ring",
36
- className
37
- ),
38
- children: [
39
- /* @__PURE__ */ jsx(Icon, { icon: UiSearch, className: "shrink-0 text-muted-foreground" }),
40
- /* @__PURE__ */ jsx(
41
- "input",
42
- {
43
- ref: inputRef,
44
- type: "search",
45
- value,
46
- onChange: (e) => onChange(e.target.value),
47
- placeholder,
48
- className: cn(
49
- "min-w-0 flex-1 border-none bg-transparent text-sm text-foreground outline-none",
50
- "placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:appearance-none"
51
- ),
52
- ...rest
53
- }
54
- ),
55
- shortcut && /* @__PURE__ */ jsx("kbd", { className: "shrink-0 rounded border border-border px-1 font-mono text-[10px] text-muted-foreground", children: shortcut })
56
- ]
19
+ type: "search",
20
+ value,
21
+ onChange: (next) => onChange(next),
22
+ placeholder,
23
+ shortcut,
24
+ onShortcut,
25
+ prefix: prefix ?? /* @__PURE__ */ jsx(Icon, { icon: UiSearch, className: "shrink-0 text-muted-foreground" }),
26
+ className: cn("bg-secondary px-density-3", className),
27
+ ...rest
57
28
  }
58
29
  );
59
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.js","sources":["../../src/components/SearchInput.tsx"],"sourcesContent":["import { useEffect, useRef, type InputHTMLAttributes } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"../data/Icon\";\nimport { UiSearch } from \"../icons\";\n\ntype NativeInputProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"onChange\" | \"size\"\n>;\n\nexport type SearchInputProps = NativeInputProps & {\n /** Controlled query value. */\n value: string;\n /** Called with the next query string. */\n onChange: (value: string) => void;\n /** Placeholder text. */\n placeholder?: string;\n /**\n * Keyboard-shortcut hint rendered as a trailing `<kbd>` (Gavel's `⌘K`).\n * Pass `null` to hide it. Defaults to `⌘K`.\n */\n shortcut?: string | null;\n /**\n * When set, the matching shortcut (cmd/ctrl + the last character of\n * `shortcut`, default `k`) focuses the input from anywhere on the page.\n */\n onShortcut?: () => void;\n /** Classes applied to the wrapper. */\n className?: string;\n};\n\n/**\n * Search field with a leading magnifier and an optional trailing keyboard-hint\n * (the Gavel app-bar `⌘K` search). Controlled. Built on clicky tokens. When\n * `onShortcut` is provided, a global cmd/ctrl+K listener is wired so the field\n * can be focused from anywhere.\n */\nexport function SearchInput({\n value,\n onChange,\n placeholder = \"Search…\",\n shortcut = \"⌘K\",\n onShortcut,\n className,\n ...rest\n}: SearchInputProps) {\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n // Match cmd/ctrl + the shortcut's trailing key (e.g. \"k\" from \"⌘K\").\n const shortcutKey = shortcut ? shortcut.slice(-1).toLowerCase() : \"k\";\n\n useEffect(() => {\n if (!onShortcut) return;\n const handler = (e: KeyboardEvent) => {\n if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === shortcutKey) {\n e.preventDefault();\n onShortcut();\n inputRef.current?.focus();\n }\n };\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n }, [onShortcut, shortcutKey]);\n\n return (\n <div\n className={cn(\n \"flex items-center gap-density-2 rounded-md border border-border bg-secondary px-density-3\",\n \"h-control-h focus-within:ring-2 focus-within:ring-ring\",\n className,\n )}\n >\n <Icon icon={UiSearch} className=\"shrink-0 text-muted-foreground\" />\n <input\n ref={inputRef}\n type=\"search\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={placeholder}\n className={cn(\n \"min-w-0 flex-1 border-none bg-transparent text-sm text-foreground outline-none\",\n \"placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:appearance-none\",\n )}\n {...rest}\n />\n {shortcut && (\n <kbd className=\"shrink-0 rounded border border-border px-1 font-mono text-[10px] text-muted-foreground\">\n {shortcut}\n </kbd>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;AAqCO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAqB;AACnB,QAAM,WAAW,OAAgC,IAAI;AAGrD,QAAM,cAAc,WAAW,SAAS,MAAM,EAAE,EAAE,gBAAgB;AAElE,YAAU,MAAM;AACd,QAAI,CAAC,WAAY;AACjB,UAAM,UAAU,CAAC,MAAqB;;AACpC,WAAK,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,YAAA,MAAkB,aAAa;AACnE,UAAE,eAAA;AACF,mBAAA;AACA,uBAAS,YAAT,mBAAkB;AAAA,MACpB;AAAA,IACF;AACA,WAAO,iBAAiB,WAAW,OAAO;AAC1C,WAAO,MAAM,OAAO,oBAAoB,WAAW,OAAO;AAAA,EAC5D,GAAG,CAAC,YAAY,WAAW,CAAC;AAE5B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,oBAAC,MAAA,EAAK,MAAM,UAAU,WAAU,kCAAiC;AAAA,QACjE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,MAAK;AAAA,YACL;AAAA,YACA,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,YACxC;AAAA,YACA,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YAAA;AAAA,YAED,GAAG;AAAA,UAAA;AAAA,QAAA;AAAA,QAEL,YACC,oBAAC,OAAA,EAAI,WAAU,0FACZ,UAAA,SAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"SearchInput.js","sources":["../../src/components/SearchInput.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Icon } from \"../data/Icon\";\nimport { UiSearch } from \"../icons\";\nimport { cn } from \"../lib/utils\";\nimport { InputField, type InputFieldInputProps } from \"./InputField\";\n\nexport type SearchInputProps = Omit<\n InputFieldInputProps,\n \"onChange\" | \"prefix\" | \"type\" | \"value\"\n> & {\n /** Controlled query value. */\n value: string;\n /** Called with the next query string. */\n onChange: (value: string) => void;\n /** Placeholder text. */\n placeholder?: string;\n /** Leading adornment. Defaults to the search icon. */\n prefix?: ReactNode | undefined;\n /**\n * Keyboard-shortcut hint rendered as a trailing `<kbd>` (Gavel's `⌘K`).\n * Pass `null` to hide it. Defaults to `⌘K`.\n */\n shortcut?: string | null;\n /**\n * When set, the matching shortcut (cmd/ctrl + the last character of\n * `shortcut`, default `k`) focuses the input from anywhere on the page.\n */\n onShortcut?: () => void;\n /** Classes applied to the wrapper. */\n className?: string;\n};\n\n/**\n * Search field with a leading magnifier and an optional trailing keyboard-hint\n * (the Gavel app-bar `⌘K` search). Controlled. Built on clicky tokens. When\n * `onShortcut` is provided, a global cmd/ctrl+K listener is wired so the field\n * can be focused from anywhere.\n */\nexport function SearchInput({\n value,\n onChange,\n placeholder = \"Search…\",\n shortcut = \"⌘K\",\n onShortcut,\n prefix,\n className,\n ...rest\n}: SearchInputProps) {\n return (\n <InputField\n type=\"search\"\n value={value}\n onChange={(next) => onChange(next)}\n placeholder={placeholder}\n shortcut={shortcut}\n onShortcut={onShortcut}\n prefix={\n prefix ?? (\n <Icon icon={UiSearch} className=\"shrink-0 text-muted-foreground\" />\n )\n }\n className={cn(\"bg-secondary px-density-3\", className)}\n {...rest}\n />\n );\n}\n"],"names":[],"mappings":";;;;;AAsCO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAqB;AACnB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL;AAAA,MACA,UAAU,CAAC,SAAS,SAAS,IAAI;AAAA,MACjC;AAAA,MACA;AAAA,MACA;AAAA,MACA,QACE,UACE,oBAAC,QAAK,MAAM,UAAU,WAAU,kCAAiC;AAAA,MAGrE,WAAW,GAAG,6BAA6B,SAAS;AAAA,MACnD,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -6,36 +6,51 @@ const mi = require("@flanksource/icons/mi");
6
6
  const utils = require("../lib/utils.cjs");
7
7
  const Combobox = require("./Combobox.cjs");
8
8
  const UiEdit = require("../icons/components/UiEdit.cjs");
9
+ const DEFAULT_SOURCES = ["secret", "configmap", "value"];
9
10
  function SecretKeySelector({
10
11
  value,
11
12
  onChange,
12
13
  loadResources,
13
14
  loadKeyPreview,
15
+ loadServiceAccounts,
16
+ sources,
14
17
  allowLiteral = true,
15
18
  strict = false,
16
19
  className
17
20
  }) {
18
- const source = (value == null ? void 0 : value.kind) ?? "secret";
21
+ const sourceList = react.useMemo(
22
+ () => sources ?? (allowLiteral ? DEFAULT_SOURCES : ["secret", "configmap"]),
23
+ [sources, allowLiteral]
24
+ );
25
+ const source = (value == null ? void 0 : value.kind) ?? sourceList[0] ?? "secret";
26
+ const isKeyed = source === "secret" || source === "configmap" || source === "helm";
27
+ const isServiceAccount = source === "serviceaccount";
28
+ const isOnePassword = source === "onepassword";
19
29
  const isLiteral = source === "value";
20
- const refKind = isLiteral ? "secret" : source;
21
- const selectedName = value && value.kind !== "value" ? value.name : "";
22
- const selectedKey = value && value.kind !== "value" ? value.key : "";
30
+ const refKind = isKeyed ? source : "secret";
31
+ const selectedName = value && (value.kind === "serviceaccount" || isRefKind(value)) ? value.name : "";
32
+ const selectedKey = value && isRefKind(value) ? value.key : "";
23
33
  const literalValue = value && value.kind === "value" ? value.value : "";
34
+ const opRef = value && value.kind === "onepassword" ? value.ref : "";
24
35
  const [resources, setResources] = react.useState([]);
25
36
  const [resourcesLoading, setResourcesLoading] = react.useState(false);
26
37
  const [previews, setPreviews] = react.useState([]);
27
38
  const [previewLoading, setPreviewLoading] = react.useState(false);
28
39
  react.useEffect(() => {
29
- if (isLiteral) return;
40
+ const loader = isKeyed ? () => loadResources(refKind) : isServiceAccount && loadServiceAccounts ? loadServiceAccounts : null;
41
+ if (!loader) {
42
+ setResources([]);
43
+ return;
44
+ }
30
45
  let cancelled = false;
31
46
  setResourcesLoading(true);
32
- loadResources(refKind).then((res) => !cancelled && setResources(res)).finally(() => !cancelled && setResourcesLoading(false));
47
+ loader().then((res) => !cancelled && setResources(res)).finally(() => !cancelled && setResourcesLoading(false));
33
48
  return () => {
34
49
  cancelled = true;
35
50
  };
36
- }, [loadResources, refKind, isLiteral]);
51
+ }, [loadResources, loadServiceAccounts, refKind, isKeyed, isServiceAccount]);
37
52
  react.useEffect(() => {
38
- if (!selectedName) {
53
+ if (!isKeyed || !selectedName) {
39
54
  setPreviews([]);
40
55
  return;
41
56
  }
@@ -45,7 +60,7 @@ function SecretKeySelector({
45
60
  return () => {
46
61
  cancelled = true;
47
62
  };
48
- }, [loadKeyPreview, refKind, selectedName]);
63
+ }, [loadKeyPreview, refKind, selectedName, isKeyed]);
49
64
  const nameOptions = react.useMemo(
50
65
  () => resources.map((r) => ({ value: r.name, label: r.name })),
51
66
  [resources]
@@ -58,81 +73,154 @@ function SecretKeySelector({
58
73
  () => buildKeyOptions((selectedResource == null ? void 0 : selectedResource.keys) ?? [], previews, selectedKey),
59
74
  [selectedResource, selectedKey, previews]
60
75
  );
61
- const nameInvalid = strict && !!selectedName && !resourcesLoading && !selectedResource;
62
- const keyInvalid = strict && !!selectedKey && !!selectedResource && !resourcesLoading && !(selectedResource.keys ?? []).includes(selectedKey);
63
- const setSource = (next) => onChange(next === "value" ? { kind: "value", value: "" } : { kind: next, name: "", key: "" });
64
- const setName = (name) => onChange(name ? { kind: refKind, name, key: selectedKey } : void 0);
76
+ const listsNames = isKeyed || isServiceAccount && !!loadServiceAccounts;
77
+ const nameInvalid = strict && listsNames && !!selectedName && !resourcesLoading && !selectedResource;
78
+ const keyInvalid = strict && isKeyed && !!selectedKey && !!selectedResource && !resourcesLoading && !(selectedResource.keys ?? []).includes(selectedKey);
79
+ const setSource = (next) => {
80
+ switch (next) {
81
+ case "value":
82
+ return onChange({ kind: "value", value: "" });
83
+ case "onepassword":
84
+ return onChange({ kind: "onepassword", ref: "" });
85
+ case "serviceaccount":
86
+ return onChange({ kind: "serviceaccount", name: "" });
87
+ default:
88
+ return onChange({ kind: next, name: "", key: "" });
89
+ }
90
+ };
91
+ const setName = (name) => {
92
+ if (isServiceAccount) return onChange(name ? { kind: "serviceaccount", name } : void 0);
93
+ return onChange(name ? { kind: refKind, name, key: selectedKey } : void 0);
94
+ };
65
95
  const setKey = (key) => selectedName ? onChange({ kind: refKind, name: selectedName, key }) : void 0;
66
96
  const setLiteral = (v) => onChange({ kind: "value", value: v });
67
- const sources = allowLiteral ? ["secret", "configmap", "value"] : ["secret", "configmap"];
68
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("flex items-center gap-2", className), children: [
69
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 overflow-hidden rounded border border-border text-xs", children: sources.map((k) => {
70
- const Glyph = SOURCE_ICON[k];
71
- return /* @__PURE__ */ jsxRuntime.jsxs(
72
- "button",
73
- {
74
- type: "button",
75
- onClick: () => setSource(k),
76
- className: utils.cn(
77
- "flex items-center gap-1 whitespace-nowrap px-2 py-1",
78
- source === k ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground hover:bg-accent"
79
- ),
80
- children: [
81
- /* @__PURE__ */ jsxRuntime.jsx(Glyph, { className: "h-3.5 w-3.5" }),
82
- SOURCE_LABEL[k]
83
- ]
84
- },
85
- k
86
- );
87
- }) }),
97
+ const setOpRef = (v) => onChange({ kind: "onepassword", ref: v });
98
+ const sourceOptions = react.useMemo(
99
+ () => sourceList.map((k) => ({
100
+ value: k,
101
+ label: SOURCE_LABEL[k],
102
+ icon: react.createElement(SOURCE_ICON[k], { className: "size-4" })
103
+ })),
104
+ [sourceList]
105
+ );
106
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("flex flex-wrap items-center gap-2", className), children: [
107
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-[9.5rem] shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
108
+ Combobox.Combobox,
109
+ {
110
+ ariaLabel: "Secret value source",
111
+ options: sourceOptions,
112
+ value: source,
113
+ onChange: (next) => setSource(next),
114
+ allowCustomValue: false,
115
+ required: true
116
+ }
117
+ ) }),
88
118
  isLiteral ? /* @__PURE__ */ jsxRuntime.jsx(
89
- "input",
119
+ TextField,
90
120
  {
91
- type: "text",
92
121
  value: literalValue,
93
- onChange: (e) => setLiteral(e.target.value),
122
+ onChange: setLiteral,
94
123
  placeholder: "Static value…",
95
- className: utils.cn(
96
- "h-control-h min-w-0 flex-1 rounded border border-input bg-background px-control-px text-sm",
97
- "outline-none focus-visible:ring-2 focus-visible:ring-ring"
98
- )
124
+ ariaLabel: "Static value"
125
+ }
126
+ ) : isOnePassword ? /* @__PURE__ */ jsxRuntime.jsx(
127
+ TextField,
128
+ {
129
+ value: opRef,
130
+ onChange: setOpRef,
131
+ placeholder: "op://vault/item/field",
132
+ ariaLabel: "1Password reference",
133
+ mono: true
134
+ }
135
+ ) : isServiceAccount ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-[1_1_16rem]", "data-slot": "secret-serviceaccount-field", children: /* @__PURE__ */ jsxRuntime.jsx(
136
+ Combobox.Combobox,
137
+ {
138
+ options: nameOptions,
139
+ value: selectedName,
140
+ onChange: setName,
141
+ allowCustomValue: true,
142
+ loading: resourcesLoading,
143
+ invalid: nameInvalid,
144
+ placeholder: "Service account…"
145
+ }
146
+ ) }) : /* @__PURE__ */ jsxRuntime.jsxs(
147
+ "div",
148
+ {
149
+ className: "grid min-w-0 flex-[1_1_18rem] grid-cols-[minmax(8rem,11rem)_minmax(8rem,1fr)] items-center gap-2",
150
+ "data-slot": "secret-reference-fields",
151
+ children: [
152
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
153
+ Combobox.Combobox,
154
+ {
155
+ options: nameOptions,
156
+ value: selectedName,
157
+ onChange: setName,
158
+ allowCustomValue: true,
159
+ loading: resourcesLoading,
160
+ invalid: nameInvalid,
161
+ placeholder: `Select ${refKind}…`
162
+ }
163
+ ) }),
164
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
165
+ Combobox.Combobox,
166
+ {
167
+ options: keyOptions,
168
+ value: selectedKey,
169
+ onChange: setKey,
170
+ allowCustomValue: true,
171
+ loading: previewLoading,
172
+ invalid: keyInvalid,
173
+ placeholder: selectedName ? keyPlaceholder(refKind) : "—"
174
+ }
175
+ ) })
176
+ ]
99
177
  }
100
- ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
101
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-44 shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
102
- Combobox.Combobox,
103
- {
104
- options: nameOptions,
105
- value: selectedName,
106
- onChange: setName,
107
- allowCustomValue: true,
108
- loading: resourcesLoading,
109
- invalid: nameInvalid,
110
- placeholder: `Select ${refKind}…`
111
- }
112
- ) }),
113
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
114
- Combobox.Combobox,
115
- {
116
- options: keyOptions,
117
- value: selectedKey,
118
- onChange: setKey,
119
- allowCustomValue: true,
120
- loading: previewLoading,
121
- invalid: keyInvalid,
122
- placeholder: selectedName ? "Key…" : "—"
123
- }
124
- ) })
125
- ] })
178
+ )
126
179
  ] });
127
180
  }
181
+ function TextField({
182
+ value,
183
+ onChange,
184
+ placeholder,
185
+ ariaLabel,
186
+ mono
187
+ }) {
188
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-[1_1_16rem]", "data-slot": "secret-value-fields", children: /* @__PURE__ */ jsxRuntime.jsx(
189
+ "input",
190
+ {
191
+ type: "text",
192
+ value,
193
+ onChange: (e) => onChange(e.target.value),
194
+ placeholder,
195
+ "aria-label": ariaLabel,
196
+ className: utils.cn(
197
+ "h-control-h w-full min-w-0 rounded border border-input bg-background px-control-px text-sm",
198
+ "outline-none focus-visible:ring-2 focus-visible:ring-ring",
199
+ mono && "font-mono"
200
+ )
201
+ }
202
+ ) });
203
+ }
204
+ function isRefKind(v) {
205
+ return v.kind === "secret" || v.kind === "configmap" || v.kind === "helm";
206
+ }
207
+ function keyPlaceholder(kind) {
208
+ return kind === "helm" ? "jsonpath…" : "Key…";
209
+ }
128
210
  const SOURCE_ICON = {
129
211
  secret: mi.K8SSecret,
130
212
  configmap: mi.K8SConfigmap,
213
+ helm: mi.Helm,
214
+ serviceaccount: mi.K8SServiceaccount,
215
+ onepassword: mi.Vault,
131
216
  value: UiEdit.UiEdit
132
217
  };
133
218
  const SOURCE_LABEL = {
134
219
  secret: "Secret",
135
220
  configmap: "ConfigMap",
221
+ helm: "Helm",
222
+ serviceaccount: "Service Account",
223
+ onepassword: "1Password",
136
224
  value: "Value"
137
225
  };
138
226
  function buildKeyOptions(keys, previews, selectedKey) {
@@ -1 +1 @@
1
- {"version":3,"file":"SecretKeySelector.cjs","sources":["../../src/components/SecretKeySelector.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport { K8SSecret, K8SConfigmap } from \"@flanksource/icons/mi\";\nimport { cn } from \"../lib/utils\";\nimport { UiEdit } from \"../icons\";\nimport { Combobox, type ComboboxOption } from \"./Combobox\";\n\n// SecretKeySelector picks a Secret or ConfigMap and one of its keys, with a\n// mid-masked preview of every key's value so the operator can tell which key\n// holds the host vs the db vs a password. It also offers a \"Value\" mode (on by\n// default; opt out with `allowLiteral={false}`) for typing a static inline\n// string. It is presentational: it fetches nothing — the consumer supplies\n// async `loadResources` / `loadKeyPreview` getters. It emits a discriminated\n// value the consumer lowers into whatever reference shape it needs.\n\nexport type SecretKind = \"secret\" | \"configmap\";\n\n/** Toggle options: the two resource kinds plus the inline-literal mode. */\nexport type SecretValueSource = SecretKind | \"value\";\n\n/** One key's mid-masked preview. `value` is already masked by the consumer. */\nexport type KeyPreview = { key: string; value: string };\n\n/**\n * The selector's value: either a {kind,name,key} reference into a Secret /\n * ConfigMap, or a static inline literal ({kind:\"value\", value}).\n */\nexport type SecretKeyValue =\n | { kind: SecretKind; name: string; key: string }\n | { kind: \"value\"; value: string };\n\n/** A named secret/configmap and its data key names (values never returned). */\nexport type SecretResource = { name: string; keys?: string[] };\n\nexport type SecretKeySelectorProps = {\n value: SecretKeyValue | undefined;\n onChange: (next: SecretKeyValue | undefined) => void;\n /** Loads the named kind's resources (name + data key names). */\n loadResources: (kind: SecretKind) => Promise<SecretResource[]>;\n /** Loads mid-masked previews for the named resource's keys. */\n loadKeyPreview: (kind: SecretKind, name: string) => Promise<KeyPreview[]>;\n /**\n * Offer a third \"Value\" toggle for typing a static inline literal. Enabled by\n * default; pass `false` to restrict the selector to Secret/ConfigMap\n * references only.\n */\n allowLiteral?: boolean;\n /**\n * When true, a chosen secret/configmap name absent from the loaded resources,\n * or a key absent from the chosen resource's keys, is flagged invalid (once\n * the respective load settles). The reference doesn't exist in the namespace.\n * The literal \"Value\" mode is never strict-flagged.\n */\n strict?: boolean;\n className?: string;\n};\n\nexport function SecretKeySelector({\n value,\n onChange,\n loadResources,\n loadKeyPreview,\n allowLiteral = true,\n strict = false,\n className,\n}: SecretKeySelectorProps) {\n const source: SecretValueSource = value?.kind ?? \"secret\";\n const isLiteral = source === \"value\";\n // A literal value carries no resource kind; the loaders default to \"secret\".\n const refKind: SecretKind = isLiteral ? \"secret\" : source;\n const selectedName = value && value.kind !== \"value\" ? value.name : \"\";\n const selectedKey = value && value.kind !== \"value\" ? value.key : \"\";\n const literalValue = value && value.kind === \"value\" ? value.value : \"\";\n\n const [resources, setResources] = useState<SecretResource[]>([]);\n const [resourcesLoading, setResourcesLoading] = useState(false);\n const [previews, setPreviews] = useState<KeyPreview[]>([]);\n const [previewLoading, setPreviewLoading] = useState(false);\n\n useEffect(() => {\n // Literal mode references no resource, so skip the list fetch entirely.\n if (isLiteral) return;\n let cancelled = false;\n setResourcesLoading(true);\n loadResources(refKind)\n .then((res) => !cancelled && setResources(res))\n .finally(() => !cancelled && setResourcesLoading(false));\n return () => {\n cancelled = true;\n };\n }, [loadResources, refKind, isLiteral]);\n\n useEffect(() => {\n if (!selectedName) {\n setPreviews([]);\n return;\n }\n let cancelled = false;\n setPreviewLoading(true);\n loadKeyPreview(refKind, selectedName)\n .then((res) => !cancelled && setPreviews(res))\n .catch(() => !cancelled && setPreviews([]))\n .finally(() => !cancelled && setPreviewLoading(false));\n return () => {\n cancelled = true;\n };\n }, [loadKeyPreview, refKind, selectedName]);\n\n const nameOptions = useMemo<ComboboxOption[]>(\n () => resources.map((r) => ({ value: r.name, label: r.name })),\n [resources],\n );\n const selectedResource = useMemo(\n () => resources.find((r) => r.name === selectedName),\n [resources, selectedName],\n );\n const keyOptions = useMemo(\n () => buildKeyOptions(selectedResource?.keys ?? [], previews, selectedKey),\n [selectedResource, selectedKey, previews],\n );\n\n // Strict validity: the name is invalid when it names no loaded resource; the\n // key is invalid when, with a resolved resource, it isn't one of that\n // resource's keys. The key list comes from the resource list (not previews),\n // so both are gated on resourcesLoading only.\n const nameInvalid = strict && !!selectedName && !resourcesLoading && !selectedResource;\n const keyInvalid =\n strict &&\n !!selectedKey &&\n !!selectedResource &&\n !resourcesLoading &&\n !(selectedResource.keys ?? []).includes(selectedKey);\n\n // Switching source resets the selection: a resource kind clears name+key; the\n // literal mode seeds an empty string (so onChange emits a value-kind value).\n const setSource = (next: SecretValueSource) =>\n onChange(next === \"value\" ? { kind: \"value\", value: \"\" } : { kind: next, name: \"\", key: \"\" });\n const setName = (name: string) =>\n onChange(name ? { kind: refKind, name, key: selectedKey } : undefined);\n const setKey = (key: string) =>\n selectedName ? onChange({ kind: refKind, name: selectedName, key }) : undefined;\n const setLiteral = (v: string) => onChange({ kind: \"value\", value: v });\n\n const sources: SecretValueSource[] = allowLiteral\n ? [\"secret\", \"configmap\", \"value\"]\n : [\"secret\", \"configmap\"];\n\n return (\n <div className={cn(\"flex items-center gap-2\", className)}>\n <div className=\"flex shrink-0 overflow-hidden rounded border border-border text-xs\">\n {sources.map((k) => {\n const Glyph = SOURCE_ICON[k];\n return (\n <button\n key={k}\n type=\"button\"\n onClick={() => setSource(k)}\n className={cn(\n \"flex items-center gap-1 whitespace-nowrap px-2 py-1\",\n source === k\n ? \"bg-primary text-primary-foreground\"\n : \"bg-muted text-muted-foreground hover:bg-accent\",\n )}\n >\n <Glyph className=\"h-3.5 w-3.5\" />\n {SOURCE_LABEL[k]}\n </button>\n );\n })}\n </div>\n {isLiteral ? (\n <input\n type=\"text\"\n value={literalValue}\n onChange={(e) => setLiteral(e.target.value)}\n placeholder=\"Static value…\"\n className={cn(\n \"h-control-h min-w-0 flex-1 rounded border border-input bg-background px-control-px text-sm\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n )}\n />\n ) : (\n <>\n <div className=\"w-44 shrink-0\">\n <Combobox\n options={nameOptions}\n value={selectedName}\n onChange={setName}\n allowCustomValue\n loading={resourcesLoading}\n invalid={nameInvalid}\n placeholder={`Select ${refKind}…`}\n />\n </div>\n <div className=\"min-w-0 flex-1\">\n <Combobox\n options={keyOptions}\n value={selectedKey}\n onChange={setKey}\n allowCustomValue\n loading={previewLoading}\n invalid={keyInvalid}\n placeholder={selectedName ? \"Key…\" : \"—\"}\n />\n </div>\n </>\n )}\n </div>\n );\n}\n\n// Icons share a className-only call shape; the flanksource FCs carry extra\n// static metadata that doesn't unify with ComponentType, so type the slot as a\n// plain render function instead.\nconst SOURCE_ICON: Record<SecretValueSource, (p: { className?: string }) => ReactNode> = {\n secret: K8SSecret,\n configmap: K8SConfigmap,\n value: UiEdit,\n};\n\nconst SOURCE_LABEL: Record<SecretValueSource, string> = {\n secret: \"Secret\",\n configmap: \"ConfigMap\",\n value: \"Value\",\n};\n\n// buildKeyOptions labels each key with its mid-masked preview value when one is\n// available. A selected key absent from the list is pinned so the selection\n// stays visible.\nfunction buildKeyOptions(\n keys: string[],\n previews: KeyPreview[],\n selectedKey: string,\n): ComboboxOption[] {\n const masked = new Map(previews.map((p) => [p.key, p.value]));\n const base = keys.map((k) => ({\n value: k,\n label: masked.has(k) ? `${k} — ${masked.get(k)}` : k,\n }));\n if (selectedKey && !base.some((o) => o.value === selectedKey)) {\n return [{ value: selectedKey, label: selectedKey }, ...base];\n }\n return base;\n}\n"],"names":["useState","useEffect","useMemo","cn","jsx","jsxs","Fragment","Combobox","K8SSecret","K8SConfigmap","UiEdit"],"mappings":"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"}
1
+ {"version":3,"file":"SecretKeySelector.cjs","sources":["../../src/components/SecretKeySelector.tsx"],"sourcesContent":["import { createElement, useEffect, useMemo, useState } from \"react\";\nimport {\n K8SSecret,\n K8SConfigmap,\n Helm,\n K8SServiceaccount,\n Vault,\n} from \"@flanksource/icons/mi\";\nimport { type StaticIconComponent } from \"../data/Icon\";\nimport { cn } from \"../lib/utils\";\nimport { UiEdit } from \"../icons\";\nimport { Combobox, type ComboboxOption } from \"./Combobox\";\n\n// SecretKeySelector picks how a credential is sourced and lowers the choice into\n// a single reference string the consumer persists. It supports Kubernetes\n// Secrets and ConfigMaps (name + key), Helm release values (name + jsonpath\n// key), a service-account token (name only), a 1Password reference\n// (op://vault/item/field), and a static inline \"Value\". It is presentational:\n// it fetches nothing — the consumer supplies async `loadResources` /\n// `loadKeyPreview` (for keyed kinds) and optional `loadServiceAccounts` getters.\n\n/** Kinds that reference a named resource plus one of its keys. */\nexport type SecretKind = \"secret\" | \"configmap\" | \"helm\";\n\n/** Every source the picker can emit, including the non-keyed ones. */\nexport type SecretValueSource = SecretKind | \"serviceaccount\" | \"onepassword\" | \"value\";\n\n/** One key's mid-masked preview. `value` is already masked by the consumer. */\nexport type KeyPreview = { key: string; value: string };\n\n/**\n * The selector's value: a {kind,name,key} reference into a Secret / ConfigMap /\n * Helm release, a service-account token by name, a 1Password op:// reference, or\n * a static inline literal.\n */\nexport type SecretKeyValue =\n | { kind: SecretKind; name: string; key: string }\n | { kind: \"serviceaccount\"; name: string }\n | { kind: \"onepassword\"; ref: string }\n | { kind: \"value\"; value: string };\n\n/** A named secret/configmap/helm-release and its data key names (values never returned). */\nexport type SecretResource = { name: string; keys?: string[] };\n\nexport type SecretKeySelectorProps = {\n value: SecretKeyValue | undefined;\n onChange: (next: SecretKeyValue | undefined) => void;\n /** Loads the named keyed kind's resources (name + data key names). */\n loadResources: (kind: SecretKind) => Promise<SecretResource[]>;\n /** Loads mid-masked previews for the named keyed resource's keys. */\n loadKeyPreview: (kind: SecretKind, name: string) => Promise<KeyPreview[]>;\n /**\n * Loads the service-account names (no keys) for the \"serviceaccount\" source.\n * When omitted, that source's name field accepts freeform entry only.\n */\n loadServiceAccounts?: () => Promise<SecretResource[]>;\n /**\n * The sources offered in the picker, in order. Defaults to\n * `[\"secret\", \"configmap\", \"value\"]` (or drops \"value\" when `allowLiteral` is\n * false). Pass an explicit list to offer helm / serviceaccount / onepassword.\n */\n sources?: SecretValueSource[];\n /**\n * Shorthand honoured only when `sources` is not supplied: `false` drops the\n * inline \"Value\" source, leaving Secret/ConfigMap. Ignored when `sources` is\n * given.\n */\n allowLiteral?: boolean;\n /**\n * When true, a chosen name absent from the loaded resources, or a key absent\n * from the chosen keyed resource's keys, is flagged invalid (once the load\n * settles). The onepassword and literal sources are never strict-flagged.\n */\n strict?: boolean;\n className?: string;\n};\n\nconst DEFAULT_SOURCES: SecretValueSource[] = [\"secret\", \"configmap\", \"value\"];\n\nexport function SecretKeySelector({\n value,\n onChange,\n loadResources,\n loadKeyPreview,\n loadServiceAccounts,\n sources,\n allowLiteral = true,\n strict = false,\n className,\n}: SecretKeySelectorProps) {\n const sourceList = useMemo<SecretValueSource[]>(\n () => sources ?? (allowLiteral ? DEFAULT_SOURCES : [\"secret\", \"configmap\"]),\n [sources, allowLiteral],\n );\n\n const source: SecretValueSource = value?.kind ?? sourceList[0] ?? \"secret\";\n const isKeyed = source === \"secret\" || source === \"configmap\" || source === \"helm\";\n const isServiceAccount = source === \"serviceaccount\";\n const isOnePassword = source === \"onepassword\";\n const isLiteral = source === \"value\";\n // A keyed source's refKind drives the loaders; other sources default to \"secret\".\n const refKind: SecretKind = isKeyed ? (source as SecretKind) : \"secret\";\n\n const selectedName =\n value && (value.kind === \"serviceaccount\" || isRefKind(value)) ? value.name : \"\";\n const selectedKey = value && isRefKind(value) ? value.key : \"\";\n const literalValue = value && value.kind === \"value\" ? value.value : \"\";\n const opRef = value && value.kind === \"onepassword\" ? value.ref : \"\";\n\n const [resources, setResources] = useState<SecretResource[]>([]);\n const [resourcesLoading, setResourcesLoading] = useState(false);\n const [previews, setPreviews] = useState<KeyPreview[]>([]);\n const [previewLoading, setPreviewLoading] = useState(false);\n\n // Load the name list for keyed kinds (secret/configmap/helm) and, when a\n // loader is supplied, for the serviceaccount source. Other sources list nothing.\n useEffect(() => {\n const loader = isKeyed\n ? () => loadResources(refKind)\n : isServiceAccount && loadServiceAccounts\n ? loadServiceAccounts\n : null;\n if (!loader) {\n setResources([]);\n return;\n }\n let cancelled = false;\n setResourcesLoading(true);\n loader()\n .then((res) => !cancelled && setResources(res))\n .finally(() => !cancelled && setResourcesLoading(false));\n return () => {\n cancelled = true;\n };\n }, [loadResources, loadServiceAccounts, refKind, isKeyed, isServiceAccount]);\n\n useEffect(() => {\n if (!isKeyed || !selectedName) {\n setPreviews([]);\n return;\n }\n let cancelled = false;\n setPreviewLoading(true);\n loadKeyPreview(refKind, selectedName)\n .then((res) => !cancelled && setPreviews(res))\n .catch(() => !cancelled && setPreviews([]))\n .finally(() => !cancelled && setPreviewLoading(false));\n return () => {\n cancelled = true;\n };\n }, [loadKeyPreview, refKind, selectedName, isKeyed]);\n\n const nameOptions = useMemo<ComboboxOption[]>(\n () => resources.map((r) => ({ value: r.name, label: r.name })),\n [resources],\n );\n const selectedResource = useMemo(\n () => resources.find((r) => r.name === selectedName),\n [resources, selectedName],\n );\n const keyOptions = useMemo(\n () => buildKeyOptions(selectedResource?.keys ?? [], previews, selectedKey),\n [selectedResource, selectedKey, previews],\n );\n\n // Strict validity: the name is invalid when it names no loaded resource; the\n // key is invalid when, with a resolved resource, it isn't one of that\n // resource's keys. Only names from a listed source are checked (a\n // serviceaccount source with no loader lists nothing, so it never flags).\n const listsNames = isKeyed || (isServiceAccount && !!loadServiceAccounts);\n const nameInvalid = strict && listsNames && !!selectedName && !resourcesLoading && !selectedResource;\n const keyInvalid =\n strict &&\n isKeyed &&\n !!selectedKey &&\n !!selectedResource &&\n !resourcesLoading &&\n !(selectedResource.keys ?? []).includes(selectedKey);\n\n const setSource = (next: SecretValueSource) => {\n switch (next) {\n case \"value\":\n return onChange({ kind: \"value\", value: \"\" });\n case \"onepassword\":\n return onChange({ kind: \"onepassword\", ref: \"\" });\n case \"serviceaccount\":\n return onChange({ kind: \"serviceaccount\", name: \"\" });\n default:\n return onChange({ kind: next, name: \"\", key: \"\" });\n }\n };\n const setName = (name: string) => {\n if (isServiceAccount) return onChange(name ? { kind: \"serviceaccount\", name } : undefined);\n return onChange(name ? { kind: refKind, name, key: selectedKey } : undefined);\n };\n const setKey = (key: string) =>\n selectedName ? onChange({ kind: refKind, name: selectedName, key }) : undefined;\n const setLiteral = (v: string) => onChange({ kind: \"value\", value: v });\n const setOpRef = (v: string) => onChange({ kind: \"onepassword\", ref: v });\n\n const sourceOptions = useMemo<ComboboxOption[]>(\n () =>\n sourceList.map((k) => ({\n value: k,\n label: SOURCE_LABEL[k],\n icon: createElement(SOURCE_ICON[k], { className: \"size-4\" }),\n })),\n [sourceList],\n );\n\n return (\n <div className={cn(\"flex flex-wrap items-center gap-2\", className)}>\n <div className=\"w-[9.5rem] shrink-0\">\n <Combobox\n ariaLabel=\"Secret value source\"\n options={sourceOptions}\n value={source}\n onChange={(next) => setSource(next as SecretValueSource)}\n allowCustomValue={false}\n required\n />\n </div>\n {isLiteral ? (\n <TextField\n value={literalValue}\n onChange={setLiteral}\n placeholder=\"Static value…\"\n ariaLabel=\"Static value\"\n />\n ) : isOnePassword ? (\n <TextField\n value={opRef}\n onChange={setOpRef}\n placeholder=\"op://vault/item/field\"\n ariaLabel=\"1Password reference\"\n mono\n />\n ) : isServiceAccount ? (\n <div className=\"min-w-0 flex-[1_1_16rem]\" data-slot=\"secret-serviceaccount-field\">\n <Combobox\n options={nameOptions}\n value={selectedName}\n onChange={setName}\n allowCustomValue\n loading={resourcesLoading}\n invalid={nameInvalid}\n placeholder=\"Service account…\"\n />\n </div>\n ) : (\n <div\n className=\"grid min-w-0 flex-[1_1_18rem] grid-cols-[minmax(8rem,11rem)_minmax(8rem,1fr)] items-center gap-2\"\n data-slot=\"secret-reference-fields\"\n >\n <div className=\"min-w-0\">\n <Combobox\n options={nameOptions}\n value={selectedName}\n onChange={setName}\n allowCustomValue\n loading={resourcesLoading}\n invalid={nameInvalid}\n placeholder={`Select ${refKind}…`}\n />\n </div>\n <div className=\"min-w-0\">\n <Combobox\n options={keyOptions}\n value={selectedKey}\n onChange={setKey}\n allowCustomValue\n loading={previewLoading}\n invalid={keyInvalid}\n placeholder={selectedName ? keyPlaceholder(refKind) : \"—\"}\n />\n </div>\n </div>\n )}\n </div>\n );\n}\n\n// TextField is the shared single-input surface for the literal and 1Password\n// sources (no resource list backs either).\nfunction TextField({\n value,\n onChange,\n placeholder,\n ariaLabel,\n mono,\n}: {\n value: string;\n onChange: (v: string) => void;\n placeholder: string;\n ariaLabel: string;\n mono?: boolean;\n}) {\n return (\n <div className=\"min-w-0 flex-[1_1_16rem]\" data-slot=\"secret-value-fields\">\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={placeholder}\n aria-label={ariaLabel}\n className={cn(\n \"h-control-h w-full min-w-0 rounded border border-input bg-background px-control-px text-sm\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n mono && \"font-mono\",\n )}\n />\n </div>\n );\n}\n\n// isRefKind narrows to the keyed variants that carry both a name and a key.\nfunction isRefKind(\n v: SecretKeyValue,\n): v is { kind: SecretKind; name: string; key: string } {\n return v.kind === \"secret\" || v.kind === \"configmap\" || v.kind === \"helm\";\n}\n\n// keyPlaceholder hints the key field: helm keys are jsonpath expressions into\n// the merged release values, the others are literal data keys.\nfunction keyPlaceholder(kind: SecretKind): string {\n return kind === \"helm\" ? \"jsonpath…\" : \"Key…\";\n}\n\n// Each source's leading glyph. The flanksource FCs carry static metadata that\n// doesn't unify with ComponentType, so type the slot as a plain render function.\nconst SOURCE_ICON: Record<SecretValueSource, StaticIconComponent> = {\n secret: K8SSecret,\n configmap: K8SConfigmap,\n helm: Helm,\n serviceaccount: K8SServiceaccount,\n onepassword: Vault,\n value: UiEdit,\n};\n\nconst SOURCE_LABEL: Record<SecretValueSource, string> = {\n secret: \"Secret\",\n configmap: \"ConfigMap\",\n helm: \"Helm\",\n serviceaccount: \"Service Account\",\n onepassword: \"1Password\",\n value: \"Value\",\n};\n\n// buildKeyOptions labels each key with its mid-masked preview value when one is\n// available. A selected key absent from the list is pinned so the selection\n// stays visible.\nfunction buildKeyOptions(\n keys: string[],\n previews: KeyPreview[],\n selectedKey: string,\n): ComboboxOption[] {\n const masked = new Map(previews.map((p) => [p.key, p.value]));\n const base = keys.map((k) => ({\n value: k,\n label: masked.has(k) ? `${k} — ${masked.get(k)}` : k,\n }));\n if (selectedKey && !base.some((o) => o.value === selectedKey)) {\n return [{ value: selectedKey, label: selectedKey }, ...base];\n }\n return base;\n}\n"],"names":["useMemo","useState","useEffect","createElement","cn","jsx","Combobox","jsxs","K8SSecret","K8SConfigmap","Helm","K8SServiceaccount","Vault","UiEdit"],"mappings":"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"}