@flanksource/clicky-ui 0.3.28 → 0.3.30

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 (1062) hide show
  1. package/dist/ai.cjs +48 -3
  2. package/dist/ai.cjs.map +1 -1
  3. package/dist/ai.js +46 -1
  4. package/dist/ai.js.map +1 -1
  5. package/dist/comments/CommentAuthor.d.ts +1 -1
  6. package/dist/comments/CommentAuthor.d.ts.map +1 -1
  7. package/dist/comments/CommentCard.d.ts +2 -2
  8. package/dist/comments/CommentCard.d.ts.map +1 -1
  9. package/dist/comments/CommentComposer.d.ts +1 -1
  10. package/dist/comments/CommentComposer.d.ts.map +1 -1
  11. package/dist/comments/CommentFilterBar.d.ts +1 -1
  12. package/dist/comments/CommentFilterBar.d.ts.map +1 -1
  13. package/dist/comments/CommentMarkdown.d.ts +1 -1
  14. package/dist/comments/CommentMarkdown.d.ts.map +1 -1
  15. package/dist/comments/CommentProgress.d.ts +1 -1
  16. package/dist/comments/CommentProgress.d.ts.map +1 -1
  17. package/dist/comments/CommentProvider.d.ts +2 -2
  18. package/dist/comments/CommentProvider.d.ts.map +1 -1
  19. package/dist/comments/CommentSidePanel.d.ts +1 -1
  20. package/dist/comments/CommentSidePanel.d.ts.map +1 -1
  21. package/dist/comments/CommentThread.d.ts +2 -2
  22. package/dist/comments/CommentThread.d.ts.map +1 -1
  23. package/dist/comments/CommentThreadList.d.ts +2 -2
  24. package/dist/comments/CommentThreadList.d.ts.map +1 -1
  25. package/dist/comments/GroupedComments.d.ts +1 -1
  26. package/dist/comments/GroupedComments.d.ts.map +1 -1
  27. package/dist/comments/MentionTextarea.d.ts +1 -1
  28. package/dist/comments/comment-context.d.ts +4 -4
  29. package/dist/comments/comment-fixtures.d.ts +1 -1
  30. package/dist/comments/comment-types.d.ts +1 -1
  31. package/dist/components/AccordionList.d.ts +2 -2
  32. package/dist/components/AccordionList.d.ts.map +1 -1
  33. package/dist/components/Combobox.cjs +6 -6
  34. package/dist/components/Combobox.cjs.map +1 -1
  35. package/dist/components/Combobox.d.ts +1 -1
  36. package/dist/components/Combobox.d.ts.map +1 -1
  37. package/dist/components/Combobox.js +2 -2
  38. package/dist/components/Combobox.js.map +1 -1
  39. package/dist/components/ComboboxActions.d.ts +1 -1
  40. package/dist/components/ComboboxActions.d.ts.map +1 -1
  41. package/dist/components/ComboboxControl.cjs +3 -2
  42. package/dist/components/ComboboxControl.cjs.map +1 -1
  43. package/dist/components/ComboboxControl.d.ts +5 -5
  44. package/dist/components/ComboboxControl.d.ts.map +1 -1
  45. package/dist/components/ComboboxControl.js +2 -1
  46. package/dist/components/ComboboxControl.js.map +1 -1
  47. package/dist/components/ComboboxMenu.cjs +154 -134
  48. package/dist/components/ComboboxMenu.cjs.map +1 -1
  49. package/dist/components/ComboboxMenu.d.ts +4 -4
  50. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  51. package/dist/components/ComboboxMenu.js +154 -134
  52. package/dist/components/ComboboxMenu.js.map +1 -1
  53. package/dist/components/ComboboxTags.d.ts +1 -1
  54. package/dist/components/ComboboxTags.d.ts.map +1 -1
  55. package/dist/components/ConnectionLoggingPolicy.d.ts +1 -1
  56. package/dist/components/ConnectionLoggingPolicy.d.ts.map +1 -1
  57. package/dist/components/CopyButton.d.ts +1 -1
  58. package/dist/components/CopyButton.d.ts.map +1 -1
  59. package/dist/components/CountryFlag.d.ts +1 -1
  60. package/dist/components/CountryFlag.d.ts.map +1 -1
  61. package/dist/components/CountryPicker.d.ts +1 -1
  62. package/dist/components/CountryPicker.d.ts.map +1 -1
  63. package/dist/components/DaemonSetIcon.d.ts +1 -1
  64. package/dist/components/DaemonSetIcon.d.ts.map +1 -1
  65. package/dist/components/DateField.d.ts +3 -3
  66. package/dist/components/DatePicker.d.ts +3 -3
  67. package/dist/components/DateTimePicker.d.ts +3 -3
  68. package/dist/components/DimensionField.d.ts +1 -1
  69. package/dist/components/DimensionField.d.ts.map +1 -1
  70. package/dist/components/EndpointSelector.d.ts +1 -1
  71. package/dist/components/EndpointSelector.d.ts.map +1 -1
  72. package/dist/components/ErrorWrapper.d.ts +2 -2
  73. package/dist/components/Field.d.ts +2 -2
  74. package/dist/components/Field.d.ts.map +1 -1
  75. package/dist/components/FilterBar.cjs +100 -85
  76. package/dist/components/FilterBar.cjs.map +1 -1
  77. package/dist/components/FilterBar.d.ts +4 -4
  78. package/dist/components/FilterBar.d.ts.map +1 -1
  79. package/dist/components/FilterBar.js +101 -86
  80. package/dist/components/FilterBar.js.map +1 -1
  81. package/dist/components/FormLookupProvider.d.ts +2 -2
  82. package/dist/components/FormLookupProvider.d.ts.map +1 -1
  83. package/dist/components/FormatOptionsDropdown.d.ts +2 -2
  84. package/dist/components/FormatOptionsDropdown.d.ts.map +1 -1
  85. package/dist/components/IconButton.d.ts +3 -3
  86. package/dist/components/InputField.d.ts +2 -2
  87. package/dist/components/ItemActions.d.ts +2 -2
  88. package/dist/components/ItemActions.d.ts.map +1 -1
  89. package/dist/components/JSONPathField.d.ts +1 -1
  90. package/dist/components/JSONPathField.d.ts.map +1 -1
  91. package/dist/components/JSONPathPlayground.d.ts +1 -1
  92. package/dist/components/JSONPathPlayground.d.ts.map +1 -1
  93. package/dist/components/JsonSchemaForm.d.ts +1 -1
  94. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  95. package/dist/components/ListMenu.d.ts +6 -6
  96. package/dist/components/ListMenu.d.ts.map +1 -1
  97. package/dist/components/MdxEditorCallout.d.ts +2 -2
  98. package/dist/components/MdxEditorCallout.d.ts.map +1 -1
  99. package/dist/components/MdxEditorField.d.ts +1 -1
  100. package/dist/components/MdxEditorField.d.ts.map +1 -1
  101. package/dist/components/MdxEditorToolbar.d.ts +1 -1
  102. package/dist/components/MdxEditorToolbar.d.ts.map +1 -1
  103. package/dist/components/MultiSelect.d.ts +2 -2
  104. package/dist/components/MultiSelect.d.ts.map +1 -1
  105. package/dist/components/NamespacePicker.d.ts +1 -1
  106. package/dist/components/NamespacePicker.d.ts.map +1 -1
  107. package/dist/components/OnePasswordSelector.d.ts +1 -1
  108. package/dist/components/OnePasswordSelector.d.ts.map +1 -1
  109. package/dist/components/RangeSlider.d.ts +1 -1
  110. package/dist/components/RangeSlider.d.ts.map +1 -1
  111. package/dist/components/SearchInput.d.ts +2 -2
  112. package/dist/components/SearchInput.d.ts.map +1 -1
  113. package/dist/components/SecretFormField.d.ts +1 -1
  114. package/dist/components/SecretFormField.d.ts.map +1 -1
  115. package/dist/components/SecretKeySelector.d.ts +1 -1
  116. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  117. package/dist/components/SegmentedControl.d.ts +2 -2
  118. package/dist/components/SegmentedControl.d.ts.map +1 -1
  119. package/dist/components/SplitButton.d.ts +2 -2
  120. package/dist/components/SplitButton.d.ts.map +1 -1
  121. package/dist/components/Switch.d.ts +2 -2
  122. package/dist/components/Switch.d.ts.map +1 -1
  123. package/dist/components/TimeRange.d.ts +1 -1
  124. package/dist/components/TimeRange.d.ts.map +1 -1
  125. package/dist/components/TreePickerField.d.ts +2 -2
  126. package/dist/components/TreePickerField.d.ts.map +1 -1
  127. package/dist/components/TriStateToggle.d.ts +1 -1
  128. package/dist/components/TriStateToggle.d.ts.map +1 -1
  129. package/dist/components/UnitStepControls.d.ts +2 -2
  130. package/dist/components/UnitStepControls.d.ts.map +1 -1
  131. package/dist/components/WorkloadPicker.d.ts +1 -1
  132. package/dist/components/WorkloadPicker.d.ts.map +1 -1
  133. package/dist/components/button.d.ts +3 -3
  134. package/dist/components/combobox-types.d.ts +1 -1
  135. package/dist/components/density-switcher.d.ts +1 -1
  136. package/dist/components/filter-bar-context.d.ts +1 -1
  137. package/dist/components/filter-bar-field-utils.d.ts +2 -2
  138. package/dist/components/filter-bar-field-utils.js +1 -1
  139. package/dist/components/filter-bar-multi.d.ts +3 -3
  140. package/dist/components/filter-bar-multi.d.ts.map +1 -1
  141. package/dist/components/form-lookup-context.d.ts +1 -1
  142. package/dist/components/icon-menu-picker.cjs.map +1 -1
  143. package/dist/components/icon-menu-picker.d.ts +2 -2
  144. package/dist/components/icon-menu-picker.d.ts.map +1 -1
  145. package/dist/components/icon-menu-picker.js.map +1 -1
  146. package/dist/components/jotai-bindings.d.ts +2 -2
  147. package/dist/components/jotai-bindings.d.ts.map +1 -1
  148. package/dist/components/json-schema-form-accordion-array.d.ts +1 -1
  149. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  150. package/dist/components/json-schema-form-array.d.ts +1 -1
  151. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  152. package/dist/components/json-schema-form-cards-array.d.ts +1 -1
  153. package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
  154. package/dist/components/json-schema-form-discriminator.d.ts +1 -1
  155. package/dist/components/json-schema-form-error-display.d.ts +3 -3
  156. package/dist/components/json-schema-form-error-display.d.ts.map +1 -1
  157. package/dist/components/json-schema-form-extensions.d.ts +1 -1
  158. package/dist/components/json-schema-form-fields.d.ts +12 -12
  159. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  160. package/dist/components/json-schema-form-grid.d.ts +1 -1
  161. package/dist/components/json-schema-form-grid.d.ts.map +1 -1
  162. package/dist/components/json-schema-form-item-row.d.ts +4 -4
  163. package/dist/components/json-schema-form-item-row.d.ts.map +1 -1
  164. package/dist/components/json-schema-form-layout.d.ts +6 -6
  165. package/dist/components/json-schema-form-layout.d.ts.map +1 -1
  166. package/dist/components/json-schema-form-list-array.d.ts +1 -1
  167. package/dist/components/json-schema-form-list-array.d.ts.map +1 -1
  168. package/dist/components/json-schema-form-lookup-tree.d.ts +1 -1
  169. package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -1
  170. package/dist/components/json-schema-form-object.d.ts +2 -2
  171. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  172. package/dist/components/json-schema-form-render.d.ts +1 -1
  173. package/dist/components/json-schema-form-table-array.d.ts +1 -1
  174. package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
  175. package/dist/components/json-schema-form-tags-combobox.cjs +2 -2
  176. package/dist/components/json-schema-form-tags-combobox.cjs.map +1 -1
  177. package/dist/components/json-schema-form-tags-combobox.d.ts +1 -1
  178. package/dist/components/json-schema-form-tags-combobox.d.ts.map +1 -1
  179. package/dist/components/json-schema-form-tags-combobox.js +1 -1
  180. package/dist/components/json-schema-form-tags-combobox.js.map +1 -1
  181. package/dist/components/json-schema-form-template-menu.d.ts +2 -2
  182. package/dist/components/json-schema-form-template-menu.d.ts.map +1 -1
  183. package/dist/components/json-schema-form-template.d.ts +1 -1
  184. package/dist/components/json-schema-form-types.d.ts +1 -1
  185. package/dist/components/loading.d.ts +4 -4
  186. package/dist/components/mdx-editor-callout-model.d.ts +1 -1
  187. package/dist/components/mdx-editor-callout.d.ts +1 -1
  188. package/dist/components/mdx-editor-options.d.ts +1 -1
  189. package/dist/components/select.d.ts +3 -3
  190. package/dist/components/theme-switcher.d.ts +1 -1
  191. package/dist/components/use-list-menu-selection.d.ts +1 -1
  192. package/dist/components/useComboboxLayout.cjs +37 -27
  193. package/dist/components/useComboboxLayout.cjs.map +1 -1
  194. package/dist/components/useComboboxLayout.d.ts +4 -4
  195. package/dist/components/useComboboxLayout.d.ts.map +1 -1
  196. package/dist/components/useComboboxLayout.js +38 -28
  197. package/dist/components/useComboboxLayout.js.map +1 -1
  198. package/dist/components/workload-picker-utils.d.ts +1 -1
  199. package/dist/components.d.ts +1 -0
  200. package/dist/components.d.ts.map +1 -1
  201. package/dist/data/AnsiHtml.d.ts +1 -1
  202. package/dist/data/AnsiHtml.d.ts.map +1 -1
  203. package/dist/data/Avatar.d.ts +2 -2
  204. package/dist/data/Avatar.d.ts.map +1 -1
  205. package/dist/data/AvatarBadge.d.ts +2 -2
  206. package/dist/data/AvatarBadge.d.ts.map +1 -1
  207. package/dist/data/Badge.d.ts +2 -2
  208. package/dist/data/Badge.d.ts.map +1 -1
  209. package/dist/data/Callout.d.ts +2 -2
  210. package/dist/data/Callout.d.ts.map +1 -1
  211. package/dist/data/Clicky.d.ts +3 -3
  212. package/dist/data/Clicky.d.ts.map +1 -1
  213. package/dist/data/CodeBlock.cjs +1 -1
  214. package/dist/data/CodeBlock.cjs.map +1 -1
  215. package/dist/data/CodeBlock.d.ts +1 -1
  216. package/dist/data/CodeBlock.d.ts.map +1 -1
  217. package/dist/data/CodeBlock.js +1 -1
  218. package/dist/data/CodeBlock.js.map +1 -1
  219. package/dist/data/CodeDiff.d.ts +1 -1
  220. package/dist/data/CodeDiff.d.ts.map +1 -1
  221. package/dist/data/DataTable.cjs +63 -27
  222. package/dist/data/DataTable.cjs.map +1 -1
  223. package/dist/data/DataTable.d.ts +11 -2
  224. package/dist/data/DataTable.d.ts.map +1 -1
  225. package/dist/data/DataTable.grouping.d.ts +1 -1
  226. package/dist/data/DataTable.js +63 -27
  227. package/dist/data/DataTable.js.map +1 -1
  228. package/dist/data/DataTableGroupingControls.d.ts +1 -1
  229. package/dist/data/DataTableGroupingControls.d.ts.map +1 -1
  230. package/dist/data/ExecutionTree.d.ts +2 -2
  231. package/dist/data/ExecutionTree.d.ts.map +1 -1
  232. package/dist/data/FilterPill.d.ts +4 -4
  233. package/dist/data/FilterPill.d.ts.map +1 -1
  234. package/dist/data/FixtureEditor/FenceForm.d.ts +1 -1
  235. package/dist/data/FixtureEditor/FenceForm.d.ts.map +1 -1
  236. package/dist/data/FixtureEditor/FixtureEditor.d.ts +1 -1
  237. package/dist/data/FixtureEditor/FixtureEditor.d.ts.map +1 -1
  238. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts +1 -1
  239. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts.map +1 -1
  240. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts +1 -1
  241. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts.map +1 -1
  242. package/dist/data/FixtureEditor/RawFenceEditor.d.ts +2 -2
  243. package/dist/data/FixtureEditor/RawFenceEditor.d.ts.map +1 -1
  244. package/dist/data/FixtureEditor/types.d.ts +1 -1
  245. package/dist/data/Gauge.d.ts +2 -2
  246. package/dist/data/Gauge.d.ts.map +1 -1
  247. package/dist/data/GaugeHoverCard.d.ts +2 -2
  248. package/dist/data/GaugeHoverCard.d.ts.map +1 -1
  249. package/dist/data/HighlightedTokens.d.ts +1 -1
  250. package/dist/data/HighlightedTokens.d.ts.map +1 -1
  251. package/dist/data/Icon.cjs.map +1 -1
  252. package/dist/data/Icon.d.ts +3 -3
  253. package/dist/data/Icon.d.ts.map +1 -1
  254. package/dist/data/Icon.js.map +1 -1
  255. package/dist/data/JsonView.d.ts +1 -1
  256. package/dist/data/JsonView.d.ts.map +1 -1
  257. package/dist/data/KeyValueList.d.ts +2 -2
  258. package/dist/data/KeyValueList.d.ts.map +1 -1
  259. package/dist/data/LogDetails.d.ts +1 -1
  260. package/dist/data/LogDetails.d.ts.map +1 -1
  261. package/dist/data/LogViewer.d.ts +1 -1
  262. package/dist/data/LogViewer.d.ts.map +1 -1
  263. package/dist/data/LogsTable.d.ts +1 -1
  264. package/dist/data/LogsTable.d.ts.map +1 -1
  265. package/dist/data/Markdown.d.ts +1 -1
  266. package/dist/data/Markdown.d.ts.map +1 -1
  267. package/dist/data/MarkdownEditor.d.ts +2 -2
  268. package/dist/data/MarkdownEditor.d.ts.map +1 -1
  269. package/dist/data/MarkdownEditor.model.d.ts +1 -1
  270. package/dist/data/MatrixTable.d.ts +2 -2
  271. package/dist/data/MatrixTable.d.ts.map +1 -1
  272. package/dist/data/MethodBadge.d.ts +1 -1
  273. package/dist/data/MethodBadge.d.ts.map +1 -1
  274. package/dist/data/ObjectGraph.d.ts +2 -2
  275. package/dist/data/ObjectGraph.d.ts.map +1 -1
  276. package/dist/data/ProgressBar.d.ts +1 -1
  277. package/dist/data/ProgressBar.d.ts.map +1 -1
  278. package/dist/data/ProgressBars.d.ts +2 -2
  279. package/dist/data/ProgressBars.d.ts.map +1 -1
  280. package/dist/data/PromptBanner.d.ts +1 -1
  281. package/dist/data/PromptBanner.d.ts.map +1 -1
  282. package/dist/data/PromptDialog.d.ts +1 -1
  283. package/dist/data/PromptDialog.d.ts.map +1 -1
  284. package/dist/data/Properties.d.ts +2 -2
  285. package/dist/data/Properties.d.ts.map +1 -1
  286. package/dist/data/RadialGauge.d.ts +2 -2
  287. package/dist/data/RadialGauge.d.ts.map +1 -1
  288. package/dist/data/SchemaViewer.d.ts +4 -4
  289. package/dist/data/SchemaViewer.d.ts.map +1 -1
  290. package/dist/data/SelectionActionBar.cjs +7 -7
  291. package/dist/data/SelectionActionBar.cjs.map +1 -1
  292. package/dist/data/SelectionActionBar.d.ts +1 -1
  293. package/dist/data/SelectionActionBar.d.ts.map +1 -1
  294. package/dist/data/SelectionActionBar.js +7 -7
  295. package/dist/data/SelectionActionBar.js.map +1 -1
  296. package/dist/data/ServerTimingBadge.d.ts +1 -1
  297. package/dist/data/ServerTimingBadge.d.ts.map +1 -1
  298. package/dist/data/SignedDeltaBar.d.ts +1 -1
  299. package/dist/data/SignedDeltaBar.d.ts.map +1 -1
  300. package/dist/data/SortableHeader.d.ts +2 -2
  301. package/dist/data/SortableHeader.d.ts.map +1 -1
  302. package/dist/data/StatStrip.d.ts +2 -2
  303. package/dist/data/StatStrip.d.ts.map +1 -1
  304. package/dist/data/StatusBreakdown.d.ts +3 -3
  305. package/dist/data/StatusBreakdown.d.ts.map +1 -1
  306. package/dist/data/TabButton.d.ts +2 -2
  307. package/dist/data/TabButton.d.ts.map +1 -1
  308. package/dist/data/TaskExecDetails.d.ts +2 -2
  309. package/dist/data/TaskExecDetails.d.ts.map +1 -1
  310. package/dist/data/TaskManager.d.ts +1 -1
  311. package/dist/data/TaskManager.d.ts.map +1 -1
  312. package/dist/data/TaskManagerButton.d.ts +1 -1
  313. package/dist/data/TaskManagerButton.d.ts.map +1 -1
  314. package/dist/data/TaskProcessDetails.d.ts +1 -1
  315. package/dist/data/TaskProcessDetails.d.ts.map +1 -1
  316. package/dist/data/TaskProgress.d.ts +1 -1
  317. package/dist/data/TaskProgress.d.ts.map +1 -1
  318. package/dist/data/Timeline.d.ts +2 -2
  319. package/dist/data/Timeline.d.ts.map +1 -1
  320. package/dist/data/TimeseriesCoreBars.d.ts +1 -1
  321. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  322. package/dist/data/TimeseriesGauge.d.ts +1 -1
  323. package/dist/data/TimeseriesGauge.d.ts.map +1 -1
  324. package/dist/data/TimeseriesPanel.d.ts +1 -1
  325. package/dist/data/TimeseriesPanel.d.ts.map +1 -1
  326. package/dist/data/Tree.d.ts +2 -2
  327. package/dist/data/Tree.d.ts.map +1 -1
  328. package/dist/data/TreeGroupHeader.d.ts +2 -2
  329. package/dist/data/TreeGroupHeader.d.ts.map +1 -1
  330. package/dist/data/TreeNode.d.ts +2 -2
  331. package/dist/data/TreeNode.d.ts.map +1 -1
  332. package/dist/data/Version.d.ts +3 -3
  333. package/dist/data/WorkloadCard.d.ts +1 -1
  334. package/dist/data/WorkloadCard.d.ts.map +1 -1
  335. package/dist/data/ai/AdvancedChatConfig.d.ts +1 -1
  336. package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -1
  337. package/dist/data/ai/AdvancedCostsPanel.d.ts +1 -1
  338. package/dist/data/ai/AdvancedCostsPanel.d.ts.map +1 -1
  339. package/dist/data/ai/ChatButton.d.ts +1 -1
  340. package/dist/data/ai/ChatButton.d.ts.map +1 -1
  341. package/dist/data/ai/ChatFab.d.ts +1 -1
  342. package/dist/data/ai/ChatFab.d.ts.map +1 -1
  343. package/dist/data/ai/ChatWindow.catalogs.cjs +11 -5
  344. package/dist/data/ai/ChatWindow.catalogs.cjs.map +1 -1
  345. package/dist/data/ai/ChatWindow.catalogs.d.ts +2 -1
  346. package/dist/data/ai/ChatWindow.catalogs.d.ts.map +1 -1
  347. package/dist/data/ai/ChatWindow.catalogs.js +11 -5
  348. package/dist/data/ai/ChatWindow.catalogs.js.map +1 -1
  349. package/dist/data/ai/ChatWindow.cjs +1 -0
  350. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  351. package/dist/data/ai/ChatWindow.d.ts +2 -2
  352. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  353. package/dist/data/ai/ChatWindow.js +1 -0
  354. package/dist/data/ai/ChatWindow.js.map +1 -1
  355. package/dist/data/ai/ChatWindow.test-utils.d.ts +1 -1
  356. package/dist/data/ai/ChatWindow.thread-status.d.ts +1 -1
  357. package/dist/data/ai/ChatWindow.thread-status.d.ts.map +1 -1
  358. package/dist/data/ai/ChatWindow.types.d.ts +1 -1
  359. package/dist/data/ai/ChatWindowManager.d.ts +2 -2
  360. package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
  361. package/dist/data/ai/ContextBadges.d.ts +2 -2
  362. package/dist/data/ai/ContextBadges.d.ts.map +1 -1
  363. package/dist/data/ai/PolicyTree.d.ts +2 -2
  364. package/dist/data/ai/PolicyTree.d.ts.map +1 -1
  365. package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts +1 -1
  366. package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts.map +1 -1
  367. package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts +1 -1
  368. package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts.map +1 -1
  369. package/dist/data/ai/PromptCatalog/PromptPage.d.ts +1 -1
  370. package/dist/data/ai/PromptCatalog/PromptPage.d.ts.map +1 -1
  371. package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts +1 -1
  372. package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts.map +1 -1
  373. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +2 -2
  374. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts.map +1 -1
  375. package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts +1 -1
  376. package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts.map +1 -1
  377. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts +1 -1
  378. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts.map +1 -1
  379. package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts +1 -1
  380. package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts.map +1 -1
  381. package/dist/data/ai/PromptCatalog/types.d.ts +1 -1
  382. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +2 -2
  383. package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
  384. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts +1 -1
  385. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts.map +1 -1
  386. package/dist/data/ai/PromptRunEditor/VariablesField.cjs +79 -0
  387. package/dist/data/ai/PromptRunEditor/VariablesField.cjs.map +1 -0
  388. package/dist/data/ai/PromptRunEditor/VariablesField.d.ts +8 -0
  389. package/dist/data/ai/PromptRunEditor/VariablesField.d.ts.map +1 -0
  390. package/dist/data/ai/PromptRunEditor/VariablesField.js +79 -0
  391. package/dist/data/ai/PromptRunEditor/VariablesField.js.map +1 -0
  392. package/dist/data/ai/PromptRunEditor/index.cjs +61 -69
  393. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  394. package/dist/data/ai/PromptRunEditor/index.d.ts +12 -2
  395. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  396. package/dist/data/ai/PromptRunEditor/index.js +61 -69
  397. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  398. package/dist/data/ai/PromptRunEditor/model.cjs.map +1 -1
  399. package/dist/data/ai/PromptRunEditor/model.d.ts +2 -0
  400. package/dist/data/ai/PromptRunEditor/model.d.ts.map +1 -1
  401. package/dist/data/ai/PromptRunEditor/model.js.map +1 -1
  402. package/dist/data/ai/RuntimeModePicker.d.ts +1 -1
  403. package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
  404. package/dist/data/ai/SandboxConnectionsSection.d.ts +1 -1
  405. package/dist/data/ai/SandboxConnectionsSection.d.ts.map +1 -1
  406. package/dist/data/ai/SandboxCreateWizard.d.ts +1 -1
  407. package/dist/data/ai/SandboxCreateWizard.d.ts.map +1 -1
  408. package/dist/data/ai/SessionChatComposer.d.ts +2 -2
  409. package/dist/data/ai/SessionChatComposer.d.ts.map +1 -1
  410. package/dist/data/ai/SessionInspector.d.ts +2 -2
  411. package/dist/data/ai/SessionInspector.d.ts.map +1 -1
  412. package/dist/data/ai/SessionInspector.files.d.ts +1 -1
  413. package/dist/data/ai/SessionInspector.files.d.ts.map +1 -1
  414. package/dist/data/ai/SessionInspector.hierarchy.d.ts +2 -2
  415. package/dist/data/ai/SessionInspector.hierarchy.d.ts.map +1 -1
  416. package/dist/data/ai/SessionInspector.panels.d.ts +1 -1
  417. package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
  418. package/dist/data/ai/SessionInspector.plan.d.ts +1 -1
  419. package/dist/data/ai/SessionInspector.plan.d.ts.map +1 -1
  420. package/dist/data/ai/SessionInspector.summary.d.ts +2 -2
  421. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
  422. package/dist/data/ai/SessionInspector.transcript.d.ts +1 -1
  423. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
  424. package/dist/data/ai/SessionInspector.turns.d.ts +2 -2
  425. package/dist/data/ai/SessionInspector.turns.d.ts.map +1 -1
  426. package/dist/data/ai/SessionViewer.d.ts +2 -2
  427. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  428. package/dist/data/ai/SessionViewer.header.d.ts +2 -2
  429. package/dist/data/ai/SessionViewer.header.d.ts.map +1 -1
  430. package/dist/data/ai/SessionViewer.row-metadata.d.ts +3 -3
  431. package/dist/data/ai/SessionViewer.row-metadata.d.ts.map +1 -1
  432. package/dist/data/ai/SessionViewer.rows.d.ts +3 -3
  433. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  434. package/dist/data/ai/SessionViewer.tool-details.d.ts +5 -5
  435. package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -1
  436. package/dist/data/ai/SessionViewer.tool-row.d.ts +1 -1
  437. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
  438. package/dist/data/ai/SessionViewerMenu.d.ts +1 -1
  439. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
  440. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts +1 -1
  441. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts.map +1 -1
  442. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +1 -1
  443. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  444. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts +2 -2
  445. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts.map +1 -1
  446. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +2 -2
  447. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts.map +1 -1
  448. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts +1 -1
  449. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts.map +1 -1
  450. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +4 -3
  451. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
  452. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +2 -2
  453. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
  454. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +2 -1
  455. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
  456. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.cjs +2 -2
  457. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.cjs.map +1 -1
  458. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts +1 -1
  459. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts.map +1 -1
  460. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.js +1 -1
  461. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts +1 -1
  462. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts.map +1 -1
  463. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +2 -2
  464. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts.map +1 -1
  465. package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts +1 -1
  466. package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts.map +1 -1
  467. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +2 -2
  468. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -1
  469. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +2 -2
  470. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts.map +1 -1
  471. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +1 -1
  472. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts.map +1 -1
  473. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +2 -2
  474. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts.map +1 -1
  475. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +1 -1
  476. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
  477. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts +1 -1
  478. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -1
  479. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +12 -12
  480. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts.map +1 -1
  481. package/dist/data/ai/SpecRuntimeEditor/index.cjs +4 -3
  482. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  483. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +2 -2
  484. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  485. package/dist/data/ai/SpecRuntimeEditor/index.js +2 -1
  486. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  487. package/dist/data/ai/ThreadPicker.d.ts +1 -1
  488. package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
  489. package/dist/data/ai/ToolPreferences.d.ts +1 -1
  490. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  491. package/dist/data/ai/ToolPreferencesList.d.ts +2 -2
  492. package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -1
  493. package/dist/data/ai/ToolSchemaBrowser.d.ts +1 -1
  494. package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -1
  495. package/dist/data/ai/ToolSchemaBrowser.detail.d.ts +1 -1
  496. package/dist/data/ai/ToolSchemaBrowser.detail.d.ts.map +1 -1
  497. package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts +1 -1
  498. package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts.map +1 -1
  499. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +1 -1
  500. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts.map +1 -1
  501. package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +1 -1
  502. package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts.map +1 -1
  503. package/dist/data/ai/chat-window-context.d.ts +1 -1
  504. package/dist/data/ai/index.d.ts +3 -2
  505. package/dist/data/ai/index.d.ts.map +1 -1
  506. package/dist/data/ai/runtime-profile.cjs.map +1 -1
  507. package/dist/data/ai/runtime-profile.d.ts +9 -7
  508. package/dist/data/ai/runtime-profile.d.ts.map +1 -1
  509. package/dist/data/ai/runtime-profile.js.map +1 -1
  510. package/dist/data/ai/runtime-profiles/OrderedPresetSelect.cjs +111 -0
  511. package/dist/data/ai/runtime-profiles/OrderedPresetSelect.cjs.map +1 -0
  512. package/dist/data/ai/runtime-profiles/OrderedPresetSelect.d.ts +7 -0
  513. package/dist/data/ai/runtime-profiles/OrderedPresetSelect.d.ts.map +1 -0
  514. package/dist/data/ai/runtime-profiles/OrderedPresetSelect.js +111 -0
  515. package/dist/data/ai/runtime-profiles/OrderedPresetSelect.js.map +1 -0
  516. package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.cjs +313 -0
  517. package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.cjs.map +1 -0
  518. package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.d.ts +8 -0
  519. package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.d.ts.map +1 -0
  520. package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.js +313 -0
  521. package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.js.map +1 -0
  522. package/dist/data/ai/runtime-profiles/PermissionStrategyConditionRow.cjs +98 -0
  523. package/dist/data/ai/runtime-profiles/PermissionStrategyConditionRow.cjs.map +1 -0
  524. package/dist/data/ai/runtime-profiles/PermissionStrategyConditionRow.d.ts +11 -0
  525. package/dist/data/ai/runtime-profiles/PermissionStrategyConditionRow.d.ts.map +1 -0
  526. package/dist/data/ai/runtime-profiles/PermissionStrategyConditionRow.js +98 -0
  527. package/dist/data/ai/runtime-profiles/PermissionStrategyConditionRow.js.map +1 -0
  528. package/dist/data/ai/runtime-profiles/PresetSpecEditor.cjs +35 -0
  529. package/dist/data/ai/runtime-profiles/PresetSpecEditor.cjs.map +1 -0
  530. package/dist/data/ai/runtime-profiles/PresetSpecEditor.d.ts +11 -0
  531. package/dist/data/ai/runtime-profiles/PresetSpecEditor.d.ts.map +1 -0
  532. package/dist/data/ai/runtime-profiles/PresetSpecEditor.js +35 -0
  533. package/dist/data/ai/runtime-profiles/PresetSpecEditor.js.map +1 -0
  534. package/dist/data/ai/runtime-profiles/PresetWorkspace.cjs +179 -0
  535. package/dist/data/ai/runtime-profiles/PresetWorkspace.cjs.map +1 -0
  536. package/dist/data/ai/runtime-profiles/PresetWorkspace.d.ts +22 -0
  537. package/dist/data/ai/runtime-profiles/PresetWorkspace.d.ts.map +1 -0
  538. package/dist/data/ai/runtime-profiles/PresetWorkspace.js +179 -0
  539. package/dist/data/ai/runtime-profiles/PresetWorkspace.js.map +1 -0
  540. package/dist/data/ai/runtime-profiles/ProfileSpecEditor.cjs +57 -0
  541. package/dist/data/ai/runtime-profiles/ProfileSpecEditor.cjs.map +1 -0
  542. package/dist/data/ai/runtime-profiles/ProfileSpecEditor.d.ts +18 -0
  543. package/dist/data/ai/runtime-profiles/ProfileSpecEditor.d.ts.map +1 -0
  544. package/dist/data/ai/runtime-profiles/ProfileSpecEditor.js +57 -0
  545. package/dist/data/ai/runtime-profiles/ProfileSpecEditor.js.map +1 -0
  546. package/dist/data/ai/runtime-profiles/ProfileWorkspace.cjs +135 -0
  547. package/dist/data/ai/runtime-profiles/ProfileWorkspace.cjs.map +1 -0
  548. package/dist/data/ai/runtime-profiles/ProfileWorkspace.d.ts +23 -0
  549. package/dist/data/ai/runtime-profiles/ProfileWorkspace.d.ts.map +1 -0
  550. package/dist/data/ai/runtime-profiles/ProfileWorkspace.js +135 -0
  551. package/dist/data/ai/runtime-profiles/ProfileWorkspace.js.map +1 -0
  552. package/dist/data/ai/runtime-profiles/ResolutionInspector.cjs +85 -0
  553. package/dist/data/ai/runtime-profiles/ResolutionInspector.cjs.map +1 -0
  554. package/dist/data/ai/runtime-profiles/ResolutionInspector.d.ts +7 -0
  555. package/dist/data/ai/runtime-profiles/ResolutionInspector.d.ts.map +1 -0
  556. package/dist/data/ai/runtime-profiles/ResolutionInspector.js +85 -0
  557. package/dist/data/ai/runtime-profiles/ResolutionInspector.js.map +1 -0
  558. package/dist/data/ai/runtime-profiles/ResolutionTrace.cjs +42 -0
  559. package/dist/data/ai/runtime-profiles/ResolutionTrace.cjs.map +1 -0
  560. package/dist/data/ai/runtime-profiles/ResolutionTrace.d.ts +6 -0
  561. package/dist/data/ai/runtime-profiles/ResolutionTrace.d.ts.map +1 -0
  562. package/dist/data/ai/runtime-profiles/ResolutionTrace.js +42 -0
  563. package/dist/data/ai/runtime-profiles/ResolutionTrace.js.map +1 -0
  564. package/dist/data/ai/runtime-profiles/RuntimeLibraryList.cjs +93 -0
  565. package/dist/data/ai/runtime-profiles/RuntimeLibraryList.cjs.map +1 -0
  566. package/dist/data/ai/runtime-profiles/RuntimeLibraryList.d.ts +18 -0
  567. package/dist/data/ai/runtime-profiles/RuntimeLibraryList.d.ts.map +1 -0
  568. package/dist/data/ai/runtime-profiles/RuntimeLibraryList.js +93 -0
  569. package/dist/data/ai/runtime-profiles/RuntimeLibraryList.js.map +1 -0
  570. package/dist/data/ai/runtime-profiles/RuntimePersistenceBar.cjs +44 -0
  571. package/dist/data/ai/runtime-profiles/RuntimePersistenceBar.cjs.map +1 -0
  572. package/dist/data/ai/runtime-profiles/RuntimePersistenceBar.d.ts +6 -0
  573. package/dist/data/ai/runtime-profiles/RuntimePersistenceBar.d.ts.map +1 -0
  574. package/dist/data/ai/runtime-profiles/RuntimePersistenceBar.js +44 -0
  575. package/dist/data/ai/runtime-profiles/RuntimePersistenceBar.js.map +1 -0
  576. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.cjs +198 -0
  577. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.cjs.map +1 -0
  578. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.d.ts +12 -0
  579. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.d.ts.map +1 -0
  580. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.js +198 -0
  581. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.js.map +1 -0
  582. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.cjs +97 -0
  583. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.cjs.map +1 -0
  584. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.d.ts +26 -0
  585. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.d.ts.map +1 -0
  586. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.js +97 -0
  587. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.js.map +1 -0
  588. package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.cjs +143 -0
  589. package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.cjs.map +1 -0
  590. package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.d.ts +25 -0
  591. package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.d.ts.map +1 -0
  592. package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.js +143 -0
  593. package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.js.map +1 -0
  594. package/dist/data/ai/runtime-profiles/RuntimeStatusNotice.cjs +41 -0
  595. package/dist/data/ai/runtime-profiles/RuntimeStatusNotice.cjs.map +1 -0
  596. package/dist/data/ai/runtime-profiles/RuntimeStatusNotice.d.ts +8 -0
  597. package/dist/data/ai/runtime-profiles/RuntimeStatusNotice.d.ts.map +1 -0
  598. package/dist/data/ai/runtime-profiles/RuntimeStatusNotice.js +41 -0
  599. package/dist/data/ai/runtime-profiles/RuntimeStatusNotice.js.map +1 -0
  600. package/dist/data/ai/runtime-profiles/index.d.ts +20 -0
  601. package/dist/data/ai/runtime-profiles/index.d.ts.map +1 -0
  602. package/dist/data/ai/runtime-profiles/types.d.ts +50 -0
  603. package/dist/data/ai/runtime-profiles/types.d.ts.map +1 -0
  604. package/dist/data/ai/runtime-profiles/use-permission-catalog.cjs +37 -0
  605. package/dist/data/ai/runtime-profiles/use-permission-catalog.cjs.map +1 -0
  606. package/dist/data/ai/runtime-profiles/use-permission-catalog.d.ts +5 -0
  607. package/dist/data/ai/runtime-profiles/use-permission-catalog.d.ts.map +1 -0
  608. package/dist/data/ai/runtime-profiles/use-permission-catalog.js +37 -0
  609. package/dist/data/ai/runtime-profiles/use-permission-catalog.js.map +1 -0
  610. package/dist/data/ai/runtime-profiles/use-resolution.cjs +43 -0
  611. package/dist/data/ai/runtime-profiles/use-resolution.cjs.map +1 -0
  612. package/dist/data/ai/runtime-profiles/use-resolution.d.ts +4 -0
  613. package/dist/data/ai/runtime-profiles/use-resolution.d.ts.map +1 -0
  614. package/dist/data/ai/runtime-profiles/use-resolution.js +43 -0
  615. package/dist/data/ai/runtime-profiles/use-resolution.js.map +1 -0
  616. package/dist/data/ai/runtime-profiles/use-runtime-families.cjs +38 -0
  617. package/dist/data/ai/runtime-profiles/use-runtime-families.cjs.map +1 -0
  618. package/dist/data/ai/runtime-profiles/use-runtime-families.d.ts +3 -0
  619. package/dist/data/ai/runtime-profiles/use-runtime-families.d.ts.map +1 -0
  620. package/dist/data/ai/runtime-profiles/use-runtime-families.js +38 -0
  621. package/dist/data/ai/runtime-profiles/use-runtime-families.js.map +1 -0
  622. package/dist/data/ai/runtime-profiles/use-runtime-profile-picker.cjs +107 -0
  623. package/dist/data/ai/runtime-profiles/use-runtime-profile-picker.cjs.map +1 -0
  624. package/dist/data/ai/runtime-profiles/use-runtime-profile-picker.d.ts +35 -0
  625. package/dist/data/ai/runtime-profiles/use-runtime-profile-picker.d.ts.map +1 -0
  626. package/dist/data/ai/runtime-profiles/use-runtime-profile-picker.js +107 -0
  627. package/dist/data/ai/runtime-profiles/use-runtime-profile-picker.js.map +1 -0
  628. package/dist/data/ai/use-session-scroll.cjs.map +1 -1
  629. package/dist/data/ai/use-session-scroll.d.ts +3 -3
  630. package/dist/data/ai/use-session-scroll.d.ts.map +1 -1
  631. package/dist/data/ai/use-session-scroll.js.map +1 -1
  632. package/dist/data/badge-variants.d.ts +1 -1
  633. package/dist/data/cache-browser/CacheBrowser.d.ts +1 -1
  634. package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
  635. package/dist/data/cache-browser/CacheDetailPanel.d.ts +1 -1
  636. package/dist/data/cache-browser/CacheDetailPanel.d.ts.map +1 -1
  637. package/dist/data/cache-browser/CacheStatsOverview.d.ts +1 -1
  638. package/dist/data/cache-browser/CacheStatsOverview.d.ts.map +1 -1
  639. package/dist/data/cache-browser/CacheTree.d.ts +2 -2
  640. package/dist/data/cache-browser/CacheTree.d.ts.map +1 -1
  641. package/dist/data/cache-browser/CacheValue.d.ts +1 -1
  642. package/dist/data/cache-browser/CacheValue.d.ts.map +1 -1
  643. package/dist/data/cache-browser/adapter.d.ts +1 -1
  644. package/dist/data/cells/CellFilterActions.d.ts +2 -2
  645. package/dist/data/cells/CellFilterActions.d.ts.map +1 -1
  646. package/dist/data/cells/EntityCell.d.ts +2 -2
  647. package/dist/data/cells/EntityCell.d.ts.map +1 -1
  648. package/dist/data/cells/StatusDot.d.ts +1 -1
  649. package/dist/data/cells/StatusDot.d.ts.map +1 -1
  650. package/dist/data/cells/TagList.d.ts +3 -3
  651. package/dist/data/cells/TagList.d.ts.map +1 -1
  652. package/dist/data/cells/Timestamp.d.ts +1 -1
  653. package/dist/data/cells/Timestamp.d.ts.map +1 -1
  654. package/dist/data/cells/tag-utils.d.ts +1 -1
  655. package/dist/data/chat/Attachment.d.ts +2 -2
  656. package/dist/data/chat/Attachment.d.ts.map +1 -1
  657. package/dist/data/chat/Chat.d.ts +1 -1
  658. package/dist/data/chat/Chat.d.ts.map +1 -1
  659. package/dist/data/chat/ChatRuntimeToolbar.d.ts +1 -1
  660. package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -1
  661. package/dist/data/chat/ContextMeter.d.ts +1 -1
  662. package/dist/data/chat/ContextMeter.d.ts.map +1 -1
  663. package/dist/data/chat/Conversation.d.ts +1 -1
  664. package/dist/data/chat/Conversation.d.ts.map +1 -1
  665. package/dist/data/chat/Message.d.ts +1 -1
  666. package/dist/data/chat/Message.d.ts.map +1 -1
  667. package/dist/data/chat/MessageActions.d.ts +1 -1
  668. package/dist/data/chat/MessageActions.d.ts.map +1 -1
  669. package/dist/data/chat/ModelSelector.d.ts +5 -5
  670. package/dist/data/chat/ModelSelector.d.ts.map +1 -1
  671. package/dist/data/chat/PromptInput.d.ts +2 -2
  672. package/dist/data/chat/PromptInput.d.ts.map +1 -1
  673. package/dist/data/chat/Reasoning.d.ts +1 -1
  674. package/dist/data/chat/Reasoning.d.ts.map +1 -1
  675. package/dist/data/chat/Suggestion.d.ts +1 -1
  676. package/dist/data/chat/Suggestion.d.ts.map +1 -1
  677. package/dist/data/chat/ToolCall.d.ts +1 -1
  678. package/dist/data/chat/ToolCall.d.ts.map +1 -1
  679. package/dist/data/chat/tool-render/ToolArgs.d.ts +1 -1
  680. package/dist/data/chat/tool-render/ToolParams.d.ts +1 -1
  681. package/dist/data/chat/tool-render/ToolValue.d.ts +1 -1
  682. package/dist/data/chat/tool-render/adapter.d.ts +1 -1
  683. package/dist/data/chat/tool-render/context.d.ts +1 -1
  684. package/dist/data/chat/tool-render/defaults.d.ts +1 -1
  685. package/dist/data/chat/tool-render/known-tool-views.d.ts +1 -1
  686. package/dist/data/chat/tool-render/summary.d.ts +1 -1
  687. package/dist/data/chat/types.d.ts +1 -1
  688. package/dist/data/clicky-export/ClickyExportDialog.d.ts +1 -1
  689. package/dist/data/clicky-export/ClickyExportDialog.d.ts.map +1 -1
  690. package/dist/data/clicky-export/useClickyExport.d.ts +1 -1
  691. package/dist/data/code-block-actions.d.ts +1 -1
  692. package/dist/data/code-block-actions.d.ts.map +1 -1
  693. package/dist/data/data-table-server-filters.d.ts +1 -1
  694. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +2 -2
  695. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
  696. package/dist/data/diagnostics/DiagnosticsTree.d.ts +1 -1
  697. package/dist/data/diagnostics/DiagnosticsTree.d.ts.map +1 -1
  698. package/dist/data/diagnostics/ErrorDetails.d.ts +4 -4
  699. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  700. package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
  701. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  702. package/dist/data/diagnostics/GoroutineCard.d.ts +1 -1
  703. package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -1
  704. package/dist/data/diagnostics/JvmStackTrace.d.ts +1 -1
  705. package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
  706. package/dist/data/diagnostics/RenderedStackTrace.d.ts +1 -1
  707. package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -1
  708. package/dist/data/diagnostics/StackFrameRow.d.ts +2 -2
  709. package/dist/data/diagnostics/StackFrameRow.d.ts.map +1 -1
  710. package/dist/data/diagnostics/ThreadCard.d.ts +1 -1
  711. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -1
  712. package/dist/data/git/GitChangeList.d.ts +5 -5
  713. package/dist/data/git/GitChangeList.d.ts.map +1 -1
  714. package/dist/data/har/HarPanel.d.ts +1 -1
  715. package/dist/data/har/HarPanel.d.ts.map +1 -1
  716. package/dist/data/icon-fallback.d.ts +1 -1
  717. package/dist/data/query-browser/QueryBrowser.d.ts +1 -1
  718. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  719. package/dist/data/query-browser/QueryBrowser.types.d.ts +1 -1
  720. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +1 -1
  721. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -1
  722. package/dist/data/query-browser/QueryBrowserResults.d.ts +1 -1
  723. package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -1
  724. package/dist/data/runtime/ProviderStatusPanel.d.ts +1 -1
  725. package/dist/data/runtime/ProviderStatusPanel.d.ts.map +1 -1
  726. package/dist/data/runtime/RuntimeBar.cjs +3 -2
  727. package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
  728. package/dist/data/runtime/RuntimeBar.d.ts +1 -1
  729. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
  730. package/dist/data/runtime/RuntimeBar.js +3 -2
  731. package/dist/data/runtime/RuntimeBar.js.map +1 -1
  732. package/dist/data/runtime/RuntimeBarCombo.d.ts +1 -1
  733. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -1
  734. package/dist/data/runtime/RuntimeBarSegments.d.ts +1 -1
  735. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -1
  736. package/dist/data/runtime/runtime-field-support.cjs +3 -3
  737. package/dist/data/runtime/runtime-field-support.cjs.map +1 -1
  738. package/dist/data/runtime/runtime-field-support.js +1 -1
  739. package/dist/data/runtime/runtime-mode.cjs +14 -47
  740. package/dist/data/runtime/runtime-mode.cjs.map +1 -1
  741. package/dist/data/runtime/runtime-mode.d.ts +5 -7
  742. package/dist/data/runtime/runtime-mode.d.ts.map +1 -1
  743. package/dist/data/runtime/runtime-mode.js +7 -39
  744. package/dist/data/runtime/runtime-mode.js.map +1 -1
  745. package/dist/data/test-runner/TestDetailPanel.d.ts +1 -1
  746. package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
  747. package/dist/data/test-runner/TestFailureDetail.d.ts +3 -3
  748. package/dist/data/test-runner/TestFailureDetail.d.ts.map +1 -1
  749. package/dist/data/test-runner/TestFilterBar.d.ts +1 -1
  750. package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
  751. package/dist/data/test-runner/TestRunSummary.d.ts +1 -1
  752. package/dist/data/test-runner/TestRunSummary.d.ts.map +1 -1
  753. package/dist/data/test-runner/TestRunner.d.ts +2 -2
  754. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  755. package/dist/data/test-runner/TestTree.d.ts +1 -1
  756. package/dist/data/test-runner/TestTree.d.ts.map +1 -1
  757. package/dist/data/test-runner/TestTreeNode.cjs +16 -11
  758. package/dist/data/test-runner/TestTreeNode.cjs.map +1 -1
  759. package/dist/data/test-runner/TestTreeNode.d.ts +1 -1
  760. package/dist/data/test-runner/TestTreeNode.d.ts.map +1 -1
  761. package/dist/data/test-runner/TestTreeNode.js +16 -11
  762. package/dist/data/test-runner/TestTreeNode.js.map +1 -1
  763. package/dist/data/test-runner/adapter.d.ts +1 -1
  764. package/dist/data/test-runner/context.d.ts +1 -1
  765. package/dist/data/version-info.cjs +3 -3
  766. package/dist/data/version-info.js +3 -3
  767. package/dist/devtools/DebugConsole.d.ts +1 -1
  768. package/dist/devtools/DebugConsole.d.ts.map +1 -1
  769. package/dist/devtools/DebugConsoleButton.d.ts +1 -1
  770. package/dist/devtools/DebugConsoleButton.d.ts.map +1 -1
  771. package/dist/devtools/DebugConsoleDock.d.ts +1 -1
  772. package/dist/devtools/DebugConsoleDock.d.ts.map +1 -1
  773. package/dist/devtools/ExecutionDetail.d.ts +1 -1
  774. package/dist/devtools/ExecutionDetail.d.ts.map +1 -1
  775. package/dist/devtools/tabs/ConsoleTab.d.ts +1 -1
  776. package/dist/devtools/tabs/ConsoleTab.d.ts.map +1 -1
  777. package/dist/devtools/tabs/InspectionCaches.d.ts +1 -1
  778. package/dist/devtools/tabs/InspectionCaches.d.ts.map +1 -1
  779. package/dist/devtools/tabs/InspectionTab.d.ts +1 -1
  780. package/dist/devtools/tabs/InspectionTab.d.ts.map +1 -1
  781. package/dist/devtools/tabs/NetworkTab.d.ts +1 -1
  782. package/dist/devtools/tabs/NetworkTab.d.ts.map +1 -1
  783. package/dist/devtools/tabs/QueriesTab.d.ts +1 -1
  784. package/dist/devtools/tabs/QueriesTab.d.ts.map +1 -1
  785. package/dist/hooks/density-provider.d.ts +3 -3
  786. package/dist/hooks/density-provider.d.ts.map +1 -1
  787. package/dist/hooks/theme-provider.d.ts +2 -2
  788. package/dist/hooks/theme-provider.d.ts.map +1 -1
  789. package/dist/hooks/use-density.d.ts +1 -1
  790. package/dist/hooks/use-theme.d.ts +1 -1
  791. package/dist/icons/registry.d.ts +1 -1
  792. package/dist/icons/types.d.ts +1 -1
  793. package/dist/index.cjs +52 -0
  794. package/dist/index.cjs.map +1 -1
  795. package/dist/index.js +52 -0
  796. package/dist/index.js.map +1 -1
  797. package/dist/layout/AppShell.cjs.map +1 -1
  798. package/dist/layout/AppShell.d.ts +10 -2
  799. package/dist/layout/AppShell.d.ts.map +1 -1
  800. package/dist/layout/AppShell.debug.d.ts +1 -1
  801. package/dist/layout/AppShell.debug.d.ts.map +1 -1
  802. package/dist/layout/AppShell.js.map +1 -1
  803. package/dist/layout/AppShell.nav.cjs +133 -76
  804. package/dist/layout/AppShell.nav.cjs.map +1 -1
  805. package/dist/layout/AppShell.nav.d.ts +1 -1
  806. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  807. package/dist/layout/AppShell.nav.drag.cjs +86 -0
  808. package/dist/layout/AppShell.nav.drag.cjs.map +1 -0
  809. package/dist/layout/AppShell.nav.drag.d.ts +52 -0
  810. package/dist/layout/AppShell.nav.drag.d.ts.map +1 -0
  811. package/dist/layout/AppShell.nav.drag.js +86 -0
  812. package/dist/layout/AppShell.nav.drag.js.map +1 -0
  813. package/dist/layout/AppShell.nav.js +133 -76
  814. package/dist/layout/AppShell.nav.js.map +1 -1
  815. package/dist/layout/AppSidebar.d.ts +3 -3
  816. package/dist/layout/AppSidebar.d.ts.map +1 -1
  817. package/dist/layout/Panel.d.ts +2 -2
  818. package/dist/layout/Panel.d.ts.map +1 -1
  819. package/dist/layout/PanelFrame.d.ts +2 -2
  820. package/dist/layout/PanelFrame.d.ts.map +1 -1
  821. package/dist/layout/Section.d.ts +3 -3
  822. package/dist/layout/Section.d.ts.map +1 -1
  823. package/dist/layout/SplitPane.d.ts +2 -2
  824. package/dist/layout/SplitPane.d.ts.map +1 -1
  825. package/dist/layout/Tabs.d.ts +2 -2
  826. package/dist/layout/Tabs.d.ts.map +1 -1
  827. package/dist/layout/Workspace.d.ts +2 -2
  828. package/dist/layout/Workspace.d.ts.map +1 -1
  829. package/dist/layout/Workspace.model.d.ts +1 -1
  830. package/dist/layout/Workspace.regions.d.ts +2 -2
  831. package/dist/layout/Workspace.regions.d.ts.map +1 -1
  832. package/dist/{components/combobox-utils.cjs → lib/combobox-values.cjs} +1 -5
  833. package/dist/lib/combobox-values.cjs.map +1 -0
  834. package/dist/{components/combobox-utils.d.ts → lib/combobox-values.d.ts} +3 -13
  835. package/dist/lib/combobox-values.d.ts.map +1 -0
  836. package/dist/{components/combobox-utils.js → lib/combobox-values.js} +1 -5
  837. package/dist/lib/combobox-values.js.map +1 -0
  838. package/dist/lib/combobox.cjs +93 -0
  839. package/dist/lib/combobox.cjs.map +1 -0
  840. package/dist/lib/combobox.d.ts +20 -0
  841. package/dist/lib/combobox.d.ts.map +1 -0
  842. package/dist/lib/combobox.js +93 -0
  843. package/dist/lib/combobox.js.map +1 -0
  844. package/dist/lib/permission-strategies.cjs +155 -0
  845. package/dist/lib/permission-strategies.cjs.map +1 -0
  846. package/dist/lib/permission-strategies.d.ts +35 -0
  847. package/dist/lib/permission-strategies.d.ts.map +1 -0
  848. package/dist/lib/permission-strategies.js +155 -0
  849. package/dist/lib/permission-strategies.js.map +1 -0
  850. package/dist/lib/runtime-family.cjs +51 -0
  851. package/dist/lib/runtime-family.cjs.map +1 -0
  852. package/dist/lib/runtime-family.d.ts +25 -0
  853. package/dist/lib/runtime-family.d.ts.map +1 -0
  854. package/dist/lib/runtime-family.js +51 -0
  855. package/dist/lib/runtime-family.js.map +1 -0
  856. package/dist/lib/runtime-profile-model.cjs +129 -0
  857. package/dist/lib/runtime-profile-model.cjs.map +1 -0
  858. package/dist/lib/runtime-profile-model.d.ts +30 -0
  859. package/dist/lib/runtime-profile-model.d.ts.map +1 -0
  860. package/dist/lib/runtime-profile-model.js +129 -0
  861. package/dist/lib/runtime-profile-model.js.map +1 -0
  862. package/dist/monaco/MonacoEditor.d.ts +1 -1
  863. package/dist/monaco/MonacoEditor.d.ts.map +1 -1
  864. package/dist/monaco/MonacoProvider.d.ts +1 -1
  865. package/dist/monaco/MonacoProvider.d.ts.map +1 -1
  866. package/dist/monaco/MonacoSchemaEditor.cjs +4 -4
  867. package/dist/monaco/MonacoSchemaEditor.cjs.map +1 -1
  868. package/dist/monaco/MonacoSchemaEditor.d.ts +1 -1
  869. package/dist/monaco/MonacoSchemaEditor.d.ts.map +1 -1
  870. package/dist/monaco/MonacoSchemaEditor.js +4 -4
  871. package/dist/monaco/MonacoSchemaEditor.js.map +1 -1
  872. package/dist/monaco/types.d.ts +1 -1
  873. package/dist/monaco/use-monaco-worker.d.ts +1 -1
  874. package/dist/overlay/CellActions.d.ts +3 -3
  875. package/dist/overlay/CellActions.d.ts.map +1 -1
  876. package/dist/overlay/CommandPalette.d.ts +2 -2
  877. package/dist/overlay/CommandPalette.model.d.ts +1 -1
  878. package/dist/overlay/CommandPaletteList.cjs.map +1 -1
  879. package/dist/overlay/CommandPaletteList.d.ts +3 -3
  880. package/dist/overlay/CommandPaletteList.d.ts.map +1 -1
  881. package/dist/overlay/CommandPaletteList.js.map +1 -1
  882. package/dist/overlay/CommandPaletteTrigger.d.ts +1 -1
  883. package/dist/overlay/CommandPaletteTrigger.d.ts.map +1 -1
  884. package/dist/overlay/ContextMenu.d.ts +1 -1
  885. package/dist/overlay/ContextMenu.d.ts.map +1 -1
  886. package/dist/overlay/DropdownMenu.d.ts +2 -2
  887. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  888. package/dist/overlay/DropdownMenuSubmenu.d.ts +1 -1
  889. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  890. package/dist/overlay/HoverCard.d.ts +2 -2
  891. package/dist/overlay/HoverCard.d.ts.map +1 -1
  892. package/dist/overlay/Modal.cjs +105 -18
  893. package/dist/overlay/Modal.cjs.map +1 -1
  894. package/dist/overlay/Modal.d.ts +2 -2
  895. package/dist/overlay/Modal.d.ts.map +1 -1
  896. package/dist/overlay/Modal.js +105 -18
  897. package/dist/overlay/Modal.js.map +1 -1
  898. package/dist/overlay/Toast.d.ts +2 -2
  899. package/dist/overlay/Toast.d.ts.map +1 -1
  900. package/dist/overlay/Tour.d.ts +1 -1
  901. package/dist/overlay/Tour.d.ts.map +1 -1
  902. package/dist/overlay/TourCard.d.ts +2 -2
  903. package/dist/overlay/TourCard.d.ts.map +1 -1
  904. package/dist/overlay/TourProvider.d.ts +2 -2
  905. package/dist/overlay/TourProvider.d.ts.map +1 -1
  906. package/dist/overlay/TourSpotlight.d.ts +1 -1
  907. package/dist/overlay/TourSpotlight.d.ts.map +1 -1
  908. package/dist/overlay/dropdownMenuContext.d.ts +1 -1
  909. package/dist/overlay/toast-context.d.ts +2 -2
  910. package/dist/overlay/tour-context.d.ts +1 -1
  911. package/dist/overlay/tour-types.d.ts +1 -1
  912. package/dist/profiles/cel/celEditor.d.ts +4 -4
  913. package/dist/profiles/cel/celEditor.d.ts.map +1 -1
  914. package/dist/profiles/connections/catalogTree.d.ts +1 -1
  915. package/dist/profiles/connections/catalogTree.d.ts.map +1 -1
  916. package/dist/profiles/connections/connectionBrowserModel.d.ts +1 -1
  917. package/dist/profiles/connections/connectionQueryWorkspace.d.ts +2 -2
  918. package/dist/profiles/connections/connectionQueryWorkspace.d.ts.map +1 -1
  919. package/dist/profiles/connections/inspectionStatus.d.ts +1 -1
  920. package/dist/profiles/connections/inspectionStatus.d.ts.map +1 -1
  921. package/dist/profiles/editor/profileBuilder.d.ts +3 -3
  922. package/dist/profiles/editor/profileBuilder.d.ts.map +1 -1
  923. package/dist/profiles/editor/profileBuilderWorkspace.d.ts +1 -1
  924. package/dist/profiles/editor/profileBuilderWorkspace.d.ts.map +1 -1
  925. package/dist/profiles/editor/profileEditor.d.ts +1 -1
  926. package/dist/profiles/editor/profileEditor.d.ts.map +1 -1
  927. package/dist/profiles/editor/profileEditorPreview.d.ts +1 -1
  928. package/dist/profiles/editor/profileEditorPreview.d.ts.map +1 -1
  929. package/dist/profiles/editor/profileEditorRail.d.ts +1 -1
  930. package/dist/profiles/editor/profileEditorRail.d.ts.map +1 -1
  931. package/dist/profiles/editor/profileEditorRaw.d.ts +1 -1
  932. package/dist/profiles/editor/profileEditorRaw.d.ts.map +1 -1
  933. package/dist/profiles/editor/profileEditorSections.d.ts +3 -3
  934. package/dist/profiles/editor/profileEditorSections.d.ts.map +1 -1
  935. package/dist/profiles/elasticsearch/esParamMappingPill.d.ts +1 -1
  936. package/dist/profiles/elasticsearch/esParamMappingPill.d.ts.map +1 -1
  937. package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +1 -1
  938. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +2 -2
  939. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts.map +1 -1
  940. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts +1 -1
  941. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts.map +1 -1
  942. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts +1 -1
  943. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts.map +1 -1
  944. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts +2 -2
  945. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts.map +1 -1
  946. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts +1 -1
  947. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts.map +1 -1
  948. package/dist/profiles/elasticsearch/esQueryPreview.d.ts +1 -1
  949. package/dist/profiles/elasticsearch/esQueryPreview.d.ts.map +1 -1
  950. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts +1 -1
  951. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts.map +1 -1
  952. package/dist/profiles/elasticsearch/esValueCombobox.d.ts +2 -2
  953. package/dist/profiles/elasticsearch/esValueCombobox.d.ts.map +1 -1
  954. package/dist/profiles/fields/profileColumnPicker.d.ts +1 -1
  955. package/dist/profiles/fields/profileColumnPicker.d.ts.map +1 -1
  956. package/dist/profiles/fields/profileFieldControls.d.ts +3 -3
  957. package/dist/profiles/fields/profileFieldControls.d.ts.map +1 -1
  958. package/dist/profiles/fields/profileFieldEditor.d.ts +3 -3
  959. package/dist/profiles/fields/profileFieldEditor.d.ts.map +1 -1
  960. package/dist/profiles/fields/profileFieldFilterEditor.d.ts +1 -1
  961. package/dist/profiles/fields/profileFieldFilterEditor.d.ts.map +1 -1
  962. package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
  963. package/dist/profiles/fields/profileFieldList.d.ts +2 -2
  964. package/dist/profiles/fields/profileFieldList.d.ts.map +1 -1
  965. package/dist/profiles/fields/profileFieldManager.d.ts +1 -1
  966. package/dist/profiles/fields/profileFieldManager.d.ts.map +1 -1
  967. package/dist/profiles/fields/profileFieldState.d.ts +1 -1
  968. package/dist/profiles/processor/processorPipeline.d.ts +1 -1
  969. package/dist/profiles/processor/processorPipeline.d.ts.map +1 -1
  970. package/dist/profiles/processor/processorPipelineEditor.d.ts +1 -1
  971. package/dist/profiles/processor/processorPipelineEditor.d.ts.map +1 -1
  972. package/dist/profiles/processor/processorPreviewTable.d.ts +1 -1
  973. package/dist/profiles/processor/processorPreviewTable.d.ts.map +1 -1
  974. package/dist/profiles/query/jsonPathSample.d.ts +1 -1
  975. package/dist/profiles/query/jsonPathSampleRow.d.ts +2 -2
  976. package/dist/profiles/query/jsonPathSampleRow.d.ts.map +1 -1
  977. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts +1 -1
  978. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts.map +1 -1
  979. package/dist/profiles/query/prometheusResults.d.ts +2 -2
  980. package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
  981. package/dist/profiles/query/queryRowLimits.d.ts +1 -1
  982. package/dist/profiles/query/queryRowLimits.d.ts.map +1 -1
  983. package/dist/profiles/query/queryTargetPicker.d.ts +1 -1
  984. package/dist/profiles/query/queryTargetPicker.d.ts.map +1 -1
  985. package/dist/profiles/wizard/profileWizard.d.ts +1 -1
  986. package/dist/profiles/wizard/profileWizard.d.ts.map +1 -1
  987. package/dist/profiles/wizard/profileWizardQueryStep.d.ts +1 -1
  988. package/dist/profiles/wizard/profileWizardQueryStep.d.ts.map +1 -1
  989. package/dist/profiles/wizard/profileWizardSteps.d.ts +4 -4
  990. package/dist/profiles/wizard/profileWizardSteps.d.ts.map +1 -1
  991. package/dist/rpc/ChatLayer.d.ts +1 -1
  992. package/dist/rpc/ChatLayer.d.ts.map +1 -1
  993. package/dist/rpc/CommandForm.d.ts +1 -1
  994. package/dist/rpc/CommandForm.d.ts.map +1 -1
  995. package/dist/rpc/CommandOutput.d.ts +1 -1
  996. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  997. package/dist/rpc/EndpointList.d.ts +2 -2
  998. package/dist/rpc/EndpointList.d.ts.map +1 -1
  999. package/dist/rpc/EntityExplorerApp.d.ts +2 -2
  1000. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  1001. package/dist/rpc/ExecutionResult.d.ts +1 -1
  1002. package/dist/rpc/ExecutionResult.d.ts.map +1 -1
  1003. package/dist/rpc/FilterForm.d.ts +1 -1
  1004. package/dist/rpc/FilterForm.d.ts.map +1 -1
  1005. package/dist/rpc/FilterFormFields.d.ts +1 -1
  1006. package/dist/rpc/FilterFormFields.d.ts.map +1 -1
  1007. package/dist/rpc/InlineError.d.ts +1 -1
  1008. package/dist/rpc/InlineError.d.ts.map +1 -1
  1009. package/dist/rpc/OperationActionBar.cjs +17 -5
  1010. package/dist/rpc/OperationActionBar.cjs.map +1 -1
  1011. package/dist/rpc/OperationActionBar.d.ts +3 -6
  1012. package/dist/rpc/OperationActionBar.d.ts.map +1 -1
  1013. package/dist/rpc/OperationActionBar.js +17 -5
  1014. package/dist/rpc/OperationActionBar.js.map +1 -1
  1015. package/dist/rpc/OperationActionDialog.d.ts +1 -1
  1016. package/dist/rpc/OperationActionDialog.d.ts.map +1 -1
  1017. package/dist/rpc/OperationCatalog.cjs +65 -5
  1018. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  1019. package/dist/rpc/OperationCatalog.d.ts +4 -2
  1020. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  1021. package/dist/rpc/OperationCatalog.js +66 -6
  1022. package/dist/rpc/OperationCatalog.js.map +1 -1
  1023. package/dist/rpc/OperationCatalogActions.cjs +38 -7
  1024. package/dist/rpc/OperationCatalogActions.cjs.map +1 -1
  1025. package/dist/rpc/OperationCatalogActions.d.ts +6 -1
  1026. package/dist/rpc/OperationCatalogActions.d.ts.map +1 -1
  1027. package/dist/rpc/OperationCatalogActions.js +38 -7
  1028. package/dist/rpc/OperationCatalogActions.js.map +1 -1
  1029. package/dist/rpc/OperationCommandPage.d.ts +1 -1
  1030. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  1031. package/dist/rpc/OperationEntityContextPicker.d.ts +2 -2
  1032. package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
  1033. package/dist/rpc/OperationEntityPage.d.ts +2 -2
  1034. package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
  1035. package/dist/rpc/OperationResultView.d.ts +2 -2
  1036. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  1037. package/dist/rpc/RouterProvider.d.ts +2 -2
  1038. package/dist/rpc/RouterProvider.d.ts.map +1 -1
  1039. package/dist/rpc/SchemaActionForm.d.ts +2 -2
  1040. package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
  1041. package/dist/rpc/actionIconMap.cjs +11 -0
  1042. package/dist/rpc/actionIconMap.cjs.map +1 -0
  1043. package/dist/rpc/actionIconMap.d.ts +3 -0
  1044. package/dist/rpc/actionIconMap.d.ts.map +1 -0
  1045. package/dist/rpc/actionIconMap.js +11 -0
  1046. package/dist/rpc/actionIconMap.js.map +1 -0
  1047. package/dist/rpc/formMetadata.d.ts +1 -1
  1048. package/dist/rpc/operationErrorDiagnostics.d.ts +1 -1
  1049. package/dist/rpc/operationErrorDiagnostics.d.ts.map +1 -1
  1050. package/dist/rpc/router.d.ts +1 -1
  1051. package/dist/rpc/rpc-story.fixtures.d.ts +1 -1
  1052. package/dist/styles.css +1 -1
  1053. package/dist/utils.cjs +52 -0
  1054. package/dist/utils.cjs.map +1 -1
  1055. package/dist/utils.d.ts +5 -0
  1056. package/dist/utils.d.ts.map +1 -1
  1057. package/dist/utils.js +53 -1
  1058. package/dist/utils.js.map +1 -1
  1059. package/package.json +3 -3
  1060. package/dist/components/combobox-utils.cjs.map +0 -1
  1061. package/dist/components/combobox-utils.d.ts.map +0 -1
  1062. package/dist/components/combobox-utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-family.js","sources":["../../src/lib/runtime-family.ts"],"sourcesContent":["type RuntimeModelIdentity = {\n id: string;\n provider: string;\n runtime?: { id?: string; model?: string } | undefined;\n};\n\ntype RuntimeFamilyIdentity = {\n id: string;\n provider: string;\n catalogPrefix?: string | undefined;\n modes: Array<{ id: string; provider?: string | undefined }>;\n};\n\nexport const SPEC_RUNTIME_MODES = [\"api\", \"agent\", \"cli\", \"cmux\"] as const;\nexport type SpecRuntimeMode = (typeof SPEC_RUNTIME_MODES)[number];\nconst RUNTIME_MODES = new Set<string>(SPEC_RUNTIME_MODES);\n\nexport function isSpecRuntimeMode(\n value: string | undefined,\n): value is SpecRuntimeMode {\n return RUNTIME_MODES.has(value ?? \"\");\n}\n\nexport function runtimeModeFromModel(\n model: string | undefined,\n): SpecRuntimeMode | undefined {\n const [prefix] = (model ?? \"\").trim().toLowerCase().split(\":\");\n return isSpecRuntimeMode(prefix) ? prefix : undefined;\n}\n\nexport function familyForModel<T extends RuntimeFamilyIdentity>(\n families: T[],\n models: RuntimeModelIdentity[],\n modelId: string | undefined,\n): T | undefined {\n if (!modelId) return undefined;\n const selected = models.find(\n (model) =>\n model.id === modelId ||\n model.runtime?.model === modelId ||\n model.runtime?.id === modelId,\n );\n const compact = modelId.split(\",\")[0]?.trim() ?? \"\";\n const [prefix, inlineModel] = compact.split(\":\");\n const canonicalModel =\n RUNTIME_MODES.has(prefix?.toLowerCase() ?? \"\") && inlineModel\n ? inlineModel\n : compact;\n const slash = canonicalModel.indexOf(\"/\");\n const provider =\n selected?.provider ??\n (slash > 0 ? canonicalModel.slice(0, slash) : undefined);\n if (!provider) return undefined;\n return families.find(\n (family) =>\n family.provider === provider ||\n family.catalogPrefix === provider ||\n family.modes.some((mode) => mode.provider === provider),\n );\n}\n\nexport function modeOptionFor<T extends RuntimeFamilyIdentity>(\n families: T[],\n mode: string | undefined,\n preferredFamily?: string | undefined,\n): T[\"modes\"][number] | undefined {\n const target = (mode ?? \"\").toLowerCase();\n if (!target) return undefined;\n const ordered = preferredFamily\n ? [\n ...families.filter((family) => family.id === preferredFamily),\n ...families.filter((family) => family.id !== preferredFamily),\n ]\n : families;\n for (const family of ordered) {\n const entry = family.modes.find(\n (candidate) => candidate.id.toLowerCase() === target,\n );\n if (entry) return entry;\n }\n return undefined;\n}\n"],"names":["_a"],"mappings":"AAaO,MAAM,qBAAqB,CAAC,OAAO,SAAS,OAAO,MAAM;AAEhE,MAAM,gBAAgB,IAAI,IAAY,kBAAkB;AAEjD,SAAS,kBACd,OAC0B;AAC1B,SAAO,cAAc,IAAI,SAAS,EAAE;AACtC;AAEO,SAAS,qBACd,OAC6B;AAC7B,QAAM,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,YAAA,EAAc,MAAM,GAAG;AAC7D,SAAO,kBAAkB,MAAM,IAAI,SAAS;AAC9C;AAEO,SAAS,eACd,UACA,QACA,SACe;AArBV;AAsBL,MAAI,CAAC,QAAS,QAAO;AACrB,QAAM,WAAW,OAAO;AAAA,IACtB,CAAC,UAAA;AAxBE,UAAAA,KAAA;AAyBD,mBAAM,OAAO,aACbA,MAAA,MAAM,YAAN,gBAAAA,IAAe,WAAU,aACzB,WAAM,YAAN,mBAAe,QAAO;AAAA;AAAA,EAAA;AAE1B,QAAM,YAAU,aAAQ,MAAM,GAAG,EAAE,CAAC,MAApB,mBAAuB,WAAU;AACjD,QAAM,CAAC,QAAQ,WAAW,IAAI,QAAQ,MAAM,GAAG;AAC/C,QAAM,iBACJ,cAAc,KAAI,iCAAQ,kBAAiB,EAAE,KAAK,cAC9C,cACA;AACN,QAAM,QAAQ,eAAe,QAAQ,GAAG;AACxC,QAAM,YACJ,qCAAU,cACT,QAAQ,IAAI,eAAe,MAAM,GAAG,KAAK,IAAI;AAChD,MAAI,CAAC,SAAU,QAAO;AACtB,SAAO,SAAS;AAAA,IACd,CAAC,WACC,OAAO,aAAa,YACpB,OAAO,kBAAkB,YACzB,OAAO,MAAM,KAAK,CAAC,SAAS,KAAK,aAAa,QAAQ;AAAA,EAAA;AAE5D;AAEO,SAAS,cACd,UACA,MACA,iBACgC;AAChC,QAAM,UAAU,QAAQ,IAAI,YAAA;AAC5B,MAAI,CAAC,OAAQ,QAAO;AACpB,QAAM,UAAU,kBACZ;AAAA,IACE,GAAG,SAAS,OAAO,CAAC,WAAW,OAAO,OAAO,eAAe;AAAA,IAC5D,GAAG,SAAS,OAAO,CAAC,WAAW,OAAO,OAAO,eAAe;AAAA,EAAA,IAE9D;AACJ,aAAW,UAAU,SAAS;AAC5B,UAAM,QAAQ,OAAO,MAAM;AAAA,MACzB,CAAC,cAAc,UAAU,GAAG,kBAAkB;AAAA,IAAA;AAEhD,QAAI,MAAO,QAAO;AAAA,EACpB;AACA,SAAO;AACT;"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const collections = require("./collections.cjs");
4
+ const runtimeFamily = require("./runtime-family.cjs");
5
+ function reorderProfilePresets(profile, from, to) {
6
+ if (!profile.presets[from] || !profile.presets[to]) {
7
+ throw new Error(`cannot reorder preset from ${from} to ${to}`);
8
+ }
9
+ return { ...profile, presets: collections.moveItem(profile.presets, from, to) };
10
+ }
11
+ function presetForRef(ref, presets) {
12
+ const name = ref.trim().toLowerCase();
13
+ return presets.find((preset) => preset.id === ref) ?? presets.find((preset) => preset.name.trim().toLowerCase() === name);
14
+ }
15
+ function presetsOf(profile, presets) {
16
+ const found = [];
17
+ const missing = [];
18
+ for (const ref of profile.presets) {
19
+ const preset = presetForRef(ref, presets);
20
+ if (preset) found.push(preset);
21
+ else missing.push(ref);
22
+ }
23
+ return { found, missing };
24
+ }
25
+ function authoredRuntimeSpec(profile, presets) {
26
+ var _a, _b, _c, _d;
27
+ if (!profile) return {};
28
+ const runtime = {};
29
+ for (const preset of presetsOf(profile, presets).found) {
30
+ if ((_a = preset.spec.model) == null ? void 0 : _a.trim()) runtime.model = preset.spec.model;
31
+ if ((_b = preset.spec.mode) == null ? void 0 : _b.trim()) runtime.mode = preset.spec.mode;
32
+ }
33
+ if ((_c = profile.spec.model) == null ? void 0 : _c.trim()) runtime.model = profile.spec.model;
34
+ if ((_d = profile.spec.mode) == null ? void 0 : _d.trim()) runtime.mode = profile.spec.mode;
35
+ return runtime;
36
+ }
37
+ function referencedBy(preset, profiles) {
38
+ const name = preset.name.trim().toLowerCase();
39
+ return profiles.filter(
40
+ (profile) => profile.presets.some(
41
+ (ref) => ref === preset.id || ref.trim().toLowerCase() === name
42
+ )
43
+ ).map((profile) => profile.name);
44
+ }
45
+ function duplicateName(name, existing) {
46
+ return nextNewName(`${name.trim()} copy`, existing);
47
+ }
48
+ function nextNewName(base, existing) {
49
+ const occupied = new Set(existing.map((item) => item.trim().toLowerCase()));
50
+ if (!occupied.has(base.toLowerCase())) return base;
51
+ let index = 2;
52
+ while (occupied.has(`${base} ${index}`.toLowerCase())) index += 1;
53
+ return `${base} ${index}`;
54
+ }
55
+ function uniqueName(name, id, records) {
56
+ const normalized = name.trim().toLowerCase();
57
+ if (!normalized) return false;
58
+ return !records.some(
59
+ (record) => record.id !== id && record.name.trim().toLowerCase() === normalized
60
+ );
61
+ }
62
+ function permissionTarget(spec, families) {
63
+ var _a;
64
+ const model = spec == null ? void 0 : spec.model;
65
+ const mode = runtimeFamily.runtimeModeFromModel(model) || ((_a = spec == null ? void 0 : spec.mode) == null ? void 0 : _a.trim());
66
+ const family = runtimeFamily.familyForModel(families, [], model);
67
+ if (!family || !mode || !runtimeFamily.modeOptionFor(families, mode, family.id)) {
68
+ return void 0;
69
+ }
70
+ return { provider: family.provider, mode };
71
+ }
72
+ function newProfileRecord(profiles, id) {
73
+ const name = nextNewName(
74
+ "New profile",
75
+ profiles.map((item) => item.name)
76
+ );
77
+ return { id, name, spec: {}, presets: [] };
78
+ }
79
+ function newPresetRecord(presets, id) {
80
+ const name = nextNewName(
81
+ "New preset",
82
+ presets.map((item) => item.name)
83
+ );
84
+ return { id, name, scope: "surface", spec: {} };
85
+ }
86
+ function duplicateRecord(records, sourceId, id) {
87
+ const source = records.find((record) => record.id === sourceId);
88
+ if (!source) throw new Error(`cannot duplicate missing record "${sourceId}"`);
89
+ return {
90
+ ...structuredClone(source),
91
+ id,
92
+ name: duplicateName(
93
+ source.name,
94
+ records.map((record) => record.name)
95
+ )
96
+ };
97
+ }
98
+ function selectionAfterDelete(records, deletedId, selectedId) {
99
+ var _a;
100
+ if (selectedId !== deletedId) return selectedId;
101
+ return (_a = records.find((record) => record.id !== deletedId)) == null ? void 0 : _a.id;
102
+ }
103
+ function mergeRuntimeSpec(base, overlay) {
104
+ return mergeRecords(base, overlay);
105
+ }
106
+ function mergeRecords(base, overlay) {
107
+ const merged = structuredClone(base);
108
+ for (const [key, value] of Object.entries(overlay)) {
109
+ if (value === void 0) continue;
110
+ const current = merged[key];
111
+ merged[key] = collections.isPlainObject(current) && collections.isPlainObject(value) ? mergeRecords(current, value) : structuredClone(value);
112
+ }
113
+ return merged;
114
+ }
115
+ exports.authoredRuntimeSpec = authoredRuntimeSpec;
116
+ exports.duplicateName = duplicateName;
117
+ exports.duplicateRecord = duplicateRecord;
118
+ exports.mergeRuntimeSpec = mergeRuntimeSpec;
119
+ exports.newPresetRecord = newPresetRecord;
120
+ exports.newProfileRecord = newProfileRecord;
121
+ exports.nextNewName = nextNewName;
122
+ exports.permissionTarget = permissionTarget;
123
+ exports.presetForRef = presetForRef;
124
+ exports.presetsOf = presetsOf;
125
+ exports.referencedBy = referencedBy;
126
+ exports.reorderProfilePresets = reorderProfilePresets;
127
+ exports.selectionAfterDelete = selectionAfterDelete;
128
+ exports.uniqueName = uniqueName;
129
+ //# sourceMappingURL=runtime-profile-model.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-profile-model.cjs","sources":["../../src/lib/runtime-profile-model.ts"],"sourcesContent":["import { isPlainObject, moveItem } from \"./collections\";\nimport {\n type SpecRuntimeFamily,\n} from \"../data/runtime/runtime-mode\";\nimport {\n familyForModel,\n modeOptionFor,\n runtimeModeFromModel,\n} from \"./runtime-family\";\nimport type { RuntimePreset, RuntimeProfile } from \"../data/ai/runtime-profile\";\nimport type { AISpecRuntimeSpec } from \"../data/ai/SpecRuntimeEditor.model\";\nimport type { RuntimePermissionTarget } from \"../data/ai/runtime-profiles/types\";\n\nexport function reorderProfilePresets(\n profile: RuntimeProfile,\n from: number,\n to: number,\n): RuntimeProfile {\n if (!profile.presets[from] || !profile.presets[to]) {\n throw new Error(`cannot reorder preset from ${from} to ${to}`);\n }\n return { ...profile, presets: moveItem(profile.presets, from, to) };\n}\n\nexport function presetForRef(\n ref: string,\n presets: RuntimePreset[],\n): RuntimePreset | undefined {\n const name = ref.trim().toLowerCase();\n return (\n presets.find((preset) => preset.id === ref) ??\n presets.find((preset) => preset.name.trim().toLowerCase() === name)\n );\n}\n\nexport function presetsOf(\n profile: Pick<RuntimeProfile, \"presets\">,\n presets: RuntimePreset[],\n): { found: RuntimePreset[]; missing: string[] } {\n const found: RuntimePreset[] = [];\n const missing: string[] = [];\n for (const ref of profile.presets) {\n const preset = presetForRef(ref, presets);\n if (preset) found.push(preset);\n else missing.push(ref);\n }\n return { found, missing };\n}\n\nexport function authoredRuntimeSpec(\n profile: RuntimeProfile | undefined,\n presets: RuntimePreset[],\n): Pick<AISpecRuntimeSpec, \"model\" | \"mode\"> {\n if (!profile) return {};\n const runtime: Pick<AISpecRuntimeSpec, \"model\" | \"mode\"> = {};\n for (const preset of presetsOf(profile, presets).found) {\n if (preset.spec.model?.trim()) runtime.model = preset.spec.model;\n if (preset.spec.mode?.trim()) runtime.mode = preset.spec.mode;\n }\n if (profile.spec.model?.trim()) runtime.model = profile.spec.model;\n if (profile.spec.mode?.trim()) runtime.mode = profile.spec.mode;\n return runtime;\n}\n\nexport function referencedBy(\n preset: Pick<RuntimePreset, \"id\" | \"name\">,\n profiles: RuntimeProfile[],\n): string[] {\n const name = preset.name.trim().toLowerCase();\n return profiles\n .filter((profile) =>\n profile.presets.some(\n (ref) => ref === preset.id || ref.trim().toLowerCase() === name,\n ),\n )\n .map((profile) => profile.name);\n}\n\nexport function duplicateName(name: string, existing: string[]): string {\n return nextNewName(`${name.trim()} copy`, existing);\n}\n\nexport function nextNewName(base: string, existing: string[]): string {\n const occupied = new Set(existing.map((item) => item.trim().toLowerCase()));\n if (!occupied.has(base.toLowerCase())) return base;\n let index = 2;\n while (occupied.has(`${base} ${index}`.toLowerCase())) index += 1;\n return `${base} ${index}`;\n}\n\nexport function uniqueName(\n name: string,\n id: string,\n records: Array<{ id: string; name: string }>,\n) {\n const normalized = name.trim().toLowerCase();\n if (!normalized) return false;\n return !records.some(\n (record) =>\n record.id !== id && record.name.trim().toLowerCase() === normalized,\n );\n}\n\nexport function permissionTarget(\n spec: AISpecRuntimeSpec | undefined,\n families: SpecRuntimeFamily[],\n): RuntimePermissionTarget | undefined {\n const model = spec?.model;\n const mode = runtimeModeFromModel(model) || spec?.mode?.trim();\n const family = familyForModel(families, [], model);\n if (!family || !mode || !modeOptionFor(families, mode, family.id)) {\n return undefined;\n }\n return { provider: family.provider, mode };\n}\n\nexport function newProfileRecord(\n profiles: RuntimeProfile[],\n id: string,\n): RuntimeProfile {\n const name = nextNewName(\n \"New profile\",\n profiles.map((item) => item.name),\n );\n return { id, name, spec: {}, presets: [] };\n}\n\nexport function newPresetRecord(\n presets: RuntimePreset[],\n id: string,\n): RuntimePreset {\n const name = nextNewName(\n \"New preset\",\n presets.map((item) => item.name),\n );\n return { id, name, scope: \"surface\", spec: {} };\n}\n\nexport function duplicateRecord<T extends { id: string; name: string }>(\n records: T[],\n sourceId: string,\n id: string,\n): T {\n const source = records.find((record) => record.id === sourceId);\n if (!source) throw new Error(`cannot duplicate missing record \"${sourceId}\"`);\n return {\n ...structuredClone(source),\n id,\n name: duplicateName(\n source.name,\n records.map((record) => record.name),\n ),\n };\n}\n\nexport function selectionAfterDelete(\n records: Array<{ id: string }>,\n deletedId: string,\n selectedId: string | undefined,\n): string | undefined {\n if (selectedId !== deletedId) return selectedId;\n return records.find((record) => record.id !== deletedId)?.id;\n}\n\nexport function mergeRuntimeSpec<T extends AISpecRuntimeSpec>(\n base: AISpecRuntimeSpec,\n overlay: T,\n): T {\n return mergeRecords(base, overlay) as T;\n}\n\nfunction mergeRecords(\n base: Record<string, unknown>,\n overlay: Record<string, unknown>,\n): Record<string, unknown> {\n const merged: Record<string, unknown> = structuredClone(base);\n for (const [key, value] of Object.entries(overlay)) {\n if (value === undefined) continue;\n const current = merged[key];\n merged[key] =\n isPlainObject(current) && isPlainObject(value)\n ? mergeRecords(current, value)\n : structuredClone(value);\n }\n return merged;\n}\n"],"names":["moveItem","runtimeModeFromModel","familyForModel","modeOptionFor","isPlainObject"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { SpecRuntimeFamily } from '../data/runtime/runtime-mode';
2
+ import { RuntimePreset, RuntimeProfile } from '../data/ai/runtime-profile';
3
+ import { AISpecRuntimeSpec } from '../data/ai/SpecRuntimeEditor.model';
4
+ import { RuntimePermissionTarget } from '../data/ai/runtime-profiles/types';
5
+ export declare function reorderProfilePresets(profile: RuntimeProfile, from: number, to: number): RuntimeProfile;
6
+ export declare function presetForRef(ref: string, presets: RuntimePreset[]): RuntimePreset | undefined;
7
+ export declare function presetsOf(profile: Pick<RuntimeProfile, "presets">, presets: RuntimePreset[]): {
8
+ found: RuntimePreset[];
9
+ missing: string[];
10
+ };
11
+ export declare function authoredRuntimeSpec(profile: RuntimeProfile | undefined, presets: RuntimePreset[]): Pick<AISpecRuntimeSpec, "model" | "mode">;
12
+ export declare function referencedBy(preset: Pick<RuntimePreset, "id" | "name">, profiles: RuntimeProfile[]): string[];
13
+ export declare function duplicateName(name: string, existing: string[]): string;
14
+ export declare function nextNewName(base: string, existing: string[]): string;
15
+ export declare function uniqueName(name: string, id: string, records: Array<{
16
+ id: string;
17
+ name: string;
18
+ }>): boolean;
19
+ export declare function permissionTarget(spec: AISpecRuntimeSpec | undefined, families: SpecRuntimeFamily[]): RuntimePermissionTarget | undefined;
20
+ export declare function newProfileRecord(profiles: RuntimeProfile[], id: string): RuntimeProfile;
21
+ export declare function newPresetRecord(presets: RuntimePreset[], id: string): RuntimePreset;
22
+ export declare function duplicateRecord<T extends {
23
+ id: string;
24
+ name: string;
25
+ }>(records: T[], sourceId: string, id: string): T;
26
+ export declare function selectionAfterDelete(records: Array<{
27
+ id: string;
28
+ }>, deletedId: string, selectedId: string | undefined): string | undefined;
29
+ export declare function mergeRuntimeSpec<T extends AISpecRuntimeSpec>(base: AISpecRuntimeSpec, overlay: T): T;
30
+ //# sourceMappingURL=runtime-profile-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-profile-model.d.ts","sourceRoot":"","sources":["../../src/lib/runtime-profile-model.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EACvB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAEjF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,cAAc,CAKhB;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,aAAa,EAAE,GACvB,aAAa,GAAG,SAAS,CAM3B;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,EACxC,OAAO,EAAE,aAAa,EAAE,GACvB;IAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAS/C;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,OAAO,EAAE,aAAa,EAAE,GACvB,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,MAAM,CAAC,CAU3C;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC,EAC1C,QAAQ,EAAE,cAAc,EAAE,GACzB,MAAM,EAAE,CASV;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEtE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAMpE;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,WAQ7C;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,iBAAiB,GAAG,SAAS,EACnC,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,uBAAuB,GAAG,SAAS,CAQrC;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,cAAc,EAAE,EAC1B,EAAE,EAAE,MAAM,GACT,cAAc,CAMhB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,EAAE,EACxB,EAAE,EAAE,MAAM,GACT,aAAa,CAMf;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACpE,OAAO,EAAE,CAAC,EAAE,EACZ,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,CAAC,CAWH;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,iBAAiB,EAC1D,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,CAAC,GACT,CAAC,CAEH"}
@@ -0,0 +1,129 @@
1
+ import { moveItem, isPlainObject } from "./collections.js";
2
+ import { runtimeModeFromModel, familyForModel, modeOptionFor } from "./runtime-family.js";
3
+ function reorderProfilePresets(profile, from, to) {
4
+ if (!profile.presets[from] || !profile.presets[to]) {
5
+ throw new Error(`cannot reorder preset from ${from} to ${to}`);
6
+ }
7
+ return { ...profile, presets: moveItem(profile.presets, from, to) };
8
+ }
9
+ function presetForRef(ref, presets) {
10
+ const name = ref.trim().toLowerCase();
11
+ return presets.find((preset) => preset.id === ref) ?? presets.find((preset) => preset.name.trim().toLowerCase() === name);
12
+ }
13
+ function presetsOf(profile, presets) {
14
+ const found = [];
15
+ const missing = [];
16
+ for (const ref of profile.presets) {
17
+ const preset = presetForRef(ref, presets);
18
+ if (preset) found.push(preset);
19
+ else missing.push(ref);
20
+ }
21
+ return { found, missing };
22
+ }
23
+ function authoredRuntimeSpec(profile, presets) {
24
+ var _a, _b, _c, _d;
25
+ if (!profile) return {};
26
+ const runtime = {};
27
+ for (const preset of presetsOf(profile, presets).found) {
28
+ if ((_a = preset.spec.model) == null ? void 0 : _a.trim()) runtime.model = preset.spec.model;
29
+ if ((_b = preset.spec.mode) == null ? void 0 : _b.trim()) runtime.mode = preset.spec.mode;
30
+ }
31
+ if ((_c = profile.spec.model) == null ? void 0 : _c.trim()) runtime.model = profile.spec.model;
32
+ if ((_d = profile.spec.mode) == null ? void 0 : _d.trim()) runtime.mode = profile.spec.mode;
33
+ return runtime;
34
+ }
35
+ function referencedBy(preset, profiles) {
36
+ const name = preset.name.trim().toLowerCase();
37
+ return profiles.filter(
38
+ (profile) => profile.presets.some(
39
+ (ref) => ref === preset.id || ref.trim().toLowerCase() === name
40
+ )
41
+ ).map((profile) => profile.name);
42
+ }
43
+ function duplicateName(name, existing) {
44
+ return nextNewName(`${name.trim()} copy`, existing);
45
+ }
46
+ function nextNewName(base, existing) {
47
+ const occupied = new Set(existing.map((item) => item.trim().toLowerCase()));
48
+ if (!occupied.has(base.toLowerCase())) return base;
49
+ let index = 2;
50
+ while (occupied.has(`${base} ${index}`.toLowerCase())) index += 1;
51
+ return `${base} ${index}`;
52
+ }
53
+ function uniqueName(name, id, records) {
54
+ const normalized = name.trim().toLowerCase();
55
+ if (!normalized) return false;
56
+ return !records.some(
57
+ (record) => record.id !== id && record.name.trim().toLowerCase() === normalized
58
+ );
59
+ }
60
+ function permissionTarget(spec, families) {
61
+ var _a;
62
+ const model = spec == null ? void 0 : spec.model;
63
+ const mode = runtimeModeFromModel(model) || ((_a = spec == null ? void 0 : spec.mode) == null ? void 0 : _a.trim());
64
+ const family = familyForModel(families, [], model);
65
+ if (!family || !mode || !modeOptionFor(families, mode, family.id)) {
66
+ return void 0;
67
+ }
68
+ return { provider: family.provider, mode };
69
+ }
70
+ function newProfileRecord(profiles, id) {
71
+ const name = nextNewName(
72
+ "New profile",
73
+ profiles.map((item) => item.name)
74
+ );
75
+ return { id, name, spec: {}, presets: [] };
76
+ }
77
+ function newPresetRecord(presets, id) {
78
+ const name = nextNewName(
79
+ "New preset",
80
+ presets.map((item) => item.name)
81
+ );
82
+ return { id, name, scope: "surface", spec: {} };
83
+ }
84
+ function duplicateRecord(records, sourceId, id) {
85
+ const source = records.find((record) => record.id === sourceId);
86
+ if (!source) throw new Error(`cannot duplicate missing record "${sourceId}"`);
87
+ return {
88
+ ...structuredClone(source),
89
+ id,
90
+ name: duplicateName(
91
+ source.name,
92
+ records.map((record) => record.name)
93
+ )
94
+ };
95
+ }
96
+ function selectionAfterDelete(records, deletedId, selectedId) {
97
+ var _a;
98
+ if (selectedId !== deletedId) return selectedId;
99
+ return (_a = records.find((record) => record.id !== deletedId)) == null ? void 0 : _a.id;
100
+ }
101
+ function mergeRuntimeSpec(base, overlay) {
102
+ return mergeRecords(base, overlay);
103
+ }
104
+ function mergeRecords(base, overlay) {
105
+ const merged = structuredClone(base);
106
+ for (const [key, value] of Object.entries(overlay)) {
107
+ if (value === void 0) continue;
108
+ const current = merged[key];
109
+ merged[key] = isPlainObject(current) && isPlainObject(value) ? mergeRecords(current, value) : structuredClone(value);
110
+ }
111
+ return merged;
112
+ }
113
+ export {
114
+ authoredRuntimeSpec,
115
+ duplicateName,
116
+ duplicateRecord,
117
+ mergeRuntimeSpec,
118
+ newPresetRecord,
119
+ newProfileRecord,
120
+ nextNewName,
121
+ permissionTarget,
122
+ presetForRef,
123
+ presetsOf,
124
+ referencedBy,
125
+ reorderProfilePresets,
126
+ selectionAfterDelete,
127
+ uniqueName
128
+ };
129
+ //# sourceMappingURL=runtime-profile-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-profile-model.js","sources":["../../src/lib/runtime-profile-model.ts"],"sourcesContent":["import { isPlainObject, moveItem } from \"./collections\";\nimport {\n type SpecRuntimeFamily,\n} from \"../data/runtime/runtime-mode\";\nimport {\n familyForModel,\n modeOptionFor,\n runtimeModeFromModel,\n} from \"./runtime-family\";\nimport type { RuntimePreset, RuntimeProfile } from \"../data/ai/runtime-profile\";\nimport type { AISpecRuntimeSpec } from \"../data/ai/SpecRuntimeEditor.model\";\nimport type { RuntimePermissionTarget } from \"../data/ai/runtime-profiles/types\";\n\nexport function reorderProfilePresets(\n profile: RuntimeProfile,\n from: number,\n to: number,\n): RuntimeProfile {\n if (!profile.presets[from] || !profile.presets[to]) {\n throw new Error(`cannot reorder preset from ${from} to ${to}`);\n }\n return { ...profile, presets: moveItem(profile.presets, from, to) };\n}\n\nexport function presetForRef(\n ref: string,\n presets: RuntimePreset[],\n): RuntimePreset | undefined {\n const name = ref.trim().toLowerCase();\n return (\n presets.find((preset) => preset.id === ref) ??\n presets.find((preset) => preset.name.trim().toLowerCase() === name)\n );\n}\n\nexport function presetsOf(\n profile: Pick<RuntimeProfile, \"presets\">,\n presets: RuntimePreset[],\n): { found: RuntimePreset[]; missing: string[] } {\n const found: RuntimePreset[] = [];\n const missing: string[] = [];\n for (const ref of profile.presets) {\n const preset = presetForRef(ref, presets);\n if (preset) found.push(preset);\n else missing.push(ref);\n }\n return { found, missing };\n}\n\nexport function authoredRuntimeSpec(\n profile: RuntimeProfile | undefined,\n presets: RuntimePreset[],\n): Pick<AISpecRuntimeSpec, \"model\" | \"mode\"> {\n if (!profile) return {};\n const runtime: Pick<AISpecRuntimeSpec, \"model\" | \"mode\"> = {};\n for (const preset of presetsOf(profile, presets).found) {\n if (preset.spec.model?.trim()) runtime.model = preset.spec.model;\n if (preset.spec.mode?.trim()) runtime.mode = preset.spec.mode;\n }\n if (profile.spec.model?.trim()) runtime.model = profile.spec.model;\n if (profile.spec.mode?.trim()) runtime.mode = profile.spec.mode;\n return runtime;\n}\n\nexport function referencedBy(\n preset: Pick<RuntimePreset, \"id\" | \"name\">,\n profiles: RuntimeProfile[],\n): string[] {\n const name = preset.name.trim().toLowerCase();\n return profiles\n .filter((profile) =>\n profile.presets.some(\n (ref) => ref === preset.id || ref.trim().toLowerCase() === name,\n ),\n )\n .map((profile) => profile.name);\n}\n\nexport function duplicateName(name: string, existing: string[]): string {\n return nextNewName(`${name.trim()} copy`, existing);\n}\n\nexport function nextNewName(base: string, existing: string[]): string {\n const occupied = new Set(existing.map((item) => item.trim().toLowerCase()));\n if (!occupied.has(base.toLowerCase())) return base;\n let index = 2;\n while (occupied.has(`${base} ${index}`.toLowerCase())) index += 1;\n return `${base} ${index}`;\n}\n\nexport function uniqueName(\n name: string,\n id: string,\n records: Array<{ id: string; name: string }>,\n) {\n const normalized = name.trim().toLowerCase();\n if (!normalized) return false;\n return !records.some(\n (record) =>\n record.id !== id && record.name.trim().toLowerCase() === normalized,\n );\n}\n\nexport function permissionTarget(\n spec: AISpecRuntimeSpec | undefined,\n families: SpecRuntimeFamily[],\n): RuntimePermissionTarget | undefined {\n const model = spec?.model;\n const mode = runtimeModeFromModel(model) || spec?.mode?.trim();\n const family = familyForModel(families, [], model);\n if (!family || !mode || !modeOptionFor(families, mode, family.id)) {\n return undefined;\n }\n return { provider: family.provider, mode };\n}\n\nexport function newProfileRecord(\n profiles: RuntimeProfile[],\n id: string,\n): RuntimeProfile {\n const name = nextNewName(\n \"New profile\",\n profiles.map((item) => item.name),\n );\n return { id, name, spec: {}, presets: [] };\n}\n\nexport function newPresetRecord(\n presets: RuntimePreset[],\n id: string,\n): RuntimePreset {\n const name = nextNewName(\n \"New preset\",\n presets.map((item) => item.name),\n );\n return { id, name, scope: \"surface\", spec: {} };\n}\n\nexport function duplicateRecord<T extends { id: string; name: string }>(\n records: T[],\n sourceId: string,\n id: string,\n): T {\n const source = records.find((record) => record.id === sourceId);\n if (!source) throw new Error(`cannot duplicate missing record \"${sourceId}\"`);\n return {\n ...structuredClone(source),\n id,\n name: duplicateName(\n source.name,\n records.map((record) => record.name),\n ),\n };\n}\n\nexport function selectionAfterDelete(\n records: Array<{ id: string }>,\n deletedId: string,\n selectedId: string | undefined,\n): string | undefined {\n if (selectedId !== deletedId) return selectedId;\n return records.find((record) => record.id !== deletedId)?.id;\n}\n\nexport function mergeRuntimeSpec<T extends AISpecRuntimeSpec>(\n base: AISpecRuntimeSpec,\n overlay: T,\n): T {\n return mergeRecords(base, overlay) as T;\n}\n\nfunction mergeRecords(\n base: Record<string, unknown>,\n overlay: Record<string, unknown>,\n): Record<string, unknown> {\n const merged: Record<string, unknown> = structuredClone(base);\n for (const [key, value] of Object.entries(overlay)) {\n if (value === undefined) continue;\n const current = merged[key];\n merged[key] =\n isPlainObject(current) && isPlainObject(value)\n ? mergeRecords(current, value)\n : structuredClone(value);\n }\n return merged;\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Monaco } from '@monaco-editor/react';
2
2
  import { MonacoEditorProps } from './types';
3
- export declare function MonacoEditor({ value, onChange, language, path, height, beforeMount, onMount, onValidate, }: MonacoEditorProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare function MonacoEditor({ value, onChange, language, path, height, beforeMount, onMount, onValidate, }: MonacoEditorProps): import("react").JSX.Element;
4
4
  export type { Monaco };
5
5
  //# sourceMappingURL=MonacoEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoEditor.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoEditor.tsx"],"names":[],"mappings":"AAAA,OAAe,EAAU,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAIjD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAgB,EAChB,WAAW,EACX,OAAO,EACP,UAAU,GACX,EAAE,iBAAiB,2CAqCnB;AAED,YAAY,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"MonacoEditor.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoEditor.tsx"],"names":[],"mappings":"AAAA,OAAe,EAAU,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAIjD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAgB,EAChB,WAAW,EACX,OAAO,EACP,UAAU,GACX,EAAE,iBAAiB,+BAqCnB;AAED,YAAY,EAAE,MAAM,EAAE,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { MonacoProviderProps } from './types';
2
- export declare function MonacoProvider({ getWorker, children }: MonacoProviderProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function MonacoProvider({ getWorker, children }: MonacoProviderProps): import("react").JSX.Element;
3
3
  //# sourceMappingURL=MonacoProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoProvider.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnD,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CAiB1E"}
1
+ {"version":3,"file":"MonacoProvider.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnD,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,mBAAmB,+BAiB1E"}
@@ -11,10 +11,10 @@ function MonacoSchemaEditor(props) {
11
11
  const { value, language, path, schema, schemaUri, onValidationChange } = props;
12
12
  const [retry, setRetry] = react.useState(0);
13
13
  const workers = useMonacoWorker.useMonacoWorkerFactory();
14
- const cleanup = react.useRef();
15
- const markerCleanup = react.useRef();
16
- const disposeTimer = react.useRef();
17
- const initialValidationTimer = react.useRef();
14
+ const cleanup = react.useRef(void 0);
15
+ const markerCleanup = react.useRef(void 0);
16
+ const disposeTimer = react.useRef(void 0);
17
+ const initialValidationTimer = react.useRef(void 0);
18
18
  const model = react.useRef(null);
19
19
  const normalized = react.useMemo(() => schemaNormalizer.normalizeSchemaForMonaco(schema), [schema]);
20
20
  react.useEffect(
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoSchemaEditor.cjs","sources":["../../src/monaco/MonacoSchemaEditor.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport type { editor, Uri } from \"monaco-editor\";\nimport { Button } from \"../components/button\";\nimport { MonacoEditor, type Monaco } from \"./MonacoEditor\";\nimport { useMonacoWorkerFactory } from \"./use-monaco-worker\";\nimport { normalizeSchemaForMonaco } from \"./schema-normalizer\";\nimport { registerMonacoSchema } from \"./schema-registry\";\nimport type { MonacoSchemaEditorProps, MonacoValidationState } from \"./types\";\n\nexport function MonacoSchemaEditor(props: MonacoSchemaEditorProps) {\n const { value, language, path, schema, schemaUri, onValidationChange } = props;\n const [retry, setRetry] = useState(0);\n const workers = useMonacoWorkerFactory();\n const cleanup = useRef<(() => void) | undefined>();\n const markerCleanup = useRef<(() => void) | undefined>();\n const disposeTimer = useRef<ReturnType<typeof setTimeout> | undefined>();\n const initialValidationTimer = useRef<ReturnType<typeof setTimeout> | undefined>();\n const model = useRef<editor.ITextModel | null>(null);\n const normalized = useMemo(() => normalizeSchemaForMonaco(schema), [schema]);\n\n useEffect(\n () => {\n if (disposeTimer.current) clearTimeout(disposeTimer.current);\n return () => {\n markerCleanup.current?.();\n cleanup.current?.();\n if (initialValidationTimer.current) clearTimeout(initialValidationTimer.current);\n const current = model.current;\n disposeTimer.current = setTimeout(() => current?.dispose(), 0);\n };\n },\n [],\n );\n useEffect(() => {\n onValidationChange(\n !normalized.schema\n ? {\n status: \"unavailable\",\n errors: [`Unsupported schema keywords: ${normalized.unsupportedKeywords.join(\", \")}`],\n }\n : workers\n ? { status: \"loading\", errors: [] }\n : { status: \"unavailable\", errors: [\"Monaco workers are not configured.\"] },\n );\n }, [value, retry, workers, onValidationChange, normalized.schema]);\n\n if (!workers) {\n return <Unavailable errors={[\"Monaco workers are not configured.\"]} onRetry={() => setRetry((n) => n + 1)} />;\n }\n\n if (!normalized.schema) {\n const errors = [`Unsupported schema keywords: ${normalized.unsupportedKeywords.join(\", \")}`];\n return <Unavailable errors={errors} onRetry={() => setRetry((n) => n + 1)} />;\n }\n\n const setValidation = (markers: editor.IMarker[]) => {\n const current = model.current;\n if (!current) return;\n const version = current.getVersionId();\n queueMicrotask(() => {\n if (model.current?.getVersionId() !== version) return;\n // Monaco YAML reports JSON Schema violations (for example enum mismatches)\n // as warnings, while malformed YAML is reported as an error. Both mean the\n // document is not valid for submission; hints and informational markers do not.\n const errors = markers.filter((marker) => marker.severity >= 4).map((marker) => marker.message);\n onValidationChange({ status: errors.length > 0 ? \"invalid\" : \"valid\", errors });\n });\n };\n\n const prepare = (monaco: Monaco) => {\n cleanup.current?.();\n cleanup.current = registerMonacoSchema(monaco, language, path, schemaUri, normalized.schema!);\n };\n\n const mount = (instance: editor.IStandaloneCodeEditor, monaco: Monaco) => {\n if (disposeTimer.current) clearTimeout(disposeTimer.current);\n model.current = instance.getModel();\n markerCleanup.current?.();\n const disposable = monaco.editor.onDidChangeMarkers((uris: readonly Uri[]) => {\n const current = model.current;\n if (!current || !uris.some((uri) => uri.toString() === current.uri.toString())) return;\n setValidation(monaco.editor.getModelMarkers({ resource: current.uri }));\n });\n markerCleanup.current = () => disposable.dispose();\n // The language service doesn't emit a marker-change event when an initial\n // document is valid (the marker set starts and remains empty). Give the\n // worker its normal validation window, then explicitly complete that empty\n // result so forms cannot remain stuck in the loading state.\n initialValidationTimer.current = setTimeout(() => {\n const current = model.current;\n if (current) setValidation(monaco.editor.getModelMarkers({ resource: current.uri }));\n }, 1_500);\n };\n\n return (\n <MonacoEditor\n key={retry}\n {...props}\n beforeMount={(monaco) => {\n try {\n prepare(monaco);\n } catch (error) {\n onValidationChange({\n status: \"unavailable\",\n errors: [error instanceof Error ? error.message : String(error)],\n });\n }\n }}\n onMount={mount}\n onValidate={setValidation}\n />\n );\n}\n\nfunction Unavailable({ errors, onRetry }: { errors: string[]; onRetry: () => void }) {\n return (\n <div role=\"alert\" className=\"space-y-2 rounded-md border border-destructive/40 p-3 text-sm text-destructive\">\n <div>{errors.join(\"; \")}</div>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onRetry}>Retry editor</Button>\n </div>\n );\n}\n\nexport type { MonacoValidationState };\n"],"names":["useState","useMonacoWorkerFactory","useRef","useMemo","normalizeSchemaForMonaco","useEffect","jsx","registerMonacoSchema","MonacoEditor","jsxs","Button"],"mappings":"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"}
1
+ {"version":3,"file":"MonacoSchemaEditor.cjs","sources":["../../src/monaco/MonacoSchemaEditor.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport type { editor, Uri } from \"monaco-editor\";\nimport { Button } from \"../components/button\";\nimport { MonacoEditor, type Monaco } from \"./MonacoEditor\";\nimport { useMonacoWorkerFactory } from \"./use-monaco-worker\";\nimport { normalizeSchemaForMonaco } from \"./schema-normalizer\";\nimport { registerMonacoSchema } from \"./schema-registry\";\nimport type { MonacoSchemaEditorProps, MonacoValidationState } from \"./types\";\n\nexport function MonacoSchemaEditor(props: MonacoSchemaEditorProps) {\n const { value, language, path, schema, schemaUri, onValidationChange } = props;\n const [retry, setRetry] = useState(0);\n const workers = useMonacoWorkerFactory();\n const cleanup = useRef<(() => void) | undefined>(undefined);\n const markerCleanup = useRef<(() => void) | undefined>(undefined);\n const disposeTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const initialValidationTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const model = useRef<editor.ITextModel | null>(null);\n const normalized = useMemo(() => normalizeSchemaForMonaco(schema), [schema]);\n\n useEffect(\n () => {\n if (disposeTimer.current) clearTimeout(disposeTimer.current);\n return () => {\n markerCleanup.current?.();\n cleanup.current?.();\n if (initialValidationTimer.current) clearTimeout(initialValidationTimer.current);\n const current = model.current;\n disposeTimer.current = setTimeout(() => current?.dispose(), 0);\n };\n },\n [],\n );\n useEffect(() => {\n onValidationChange(\n !normalized.schema\n ? {\n status: \"unavailable\",\n errors: [`Unsupported schema keywords: ${normalized.unsupportedKeywords.join(\", \")}`],\n }\n : workers\n ? { status: \"loading\", errors: [] }\n : { status: \"unavailable\", errors: [\"Monaco workers are not configured.\"] },\n );\n }, [value, retry, workers, onValidationChange, normalized.schema]);\n\n if (!workers) {\n return <Unavailable errors={[\"Monaco workers are not configured.\"]} onRetry={() => setRetry((n) => n + 1)} />;\n }\n\n if (!normalized.schema) {\n const errors = [`Unsupported schema keywords: ${normalized.unsupportedKeywords.join(\", \")}`];\n return <Unavailable errors={errors} onRetry={() => setRetry((n) => n + 1)} />;\n }\n\n const setValidation = (markers: editor.IMarker[]) => {\n const current = model.current;\n if (!current) return;\n const version = current.getVersionId();\n queueMicrotask(() => {\n if (model.current?.getVersionId() !== version) return;\n // Monaco YAML reports JSON Schema violations (for example enum mismatches)\n // as warnings, while malformed YAML is reported as an error. Both mean the\n // document is not valid for submission; hints and informational markers do not.\n const errors = markers.filter((marker) => marker.severity >= 4).map((marker) => marker.message);\n onValidationChange({ status: errors.length > 0 ? \"invalid\" : \"valid\", errors });\n });\n };\n\n const prepare = (monaco: Monaco) => {\n cleanup.current?.();\n cleanup.current = registerMonacoSchema(monaco, language, path, schemaUri, normalized.schema!);\n };\n\n const mount = (instance: editor.IStandaloneCodeEditor, monaco: Monaco) => {\n if (disposeTimer.current) clearTimeout(disposeTimer.current);\n model.current = instance.getModel();\n markerCleanup.current?.();\n const disposable = monaco.editor.onDidChangeMarkers((uris: readonly Uri[]) => {\n const current = model.current;\n if (!current || !uris.some((uri) => uri.toString() === current.uri.toString())) return;\n setValidation(monaco.editor.getModelMarkers({ resource: current.uri }));\n });\n markerCleanup.current = () => disposable.dispose();\n // The language service doesn't emit a marker-change event when an initial\n // document is valid (the marker set starts and remains empty). Give the\n // worker its normal validation window, then explicitly complete that empty\n // result so forms cannot remain stuck in the loading state.\n initialValidationTimer.current = setTimeout(() => {\n const current = model.current;\n if (current) setValidation(monaco.editor.getModelMarkers({ resource: current.uri }));\n }, 1_500);\n };\n\n return (\n <MonacoEditor\n key={retry}\n {...props}\n beforeMount={(monaco) => {\n try {\n prepare(monaco);\n } catch (error) {\n onValidationChange({\n status: \"unavailable\",\n errors: [error instanceof Error ? error.message : String(error)],\n });\n }\n }}\n onMount={mount}\n onValidate={setValidation}\n />\n );\n}\n\nfunction Unavailable({ errors, onRetry }: { errors: string[]; onRetry: () => void }) {\n return (\n <div role=\"alert\" className=\"space-y-2 rounded-md border border-destructive/40 p-3 text-sm text-destructive\">\n <div>{errors.join(\"; \")}</div>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onRetry}>Retry editor</Button>\n </div>\n );\n}\n\nexport type { MonacoValidationState };\n"],"names":["useState","useMonacoWorkerFactory","useRef","useMemo","normalizeSchemaForMonaco","useEffect","jsx","registerMonacoSchema","MonacoEditor","jsxs","Button"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { MonacoSchemaEditorProps, MonacoValidationState } from './types';
2
- export declare function MonacoSchemaEditor(props: MonacoSchemaEditorProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function MonacoSchemaEditor(props: MonacoSchemaEditorProps): import("react").JSX.Element;
3
3
  export type { MonacoValidationState };
4
4
  //# sourceMappingURL=MonacoSchemaEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoSchemaEditor.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoSchemaEditor.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAuGhE;AAWD,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"MonacoSchemaEditor.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoSchemaEditor.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,+BAuGhE;AAWD,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
@@ -9,10 +9,10 @@ function MonacoSchemaEditor(props) {
9
9
  const { value, language, path, schema, schemaUri, onValidationChange } = props;
10
10
  const [retry, setRetry] = useState(0);
11
11
  const workers = useMonacoWorkerFactory();
12
- const cleanup = useRef();
13
- const markerCleanup = useRef();
14
- const disposeTimer = useRef();
15
- const initialValidationTimer = useRef();
12
+ const cleanup = useRef(void 0);
13
+ const markerCleanup = useRef(void 0);
14
+ const disposeTimer = useRef(void 0);
15
+ const initialValidationTimer = useRef(void 0);
16
16
  const model = useRef(null);
17
17
  const normalized = useMemo(() => normalizeSchemaForMonaco(schema), [schema]);
18
18
  useEffect(
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoSchemaEditor.js","sources":["../../src/monaco/MonacoSchemaEditor.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport type { editor, Uri } from \"monaco-editor\";\nimport { Button } from \"../components/button\";\nimport { MonacoEditor, type Monaco } from \"./MonacoEditor\";\nimport { useMonacoWorkerFactory } from \"./use-monaco-worker\";\nimport { normalizeSchemaForMonaco } from \"./schema-normalizer\";\nimport { registerMonacoSchema } from \"./schema-registry\";\nimport type { MonacoSchemaEditorProps, MonacoValidationState } from \"./types\";\n\nexport function MonacoSchemaEditor(props: MonacoSchemaEditorProps) {\n const { value, language, path, schema, schemaUri, onValidationChange } = props;\n const [retry, setRetry] = useState(0);\n const workers = useMonacoWorkerFactory();\n const cleanup = useRef<(() => void) | undefined>();\n const markerCleanup = useRef<(() => void) | undefined>();\n const disposeTimer = useRef<ReturnType<typeof setTimeout> | undefined>();\n const initialValidationTimer = useRef<ReturnType<typeof setTimeout> | undefined>();\n const model = useRef<editor.ITextModel | null>(null);\n const normalized = useMemo(() => normalizeSchemaForMonaco(schema), [schema]);\n\n useEffect(\n () => {\n if (disposeTimer.current) clearTimeout(disposeTimer.current);\n return () => {\n markerCleanup.current?.();\n cleanup.current?.();\n if (initialValidationTimer.current) clearTimeout(initialValidationTimer.current);\n const current = model.current;\n disposeTimer.current = setTimeout(() => current?.dispose(), 0);\n };\n },\n [],\n );\n useEffect(() => {\n onValidationChange(\n !normalized.schema\n ? {\n status: \"unavailable\",\n errors: [`Unsupported schema keywords: ${normalized.unsupportedKeywords.join(\", \")}`],\n }\n : workers\n ? { status: \"loading\", errors: [] }\n : { status: \"unavailable\", errors: [\"Monaco workers are not configured.\"] },\n );\n }, [value, retry, workers, onValidationChange, normalized.schema]);\n\n if (!workers) {\n return <Unavailable errors={[\"Monaco workers are not configured.\"]} onRetry={() => setRetry((n) => n + 1)} />;\n }\n\n if (!normalized.schema) {\n const errors = [`Unsupported schema keywords: ${normalized.unsupportedKeywords.join(\", \")}`];\n return <Unavailable errors={errors} onRetry={() => setRetry((n) => n + 1)} />;\n }\n\n const setValidation = (markers: editor.IMarker[]) => {\n const current = model.current;\n if (!current) return;\n const version = current.getVersionId();\n queueMicrotask(() => {\n if (model.current?.getVersionId() !== version) return;\n // Monaco YAML reports JSON Schema violations (for example enum mismatches)\n // as warnings, while malformed YAML is reported as an error. Both mean the\n // document is not valid for submission; hints and informational markers do not.\n const errors = markers.filter((marker) => marker.severity >= 4).map((marker) => marker.message);\n onValidationChange({ status: errors.length > 0 ? \"invalid\" : \"valid\", errors });\n });\n };\n\n const prepare = (monaco: Monaco) => {\n cleanup.current?.();\n cleanup.current = registerMonacoSchema(monaco, language, path, schemaUri, normalized.schema!);\n };\n\n const mount = (instance: editor.IStandaloneCodeEditor, monaco: Monaco) => {\n if (disposeTimer.current) clearTimeout(disposeTimer.current);\n model.current = instance.getModel();\n markerCleanup.current?.();\n const disposable = monaco.editor.onDidChangeMarkers((uris: readonly Uri[]) => {\n const current = model.current;\n if (!current || !uris.some((uri) => uri.toString() === current.uri.toString())) return;\n setValidation(monaco.editor.getModelMarkers({ resource: current.uri }));\n });\n markerCleanup.current = () => disposable.dispose();\n // The language service doesn't emit a marker-change event when an initial\n // document is valid (the marker set starts and remains empty). Give the\n // worker its normal validation window, then explicitly complete that empty\n // result so forms cannot remain stuck in the loading state.\n initialValidationTimer.current = setTimeout(() => {\n const current = model.current;\n if (current) setValidation(monaco.editor.getModelMarkers({ resource: current.uri }));\n }, 1_500);\n };\n\n return (\n <MonacoEditor\n key={retry}\n {...props}\n beforeMount={(monaco) => {\n try {\n prepare(monaco);\n } catch (error) {\n onValidationChange({\n status: \"unavailable\",\n errors: [error instanceof Error ? error.message : String(error)],\n });\n }\n }}\n onMount={mount}\n onValidate={setValidation}\n />\n );\n}\n\nfunction Unavailable({ errors, onRetry }: { errors: string[]; onRetry: () => void }) {\n return (\n <div role=\"alert\" className=\"space-y-2 rounded-md border border-destructive/40 p-3 text-sm text-destructive\">\n <div>{errors.join(\"; \")}</div>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onRetry}>Retry editor</Button>\n </div>\n );\n}\n\nexport type { MonacoValidationState };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonacoSchemaEditor.js","sources":["../../src/monaco/MonacoSchemaEditor.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport type { editor, Uri } from \"monaco-editor\";\nimport { Button } from \"../components/button\";\nimport { MonacoEditor, type Monaco } from \"./MonacoEditor\";\nimport { useMonacoWorkerFactory } from \"./use-monaco-worker\";\nimport { normalizeSchemaForMonaco } from \"./schema-normalizer\";\nimport { registerMonacoSchema } from \"./schema-registry\";\nimport type { MonacoSchemaEditorProps, MonacoValidationState } from \"./types\";\n\nexport function MonacoSchemaEditor(props: MonacoSchemaEditorProps) {\n const { value, language, path, schema, schemaUri, onValidationChange } = props;\n const [retry, setRetry] = useState(0);\n const workers = useMonacoWorkerFactory();\n const cleanup = useRef<(() => void) | undefined>(undefined);\n const markerCleanup = useRef<(() => void) | undefined>(undefined);\n const disposeTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const initialValidationTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const model = useRef<editor.ITextModel | null>(null);\n const normalized = useMemo(() => normalizeSchemaForMonaco(schema), [schema]);\n\n useEffect(\n () => {\n if (disposeTimer.current) clearTimeout(disposeTimer.current);\n return () => {\n markerCleanup.current?.();\n cleanup.current?.();\n if (initialValidationTimer.current) clearTimeout(initialValidationTimer.current);\n const current = model.current;\n disposeTimer.current = setTimeout(() => current?.dispose(), 0);\n };\n },\n [],\n );\n useEffect(() => {\n onValidationChange(\n !normalized.schema\n ? {\n status: \"unavailable\",\n errors: [`Unsupported schema keywords: ${normalized.unsupportedKeywords.join(\", \")}`],\n }\n : workers\n ? { status: \"loading\", errors: [] }\n : { status: \"unavailable\", errors: [\"Monaco workers are not configured.\"] },\n );\n }, [value, retry, workers, onValidationChange, normalized.schema]);\n\n if (!workers) {\n return <Unavailable errors={[\"Monaco workers are not configured.\"]} onRetry={() => setRetry((n) => n + 1)} />;\n }\n\n if (!normalized.schema) {\n const errors = [`Unsupported schema keywords: ${normalized.unsupportedKeywords.join(\", \")}`];\n return <Unavailable errors={errors} onRetry={() => setRetry((n) => n + 1)} />;\n }\n\n const setValidation = (markers: editor.IMarker[]) => {\n const current = model.current;\n if (!current) return;\n const version = current.getVersionId();\n queueMicrotask(() => {\n if (model.current?.getVersionId() !== version) return;\n // Monaco YAML reports JSON Schema violations (for example enum mismatches)\n // as warnings, while malformed YAML is reported as an error. Both mean the\n // document is not valid for submission; hints and informational markers do not.\n const errors = markers.filter((marker) => marker.severity >= 4).map((marker) => marker.message);\n onValidationChange({ status: errors.length > 0 ? \"invalid\" : \"valid\", errors });\n });\n };\n\n const prepare = (monaco: Monaco) => {\n cleanup.current?.();\n cleanup.current = registerMonacoSchema(monaco, language, path, schemaUri, normalized.schema!);\n };\n\n const mount = (instance: editor.IStandaloneCodeEditor, monaco: Monaco) => {\n if (disposeTimer.current) clearTimeout(disposeTimer.current);\n model.current = instance.getModel();\n markerCleanup.current?.();\n const disposable = monaco.editor.onDidChangeMarkers((uris: readonly Uri[]) => {\n const current = model.current;\n if (!current || !uris.some((uri) => uri.toString() === current.uri.toString())) return;\n setValidation(monaco.editor.getModelMarkers({ resource: current.uri }));\n });\n markerCleanup.current = () => disposable.dispose();\n // The language service doesn't emit a marker-change event when an initial\n // document is valid (the marker set starts and remains empty). Give the\n // worker its normal validation window, then explicitly complete that empty\n // result so forms cannot remain stuck in the loading state.\n initialValidationTimer.current = setTimeout(() => {\n const current = model.current;\n if (current) setValidation(monaco.editor.getModelMarkers({ resource: current.uri }));\n }, 1_500);\n };\n\n return (\n <MonacoEditor\n key={retry}\n {...props}\n beforeMount={(monaco) => {\n try {\n prepare(monaco);\n } catch (error) {\n onValidationChange({\n status: \"unavailable\",\n errors: [error instanceof Error ? error.message : String(error)],\n });\n }\n }}\n onMount={mount}\n onValidate={setValidation}\n />\n );\n}\n\nfunction Unavailable({ errors, onRetry }: { errors: string[]; onRetry: () => void }) {\n return (\n <div role=\"alert\" className=\"space-y-2 rounded-md border border-destructive/40 p-3 text-sm text-destructive\">\n <div>{errors.join(\"; \")}</div>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onRetry}>Retry editor</Button>\n </div>\n );\n}\n\nexport type { MonacoValidationState };\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode } from '../../../../node_modules/@types/react/index.d.ts';
2
2
  import { editor } from 'monaco-editor';
3
3
  import { Monaco } from '@monaco-editor/react';
4
4
  import { JsonSchemaObject } from '../components/json-schema-form-types';
@@ -1,4 +1,4 @@
1
1
  import { MonacoWorkerFactory } from './types';
2
- export declare const WorkerContext: import('react').Context<MonacoWorkerFactory | null>;
2
+ export declare const WorkerContext: import('../../../../node_modules/@types/react/index.d.ts').Context<MonacoWorkerFactory | null>;
3
3
  export declare function useMonacoWorkerFactory(): MonacoWorkerFactory | null;
4
4
  //# sourceMappingURL=use-monaco-worker.d.ts.map
@@ -1,4 +1,4 @@
1
- import { ButtonHTMLAttributes, ReactNode } from 'react';
1
+ import { ButtonHTMLAttributes, ReactNode } from '../../../../node_modules/@types/react/index.d.ts';
2
2
  import { StaticIconComponent } from '../data/Icon';
3
3
  import { DropdownMenuItem } from './DropdownMenu';
4
4
  export type CellActionsProps = {
@@ -13,6 +13,6 @@ export type CellActionButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>
13
13
  icon: StaticIconComponent;
14
14
  onSelect: () => void;
15
15
  };
16
- export declare function CellActions({ contextTarget, menuLabel, menuItems, children, className, }: CellActionsProps): import("react/jsx-runtime").JSX.Element;
17
- export declare function CellActionButton({ label, icon, onSelect, className, title, onMouseDown, ...props }: CellActionButtonProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function CellActions({ contextTarget, menuLabel, menuItems, children, className, }: CellActionsProps): import("react").JSX.Element;
17
+ export declare function CellActionButton({ label, icon, onSelect, className, title, onMouseDown, ...props }: CellActionButtonProps): import("react").JSX.Element;
18
18
  //# sourceMappingURL=CellActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CellActions.d.ts","sourceRoot":"","sources":["../../src/overlay/CellActions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,UAAU,GAAG,SAAS,CACvB,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAC1B,aAAa,EACb,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,2CAyBlB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAa,EACb,WAAW,EACX,GAAG,KAAK,EACT,EAAE,qBAAqB,2CAwBvB"}
1
+ {"version":3,"file":"CellActions.d.ts","sourceRoot":"","sources":["../../src/overlay/CellActions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,UAAU,GAAG,SAAS,CACvB,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAC1B,aAAa,EACb,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,+BAyBlB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAa,EACb,WAAW,EACX,GAAG,KAAK,EACT,EAAE,qBAAqB,+BAwBvB"}
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode } from '../../../../node_modules/@types/react/index.d.ts';
2
2
  import { CommandFilter, CommandGroup, CommandItem } from './CommandPalette.model';
3
3
  export type { CommandFilter, CommandGroup, CommandItem, CommandSelectContext, } from './CommandPalette.model';
4
4
  export type CommandPaletteProps = {
@@ -67,5 +67,5 @@ export type CommandPaletteProps = {
67
67
  * `zIndex` scale), so a palette opened over a modal sits above it and Escape
68
68
  * still dismisses exactly one layer.
69
69
  */
70
- export declare function CommandPalette({ open, onOpenChange, groups, query, onQueryChange, hotkey, placeholder, loading, emptyState, footer, filter, onSelect, closeOnSelect, resetQueryOnClose, size, topOffset, listMaxHeight, ariaLabel, className, }: CommandPaletteProps): import('react').ReactPortal | null;
70
+ export declare function CommandPalette({ open, onOpenChange, groups, query, onQueryChange, hotkey, placeholder, loading, emptyState, footer, filter, onSelect, closeOnSelect, resetQueryOnClose, size, topOffset, listMaxHeight, ariaLabel, className, }: CommandPaletteProps): import('../../../../node_modules/@types/react/index.d.ts').ReactPortal | null;
71
71
  //# sourceMappingURL=CommandPalette.d.ts.map
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode } from '../../../../node_modules/@types/react/index.d.ts';
2
2
  import { StaticIconComponent } from '../data/Icon';
3
3
  /** Context handed to a command's `onSelect`. */
4
4
  export type CommandSelectContext = {
@@ -1 +1 @@
1
- {"version":3,"file":"CommandPaletteList.cjs","sources":["../../src/overlay/CommandPaletteList.tsx"],"sourcesContent":["import { Fragment, type RefObject } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"../data/Icon\";\nimport type { CommandGroup, CommandItem } from \"./CommandPalette.model\";\n\nexport type CommandPaletteListProps = {\n groups: CommandGroup[];\n /** Flattened rows, in render order — index space for `activeIndex`. */\n items: CommandItem[];\n activeIndex: number;\n listId: string;\n optionId: (item: CommandItem) => string;\n onActivate: (item: CommandItem) => void;\n onHover: (index: number) => void;\n listRef: RefObject<HTMLDivElement>;\n loading?: boolean | undefined;\n emptyState?: React.ReactNode;\n listMaxHeight: string | number;\n};\n\n/**\n * The palette's grouped listbox. Headings are `role=\"presentation\"` so the\n * option index space stays contiguous — the same trick Combobox uses to scroll\n * by `[role=\"option\"]` index.\n */\nexport function CommandPaletteList({\n groups,\n items,\n activeIndex,\n listId,\n optionId,\n onActivate,\n onHover,\n listRef,\n loading,\n emptyState,\n listMaxHeight,\n}: CommandPaletteListProps) {\n // A flat cursor walked alongside the nested render so each row knows its index\n // in the flattened list without a lookup.\n let flatIndex = -1;\n\n return (\n <div\n ref={listRef}\n id={listId}\n role=\"listbox\"\n aria-label=\"Commands\"\n className=\"overflow-y-auto overscroll-contain py-density-1\"\n style={{ maxHeight: listMaxHeight }}\n >\n {loading ? (\n <div className=\"px-density-3 py-density-3 text-sm text-muted-foreground\">Searching…</div>\n ) : items.length === 0 ? (\n <div className=\"px-density-3 py-density-4 text-center text-sm text-muted-foreground\">\n {emptyState ?? \"No results\"}\n </div>\n ) : (\n groups.map((group) => {\n const headingId = `${listId}-group-${group.id}`;\n return (\n <Fragment key={group.id}>\n <div role=\"group\" aria-labelledby={group.heading ? headingId : undefined}>\n {group.heading && (\n <div\n id={headingId}\n role=\"presentation\"\n className=\"px-density-3 pb-1 pt-density-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground\"\n >\n {group.heading}\n </div>\n )}\n {group.items.map((item) => {\n flatIndex += 1;\n const index = flatIndex;\n const active = index === activeIndex;\n return (\n <div\n key={item.id}\n id={optionId(item)}\n role=\"option\"\n aria-selected={active}\n aria-disabled={item.disabled || undefined}\n // onMouseMove, not onMouseEnter: keyboard navigation\n // scrolls rows under a stationary cursor, and mouseenter\n // would yank the highlight back to wherever it sits.\n onMouseMove={() => {\n if (!item.disabled) onHover(index);\n }}\n onClick={() => {\n if (!item.disabled) onActivate(item);\n }}\n className={cn(\n \"mx-density-1 flex cursor-pointer items-center gap-density-2 rounded-md px-density-2 py-1.5 text-sm\",\n active && \"bg-accent text-accent-foreground\",\n item.disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {item.icon !== undefined && (\n <span className=\"flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground\">\n <Icon\n {...(typeof item.icon === \"string\"\n ? { name: item.icon }\n : { icon: item.icon })}\n />\n </span>\n )}\n <span className=\"min-w-0 flex-1 truncate\">\n {item.label}\n {item.description && (\n <span className=\"ml-density-2 text-xs text-muted-foreground\">\n {item.description}\n </span>\n )}\n </span>\n {item.trailing}\n {item.shortcut && (\n <kbd className=\"shrink-0 rounded border border-border bg-muted px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground\">\n {item.shortcut}\n </kbd>\n )}\n </div>\n );\n })}\n </div>\n </Fragment>\n );\n })\n )}\n </div>\n );\n}\n"],"names":["jsx","Fragment","jsxs","cn","Icon"],"mappings":";;;;;;AAyBO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;AAG1B,MAAI,YAAY;AAEhB,SACEA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,IAAI;AAAA,MACJ,MAAK;AAAA,MACL,cAAW;AAAA,MACX,WAAU;AAAA,MACV,OAAO,EAAE,WAAW,cAAA;AAAA,MAEnB,UAAA,yCACE,OAAA,EAAI,WAAU,2DAA0D,UAAA,aAAA,CAAU,IACjF,MAAM,WAAW,mCAClB,OAAA,EAAI,WAAU,uEACZ,UAAA,cAAc,aAAA,CACjB,IAEA,OAAO,IAAI,CAAC,UAAU;AACpB,cAAM,YAAY,GAAG,MAAM,UAAU,MAAM,EAAE;AAC7C,eACEA,2BAAAA,IAACC,MAAAA,UAAA,EACC,UAAAC,2BAAAA,KAAC,OAAA,EAAI,MAAK,SAAQ,mBAAiB,MAAM,UAAU,YAAY,QAC5D,UAAA;AAAA,UAAA,MAAM,WACLF,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,cACJ,MAAK;AAAA,cACL,WAAU;AAAA,cAET,UAAA,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAGV,MAAM,MAAM,IAAI,CAAC,SAAS;AACzB,yBAAa;AACb,kBAAM,QAAQ;AACd,kBAAM,SAAS,UAAU;AACzB,mBACEE,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,IAAI,SAAS,IAAI;AAAA,gBACjB,MAAK;AAAA,gBACL,iBAAe;AAAA,gBACf,iBAAe,KAAK,YAAY;AAAA,gBAIhC,aAAa,MAAM;AACjB,sBAAI,CAAC,KAAK,SAAU,SAAQ,KAAK;AAAA,gBACnC;AAAA,gBACA,SAAS,MAAM;AACb,sBAAI,CAAC,KAAK,SAAU,YAAW,IAAI;AAAA,gBACrC;AAAA,gBACA,WAAWC,MAAAA;AAAAA,kBACT;AAAA,kBACA,UAAU;AAAA,kBACV,KAAK,YAAY;AAAA,gBAAA;AAAA,gBAGlB,UAAA;AAAA,kBAAA,KAAK,SAAS,UACbH,2BAAAA,IAAC,QAAA,EAAK,WAAU,2EACd,UAAAA,2BAAAA;AAAAA,oBAACI,KAAAA;AAAAA,oBAAA;AAAA,sBACE,GAAI,OAAO,KAAK,SAAS,WACtB,EAAE,MAAM,KAAK,KAAA,IACb,EAAE,MAAM,KAAK,KAAA;AAAA,oBAAK;AAAA,kBAAA,GAE1B;AAAA,kBAEFF,2BAAAA,KAAC,QAAA,EAAK,WAAU,2BACb,UAAA;AAAA,oBAAA,KAAK;AAAA,oBACL,KAAK,eACJF,2BAAAA,IAAC,UAAK,WAAU,8CACb,eAAK,YAAA,CACR;AAAA,kBAAA,GAEJ;AAAA,kBACC,KAAK;AAAA,kBACL,KAAK,YACJA,2BAAAA,IAAC,SAAI,WAAU,4GACZ,eAAK,SAAA,CACR;AAAA,gBAAA;AAAA,cAAA;AAAA,cAzCG,KAAK;AAAA,YAAA;AAAA,UA6ChB,CAAC;AAAA,QAAA,GACH,EAAA,GA/Da,MAAM,EAgErB;AAAA,MAEJ,CAAC;AAAA,IAAA;AAAA,EAAA;AAIT;;"}
1
+ {"version":3,"file":"CommandPaletteList.cjs","sources":["../../src/overlay/CommandPaletteList.tsx"],"sourcesContent":["import { Fragment, type RefObject } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"../data/Icon\";\nimport type { CommandGroup, CommandItem } from \"./CommandPalette.model\";\n\nexport type CommandPaletteListProps = {\n groups: CommandGroup[];\n /** Flattened rows, in render order — index space for `activeIndex`. */\n items: CommandItem[];\n activeIndex: number;\n listId: string;\n optionId: (item: CommandItem) => string;\n onActivate: (item: CommandItem) => void;\n onHover: (index: number) => void;\n listRef: RefObject<HTMLDivElement | null>;\n loading?: boolean | undefined;\n emptyState?: React.ReactNode;\n listMaxHeight: string | number;\n};\n\n/**\n * The palette's grouped listbox. Headings are `role=\"presentation\"` so the\n * option index space stays contiguous — the same trick Combobox uses to scroll\n * by `[role=\"option\"]` index.\n */\nexport function CommandPaletteList({\n groups,\n items,\n activeIndex,\n listId,\n optionId,\n onActivate,\n onHover,\n listRef,\n loading,\n emptyState,\n listMaxHeight,\n}: CommandPaletteListProps) {\n // A flat cursor walked alongside the nested render so each row knows its index\n // in the flattened list without a lookup.\n let flatIndex = -1;\n\n return (\n <div\n ref={listRef}\n id={listId}\n role=\"listbox\"\n aria-label=\"Commands\"\n className=\"overflow-y-auto overscroll-contain py-density-1\"\n style={{ maxHeight: listMaxHeight }}\n >\n {loading ? (\n <div className=\"px-density-3 py-density-3 text-sm text-muted-foreground\">Searching…</div>\n ) : items.length === 0 ? (\n <div className=\"px-density-3 py-density-4 text-center text-sm text-muted-foreground\">\n {emptyState ?? \"No results\"}\n </div>\n ) : (\n groups.map((group) => {\n const headingId = `${listId}-group-${group.id}`;\n return (\n <Fragment key={group.id}>\n <div role=\"group\" aria-labelledby={group.heading ? headingId : undefined}>\n {group.heading && (\n <div\n id={headingId}\n role=\"presentation\"\n className=\"px-density-3 pb-1 pt-density-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground\"\n >\n {group.heading}\n </div>\n )}\n {group.items.map((item) => {\n flatIndex += 1;\n const index = flatIndex;\n const active = index === activeIndex;\n return (\n <div\n key={item.id}\n id={optionId(item)}\n role=\"option\"\n aria-selected={active}\n aria-disabled={item.disabled || undefined}\n // onMouseMove, not onMouseEnter: keyboard navigation\n // scrolls rows under a stationary cursor, and mouseenter\n // would yank the highlight back to wherever it sits.\n onMouseMove={() => {\n if (!item.disabled) onHover(index);\n }}\n onClick={() => {\n if (!item.disabled) onActivate(item);\n }}\n className={cn(\n \"mx-density-1 flex cursor-pointer items-center gap-density-2 rounded-md px-density-2 py-1.5 text-sm\",\n active && \"bg-accent text-accent-foreground\",\n item.disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {item.icon !== undefined && (\n <span className=\"flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground\">\n <Icon\n {...(typeof item.icon === \"string\"\n ? { name: item.icon }\n : { icon: item.icon })}\n />\n </span>\n )}\n <span className=\"min-w-0 flex-1 truncate\">\n {item.label}\n {item.description && (\n <span className=\"ml-density-2 text-xs text-muted-foreground\">\n {item.description}\n </span>\n )}\n </span>\n {item.trailing}\n {item.shortcut && (\n <kbd className=\"shrink-0 rounded border border-border bg-muted px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground\">\n {item.shortcut}\n </kbd>\n )}\n </div>\n );\n })}\n </div>\n </Fragment>\n );\n })\n )}\n </div>\n );\n}\n"],"names":["jsx","Fragment","jsxs","cn","Icon"],"mappings":";;;;;;AAyBO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;AAG1B,MAAI,YAAY;AAEhB,SACEA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,IAAI;AAAA,MACJ,MAAK;AAAA,MACL,cAAW;AAAA,MACX,WAAU;AAAA,MACV,OAAO,EAAE,WAAW,cAAA;AAAA,MAEnB,UAAA,yCACE,OAAA,EAAI,WAAU,2DAA0D,UAAA,aAAA,CAAU,IACjF,MAAM,WAAW,mCAClB,OAAA,EAAI,WAAU,uEACZ,UAAA,cAAc,aAAA,CACjB,IAEA,OAAO,IAAI,CAAC,UAAU;AACpB,cAAM,YAAY,GAAG,MAAM,UAAU,MAAM,EAAE;AAC7C,eACEA,2BAAAA,IAACC,MAAAA,UAAA,EACC,UAAAC,2BAAAA,KAAC,OAAA,EAAI,MAAK,SAAQ,mBAAiB,MAAM,UAAU,YAAY,QAC5D,UAAA;AAAA,UAAA,MAAM,WACLF,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,cACJ,MAAK;AAAA,cACL,WAAU;AAAA,cAET,UAAA,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAGV,MAAM,MAAM,IAAI,CAAC,SAAS;AACzB,yBAAa;AACb,kBAAM,QAAQ;AACd,kBAAM,SAAS,UAAU;AACzB,mBACEE,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,IAAI,SAAS,IAAI;AAAA,gBACjB,MAAK;AAAA,gBACL,iBAAe;AAAA,gBACf,iBAAe,KAAK,YAAY;AAAA,gBAIhC,aAAa,MAAM;AACjB,sBAAI,CAAC,KAAK,SAAU,SAAQ,KAAK;AAAA,gBACnC;AAAA,gBACA,SAAS,MAAM;AACb,sBAAI,CAAC,KAAK,SAAU,YAAW,IAAI;AAAA,gBACrC;AAAA,gBACA,WAAWC,MAAAA;AAAAA,kBACT;AAAA,kBACA,UAAU;AAAA,kBACV,KAAK,YAAY;AAAA,gBAAA;AAAA,gBAGlB,UAAA;AAAA,kBAAA,KAAK,SAAS,UACbH,2BAAAA,IAAC,QAAA,EAAK,WAAU,2EACd,UAAAA,2BAAAA;AAAAA,oBAACI,KAAAA;AAAAA,oBAAA;AAAA,sBACE,GAAI,OAAO,KAAK,SAAS,WACtB,EAAE,MAAM,KAAK,KAAA,IACb,EAAE,MAAM,KAAK,KAAA;AAAA,oBAAK;AAAA,kBAAA,GAE1B;AAAA,kBAEFF,2BAAAA,KAAC,QAAA,EAAK,WAAU,2BACb,UAAA;AAAA,oBAAA,KAAK;AAAA,oBACL,KAAK,eACJF,2BAAAA,IAAC,UAAK,WAAU,8CACb,eAAK,YAAA,CACR;AAAA,kBAAA,GAEJ;AAAA,kBACC,KAAK;AAAA,kBACL,KAAK,YACJA,2BAAAA,IAAC,SAAI,WAAU,4GACZ,eAAK,SAAA,CACR;AAAA,gBAAA;AAAA,cAAA;AAAA,cAzCG,KAAK;AAAA,YAAA;AAAA,UA6ChB,CAAC;AAAA,QAAA,GACH,EAAA,GA/Da,MAAM,EAgErB;AAAA,MAEJ,CAAC;AAAA,IAAA;AAAA,EAAA;AAIT;;"}