@flanksource/clicky-ui 0.3.41 → 0.3.42

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 (472) hide show
  1. package/dist/ai.cjs +4 -0
  2. package/dist/ai.cjs.map +1 -1
  3. package/dist/ai.js +4 -0
  4. package/dist/ai.js.map +1 -1
  5. package/dist/comments/CommentCard.cjs +3 -1
  6. package/dist/comments/CommentCard.cjs.map +1 -1
  7. package/dist/comments/CommentCard.d.ts.map +1 -1
  8. package/dist/comments/CommentCard.js +4 -2
  9. package/dist/comments/CommentCard.js.map +1 -1
  10. package/dist/comments/CommentCardParts.cjs +16 -0
  11. package/dist/comments/CommentCardParts.cjs.map +1 -1
  12. package/dist/comments/CommentCardParts.d.ts +4 -1
  13. package/dist/comments/CommentCardParts.d.ts.map +1 -1
  14. package/dist/comments/CommentCardParts.js +16 -0
  15. package/dist/comments/CommentCardParts.js.map +1 -1
  16. package/dist/comments/comment-types.cjs.map +1 -1
  17. package/dist/comments/comment-types.d.ts +4 -0
  18. package/dist/comments/comment-types.d.ts.map +1 -1
  19. package/dist/comments/comment-types.js.map +1 -1
  20. package/dist/components/Combobox.cjs +54 -8
  21. package/dist/components/Combobox.cjs.map +1 -1
  22. package/dist/components/Combobox.d.ts.map +1 -1
  23. package/dist/components/Combobox.js +56 -10
  24. package/dist/components/Combobox.js.map +1 -1
  25. package/dist/components/ComboboxMenu.cjs +139 -113
  26. package/dist/components/ComboboxMenu.cjs.map +1 -1
  27. package/dist/components/ComboboxMenu.d.ts +3 -1
  28. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  29. package/dist/components/ComboboxMenu.js +139 -113
  30. package/dist/components/ComboboxMenu.js.map +1 -1
  31. package/dist/components/ComboboxMenuTrigger.cjs +87 -0
  32. package/dist/components/ComboboxMenuTrigger.cjs.map +1 -0
  33. package/dist/components/ComboboxMenuTrigger.d.ts +23 -0
  34. package/dist/components/ComboboxMenuTrigger.d.ts.map +1 -0
  35. package/dist/components/ComboboxMenuTrigger.js +87 -0
  36. package/dist/components/ComboboxMenuTrigger.js.map +1 -0
  37. package/dist/components/JsonSchemaForm.cjs +30 -7
  38. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  39. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  40. package/dist/components/JsonSchemaForm.js +30 -7
  41. package/dist/components/JsonSchemaForm.js.map +1 -1
  42. package/dist/components/SegmentedControl.cjs +20 -3
  43. package/dist/components/SegmentedControl.cjs.map +1 -1
  44. package/dist/components/SegmentedControl.d.ts +11 -0
  45. package/dist/components/SegmentedControl.d.ts.map +1 -1
  46. package/dist/components/SegmentedControl.js +21 -4
  47. package/dist/components/SegmentedControl.js.map +1 -1
  48. package/dist/components/combobox-types.d.ts +8 -0
  49. package/dist/components/combobox-types.d.ts.map +1 -1
  50. package/dist/components/json-schema-form-debug-badge.cjs +108 -0
  51. package/dist/components/json-schema-form-debug-badge.cjs.map +1 -0
  52. package/dist/components/json-schema-form-debug-badge.d.ts +10 -0
  53. package/dist/components/json-schema-form-debug-badge.d.ts.map +1 -0
  54. package/dist/components/json-schema-form-debug-badge.js +108 -0
  55. package/dist/components/json-schema-form-debug-badge.js.map +1 -0
  56. package/dist/components/json-schema-form-debug-glyph-map.cjs +129 -0
  57. package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -0
  58. package/dist/components/json-schema-form-debug-glyph-map.d.ts +20 -0
  59. package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -0
  60. package/dist/components/json-schema-form-debug-glyph-map.js +129 -0
  61. package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -0
  62. package/dist/components/json-schema-form-debug-glyph.cjs +13 -0
  63. package/dist/components/json-schema-form-debug-glyph.cjs.map +1 -0
  64. package/dist/components/json-schema-form-debug-glyph.d.ts +6 -0
  65. package/dist/components/json-schema-form-debug-glyph.d.ts.map +1 -0
  66. package/dist/components/json-schema-form-debug-glyph.js +13 -0
  67. package/dist/components/json-schema-form-debug-glyph.js.map +1 -0
  68. package/dist/components/json-schema-form-debug-groups.cjs +56 -0
  69. package/dist/components/json-schema-form-debug-groups.cjs.map +1 -0
  70. package/dist/components/json-schema-form-debug-groups.d.ts +8 -0
  71. package/dist/components/json-schema-form-debug-groups.d.ts.map +1 -0
  72. package/dist/components/json-schema-form-debug-groups.js +56 -0
  73. package/dist/components/json-schema-form-debug-groups.js.map +1 -0
  74. package/dist/components/json-schema-form-debug-keywords.cjs +159 -0
  75. package/dist/components/json-schema-form-debug-keywords.cjs.map +1 -0
  76. package/dist/components/json-schema-form-debug-keywords.d.ts +6 -0
  77. package/dist/components/json-schema-form-debug-keywords.d.ts.map +1 -0
  78. package/dist/components/json-schema-form-debug-keywords.js +159 -0
  79. package/dist/components/json-schema-form-debug-keywords.js.map +1 -0
  80. package/dist/components/json-schema-form-debug-listeners.cjs +102 -0
  81. package/dist/components/json-schema-form-debug-listeners.cjs.map +1 -0
  82. package/dist/components/json-schema-form-debug-listeners.d.ts +6 -0
  83. package/dist/components/json-schema-form-debug-listeners.d.ts.map +1 -0
  84. package/dist/components/json-schema-form-debug-listeners.js +102 -0
  85. package/dist/components/json-schema-form-debug-listeners.js.map +1 -0
  86. package/dist/components/json-schema-form-debug.cjs +31 -0
  87. package/dist/components/json-schema-form-debug.cjs.map +1 -0
  88. package/dist/components/json-schema-form-debug.d.ts +11 -0
  89. package/dist/components/json-schema-form-debug.d.ts.map +1 -0
  90. package/dist/components/json-schema-form-debug.js +31 -0
  91. package/dist/components/json-schema-form-debug.js.map +1 -0
  92. package/dist/components/json-schema-form-enum-choice.cjs +114 -0
  93. package/dist/components/json-schema-form-enum-choice.cjs.map +1 -0
  94. package/dist/components/json-schema-form-enum-choice.d.ts +14 -0
  95. package/dist/components/json-schema-form-enum-choice.d.ts.map +1 -0
  96. package/dist/components/json-schema-form-enum-choice.js +114 -0
  97. package/dist/components/json-schema-form-enum-choice.js.map +1 -0
  98. package/dist/components/json-schema-form-fields.cjs +3 -93
  99. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  100. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  101. package/dist/components/json-schema-form-fields.js +1 -91
  102. package/dist/components/json-schema-form-fields.js.map +1 -1
  103. package/dist/components/json-schema-form-listeners.cjs +7 -1
  104. package/dist/components/json-schema-form-listeners.cjs.map +1 -1
  105. package/dist/components/json-schema-form-listeners.d.ts.map +1 -1
  106. package/dist/components/json-schema-form-listeners.js +7 -1
  107. package/dist/components/json-schema-form-listeners.js.map +1 -1
  108. package/dist/components/json-schema-form-preferences.cjs +1 -0
  109. package/dist/components/json-schema-form-preferences.cjs.map +1 -1
  110. package/dist/components/json-schema-form-preferences.d.ts +1 -0
  111. package/dist/components/json-schema-form-preferences.d.ts.map +1 -1
  112. package/dist/components/json-schema-form-preferences.js +1 -0
  113. package/dist/components/json-schema-form-preferences.js.map +1 -1
  114. package/dist/components/json-schema-form-render.cjs +21 -5
  115. package/dist/components/json-schema-form-render.cjs.map +1 -1
  116. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  117. package/dist/components/json-schema-form-render.js +21 -5
  118. package/dist/components/json-schema-form-render.js.map +1 -1
  119. package/dist/components/json-schema-form-runtime-types.d.ts +1 -0
  120. package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -1
  121. package/dist/components/json-schema-form-tone.cjs +12 -0
  122. package/dist/components/json-schema-form-tone.cjs.map +1 -1
  123. package/dist/components/json-schema-form-tone.js +12 -0
  124. package/dist/components/json-schema-form-tone.js.map +1 -1
  125. package/dist/components/json-schema-form-types.d.ts +1 -0
  126. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  127. package/dist/data/GraphDiagram.cjs +125 -138
  128. package/dist/data/GraphDiagram.cjs.map +1 -1
  129. package/dist/data/GraphDiagram.d.ts +30 -23
  130. package/dist/data/GraphDiagram.d.ts.map +1 -1
  131. package/dist/data/GraphDiagram.js +128 -141
  132. package/dist/data/GraphDiagram.js.map +1 -1
  133. package/dist/data/GraphDiagramEdges.cjs +208 -0
  134. package/dist/data/GraphDiagramEdges.cjs.map +1 -0
  135. package/dist/data/GraphDiagramEdges.d.ts +40 -0
  136. package/dist/data/GraphDiagramEdges.d.ts.map +1 -0
  137. package/dist/data/GraphDiagramEdges.js +208 -0
  138. package/dist/data/GraphDiagramEdges.js.map +1 -0
  139. package/dist/data/GraphDiagramNodes.cjs +142 -0
  140. package/dist/data/GraphDiagramNodes.cjs.map +1 -0
  141. package/dist/data/GraphDiagramNodes.d.ts +22 -0
  142. package/dist/data/GraphDiagramNodes.d.ts.map +1 -0
  143. package/dist/data/GraphDiagramNodes.js +142 -0
  144. package/dist/data/GraphDiagramNodes.js.map +1 -0
  145. package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs +8 -3
  146. package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs.map +1 -1
  147. package/dist/data/ai/PromptRunEditor/RuntimeRows.d.ts.map +1 -1
  148. package/dist/data/ai/PromptRunEditor/RuntimeRows.js +8 -3
  149. package/dist/data/ai/PromptRunEditor/RuntimeRows.js.map +1 -1
  150. package/dist/data/ai/PromptRunEditor/index.cjs +37 -43
  151. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  152. package/dist/data/ai/PromptRunEditor/index.d.ts +3 -1
  153. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  154. package/dist/data/ai/PromptRunEditor/index.js +38 -44
  155. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  156. package/dist/data/ai/PromptRunEditor/runtimeActions.cjs +16 -5
  157. package/dist/data/ai/PromptRunEditor/runtimeActions.cjs.map +1 -1
  158. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts +4 -1
  159. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts.map +1 -1
  160. package/dist/data/ai/PromptRunEditor/runtimeActions.js +17 -6
  161. package/dist/data/ai/PromptRunEditor/runtimeActions.js.map +1 -1
  162. package/dist/data/ai/SessionInspector.approvals-model.cjs +12 -0
  163. package/dist/data/ai/SessionInspector.approvals-model.cjs.map +1 -1
  164. package/dist/data/ai/SessionInspector.approvals-model.d.ts +11 -2
  165. package/dist/data/ai/SessionInspector.approvals-model.d.ts.map +1 -1
  166. package/dist/data/ai/SessionInspector.approvals-model.js +12 -0
  167. package/dist/data/ai/SessionInspector.approvals-model.js.map +1 -1
  168. package/dist/data/ai/SessionInspector.approvals.cjs +25 -1
  169. package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -1
  170. package/dist/data/ai/SessionInspector.approvals.d.ts.map +1 -1
  171. package/dist/data/ai/SessionInspector.approvals.js +26 -2
  172. package/dist/data/ai/SessionInspector.approvals.js.map +1 -1
  173. package/dist/data/ai/SessionInspector.summary.cjs +9 -3
  174. package/dist/data/ai/SessionInspector.summary.cjs.map +1 -1
  175. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
  176. package/dist/data/ai/SessionInspector.summary.js +9 -3
  177. package/dist/data/ai/SessionInspector.summary.js.map +1 -1
  178. package/dist/data/ai/SessionInspector.transcript.cjs +4 -0
  179. package/dist/data/ai/SessionInspector.transcript.cjs.map +1 -1
  180. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
  181. package/dist/data/ai/SessionInspector.transcript.js +4 -0
  182. package/dist/data/ai/SessionInspector.transcript.js.map +1 -1
  183. package/dist/data/ai/SessionViewer.approval-body.cjs +146 -0
  184. package/dist/data/ai/SessionViewer.approval-body.cjs.map +1 -0
  185. package/dist/data/ai/SessionViewer.approval-body.d.ts +11 -0
  186. package/dist/data/ai/SessionViewer.approval-body.d.ts.map +1 -0
  187. package/dist/data/ai/SessionViewer.approval-body.js +146 -0
  188. package/dist/data/ai/SessionViewer.approval-body.js.map +1 -0
  189. package/dist/data/ai/SessionViewer.approval-forms.cjs +150 -0
  190. package/dist/data/ai/SessionViewer.approval-forms.cjs.map +1 -0
  191. package/dist/data/ai/SessionViewer.approval-forms.d.ts +23 -0
  192. package/dist/data/ai/SessionViewer.approval-forms.d.ts.map +1 -0
  193. package/dist/data/ai/SessionViewer.approval-forms.js +150 -0
  194. package/dist/data/ai/SessionViewer.approval-forms.js.map +1 -0
  195. package/dist/data/ai/SessionViewer.cjs +57 -20
  196. package/dist/data/ai/SessionViewer.cjs.map +1 -1
  197. package/dist/data/ai/SessionViewer.d.ts +13 -3
  198. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  199. package/dist/data/ai/SessionViewer.decision-controls.cjs +313 -0
  200. package/dist/data/ai/SessionViewer.decision-controls.cjs.map +1 -0
  201. package/dist/data/ai/SessionViewer.decision-controls.d.ts +43 -0
  202. package/dist/data/ai/SessionViewer.decision-controls.d.ts.map +1 -0
  203. package/dist/data/ai/SessionViewer.decision-controls.js +313 -0
  204. package/dist/data/ai/SessionViewer.decision-controls.js.map +1 -0
  205. package/dist/data/ai/SessionViewer.decision.cjs +21 -0
  206. package/dist/data/ai/SessionViewer.decision.cjs.map +1 -0
  207. package/dist/data/ai/SessionViewer.decision.d.ts +12 -0
  208. package/dist/data/ai/SessionViewer.decision.d.ts.map +1 -0
  209. package/dist/data/ai/SessionViewer.decision.js +21 -0
  210. package/dist/data/ai/SessionViewer.decision.js.map +1 -0
  211. package/dist/data/ai/SessionViewer.input.cjs +14 -0
  212. package/dist/data/ai/SessionViewer.input.cjs.map +1 -1
  213. package/dist/data/ai/SessionViewer.input.d.ts +5 -0
  214. package/dist/data/ai/SessionViewer.input.d.ts.map +1 -1
  215. package/dist/data/ai/SessionViewer.input.js +14 -0
  216. package/dist/data/ai/SessionViewer.input.js.map +1 -1
  217. package/dist/data/ai/SessionViewer.js +58 -21
  218. package/dist/data/ai/SessionViewer.js.map +1 -1
  219. package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
  220. package/dist/data/ai/SessionViewer.model.d.ts +4 -0
  221. package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
  222. package/dist/data/ai/SessionViewer.model.js.map +1 -1
  223. package/dist/data/ai/SessionViewer.rows.cjs +6 -3
  224. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
  225. package/dist/data/ai/SessionViewer.rows.d.ts +2 -1
  226. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  227. package/dist/data/ai/SessionViewer.rows.js +6 -3
  228. package/dist/data/ai/SessionViewer.rows.js.map +1 -1
  229. package/dist/data/ai/SessionViewer.tool-row.cjs +29 -237
  230. package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -1
  231. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
  232. package/dist/data/ai/SessionViewer.tool-row.js +27 -235
  233. package/dist/data/ai/SessionViewer.tool-row.js.map +1 -1
  234. package/dist/data/ai/SessionViewer.unified.d.ts +4 -0
  235. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  236. package/dist/data/ai/SessionViewerMenu.cjs +8 -2
  237. package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
  238. package/dist/data/ai/SessionViewerMenu.d.ts +4 -1
  239. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
  240. package/dist/data/ai/SessionViewerMenu.js +8 -2
  241. package/dist/data/ai/SessionViewerMenu.js.map +1 -1
  242. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +28 -17
  243. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  244. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +10 -2
  245. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  246. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +29 -18
  247. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  248. package/dist/data/ai/SpecRuntimeEditor/index.cjs +9 -1
  249. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  250. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +9 -2
  251. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  252. package/dist/data/ai/SpecRuntimeEditor/index.js +9 -1
  253. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  254. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs +1 -1
  255. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js +1 -1
  256. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
  257. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +8 -2
  258. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
  259. package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
  260. package/dist/data/ai/SpecRuntimeEditor/update.cjs +14 -6
  261. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  262. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +1 -0
  263. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  264. package/dist/data/ai/SpecRuntimeEditor/update.js +14 -6
  265. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  266. package/dist/data/ai/approval-request.cjs +75 -0
  267. package/dist/data/ai/approval-request.cjs.map +1 -0
  268. package/dist/data/ai/approval-request.d.ts +155 -0
  269. package/dist/data/ai/approval-request.d.ts.map +1 -0
  270. package/dist/data/ai/approval-request.js +75 -0
  271. package/dist/data/ai/approval-request.js.map +1 -0
  272. package/dist/data/ai/index.d.ts +3 -0
  273. package/dist/data/ai/index.d.ts.map +1 -1
  274. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.cjs +125 -0
  275. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.cjs.map +1 -0
  276. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.d.ts +11 -0
  277. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.d.ts.map +1 -0
  278. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.js +125 -0
  279. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.js.map +1 -0
  280. package/dist/data/ai/runtime-preset-menu/index.d.ts +3 -0
  281. package/dist/data/ai/runtime-preset-menu/index.d.ts.map +1 -0
  282. package/dist/data/ai/runtime-preset-menu/model.cjs +73 -0
  283. package/dist/data/ai/runtime-preset-menu/model.cjs.map +1 -0
  284. package/dist/data/ai/runtime-preset-menu/model.d.ts +13 -0
  285. package/dist/data/ai/runtime-preset-menu/model.d.ts.map +1 -0
  286. package/dist/data/ai/runtime-preset-menu/model.js +73 -0
  287. package/dist/data/ai/runtime-preset-menu/model.js.map +1 -0
  288. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.cjs +149 -0
  289. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.cjs.map +1 -0
  290. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.d.ts +15 -0
  291. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.d.ts.map +1 -0
  292. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.js +149 -0
  293. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.js.map +1 -0
  294. package/dist/data/ai/runtime-spec-fields.cjs +166 -0
  295. package/dist/data/ai/runtime-spec-fields.cjs.map +1 -0
  296. package/dist/data/ai/runtime-spec-fields.d.ts +13 -0
  297. package/dist/data/ai/runtime-spec-fields.d.ts.map +1 -0
  298. package/dist/data/ai/runtime-spec-fields.js +166 -0
  299. package/dist/data/ai/runtime-spec-fields.js.map +1 -0
  300. package/dist/data/ai/session-categories.cjs +4 -0
  301. package/dist/data/ai/session-categories.cjs.map +1 -1
  302. package/dist/data/ai/session-categories.d.ts +1 -0
  303. package/dist/data/ai/session-categories.d.ts.map +1 -1
  304. package/dist/data/ai/session-categories.js +4 -0
  305. package/dist/data/ai/session-categories.js.map +1 -1
  306. package/dist/data/ai/use-session-scroll.cjs +49 -21
  307. package/dist/data/ai/use-session-scroll.cjs.map +1 -1
  308. package/dist/data/ai/use-session-scroll.d.ts +2 -0
  309. package/dist/data/ai/use-session-scroll.d.ts.map +1 -1
  310. package/dist/data/ai/use-session-scroll.js +49 -21
  311. package/dist/data/ai/use-session-scroll.js.map +1 -1
  312. package/dist/data/chat/Chat.runtime.cjs +1 -1
  313. package/dist/data/chat/Chat.runtime.cjs.map +1 -1
  314. package/dist/data/chat/Chat.runtime.d.ts.map +1 -1
  315. package/dist/data/chat/Chat.runtime.js +1 -1
  316. package/dist/data/chat/Chat.runtime.js.map +1 -1
  317. package/dist/data/graph-columns-layout.cjs +216 -0
  318. package/dist/data/graph-columns-layout.cjs.map +1 -0
  319. package/dist/data/graph-columns-layout.d.ts +56 -0
  320. package/dist/data/graph-columns-layout.d.ts.map +1 -0
  321. package/dist/data/graph-columns-layout.js +216 -0
  322. package/dist/data/graph-columns-layout.js.map +1 -0
  323. package/dist/data/graph-diagram-model.cjs +73 -0
  324. package/dist/data/graph-diagram-model.cjs.map +1 -0
  325. package/dist/data/graph-diagram-model.d.ts +90 -0
  326. package/dist/data/graph-diagram-model.d.ts.map +1 -0
  327. package/dist/data/graph-diagram-model.js +73 -0
  328. package/dist/data/graph-diagram-model.js.map +1 -0
  329. package/dist/data/graph-edge-routing.cjs +235 -0
  330. package/dist/data/graph-edge-routing.cjs.map +1 -0
  331. package/dist/data/graph-edge-routing.d.ts +73 -0
  332. package/dist/data/graph-edge-routing.d.ts.map +1 -0
  333. package/dist/data/graph-edge-routing.js +235 -0
  334. package/dist/data/graph-edge-routing.js.map +1 -0
  335. package/dist/data/graph-layout.cjs +0 -82
  336. package/dist/data/graph-layout.cjs.map +1 -1
  337. package/dist/data/graph-layout.d.ts +1 -28
  338. package/dist/data/graph-layout.d.ts.map +1 -1
  339. package/dist/data/graph-layout.js +1 -83
  340. package/dist/data/graph-layout.js.map +1 -1
  341. package/dist/data/har/HarPanel.cjs +129 -33
  342. package/dist/data/har/HarPanel.cjs.map +1 -1
  343. package/dist/data/har/HarPanel.d.ts +13 -1
  344. package/dist/data/har/HarPanel.d.ts.map +1 -1
  345. package/dist/data/har/HarPanel.js +130 -34
  346. package/dist/data/har/HarPanel.js.map +1 -1
  347. package/dist/data/har/fixtures.d.ts +12 -0
  348. package/dist/data/har/fixtures.d.ts.map +1 -1
  349. package/dist/data/har/types.d.ts +12 -0
  350. package/dist/data/har/types.d.ts.map +1 -1
  351. package/dist/data/runtime/RuntimeBar.cjs +67 -84
  352. package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
  353. package/dist/data/runtime/RuntimeBar.d.ts +4 -5
  354. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
  355. package/dist/data/runtime/RuntimeBar.fields.cjs +170 -0
  356. package/dist/data/runtime/RuntimeBar.fields.cjs.map +1 -0
  357. package/dist/data/runtime/RuntimeBar.fields.d.ts +16 -0
  358. package/dist/data/runtime/RuntimeBar.fields.d.ts.map +1 -0
  359. package/dist/data/runtime/RuntimeBar.fields.js +170 -0
  360. package/dist/data/runtime/RuntimeBar.fields.js.map +1 -0
  361. package/dist/data/runtime/RuntimeBar.js +70 -87
  362. package/dist/data/runtime/RuntimeBar.js.map +1 -1
  363. package/dist/data/runtime/RuntimeBar.selection.cjs +56 -0
  364. package/dist/data/runtime/RuntimeBar.selection.cjs.map +1 -0
  365. package/dist/data/runtime/RuntimeBar.selection.d.ts +20 -0
  366. package/dist/data/runtime/RuntimeBar.selection.d.ts.map +1 -0
  367. package/dist/data/runtime/RuntimeBar.selection.js +56 -0
  368. package/dist/data/runtime/RuntimeBar.selection.js.map +1 -0
  369. package/dist/data/runtime/RuntimeBarActions.cjs +10 -6
  370. package/dist/data/runtime/RuntimeBarActions.cjs.map +1 -1
  371. package/dist/data/runtime/RuntimeBarActions.d.ts +8 -1
  372. package/dist/data/runtime/RuntimeBarActions.d.ts.map +1 -1
  373. package/dist/data/runtime/RuntimeBarActions.js +10 -6
  374. package/dist/data/runtime/RuntimeBarActions.js.map +1 -1
  375. package/dist/data/runtime/RuntimeBarIdentity.cjs +166 -0
  376. package/dist/data/runtime/RuntimeBarIdentity.cjs.map +1 -0
  377. package/dist/data/runtime/RuntimeBarIdentity.d.ts +25 -0
  378. package/dist/data/runtime/RuntimeBarIdentity.d.ts.map +1 -0
  379. package/dist/data/runtime/RuntimeBarIdentity.js +166 -0
  380. package/dist/data/runtime/RuntimeBarIdentity.js.map +1 -0
  381. package/dist/data/runtime/RuntimeBarLayout.cjs +95 -0
  382. package/dist/data/runtime/RuntimeBarLayout.cjs.map +1 -0
  383. package/dist/data/runtime/RuntimeBarLayout.d.ts +9 -0
  384. package/dist/data/runtime/RuntimeBarLayout.d.ts.map +1 -0
  385. package/dist/data/runtime/RuntimeBarLayout.js +95 -0
  386. package/dist/data/runtime/RuntimeBarLayout.js.map +1 -0
  387. package/dist/data/runtime/RuntimeBarSegment.cjs +25 -14
  388. package/dist/data/runtime/RuntimeBarSegment.cjs.map +1 -1
  389. package/dist/data/runtime/RuntimeBarSegment.d.ts +4 -0
  390. package/dist/data/runtime/RuntimeBarSegment.d.ts.map +1 -1
  391. package/dist/data/runtime/RuntimeBarSegment.js +25 -14
  392. package/dist/data/runtime/RuntimeBarSegment.js.map +1 -1
  393. package/dist/data/runtime/RuntimeLimitInput.cjs +41 -0
  394. package/dist/data/runtime/RuntimeLimitInput.cjs.map +1 -0
  395. package/dist/data/runtime/RuntimeLimitInput.d.ts +9 -0
  396. package/dist/data/runtime/RuntimeLimitInput.d.ts.map +1 -0
  397. package/dist/data/runtime/RuntimeLimitInput.js +41 -0
  398. package/dist/data/runtime/RuntimeLimitInput.js.map +1 -0
  399. package/dist/data/runtime/use-runtime-bar-overflow.cjs +70 -0
  400. package/dist/data/runtime/use-runtime-bar-overflow.cjs.map +1 -0
  401. package/dist/data/runtime/use-runtime-bar-overflow.d.ts +13 -0
  402. package/dist/data/runtime/use-runtime-bar-overflow.d.ts.map +1 -0
  403. package/dist/data/runtime/use-runtime-bar-overflow.js +70 -0
  404. package/dist/data/runtime/use-runtime-bar-overflow.js.map +1 -0
  405. package/dist/data/use-edge-focus.cjs +20 -0
  406. package/dist/data/use-edge-focus.cjs.map +1 -0
  407. package/dist/data/use-edge-focus.d.ts +23 -0
  408. package/dist/data/use-edge-focus.d.ts.map +1 -0
  409. package/dist/data/use-edge-focus.js +20 -0
  410. package/dist/data/use-edge-focus.js.map +1 -0
  411. package/dist/data/use-pan-zoom.cjs +159 -0
  412. package/dist/data/use-pan-zoom.cjs.map +1 -0
  413. package/dist/data/use-pan-zoom.d.ts +79 -0
  414. package/dist/data/use-pan-zoom.d.ts.map +1 -0
  415. package/dist/data/use-pan-zoom.js +159 -0
  416. package/dist/data/use-pan-zoom.js.map +1 -0
  417. package/dist/data/version-info.cjs +3 -3
  418. package/dist/data/version-info.js +3 -3
  419. package/dist/data.cjs +5 -1
  420. package/dist/data.cjs.map +1 -1
  421. package/dist/data.d.ts +4 -3
  422. package/dist/data.d.ts.map +1 -1
  423. package/dist/data.js +6 -2
  424. package/dist/data.js.map +1 -1
  425. package/dist/index.cjs +5 -1
  426. package/dist/index.cjs.map +1 -1
  427. package/dist/index.js +6 -2
  428. package/dist/index.js.map +1 -1
  429. package/dist/overlay/DropdownMenu.cjs +1 -0
  430. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  431. package/dist/overlay/DropdownMenu.d.ts +4 -0
  432. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  433. package/dist/overlay/DropdownMenu.js +1 -0
  434. package/dist/overlay/DropdownMenu.js.map +1 -1
  435. package/dist/overlay/DropdownMenuSubmenu.cjs +31 -15
  436. package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
  437. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  438. package/dist/overlay/DropdownMenuSubmenu.js +31 -15
  439. package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
  440. package/dist/rpc/OperationCatalog.cjs +3 -1
  441. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  442. package/dist/rpc/OperationCatalog.d.ts +3 -1
  443. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  444. package/dist/rpc/OperationCatalog.js +3 -1
  445. package/dist/rpc/OperationCatalog.js.map +1 -1
  446. package/dist/rpc/useOperationPages.cjs +6 -1
  447. package/dist/rpc/useOperationPages.cjs.map +1 -1
  448. package/dist/rpc/useOperationPages.d.ts +3 -1
  449. package/dist/rpc/useOperationPages.d.ts.map +1 -1
  450. package/dist/rpc/useOperationPages.js +6 -1
  451. package/dist/rpc/useOperationPages.js.map +1 -1
  452. package/dist/styles.css +1 -1
  453. package/package.json +1 -1
  454. package/schemas/json-schema-form.schema.json +5 -0
  455. package/dist/data/runtime/RuntimeBarCombo.cjs +0 -423
  456. package/dist/data/runtime/RuntimeBarCombo.cjs.map +0 -1
  457. package/dist/data/runtime/RuntimeBarCombo.d.ts +0 -33
  458. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +0 -1
  459. package/dist/data/runtime/RuntimeBarCombo.js +0 -423
  460. package/dist/data/runtime/RuntimeBarCombo.js.map +0 -1
  461. package/dist/data/runtime/RuntimeBarLimits.cjs +0 -262
  462. package/dist/data/runtime/RuntimeBarLimits.cjs.map +0 -1
  463. package/dist/data/runtime/RuntimeBarLimits.d.ts +0 -17
  464. package/dist/data/runtime/RuntimeBarLimits.d.ts.map +0 -1
  465. package/dist/data/runtime/RuntimeBarLimits.js +0 -262
  466. package/dist/data/runtime/RuntimeBarLimits.js.map +0 -1
  467. package/dist/data/runtime/RuntimeBarSegments.cjs +0 -346
  468. package/dist/data/runtime/RuntimeBarSegments.cjs.map +0 -1
  469. package/dist/data/runtime/RuntimeBarSegments.d.ts +0 -37
  470. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +0 -1
  471. package/dist/data/runtime/RuntimeBarSegments.js +0 -346
  472. package/dist/data/runtime/RuntimeBarSegments.js.map +0 -1
@@ -1,346 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { InputField } from "../../components/InputField.js";
3
- import { cn } from "../../lib/utils.js";
4
- import { Icon } from "../Icon.js";
5
- import { effortLevelLabel, effortLevelIcon, effortLevelColor } from "../chat/effort-icons.js";
6
- import { providerIcon } from "../chat/provider-icons.js";
7
- import { runtimeFamilyBrand } from "./RuntimeBar.model.js";
8
- import { TimeoutSegment, CostSegment } from "./RuntimeBarLimits.js";
9
- import { RuntimeSegment, SEGMENT_CAPTION_CLASS, SEGMENT_KEY_CLASS, SegmentItemLabel } from "./RuntimeBarSegment.js";
10
- import { isUnavailable } from "./availability.js";
11
- import { modelsForFamily } from "./runtime-mode.js";
12
- import { UNSPECIFIED_LABEL, unspecifiedHint, UNSPECIFIED_ID, UNSPECIFIED_HINT } from "./unspecified.js";
13
- function RuntimeBarSegments({
14
- value,
15
- models,
16
- modelOptions,
17
- resolvedModel,
18
- selectedModelUnavailable,
19
- inheritedModelLabel,
20
- families,
21
- family,
22
- mode,
23
- selectedMode,
24
- reasoningEfforts,
25
- supportedEfforts,
26
- locked,
27
- showModel,
28
- showEffort,
29
- showTimeout,
30
- showCost,
31
- actions,
32
- ariaLabel,
33
- className,
34
- onModeChange,
35
- onCustomModel,
36
- onModelSelect,
37
- onModelClear,
38
- onEffortChange,
39
- onTimeoutChange,
40
- onCostChange
41
- }) {
42
- var _a, _b;
43
- const brand = runtimeFamilyBrand(family);
44
- const modelLabel = selectedModelUnavailable ? "Unavailable selection" : (resolvedModel == null ? void 0 : resolvedModel.label) ?? value.model ?? UNSPECIFIED_LABEL;
45
- const showEffortSegment = showEffort && supportedEfforts.length > 0;
46
- return /* @__PURE__ */ jsxs(
47
- "div",
48
- {
49
- role: "group",
50
- "aria-label": ariaLabel,
51
- className: cn(
52
- "inline-flex w-fit max-w-full flex-wrap items-stretch overflow-hidden rounded-md border border-input bg-background max-sm:w-full",
53
- className
54
- ),
55
- children: [
56
- /* @__PURE__ */ jsxs(
57
- "div",
58
- {
59
- "data-runtime-bar-section": "identity",
60
- className: "flex h-control-h min-w-0 max-w-full items-stretch max-sm:grow",
61
- children: [
62
- /* @__PURE__ */ jsxs(
63
- RuntimeSegment,
64
- {
65
- menuLabel: "Family",
66
- title: `Family — ${family.label}`,
67
- disabled: locked,
68
- items: familyItems({
69
- families,
70
- models,
71
- selectedId: family.id,
72
- onSelect: (familyId) => onModeChange(familyId, selectedMode)
73
- }),
74
- children: [
75
- brand.icon && /* @__PURE__ */ jsx(
76
- Icon,
77
- {
78
- icon: brand.icon,
79
- className: cn("size-4 shrink-0", brand.color)
80
- }
81
- ),
82
- /* @__PURE__ */ jsx(
83
- "span",
84
- {
85
- className: cn(SEGMENT_CAPTION_CLASS, brand.icon && "max-sm:sr-only"),
86
- children: family.label
87
- }
88
- )
89
- ]
90
- }
91
- ),
92
- /* @__PURE__ */ jsxs(
93
- RuntimeSegment,
94
- {
95
- menuLabel: "Runtime mode",
96
- title: mode.title ?? "Runtime mode",
97
- disabled: locked,
98
- items: modeItems({
99
- family,
100
- selectedId: selectedMode,
101
- onSelect: (modeId) => onModeChange(family.id, modeId)
102
- }),
103
- children: [
104
- mode.icon && /* @__PURE__ */ jsx(
105
- Icon,
106
- {
107
- icon: mode.icon,
108
- className: "size-4 shrink-0 text-muted-foreground"
109
- }
110
- ),
111
- /* @__PURE__ */ jsx("span", { className: SEGMENT_CAPTION_CLASS, children: mode.label })
112
- ]
113
- }
114
- ),
115
- showModel && /* @__PURE__ */ jsx(
116
- RuntimeSegment,
117
- {
118
- menuLabel: "Model",
119
- title: selectedModelUnavailable ? "Model — unavailable selection" : value.model ? `Model — ${value.model}` : "Model — unspecified",
120
- disabled: locked,
121
- className: "min-w-0 max-w-56 flex-1 max-sm:max-w-none",
122
- header: /* @__PURE__ */ jsxs("div", { className: "grid gap-1", children: [
123
- /* @__PURE__ */ jsx("span", { className: SEGMENT_KEY_CLASS, children: "Model id" }),
124
- /* @__PURE__ */ jsx(
125
- InputField,
126
- {
127
- value: selectedModelUnavailable ? "" : value.model ?? "",
128
- onChange: onCustomModel,
129
- ...selectedModelUnavailable ? { placeholder: "Unavailable selection" } : {},
130
- "aria-label": "Model id",
131
- disabled: locked,
132
- inputClassName: "font-mono text-xs",
133
- className: "bg-background"
134
- }
135
- )
136
- ] }),
137
- items: modelItems({
138
- models: modelOptions,
139
- group: `${family.label} models`,
140
- selectedId: selectedModelUnavailable ? void 0 : (resolvedModel == null ? void 0 : resolvedModel.id) ?? value.model,
141
- inheritedLabel: inheritedModelLabel,
142
- onSelect: onModelSelect,
143
- onClear: onModelClear
144
- }),
145
- children: /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate font-mono text-xs text-foreground", children: modelLabel })
146
- }
147
- )
148
- ]
149
- }
150
- ),
151
- (showEffortSegment || showTimeout || showCost) && /* @__PURE__ */ jsxs(
152
- "div",
153
- {
154
- "data-runtime-bar-section": "settings",
155
- className: "-ml-px -mt-px flex h-control-h min-w-0 items-stretch border-l border-t border-border max-sm:w-full max-sm:[&>div]:flex-1",
156
- children: [
157
- showEffortSegment && /* @__PURE__ */ jsxs(
158
- RuntimeSegment,
159
- {
160
- menuLabel: "Reasoning effort",
161
- title: "Reasoning effort",
162
- items: effortItems({
163
- offered: effortUniverse(
164
- reasoningEfforts,
165
- supportedEfforts,
166
- value.effort
167
- ),
168
- supported: supportedEfforts,
169
- selected: value.effort,
170
- onSelect: onEffortChange
171
- }),
172
- children: [
173
- /* @__PURE__ */ jsx("span", { className: cn(SEGMENT_KEY_CLASS, "min-w-0 truncate"), children: "Effort" }),
174
- /* @__PURE__ */ jsx(EffortGlyph, { effort: value.effort }),
175
- /* @__PURE__ */ jsx("span", { className: cn(SEGMENT_CAPTION_CLASS, "shrink-0"), children: value.effort ? effortLevelLabel(value.effort) : UNSPECIFIED_LABEL })
176
- ]
177
- }
178
- ),
179
- showTimeout && /* @__PURE__ */ jsx(
180
- TimeoutSegment,
181
- {
182
- value: (_a = value.budget) == null ? void 0 : _a.timeout,
183
- onChange: onTimeoutChange
184
- }
185
- ),
186
- showCost && /* @__PURE__ */ jsx(CostSegment, { value: (_b = value.budget) == null ? void 0 : _b.cost, onChange: onCostChange })
187
- ]
188
- }
189
- ),
190
- actions
191
- ]
192
- }
193
- );
194
- }
195
- function EffortGlyph({ effort }) {
196
- const glyph = effort ? effortLevelIcon(effort) : void 0;
197
- if (!glyph) return null;
198
- return /* @__PURE__ */ jsx(
199
- Icon,
200
- {
201
- icon: glyph,
202
- className: cn(
203
- "size-4 shrink-0",
204
- effort ? effortLevelColor(effort) : void 0
205
- )
206
- }
207
- );
208
- }
209
- function familyItems({
210
- families,
211
- models,
212
- selectedId,
213
- onSelect
214
- }) {
215
- return families.filter(
216
- (family) => family.modes.some((mode) => !isUnavailable(mode.availability))
217
- ).map((family) => {
218
- const brand = runtimeFamilyBrand(family);
219
- const count = modelsForFamily(models, family).length;
220
- return {
221
- group: "Family",
222
- label: /* @__PURE__ */ jsx(
223
- SegmentItemLabel,
224
- {
225
- text: family.label,
226
- ...count > 0 ? { hint: `${count} models` } : {},
227
- selected: family.id === selectedId
228
- }
229
- ),
230
- ...brand.icon ? { icon: brand.icon } : {},
231
- onSelect: () => onSelect(family.id)
232
- };
233
- });
234
- }
235
- function modeItems({
236
- family,
237
- selectedId,
238
- onSelect
239
- }) {
240
- return family.modes.filter((mode) => !isUnavailable(mode.availability)).map((mode) => ({
241
- group: "Mode · runtime",
242
- label: /* @__PURE__ */ jsx(
243
- SegmentItemLabel,
244
- {
245
- text: mode.label,
246
- ...mode.title ? { hint: mode.title } : {},
247
- selected: mode.id === selectedId
248
- }
249
- ),
250
- ...mode.icon ? { icon: mode.icon } : {},
251
- ...mode.title ? { title: mode.title } : {},
252
- onSelect: () => onSelect(mode.id)
253
- }));
254
- }
255
- function modelItems({
256
- models,
257
- group,
258
- selectedId,
259
- inheritedLabel,
260
- onSelect,
261
- onClear
262
- }) {
263
- const clear = {
264
- group: "Model",
265
- label: /* @__PURE__ */ jsx(
266
- SegmentItemLabel,
267
- {
268
- text: UNSPECIFIED_LABEL,
269
- hint: unspecifiedHint(inheritedLabel),
270
- selected: !selectedId
271
- }
272
- ),
273
- onSelect: onClear
274
- };
275
- return [
276
- clear,
277
- ...models.map((model) => {
278
- const glyph = providerIcon(
279
- model.provider
280
- );
281
- return {
282
- group,
283
- label: /* @__PURE__ */ jsx(
284
- SegmentItemLabel,
285
- {
286
- text: model.label,
287
- ...model.id === model.label ? {} : { hint: model.id },
288
- selected: model.id === selectedId,
289
- stacked: true
290
- }
291
- ),
292
- ...glyph ? { icon: glyph } : {},
293
- onSelect: () => onSelect(model)
294
- };
295
- })
296
- ];
297
- }
298
- function effortItems({
299
- offered,
300
- supported,
301
- selected,
302
- onSelect
303
- }) {
304
- const current = (selected == null ? void 0 : selected.trim()) ?? UNSPECIFIED_ID;
305
- const none = {
306
- group: "Reasoning effort",
307
- label: /* @__PURE__ */ jsx(
308
- SegmentItemLabel,
309
- {
310
- text: UNSPECIFIED_LABEL,
311
- hint: UNSPECIFIED_HINT,
312
- selected: current === UNSPECIFIED_ID
313
- }
314
- ),
315
- onSelect: () => onSelect(UNSPECIFIED_ID)
316
- };
317
- return [
318
- none,
319
- ...offered.map((effort) => {
320
- const glyph = effortLevelIcon(effort);
321
- const usable = supported.includes(effort);
322
- return {
323
- group: "Reasoning effort",
324
- label: /* @__PURE__ */ jsx(
325
- SegmentItemLabel,
326
- {
327
- text: effortLevelLabel(effort),
328
- ...usable ? {} : { hint: "unsupported" },
329
- selected: effort === current
330
- }
331
- ),
332
- ...glyph ? { icon: glyph } : {},
333
- disabled: !usable,
334
- onSelect: () => onSelect(effort)
335
- };
336
- })
337
- ];
338
- }
339
- function effortUniverse(offered, supported, selected) {
340
- const all = [...offered, ...supported, selected ?? ""].map((effort) => effort.trim()).filter(Boolean);
341
- return [...new Set(all)];
342
- }
343
- export {
344
- RuntimeBarSegments
345
- };
346
- //# sourceMappingURL=RuntimeBarSegments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimeBarSegments.js","sources":["../../../src/data/runtime/RuntimeBarSegments.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { InputField } from \"../../components/InputField\";\nimport { cn } from \"../../lib/utils\";\nimport type { DropdownMenuItem } from \"../../overlay/DropdownMenu\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport {\n effortLevelColor,\n effortLevelIcon,\n effortLevelLabel,\n} from \"../chat/effort-icons\";\nimport { providerIcon } from \"../chat/provider-icons\";\nimport type { ChatModel } from \"../chat/types\";\nimport { runtimeFamilyBrand } from \"./RuntimeBar.model\";\nimport type { RuntimeBarValue } from \"./RuntimeBar\";\nimport { CostSegment, TimeoutSegment } from \"./RuntimeBarLimits\";\nimport {\n RuntimeSegment,\n SEGMENT_CAPTION_CLASS,\n SEGMENT_KEY_CLASS,\n SegmentItemLabel,\n} from \"./RuntimeBarSegment\";\nimport { isUnavailable } from \"./availability\";\nimport {\n modelsForFamily,\n type SpecRuntimeFamily,\n type SpecRuntimeModeOption,\n} from \"./runtime-mode\";\nimport {\n UNSPECIFIED_HINT,\n UNSPECIFIED_ID,\n UNSPECIFIED_LABEL,\n unspecifiedHint,\n} from \"./unspecified\";\n\nexport type RuntimeBarSegmentsProps = {\n value: RuntimeBarValue;\n models: ChatModel[];\n modelOptions: ChatModel[];\n resolvedModel: ChatModel | undefined;\n selectedModelUnavailable: boolean;\n /** Display name of the model this layer would inherit when unspecified. */\n inheritedModelLabel?: string | undefined;\n families: SpecRuntimeFamily[];\n family: SpecRuntimeFamily;\n mode: SpecRuntimeModeOption;\n selectedMode: string;\n reasoningEfforts: string[];\n supportedEfforts: string[];\n locked: boolean;\n showModel: boolean;\n showEffort: boolean;\n showTimeout: boolean;\n showCost: boolean;\n /** Trailing spec-level section fused onto the bar (see `RuntimeBarActions`). */\n actions?: ReactNode | undefined;\n ariaLabel: string;\n className?: string | undefined;\n onModeChange: (familyId: string, modeId: string) => void;\n onCustomModel: (model: string) => void;\n onModelSelect: (model: ChatModel) => void;\n onModelClear: () => void;\n onEffortChange: (effort: string) => void;\n onTimeoutChange: (timeout: string | undefined) => void;\n onCostChange: (cost: number | undefined) => void;\n};\n\nexport function RuntimeBarSegments({\n value,\n models,\n modelOptions,\n resolvedModel,\n selectedModelUnavailable,\n inheritedModelLabel,\n families,\n family,\n mode,\n selectedMode,\n reasoningEfforts,\n supportedEfforts,\n locked,\n showModel,\n showEffort,\n showTimeout,\n showCost,\n actions,\n ariaLabel,\n className,\n onModeChange,\n onCustomModel,\n onModelSelect,\n onModelClear,\n onEffortChange,\n onTimeoutChange,\n onCostChange,\n}: RuntimeBarSegmentsProps) {\n const brand = runtimeFamilyBrand(family);\n const modelLabel = selectedModelUnavailable\n ? \"Unavailable selection\"\n : (resolvedModel?.label ?? value.model ?? UNSPECIFIED_LABEL);\n const showEffortSegment = showEffort && supportedEfforts.length > 0;\n\n // Identity and settings wrap as two units, so a narrow bar drops its settings\n // onto a second row instead of clipping them. The settings row carries both a\n // left and a top divider, pulled 1px outside the bar's padding box; the bar's\n // overflow clipping hides whichever one does not apply to the current wrap.\n return (\n <div\n role=\"group\"\n aria-label={ariaLabel}\n className={cn(\n \"inline-flex w-fit max-w-full flex-wrap items-stretch overflow-hidden rounded-md border border-input bg-background max-sm:w-full\",\n className,\n )}\n >\n <div\n data-runtime-bar-section=\"identity\"\n className=\"flex h-control-h min-w-0 max-w-full items-stretch max-sm:grow\"\n >\n <RuntimeSegment\n menuLabel=\"Family\"\n title={`Family — ${family.label}`}\n disabled={locked}\n items={familyItems({\n families,\n models,\n selectedId: family.id,\n onSelect: (familyId) => onModeChange(familyId, selectedMode),\n })}\n >\n {brand.icon && (\n <Icon\n icon={brand.icon}\n className={cn(\"size-4 shrink-0\", brand.color)}\n />\n )}\n <span\n className={cn(SEGMENT_CAPTION_CLASS, brand.icon && \"max-sm:sr-only\")}\n >\n {family.label}\n </span>\n </RuntimeSegment>\n <RuntimeSegment\n menuLabel=\"Runtime mode\"\n title={mode.title ?? \"Runtime mode\"}\n disabled={locked}\n items={modeItems({\n family,\n selectedId: selectedMode,\n onSelect: (modeId) => onModeChange(family.id, modeId),\n })}\n >\n {mode.icon && (\n <Icon\n icon={mode.icon}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n )}\n <span className={SEGMENT_CAPTION_CLASS}>{mode.label}</span>\n </RuntimeSegment>\n {showModel && (\n <RuntimeSegment\n menuLabel=\"Model\"\n title={\n selectedModelUnavailable\n ? \"Model — unavailable selection\"\n : value.model\n ? `Model — ${value.model}`\n : \"Model — unspecified\"\n }\n disabled={locked}\n className=\"min-w-0 max-w-56 flex-1 max-sm:max-w-none\"\n header={\n <div className=\"grid gap-1\">\n <span className={SEGMENT_KEY_CLASS}>Model id</span>\n <InputField\n value={selectedModelUnavailable ? \"\" : (value.model ?? \"\")}\n onChange={onCustomModel}\n {...(selectedModelUnavailable\n ? { placeholder: \"Unavailable selection\" }\n : {})}\n aria-label=\"Model id\"\n disabled={locked}\n inputClassName=\"font-mono text-xs\"\n className=\"bg-background\"\n />\n </div>\n }\n items={modelItems({\n models: modelOptions,\n group: `${family.label} models`,\n selectedId: selectedModelUnavailable\n ? undefined\n : (resolvedModel?.id ?? value.model),\n inheritedLabel: inheritedModelLabel,\n onSelect: onModelSelect,\n onClear: onModelClear,\n })}\n >\n <span className=\"min-w-0 truncate font-mono text-xs text-foreground\">\n {modelLabel}\n </span>\n </RuntimeSegment>\n )}\n </div>\n {(showEffortSegment || showTimeout || showCost) && (\n <div\n data-runtime-bar-section=\"settings\"\n className=\"-ml-px -mt-px flex h-control-h min-w-0 items-stretch border-l border-t border-border max-sm:w-full max-sm:[&>div]:flex-1\"\n >\n {showEffortSegment && (\n <RuntimeSegment\n menuLabel=\"Reasoning effort\"\n title=\"Reasoning effort\"\n items={effortItems({\n offered: effortUniverse(\n reasoningEfforts,\n supportedEfforts,\n value.effort,\n ),\n supported: supportedEfforts,\n selected: value.effort,\n onSelect: onEffortChange,\n })}\n >\n <span className={cn(SEGMENT_KEY_CLASS, \"min-w-0 truncate\")}>\n Effort\n </span>\n <EffortGlyph effort={value.effort} />\n <span className={cn(SEGMENT_CAPTION_CLASS, \"shrink-0\")}>\n {value.effort ? effortLevelLabel(value.effort) : UNSPECIFIED_LABEL}\n </span>\n </RuntimeSegment>\n )}\n {showTimeout && (\n <TimeoutSegment\n value={value.budget?.timeout}\n onChange={onTimeoutChange}\n />\n )}\n {showCost && (\n <CostSegment value={value.budget?.cost} onChange={onCostChange} />\n )}\n </div>\n )}\n {actions}\n </div>\n );\n}\n\nfunction EffortGlyph({ effort }: { effort?: string | undefined }) {\n const glyph = effort ? effortLevelIcon(effort) : undefined;\n if (!glyph) return null;\n return (\n <Icon\n icon={glyph}\n className={cn(\n \"size-4 shrink-0\",\n effort ? effortLevelColor(effort) : undefined,\n )}\n />\n );\n}\n\nfunction familyItems({\n families,\n models,\n selectedId,\n onSelect,\n}: {\n families: SpecRuntimeFamily[];\n models: ChatModel[];\n selectedId: string;\n onSelect: (familyId: string) => void;\n}): DropdownMenuItem[] {\n return families\n .filter((family) =>\n family.modes.some((mode) => !isUnavailable(mode.availability)),\n )\n .map((family) => {\n const brand = runtimeFamilyBrand(family);\n const count = modelsForFamily(models, family).length;\n return {\n group: \"Family\",\n label: (\n <SegmentItemLabel\n text={family.label}\n {...(count > 0 ? { hint: `${count} models` } : {})}\n selected={family.id === selectedId}\n />\n ),\n ...(brand.icon ? { icon: brand.icon } : {}),\n onSelect: () => onSelect(family.id),\n };\n });\n}\n\nfunction modeItems({\n family,\n selectedId,\n onSelect,\n}: {\n family: SpecRuntimeFamily;\n selectedId: string;\n onSelect: (modeId: string) => void;\n}): DropdownMenuItem[] {\n return family.modes\n .filter((mode) => !isUnavailable(mode.availability))\n .map((mode) => ({\n group: \"Mode · runtime\",\n label: (\n <SegmentItemLabel\n text={mode.label}\n {...(mode.title ? { hint: mode.title } : {})}\n selected={mode.id === selectedId}\n />\n ),\n ...(mode.icon ? { icon: mode.icon } : {}),\n ...(mode.title ? { title: mode.title } : {}),\n onSelect: () => onSelect(mode.id),\n }));\n}\n\nfunction modelItems({\n models,\n group,\n selectedId,\n inheritedLabel,\n onSelect,\n onClear,\n}: {\n models: ChatModel[];\n group: string;\n selectedId?: string | undefined;\n inheritedLabel?: string | undefined;\n onSelect: (model: ChatModel) => void;\n onClear: () => void;\n}): DropdownMenuItem[] {\n const clear: DropdownMenuItem = {\n group: \"Model\",\n label: (\n <SegmentItemLabel\n text={UNSPECIFIED_LABEL}\n hint={unspecifiedHint(inheritedLabel)}\n selected={!selectedId}\n />\n ),\n onSelect: onClear,\n };\n return [\n clear,\n ...models.map((model) => {\n const glyph: StaticIconComponent | undefined = providerIcon(\n model.provider,\n );\n return {\n group,\n label: (\n <SegmentItemLabel\n text={model.label}\n {...(model.id === model.label ? {} : { hint: model.id })}\n selected={model.id === selectedId}\n stacked\n />\n ),\n ...(glyph ? { icon: glyph } : {}),\n onSelect: () => onSelect(model),\n };\n }),\n ];\n}\n\nfunction effortItems({\n offered,\n supported,\n selected,\n onSelect,\n}: {\n offered: string[];\n supported: string[];\n selected?: string | undefined;\n onSelect: (effort: string) => void;\n}): DropdownMenuItem[] {\n const current = selected?.trim() ?? UNSPECIFIED_ID;\n const none: DropdownMenuItem = {\n group: \"Reasoning effort\",\n label: (\n <SegmentItemLabel\n text={UNSPECIFIED_LABEL}\n hint={UNSPECIFIED_HINT}\n selected={current === UNSPECIFIED_ID}\n />\n ),\n onSelect: () => onSelect(UNSPECIFIED_ID),\n };\n return [\n none,\n ...offered.map((effort) => {\n const glyph = effortLevelIcon(effort);\n const usable = supported.includes(effort);\n return {\n group: \"Reasoning effort\",\n label: (\n <SegmentItemLabel\n text={effortLevelLabel(effort)}\n {...(usable ? {} : { hint: \"unsupported\" })}\n selected={effort === current}\n />\n ),\n ...(glyph ? { icon: glyph } : {}),\n disabled: !usable,\n onSelect: () => onSelect(effort),\n };\n }),\n ];\n}\n\nfunction effortUniverse(\n offered: readonly string[],\n supported: readonly string[],\n selected: string | undefined,\n): string[] {\n const all = [...offered, ...supported, selected ?? \"\"]\n .map((effort) => effort.trim())\n .filter(Boolean);\n return [...new Set(all)];\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAkEO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;;AAC1B,QAAM,QAAQ,mBAAmB,MAAM;AACvC,QAAM,aAAa,2BACf,2BACC,+CAAe,UAAS,MAAM,SAAS;AAC5C,QAAM,oBAAoB,cAAc,iBAAiB,SAAS;AAMlE,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAY;AAAA,MACZ,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,4BAAyB;AAAA,YACzB,WAAU;AAAA,YAEV,UAAA;AAAA,cAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OAAO,YAAY,OAAO,KAAK;AAAA,kBAC/B,UAAU;AAAA,kBACV,OAAO,YAAY;AAAA,oBACjB;AAAA,oBACA;AAAA,oBACA,YAAY,OAAO;AAAA,oBACnB,UAAU,CAAC,aAAa,aAAa,UAAU,YAAY;AAAA,kBAAA,CAC5D;AAAA,kBAEA,UAAA;AAAA,oBAAA,MAAM,QACL;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,MAAM,MAAM;AAAA,wBACZ,WAAW,GAAG,mBAAmB,MAAM,KAAK;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAGhD;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,WAAW,GAAG,uBAAuB,MAAM,QAAQ,gBAAgB;AAAA,wBAElE,UAAA,OAAO;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACV;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEF;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OAAO,KAAK,SAAS;AAAA,kBACrB,UAAU;AAAA,kBACV,OAAO,UAAU;AAAA,oBACf;AAAA,oBACA,YAAY;AAAA,oBACZ,UAAU,CAAC,WAAW,aAAa,OAAO,IAAI,MAAM;AAAA,kBAAA,CACrD;AAAA,kBAEA,UAAA;AAAA,oBAAA,KAAK,QACJ;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,MAAM,KAAK;AAAA,wBACX,WAAU;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAGd,oBAAC,QAAA,EAAK,WAAW,uBAAwB,eAAK,MAAA,CAAM;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAErD,aACC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OACE,2BACI,kCACA,MAAM,QACJ,WAAW,MAAM,KAAK,KACtB;AAAA,kBAER,UAAU;AAAA,kBACV,WAAU;AAAA,kBACV,QACE,qBAAC,OAAA,EAAI,WAAU,cACb,UAAA;AAAA,oBAAA,oBAAC,QAAA,EAAK,WAAW,mBAAmB,UAAA,YAAQ;AAAA,oBAC5C;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO,2BAA2B,KAAM,MAAM,SAAS;AAAA,wBACvD,UAAU;AAAA,wBACT,GAAI,2BACD,EAAE,aAAa,wBAAA,IACf,CAAA;AAAA,wBACJ,cAAW;AAAA,wBACX,UAAU;AAAA,wBACV,gBAAe;AAAA,wBACf,WAAU;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACZ,GACF;AAAA,kBAEF,OAAO,WAAW;AAAA,oBAChB,QAAQ;AAAA,oBACR,OAAO,GAAG,OAAO,KAAK;AAAA,oBACtB,YAAY,2BACR,UACC,+CAAe,OAAM,MAAM;AAAA,oBAChC,gBAAgB;AAAA,oBAChB,UAAU;AAAA,oBACV,SAAS;AAAA,kBAAA,CACV;AAAA,kBAED,UAAA,oBAAC,QAAA,EAAK,WAAU,sDACb,UAAA,WAAA,CACH;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,SAGF,qBAAqB,eAAe,aACpC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,4BAAyB;AAAA,YACzB,WAAU;AAAA,YAET,UAAA;AAAA,cAAA,qBACC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OAAM;AAAA,kBACN,OAAO,YAAY;AAAA,oBACjB,SAAS;AAAA,sBACP;AAAA,sBACA;AAAA,sBACA,MAAM;AAAA,oBAAA;AAAA,oBAER,WAAW;AAAA,oBACX,UAAU,MAAM;AAAA,oBAChB,UAAU;AAAA,kBAAA,CACX;AAAA,kBAED,UAAA;AAAA,oBAAA,oBAAC,UAAK,WAAW,GAAG,mBAAmB,kBAAkB,GAAG,UAAA,UAE5D;AAAA,oBACA,oBAAC,aAAA,EAAY,QAAQ,MAAM,OAAA,CAAQ;AAAA,oBACnC,oBAAC,QAAA,EAAK,WAAW,GAAG,uBAAuB,UAAU,GAClD,UAAA,MAAM,SAAS,iBAAiB,MAAM,MAAM,IAAI,kBAAA,CACnD;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGH,eACC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,QAAO,WAAM,WAAN,mBAAc;AAAA,kBACrB,UAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGb,gCACE,aAAA,EAAY,QAAO,WAAM,WAAN,mBAAc,MAAM,UAAU,aAAA,CAAc;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAIrE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAAS,YAAY,EAAE,UAA2C;AAChE,QAAM,QAAQ,SAAS,gBAAgB,MAAM,IAAI;AACjD,MAAI,CAAC,MAAO,QAAO;AACnB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,WAAW;AAAA,QACT;AAAA,QACA,SAAS,iBAAiB,MAAM,IAAI;AAAA,MAAA;AAAA,IACtC;AAAA,EAAA;AAGN;AAEA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKuB;AACrB,SAAO,SACJ;AAAA,IAAO,CAAC,WACP,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,cAAc,KAAK,YAAY,CAAC;AAAA,EAAA,EAE9D,IAAI,CAAC,WAAW;AACf,UAAM,QAAQ,mBAAmB,MAAM;AACvC,UAAM,QAAQ,gBAAgB,QAAQ,MAAM,EAAE;AAC9C,WAAO;AAAA,MACL,OAAO;AAAA,MACP,OACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM,OAAO;AAAA,UACZ,GAAI,QAAQ,IAAI,EAAE,MAAM,GAAG,KAAK,UAAA,IAAc,CAAA;AAAA,UAC/C,UAAU,OAAO,OAAO;AAAA,QAAA;AAAA,MAAA;AAAA,MAG5B,GAAI,MAAM,OAAO,EAAE,MAAM,MAAM,KAAA,IAAS,CAAA;AAAA,MACxC,UAAU,MAAM,SAAS,OAAO,EAAE;AAAA,IAAA;AAAA,EAEtC,CAAC;AACL;AAEA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AACF,GAIuB;AACrB,SAAO,OAAO,MACX,OAAO,CAAC,SAAS,CAAC,cAAc,KAAK,YAAY,CAAC,EAClD,IAAI,CAAC,UAAU;AAAA,IACd,OAAO;AAAA,IACP,OACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,KAAK;AAAA,QACV,GAAI,KAAK,QAAQ,EAAE,MAAM,KAAK,MAAA,IAAU,CAAA;AAAA,QACzC,UAAU,KAAK,OAAO;AAAA,MAAA;AAAA,IAAA;AAAA,IAG1B,GAAI,KAAK,OAAO,EAAE,MAAM,KAAK,KAAA,IAAS,CAAA;AAAA,IACtC,GAAI,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAA,IAAU,CAAA;AAAA,IACzC,UAAU,MAAM,SAAS,KAAK,EAAE;AAAA,EAAA,EAChC;AACN;AAEA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOuB;AACrB,QAAM,QAA0B;AAAA,IAC9B,OAAO;AAAA,IACP,OACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,MAAM,gBAAgB,cAAc;AAAA,QACpC,UAAU,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGf,UAAU;AAAA,EAAA;AAEZ,SAAO;AAAA,IACL;AAAA,IACA,GAAG,OAAO,IAAI,CAAC,UAAU;AACvB,YAAM,QAAyC;AAAA,QAC7C,MAAM;AAAA,MAAA;AAER,aAAO;AAAA,QACL;AAAA,QACA,OACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM,MAAM;AAAA,YACX,GAAI,MAAM,OAAO,MAAM,QAAQ,CAAA,IAAK,EAAE,MAAM,MAAM,GAAA;AAAA,YACnD,UAAU,MAAM,OAAO;AAAA,YACvB,SAAO;AAAA,UAAA;AAAA,QAAA;AAAA,QAGX,GAAI,QAAQ,EAAE,MAAM,MAAA,IAAU,CAAA;AAAA,QAC9B,UAAU,MAAM,SAAS,KAAK;AAAA,MAAA;AAAA,IAElC,CAAC;AAAA,EAAA;AAEL;AAEA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKuB;AACrB,QAAM,WAAU,qCAAU,WAAU;AACpC,QAAM,OAAyB;AAAA,IAC7B,OAAO;AAAA,IACP,OACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU,YAAY;AAAA,MAAA;AAAA,IAAA;AAAA,IAG1B,UAAU,MAAM,SAAS,cAAc;AAAA,EAAA;AAEzC,SAAO;AAAA,IACL;AAAA,IACA,GAAG,QAAQ,IAAI,CAAC,WAAW;AACzB,YAAM,QAAQ,gBAAgB,MAAM;AACpC,YAAM,SAAS,UAAU,SAAS,MAAM;AACxC,aAAO;AAAA,QACL,OAAO;AAAA,QACP,OACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM,iBAAiB,MAAM;AAAA,YAC5B,GAAI,SAAS,CAAA,IAAK,EAAE,MAAM,cAAA;AAAA,YAC3B,UAAU,WAAW;AAAA,UAAA;AAAA,QAAA;AAAA,QAGzB,GAAI,QAAQ,EAAE,MAAM,MAAA,IAAU,CAAA;AAAA,QAC9B,UAAU,CAAC;AAAA,QACX,UAAU,MAAM,SAAS,MAAM;AAAA,MAAA;AAAA,IAEnC,CAAC;AAAA,EAAA;AAEL;AAEA,SAAS,eACP,SACA,WACA,UACU;AACV,QAAM,MAAM,CAAC,GAAG,SAAS,GAAG,WAAW,YAAY,EAAE,EAClD,IAAI,CAAC,WAAW,OAAO,MAAM,EAC7B,OAAO,OAAO;AACjB,SAAO,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC;AACzB;"}