@mastra/playground-ui 62.0.0-alpha.0 → 62.0.0-alpha.2

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 (646) hide show
  1. package/README.md +2 -2
  2. package/dist/{Button-BTuu6_hv.cjs → Button-BpSkkuzG.cjs} +3 -2
  3. package/dist/Button-BpSkkuzG.cjs.map +1 -0
  4. package/dist/{Button-D76HGlPP.js → Button-MHlMpc97.js} +3 -2
  5. package/dist/Button-MHlMpc97.js.map +1 -0
  6. package/dist/{ErrorBoundary-C83aOlVF.cjs → ErrorBoundary-B3MbPdHS.cjs} +2 -2
  7. package/dist/{ErrorBoundary-C83aOlVF.cjs.map → ErrorBoundary-B3MbPdHS.cjs.map} +1 -1
  8. package/dist/{ErrorBoundary-DzbqNJsa.js → ErrorBoundary-DECw8zU9.js} +2 -2
  9. package/dist/{ErrorBoundary-DzbqNJsa.js.map → ErrorBoundary-DECw8zU9.js.map} +1 -1
  10. package/dist/Notice.css +1 -1
  11. package/dist/{alert-dialog-BMRR6-5l.cjs → alert-dialog-B0lV1i6F.cjs} +3 -3
  12. package/dist/{alert-dialog-BMRR6-5l.cjs.map → alert-dialog-B0lV1i6F.cjs.map} +1 -1
  13. package/dist/{alert-dialog-D7rfyRBL.js → alert-dialog-CTVE09r5.js} +3 -3
  14. package/dist/{alert-dialog-D7rfyRBL.js.map → alert-dialog-CTVE09r5.js.map} +1 -1
  15. package/dist/{ask-user-card-Dt8r5Zaj.js → ask-user-card-C01JQ7bo.js} +2 -2
  16. package/dist/{ask-user-card-Dt8r5Zaj.js.map → ask-user-card-C01JQ7bo.js.map} +1 -1
  17. package/dist/{ask-user-card-DBnVT9H_.cjs → ask-user-card-C14RGsoO.cjs} +2 -2
  18. package/dist/{ask-user-card-DBnVT9H_.cjs.map → ask-user-card-C14RGsoO.cjs.map} +1 -1
  19. package/dist/buttons-group.css +15 -5
  20. package/dist/{code-block-zZDgdkEU.js → code-block-CVPoRNhl.js} +4 -4
  21. package/dist/{code-block-zZDgdkEU.js.map → code-block-CVPoRNhl.js.map} +1 -1
  22. package/dist/{code-block-CEwp58Id.cjs → code-block-Cgjl4ne8.cjs} +4 -4
  23. package/dist/{code-block-CEwp58Id.cjs.map → code-block-Cgjl4ne8.cjs.map} +1 -1
  24. package/dist/{code-editor-CIiMtHPN.js → code-editor-5psksCEZ.js} +2 -2
  25. package/dist/{code-editor-CIiMtHPN.js.map → code-editor-5psksCEZ.js.map} +1 -1
  26. package/dist/{code-editor-Bw_rGwp9.cjs → code-editor-B9oLjXB-.cjs} +2 -2
  27. package/dist/{code-editor-Bw_rGwp9.cjs.map → code-editor-B9oLjXB-.cjs.map} +1 -1
  28. package/dist/{collapsible-box-DV-uekuM.js → collapsible-box-BccWteHB.js} +2 -2
  29. package/dist/{collapsible-box-DV-uekuM.js.map → collapsible-box-BccWteHB.js.map} +1 -1
  30. package/dist/{collapsible-box-BiKTbrqx.cjs → collapsible-box-CW66gtXC.cjs} +2 -2
  31. package/dist/{collapsible-box-BiKTbrqx.cjs.map → collapsible-box-CW66gtXC.cjs.map} +1 -1
  32. package/dist/{combobox-Cm87oqoh.js → combobox-8_JEWMYs.js} +3 -3
  33. package/dist/{combobox-Cm87oqoh.js.map → combobox-8_JEWMYs.js.map} +1 -1
  34. package/dist/{combobox-C94lovBP.cjs → combobox-Csiduxme.cjs} +3 -3
  35. package/dist/{combobox-C94lovBP.cjs.map → combobox-Csiduxme.cjs.map} +1 -1
  36. package/dist/{combobox-styles-DeCDIVg-.js → combobox-styles-B7F9wakX.js} +2 -2
  37. package/dist/{combobox-styles-DeCDIVg-.js.map → combobox-styles-B7F9wakX.js.map} +1 -1
  38. package/dist/{combobox-styles-Beu-UEji.cjs → combobox-styles-CvSgj0g8.cjs} +2 -2
  39. package/dist/{combobox-styles-Beu-UEji.cjs.map → combobox-styles-CvSgj0g8.cjs.map} +1 -1
  40. package/dist/{command-BFo5_Ilw.js → command-C-i5cx8D.js} +2 -2
  41. package/dist/{command-BFo5_Ilw.js.map → command-C-i5cx8D.js.map} +1 -1
  42. package/dist/{command-Dd66rlOH.cjs → command-Cq-K24jI.cjs} +2 -2
  43. package/dist/{command-Dd66rlOH.cjs.map → command-Cq-K24jI.cjs.map} +1 -1
  44. package/dist/components/AlertDialog.cjs.js +1 -1
  45. package/dist/components/AlertDialog.es.js +1 -1
  46. package/dist/components/Button.cjs.js +1 -1
  47. package/dist/components/Button.es.js +2 -2
  48. package/dist/components/ClampedText.cjs.js +1 -1
  49. package/dist/components/ClampedText.es.js +1 -1
  50. package/dist/components/CodeBlock.cjs.js +1 -1
  51. package/dist/components/CodeBlock.es.js +1 -1
  52. package/dist/components/CodeEditor.cjs.js +1 -1
  53. package/dist/components/CodeEditor.es.js +1 -1
  54. package/dist/components/CollapsibleBox.cjs.js +1 -1
  55. package/dist/components/CollapsibleBox.es.js +1 -1
  56. package/dist/components/Combobox.cjs.js +2 -2
  57. package/dist/components/Combobox.es.js +2 -2
  58. package/dist/components/Command.cjs.js +1 -1
  59. package/dist/components/Command.es.js +1 -1
  60. package/dist/components/CommandPalette.cjs.js +1 -1
  61. package/dist/components/CommandPalette.es.js +1 -1
  62. package/dist/components/Comment.cjs.js +2 -2
  63. package/dist/components/Comment.es.js +2 -2
  64. package/dist/components/CopyButton.cjs.js +1 -1
  65. package/dist/components/CopyButton.es.js +1 -1
  66. package/dist/components/DataCodeSection.cjs.js +1 -1
  67. package/dist/components/DataCodeSection.es.js +1 -1
  68. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  69. package/dist/components/DataDetailsPanel.es.js +2 -2
  70. package/dist/components/DataList.cjs.js +3 -3
  71. package/dist/components/DataList.es.js +4 -4
  72. package/dist/components/DataPanel.cjs.js +1 -1
  73. package/dist/components/DataPanel.es.js +1 -1
  74. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  75. package/dist/components/DateRangeTimeline.es.js +1 -1
  76. package/dist/components/DateTimePicker.cjs.js +2 -2
  77. package/dist/components/DateTimePicker.es.js +2 -2
  78. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  79. package/dist/components/DateTimeRangePicker.es.js +1 -1
  80. package/dist/components/Dialog.cjs.js +2 -2
  81. package/dist/components/Dialog.es.js +2 -2
  82. package/dist/components/DisabledFeatureButton.cjs.js +1 -1
  83. package/dist/components/DisabledFeatureButton.es.js +1 -1
  84. package/dist/components/Drawer.cjs.js +1 -1
  85. package/dist/components/Drawer.es.js +1 -1
  86. package/dist/components/EnvironmentVariablesEditor.cjs.js +3 -3
  87. package/dist/components/EnvironmentVariablesEditor.es.js +3 -3
  88. package/dist/components/ErrorBoundary.cjs.js +1 -1
  89. package/dist/components/ErrorBoundary.es.js +1 -1
  90. package/dist/components/FilterBar.cjs.js +7 -6
  91. package/dist/components/FilterBar.cjs.js.map +1 -1
  92. package/dist/components/FilterBar.es.js +8 -7
  93. package/dist/components/FilterBar.es.js.map +1 -1
  94. package/dist/components/FormFieldBlocks.cjs.js +2 -2
  95. package/dist/components/FormFieldBlocks.es.js +2 -2
  96. package/dist/components/InputGroup.cjs.js +1 -1
  97. package/dist/components/InputGroup.es.js +1 -1
  98. package/dist/components/InputNumber.cjs.js +2 -2
  99. package/dist/components/InputNumber.es.js +2 -2
  100. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  101. package/dist/components/JSONSchemaForm.es.js +2 -2
  102. package/dist/components/ListSearch.cjs.js +1 -1
  103. package/dist/components/ListSearch.es.js +1 -1
  104. package/dist/components/LogsDataList.cjs.js +3 -3
  105. package/dist/components/LogsDataList.es.js +3 -3
  106. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  107. package/dist/components/MarkdownRenderer.es.js +1 -1
  108. package/dist/components/Message.cjs.js +1 -1
  109. package/dist/components/Message.es.js +1 -1
  110. package/dist/components/MetricsCard.cjs.js +1 -1
  111. package/dist/components/MetricsCard.es.js +1 -1
  112. package/dist/components/PageHeader.cjs.js +1 -1
  113. package/dist/components/PageHeader.es.js +1 -1
  114. package/dist/components/PrevNextNav.cjs.js +1 -1
  115. package/dist/components/PrevNextNav.es.js +1 -1
  116. package/dist/components/PropertyFilter.cjs.js +3 -3
  117. package/dist/components/PropertyFilter.es.js +4 -4
  118. package/dist/components/RuleBuilder.cjs.js +2 -2
  119. package/dist/components/RuleBuilder.es.js +2 -2
  120. package/dist/components/SavedViews.cjs.js +2 -2
  121. package/dist/components/SavedViews.es.js +2 -2
  122. package/dist/components/SearchInput.cjs.js +1 -1
  123. package/dist/components/SearchInput.es.js +1 -1
  124. package/dist/components/Select.cjs.js +1 -1
  125. package/dist/components/Select.es.js +1 -1
  126. package/dist/components/SideDialog.cjs.js +1 -1
  127. package/dist/components/SideDialog.es.js +1 -1
  128. package/dist/components/Sidebar.cjs.js +3 -3
  129. package/dist/components/Sidebar.es.js +3 -3
  130. package/dist/components/Tabs.cjs.js +1 -1
  131. package/dist/components/Tabs.es.js +1 -1
  132. package/dist/components/ThinkingLevel.cjs.js +36 -24
  133. package/dist/components/ThinkingLevel.cjs.js.map +1 -1
  134. package/dist/components/ThinkingLevel.es.js +36 -25
  135. package/dist/components/ThinkingLevel.es.js.map +1 -1
  136. package/dist/components/ThreadList.cjs.js +1 -1
  137. package/dist/components/ThreadList.es.js +1 -1
  138. package/dist/components/Truncate.cjs.js +1 -1
  139. package/dist/components/Truncate.es.js +1 -1
  140. package/dist/components/Workflow.cjs.js +6 -6
  141. package/dist/components/Workflow.es.js +6 -6
  142. package/dist/components/ai/activity.cjs.js +1 -1
  143. package/dist/components/ai/activity.es.js +1 -1
  144. package/dist/components/ai/ask-user.cjs.js +1 -1
  145. package/dist/components/ai/ask-user.es.js +1 -1
  146. package/dist/components/ai/plan.cjs.js +1 -1
  147. package/dist/components/ai/plan.es.js +1 -1
  148. package/dist/components/ai/tool-approval.cjs.js +1 -1
  149. package/dist/components/ai/tool-approval.es.js +1 -1
  150. package/dist/components/ai/tool-call.cjs.js +3 -3
  151. package/dist/components/ai/tool-call.es.js +3 -3
  152. package/dist/{copy-button-CRWQE6VF.js → copy-button-Ddbg9IZn.js} +2 -2
  153. package/dist/{copy-button-CRWQE6VF.js.map → copy-button-Ddbg9IZn.js.map} +1 -1
  154. package/dist/{copy-button-Q9i32p1G.cjs → copy-button-c9mSgKKR.cjs} +2 -2
  155. package/dist/{copy-button-Q9i32p1G.cjs.map → copy-button-c9mSgKKR.cjs.map} +1 -1
  156. package/dist/{data-code-section-c2n-IXav.js → data-code-section-CvLs4lM8.js} +5 -5
  157. package/dist/{data-code-section-c2n-IXav.js.map → data-code-section-CvLs4lM8.js.map} +1 -1
  158. package/dist/{data-code-section-CDH9qfwl.cjs → data-code-section-D0NR1REP.cjs} +5 -5
  159. package/dist/{data-code-section-CDH9qfwl.cjs.map → data-code-section-D0NR1REP.cjs.map} +1 -1
  160. package/dist/{data-list-D5XeKpNR.js → data-list-BfepBJLG.js} +2 -2
  161. package/dist/{data-list-D5XeKpNR.js.map → data-list-BfepBJLG.js.map} +1 -1
  162. package/dist/{data-list-DLFiFrph.cjs → data-list-oQsJVUa6.cjs} +2 -2
  163. package/dist/{data-list-DLFiFrph.cjs.map → data-list-oQsJVUa6.cjs.map} +1 -1
  164. package/dist/{data-list-skeleton-B4G2Rtpm.cjs → data-list-skeleton-BE7yRNks.cjs} +2 -2
  165. package/dist/{data-list-skeleton-B4G2Rtpm.cjs.map → data-list-skeleton-BE7yRNks.cjs.map} +1 -1
  166. package/dist/{data-list-skeleton-CRQBCdB2.js → data-list-skeleton-DnVnqTGL.js} +2 -2
  167. package/dist/{data-list-skeleton-CRQBCdB2.js.map → data-list-skeleton-DnVnqTGL.js.map} +1 -1
  168. package/dist/{data-panel-CQb99UIM.js → data-panel-BLk0mZe6.js} +3 -3
  169. package/dist/{data-panel-CQb99UIM.js.map → data-panel-BLk0mZe6.js.map} +1 -1
  170. package/dist/{data-panel-C3ympXVb.cjs → data-panel-BaqnMzRn.cjs} +3 -3
  171. package/dist/{data-panel-C3ympXVb.cjs.map → data-panel-BaqnMzRn.cjs.map} +1 -1
  172. package/dist/{date-time-range-picker-CRvT0pWo.js → date-time-range-picker-BA3e2LFA.js} +3 -3
  173. package/dist/{date-time-range-picker-CRvT0pWo.js.map → date-time-range-picker-BA3e2LFA.js.map} +1 -1
  174. package/dist/{date-time-range-picker-BwgosA0R.cjs → date-time-range-picker-BNepacnP.cjs} +3 -3
  175. package/dist/{date-time-range-picker-BwgosA0R.cjs.map → date-time-range-picker-BNepacnP.cjs.map} +1 -1
  176. package/dist/{dialog-Bl_yLOAi.cjs → dialog-Cn-8vN46.cjs} +2 -2
  177. package/dist/{dialog-Bl_yLOAi.cjs.map → dialog-Cn-8vN46.cjs.map} +1 -1
  178. package/dist/{dialog-BXtm6e9u.js → dialog-CxFcqD_P.js} +2 -2
  179. package/dist/{dialog-BXtm6e9u.js.map → dialog-CxFcqD_P.js.map} +1 -1
  180. package/dist/{dialog-action-C-p24Zfp.cjs → dialog-action-Cn1hO7s4.cjs} +3 -3
  181. package/dist/{dialog-action-C-p24Zfp.cjs.map → dialog-action-Cn1hO7s4.cjs.map} +1 -1
  182. package/dist/{dialog-action-BmcloPa9.js → dialog-action-DznfKiIm.js} +3 -3
  183. package/dist/{dialog-action-BmcloPa9.js.map → dialog-action-DznfKiIm.js.map} +1 -1
  184. package/dist/domains/auth/components/session-expired.cjs.js +1 -1
  185. package/dist/domains/auth/components/session-expired.es.js +1 -1
  186. package/dist/domains/capabilities.cjs.js +4 -0
  187. package/dist/domains/capabilities.cjs.js.map +1 -1
  188. package/dist/domains/capabilities.es.js +1 -1
  189. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
  190. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
  191. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
  192. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
  193. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
  194. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
  195. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  196. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  197. package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
  198. package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
  199. package/dist/domains/chat/messages/message-row.cjs.js +3 -3
  200. package/dist/domains/chat/messages/message-row.es.js +3 -3
  201. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  202. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  203. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  204. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  205. package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
  206. package/dist/domains/chat/messages/skill-message.es.js +1 -1
  207. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  208. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  209. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +4 -4
  210. package/dist/domains/chat/tools/badges/agent-badge.es.js +4 -4
  211. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  212. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  213. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
  214. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
  215. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
  216. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
  217. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +2 -2
  218. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
  219. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
  220. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
  221. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
  222. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
  223. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  224. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  225. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +1 -1
  226. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +1 -1
  227. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  228. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  229. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +3 -3
  230. package/dist/domains/chat/tools/badges/tool-badge.es.js +3 -3
  231. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +5 -4
  232. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  233. package/dist/domains/chat/tools/badges/workflow-badge.es.js +5 -4
  234. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  235. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  236. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  237. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  238. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  239. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
  240. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
  241. package/dist/domains/logs/components/log-data-panel.cjs.js +3 -3
  242. package/dist/domains/logs/components/log-data-panel.es.js +3 -3
  243. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -3
  244. package/dist/domains/logs/components/logs-list-view.es.js +3 -3
  245. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  246. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  247. package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
  248. package/dist/domains/logs/components/no-logs-info.es.js +1 -1
  249. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  250. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  251. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  252. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  253. package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
  254. package/dist/domains/metrics/components/agent-runs-card.es.js +1 -1
  255. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  256. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  257. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  258. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  259. package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
  260. package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
  261. package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
  262. package/dist/domains/metrics/components/chart-card.es.js +1 -1
  263. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  264. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  265. package/dist/domains/metrics/components/failure-rate-card.cjs.js +1 -1
  266. package/dist/domains/metrics/components/failure-rate-card.es.js +1 -1
  267. package/dist/domains/metrics/components/latency-card.cjs.js +1 -1
  268. package/dist/domains/metrics/components/latency-card.es.js +1 -1
  269. package/dist/domains/metrics/components/scores-card.cjs.js +1 -1
  270. package/dist/domains/metrics/components/scores-card.es.js +1 -1
  271. package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
  272. package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
  273. package/dist/domains/metrics/components/trace-volume-card.cjs.js +1 -1
  274. package/dist/domains/metrics/components/trace-volume-card.es.js +1 -1
  275. package/dist/domains/metrics/components/usage-card.cjs.js +1 -1
  276. package/dist/domains/metrics/components/usage-card.es.js +1 -1
  277. package/dist/domains/metrics/drilldown.cjs.js +1 -1
  278. package/dist/domains/metrics/drilldown.es.js +1 -1
  279. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
  280. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
  281. package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
  282. package/dist/domains/scores/components/score-data-panel.es.js +2 -2
  283. package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
  284. package/dist/domains/scores/components/span-scoring.es.js +3 -3
  285. package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -2
  286. package/dist/domains/scores/components/trace-scores-tab.es.js +2 -2
  287. package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
  288. package/dist/domains/traces/components/feedback-thread.es.js +3 -3
  289. package/dist/domains/traces/components/span-data-panel-view.cjs.js +3 -3
  290. package/dist/domains/traces/components/span-data-panel-view.es.js +3 -3
  291. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  292. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  293. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  294. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  295. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  296. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  297. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  298. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  299. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  300. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  301. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  302. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  303. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  304. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  305. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +3 -3
  306. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +3 -3
  307. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  308. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  309. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
  310. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
  311. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  312. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  313. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  314. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  315. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
  316. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
  317. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +2 -2
  318. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +2 -2
  319. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +2 -1
  320. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  321. package/dist/domains/traces/components/thread-view-by-trace.es.js +2 -1
  322. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  323. package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
  324. package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
  325. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +8 -6
  326. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  327. package/dist/domains/traces/components/trace-data-panel-view.es.js +8 -6
  328. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  329. package/dist/domains/traces/components/trace-data-panel.cjs.js +4 -3
  330. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  331. package/dist/domains/traces/components/trace-data-panel.es.js +4 -3
  332. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  333. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  334. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  335. package/dist/domains/traces/components/trace-span-panel.cjs.js +1 -1
  336. package/dist/domains/traces/components/trace-span-panel.es.js +1 -1
  337. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  338. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  339. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
  340. package/dist/domains/traces/components/trace-thread-item-view.es.js +1 -1
  341. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  342. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  343. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +4 -4
  344. package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +1 -1
  345. package/dist/domains/traces/components/trace-time-range-chip.es.js +4 -4
  346. package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -1
  347. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  348. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  349. package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
  350. package/dist/domains/traces/components/traces-list-view.es.js +3 -3
  351. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
  352. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
  353. package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js +16 -6
  354. package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js.map +1 -1
  355. package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js +16 -6
  356. package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js.map +1 -1
  357. package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +1 -1
  358. package/dist/domains/traces/hooks/use-trace-url-state.es.js +1 -1
  359. package/dist/domains/traces/trace-filters.cjs.js +1 -2
  360. package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
  361. package/dist/domains/traces/trace-filters.es.js +1 -2
  362. package/dist/domains/traces/trace-filters.es.js.map +1 -1
  363. package/dist/domains/traces/trace-query-filters.cjs.js +1 -1
  364. package/dist/domains/traces/trace-query-filters.es.js +1 -1
  365. package/dist/domains/traces.cjs.js +1 -1
  366. package/dist/domains/traces.es.js +1 -1
  367. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  368. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  369. package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
  370. package/dist/domains/workflows/components/workflow-information.es.js +1 -1
  371. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
  372. package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
  373. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
  374. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
  375. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  376. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  377. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  378. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  379. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  380. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  381. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
  382. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
  383. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  384. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  385. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +1 -1
  386. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +1 -1
  387. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  388. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  389. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  390. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  391. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  392. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  393. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  394. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  395. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  396. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  397. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
  398. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
  399. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  400. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  401. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  402. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  403. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -1
  404. package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
  405. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  406. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  407. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
  408. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
  409. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +2 -2
  410. package/dist/domains/workflows/workflow/workflow-run-data.es.js +2 -2
  411. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
  412. package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
  413. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  414. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  415. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +3 -3
  416. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +3 -3
  417. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +1 -1
  418. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
  419. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +1 -1
  420. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +1 -1
  421. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
  422. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
  423. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
  424. package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
  425. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
  426. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
  427. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
  428. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
  429. package/dist/domains/workspace/components/workspace-active-file.cjs.js +1 -1
  430. package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
  431. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +5 -5
  432. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +5 -5
  433. package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
  434. package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
  435. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +2 -2
  436. package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
  437. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
  438. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
  439. package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
  440. package/dist/domains/workspace/components/workspace-search.es.js +1 -1
  441. package/dist/domains/workspace/components/workspace-tree.cjs.js +2 -2
  442. package/dist/domains/workspace/components/workspace-tree.es.js +2 -2
  443. package/dist/{drawer-BXfqQ-yo.cjs → drawer-WMbPLzk5.cjs} +2 -2
  444. package/dist/{drawer-BXfqQ-yo.cjs.map → drawer-WMbPLzk5.cjs.map} +1 -1
  445. package/dist/{drawer-DrorcKlE.js → drawer-YqdQEgNH.js} +2 -2
  446. package/dist/{drawer-DrorcKlE.js.map → drawer-YqdQEgNH.js.map} +1 -1
  447. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  448. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  449. package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
  450. package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
  451. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +5 -5
  452. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +5 -5
  453. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  454. package/dist/ee/signals/examples-pager.es.js +1 -1
  455. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  456. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  457. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
  458. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
  459. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
  460. package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
  461. package/dist/ee/signals/signals-error-state.cjs.js +1 -1
  462. package/dist/ee/signals/signals-error-state.es.js +1 -1
  463. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
  464. package/dist/ee/signals/snapshot-timeline.es.js +1 -1
  465. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  466. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  467. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  468. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  469. package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
  470. package/dist/ee/signals/trace-insight-view.es.js +1 -1
  471. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  472. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  473. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
  474. package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
  475. package/dist/{filter-bar-chip-CYuMQS_q.cjs → filter-bar-chip-BBPHw-rX.cjs} +59 -25
  476. package/dist/filter-bar-chip-BBPHw-rX.cjs.map +1 -0
  477. package/dist/{filter-bar-chip-fXsAVwGZ.js → filter-bar-chip-SX3vDA7h.js} +59 -25
  478. package/dist/filter-bar-chip-SX3vDA7h.js.map +1 -0
  479. package/dist/grain-fill.css +3 -3
  480. package/dist/{input-group-3jsDUOOK.js → input-group-C7WC6xGL.js} +2 -2
  481. package/dist/{input-group-3jsDUOOK.js.map → input-group-C7WC6xGL.js.map} +1 -1
  482. package/dist/{input-group-B_60bxtW.cjs → input-group-CGbhXsmd.cjs} +2 -2
  483. package/dist/{input-group-B_60bxtW.cjs.map → input-group-CGbhXsmd.cjs.map} +1 -1
  484. package/dist/layout/tabbed-container.cjs.js +4 -4
  485. package/dist/layout/tabbed-container.es.js +4 -4
  486. package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
  487. package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
  488. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  489. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  490. package/dist/lib/form/components/date-field.cjs.js +1 -1
  491. package/dist/lib/form/components/date-field.es.js +1 -1
  492. package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
  493. package/dist/lib/form/components/form-submit-row.es.js +1 -1
  494. package/dist/lib/form/components/record-field.cjs.js +1 -1
  495. package/dist/lib/form/components/record-field.es.js +1 -1
  496. package/dist/lib/form/components/select-field.cjs.js +1 -1
  497. package/dist/lib/form/components/select-field.es.js +1 -1
  498. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  499. package/dist/lib/form/components/submit-button.es.js +1 -1
  500. package/dist/{list-search-CtuCqehq.js → list-search-CTZVTRUd.js} +2 -2
  501. package/dist/{list-search-CtuCqehq.js.map → list-search-CTZVTRUd.js.map} +1 -1
  502. package/dist/{list-search-BlgDm306.cjs → list-search-DTVH9Fbj.cjs} +2 -2
  503. package/dist/{list-search-BlgDm306.cjs.map → list-search-DTVH9Fbj.cjs.map} +1 -1
  504. package/dist/{logs-data-list-Bz3LB9tJ.cjs → logs-data-list-BgFT_0qi.cjs} +2 -2
  505. package/dist/{logs-data-list-Bz3LB9tJ.cjs.map → logs-data-list-BgFT_0qi.cjs.map} +1 -1
  506. package/dist/{logs-data-list-CmGZY-tj.js → logs-data-list-C-F2jh04.js} +2 -2
  507. package/dist/{logs-data-list-CmGZY-tj.js.map → logs-data-list-C-F2jh04.js.map} +1 -1
  508. package/dist/{markdown-renderer-hN46cpXk.js → markdown-renderer-9YP7IIQd.js} +3 -3
  509. package/dist/{markdown-renderer-hN46cpXk.js.map → markdown-renderer-9YP7IIQd.js.map} +1 -1
  510. package/dist/{markdown-renderer-C9pb3n-P.cjs → markdown-renderer-B2RV53gr.cjs} +3 -3
  511. package/dist/{markdown-renderer-C9pb3n-P.cjs.map → markdown-renderer-B2RV53gr.cjs.map} +1 -1
  512. package/dist/{message-copy-button-DR5YO8Ms.js → message-copy-button-BSwxcs4F.js} +2 -2
  513. package/dist/{message-copy-button-DR5YO8Ms.js.map → message-copy-button-BSwxcs4F.js.map} +1 -1
  514. package/dist/{message-copy-button-UJ-4xx1Z.cjs → message-copy-button-mKHZUK1g.cjs} +2 -2
  515. package/dist/{message-copy-button-UJ-4xx1Z.cjs.map → message-copy-button-mKHZUK1g.cjs.map} +1 -1
  516. package/dist/{metrics-card-DoO7LGMR.js → metrics-card-BGQys8PU.js} +2 -2
  517. package/dist/{metrics-card-DoO7LGMR.js.map → metrics-card-BGQys8PU.js.map} +1 -1
  518. package/dist/{metrics-card-DwMMmvo-.cjs → metrics-card-QVSVExtn.cjs} +2 -2
  519. package/dist/{metrics-card-DwMMmvo-.cjs.map → metrics-card-QVSVExtn.cjs.map} +1 -1
  520. package/dist/new/layout/page-header.cjs.js +1 -1
  521. package/dist/new/layout/page-header.es.js +1 -1
  522. package/dist/{page-header-BELC4V_d.js → page-header-Bf0zLkyY.js} +26 -13
  523. package/dist/page-header-Bf0zLkyY.js.map +1 -0
  524. package/dist/{page-header-B7iNJsvN.cjs → page-header-CLxPq7T5.cjs} +26 -13
  525. package/dist/page-header-CLxPq7T5.cjs.map +1 -0
  526. package/dist/page-header.css +7 -0
  527. package/dist/{plan-CneICd0O.cjs → plan-D6dxWNaj.cjs} +4 -4
  528. package/dist/{plan-CneICd0O.cjs.map → plan-D6dxWNaj.cjs.map} +1 -1
  529. package/dist/{plan-HG66GE5J.js → plan-mzZj_aS2.js} +4 -4
  530. package/dist/{plan-HG66GE5J.js.map → plan-mzZj_aS2.js.map} +1 -1
  531. package/dist/primitives/menu-item.cjs.js +1 -1
  532. package/dist/primitives/menu-item.es.js +1 -1
  533. package/dist/primitives/trigger-button.cjs.js +1 -1
  534. package/dist/primitives/trigger-button.es.js +1 -1
  535. package/dist/{property-filter-applied-D8ksUq0V.cjs → property-filter-applied-7dHzckeW.cjs} +2 -2
  536. package/dist/{property-filter-applied-D8ksUq0V.cjs.map → property-filter-applied-7dHzckeW.cjs.map} +1 -1
  537. package/dist/{property-filter-applied-BI8sBH9b.js → property-filter-applied-CdbOixsW.js} +2 -2
  538. package/dist/{property-filter-applied-BI8sBH9b.js.map → property-filter-applied-CdbOixsW.js.map} +1 -1
  539. package/dist/{reasoning-activity-Cuk7KOLH.js → reasoning-activity-Cpp4iYTw.js} +2 -2
  540. package/dist/{reasoning-activity-Cuk7KOLH.js.map → reasoning-activity-Cpp4iYTw.js.map} +1 -1
  541. package/dist/{reasoning-activity-dSUBYE37.cjs → reasoning-activity-D2sXBAxE.cjs} +2 -2
  542. package/dist/{reasoning-activity-dSUBYE37.cjs.map → reasoning-activity-D2sXBAxE.cjs.map} +1 -1
  543. package/dist/resize/panel-drawer.cjs.js +1 -1
  544. package/dist/resize/panel-drawer.es.js +1 -1
  545. package/dist/{search-input-C_PutmWo.cjs → search-input-CUGl4cVg.cjs} +2 -2
  546. package/dist/{search-input-C_PutmWo.cjs.map → search-input-CUGl4cVg.cjs.map} +1 -1
  547. package/dist/{search-input-DRbe8Fm2.js → search-input-iS3IW0Qo.js} +2 -2
  548. package/dist/{search-input-DRbe8Fm2.js.map → search-input-iS3IW0Qo.js.map} +1 -1
  549. package/dist/{select-BFHGp0Gs.cjs → select-Cnf7ilWA.cjs} +2 -2
  550. package/dist/{select-BFHGp0Gs.cjs.map → select-Cnf7ilWA.cjs.map} +1 -1
  551. package/dist/{select-CzDDdAMs.js → select-DN0-Usy1.js} +2 -2
  552. package/dist/{select-CzDDdAMs.js.map → select-DN0-Usy1.js.map} +1 -1
  553. package/dist/{side-dialog-CUmxpQRz.js → side-dialog-Qyfm7rKU.js} +4 -4
  554. package/dist/{side-dialog-CUmxpQRz.js.map → side-dialog-Qyfm7rKU.js.map} +1 -1
  555. package/dist/{side-dialog-CJC2Tj0i.cjs → side-dialog-tOsly_KZ.cjs} +4 -4
  556. package/dist/{side-dialog-CJC2Tj0i.cjs.map → side-dialog-tOsly_KZ.cjs.map} +1 -1
  557. package/dist/{span-payload-primitives-BlmorE-u.cjs → span-payload-primitives-DqZn_Q29.cjs} +2 -2
  558. package/dist/{span-payload-primitives-BlmorE-u.cjs.map → span-payload-primitives-DqZn_Q29.cjs.map} +1 -1
  559. package/dist/{span-payload-primitives-DCho2ZIs.js → span-payload-primitives-wxQ0IDhF.js} +2 -2
  560. package/dist/{span-payload-primitives-DCho2ZIs.js.map → span-payload-primitives-wxQ0IDhF.js.map} +1 -1
  561. package/dist/src/domains/capabilities/index.d.ts +1 -1
  562. package/dist/src/domains/traces/hooks/use-trace-filter-persistence.d.ts +5 -1
  563. package/dist/src/domains/traces/trace-filters.d.ts +6 -3
  564. package/dist/src/domains/traces/trace-query-filters.d.ts +3 -1
  565. package/dist/src/ds/components/Button/Button.d.ts +2 -0
  566. package/dist/src/ds/components/FilterBar/use-value-step.d.ts +10 -6
  567. package/dist/src/ds/components/ThinkingLevel/thinking-level-picker.d.ts +9 -1
  568. package/dist/src/ds/new/layout/page-header/page-header-root.d.ts +4 -2
  569. package/dist/style.css +12 -0
  570. package/dist/{tabs-tab-rYy3Vtvm.cjs → tabs-tab-D5ilwDSA.cjs} +2 -2
  571. package/dist/{tabs-tab-rYy3Vtvm.cjs.map → tabs-tab-D5ilwDSA.cjs.map} +1 -1
  572. package/dist/{tabs-tab-BvPKLjyo.js → tabs-tab-sxXpEPLh.js} +2 -2
  573. package/dist/{tabs-tab-BvPKLjyo.js.map → tabs-tab-sxXpEPLh.js.map} +1 -1
  574. package/dist/{thread-list-Dj-L1-NP.cjs → thread-list-8dSs2FNI.cjs} +2 -2
  575. package/dist/{thread-list-Dj-L1-NP.cjs.map → thread-list-8dSs2FNI.cjs.map} +1 -1
  576. package/dist/{thread-list-DwGHKNEn.js → thread-list-Belzl58i.js} +2 -2
  577. package/dist/{thread-list-DwGHKNEn.js.map → thread-list-Belzl58i.js.map} +1 -1
  578. package/dist/{time-picker-CmXQ_gAe.cjs → time-picker-876yLgUN.cjs} +2 -2
  579. package/dist/{time-picker-CmXQ_gAe.cjs.map → time-picker-876yLgUN.cjs.map} +1 -1
  580. package/dist/{time-picker-BovSnZzV.js → time-picker-BWarCKzE.js} +2 -2
  581. package/dist/{time-picker-BovSnZzV.js.map → time-picker-BWarCKzE.js.map} +1 -1
  582. package/dist/{tool-approval-5-OydkZ3.js → tool-approval-BabMPJSL.js} +3 -3
  583. package/dist/{tool-approval-5-OydkZ3.js.map → tool-approval-BabMPJSL.js.map} +1 -1
  584. package/dist/{tool-approval-oCaL8VoJ.cjs → tool-approval-CWOuZz47.cjs} +3 -3
  585. package/dist/{tool-approval-oCaL8VoJ.cjs.map → tool-approval-CWOuZz47.cjs.map} +1 -1
  586. package/dist/{tool-call-arguments-C76bEiB4.cjs → tool-call-arguments-D_59g8vR.cjs} +3 -3
  587. package/dist/{tool-call-arguments-C76bEiB4.cjs.map → tool-call-arguments-D_59g8vR.cjs.map} +1 -1
  588. package/dist/{tool-call-arguments-BWD0lShJ.js → tool-call-arguments-fd023vLB.js} +3 -3
  589. package/dist/{tool-call-arguments-BWD0lShJ.js.map → tool-call-arguments-fd023vLB.js.map} +1 -1
  590. package/dist/{tool-call-mono-DKg1LlPc.cjs → tool-call-mono-BrQxLrvE.cjs} +2 -2
  591. package/dist/{tool-call-mono-DKg1LlPc.cjs.map → tool-call-mono-BrQxLrvE.cjs.map} +1 -1
  592. package/dist/{tool-call-mono-D_2EN3gC.js → tool-call-mono-D0V_wI07.js} +2 -2
  593. package/dist/{tool-call-mono-D_2EN3gC.js.map → tool-call-mono-D0V_wI07.js.map} +1 -1
  594. package/dist/{tool-call-output-CWMj5m4d.js → tool-call-output-BAel_ixd.js} +2 -2
  595. package/dist/{tool-call-output-CWMj5m4d.js.map → tool-call-output-BAel_ixd.js.map} +1 -1
  596. package/dist/{tool-call-output-BOvcdKkE.cjs → tool-call-output-C5PqIAC1.cjs} +2 -2
  597. package/dist/{tool-call-output-BOvcdKkE.cjs.map → tool-call-output-C5PqIAC1.cjs.map} +1 -1
  598. package/dist/{tool-card-BMbGwgpE.js → tool-card-D-w1SgXq.js} +4 -4
  599. package/dist/{tool-card-BMbGwgpE.js.map → tool-card-D-w1SgXq.js.map} +1 -1
  600. package/dist/{tool-card-DC0HF9cD.cjs → tool-card-LNK49o-E.cjs} +4 -4
  601. package/dist/{tool-card-DC0HF9cD.cjs.map → tool-card-LNK49o-E.cjs.map} +1 -1
  602. package/dist/{trace-filters-Cvo41yor.cjs → trace-filters-B9myZP-l.cjs} +64 -52
  603. package/dist/trace-filters-B9myZP-l.cjs.map +1 -0
  604. package/dist/{trace-filters-dZ3rnTH3.js → trace-filters-Cvra0Aum.js} +64 -52
  605. package/dist/trace-filters-Cvra0Aum.js.map +1 -0
  606. package/dist/{traces-data-list-BckeY4Ro.js → traces-data-list-C89IFLf8.js} +2 -2
  607. package/dist/{traces-data-list-BckeY4Ro.js.map → traces-data-list-C89IFLf8.js.map} +1 -1
  608. package/dist/{traces-data-list-CneTHNqI.cjs → traces-data-list-DRSy_7KT.cjs} +2 -2
  609. package/dist/{traces-data-list-CneTHNqI.cjs.map → traces-data-list-DRSy_7KT.cjs.map} +1 -1
  610. package/dist/{use-workflow-graph-runtime-bj7VLhz_.cjs → use-workflow-graph-runtime-FHoQYtWa.cjs} +3 -3
  611. package/dist/{use-workflow-graph-runtime-bj7VLhz_.cjs.map → use-workflow-graph-runtime-FHoQYtWa.cjs.map} +1 -1
  612. package/dist/{use-workflow-graph-runtime-CR0rDgyB.js → use-workflow-graph-runtime-XT_aoo-Z.js} +3 -3
  613. package/dist/{use-workflow-graph-runtime-CR0rDgyB.js.map → use-workflow-graph-runtime-XT_aoo-Z.js.map} +1 -1
  614. package/dist/{workflow-code-dialog-content-PM6SdYjA.cjs → workflow-code-dialog-content-BP55qUnT.cjs} +3 -3
  615. package/dist/{workflow-code-dialog-content-PM6SdYjA.cjs.map → workflow-code-dialog-content-BP55qUnT.cjs.map} +1 -1
  616. package/dist/{workflow-code-dialog-content-DulChA9c.js → workflow-code-dialog-content-CmnuHQzF.js} +3 -3
  617. package/dist/{workflow-code-dialog-content-DulChA9c.js.map → workflow-code-dialog-content-CmnuHQzF.js.map} +1 -1
  618. package/dist/{workflow-condition-card-Jz9a_WTL.js → workflow-condition-card-D30tufXt.js} +3 -3
  619. package/dist/{workflow-condition-card-Jz9a_WTL.js.map → workflow-condition-card-D30tufXt.js.map} +1 -1
  620. package/dist/{workflow-condition-card-Cva9h6Za.cjs → workflow-condition-card-Dy-0c_PT.cjs} +3 -3
  621. package/dist/{workflow-condition-card-Cva9h6Za.cjs.map → workflow-condition-card-Dy-0c_PT.cjs.map} +1 -1
  622. package/dist/{workflow-data-edge-view-DGgf7oiq.cjs → workflow-data-edge-view-AMALwkid.cjs} +2 -2
  623. package/dist/{workflow-data-edge-view-DGgf7oiq.cjs.map → workflow-data-edge-view-AMALwkid.cjs.map} +1 -1
  624. package/dist/{workflow-data-edge-view-Bm9lzG6l.js → workflow-data-edge-view-vb3nHPsI.js} +2 -2
  625. package/dist/{workflow-data-edge-view-Bm9lzG6l.js.map → workflow-data-edge-view-vb3nHPsI.js.map} +1 -1
  626. package/dist/{workflow-debug-controls-CTONMgJw.cjs → workflow-debug-controls-BHsYftQx.cjs} +2 -2
  627. package/dist/{workflow-debug-controls-CTONMgJw.cjs.map → workflow-debug-controls-BHsYftQx.cjs.map} +1 -1
  628. package/dist/{workflow-debug-controls-RqL-k3Mm.js → workflow-debug-controls-VGOzv5eL.js} +2 -2
  629. package/dist/{workflow-debug-controls-RqL-k3Mm.js.map → workflow-debug-controls-VGOzv5eL.js.map} +1 -1
  630. package/dist/{workflow-edge-data-button-BOX0QYw3.js → workflow-edge-data-button-D-XKNKj_.js} +4 -4
  631. package/dist/{workflow-edge-data-button-BOX0QYw3.js.map → workflow-edge-data-button-D-XKNKj_.js.map} +1 -1
  632. package/dist/{workflow-edge-data-button-0J0U0_IH.cjs → workflow-edge-data-button-ETNa_T9p.cjs} +4 -4
  633. package/dist/{workflow-edge-data-button-0J0U0_IH.cjs.map → workflow-edge-data-button-ETNa_T9p.cjs.map} +1 -1
  634. package/dist/{workflow-step-action-Bh8ie_d0.cjs → workflow-step-action-CDBpEltB.cjs} +2 -2
  635. package/dist/{workflow-step-action-Bh8ie_d0.cjs.map → workflow-step-action-CDBpEltB.cjs.map} +1 -1
  636. package/dist/{workflow-step-action-CDCo6X1b.js → workflow-step-action-Dnf3HqLP.js} +2 -2
  637. package/dist/{workflow-step-action-CDCo6X1b.js.map → workflow-step-action-Dnf3HqLP.js.map} +1 -1
  638. package/package.json +10 -10
  639. package/dist/Button-BTuu6_hv.cjs.map +0 -1
  640. package/dist/Button-D76HGlPP.js.map +0 -1
  641. package/dist/filter-bar-chip-CYuMQS_q.cjs.map +0 -1
  642. package/dist/filter-bar-chip-fXsAVwGZ.js.map +0 -1
  643. package/dist/page-header-B7iNJsvN.cjs.map +0 -1
  644. package/dist/page-header-BELC4V_d.js.map +0 -1
  645. package/dist/trace-filters-Cvo41yor.cjs.map +0 -1
  646. package/dist/trace-filters-dZ3rnTH3.js.map +0 -1
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const propertyFilterApplied = require('../property-filter-applied-D8ksUq0V.cjs');
5
+ const propertyFilterApplied = require('../property-filter-applied-7dHzckeW.cjs');
6
6
  const jsxRuntime = require('react/jsx-runtime');
7
7
  const lucideReact = require('lucide-react');
8
8
  const React = require('react');
9
- const Button = require('../Button-BTuu6_hv.cjs');
10
- const combobox = require('../combobox-C94lovBP.cjs');
9
+ const Button = require('../Button-BpSkkuzG.cjs');
10
+ const combobox = require('../combobox-Csiduxme.cjs');
11
11
  const field = require('../field-D1SVMPMz.cjs');
12
12
  require('../field-control-aria-WzMGs0A4.cjs');
13
13
  const popover = require('../popover-CWHYNPp8.cjs');
@@ -1,10 +1,10 @@
1
- import { b as PickMultiPanel } from '../property-filter-applied-BI8sBH9b.js';
2
- export { a as PropertyFilterActions, P as PropertyFilterApplied } from '../property-filter-applied-BI8sBH9b.js';
1
+ import { b as PickMultiPanel } from '../property-filter-applied-CdbOixsW.js';
2
+ export { a as PropertyFilterActions, P as PropertyFilterApplied } from '../property-filter-applied-CdbOixsW.js';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
  import { ListFilterPlusIcon, ArrowLeftIcon, FilterIcon, PlusIcon, X, ListFilterPlus, ChevronRightIcon } from 'lucide-react';
5
5
  import { useMemo, useState, useRef, useCallback, useEffect, forwardRef } from 'react';
6
- import { B as Button } from '../Button-D76HGlPP.js';
7
- import { C as Combobox } from '../combobox-Cm87oqoh.js';
6
+ import { B as Button } from '../Button-MHlMpc97.js';
7
+ import { C as Combobox } from '../combobox-8_JEWMYs.js';
8
8
  import { F as Field, c as FieldError } from '../field-B89BEZg4.js';
9
9
  import '../field-control-aria-DB6y41tQ.js';
10
10
  import { P as Popover, b as PopoverTrigger, a as PopoverContent } from '../popover-Jf2UUdQ1.js';
@@ -6,12 +6,12 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
7
  const React = require('react');
8
8
  const utils_ruleEngine = require('../utils/rule-engine.cjs.js');
9
- const select = require('../select-BFHGp0Gs.cjs');
9
+ const select = require('../select-Cnf7ilWA.cjs');
10
10
  const Txt = require('../Txt-DXjXpX9r.cjs');
11
11
  const icons_Icon = require('../icons/Icon.cjs.js');
12
12
  const utils_cn = require('../cn-TqD01zH-.cjs');
13
13
  const input = require('../input-HPE241gI.cjs');
14
- const Button = require('../Button-BTuu6_hv.cjs');
14
+ const Button = require('../Button-BpSkkuzG.cjs');
15
15
  const primitives_transitions = require('../primitives/transitions.cjs.js');
16
16
  const primitives_typography = require('../primitives/typography.cjs.js');
17
17
 
@@ -2,12 +2,12 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Type, ToggleLeft, Hash, List, Braces, Ban, Check, ListX, ChevronsLeft, ChevronsRight, ChevronLeft, ChevronRight, Text, TextSearch, EqualNot, Equal, X, Plus, Component } from 'lucide-react';
3
3
  import * as React from 'react';
4
4
  import { createDefaultRule, isRule, createDefaultRuleGroup } from '../utils/rule-engine.es.js';
5
- import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../select-CzDDdAMs.js';
5
+ import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../select-DN0-Usy1.js';
6
6
  import { T as Txt } from '../Txt-BuzYj7Vy.js';
7
7
  import { Icon } from '../icons/Icon.es.js';
8
8
  import { c as cn } from '../cn-coERSHz5.js';
9
9
  import { I as Input } from '../input-vi0ICZHe.js';
10
- import { B as Button } from '../Button-D76HGlPP.js';
10
+ import { B as Button } from '../Button-MHlMpc97.js';
11
11
  import { controlStateColorTransition } from '../primitives/transitions.es.js';
12
12
  import { quietTextHover } from '../primitives/typography.es.js';
13
13
 
@@ -6,9 +6,9 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
7
  const React = require('react');
8
8
  const v4 = require('zod/v4');
9
- const filterBarChip = require('../filter-bar-chip-CYuMQS_q.cjs');
9
+ const filterBarChip = require('../filter-bar-chip-BBPHw-rX.cjs');
10
10
  const Txt = require('../Txt-DXjXpX9r.cjs');
11
- const Button = require('../Button-BTuu6_hv.cjs');
11
+ const Button = require('../Button-BpSkkuzG.cjs');
12
12
  const contextMenu = require('../context-menu-Dpm8dBLw.cjs');
13
13
  const dropdownMenu = require('../dropdown-menu-Bg96BCnK.cjs');
14
14
  const hoverCard = require('../hover-card-DQaLn-VR.cjs');
@@ -2,9 +2,9 @@ import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
2
2
  import { LayersPlusIcon, ChevronDownIcon, LayersIcon, PencilIcon, TextCursorInputIcon, CopyIcon, Trash2Icon } from 'lucide-react';
3
3
  import { useState, Fragment, useSyncExternalStore } from 'react';
4
4
  import { z } from 'zod/v4';
5
- import { a as FilterBarFieldLabel, t as formatValue } from '../filter-bar-chip-fXsAVwGZ.js';
5
+ import { a as FilterBarFieldLabel, t as formatValue } from '../filter-bar-chip-SX3vDA7h.js';
6
6
  import { T as Txt } from '../Txt-BuzYj7Vy.js';
7
- import { B as Button, b as buttonVariants } from '../Button-D76HGlPP.js';
7
+ import { B as Button, b as buttonVariants } from '../Button-MHlMpc97.js';
8
8
  import { C as ContextMenu } from '../context-menu-BVth1SD9.js';
9
9
  import { D as DropdownMenu } from '../dropdown-menu-D8GR_NhL.js';
10
10
  import { H as HoverCard, b as HoverCardTrigger, a as HoverCardContent } from '../hover-card-DBunOtRV.js';
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const searchInput = require('../search-input-C_PutmWo.cjs');
5
+ const searchInput = require('../search-input-CUGl4cVg.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { S as SearchInput } from '../search-input-DRbe8Fm2.js';
1
+ export { S as SearchInput } from '../search-input-iS3IW0Qo.js';
2
2
  //# sourceMappingURL=SearchInput.es.js.map
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const select = require('../select-BFHGp0Gs.cjs');
5
+ const select = require('../select-Cnf7ilWA.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { S as Select, a as SelectContent, b as SelectGroup, c as SelectItem, d as SelectTrigger, e as SelectValue } from '../select-CzDDdAMs.js';
1
+ export { S as Select, a as SelectContent, b as SelectGroup, c as SelectItem, d as SelectTrigger, e as SelectValue } from '../select-DN0-Usy1.js';
2
2
  //# sourceMappingURL=Select.es.js.map
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const sideDialog = require('../side-dialog-CJC2Tj0i.cjs');
5
+ const sideDialog = require('../side-dialog-tOsly_KZ.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { S as SideDialog } from '../side-dialog-CUmxpQRz.js';
1
+ export { S as SideDialog } from '../side-dialog-Qyfm7rKU.js';
2
2
  //# sourceMappingURL=SideDialog.es.js.map
@@ -16,11 +16,11 @@ const primitives_typography = require('../primitives/typography.cjs.js');
16
16
  const scrollArea = require('../scroll-area-CVgjRzTS.cjs');
17
17
  const index = require('../index-DlPxfJz9.cjs');
18
18
  const primitives_controlSize = require('../primitives/control-size.cjs.js');
19
- const drawer = require('../drawer-BXfqQ-yo.cjs');
19
+ const drawer = require('../drawer-WMbPLzk5.cjs');
20
20
  const primitives_resizeHandleIndicator = require('../primitives/resize-handle-indicator.cjs.js');
21
21
  const v4 = require('zod/v4');
22
- const dialog = require('../dialog-Bl_yLOAi.cjs');
23
- const select = require('../select-BFHGp0Gs.cjs');
22
+ const dialog = require('../dialog-Cn-8vN46.cjs');
23
+ const select = require('../select-Cnf7ilWA.cjs');
24
24
  const contextMenu = require('../context-menu-Dpm8dBLw.cjs');
25
25
  const dropdownMenu = require('../dropdown-menu-Bg96BCnK.cjs');
26
26
  const hooks_useLocalStorageState = require('../hooks/use-local-storage-state.cjs.js');
@@ -12,11 +12,11 @@ import { quietTextHoverInGroup, quietTextHover } from '../primitives/typography.
12
12
  import { S as ScrollArea, a as ScrollAreaViewport } from '../scroll-area-BywIlj3F.js';
13
13
  import { c as cva } from '../index-D_f78K7e.js';
14
14
  import { controlHeight } from '../primitives/control-size.es.js';
15
- import { D as Drawer, d as DrawerContent, c as DrawerClose, o as DrawerTitle, e as DrawerDescription } from '../drawer-DrorcKlE.js';
15
+ import { D as Drawer, d as DrawerContent, c as DrawerClose, o as DrawerTitle, e as DrawerDescription } from '../drawer-YqdQEgNH.js';
16
16
  import { ResizeHandleIndicator } from '../primitives/resize-handle-indicator.es.js';
17
17
  import { z } from 'zod/v4';
18
- import { D as Dialog, d as DialogContent, g as DialogHeader, j as DialogTitle, e as DialogDescription, a as DialogBody } from '../dialog-BXtm6e9u.js';
19
- import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../select-CzDDdAMs.js';
18
+ import { D as Dialog, d as DialogContent, g as DialogHeader, j as DialogTitle, e as DialogDescription, a as DialogBody } from '../dialog-CxFcqD_P.js';
19
+ import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../select-DN0-Usy1.js';
20
20
  import { C as ContextMenu } from '../context-menu-BVth1SD9.js';
21
21
  import { D as DropdownMenu } from '../dropdown-menu-D8GR_NhL.js';
22
22
  import { useLocalStorageState } from '../hooks/use-local-storage-state.es.js';
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const tabsRoot = require('../tabs-root-Phsi-P1b.cjs');
6
6
  const tabsList = require('../tabs-list-xikY_dug.cjs');
7
- const tabsTab = require('../tabs-tab-rYy3Vtvm.cjs');
7
+ const tabsTab = require('../tabs-tab-D5ilwDSA.cjs');
8
8
  const tabsContent = require('../tabs-content-C3VQRDXH.cjs');
9
9
 
10
10
 
@@ -1,5 +1,5 @@
1
1
  export { T as Tabs } from '../tabs-root-CvGhdNKc.js';
2
2
  export { T as TabList } from '../tabs-list-DY_hziv7.js';
3
- export { T as Tab } from '../tabs-tab-BvPKLjyo.js';
3
+ export { T as Tab } from '../tabs-tab-sxXpEPLh.js';
4
4
  export { T as TabContent } from '../tabs-content-6EaLEj8a.js';
5
5
  //# sourceMappingURL=Tabs.es.js.map
@@ -181,44 +181,55 @@ function ThinkingLevelBars({ options, value }) {
181
181
  index
182
182
  )) });
183
183
  }
184
+ function ThinkingLevelUnavailable({
185
+ options,
186
+ label,
187
+ reason
188
+ }) {
189
+ return /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
190
+ /* @__PURE__ */ jsxRuntime.jsx(
191
+ tooltip.TooltipTrigger,
192
+ {
193
+ render: /* @__PURE__ */ jsxRuntime.jsx(
194
+ "span",
195
+ {
196
+ role: "button",
197
+ tabIndex: 0,
198
+ "aria-disabled": "true",
199
+ "aria-label": `${label}: unavailable. ${reason}`,
200
+ className: utils_cn.cn(
201
+ "inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder",
202
+ primitives_transitions.focusRing
203
+ )
204
+ }
205
+ ),
206
+ children: /* @__PURE__ */ jsxRuntime.jsx(ThinkingLevelBars, { options, value: void 0 })
207
+ }
208
+ ),
209
+ /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { side: "top", className: "max-w-64", children: reason })
210
+ ] });
211
+ }
184
212
  function ThinkingLevelPicker({
185
213
  options,
186
214
  value,
187
215
  label,
188
216
  unavailableReason,
189
217
  description,
218
+ origin,
219
+ footer,
190
220
  onChange
191
221
  }) {
192
222
  if (unavailableReason) {
193
- return /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
194
- /* @__PURE__ */ jsxRuntime.jsx(
195
- tooltip.TooltipTrigger,
196
- {
197
- render: /* @__PURE__ */ jsxRuntime.jsx(
198
- "span",
199
- {
200
- role: "button",
201
- tabIndex: 0,
202
- "aria-disabled": "true",
203
- "aria-label": `${label}: unavailable. ${unavailableReason}`,
204
- className: utils_cn.cn(
205
- "inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder",
206
- primitives_transitions.focusRing
207
- )
208
- }
209
- ),
210
- children: /* @__PURE__ */ jsxRuntime.jsx(ThinkingLevelBars, { options, value: void 0 })
211
- }
212
- ),
213
- /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { side: "top", className: "max-w-64", children: unavailableReason })
214
- ] });
223
+ return /* @__PURE__ */ jsxRuntime.jsx(ThinkingLevelUnavailable, { options, label, reason: unavailableReason });
215
224
  }
216
- const triggerLabel = `${label}: ${options.find((option) => option.value === value)?.label ?? value}`;
225
+ const levelLabel = options.find((option) => option.value === value)?.label ?? value;
226
+ const triggerLabel = origin ? `${label}: ${levelLabel} · ${origin}` : `${label}: ${levelLabel}`;
217
227
  return /* @__PURE__ */ jsxRuntime.jsxs(popover.Popover, { children: [
218
228
  /* @__PURE__ */ jsxRuntime.jsx(popover.PopoverTrigger, { variant: "ghost", size: "sm", "aria-label": triggerLabel, tooltip: triggerLabel, className: "shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(ThinkingLevelBars, { options, value }) }),
219
229
  /* @__PURE__ */ jsxRuntime.jsxs(popover.PopoverContent, { align: "end", className: "flex flex-col gap-3", children: [
220
230
  /* @__PURE__ */ jsxRuntime.jsx(ThinkingLevelRamp, { options, value, label, onChange }),
221
- description ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "p", variant: "caption", tone: "muted", children: description }) : null
231
+ description ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "p", variant: "caption", tone: "muted", children: description }) : null,
232
+ footer
222
233
  ] })
223
234
  ] });
224
235
  }
@@ -227,4 +238,5 @@ exports.ThinkingLevelBars = ThinkingLevelBars;
227
238
  exports.ThinkingLevelPicker = ThinkingLevelPicker;
228
239
  exports.ThinkingLevelRamp = ThinkingLevelRamp;
229
240
  exports.ThinkingLevelSlider = ThinkingLevelSlider;
241
+ exports.ThinkingLevelUnavailable = ThinkingLevelUnavailable;
230
242
  //# sourceMappingURL=ThinkingLevel.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThinkingLevel.cjs.js","sources":["../../src/ds/components/ThinkingLevel/use-thinking-level-stop.ts","../../src/ds/components/ThinkingLevel/thinking-level-slider.tsx","../../src/ds/components/ThinkingLevel/thinking-level-ramp.tsx","../../src/ds/components/ThinkingLevel/thinking-level-picker.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelOption<T extends string = string> {\n value: T;\n label: string;\n /** `muted` means no thinking at all; `warning` marks a level whose cost climbs. */\n emphasis?: 'muted' | 'warning';\n}\n\nexport const invisibleRangeInputClassName = cn(\n 'cursor-pointer appearance-none bg-transparent',\n focusRing,\n '[&::-webkit-slider-runnable-track]:h-full [&::-webkit-slider-runnable-track]:bg-transparent',\n '[&::-webkit-slider-thumb]:h-full [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:bg-transparent',\n '[&::-moz-range-thumb]:h-full [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:border-0',\n '[&::-moz-range-thumb]:bg-transparent',\n);\n\nexport function useThinkingLevelStop<T extends string>({\n options,\n value,\n onChange,\n}: {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n onChange: (value: T) => void | Promise<unknown>;\n}) {\n const [draggedStop, setDraggedStop] = useState<number>();\n const [heldRelease, setHeldRelease] = useState<{ stop: number }>();\n\n const settledStop = Math.max(\n options.findIndex(option => option.value === value),\n 0,\n );\n const pendingStop = draggedStop ?? heldRelease?.stop;\n const shownStop = pendingStop ?? settledStop;\n\n // Holding the drop until the write settles: clearing it first shows the old\n // stop for a frame, then the new one — two jumps for one change.\n const commit = async () => {\n const stop = draggedStop;\n setDraggedStop(undefined);\n if (stop === undefined || stop === settledStop) return;\n const option = options[stop];\n if (!option) return;\n const release = { stop };\n setHeldRelease(release);\n try {\n await onChange(option.value);\n } finally {\n setHeldRelease(current => (current === release ? undefined : current));\n }\n };\n\n const commitOnRelease = () => void commit();\n\n return {\n shownStop,\n shownOption: options[shownStop],\n isPending: pendingStop !== undefined,\n rangeInputProps: {\n type: 'range',\n min: 0,\n max: Math.max(options.length - 1, 0),\n step: 1,\n value: shownStop,\n onChange: (event: ChangeEvent<HTMLInputElement>) => setDraggedStop(Number(event.target.value)),\n onPointerUp: commitOnRelease,\n onPointerCancel: commitOnRelease,\n onKeyUp: commitOnRelease,\n onBlur: commitOnRelease,\n },\n };\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelSliderProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n ariaLabel: string;\n disabled?: boolean;\n /** Appended to the announced value, e.g. ` · follows base` when the level is inherited. */\n valueTextSuffix?: string;\n /** Returning the write lets the thumb hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n className?: string;\n}\n\nconst EMPHASIS_TONE = {\n muted: 'text-placeholder',\n warning: 'text-warning-foreground',\n} as const;\n\nexport function ThinkingLevelSlider<T extends string>({\n options,\n value,\n ariaLabel,\n disabled,\n valueTextSuffix,\n onChange,\n className,\n}: ThinkingLevelSliderProps<T>) {\n const { shownStop, shownOption, isPending, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n const tone = shownOption?.emphasis ? EMPHASIS_TONE[shownOption.emphasis] : 'text-foreground';\n const valueText = `${shownOption?.label ?? ''}${isPending ? '' : (valueTextSuffix ?? '')}`;\n const travelled = `calc(0.5rem + (100% - 1rem) * ${shownStop / lastStop})`;\n\n return (\n <div className={cn('flex items-center gap-2', tone, disabled && 'pointer-events-none opacity-50', className)}>\n <Txt as=\"span\" variant=\"caption\" className=\"w-20 shrink-0 text-right\">\n {shownOption?.label}\n </Txt>\n\n <span className=\"relative flex h-7 w-36 items-center rounded-lg bg-fill\">\n <span\n aria-hidden\n className=\"absolute inset-y-0 left-0 rounded-lg bg-fill-strong\"\n style={{ width: `calc(${travelled} + 6px)` }}\n />\n <span aria-hidden className=\"pointer-events-none absolute inset-x-[6.5px] flex justify-between\">\n {options.map(option => (\n <span key={option.value} className=\"size-[3px] rounded-full bg-current/40\" />\n ))}\n </span>\n <span\n aria-hidden\n className=\"absolute h-4 w-[3px] -translate-x-1/2 rounded-full bg-current\"\n style={{ left: travelled }}\n />\n <input\n {...rangeInputProps}\n aria-label={ariaLabel}\n aria-valuetext={valueText}\n disabled={disabled}\n className={cn('relative h-7 w-full rounded-lg', invisibleRangeInputClassName)}\n />\n </span>\n </div>\n );\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelRampProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Returning the write lets the ramp hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nfunction filledBarColor(option: ThinkingLevelOption) {\n return option.emphasis === 'warning' ? 'bg-warning-foreground' : 'bg-foreground';\n}\n\nexport function ThinkingLevelRamp<T extends string>({ options, value, label, onChange }: ThinkingLevelRampProps<T>) {\n const { shownStop, shownOption, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Txt as=\"p\" variant=\"label\" tone=\"ink\">\n {label}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {shownOption?.label}\n </Txt>\n </div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"relative flex h-10 items-end gap-1\">\n {options.map((option, stop) => (\n <span\n key={option.value}\n aria-hidden\n className={cn(\n 'flex-1 rounded-sm transition-colors',\n stop <= shownStop ? filledBarColor(option) : 'bg-fill',\n )}\n style={{ height: `${20 + (80 * stop) / lastStop}%` }}\n />\n ))}\n <input\n {...rangeInputProps}\n aria-label={label}\n aria-valuetext={shownOption?.label}\n className={cn('absolute inset-0 size-full rounded-sm', invisibleRangeInputClassName)}\n />\n </div>\n <div className=\"flex justify-between\">\n {options.map((option, stop) => (\n <Txt\n key={option.value}\n as=\"span\"\n variant=\"meta\"\n tone={stop === shownStop ? 'ink' : 'faint'}\n className=\"flex-1 text-center\"\n >\n {option.label}\n </Txt>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { ThinkingLevelRamp } from './thinking-level-ramp';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelBarsProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T | undefined;\n}\n\nexport function ThinkingLevelBars<T extends string>({ options, value }: ThinkingLevelBarsProps<T>) {\n const thinkingOptions = options.filter(option => option.emphasis !== 'muted');\n const filled = thinkingOptions.findIndex(option => option.value === value) + 1;\n const barCount = Math.max(thinkingOptions.length, 1);\n return (\n <span aria-hidden className=\"flex h-3 items-end gap-0.5\">\n {Array.from({ length: barCount }, (_, index) => (\n <span\n key={index}\n className={cn('w-[3px] rounded-xs', index < filled ? 'bg-current' : 'bg-current/25')}\n style={{ height: `${40 + (60 * index) / Math.max(barCount - 1, 1)}%` }}\n />\n ))}\n </span>\n );\n}\n\nexport interface ThinkingLevelPickerProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Disables the trigger and explains why in its tooltip, e.g. when the model cannot think. */\n unavailableReason?: string;\n description?: ReactNode;\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nexport function ThinkingLevelPicker<T extends string>({\n options,\n value,\n label,\n unavailableReason,\n description,\n onChange,\n}: ThinkingLevelPickerProps<T>) {\n if (unavailableReason) {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled=\"true\"\n aria-label={`${label}: unavailable. ${unavailableReason}`}\n className={cn(\n 'inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder',\n focusRing,\n )}\n />\n }\n >\n <ThinkingLevelBars options={options} value={undefined} />\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-64\">\n {unavailableReason}\n </TooltipContent>\n </Tooltip>\n );\n }\n\n const triggerLabel = `${label}: ${options.find(option => option.value === value)?.label ?? value}`;\n\n return (\n <Popover>\n <PopoverTrigger variant=\"ghost\" size=\"sm\" aria-label={triggerLabel} tooltip={triggerLabel} className=\"shrink-0\">\n <ThinkingLevelBars options={options} value={value} />\n </PopoverTrigger>\n <PopoverContent align=\"end\" className=\"flex flex-col gap-3\">\n <ThinkingLevelRamp options={options} value={value} label={label} onChange={onChange} />\n {description ? (\n <Txt as=\"p\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["cn","focusRing","useState","jsxs","jsx","Txt","Tooltip","TooltipTrigger","TooltipContent","Popover","PopoverTrigger","PopoverContent"],"mappings":"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"}
1
+ {"version":3,"file":"ThinkingLevel.cjs.js","sources":["../../src/ds/components/ThinkingLevel/use-thinking-level-stop.ts","../../src/ds/components/ThinkingLevel/thinking-level-slider.tsx","../../src/ds/components/ThinkingLevel/thinking-level-ramp.tsx","../../src/ds/components/ThinkingLevel/thinking-level-picker.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelOption<T extends string = string> {\n value: T;\n label: string;\n /** `muted` means no thinking at all; `warning` marks a level whose cost climbs. */\n emphasis?: 'muted' | 'warning';\n}\n\nexport const invisibleRangeInputClassName = cn(\n 'cursor-pointer appearance-none bg-transparent',\n focusRing,\n '[&::-webkit-slider-runnable-track]:h-full [&::-webkit-slider-runnable-track]:bg-transparent',\n '[&::-webkit-slider-thumb]:h-full [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:bg-transparent',\n '[&::-moz-range-thumb]:h-full [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:border-0',\n '[&::-moz-range-thumb]:bg-transparent',\n);\n\nexport function useThinkingLevelStop<T extends string>({\n options,\n value,\n onChange,\n}: {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n onChange: (value: T) => void | Promise<unknown>;\n}) {\n const [draggedStop, setDraggedStop] = useState<number>();\n const [heldRelease, setHeldRelease] = useState<{ stop: number }>();\n\n const settledStop = Math.max(\n options.findIndex(option => option.value === value),\n 0,\n );\n const pendingStop = draggedStop ?? heldRelease?.stop;\n const shownStop = pendingStop ?? settledStop;\n\n // Holding the drop until the write settles: clearing it first shows the old\n // stop for a frame, then the new one — two jumps for one change.\n const commit = async () => {\n const stop = draggedStop;\n setDraggedStop(undefined);\n if (stop === undefined || stop === settledStop) return;\n const option = options[stop];\n if (!option) return;\n const release = { stop };\n setHeldRelease(release);\n try {\n await onChange(option.value);\n } finally {\n setHeldRelease(current => (current === release ? undefined : current));\n }\n };\n\n const commitOnRelease = () => void commit();\n\n return {\n shownStop,\n shownOption: options[shownStop],\n isPending: pendingStop !== undefined,\n rangeInputProps: {\n type: 'range',\n min: 0,\n max: Math.max(options.length - 1, 0),\n step: 1,\n value: shownStop,\n onChange: (event: ChangeEvent<HTMLInputElement>) => setDraggedStop(Number(event.target.value)),\n onPointerUp: commitOnRelease,\n onPointerCancel: commitOnRelease,\n onKeyUp: commitOnRelease,\n onBlur: commitOnRelease,\n },\n };\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelSliderProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n ariaLabel: string;\n disabled?: boolean;\n /** Appended to the announced value, e.g. ` · follows base` when the level is inherited. */\n valueTextSuffix?: string;\n /** Returning the write lets the thumb hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n className?: string;\n}\n\nconst EMPHASIS_TONE = {\n muted: 'text-placeholder',\n warning: 'text-warning-foreground',\n} as const;\n\nexport function ThinkingLevelSlider<T extends string>({\n options,\n value,\n ariaLabel,\n disabled,\n valueTextSuffix,\n onChange,\n className,\n}: ThinkingLevelSliderProps<T>) {\n const { shownStop, shownOption, isPending, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n const tone = shownOption?.emphasis ? EMPHASIS_TONE[shownOption.emphasis] : 'text-foreground';\n const valueText = `${shownOption?.label ?? ''}${isPending ? '' : (valueTextSuffix ?? '')}`;\n const travelled = `calc(0.5rem + (100% - 1rem) * ${shownStop / lastStop})`;\n\n return (\n <div className={cn('flex items-center gap-2', tone, disabled && 'pointer-events-none opacity-50', className)}>\n <Txt as=\"span\" variant=\"caption\" className=\"w-20 shrink-0 text-right\">\n {shownOption?.label}\n </Txt>\n\n <span className=\"relative flex h-7 w-36 items-center rounded-lg bg-fill\">\n <span\n aria-hidden\n className=\"absolute inset-y-0 left-0 rounded-lg bg-fill-strong\"\n style={{ width: `calc(${travelled} + 6px)` }}\n />\n <span aria-hidden className=\"pointer-events-none absolute inset-x-[6.5px] flex justify-between\">\n {options.map(option => (\n <span key={option.value} className=\"size-[3px] rounded-full bg-current/40\" />\n ))}\n </span>\n <span\n aria-hidden\n className=\"absolute h-4 w-[3px] -translate-x-1/2 rounded-full bg-current\"\n style={{ left: travelled }}\n />\n <input\n {...rangeInputProps}\n aria-label={ariaLabel}\n aria-valuetext={valueText}\n disabled={disabled}\n className={cn('relative h-7 w-full rounded-lg', invisibleRangeInputClassName)}\n />\n </span>\n </div>\n );\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelRampProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Returning the write lets the ramp hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nfunction filledBarColor(option: ThinkingLevelOption) {\n return option.emphasis === 'warning' ? 'bg-warning-foreground' : 'bg-foreground';\n}\n\nexport function ThinkingLevelRamp<T extends string>({ options, value, label, onChange }: ThinkingLevelRampProps<T>) {\n const { shownStop, shownOption, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Txt as=\"p\" variant=\"label\" tone=\"ink\">\n {label}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {shownOption?.label}\n </Txt>\n </div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"relative flex h-10 items-end gap-1\">\n {options.map((option, stop) => (\n <span\n key={option.value}\n aria-hidden\n className={cn(\n 'flex-1 rounded-sm transition-colors',\n stop <= shownStop ? filledBarColor(option) : 'bg-fill',\n )}\n style={{ height: `${20 + (80 * stop) / lastStop}%` }}\n />\n ))}\n <input\n {...rangeInputProps}\n aria-label={label}\n aria-valuetext={shownOption?.label}\n className={cn('absolute inset-0 size-full rounded-sm', invisibleRangeInputClassName)}\n />\n </div>\n <div className=\"flex justify-between\">\n {options.map((option, stop) => (\n <Txt\n key={option.value}\n as=\"span\"\n variant=\"meta\"\n tone={stop === shownStop ? 'ink' : 'faint'}\n className=\"flex-1 text-center\"\n >\n {option.label}\n </Txt>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { ThinkingLevelRamp } from './thinking-level-ramp';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelBarsProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T | undefined;\n}\n\nexport function ThinkingLevelBars<T extends string>({ options, value }: ThinkingLevelBarsProps<T>) {\n const thinkingOptions = options.filter(option => option.emphasis !== 'muted');\n const filled = thinkingOptions.findIndex(option => option.value === value) + 1;\n const barCount = Math.max(thinkingOptions.length, 1);\n return (\n <span aria-hidden className=\"flex h-3 items-end gap-0.5\">\n {Array.from({ length: barCount }, (_, index) => (\n <span\n key={index}\n className={cn('w-[3px] rounded-xs', index < filled ? 'bg-current' : 'bg-current/25')}\n style={{ height: `${40 + (60 * index) / Math.max(barCount - 1, 1)}%` }}\n />\n ))}\n </span>\n );\n}\n\nexport interface ThinkingLevelUnavailableProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n label: string;\n reason: string;\n}\n\nexport function ThinkingLevelUnavailable<T extends string>({\n options,\n label,\n reason,\n}: ThinkingLevelUnavailableProps<T>) {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled=\"true\"\n aria-label={`${label}: unavailable. ${reason}`}\n className={cn(\n 'inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder',\n focusRing,\n )}\n />\n }\n >\n <ThinkingLevelBars options={options} value={undefined} />\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-64\">\n {reason}\n </TooltipContent>\n </Tooltip>\n );\n}\n\nexport interface ThinkingLevelPickerProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Disables the trigger and explains why in its tooltip, e.g. when the model cannot think. */\n unavailableReason?: string;\n description?: ReactNode;\n origin?: string;\n footer?: ReactNode;\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nexport function ThinkingLevelPicker<T extends string>({\n options,\n value,\n label,\n unavailableReason,\n description,\n origin,\n footer,\n onChange,\n}: ThinkingLevelPickerProps<T>) {\n if (unavailableReason) {\n return <ThinkingLevelUnavailable options={options} label={label} reason={unavailableReason} />;\n }\n\n const levelLabel = options.find(option => option.value === value)?.label ?? value;\n const triggerLabel = origin ? `${label}: ${levelLabel} · ${origin}` : `${label}: ${levelLabel}`;\n\n return (\n <Popover>\n <PopoverTrigger variant=\"ghost\" size=\"sm\" aria-label={triggerLabel} tooltip={triggerLabel} className=\"shrink-0\">\n <ThinkingLevelBars options={options} value={value} />\n </PopoverTrigger>\n <PopoverContent align=\"end\" className=\"flex flex-col gap-3\">\n <ThinkingLevelRamp options={options} value={value} label={label} onChange={onChange} />\n {description ? (\n <Txt as=\"p\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n {footer}\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["cn","focusRing","useState","jsxs","jsx","Txt","Tooltip","TooltipTrigger","TooltipContent","Popover","PopoverTrigger","PopoverContent"],"mappings":"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"}
@@ -177,47 +177,58 @@ function ThinkingLevelBars({ options, value }) {
177
177
  index
178
178
  )) });
179
179
  }
180
+ function ThinkingLevelUnavailable({
181
+ options,
182
+ label,
183
+ reason
184
+ }) {
185
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [
186
+ /* @__PURE__ */ jsx(
187
+ TooltipTrigger,
188
+ {
189
+ render: /* @__PURE__ */ jsx(
190
+ "span",
191
+ {
192
+ role: "button",
193
+ tabIndex: 0,
194
+ "aria-disabled": "true",
195
+ "aria-label": `${label}: unavailable. ${reason}`,
196
+ className: cn(
197
+ "inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder",
198
+ focusRing
199
+ )
200
+ }
201
+ ),
202
+ children: /* @__PURE__ */ jsx(ThinkingLevelBars, { options, value: void 0 })
203
+ }
204
+ ),
205
+ /* @__PURE__ */ jsx(TooltipContent, { side: "top", className: "max-w-64", children: reason })
206
+ ] });
207
+ }
180
208
  function ThinkingLevelPicker({
181
209
  options,
182
210
  value,
183
211
  label,
184
212
  unavailableReason,
185
213
  description,
214
+ origin,
215
+ footer,
186
216
  onChange
187
217
  }) {
188
218
  if (unavailableReason) {
189
- return /* @__PURE__ */ jsxs(Tooltip, { children: [
190
- /* @__PURE__ */ jsx(
191
- TooltipTrigger,
192
- {
193
- render: /* @__PURE__ */ jsx(
194
- "span",
195
- {
196
- role: "button",
197
- tabIndex: 0,
198
- "aria-disabled": "true",
199
- "aria-label": `${label}: unavailable. ${unavailableReason}`,
200
- className: cn(
201
- "inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder",
202
- focusRing
203
- )
204
- }
205
- ),
206
- children: /* @__PURE__ */ jsx(ThinkingLevelBars, { options, value: void 0 })
207
- }
208
- ),
209
- /* @__PURE__ */ jsx(TooltipContent, { side: "top", className: "max-w-64", children: unavailableReason })
210
- ] });
219
+ return /* @__PURE__ */ jsx(ThinkingLevelUnavailable, { options, label, reason: unavailableReason });
211
220
  }
212
- const triggerLabel = `${label}: ${options.find((option) => option.value === value)?.label ?? value}`;
221
+ const levelLabel = options.find((option) => option.value === value)?.label ?? value;
222
+ const triggerLabel = origin ? `${label}: ${levelLabel} · ${origin}` : `${label}: ${levelLabel}`;
213
223
  return /* @__PURE__ */ jsxs(Popover, { children: [
214
224
  /* @__PURE__ */ jsx(PopoverTrigger, { variant: "ghost", size: "sm", "aria-label": triggerLabel, tooltip: triggerLabel, className: "shrink-0", children: /* @__PURE__ */ jsx(ThinkingLevelBars, { options, value }) }),
215
225
  /* @__PURE__ */ jsxs(PopoverContent, { align: "end", className: "flex flex-col gap-3", children: [
216
226
  /* @__PURE__ */ jsx(ThinkingLevelRamp, { options, value, label, onChange }),
217
- description ? /* @__PURE__ */ jsx(Txt, { as: "p", variant: "caption", tone: "muted", children: description }) : null
227
+ description ? /* @__PURE__ */ jsx(Txt, { as: "p", variant: "caption", tone: "muted", children: description }) : null,
228
+ footer
218
229
  ] })
219
230
  ] });
220
231
  }
221
232
 
222
- export { ThinkingLevelBars, ThinkingLevelPicker, ThinkingLevelRamp, ThinkingLevelSlider };
233
+ export { ThinkingLevelBars, ThinkingLevelPicker, ThinkingLevelRamp, ThinkingLevelSlider, ThinkingLevelUnavailable };
223
234
  //# sourceMappingURL=ThinkingLevel.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThinkingLevel.es.js","sources":["../../src/ds/components/ThinkingLevel/use-thinking-level-stop.ts","../../src/ds/components/ThinkingLevel/thinking-level-slider.tsx","../../src/ds/components/ThinkingLevel/thinking-level-ramp.tsx","../../src/ds/components/ThinkingLevel/thinking-level-picker.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelOption<T extends string = string> {\n value: T;\n label: string;\n /** `muted` means no thinking at all; `warning` marks a level whose cost climbs. */\n emphasis?: 'muted' | 'warning';\n}\n\nexport const invisibleRangeInputClassName = cn(\n 'cursor-pointer appearance-none bg-transparent',\n focusRing,\n '[&::-webkit-slider-runnable-track]:h-full [&::-webkit-slider-runnable-track]:bg-transparent',\n '[&::-webkit-slider-thumb]:h-full [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:bg-transparent',\n '[&::-moz-range-thumb]:h-full [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:border-0',\n '[&::-moz-range-thumb]:bg-transparent',\n);\n\nexport function useThinkingLevelStop<T extends string>({\n options,\n value,\n onChange,\n}: {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n onChange: (value: T) => void | Promise<unknown>;\n}) {\n const [draggedStop, setDraggedStop] = useState<number>();\n const [heldRelease, setHeldRelease] = useState<{ stop: number }>();\n\n const settledStop = Math.max(\n options.findIndex(option => option.value === value),\n 0,\n );\n const pendingStop = draggedStop ?? heldRelease?.stop;\n const shownStop = pendingStop ?? settledStop;\n\n // Holding the drop until the write settles: clearing it first shows the old\n // stop for a frame, then the new one — two jumps for one change.\n const commit = async () => {\n const stop = draggedStop;\n setDraggedStop(undefined);\n if (stop === undefined || stop === settledStop) return;\n const option = options[stop];\n if (!option) return;\n const release = { stop };\n setHeldRelease(release);\n try {\n await onChange(option.value);\n } finally {\n setHeldRelease(current => (current === release ? undefined : current));\n }\n };\n\n const commitOnRelease = () => void commit();\n\n return {\n shownStop,\n shownOption: options[shownStop],\n isPending: pendingStop !== undefined,\n rangeInputProps: {\n type: 'range',\n min: 0,\n max: Math.max(options.length - 1, 0),\n step: 1,\n value: shownStop,\n onChange: (event: ChangeEvent<HTMLInputElement>) => setDraggedStop(Number(event.target.value)),\n onPointerUp: commitOnRelease,\n onPointerCancel: commitOnRelease,\n onKeyUp: commitOnRelease,\n onBlur: commitOnRelease,\n },\n };\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelSliderProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n ariaLabel: string;\n disabled?: boolean;\n /** Appended to the announced value, e.g. ` · follows base` when the level is inherited. */\n valueTextSuffix?: string;\n /** Returning the write lets the thumb hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n className?: string;\n}\n\nconst EMPHASIS_TONE = {\n muted: 'text-placeholder',\n warning: 'text-warning-foreground',\n} as const;\n\nexport function ThinkingLevelSlider<T extends string>({\n options,\n value,\n ariaLabel,\n disabled,\n valueTextSuffix,\n onChange,\n className,\n}: ThinkingLevelSliderProps<T>) {\n const { shownStop, shownOption, isPending, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n const tone = shownOption?.emphasis ? EMPHASIS_TONE[shownOption.emphasis] : 'text-foreground';\n const valueText = `${shownOption?.label ?? ''}${isPending ? '' : (valueTextSuffix ?? '')}`;\n const travelled = `calc(0.5rem + (100% - 1rem) * ${shownStop / lastStop})`;\n\n return (\n <div className={cn('flex items-center gap-2', tone, disabled && 'pointer-events-none opacity-50', className)}>\n <Txt as=\"span\" variant=\"caption\" className=\"w-20 shrink-0 text-right\">\n {shownOption?.label}\n </Txt>\n\n <span className=\"relative flex h-7 w-36 items-center rounded-lg bg-fill\">\n <span\n aria-hidden\n className=\"absolute inset-y-0 left-0 rounded-lg bg-fill-strong\"\n style={{ width: `calc(${travelled} + 6px)` }}\n />\n <span aria-hidden className=\"pointer-events-none absolute inset-x-[6.5px] flex justify-between\">\n {options.map(option => (\n <span key={option.value} className=\"size-[3px] rounded-full bg-current/40\" />\n ))}\n </span>\n <span\n aria-hidden\n className=\"absolute h-4 w-[3px] -translate-x-1/2 rounded-full bg-current\"\n style={{ left: travelled }}\n />\n <input\n {...rangeInputProps}\n aria-label={ariaLabel}\n aria-valuetext={valueText}\n disabled={disabled}\n className={cn('relative h-7 w-full rounded-lg', invisibleRangeInputClassName)}\n />\n </span>\n </div>\n );\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelRampProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Returning the write lets the ramp hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nfunction filledBarColor(option: ThinkingLevelOption) {\n return option.emphasis === 'warning' ? 'bg-warning-foreground' : 'bg-foreground';\n}\n\nexport function ThinkingLevelRamp<T extends string>({ options, value, label, onChange }: ThinkingLevelRampProps<T>) {\n const { shownStop, shownOption, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Txt as=\"p\" variant=\"label\" tone=\"ink\">\n {label}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {shownOption?.label}\n </Txt>\n </div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"relative flex h-10 items-end gap-1\">\n {options.map((option, stop) => (\n <span\n key={option.value}\n aria-hidden\n className={cn(\n 'flex-1 rounded-sm transition-colors',\n stop <= shownStop ? filledBarColor(option) : 'bg-fill',\n )}\n style={{ height: `${20 + (80 * stop) / lastStop}%` }}\n />\n ))}\n <input\n {...rangeInputProps}\n aria-label={label}\n aria-valuetext={shownOption?.label}\n className={cn('absolute inset-0 size-full rounded-sm', invisibleRangeInputClassName)}\n />\n </div>\n <div className=\"flex justify-between\">\n {options.map((option, stop) => (\n <Txt\n key={option.value}\n as=\"span\"\n variant=\"meta\"\n tone={stop === shownStop ? 'ink' : 'faint'}\n className=\"flex-1 text-center\"\n >\n {option.label}\n </Txt>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { ThinkingLevelRamp } from './thinking-level-ramp';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelBarsProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T | undefined;\n}\n\nexport function ThinkingLevelBars<T extends string>({ options, value }: ThinkingLevelBarsProps<T>) {\n const thinkingOptions = options.filter(option => option.emphasis !== 'muted');\n const filled = thinkingOptions.findIndex(option => option.value === value) + 1;\n const barCount = Math.max(thinkingOptions.length, 1);\n return (\n <span aria-hidden className=\"flex h-3 items-end gap-0.5\">\n {Array.from({ length: barCount }, (_, index) => (\n <span\n key={index}\n className={cn('w-[3px] rounded-xs', index < filled ? 'bg-current' : 'bg-current/25')}\n style={{ height: `${40 + (60 * index) / Math.max(barCount - 1, 1)}%` }}\n />\n ))}\n </span>\n );\n}\n\nexport interface ThinkingLevelPickerProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Disables the trigger and explains why in its tooltip, e.g. when the model cannot think. */\n unavailableReason?: string;\n description?: ReactNode;\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nexport function ThinkingLevelPicker<T extends string>({\n options,\n value,\n label,\n unavailableReason,\n description,\n onChange,\n}: ThinkingLevelPickerProps<T>) {\n if (unavailableReason) {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled=\"true\"\n aria-label={`${label}: unavailable. ${unavailableReason}`}\n className={cn(\n 'inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder',\n focusRing,\n )}\n />\n }\n >\n <ThinkingLevelBars options={options} value={undefined} />\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-64\">\n {unavailableReason}\n </TooltipContent>\n </Tooltip>\n );\n }\n\n const triggerLabel = `${label}: ${options.find(option => option.value === value)?.label ?? value}`;\n\n return (\n <Popover>\n <PopoverTrigger variant=\"ghost\" size=\"sm\" aria-label={triggerLabel} tooltip={triggerLabel} className=\"shrink-0\">\n <ThinkingLevelBars options={options} value={value} />\n </PopoverTrigger>\n <PopoverContent align=\"end\" className=\"flex flex-col gap-3\">\n <ThinkingLevelRamp options={options} value={value} label={label} onChange={onChange} />\n {description ? (\n <Txt as=\"p\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThinkingLevel.es.js","sources":["../../src/ds/components/ThinkingLevel/use-thinking-level-stop.ts","../../src/ds/components/ThinkingLevel/thinking-level-slider.tsx","../../src/ds/components/ThinkingLevel/thinking-level-ramp.tsx","../../src/ds/components/ThinkingLevel/thinking-level-picker.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelOption<T extends string = string> {\n value: T;\n label: string;\n /** `muted` means no thinking at all; `warning` marks a level whose cost climbs. */\n emphasis?: 'muted' | 'warning';\n}\n\nexport const invisibleRangeInputClassName = cn(\n 'cursor-pointer appearance-none bg-transparent',\n focusRing,\n '[&::-webkit-slider-runnable-track]:h-full [&::-webkit-slider-runnable-track]:bg-transparent',\n '[&::-webkit-slider-thumb]:h-full [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:bg-transparent',\n '[&::-moz-range-thumb]:h-full [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:border-0',\n '[&::-moz-range-thumb]:bg-transparent',\n);\n\nexport function useThinkingLevelStop<T extends string>({\n options,\n value,\n onChange,\n}: {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n onChange: (value: T) => void | Promise<unknown>;\n}) {\n const [draggedStop, setDraggedStop] = useState<number>();\n const [heldRelease, setHeldRelease] = useState<{ stop: number }>();\n\n const settledStop = Math.max(\n options.findIndex(option => option.value === value),\n 0,\n );\n const pendingStop = draggedStop ?? heldRelease?.stop;\n const shownStop = pendingStop ?? settledStop;\n\n // Holding the drop until the write settles: clearing it first shows the old\n // stop for a frame, then the new one — two jumps for one change.\n const commit = async () => {\n const stop = draggedStop;\n setDraggedStop(undefined);\n if (stop === undefined || stop === settledStop) return;\n const option = options[stop];\n if (!option) return;\n const release = { stop };\n setHeldRelease(release);\n try {\n await onChange(option.value);\n } finally {\n setHeldRelease(current => (current === release ? undefined : current));\n }\n };\n\n const commitOnRelease = () => void commit();\n\n return {\n shownStop,\n shownOption: options[shownStop],\n isPending: pendingStop !== undefined,\n rangeInputProps: {\n type: 'range',\n min: 0,\n max: Math.max(options.length - 1, 0),\n step: 1,\n value: shownStop,\n onChange: (event: ChangeEvent<HTMLInputElement>) => setDraggedStop(Number(event.target.value)),\n onPointerUp: commitOnRelease,\n onPointerCancel: commitOnRelease,\n onKeyUp: commitOnRelease,\n onBlur: commitOnRelease,\n },\n };\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelSliderProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n ariaLabel: string;\n disabled?: boolean;\n /** Appended to the announced value, e.g. ` · follows base` when the level is inherited. */\n valueTextSuffix?: string;\n /** Returning the write lets the thumb hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n className?: string;\n}\n\nconst EMPHASIS_TONE = {\n muted: 'text-placeholder',\n warning: 'text-warning-foreground',\n} as const;\n\nexport function ThinkingLevelSlider<T extends string>({\n options,\n value,\n ariaLabel,\n disabled,\n valueTextSuffix,\n onChange,\n className,\n}: ThinkingLevelSliderProps<T>) {\n const { shownStop, shownOption, isPending, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n const tone = shownOption?.emphasis ? EMPHASIS_TONE[shownOption.emphasis] : 'text-foreground';\n const valueText = `${shownOption?.label ?? ''}${isPending ? '' : (valueTextSuffix ?? '')}`;\n const travelled = `calc(0.5rem + (100% - 1rem) * ${shownStop / lastStop})`;\n\n return (\n <div className={cn('flex items-center gap-2', tone, disabled && 'pointer-events-none opacity-50', className)}>\n <Txt as=\"span\" variant=\"caption\" className=\"w-20 shrink-0 text-right\">\n {shownOption?.label}\n </Txt>\n\n <span className=\"relative flex h-7 w-36 items-center rounded-lg bg-fill\">\n <span\n aria-hidden\n className=\"absolute inset-y-0 left-0 rounded-lg bg-fill-strong\"\n style={{ width: `calc(${travelled} + 6px)` }}\n />\n <span aria-hidden className=\"pointer-events-none absolute inset-x-[6.5px] flex justify-between\">\n {options.map(option => (\n <span key={option.value} className=\"size-[3px] rounded-full bg-current/40\" />\n ))}\n </span>\n <span\n aria-hidden\n className=\"absolute h-4 w-[3px] -translate-x-1/2 rounded-full bg-current\"\n style={{ left: travelled }}\n />\n <input\n {...rangeInputProps}\n aria-label={ariaLabel}\n aria-valuetext={valueText}\n disabled={disabled}\n className={cn('relative h-7 w-full rounded-lg', invisibleRangeInputClassName)}\n />\n </span>\n </div>\n );\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelRampProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Returning the write lets the ramp hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nfunction filledBarColor(option: ThinkingLevelOption) {\n return option.emphasis === 'warning' ? 'bg-warning-foreground' : 'bg-foreground';\n}\n\nexport function ThinkingLevelRamp<T extends string>({ options, value, label, onChange }: ThinkingLevelRampProps<T>) {\n const { shownStop, shownOption, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Txt as=\"p\" variant=\"label\" tone=\"ink\">\n {label}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {shownOption?.label}\n </Txt>\n </div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"relative flex h-10 items-end gap-1\">\n {options.map((option, stop) => (\n <span\n key={option.value}\n aria-hidden\n className={cn(\n 'flex-1 rounded-sm transition-colors',\n stop <= shownStop ? filledBarColor(option) : 'bg-fill',\n )}\n style={{ height: `${20 + (80 * stop) / lastStop}%` }}\n />\n ))}\n <input\n {...rangeInputProps}\n aria-label={label}\n aria-valuetext={shownOption?.label}\n className={cn('absolute inset-0 size-full rounded-sm', invisibleRangeInputClassName)}\n />\n </div>\n <div className=\"flex justify-between\">\n {options.map((option, stop) => (\n <Txt\n key={option.value}\n as=\"span\"\n variant=\"meta\"\n tone={stop === shownStop ? 'ink' : 'faint'}\n className=\"flex-1 text-center\"\n >\n {option.label}\n </Txt>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { ThinkingLevelRamp } from './thinking-level-ramp';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelBarsProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T | undefined;\n}\n\nexport function ThinkingLevelBars<T extends string>({ options, value }: ThinkingLevelBarsProps<T>) {\n const thinkingOptions = options.filter(option => option.emphasis !== 'muted');\n const filled = thinkingOptions.findIndex(option => option.value === value) + 1;\n const barCount = Math.max(thinkingOptions.length, 1);\n return (\n <span aria-hidden className=\"flex h-3 items-end gap-0.5\">\n {Array.from({ length: barCount }, (_, index) => (\n <span\n key={index}\n className={cn('w-[3px] rounded-xs', index < filled ? 'bg-current' : 'bg-current/25')}\n style={{ height: `${40 + (60 * index) / Math.max(barCount - 1, 1)}%` }}\n />\n ))}\n </span>\n );\n}\n\nexport interface ThinkingLevelUnavailableProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n label: string;\n reason: string;\n}\n\nexport function ThinkingLevelUnavailable<T extends string>({\n options,\n label,\n reason,\n}: ThinkingLevelUnavailableProps<T>) {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled=\"true\"\n aria-label={`${label}: unavailable. ${reason}`}\n className={cn(\n 'inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder',\n focusRing,\n )}\n />\n }\n >\n <ThinkingLevelBars options={options} value={undefined} />\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-64\">\n {reason}\n </TooltipContent>\n </Tooltip>\n );\n}\n\nexport interface ThinkingLevelPickerProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Disables the trigger and explains why in its tooltip, e.g. when the model cannot think. */\n unavailableReason?: string;\n description?: ReactNode;\n origin?: string;\n footer?: ReactNode;\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nexport function ThinkingLevelPicker<T extends string>({\n options,\n value,\n label,\n unavailableReason,\n description,\n origin,\n footer,\n onChange,\n}: ThinkingLevelPickerProps<T>) {\n if (unavailableReason) {\n return <ThinkingLevelUnavailable options={options} label={label} reason={unavailableReason} />;\n }\n\n const levelLabel = options.find(option => option.value === value)?.label ?? value;\n const triggerLabel = origin ? `${label}: ${levelLabel} · ${origin}` : `${label}: ${levelLabel}`;\n\n return (\n <Popover>\n <PopoverTrigger variant=\"ghost\" size=\"sm\" aria-label={triggerLabel} tooltip={triggerLabel} className=\"shrink-0\">\n <ThinkingLevelBars options={options} value={value} />\n </PopoverTrigger>\n <PopoverContent align=\"end\" className=\"flex flex-col gap-3\">\n <ThinkingLevelRamp options={options} value={value} label={label} onChange={onChange} />\n {description ? (\n <Txt as=\"p\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n {footer}\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const threadList = require('../thread-list-Dj-L1-NP.cjs');
5
+ const threadList = require('../thread-list-8dSs2FNI.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { T as ThreadList, a as ThreadListEmpty, b as ThreadListItem, c as ThreadListItems, d as ThreadListNewItem, e as ThreadListSeparator } from '../thread-list-DwGHKNEn.js';
1
+ export { T as ThreadList, a as ThreadListEmpty, b as ThreadListItem, c as ThreadListItems, d as ThreadListNewItem, e as ThreadListSeparator } from '../thread-list-Belzl58i.js';
2
2
  //# sourceMappingURL=ThreadList.es.js.map
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
- const copyButton = require('../copy-button-Q9i32p1G.cjs');
6
+ const copyButton = require('../copy-button-c9mSgKKR.cjs');
7
7
  const tooltip = require('../tooltip-C4txPRSa.cjs');
8
8
  const Txt = require('../Txt-DXjXpX9r.cjs');
9
9
  const utils_cn = require('../cn-TqD01zH-.cjs');
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { C as CopyButton } from '../copy-button-CRWQE6VF.js';
2
+ import { C as CopyButton } from '../copy-button-Ddbg9IZn.js';
3
3
  import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../tooltip-CCZcMbgy.js';
4
4
  import { T as Txt } from '../Txt-BuzYj7Vy.js';
5
5
  import { c as cn } from '../cn-coERSHz5.js';