@flanksource/clicky-ui 0.3.41 → 0.3.43

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 (487) 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/profiles/fields/profileFieldFilterEditor.cjs +5 -2
  441. package/dist/profiles/fields/profileFieldFilterEditor.cjs.map +1 -1
  442. package/dist/profiles/fields/profileFieldFilterEditor.js +5 -2
  443. package/dist/profiles/fields/profileFieldFilterEditor.js.map +1 -1
  444. package/dist/profiles/fields/profileFieldIcons.cjs +2 -0
  445. package/dist/profiles/fields/profileFieldIcons.cjs.map +1 -1
  446. package/dist/profiles/fields/profileFieldIcons.d.ts.map +1 -1
  447. package/dist/profiles/fields/profileFieldIcons.js +2 -0
  448. package/dist/profiles/fields/profileFieldIcons.js.map +1 -1
  449. package/dist/profiles/wizard/profileWizardModel.cjs +1 -0
  450. package/dist/profiles/wizard/profileWizardModel.cjs.map +1 -1
  451. package/dist/profiles/wizard/profileWizardModel.d.ts +3 -0
  452. package/dist/profiles/wizard/profileWizardModel.d.ts.map +1 -1
  453. package/dist/profiles/wizard/profileWizardModel.js +1 -0
  454. package/dist/profiles/wizard/profileWizardModel.js.map +1 -1
  455. package/dist/rpc/OperationCatalog.cjs +3 -1
  456. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  457. package/dist/rpc/OperationCatalog.d.ts +3 -1
  458. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  459. package/dist/rpc/OperationCatalog.js +3 -1
  460. package/dist/rpc/OperationCatalog.js.map +1 -1
  461. package/dist/rpc/useOperationPages.cjs +6 -1
  462. package/dist/rpc/useOperationPages.cjs.map +1 -1
  463. package/dist/rpc/useOperationPages.d.ts +3 -1
  464. package/dist/rpc/useOperationPages.d.ts.map +1 -1
  465. package/dist/rpc/useOperationPages.js +6 -1
  466. package/dist/rpc/useOperationPages.js.map +1 -1
  467. package/dist/styles.css +1 -1
  468. package/package.json +1 -1
  469. package/schemas/json-schema-form.schema.json +5 -0
  470. package/dist/data/runtime/RuntimeBarCombo.cjs +0 -423
  471. package/dist/data/runtime/RuntimeBarCombo.cjs.map +0 -1
  472. package/dist/data/runtime/RuntimeBarCombo.d.ts +0 -33
  473. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +0 -1
  474. package/dist/data/runtime/RuntimeBarCombo.js +0 -423
  475. package/dist/data/runtime/RuntimeBarCombo.js.map +0 -1
  476. package/dist/data/runtime/RuntimeBarLimits.cjs +0 -262
  477. package/dist/data/runtime/RuntimeBarLimits.cjs.map +0 -1
  478. package/dist/data/runtime/RuntimeBarLimits.d.ts +0 -17
  479. package/dist/data/runtime/RuntimeBarLimits.d.ts.map +0 -1
  480. package/dist/data/runtime/RuntimeBarLimits.js +0 -262
  481. package/dist/data/runtime/RuntimeBarLimits.js.map +0 -1
  482. package/dist/data/runtime/RuntimeBarSegments.cjs +0 -346
  483. package/dist/data/runtime/RuntimeBarSegments.cjs.map +0 -1
  484. package/dist/data/runtime/RuntimeBarSegments.d.ts +0 -37
  485. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +0 -1
  486. package/dist/data/runtime/RuntimeBarSegments.js +0 -346
  487. package/dist/data/runtime/RuntimeBarSegments.js.map +0 -1
@@ -1,262 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const react = require("react");
5
- const Combobox = require("../../components/Combobox.cjs");
6
- const InputField = require("../../components/InputField.cjs");
7
- const utils = require("../../lib/utils.cjs");
8
- const Icon = require("../Icon.cjs");
9
- const RuntimeBar_limits = require("./RuntimeBar.limits.cjs");
10
- const RuntimeBarSegment = require("./RuntimeBarSegment.cjs");
11
- const UiTimer = require("../../icons/components/UiTimer.cjs");
12
- const UiCurrencyDollar = require("../../icons/components/UiCurrencyDollar.cjs");
13
- function TimeoutSegment({
14
- value,
15
- onChange
16
- }) {
17
- return /* @__PURE__ */ jsxRuntime.jsx(
18
- LimitSegment,
19
- {
20
- label: "Timeout",
21
- inputLabel: "Timeout duration",
22
- icon: UiTimer.UiTimer,
23
- current: value,
24
- text: value ?? "",
25
- placeholder: "45m",
26
- presets: RuntimeBar_limits.TIMEOUT_PRESETS.map((timeout) => ({ label: timeout, value: timeout })),
27
- parse: RuntimeBar_limits.parseTimeout,
28
- onChange
29
- }
30
- );
31
- }
32
- function CostSegment({
33
- value,
34
- onChange
35
- }) {
36
- return /* @__PURE__ */ jsxRuntime.jsx(
37
- LimitSegment,
38
- {
39
- label: "Max cost",
40
- inputLabel: "Max cost (USD)",
41
- icon: UiCurrencyDollar.UiCurrencyDollar,
42
- current: RuntimeBar_limits.formatCost(value),
43
- text: value === void 0 ? "" : String(value),
44
- placeholder: "2.50",
45
- presets: RuntimeBar_limits.COST_PRESETS.map((cost) => ({ label: RuntimeBar_limits.formatCost(cost) ?? "", value: cost })),
46
- parse: RuntimeBar_limits.parseCost,
47
- onChange
48
- }
49
- );
50
- }
51
- function RuntimeBarLimitFields({
52
- timeout,
53
- cost,
54
- showTimeout,
55
- showCost,
56
- onTimeoutChange,
57
- onCostChange
58
- }) {
59
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1", children: [
60
- showTimeout && /* @__PURE__ */ jsxRuntime.jsx(
61
- LimitField,
62
- {
63
- label: "Timeout",
64
- icon: UiTimer.UiTimer,
65
- inputLabel: "Timeout duration",
66
- current: timeout,
67
- text: timeout ?? "",
68
- placeholder: "45m",
69
- presets: RuntimeBar_limits.TIMEOUT_PRESETS.map((preset) => ({
70
- label: preset,
71
- value: preset
72
- })),
73
- parse: RuntimeBar_limits.parseTimeout,
74
- onChange: onTimeoutChange
75
- }
76
- ),
77
- showCost && /* @__PURE__ */ jsxRuntime.jsx(
78
- LimitField,
79
- {
80
- label: "Max cost",
81
- icon: UiCurrencyDollar.UiCurrencyDollar,
82
- inputLabel: "Max cost (USD)",
83
- current: RuntimeBar_limits.formatCost(cost),
84
- text: cost === void 0 ? "" : String(cost),
85
- placeholder: "2.50",
86
- presets: RuntimeBar_limits.COST_PRESETS.map((preset) => ({ label: RuntimeBar_limits.formatCost(preset) ?? "", value: preset })),
87
- parse: RuntimeBar_limits.parseCost,
88
- onChange: onCostChange
89
- }
90
- )
91
- ] }) });
92
- }
93
- function LimitSegment({
94
- label,
95
- inputLabel,
96
- icon,
97
- current,
98
- text,
99
- placeholder,
100
- presets,
101
- parse,
102
- onChange
103
- }) {
104
- const items = [
105
- {
106
- group: label,
107
- label: /* @__PURE__ */ jsxRuntime.jsx(RuntimeBarSegment.SegmentItemLabel, { text: "No limit", selected: current === void 0 }),
108
- onSelect: () => onChange(void 0)
109
- },
110
- ...presets.map((preset) => ({
111
- group: label,
112
- label: /* @__PURE__ */ jsxRuntime.jsx(RuntimeBarSegment.SegmentItemLabel, { text: preset.label, selected: preset.label === current }),
113
- onSelect: () => onChange(preset.value)
114
- }))
115
- ];
116
- return /* @__PURE__ */ jsxRuntime.jsxs(
117
- RuntimeBarSegment.RuntimeSegment,
118
- {
119
- menuLabel: label,
120
- title: `${label} — ${current ?? "no limit"}`,
121
- className: "shrink-0",
122
- items,
123
- header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1", children: [
124
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: RuntimeBarSegment.SEGMENT_KEY_CLASS, children: inputLabel }),
125
- /* @__PURE__ */ jsxRuntime.jsx(
126
- LimitInput,
127
- {
128
- inputLabel,
129
- text,
130
- placeholder,
131
- parse,
132
- current,
133
- onChange
134
- }
135
- )
136
- ] }),
137
- children: [
138
- /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon, className: "size-4 shrink-0 text-muted-foreground" }),
139
- /* @__PURE__ */ jsxRuntime.jsx(
140
- "span",
141
- {
142
- className: utils.cn(
143
- "shrink-0",
144
- current ? RuntimeBarSegment.SEGMENT_CAPTION_CLASS : "truncate text-xs text-muted-foreground"
145
- ),
146
- children: current ?? "None"
147
- }
148
- )
149
- ]
150
- }
151
- );
152
- }
153
- function LimitField({
154
- label,
155
- icon,
156
- inputLabel,
157
- current,
158
- text,
159
- placeholder,
160
- presets,
161
- parse,
162
- onChange
163
- }) {
164
- const id = react.useId();
165
- return /* @__PURE__ */ jsxRuntime.jsxs(
166
- "div",
167
- {
168
- role: "group",
169
- "aria-label": `${label} limit`,
170
- className: "flex min-w-0 items-center gap-2",
171
- children: [
172
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-1.5 text-xs font-medium text-foreground", children: [
173
- /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon, className: "size-4 shrink-0 text-muted-foreground" }),
174
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: label })
175
- ] }),
176
- /* @__PURE__ */ jsxRuntime.jsx(
177
- LimitInput,
178
- {
179
- inputLabel,
180
- text,
181
- placeholder,
182
- parse,
183
- current,
184
- onChange,
185
- className: "w-24 shrink-0"
186
- }
187
- ),
188
- /* @__PURE__ */ jsxRuntime.jsx(
189
- Combobox.Combobox,
190
- {
191
- id: `${id}-presets`,
192
- ariaLabel: `${label} presets`,
193
- value: current ?? "",
194
- onChange: (selectedPreset) => {
195
- if (selectedPreset === "" || selectedPreset === "__no_limit") {
196
- onChange(void 0);
197
- return;
198
- }
199
- const preset = presets.find(
200
- (candidate) => candidate.label === selectedPreset
201
- );
202
- if (!preset) {
203
- throw new Error(`Unknown ${label} preset: ${selectedPreset}`);
204
- }
205
- onChange(preset.value);
206
- },
207
- options: [
208
- { value: "__no_limit", label: "No limit" },
209
- ...presets.map((preset) => ({
210
- value: preset.label,
211
- label: preset.label
212
- }))
213
- ],
214
- allowCustomValue: false,
215
- size: "xs",
216
- placeholder: "Presets",
217
- className: "w-28 shrink-0"
218
- }
219
- )
220
- ]
221
- }
222
- );
223
- }
224
- function LimitInput({
225
- inputLabel,
226
- text,
227
- placeholder,
228
- parse,
229
- current,
230
- onChange,
231
- className
232
- }) {
233
- const [draft, setDraft] = react.useState();
234
- const shown = draft ?? text;
235
- const invalid = shown.trim() !== "" && parse(shown) === void 0;
236
- return /* @__PURE__ */ jsxRuntime.jsx(
237
- InputField.InputField,
238
- {
239
- value: shown,
240
- "aria-label": inputLabel,
241
- placeholder,
242
- invalid,
243
- onFocus: () => setDraft(text),
244
- onBlur: () => setDraft(void 0),
245
- onChange: (next) => {
246
- setDraft(next);
247
- if (next.trim() === "") {
248
- if (current !== void 0) onChange(void 0);
249
- return;
250
- }
251
- const parsed = parse(next);
252
- if (parsed !== void 0) onChange(parsed);
253
- },
254
- inputClassName: "font-mono text-xs",
255
- className: utils.cn("bg-background", className)
256
- }
257
- );
258
- }
259
- exports.CostSegment = CostSegment;
260
- exports.RuntimeBarLimitFields = RuntimeBarLimitFields;
261
- exports.TimeoutSegment = TimeoutSegment;
262
- //# sourceMappingURL=RuntimeBarLimits.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimeBarLimits.cjs","sources":["../../../src/data/runtime/RuntimeBarLimits.tsx"],"sourcesContent":["import { useId, useState } from \"react\";\nimport { Combobox, type ComboboxOption } from \"../../components/Combobox\";\nimport { InputField } from \"../../components/InputField\";\nimport { UiCurrencyDollar, UiTimer } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport type { DropdownMenuItem } from \"../../overlay/DropdownMenu\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport {\n COST_PRESETS,\n TIMEOUT_PRESETS,\n formatCost,\n parseCost,\n parseTimeout,\n} from \"./RuntimeBar.limits\";\nimport {\n RuntimeSegment,\n SEGMENT_CAPTION_CLASS,\n SEGMENT_KEY_CLASS,\n SegmentItemLabel,\n} from \"./RuntimeBarSegment\";\n\nexport function TimeoutSegment({\n value,\n onChange,\n}: {\n value: string | undefined;\n onChange: (next: string | undefined) => void;\n}) {\n return (\n <LimitSegment\n label=\"Timeout\"\n inputLabel=\"Timeout duration\"\n icon={UiTimer}\n current={value}\n text={value ?? \"\"}\n placeholder=\"45m\"\n presets={TIMEOUT_PRESETS.map((timeout) => ({ label: timeout, value: timeout }))}\n parse={parseTimeout}\n onChange={onChange}\n />\n );\n}\n\nexport function CostSegment({\n value,\n onChange,\n}: {\n value: number | undefined;\n onChange: (next: number | undefined) => void;\n}) {\n return (\n <LimitSegment\n label=\"Max cost\"\n inputLabel=\"Max cost (USD)\"\n icon={UiCurrencyDollar}\n current={formatCost(value)}\n text={value === undefined ? \"\" : String(value)}\n placeholder=\"2.50\"\n presets={COST_PRESETS.map((cost) => ({ label: formatCost(cost) ?? \"\", value: cost }))}\n parse={parseCost}\n onChange={onChange}\n />\n );\n}\n\nexport function RuntimeBarLimitFields({\n timeout,\n cost,\n showTimeout,\n showCost,\n onTimeoutChange,\n onCostChange,\n}: {\n timeout: string | undefined;\n cost: number | undefined;\n showTimeout: boolean;\n showCost: boolean;\n onTimeoutChange: (next: string | undefined) => void;\n onCostChange: (next: number | undefined) => void;\n}) {\n return (\n <div className=\"space-y-1\">\n <div className=\"grid gap-1\">\n {showTimeout && (\n <LimitField\n label=\"Timeout\"\n icon={UiTimer}\n inputLabel=\"Timeout duration\"\n current={timeout}\n text={timeout ?? \"\"}\n placeholder=\"45m\"\n presets={TIMEOUT_PRESETS.map((preset) => ({\n label: preset,\n value: preset,\n }))}\n parse={parseTimeout}\n onChange={onTimeoutChange}\n />\n )}\n {showCost && (\n <LimitField\n label=\"Max cost\"\n icon={UiCurrencyDollar}\n inputLabel=\"Max cost (USD)\"\n current={formatCost(cost)}\n text={cost === undefined ? \"\" : String(cost)}\n placeholder=\"2.50\"\n presets={COST_PRESETS.map((preset) => ({ label: formatCost(preset) ?? \"\", value: preset }))}\n parse={parseCost}\n onChange={onCostChange}\n />\n )}\n </div>\n </div>\n );\n}\n\n// A preset menu plus a free-text header. Typed text is held while the field is\n// focused and only committed once it parses, so partial input (\"2.\") never\n// rewrites the value under the caret.\nfunction LimitSegment<V extends string | number>({\n label,\n inputLabel,\n icon,\n current,\n text,\n placeholder,\n presets,\n parse,\n onChange,\n}: {\n label: string;\n inputLabel: string;\n icon: StaticIconComponent;\n current: string | undefined;\n text: string;\n placeholder: string;\n presets: { label: string; value: V }[];\n parse: (text: string) => V | undefined;\n onChange: (next: V | undefined) => void;\n}) {\n const items: DropdownMenuItem[] = [\n {\n group: label,\n label: <SegmentItemLabel text=\"No limit\" selected={current === undefined} />,\n onSelect: () => onChange(undefined),\n },\n ...presets.map((preset) => ({\n group: label,\n label: <SegmentItemLabel text={preset.label} selected={preset.label === current} />,\n onSelect: () => onChange(preset.value),\n })),\n ];\n\n return (\n <RuntimeSegment\n menuLabel={label}\n title={`${label} — ${current ?? \"no limit\"}`}\n // A limit is only worth showing at its full value, so it never absorbs the\n // settings row's shrink; the effort segment's \"Effort\" key label does.\n className=\"shrink-0\"\n items={items}\n header={\n <div className=\"grid gap-1\">\n <span className={SEGMENT_KEY_CLASS}>{inputLabel}</span>\n <LimitInput\n inputLabel={inputLabel}\n text={text}\n placeholder={placeholder}\n parse={parse}\n current={current}\n onChange={onChange}\n />\n </div>\n }\n >\n <Icon icon={icon} className=\"size-4 shrink-0 text-muted-foreground\" />\n <span\n className={cn(\n \"shrink-0\",\n current ? SEGMENT_CAPTION_CLASS : \"truncate text-xs text-muted-foreground\",\n )}\n >\n {current ?? \"None\"}\n </span>\n </RuntimeSegment>\n );\n}\n\nfunction LimitField<V extends string | number>({\n label,\n icon,\n inputLabel,\n current,\n text,\n placeholder,\n presets,\n parse,\n onChange,\n}: {\n label: string;\n icon: StaticIconComponent;\n inputLabel: string;\n current: string | undefined;\n text: string;\n placeholder: string;\n presets: { label: string; value: V }[];\n parse: (text: string) => V | undefined;\n onChange: (next: V | undefined) => void;\n}) {\n const id = useId();\n return (\n <div\n role=\"group\"\n aria-label={`${label} limit`}\n className=\"flex min-w-0 items-center gap-2\"\n >\n <span className=\"flex min-w-0 flex-1 items-center gap-1.5 text-xs font-medium text-foreground\">\n <Icon icon={icon} className=\"size-4 shrink-0 text-muted-foreground\" />\n <span className=\"truncate\">{label}</span>\n </span>\n <LimitInput\n inputLabel={inputLabel}\n text={text}\n placeholder={placeholder}\n parse={parse}\n current={current}\n onChange={onChange}\n className=\"w-24 shrink-0\"\n />\n <Combobox\n id={`${id}-presets`}\n ariaLabel={`${label} presets`}\n value={current ?? \"\"}\n onChange={(selectedPreset) => {\n if (selectedPreset === \"\" || selectedPreset === \"__no_limit\") {\n onChange(undefined);\n return;\n }\n const preset = presets.find(\n (candidate) => candidate.label === selectedPreset,\n );\n if (!preset) {\n throw new Error(`Unknown ${label} preset: ${selectedPreset}`);\n }\n onChange(preset.value);\n }}\n options={[\n { value: \"__no_limit\", label: \"No limit\" },\n ...presets.map<ComboboxOption>((preset) => ({\n value: preset.label,\n label: preset.label,\n })),\n ]}\n allowCustomValue={false}\n size=\"xs\"\n placeholder=\"Presets\"\n className=\"w-28 shrink-0\"\n />\n </div>\n );\n}\n\nfunction LimitInput<V extends string | number>({\n inputLabel,\n text,\n placeholder,\n parse,\n current,\n onChange,\n className,\n}: {\n inputLabel: string;\n text: string;\n placeholder: string;\n parse: (text: string) => V | undefined;\n current: string | undefined;\n onChange: (next: V | undefined) => void;\n className?: string | undefined;\n}) {\n const [draft, setDraft] = useState<string>();\n const shown = draft ?? text;\n const invalid = shown.trim() !== \"\" && parse(shown) === undefined;\n return (\n <InputField\n value={shown}\n aria-label={inputLabel}\n placeholder={placeholder}\n invalid={invalid}\n onFocus={() => setDraft(text)}\n onBlur={() => setDraft(undefined)}\n onChange={(next) => {\n setDraft(next);\n if (next.trim() === \"\") {\n if (current !== undefined) onChange(undefined);\n return;\n }\n const parsed = parse(next);\n if (parsed !== undefined) onChange(parsed);\n }}\n inputClassName=\"font-mono text-xs\"\n className={cn(\"bg-background\", className)}\n />\n );\n}\n"],"names":["jsx","UiTimer","TIMEOUT_PRESETS","parseTimeout","UiCurrencyDollar","formatCost","COST_PRESETS","parseCost","jsxs","SegmentItemLabel","RuntimeSegment","SEGMENT_KEY_CLASS","Icon","cn","SEGMENT_CAPTION_CLASS","useId","Combobox","useState","InputField"],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- export declare function TimeoutSegment({ value, onChange, }: {
2
- value: string | undefined;
3
- onChange: (next: string | undefined) => void;
4
- }): import("react").JSX.Element;
5
- export declare function CostSegment({ value, onChange, }: {
6
- value: number | undefined;
7
- onChange: (next: number | undefined) => void;
8
- }): import("react").JSX.Element;
9
- export declare function RuntimeBarLimitFields({ timeout, cost, showTimeout, showCost, onTimeoutChange, onCostChange, }: {
10
- timeout: string | undefined;
11
- cost: number | undefined;
12
- showTimeout: boolean;
13
- showCost: boolean;
14
- onTimeoutChange: (next: string | undefined) => void;
15
- onCostChange: (next: number | undefined) => void;
16
- }): import("react").JSX.Element;
17
- //# sourceMappingURL=RuntimeBarLimits.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimeBarLimits.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBarLimits.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAC9C,+BAcA;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAC9C,+BAcA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,eAAe,EACf,YAAY,GACb,EAAE;IACD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAClD,+BAoCA"}
@@ -1,262 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { useId, useState } from "react";
3
- import { Combobox } from "../../components/Combobox.js";
4
- import { InputField } from "../../components/InputField.js";
5
- import { cn } from "../../lib/utils.js";
6
- import { Icon } from "../Icon.js";
7
- import { parseTimeout, TIMEOUT_PRESETS, parseCost, COST_PRESETS, formatCost } from "./RuntimeBar.limits.js";
8
- import { SegmentItemLabel, RuntimeSegment, SEGMENT_CAPTION_CLASS, SEGMENT_KEY_CLASS } from "./RuntimeBarSegment.js";
9
- import { UiTimer } from "../../icons/components/UiTimer.js";
10
- import { UiCurrencyDollar } from "../../icons/components/UiCurrencyDollar.js";
11
- function TimeoutSegment({
12
- value,
13
- onChange
14
- }) {
15
- return /* @__PURE__ */ jsx(
16
- LimitSegment,
17
- {
18
- label: "Timeout",
19
- inputLabel: "Timeout duration",
20
- icon: UiTimer,
21
- current: value,
22
- text: value ?? "",
23
- placeholder: "45m",
24
- presets: TIMEOUT_PRESETS.map((timeout) => ({ label: timeout, value: timeout })),
25
- parse: parseTimeout,
26
- onChange
27
- }
28
- );
29
- }
30
- function CostSegment({
31
- value,
32
- onChange
33
- }) {
34
- return /* @__PURE__ */ jsx(
35
- LimitSegment,
36
- {
37
- label: "Max cost",
38
- inputLabel: "Max cost (USD)",
39
- icon: UiCurrencyDollar,
40
- current: formatCost(value),
41
- text: value === void 0 ? "" : String(value),
42
- placeholder: "2.50",
43
- presets: COST_PRESETS.map((cost) => ({ label: formatCost(cost) ?? "", value: cost })),
44
- parse: parseCost,
45
- onChange
46
- }
47
- );
48
- }
49
- function RuntimeBarLimitFields({
50
- timeout,
51
- cost,
52
- showTimeout,
53
- showCost,
54
- onTimeoutChange,
55
- onCostChange
56
- }) {
57
- return /* @__PURE__ */ jsx("div", { className: "space-y-1", children: /* @__PURE__ */ jsxs("div", { className: "grid gap-1", children: [
58
- showTimeout && /* @__PURE__ */ jsx(
59
- LimitField,
60
- {
61
- label: "Timeout",
62
- icon: UiTimer,
63
- inputLabel: "Timeout duration",
64
- current: timeout,
65
- text: timeout ?? "",
66
- placeholder: "45m",
67
- presets: TIMEOUT_PRESETS.map((preset) => ({
68
- label: preset,
69
- value: preset
70
- })),
71
- parse: parseTimeout,
72
- onChange: onTimeoutChange
73
- }
74
- ),
75
- showCost && /* @__PURE__ */ jsx(
76
- LimitField,
77
- {
78
- label: "Max cost",
79
- icon: UiCurrencyDollar,
80
- inputLabel: "Max cost (USD)",
81
- current: formatCost(cost),
82
- text: cost === void 0 ? "" : String(cost),
83
- placeholder: "2.50",
84
- presets: COST_PRESETS.map((preset) => ({ label: formatCost(preset) ?? "", value: preset })),
85
- parse: parseCost,
86
- onChange: onCostChange
87
- }
88
- )
89
- ] }) });
90
- }
91
- function LimitSegment({
92
- label,
93
- inputLabel,
94
- icon,
95
- current,
96
- text,
97
- placeholder,
98
- presets,
99
- parse,
100
- onChange
101
- }) {
102
- const items = [
103
- {
104
- group: label,
105
- label: /* @__PURE__ */ jsx(SegmentItemLabel, { text: "No limit", selected: current === void 0 }),
106
- onSelect: () => onChange(void 0)
107
- },
108
- ...presets.map((preset) => ({
109
- group: label,
110
- label: /* @__PURE__ */ jsx(SegmentItemLabel, { text: preset.label, selected: preset.label === current }),
111
- onSelect: () => onChange(preset.value)
112
- }))
113
- ];
114
- return /* @__PURE__ */ jsxs(
115
- RuntimeSegment,
116
- {
117
- menuLabel: label,
118
- title: `${label} — ${current ?? "no limit"}`,
119
- className: "shrink-0",
120
- items,
121
- header: /* @__PURE__ */ jsxs("div", { className: "grid gap-1", children: [
122
- /* @__PURE__ */ jsx("span", { className: SEGMENT_KEY_CLASS, children: inputLabel }),
123
- /* @__PURE__ */ jsx(
124
- LimitInput,
125
- {
126
- inputLabel,
127
- text,
128
- placeholder,
129
- parse,
130
- current,
131
- onChange
132
- }
133
- )
134
- ] }),
135
- children: [
136
- /* @__PURE__ */ jsx(Icon, { icon, className: "size-4 shrink-0 text-muted-foreground" }),
137
- /* @__PURE__ */ jsx(
138
- "span",
139
- {
140
- className: cn(
141
- "shrink-0",
142
- current ? SEGMENT_CAPTION_CLASS : "truncate text-xs text-muted-foreground"
143
- ),
144
- children: current ?? "None"
145
- }
146
- )
147
- ]
148
- }
149
- );
150
- }
151
- function LimitField({
152
- label,
153
- icon,
154
- inputLabel,
155
- current,
156
- text,
157
- placeholder,
158
- presets,
159
- parse,
160
- onChange
161
- }) {
162
- const id = useId();
163
- return /* @__PURE__ */ jsxs(
164
- "div",
165
- {
166
- role: "group",
167
- "aria-label": `${label} limit`,
168
- className: "flex min-w-0 items-center gap-2",
169
- children: [
170
- /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-1.5 text-xs font-medium text-foreground", children: [
171
- /* @__PURE__ */ jsx(Icon, { icon, className: "size-4 shrink-0 text-muted-foreground" }),
172
- /* @__PURE__ */ jsx("span", { className: "truncate", children: label })
173
- ] }),
174
- /* @__PURE__ */ jsx(
175
- LimitInput,
176
- {
177
- inputLabel,
178
- text,
179
- placeholder,
180
- parse,
181
- current,
182
- onChange,
183
- className: "w-24 shrink-0"
184
- }
185
- ),
186
- /* @__PURE__ */ jsx(
187
- Combobox,
188
- {
189
- id: `${id}-presets`,
190
- ariaLabel: `${label} presets`,
191
- value: current ?? "",
192
- onChange: (selectedPreset) => {
193
- if (selectedPreset === "" || selectedPreset === "__no_limit") {
194
- onChange(void 0);
195
- return;
196
- }
197
- const preset = presets.find(
198
- (candidate) => candidate.label === selectedPreset
199
- );
200
- if (!preset) {
201
- throw new Error(`Unknown ${label} preset: ${selectedPreset}`);
202
- }
203
- onChange(preset.value);
204
- },
205
- options: [
206
- { value: "__no_limit", label: "No limit" },
207
- ...presets.map((preset) => ({
208
- value: preset.label,
209
- label: preset.label
210
- }))
211
- ],
212
- allowCustomValue: false,
213
- size: "xs",
214
- placeholder: "Presets",
215
- className: "w-28 shrink-0"
216
- }
217
- )
218
- ]
219
- }
220
- );
221
- }
222
- function LimitInput({
223
- inputLabel,
224
- text,
225
- placeholder,
226
- parse,
227
- current,
228
- onChange,
229
- className
230
- }) {
231
- const [draft, setDraft] = useState();
232
- const shown = draft ?? text;
233
- const invalid = shown.trim() !== "" && parse(shown) === void 0;
234
- return /* @__PURE__ */ jsx(
235
- InputField,
236
- {
237
- value: shown,
238
- "aria-label": inputLabel,
239
- placeholder,
240
- invalid,
241
- onFocus: () => setDraft(text),
242
- onBlur: () => setDraft(void 0),
243
- onChange: (next) => {
244
- setDraft(next);
245
- if (next.trim() === "") {
246
- if (current !== void 0) onChange(void 0);
247
- return;
248
- }
249
- const parsed = parse(next);
250
- if (parsed !== void 0) onChange(parsed);
251
- },
252
- inputClassName: "font-mono text-xs",
253
- className: cn("bg-background", className)
254
- }
255
- );
256
- }
257
- export {
258
- CostSegment,
259
- RuntimeBarLimitFields,
260
- TimeoutSegment
261
- };
262
- //# sourceMappingURL=RuntimeBarLimits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimeBarLimits.js","sources":["../../../src/data/runtime/RuntimeBarLimits.tsx"],"sourcesContent":["import { useId, useState } from \"react\";\nimport { Combobox, type ComboboxOption } from \"../../components/Combobox\";\nimport { InputField } from \"../../components/InputField\";\nimport { UiCurrencyDollar, UiTimer } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport type { DropdownMenuItem } from \"../../overlay/DropdownMenu\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport {\n COST_PRESETS,\n TIMEOUT_PRESETS,\n formatCost,\n parseCost,\n parseTimeout,\n} from \"./RuntimeBar.limits\";\nimport {\n RuntimeSegment,\n SEGMENT_CAPTION_CLASS,\n SEGMENT_KEY_CLASS,\n SegmentItemLabel,\n} from \"./RuntimeBarSegment\";\n\nexport function TimeoutSegment({\n value,\n onChange,\n}: {\n value: string | undefined;\n onChange: (next: string | undefined) => void;\n}) {\n return (\n <LimitSegment\n label=\"Timeout\"\n inputLabel=\"Timeout duration\"\n icon={UiTimer}\n current={value}\n text={value ?? \"\"}\n placeholder=\"45m\"\n presets={TIMEOUT_PRESETS.map((timeout) => ({ label: timeout, value: timeout }))}\n parse={parseTimeout}\n onChange={onChange}\n />\n );\n}\n\nexport function CostSegment({\n value,\n onChange,\n}: {\n value: number | undefined;\n onChange: (next: number | undefined) => void;\n}) {\n return (\n <LimitSegment\n label=\"Max cost\"\n inputLabel=\"Max cost (USD)\"\n icon={UiCurrencyDollar}\n current={formatCost(value)}\n text={value === undefined ? \"\" : String(value)}\n placeholder=\"2.50\"\n presets={COST_PRESETS.map((cost) => ({ label: formatCost(cost) ?? \"\", value: cost }))}\n parse={parseCost}\n onChange={onChange}\n />\n );\n}\n\nexport function RuntimeBarLimitFields({\n timeout,\n cost,\n showTimeout,\n showCost,\n onTimeoutChange,\n onCostChange,\n}: {\n timeout: string | undefined;\n cost: number | undefined;\n showTimeout: boolean;\n showCost: boolean;\n onTimeoutChange: (next: string | undefined) => void;\n onCostChange: (next: number | undefined) => void;\n}) {\n return (\n <div className=\"space-y-1\">\n <div className=\"grid gap-1\">\n {showTimeout && (\n <LimitField\n label=\"Timeout\"\n icon={UiTimer}\n inputLabel=\"Timeout duration\"\n current={timeout}\n text={timeout ?? \"\"}\n placeholder=\"45m\"\n presets={TIMEOUT_PRESETS.map((preset) => ({\n label: preset,\n value: preset,\n }))}\n parse={parseTimeout}\n onChange={onTimeoutChange}\n />\n )}\n {showCost && (\n <LimitField\n label=\"Max cost\"\n icon={UiCurrencyDollar}\n inputLabel=\"Max cost (USD)\"\n current={formatCost(cost)}\n text={cost === undefined ? \"\" : String(cost)}\n placeholder=\"2.50\"\n presets={COST_PRESETS.map((preset) => ({ label: formatCost(preset) ?? \"\", value: preset }))}\n parse={parseCost}\n onChange={onCostChange}\n />\n )}\n </div>\n </div>\n );\n}\n\n// A preset menu plus a free-text header. Typed text is held while the field is\n// focused and only committed once it parses, so partial input (\"2.\") never\n// rewrites the value under the caret.\nfunction LimitSegment<V extends string | number>({\n label,\n inputLabel,\n icon,\n current,\n text,\n placeholder,\n presets,\n parse,\n onChange,\n}: {\n label: string;\n inputLabel: string;\n icon: StaticIconComponent;\n current: string | undefined;\n text: string;\n placeholder: string;\n presets: { label: string; value: V }[];\n parse: (text: string) => V | undefined;\n onChange: (next: V | undefined) => void;\n}) {\n const items: DropdownMenuItem[] = [\n {\n group: label,\n label: <SegmentItemLabel text=\"No limit\" selected={current === undefined} />,\n onSelect: () => onChange(undefined),\n },\n ...presets.map((preset) => ({\n group: label,\n label: <SegmentItemLabel text={preset.label} selected={preset.label === current} />,\n onSelect: () => onChange(preset.value),\n })),\n ];\n\n return (\n <RuntimeSegment\n menuLabel={label}\n title={`${label} — ${current ?? \"no limit\"}`}\n // A limit is only worth showing at its full value, so it never absorbs the\n // settings row's shrink; the effort segment's \"Effort\" key label does.\n className=\"shrink-0\"\n items={items}\n header={\n <div className=\"grid gap-1\">\n <span className={SEGMENT_KEY_CLASS}>{inputLabel}</span>\n <LimitInput\n inputLabel={inputLabel}\n text={text}\n placeholder={placeholder}\n parse={parse}\n current={current}\n onChange={onChange}\n />\n </div>\n }\n >\n <Icon icon={icon} className=\"size-4 shrink-0 text-muted-foreground\" />\n <span\n className={cn(\n \"shrink-0\",\n current ? SEGMENT_CAPTION_CLASS : \"truncate text-xs text-muted-foreground\",\n )}\n >\n {current ?? \"None\"}\n </span>\n </RuntimeSegment>\n );\n}\n\nfunction LimitField<V extends string | number>({\n label,\n icon,\n inputLabel,\n current,\n text,\n placeholder,\n presets,\n parse,\n onChange,\n}: {\n label: string;\n icon: StaticIconComponent;\n inputLabel: string;\n current: string | undefined;\n text: string;\n placeholder: string;\n presets: { label: string; value: V }[];\n parse: (text: string) => V | undefined;\n onChange: (next: V | undefined) => void;\n}) {\n const id = useId();\n return (\n <div\n role=\"group\"\n aria-label={`${label} limit`}\n className=\"flex min-w-0 items-center gap-2\"\n >\n <span className=\"flex min-w-0 flex-1 items-center gap-1.5 text-xs font-medium text-foreground\">\n <Icon icon={icon} className=\"size-4 shrink-0 text-muted-foreground\" />\n <span className=\"truncate\">{label}</span>\n </span>\n <LimitInput\n inputLabel={inputLabel}\n text={text}\n placeholder={placeholder}\n parse={parse}\n current={current}\n onChange={onChange}\n className=\"w-24 shrink-0\"\n />\n <Combobox\n id={`${id}-presets`}\n ariaLabel={`${label} presets`}\n value={current ?? \"\"}\n onChange={(selectedPreset) => {\n if (selectedPreset === \"\" || selectedPreset === \"__no_limit\") {\n onChange(undefined);\n return;\n }\n const preset = presets.find(\n (candidate) => candidate.label === selectedPreset,\n );\n if (!preset) {\n throw new Error(`Unknown ${label} preset: ${selectedPreset}`);\n }\n onChange(preset.value);\n }}\n options={[\n { value: \"__no_limit\", label: \"No limit\" },\n ...presets.map<ComboboxOption>((preset) => ({\n value: preset.label,\n label: preset.label,\n })),\n ]}\n allowCustomValue={false}\n size=\"xs\"\n placeholder=\"Presets\"\n className=\"w-28 shrink-0\"\n />\n </div>\n );\n}\n\nfunction LimitInput<V extends string | number>({\n inputLabel,\n text,\n placeholder,\n parse,\n current,\n onChange,\n className,\n}: {\n inputLabel: string;\n text: string;\n placeholder: string;\n parse: (text: string) => V | undefined;\n current: string | undefined;\n onChange: (next: V | undefined) => void;\n className?: string | undefined;\n}) {\n const [draft, setDraft] = useState<string>();\n const shown = draft ?? text;\n const invalid = shown.trim() !== \"\" && parse(shown) === undefined;\n return (\n <InputField\n value={shown}\n aria-label={inputLabel}\n placeholder={placeholder}\n invalid={invalid}\n onFocus={() => setDraft(text)}\n onBlur={() => setDraft(undefined)}\n onChange={(next) => {\n setDraft(next);\n if (next.trim() === \"\") {\n if (current !== undefined) onChange(undefined);\n return;\n }\n const parsed = parse(next);\n if (parsed !== undefined) onChange(parsed);\n }}\n inputClassName=\"font-mono text-xs\"\n className={cn(\"bg-background\", className)}\n />\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AAqBO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AACF,GAGG;AACD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,YAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,MACT,MAAM,SAAS;AAAA,MACf,aAAY;AAAA,MACZ,SAAS,gBAAgB,IAAI,CAAC,aAAa,EAAE,OAAO,SAAS,OAAO,QAAA,EAAU;AAAA,MAC9E,OAAO;AAAA,MACP;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AACF,GAGG;AACD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,YAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS,WAAW,KAAK;AAAA,MACzB,MAAM,UAAU,SAAY,KAAK,OAAO,KAAK;AAAA,MAC7C,aAAY;AAAA,MACZ,SAAS,aAAa,IAAI,CAAC,UAAU,EAAE,OAAO,WAAW,IAAI,KAAK,IAAI,OAAO,OAAO;AAAA,MACpF,OAAO;AAAA,MACP;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOG;AACD,6BACG,OAAA,EAAI,WAAU,aACb,UAAA,qBAAC,OAAA,EAAI,WAAU,cACZ,UAAA;AAAA,IAAA,eACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,MAAM;AAAA,QACN,YAAW;AAAA,QACX,SAAS;AAAA,QACT,MAAM,WAAW;AAAA,QACjB,aAAY;AAAA,QACZ,SAAS,gBAAgB,IAAI,CAAC,YAAY;AAAA,UACxC,OAAO;AAAA,UACP,OAAO;AAAA,QAAA,EACP;AAAA,QACF,OAAO;AAAA,QACP,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAGb,YACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,MAAM;AAAA,QACN,YAAW;AAAA,QACX,SAAS,WAAW,IAAI;AAAA,QACxB,MAAM,SAAS,SAAY,KAAK,OAAO,IAAI;AAAA,QAC3C,aAAY;AAAA,QACZ,SAAS,aAAa,IAAI,CAAC,YAAY,EAAE,OAAO,WAAW,MAAM,KAAK,IAAI,OAAO,SAAS;AAAA,QAC1F,OAAO;AAAA,QACP,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACZ,EAAA,CAEJ,EAAA,CACF;AAEJ;AAKA,SAAS,aAAwC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAUG;AACD,QAAM,QAA4B;AAAA,IAChC;AAAA,MACE,OAAO;AAAA,MACP,OAAO,oBAAC,kBAAA,EAAiB,MAAK,YAAW,UAAU,YAAY,QAAW;AAAA,MAC1E,UAAU,MAAM,SAAS,MAAS;AAAA,IAAA;AAAA,IAEpC,GAAG,QAAQ,IAAI,CAAC,YAAY;AAAA,MAC1B,OAAO;AAAA,MACP,2BAAQ,kBAAA,EAAiB,MAAM,OAAO,OAAO,UAAU,OAAO,UAAU,QAAA,CAAS;AAAA,MACjF,UAAU,MAAM,SAAS,OAAO,KAAK;AAAA,IAAA,EACrC;AAAA,EAAA;AAGJ,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,OAAO,GAAG,KAAK,MAAM,WAAW,UAAU;AAAA,MAG1C,WAAU;AAAA,MACV;AAAA,MACA,QACE,qBAAC,OAAA,EAAI,WAAU,cACb,UAAA;AAAA,QAAA,oBAAC,QAAA,EAAK,WAAW,mBAAoB,UAAA,YAAW;AAAA,QAChD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,GACF;AAAA,MAGF,UAAA;AAAA,QAAA,oBAAC,MAAA,EAAK,MAAY,WAAU,wCAAA,CAAwC;AAAA,QACpE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,UAAU,wBAAwB;AAAA,YAAA;AAAA,YAGnC,UAAA,WAAW;AAAA,UAAA;AAAA,QAAA;AAAA,MACd;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAAS,WAAsC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAUG;AACD,QAAM,KAAK,MAAA;AACX,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAY,GAAG,KAAK;AAAA,MACpB,WAAU;AAAA,MAEV,UAAA;AAAA,QAAA,qBAAC,QAAA,EAAK,WAAU,gFACd,UAAA;AAAA,UAAA,oBAAC,MAAA,EAAK,MAAY,WAAU,wCAAA,CAAwC;AAAA,UACpE,oBAAC,QAAA,EAAK,WAAU,YAAY,UAAA,MAAA,CAAM;AAAA,QAAA,GACpC;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAEZ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI,GAAG,EAAE;AAAA,YACT,WAAW,GAAG,KAAK;AAAA,YACnB,OAAO,WAAW;AAAA,YAClB,UAAU,CAAC,mBAAmB;AAC5B,kBAAI,mBAAmB,MAAM,mBAAmB,cAAc;AAC5D,yBAAS,MAAS;AAClB;AAAA,cACF;AACA,oBAAM,SAAS,QAAQ;AAAA,gBACrB,CAAC,cAAc,UAAU,UAAU;AAAA,cAAA;AAErC,kBAAI,CAAC,QAAQ;AACX,sBAAM,IAAI,MAAM,WAAW,KAAK,YAAY,cAAc,EAAE;AAAA,cAC9D;AACA,uBAAS,OAAO,KAAK;AAAA,YACvB;AAAA,YACA,SAAS;AAAA,cACP,EAAE,OAAO,cAAc,OAAO,WAAA;AAAA,cAC9B,GAAG,QAAQ,IAAoB,CAAC,YAAY;AAAA,gBAC1C,OAAO,OAAO;AAAA,gBACd,OAAO,OAAO;AAAA,cAAA,EACd;AAAA,YAAA;AAAA,YAEJ,kBAAkB;AAAA,YAClB,MAAK;AAAA,YACL,aAAY;AAAA,YACZ,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACZ;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAAS,WAAsC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQG;AACD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAA;AAC1B,QAAM,QAAQ,SAAS;AACvB,QAAM,UAAU,MAAM,KAAA,MAAW,MAAM,MAAM,KAAK,MAAM;AACxD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,cAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,SAAS,MAAM,SAAS,IAAI;AAAA,MAC5B,QAAQ,MAAM,SAAS,MAAS;AAAA,MAChC,UAAU,CAAC,SAAS;AAClB,iBAAS,IAAI;AACb,YAAI,KAAK,KAAA,MAAW,IAAI;AACtB,cAAI,YAAY,OAAW,UAAS,MAAS;AAC7C;AAAA,QACF;AACA,cAAM,SAAS,MAAM,IAAI;AACzB,YAAI,WAAW,OAAW,UAAS,MAAM;AAAA,MAC3C;AAAA,MACA,gBAAe;AAAA,MACf,WAAW,GAAG,iBAAiB,SAAS;AAAA,IAAA;AAAA,EAAA;AAG9C;"}