@mastra/playground-ui 65.0.0-alpha.8 → 65.0.0

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 (702) hide show
  1. package/dist/{ask-user-card-DnvW7jXS.js → ask-user-card-B9q_GFTt.js} +2 -2
  2. package/dist/{ask-user-card-DnvW7jXS.js.map → ask-user-card-B9q_GFTt.js.map} +1 -1
  3. package/dist/{ask-user-card-DiFQcUzM.cjs → ask-user-card-C-N5rpYG.cjs} +2 -2
  4. package/dist/{ask-user-card-DiFQcUzM.cjs.map → ask-user-card-C-N5rpYG.cjs.map} +1 -1
  5. package/dist/{code-block-CAV4Flrx.cjs → code-block-BSJzgBt1.cjs} +2 -2
  6. package/dist/{code-block-CAV4Flrx.cjs.map → code-block-BSJzgBt1.cjs.map} +1 -1
  7. package/dist/{code-block-BB-5HSl3.js → code-block-JWCkGm3Q.js} +2 -2
  8. package/dist/{code-block-BB-5HSl3.js.map → code-block-JWCkGm3Q.js.map} +1 -1
  9. package/dist/{code-editor-CbyCb7CW.cjs → code-editor-4ukTuvqG.cjs} +18 -2
  10. package/dist/code-editor-4ukTuvqG.cjs.map +1 -0
  11. package/dist/{code-editor-DOv4jc-0.js → code-editor-8qu58Npy.js} +18 -2
  12. package/dist/code-editor-8qu58Npy.js.map +1 -0
  13. package/dist/{combobox-BCoCVZHs.js → combobox-Cff50hgT.js} +37 -49
  14. package/dist/combobox-Cff50hgT.js.map +1 -0
  15. package/dist/{combobox-DbZAWh8q.cjs → combobox-RlGW9Erz.cjs} +37 -49
  16. package/dist/combobox-RlGW9Erz.cjs.map +1 -0
  17. package/dist/components/BillingIllustration.cjs.js +524 -1
  18. package/dist/components/BillingIllustration.cjs.js.map +1 -1
  19. package/dist/components/BillingIllustration.es.js +524 -1
  20. package/dist/components/BillingIllustration.es.js.map +1 -1
  21. package/dist/components/Button.cjs.js +1 -1
  22. package/dist/components/Button.es.js +1 -1
  23. package/dist/components/CodeBlock.cjs.js +1 -1
  24. package/dist/components/CodeBlock.es.js +1 -1
  25. package/dist/components/CodeEditor.cjs.js +1 -1
  26. package/dist/components/CodeEditor.es.js +1 -1
  27. package/dist/components/Combobox.cjs.js +1 -1
  28. package/dist/components/Combobox.es.js +1 -1
  29. package/dist/components/CommandPalette.cjs.js +1 -1
  30. package/dist/components/CommandPalette.es.js +1 -1
  31. package/dist/components/Comment.cjs.js +1 -1
  32. package/dist/components/Comment.es.js +1 -1
  33. package/dist/components/DataCodeSection.cjs.js +1 -1
  34. package/dist/components/DataCodeSection.es.js +1 -1
  35. package/dist/components/DataList.cjs.js +15 -17
  36. package/dist/components/DataList.cjs.js.map +1 -1
  37. package/dist/components/DataList.es.js +4 -5
  38. package/dist/components/DataList.es.js.map +1 -1
  39. package/dist/components/DataPanel.cjs.js +1 -1
  40. package/dist/components/DataPanel.es.js +1 -1
  41. package/dist/components/DateTimePicker.cjs.js +2 -2
  42. package/dist/components/DateTimePicker.es.js +2 -2
  43. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  44. package/dist/components/DateTimeRangePicker.es.js +1 -1
  45. package/dist/components/EnvironmentVariablesEditor.cjs.js +2 -2
  46. package/dist/components/EnvironmentVariablesEditor.es.js +2 -2
  47. package/dist/components/Field.cjs.js +1 -1
  48. package/dist/components/Field.es.js +1 -1
  49. package/dist/components/FilterBar.cjs.js +8 -844
  50. package/dist/components/FilterBar.cjs.js.map +1 -1
  51. package/dist/components/FilterBar.es.js +4 -841
  52. package/dist/components/FilterBar.es.js.map +1 -1
  53. package/dist/components/FormFieldBlocks.cjs.js +1 -1
  54. package/dist/components/FormFieldBlocks.es.js +1 -1
  55. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  56. package/dist/components/JSONSchemaForm.es.js +2 -2
  57. package/dist/components/Kbd.cjs.js +1 -1
  58. package/dist/components/Kbd.es.js +1 -1
  59. package/dist/components/ListSearch.cjs.js +1 -1
  60. package/dist/components/ListSearch.es.js +1 -1
  61. package/dist/components/LogsDataList.cjs.js +5 -2
  62. package/dist/components/LogsDataList.cjs.js.map +1 -1
  63. package/dist/components/LogsDataList.es.js +5 -2
  64. package/dist/components/LogsDataList.es.js.map +1 -1
  65. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  66. package/dist/components/MarkdownRenderer.es.js +1 -1
  67. package/dist/components/PageLayout.cjs.js +3 -56
  68. package/dist/components/PageLayout.cjs.js.map +1 -1
  69. package/dist/components/PageLayout.es.js +1 -58
  70. package/dist/components/PageLayout.es.js.map +1 -1
  71. package/dist/components/PropertyFilter.cjs.js +2 -2
  72. package/dist/components/PropertyFilter.es.js +2 -2
  73. package/dist/components/RuleBuilder.cjs.js +1 -1
  74. package/dist/components/RuleBuilder.es.js +1 -1
  75. package/dist/components/SavedViews.cjs.js +1 -1
  76. package/dist/components/SavedViews.es.js +1 -1
  77. package/dist/components/SearchInput.cjs.js +1 -1
  78. package/dist/components/SearchInput.es.js +1 -1
  79. package/dist/components/Section.cjs.js +1 -1
  80. package/dist/components/Section.es.js +1 -1
  81. package/dist/components/Select.cjs.js +2 -1
  82. package/dist/components/Select.cjs.js.map +1 -1
  83. package/dist/components/Select.es.js +1 -1
  84. package/dist/components/SideDialog.cjs.js +225 -2
  85. package/dist/components/SideDialog.cjs.js.map +1 -1
  86. package/dist/components/SideDialog.es.js +210 -1
  87. package/dist/components/SideDialog.es.js.map +1 -1
  88. package/dist/components/Sidebar.cjs.js +64 -60
  89. package/dist/components/Sidebar.cjs.js.map +1 -1
  90. package/dist/components/Sidebar.es.js +65 -62
  91. package/dist/components/Sidebar.es.js.map +1 -1
  92. package/dist/components/Workflow.cjs.js +3 -3
  93. package/dist/components/Workflow.es.js +3 -3
  94. package/dist/components/ai/activity.cjs.js +2 -2
  95. package/dist/components/ai/activity.es.js +2 -2
  96. package/dist/components/ai/ask-user.cjs.js +1 -1
  97. package/dist/components/ai/ask-user.es.js +1 -1
  98. package/dist/components/ai/plan.cjs.js +1 -1
  99. package/dist/components/ai/plan.es.js +1 -1
  100. package/dist/components/ai/tool-approval.cjs.js +1 -1
  101. package/dist/components/ai/tool-approval.es.js +1 -1
  102. package/dist/components/ai/tool-call.cjs.js +1 -1
  103. package/dist/components/ai/tool-call.es.js +1 -1
  104. package/dist/{data-code-section-BjyHoHEB.cjs → data-code-section-BsvdKW08.cjs} +2 -2
  105. package/dist/{data-code-section-BjyHoHEB.cjs.map → data-code-section-BsvdKW08.cjs.map} +1 -1
  106. package/dist/{data-code-section-BWzfg-1n.js → data-code-section-y1BMLr3c.js} +2 -2
  107. package/dist/{data-code-section-BWzfg-1n.js.map → data-code-section-y1BMLr3c.js.map} +1 -1
  108. package/dist/{data-list-top-DJh08vFA.cjs → data-list-4t6Ueon8.cjs} +365 -16
  109. package/dist/data-list-4t6Ueon8.cjs.map +1 -0
  110. package/dist/{data-list-top-T-mtdIUp.js → data-list-BQMBFAyK.js} +357 -7
  111. package/dist/data-list-BQMBFAyK.js.map +1 -0
  112. package/dist/{data-list-skeleton-sdcaabdX.cjs → data-list-skeleton-CVXZYY0k.cjs} +6 -6
  113. package/dist/{data-list-skeleton-sdcaabdX.cjs.map → data-list-skeleton-CVXZYY0k.cjs.map} +1 -1
  114. package/dist/{data-list-skeleton-bNfITSHs.js → data-list-skeleton-D54r1ycU.js} +3 -3
  115. package/dist/{data-list-skeleton-bNfITSHs.js.map → data-list-skeleton-D54r1ycU.js.map} +1 -1
  116. package/dist/{data-panel-CUqcB4Vn.js → data-panel-DSgidnnv.js} +2 -2
  117. package/dist/{data-panel-CUqcB4Vn.js.map → data-panel-DSgidnnv.js.map} +1 -1
  118. package/dist/{data-panel-CGRPVnEe.cjs → data-panel-xqrai98b.cjs} +2 -2
  119. package/dist/{data-panel-CGRPVnEe.cjs.map → data-panel-xqrai98b.cjs.map} +1 -1
  120. package/dist/{date-time-range-picker-CcnDMZJu.js → date-time-range-picker-BnYWCqei.js} +3 -3
  121. package/dist/{date-time-range-picker-CcnDMZJu.js.map → date-time-range-picker-BnYWCqei.js.map} +1 -1
  122. package/dist/{date-time-range-picker-CXGab8Nj.cjs → date-time-range-picker-_2RJBOUn.cjs} +3 -3
  123. package/dist/{date-time-range-picker-CXGab8Nj.cjs.map → date-time-range-picker-_2RJBOUn.cjs.map} +1 -1
  124. package/dist/domains/capabilities.cjs.js +4 -0
  125. package/dist/domains/capabilities.cjs.js.map +1 -1
  126. package/dist/domains/capabilities.es.js +1 -1
  127. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  128. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  129. package/dist/domains/chat/messages/dataset-save-action.cjs.js +4 -3
  130. package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
  131. package/dist/domains/chat/messages/dataset-save-action.es.js +4 -3
  132. package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
  133. package/dist/domains/chat/messages/message-row.cjs.js +1 -1
  134. package/dist/domains/chat/messages/message-row.es.js +1 -1
  135. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +23 -3
  136. package/dist/domains/chat/messages/notification-signal-notice.cjs.js.map +1 -1
  137. package/dist/domains/chat/messages/notification-signal-notice.es.js +24 -6
  138. package/dist/domains/chat/messages/notification-signal-notice.es.js.map +1 -1
  139. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  140. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  141. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  142. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  143. package/dist/domains/chat/messages/signal-data.cjs.js +12 -0
  144. package/dist/domains/chat/messages/signal-data.cjs.js.map +1 -1
  145. package/dist/domains/chat/messages/signal-data.es.js +12 -1
  146. package/dist/domains/chat/messages/signal-data.es.js.map +1 -1
  147. package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
  148. package/dist/domains/chat/messages/skill-message.es.js +1 -1
  149. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  150. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  151. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +2 -2
  152. package/dist/domains/chat/tools/badges/agent-badge.es.js +2 -2
  153. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  154. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  155. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
  156. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +1 -1
  157. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
  158. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
  159. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
  160. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
  161. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
  162. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
  163. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  164. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  165. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  166. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  167. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +2 -2
  168. package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
  169. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +5 -1
  170. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  171. package/dist/domains/chat/tools/badges/workflow-badge.es.js +5 -1
  172. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  173. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +1 -1
  174. package/dist/domains/chat/tools/submit-plan-tool.es.js +1 -1
  175. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  176. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  177. package/dist/domains/chat.cjs.js +1 -0
  178. package/dist/domains/chat.cjs.js.map +1 -1
  179. package/dist/domains/chat.es.js +1 -1
  180. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +334 -0
  181. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js.map +1 -0
  182. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.d.ts +2 -0
  183. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +330 -0
  184. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js.map +1 -0
  185. package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.cjs.js +78 -0
  186. package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.cjs.js.map +1 -0
  187. package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.d.ts +2 -0
  188. package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.es.js +74 -0
  189. package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.es.js.map +1 -0
  190. package/dist/domains/datasets/components/add-dataset-item-dialog/collapsible-settings-row.cjs.js +25 -0
  191. package/dist/domains/datasets/components/add-dataset-item-dialog/collapsible-settings-row.cjs.js.map +1 -0
  192. package/dist/domains/datasets/components/add-dataset-item-dialog/collapsible-settings-row.d.ts +2 -0
  193. package/dist/domains/datasets/components/add-dataset-item-dialog/collapsible-settings-row.es.js +21 -0
  194. package/dist/domains/datasets/components/add-dataset-item-dialog/collapsible-settings-row.es.js.map +1 -0
  195. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-field-errors.cjs.js +22 -0
  196. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-field-errors.cjs.js.map +1 -0
  197. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-field-errors.d.ts +2 -0
  198. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-field-errors.es.js +18 -0
  199. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-field-errors.es.js.map +1 -0
  200. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js +54 -0
  201. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js.map +1 -0
  202. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.d.ts +2 -0
  203. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js +50 -0
  204. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js.map +1 -0
  205. package/dist/domains/datasets/components/add-dataset-item-dialog/field-errors.cjs.js +21 -0
  206. package/dist/domains/datasets/components/add-dataset-item-dialog/field-errors.cjs.js.map +1 -0
  207. package/dist/domains/datasets/components/add-dataset-item-dialog/field-errors.d.ts +2 -0
  208. package/dist/domains/datasets/components/add-dataset-item-dialog/field-errors.es.js +17 -0
  209. package/dist/domains/datasets/components/add-dataset-item-dialog/field-errors.es.js.map +1 -0
  210. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +180 -0
  211. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js.map +1 -0
  212. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.d.ts +2 -0
  213. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +176 -0
  214. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js.map +1 -0
  215. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-types.cjs.js +57 -0
  216. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-types.cjs.js.map +1 -0
  217. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-types.d.ts +2 -0
  218. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-types.es.js +45 -0
  219. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-types.es.js.map +1 -0
  220. package/dist/domains/datasets/components/add-dataset-item-dialog/use-target-agent-tools.cjs.js +17 -0
  221. package/dist/domains/datasets/components/add-dataset-item-dialog/use-target-agent-tools.cjs.js.map +1 -0
  222. package/dist/domains/datasets/components/add-dataset-item-dialog/use-target-agent-tools.d.ts +2 -0
  223. package/dist/domains/datasets/components/add-dataset-item-dialog/use-target-agent-tools.es.js +13 -0
  224. package/dist/domains/datasets/components/add-dataset-item-dialog/use-target-agent-tools.es.js.map +1 -0
  225. package/dist/domains/datasets/components/add-dataset-item-dialog.cjs.js +10 -0
  226. package/dist/domains/datasets/components/add-dataset-item-dialog.cjs.js.map +1 -0
  227. package/dist/domains/datasets/components/add-dataset-item-dialog.d.ts +2 -0
  228. package/dist/domains/datasets/components/add-dataset-item-dialog.es.js +2 -0
  229. package/dist/domains/datasets/components/add-dataset-item-dialog.es.js.map +1 -0
  230. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
  231. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
  232. package/dist/domains/datasets/components.cjs.js +2 -0
  233. package/dist/domains/datasets/components.cjs.js.map +1 -1
  234. package/dist/domains/datasets/components.es.js +1 -0
  235. package/dist/domains/datasets/components.es.js.map +1 -1
  236. package/dist/domains/datasets.cjs.js +2 -0
  237. package/dist/domains/datasets.cjs.js.map +1 -1
  238. package/dist/domains/datasets.es.js +1 -0
  239. package/dist/domains/datasets.es.js.map +1 -1
  240. package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
  241. package/dist/domains/logs/components/log-data-panel.es.js +1 -1
  242. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -2
  243. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  244. package/dist/domains/logs/components/logs-list-view.es.js +3 -2
  245. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  246. package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js.map +1 -1
  247. package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js.map +1 -1
  248. package/dist/domains/logs/hooks/use-logs-url-state.cjs.js.map +1 -1
  249. package/dist/domains/logs/hooks/use-logs-url-state.es.js.map +1 -1
  250. package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
  251. package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
  252. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  253. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  254. package/dist/domains/metrics/drilldown.cjs.js +1 -1
  255. package/dist/domains/metrics/drilldown.es.js +1 -1
  256. package/dist/domains/metrics/metrics-filters.cjs.js +1 -1
  257. package/dist/domains/metrics/metrics-filters.es.js +1 -1
  258. package/dist/domains/observability/components/trace-as-item-dialog.cjs.js +45 -38
  259. package/dist/domains/observability/components/trace-as-item-dialog.cjs.js.map +1 -1
  260. package/dist/domains/observability/components/trace-as-item-dialog.es.js +45 -38
  261. package/dist/domains/observability/components/trace-as-item-dialog.es.js.map +1 -1
  262. package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -0
  263. package/dist/domains/scores/components/score-as-item-dialog.cjs.js.map +1 -1
  264. package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -0
  265. package/dist/domains/scores/components/score-as-item-dialog.es.js.map +1 -1
  266. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  267. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  268. package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
  269. package/dist/domains/scores/components/span-scoring.es.js +1 -1
  270. package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -1
  271. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  272. package/dist/domains/scores/components/trace-scores-tab.es.js +2 -1
  273. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  274. package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
  275. package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
  276. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  277. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  278. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  279. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  280. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  281. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  282. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  283. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  284. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  285. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  286. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  287. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  288. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  289. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  290. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
  291. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
  292. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  293. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  294. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  295. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  296. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +2 -0
  297. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  298. package/dist/domains/traces/components/thread-view-by-trace.es.js +2 -0
  299. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  300. package/dist/domains/traces/components/trace-columns-menu.cjs.js +2 -2
  301. package/dist/domains/traces/components/trace-columns-menu.es.js +2 -2
  302. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +3 -8
  303. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  304. package/dist/domains/traces/components/trace-data-panel-view.es.js +4 -9
  305. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  306. package/dist/domains/traces/components/trace-data-panel.cjs.js +4 -0
  307. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  308. package/dist/domains/traces/components/trace-data-panel.es.js +4 -0
  309. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  310. package/dist/domains/traces/components/trace-error-cell.cjs.js +3 -1
  311. package/dist/domains/traces/components/trace-error-cell.cjs.js.map +1 -1
  312. package/dist/domains/traces/components/trace-error-cell.es.js +3 -1
  313. package/dist/domains/traces/components/trace-error-cell.es.js.map +1 -1
  314. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  315. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  316. package/dist/domains/traces/components/trace-span-panel.cjs.js +0 -2
  317. package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
  318. package/dist/domains/traces/components/trace-span-panel.es.js +0 -2
  319. package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
  320. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  321. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  322. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  323. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  324. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +3 -3
  325. package/dist/domains/traces/components/trace-time-range-chip.es.js +3 -3
  326. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js +117 -0
  327. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js.map +1 -0
  328. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.d.ts +2 -0
  329. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js +94 -0
  330. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js.map +1 -0
  331. package/dist/domains/traces/components/traces-explorer/traces-explorer-auto-refresh.cjs.js +20 -0
  332. package/dist/domains/traces/components/traces-explorer/traces-explorer-auto-refresh.cjs.js.map +1 -0
  333. package/dist/domains/traces/components/traces-explorer/traces-explorer-auto-refresh.d.ts +2 -0
  334. package/dist/domains/traces/components/traces-explorer/traces-explorer-auto-refresh.es.js +16 -0
  335. package/dist/domains/traces/components/traces-explorer/traces-explorer-auto-refresh.es.js.map +1 -0
  336. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.cjs.js +39 -0
  337. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.cjs.js.map +1 -0
  338. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.d.ts +2 -0
  339. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.es.js +35 -0
  340. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.es.js.map +1 -0
  341. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.cjs.js +16 -0
  342. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.cjs.js.map +1 -0
  343. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.d.ts +2 -0
  344. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.es.js +12 -0
  345. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.es.js.map +1 -0
  346. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js +56 -0
  347. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js.map +1 -0
  348. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.d.ts +2 -0
  349. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js +40 -0
  350. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js.map +1 -0
  351. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +78 -0
  352. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js.map +1 -0
  353. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.d.ts +2 -0
  354. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +72 -0
  355. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js.map +1 -0
  356. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.cjs.js +52 -0
  357. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.cjs.js.map +1 -0
  358. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.d.ts +2 -0
  359. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.es.js +48 -0
  360. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.es.js.map +1 -0
  361. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js +71 -0
  362. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js.map +1 -0
  363. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.d.ts +2 -0
  364. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js +67 -0
  365. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js.map +1 -0
  366. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js +58 -0
  367. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js.map +1 -0
  368. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.d.ts +2 -0
  369. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js +54 -0
  370. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js.map +1 -0
  371. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +134 -0
  372. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js.map +1 -0
  373. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.d.ts +2 -0
  374. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +130 -0
  375. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js.map +1 -0
  376. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +154 -0
  377. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js.map +1 -0
  378. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.d.ts +2 -0
  379. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +150 -0
  380. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js.map +1 -0
  381. package/dist/domains/traces/components/traces-explorer/use-traces-discovery.cjs.js +14 -0
  382. package/dist/domains/traces/components/traces-explorer/use-traces-discovery.cjs.js.map +1 -0
  383. package/dist/domains/traces/components/traces-explorer/use-traces-discovery.d.ts +2 -0
  384. package/dist/domains/traces/components/traces-explorer/use-traces-discovery.es.js +10 -0
  385. package/dist/domains/traces/components/traces-explorer/use-traces-discovery.es.js.map +1 -0
  386. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +86 -0
  387. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js.map +1 -0
  388. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.d.ts +2 -0
  389. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +81 -0
  390. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js.map +1 -0
  391. package/dist/domains/traces/components/traces-explorer.cjs.js +42 -0
  392. package/dist/domains/traces/components/traces-explorer.cjs.js.map +1 -0
  393. package/dist/domains/traces/components/traces-explorer.d.ts +2 -0
  394. package/dist/domains/traces/components/traces-explorer.es.js +25 -0
  395. package/dist/domains/traces/components/traces-explorer.es.js.map +1 -0
  396. package/dist/domains/traces/components/traces-list-view.cjs.js +4 -5
  397. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  398. package/dist/domains/traces/components/traces-list-view.es.js +3 -4
  399. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  400. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +4 -1
  401. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  402. package/dist/domains/traces/components/traces-page-skeleton.es.js +4 -1
  403. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  404. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +38 -10
  405. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js.map +1 -1
  406. package/dist/domains/traces/hooks/use-traces-list-source.es.js +39 -13
  407. package/dist/domains/traces/hooks/use-traces-list-source.es.js.map +1 -1
  408. package/dist/domains/traces/hooks.cjs.js +0 -4
  409. package/dist/domains/traces/hooks.cjs.js.map +1 -1
  410. package/dist/domains/traces/hooks.es.js +0 -2
  411. package/dist/domains/traces/hooks.es.js.map +1 -1
  412. package/dist/domains/traces/trace-filters.cjs.js +1 -1
  413. package/dist/domains/traces/trace-filters.es.js +1 -1
  414. package/dist/domains/traces/trace-query-filters.cjs.js +2 -1
  415. package/dist/domains/traces/trace-query-filters.cjs.js.map +1 -1
  416. package/dist/domains/traces/trace-query-filters.es.js +1 -1
  417. package/dist/domains/traces.cjs.js +2 -5
  418. package/dist/domains/traces.cjs.js.map +1 -1
  419. package/dist/domains/traces.es.js +1 -3
  420. package/dist/domains/traces.es.js.map +1 -1
  421. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  422. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  423. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
  424. package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
  425. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  426. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  427. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  428. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  429. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +1 -1
  430. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +1 -1
  431. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +2 -2
  432. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +2 -2
  433. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +2 -2
  434. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -2
  435. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +1 -1
  436. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
  437. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  438. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  439. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  440. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  441. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
  442. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
  443. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +1 -1
  444. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +1 -1
  445. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +1 -1
  446. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
  447. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
  448. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +1 -1
  449. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +2 -2
  450. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
  451. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +1 -1
  452. package/dist/domains/workflows/workflow/workflow-run-data.es.js +1 -1
  453. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  454. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  455. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +1 -1
  456. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +1 -1
  457. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +1 -1
  458. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
  459. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +2 -2
  460. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +2 -2
  461. package/dist/domains/workspace/components/workspace-active-file.cjs.js +1 -1
  462. package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
  463. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +4 -4
  464. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +4 -4
  465. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
  466. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
  467. package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
  468. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  469. package/dist/ee/signals/components/entity-index-list.es.js +3 -1
  470. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  471. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +5 -3
  472. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  473. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +5 -3
  474. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  475. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +1 -1
  476. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +1 -1
  477. package/dist/ee/signals/trace-intelligence-explainer.cjs.js +1 -0
  478. package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
  479. package/dist/ee/signals/trace-intelligence-explainer.es.js +1 -0
  480. package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
  481. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
  482. package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
  483. package/dist/{field-BCU5ZtWV.cjs → field-CZ5fldpM.cjs} +2 -1
  484. package/dist/{field-BCU5ZtWV.cjs.map → field-CZ5fldpM.cjs.map} +1 -1
  485. package/dist/{field-Dl1zeXTv.js → field-CfA5-ixH.js} +2 -1
  486. package/dist/{field-Dl1zeXTv.js.map → field-CfA5-ixH.js.map} +1 -1
  487. package/dist/filter-bar-CjBb01b6.cjs +849 -0
  488. package/dist/filter-bar-CjBb01b6.cjs.map +1 -0
  489. package/dist/{filter-bar-chip-DgvuQv6c.cjs → filter-bar-chip-C_64m7nX.cjs} +2 -2
  490. package/dist/{filter-bar-chip-DgvuQv6c.cjs.map → filter-bar-chip-C_64m7nX.cjs.map} +1 -1
  491. package/dist/{filter-bar-chip-C9CXOudu.js → filter-bar-chip-D2kKMSRA.js} +3 -3
  492. package/dist/{filter-bar-chip-C9CXOudu.js.map → filter-bar-chip-D2kKMSRA.js.map} +1 -1
  493. package/dist/filter-bar-pXSJt2ye.js +842 -0
  494. package/dist/filter-bar-pXSJt2ye.js.map +1 -0
  495. package/dist/{kbd-Xgv5HKEi.cjs → kbd-B2zbS_A6.cjs} +2 -2
  496. package/dist/{kbd-Xgv5HKEi.cjs.map → kbd-B2zbS_A6.cjs.map} +1 -1
  497. package/dist/{kbd-7Xx2pm9f.js → kbd-CYtMrOov.js} +2 -2
  498. package/dist/{kbd-7Xx2pm9f.js.map → kbd-CYtMrOov.js.map} +1 -1
  499. package/dist/layout/tabbed-container.cjs.js +3 -3
  500. package/dist/layout/tabbed-container.es.js +3 -3
  501. package/dist/lib/form/components/boolean-field.cjs.js +1 -1
  502. package/dist/lib/form/components/boolean-field.es.js +1 -1
  503. package/dist/lib/form/components/field-wrapper.cjs.js +1 -1
  504. package/dist/lib/form/components/field-wrapper.es.js +1 -1
  505. package/dist/lib/form/components/select-field.cjs.js +1 -1
  506. package/dist/lib/form/components/select-field.es.js +1 -1
  507. package/dist/{list-search-ByJdIxIh.js → list-search-8jVOq9LK.js} +2 -2
  508. package/dist/{list-search-ByJdIxIh.js.map → list-search-8jVOq9LK.js.map} +1 -1
  509. package/dist/{list-search-DNJVeHmK.cjs → list-search-C7ckmZHa.cjs} +2 -2
  510. package/dist/{list-search-DNJVeHmK.cjs.map → list-search-C7ckmZHa.cjs.map} +1 -1
  511. package/dist/{logs-data-list-DCj8Pj77.cjs → logs-data-list-C4Z4rw62.cjs} +21 -22
  512. package/dist/{logs-data-list-DCj8Pj77.cjs.map → logs-data-list-C4Z4rw62.cjs.map} +1 -1
  513. package/dist/{logs-data-list-Db5dBRmc.js → logs-data-list-CL3iq_6r.js} +2 -3
  514. package/dist/{logs-data-list-Db5dBRmc.js.map → logs-data-list-CL3iq_6r.js.map} +1 -1
  515. package/dist/{markdown-renderer-CQ_pSSO7.cjs → markdown-renderer-73CdjgS4.cjs} +2 -2
  516. package/dist/{markdown-renderer-CQ_pSSO7.cjs.map → markdown-renderer-73CdjgS4.cjs.map} +1 -1
  517. package/dist/{markdown-renderer-DEoJ5aBR.js → markdown-renderer-Qv9-1YIp.js} +2 -2
  518. package/dist/{markdown-renderer-DEoJ5aBR.js.map → markdown-renderer-Qv9-1YIp.js.map} +1 -1
  519. package/dist/new/settings.cjs.js +3 -2
  520. package/dist/new/settings.cjs.js.map +1 -1
  521. package/dist/new/settings.es.js +2 -1
  522. package/dist/new/settings.es.js.map +1 -1
  523. package/dist/{notification-activity-BWXHmlTn.js → notification-activity-BRW1Xlj1.js} +9 -5
  524. package/dist/notification-activity-BRW1Xlj1.js.map +1 -0
  525. package/dist/{notification-activity-BSNuqJDd.cjs → notification-activity-DAZOALWI.cjs} +9 -5
  526. package/dist/notification-activity-DAZOALWI.cjs.map +1 -0
  527. package/dist/page-layout-D1AXJJrp.cjs +61 -0
  528. package/dist/page-layout-D1AXJJrp.cjs.map +1 -0
  529. package/dist/page-layout-DCMg_kJB.js +59 -0
  530. package/dist/page-layout-DCMg_kJB.js.map +1 -0
  531. package/dist/{plan-TYss51JK.cjs → plan-DBvoFFHO.cjs} +2 -2
  532. package/dist/{plan-TYss51JK.cjs.map → plan-DBvoFFHO.cjs.map} +1 -1
  533. package/dist/{plan-B6td0b8h.js → plan-TBs5kj_X.js} +2 -2
  534. package/dist/{plan-B6td0b8h.js.map → plan-TBs5kj_X.js.map} +1 -1
  535. package/dist/{reasoning-activity-I5-HcGou.cjs → reasoning-activity-BrZbS7pa.cjs} +2 -2
  536. package/dist/{reasoning-activity-I5-HcGou.cjs.map → reasoning-activity-BrZbS7pa.cjs.map} +1 -1
  537. package/dist/{reasoning-activity-Dz2hk9pU.js → reasoning-activity-CyMhxRL2.js} +2 -2
  538. package/dist/{reasoning-activity-Dz2hk9pU.js.map → reasoning-activity-CyMhxRL2.js.map} +1 -1
  539. package/dist/resize/collapsible-panel.cjs.js +1 -1
  540. package/dist/resize/collapsible-panel.es.js +1 -1
  541. package/dist/{search-input-CMNy0JWd.cjs → search-input-CGNENJDh.cjs} +2 -2
  542. package/dist/{search-input-CMNy0JWd.cjs.map → search-input-CGNENJDh.cjs.map} +1 -1
  543. package/dist/{search-input-C9qFBzn6.js → search-input-cIYk0pl3.js} +2 -2
  544. package/dist/{search-input-C9qFBzn6.js.map → search-input-cIYk0pl3.js.map} +1 -1
  545. package/dist/{section-CctlZIXp.cjs → section-BikCyHdf.cjs} +4 -3
  546. package/dist/{section-CctlZIXp.cjs.map → section-BikCyHdf.cjs.map} +1 -1
  547. package/dist/{section-D0hKTVXt.js → section-C71zDLKM.js} +3 -2
  548. package/dist/{section-D0hKTVXt.js.map → section-C71zDLKM.js.map} +1 -1
  549. package/dist/{select-A3AFKLd9.cjs → select-BqHt-fOI.cjs} +12 -1
  550. package/dist/select-BqHt-fOI.cjs.map +1 -0
  551. package/dist/{select-7rYaECQf.js → select-CCpQUIEg.js} +13 -3
  552. package/dist/select-CCpQUIEg.js.map +1 -0
  553. package/dist/settings-container-D6LsO77E.js +42 -0
  554. package/dist/settings-container-D6LsO77E.js.map +1 -0
  555. package/dist/settings-container-umHxLp1a.cjs +45 -0
  556. package/dist/settings-container-umHxLp1a.cjs.map +1 -0
  557. package/dist/{settings-row-m_4gDCwS.cjs → settings-row-C9lT2BJS.cjs} +3 -42
  558. package/dist/settings-row-C9lT2BJS.cjs.map +1 -0
  559. package/dist/{settings-row-yuQjwWTl.js → settings-row-CRpU1an-.js} +4 -41
  560. package/dist/settings-row-CRpU1an-.js.map +1 -0
  561. package/dist/{span-payload-primitives-n5uf4hOk.cjs → span-payload-primitives-CE124T1P.cjs} +2 -2
  562. package/dist/{span-payload-primitives-n5uf4hOk.cjs.map → span-payload-primitives-CE124T1P.cjs.map} +1 -1
  563. package/dist/{span-payload-primitives-CaT3DT8h.js → span-payload-primitives-v0iS2w26.js} +2 -2
  564. package/dist/{span-payload-primitives-CaT3DT8h.js.map → span-payload-primitives-v0iS2w26.js.map} +1 -1
  565. package/dist/src/domains/capabilities/index.d.ts +1 -1
  566. package/dist/src/domains/chat/messages/notification-signal-notice.d.ts +2 -0
  567. package/dist/src/domains/chat/messages/signal-data.d.ts +9 -0
  568. package/dist/src/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.d.ts +28 -0
  569. package/dist/src/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.d.ts +28 -0
  570. package/dist/src/domains/datasets/components/add-dataset-item-dialog/collapsible-settings-row.d.ts +14 -0
  571. package/dist/src/domains/datasets/components/add-dataset-item-dialog/dataset-field-errors.d.ts +8 -0
  572. package/dist/src/domains/datasets/components/add-dataset-item-dialog/dataset-picker.d.ts +11 -0
  573. package/dist/src/domains/datasets/components/add-dataset-item-dialog/field-errors.d.ts +10 -0
  574. package/dist/src/domains/datasets/components/add-dataset-item-dialog/index.d.ts +2 -0
  575. package/dist/src/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.d.ts +11 -0
  576. package/dist/src/domains/datasets/components/add-dataset-item-dialog/trajectory-types.d.ts +50 -0
  577. package/dist/src/domains/datasets/components/add-dataset-item-dialog/use-target-agent-tools.d.ts +7 -0
  578. package/dist/src/domains/datasets/components/index.d.ts +1 -0
  579. package/dist/src/domains/logs/hooks/use-logs-filter-persistence.d.ts +2 -3
  580. package/dist/src/domains/logs/hooks/use-logs-url-state.d.ts +1 -1
  581. package/dist/src/domains/memory/components/flame-graph-data.d.ts +1 -1
  582. package/dist/src/domains/observability/components/trace-as-item-dialog.d.ts +3 -5
  583. package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +1 -5
  584. package/dist/src/domains/traces/components/trace-span-panel.d.ts +1 -2
  585. package/dist/src/domains/traces/components/traces-explorer/index.d.ts +27 -0
  586. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-actions.d.ts +113 -0
  587. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-auto-refresh.d.ts +1 -0
  588. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-columns-menu.d.ts +1 -0
  589. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-columns-provider.d.ts +9 -0
  590. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-context.d.ts +114 -0
  591. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-filter-bar.d.ts +24 -0
  592. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-layout.d.ts +14 -0
  593. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-list-provider.d.ts +13 -0
  594. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-list.d.ts +1 -0
  595. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-panel.d.ts +18 -0
  596. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-root.d.ts +21 -0
  597. package/dist/src/domains/traces/components/traces-explorer/use-traces-discovery.d.ts +15 -0
  598. package/dist/src/domains/traces/components/traces-explorer/use-traces-filter-bar.d.ts +15 -0
  599. package/dist/src/domains/traces/hooks/index.d.ts +1 -2
  600. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +7 -1
  601. package/dist/src/domains/traces/trace-query-filters.d.ts +2 -0
  602. package/dist/src/domains/workflows/context/use-persisted-workflow-run.d.ts +5 -5
  603. package/dist/src/ds/components/BillingIllustration/art/credits-art.d.ts +2 -0
  604. package/dist/src/ds/components/BillingIllustration/art/plan-art.d.ts +5 -0
  605. package/dist/src/ds/components/BillingIllustration/billing-illustration.d.ts +1 -1
  606. package/dist/src/ds/components/CodeEditor/code-editor.d.ts +4 -0
  607. package/dist/src/ds/components/Combobox/combobox-parts.d.ts +1 -1
  608. package/dist/src/ds/components/DataList/data-list-root.d.ts +2 -0
  609. package/dist/src/ds/components/Select/select.d.ts +5 -1
  610. package/dist/src/ds/components/Sidebar/header/sidebar-badge.d.ts +7 -0
  611. package/dist/src/ds/components/Sidebar/header/sidebar-button-hint.d.ts +7 -0
  612. package/dist/src/ds/components/Sidebar/header/sidebar-search-trigger.d.ts +14 -3
  613. package/dist/src/ds/components/Sidebar/index.d.ts +1 -0
  614. package/dist/src/ds/components/Sidebar/root/sidebar-trigger.d.ts +2 -2
  615. package/dist/src/ds/components/Sidebar/sidebar.d.ts +5 -1
  616. package/dist/src/ds/components/ai/activity/presets/notification-activity.d.ts +5 -1
  617. package/dist/style.css +101 -13
  618. package/dist/{time-picker-CyvG-fwX.cjs → time-picker-BGtAkRRp.cjs} +2 -2
  619. package/dist/{time-picker-CyvG-fwX.cjs.map → time-picker-BGtAkRRp.cjs.map} +1 -1
  620. package/dist/{time-picker-Bzdboi4W.js → time-picker-D1VsACkg.js} +2 -2
  621. package/dist/{time-picker-Bzdboi4W.js.map → time-picker-D1VsACkg.js.map} +1 -1
  622. package/dist/{tool-approval-meJYp8az.js → tool-approval-CW6YjYlc.js} +2 -2
  623. package/dist/{tool-approval-meJYp8az.js.map → tool-approval-CW6YjYlc.js.map} +1 -1
  624. package/dist/{tool-approval-tRkskd9l.cjs → tool-approval-DNw_9w1C.cjs} +2 -2
  625. package/dist/{tool-approval-tRkskd9l.cjs.map → tool-approval-DNw_9w1C.cjs.map} +1 -1
  626. package/dist/{tool-call-arguments-D4D9tT7-.cjs → tool-call-arguments-BdHtc5O4.cjs} +2 -2
  627. package/dist/{tool-call-arguments-D4D9tT7-.cjs.map → tool-call-arguments-BdHtc5O4.cjs.map} +1 -1
  628. package/dist/{tool-call-arguments-CyKLhuQC.js → tool-call-arguments-CByjFWnk.js} +2 -2
  629. package/dist/{tool-call-arguments-CyKLhuQC.js.map → tool-call-arguments-CByjFWnk.js.map} +1 -1
  630. package/dist/{tool-card-D9jh-XXM.cjs → tool-card-DULALXIR.cjs} +2 -2
  631. package/dist/{tool-card-D9jh-XXM.cjs.map → tool-card-DULALXIR.cjs.map} +1 -1
  632. package/dist/{tool-card-B7s_wQuV.js → tool-card-DyZaGWgD.js} +2 -2
  633. package/dist/{tool-card-B7s_wQuV.js.map → tool-card-DyZaGWgD.js.map} +1 -1
  634. package/dist/{trace-filters-tC2TkI42.cjs → trace-filters-BtyiQq7Y.cjs} +9 -5
  635. package/dist/trace-filters-BtyiQq7Y.cjs.map +1 -0
  636. package/dist/{trace-filters-D1Cs5f24.js → trace-filters-DXW-RdDz.js} +10 -7
  637. package/dist/trace-filters-DXW-RdDz.js.map +1 -0
  638. package/dist/{traces-data-list-CF_LFvnf.cjs → traces-data-list-BOHhsgDI.cjs} +18 -20
  639. package/dist/{traces-data-list-CF_LFvnf.cjs.map → traces-data-list-BOHhsgDI.cjs.map} +1 -1
  640. package/dist/{traces-data-list-SpVFLEy8.js → traces-data-list-CP6knkOn.js} +2 -4
  641. package/dist/{traces-data-list-SpVFLEy8.js.map → traces-data-list-CP6knkOn.js.map} +1 -1
  642. package/dist/{use-workflow-graph-runtime-B0k2hrMc.cjs → use-workflow-graph-runtime-CWgTtW-I.cjs} +2 -2
  643. package/dist/{use-workflow-graph-runtime-B0k2hrMc.cjs.map → use-workflow-graph-runtime-CWgTtW-I.cjs.map} +1 -1
  644. package/dist/{use-workflow-graph-runtime-DiiAs2oN.js → use-workflow-graph-runtime-vYcO5MFZ.js} +2 -2
  645. package/dist/{use-workflow-graph-runtime-DiiAs2oN.js.map → use-workflow-graph-runtime-vYcO5MFZ.js.map} +1 -1
  646. package/dist/{workflow-code-dialog-content-yV6Lecry.cjs → workflow-code-dialog-content-BeB3jC3z.cjs} +2 -2
  647. package/dist/{workflow-code-dialog-content-yV6Lecry.cjs.map → workflow-code-dialog-content-BeB3jC3z.cjs.map} +1 -1
  648. package/dist/{workflow-code-dialog-content-lRHRkDdW.js → workflow-code-dialog-content-BpWrCzH0.js} +2 -2
  649. package/dist/{workflow-code-dialog-content-lRHRkDdW.js.map → workflow-code-dialog-content-BpWrCzH0.js.map} +1 -1
  650. package/dist/{workflow-data-edge-view-DadIXKjI.cjs → workflow-data-edge-view-CYsZxUHx.cjs} +2 -2
  651. package/dist/{workflow-data-edge-view-DadIXKjI.cjs.map → workflow-data-edge-view-CYsZxUHx.cjs.map} +1 -1
  652. package/dist/{workflow-data-edge-view-BcLEbr1i.js → workflow-data-edge-view-Cqbhavjw.js} +2 -2
  653. package/dist/{workflow-data-edge-view-BcLEbr1i.js.map → workflow-data-edge-view-Cqbhavjw.js.map} +1 -1
  654. package/dist/{workflow-edge-data-button-AwaLTE7H.js → workflow-edge-data-button-BPUmnY9J.js} +2 -2
  655. package/dist/{workflow-edge-data-button-AwaLTE7H.js.map → workflow-edge-data-button-BPUmnY9J.js.map} +1 -1
  656. package/dist/{workflow-edge-data-button-B4_tt1pL.cjs → workflow-edge-data-button-DinmgZoJ.cjs} +2 -2
  657. package/dist/{workflow-edge-data-button-B4_tt1pL.cjs.map → workflow-edge-data-button-DinmgZoJ.cjs.map} +1 -1
  658. package/package.json +11 -11
  659. package/dist/code-editor-CbyCb7CW.cjs.map +0 -1
  660. package/dist/code-editor-DOv4jc-0.js.map +0 -1
  661. package/dist/combobox-BCoCVZHs.js.map +0 -1
  662. package/dist/combobox-DbZAWh8q.cjs.map +0 -1
  663. package/dist/data-list-CGD9hzcp.cjs +0 -142
  664. package/dist/data-list-CGD9hzcp.cjs.map +0 -1
  665. package/dist/data-list-aFlt9Du-.js +0 -138
  666. package/dist/data-list-aFlt9Du-.js.map +0 -1
  667. package/dist/data-list-spacer-BFAQT_lQ.js +0 -209
  668. package/dist/data-list-spacer-BFAQT_lQ.js.map +0 -1
  669. package/dist/data-list-spacer-Dpoj55mv.cjs +0 -218
  670. package/dist/data-list-spacer-Dpoj55mv.cjs.map +0 -1
  671. package/dist/data-list-top-DJh08vFA.cjs.map +0 -1
  672. package/dist/data-list-top-T-mtdIUp.js.map +0 -1
  673. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +0 -204
  674. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js.map +0 -1
  675. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.d.ts +0 -2
  676. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +0 -200
  677. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js.map +0 -1
  678. package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js +0 -52
  679. package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js.map +0 -1
  680. package/dist/domains/traces/hooks/use-trace-filter-persistence.d.ts +0 -2
  681. package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js +0 -48
  682. package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js.map +0 -1
  683. package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +0 -373
  684. package/dist/domains/traces/hooks/use-trace-url-state.cjs.js.map +0 -1
  685. package/dist/domains/traces/hooks/use-trace-url-state.d.ts +0 -2
  686. package/dist/domains/traces/hooks/use-trace-url-state.es.js +0 -369
  687. package/dist/domains/traces/hooks/use-trace-url-state.es.js.map +0 -1
  688. package/dist/notification-activity-BSNuqJDd.cjs.map +0 -1
  689. package/dist/notification-activity-BWXHmlTn.js.map +0 -1
  690. package/dist/select-7rYaECQf.js.map +0 -1
  691. package/dist/select-A3AFKLd9.cjs.map +0 -1
  692. package/dist/settings-row-m_4gDCwS.cjs.map +0 -1
  693. package/dist/settings-row-yuQjwWTl.js.map +0 -1
  694. package/dist/side-dialog-C-XvsAm_.cjs +0 -231
  695. package/dist/side-dialog-C-XvsAm_.cjs.map +0 -1
  696. package/dist/side-dialog-cUpWIkKq.js +0 -211
  697. package/dist/side-dialog-cUpWIkKq.js.map +0 -1
  698. package/dist/src/domains/observability/components/add-trace-mocks-to-item-dialog.d.ts +0 -9
  699. package/dist/src/domains/traces/hooks/use-trace-filter-persistence.d.ts +0 -22
  700. package/dist/src/domains/traces/hooks/use-trace-url-state.d.ts +0 -83
  701. package/dist/trace-filters-D1Cs5f24.js.map +0 -1
  702. package/dist/trace-filters-tC2TkI42.cjs.map +0 -1
@@ -1,369 +0,0 @@
1
- import { useMemo, useRef, useCallback } from 'react';
2
- import { b as TRACE_DATE_PRESET_PARAM, c as TRACE_DATE_PRESET_VALUES, a as TRACE_DATE_FROM_PARAM, d as TRACE_DATE_TO_PARAM, T as TRACE_ANCHOR_SPAN_ID_PARAM, j as TRACE_LIST_MODE_PARAM, k as TRACE_LIST_MODE_VALUES, R as ROOT_ENTITY_TYPE_OPTIONS, s as TRACE_ROOT_ENTITY_TYPE_PARAM, u as TRACE_STATUS_PARAM, v as TRACE_STATUS_VALUES, H as getTracePropertyFilterTokens, G as getTraceFilterGroups, x as applyTracePropertyFilterTokens } from '../../../trace-filters-D1Cs5f24.js';
3
-
4
- const TRACE_ID_PARAM = "traceId";
5
- const SPAN_ID_PARAM = "spanId";
6
- const TAB_PARAM = "tab";
7
- const SPAN_VIEW_PARAM = "spanView";
8
- const SCORE_ID_PARAM = "scoreId";
9
- const HIGHLIGHT_SPAN_IDS_PARAM = "highlightSpanIds";
10
- const DAY_MS = 24 * 60 * 60 * 1e3;
11
- const PRESET_MS = {
12
- "last-24h": DAY_MS,
13
- "last-3d": 3 * DAY_MS,
14
- "last-7d": 7 * DAY_MS,
15
- "last-14d": 14 * DAY_MS,
16
- "last-30d": 30 * DAY_MS
17
- };
18
- function clearSelectionParams(params) {
19
- params.delete(TRACE_ID_PARAM);
20
- params.delete(SPAN_ID_PARAM);
21
- params.delete(TRACE_ANCHOR_SPAN_ID_PARAM);
22
- params.delete(TAB_PARAM);
23
- params.delete(SCORE_ID_PARAM);
24
- params.delete(HIGHLIGHT_SPAN_IDS_PARAM);
25
- }
26
- function useTraceUrlState(searchParams, setSearchParams, options) {
27
- const { onRemoveAll } = options ?? {};
28
- const datePreset = useMemo(() => {
29
- const value = searchParams.get(TRACE_DATE_PRESET_PARAM);
30
- return value && value !== "all" && TRACE_DATE_PRESET_VALUES.has(value) ? value : "last-7d";
31
- }, [searchParams]);
32
- const dateFromParamRaw = searchParams.get(TRACE_DATE_FROM_PARAM);
33
- const dateToParamRaw = searchParams.get(TRACE_DATE_TO_PARAM);
34
- const selectedDateFrom = useMemo(() => {
35
- if (datePreset === "custom") {
36
- if (!dateFromParamRaw) return void 0;
37
- const parsed = new Date(dateFromParamRaw);
38
- return Number.isNaN(parsed.getTime()) ? void 0 : parsed;
39
- }
40
- const ms = PRESET_MS[datePreset];
41
- return ms ? new Date(Date.now() - ms) : void 0;
42
- }, [datePreset, dateFromParamRaw]);
43
- const selectedDateTo = useMemo(() => {
44
- if (datePreset !== "custom" || !dateToParamRaw) return void 0;
45
- const parsed = new Date(dateToParamRaw);
46
- return Number.isNaN(parsed.getTime()) ? void 0 : parsed;
47
- }, [datePreset, dateToParamRaw]);
48
- const datePresetRef = useRef(datePreset);
49
- datePresetRef.current = datePreset;
50
- const traceIdParam = searchParams.get(TRACE_ID_PARAM) || void 0;
51
- const spanIdParam = searchParams.get(SPAN_ID_PARAM) || void 0;
52
- const anchorSpanIdParam = searchParams.get(TRACE_ANCHOR_SPAN_ID_PARAM) || void 0;
53
- const tabParam = searchParams.get(TAB_PARAM);
54
- const spanTabParam = tabParam === "feedback" ? "feedback" : tabParam === "details" ? "details" : void 0;
55
- const spanViewParam = searchParams.get(SPAN_VIEW_PARAM) === "timeline" ? "timeline" : "tree";
56
- const scoreIdParam = searchParams.get(SCORE_ID_PARAM) || void 0;
57
- const highlightSpanIdsRaw = searchParams.get(HIGHLIGHT_SPAN_IDS_PARAM);
58
- const highlightSpanIdsParam = useMemo(
59
- () => highlightSpanIdsRaw ? highlightSpanIdsRaw.split(",").filter(Boolean) : [],
60
- [highlightSpanIdsRaw]
61
- );
62
- const listMode = useMemo(() => {
63
- const value = searchParams.get(TRACE_LIST_MODE_PARAM);
64
- return value && TRACE_LIST_MODE_VALUES.has(value) ? value : "traces";
65
- }, [searchParams]);
66
- const selectedEntityOption = useMemo(
67
- () => ROOT_ENTITY_TYPE_OPTIONS.find((option) => option.entityType === searchParams.get(TRACE_ROOT_ENTITY_TYPE_PARAM)),
68
- [searchParams]
69
- );
70
- const selectedStatus = useMemo(() => {
71
- const value = searchParams.get(TRACE_STATUS_PARAM);
72
- return value && TRACE_STATUS_VALUES.has(value) ? value : void 0;
73
- }, [searchParams]);
74
- const filterTokens = useMemo(() => getTracePropertyFilterTokens(searchParams), [searchParams]);
75
- const filterGroups = useMemo(() => getTraceFilterGroups(searchParams), [searchParams]);
76
- const handleTraceClick = useCallback(
77
- (traceId, spanId, anchorSpanId) => {
78
- setSearchParams(
79
- (prev) => {
80
- const next = new URLSearchParams(prev);
81
- if (traceId) {
82
- next.set(TRACE_ID_PARAM, traceId);
83
- } else {
84
- next.delete(TRACE_ID_PARAM);
85
- }
86
- if (spanId) {
87
- next.set(SPAN_ID_PARAM, spanId);
88
- } else {
89
- next.delete(SPAN_ID_PARAM);
90
- }
91
- if (anchorSpanId) {
92
- next.set(TRACE_ANCHOR_SPAN_ID_PARAM, anchorSpanId);
93
- } else {
94
- next.delete(TRACE_ANCHOR_SPAN_ID_PARAM);
95
- }
96
- next.delete(TAB_PARAM);
97
- next.delete(SCORE_ID_PARAM);
98
- next.delete(HIGHLIGHT_SPAN_IDS_PARAM);
99
- return next;
100
- },
101
- { replace: true }
102
- );
103
- },
104
- [setSearchParams]
105
- );
106
- const handleTraceClose = useCallback(() => handleTraceClick(""), [handleTraceClick]);
107
- const handleSpanChange = useCallback(
108
- (spanId) => {
109
- const currentSpanId = searchParams.get(SPAN_ID_PARAM) || null;
110
- if (spanId === currentSpanId) return;
111
- setSearchParams(
112
- (prev) => {
113
- const next = new URLSearchParams(prev);
114
- if (spanId) {
115
- next.set(SPAN_ID_PARAM, spanId);
116
- } else {
117
- next.delete(SPAN_ID_PARAM);
118
- }
119
- next.delete(TAB_PARAM);
120
- next.delete(SCORE_ID_PARAM);
121
- return next;
122
- },
123
- { replace: true }
124
- );
125
- },
126
- [searchParams, setSearchParams]
127
- );
128
- const handleSpanClose = useCallback(() => handleSpanChange(null), [handleSpanChange]);
129
- const handleSpanViewChange = useCallback(
130
- (view) => {
131
- setSearchParams(
132
- (prev) => {
133
- const next = new URLSearchParams(prev);
134
- if (view === "timeline") {
135
- next.set(SPAN_VIEW_PARAM, view);
136
- } else {
137
- next.delete(SPAN_VIEW_PARAM);
138
- }
139
- return next;
140
- },
141
- { replace: true }
142
- );
143
- },
144
- [setSearchParams]
145
- );
146
- const handleSpanTabChange = useCallback(
147
- (tab) => {
148
- const currentTab = searchParams.get(TAB_PARAM) || null;
149
- if (tab === currentTab) return;
150
- setSearchParams(
151
- (prev) => {
152
- const next = new URLSearchParams(prev);
153
- if (tab && tab !== "details") {
154
- next.set(TAB_PARAM, tab);
155
- } else {
156
- next.delete(TAB_PARAM);
157
- }
158
- next.delete(SCORE_ID_PARAM);
159
- return next;
160
- },
161
- { replace: true }
162
- );
163
- },
164
- [searchParams, setSearchParams]
165
- );
166
- const handleSpanChangeWithTab = useCallback(
167
- (spanId, tab) => {
168
- const nextTab = tab && tab !== "details" ? tab : null;
169
- const isNoOp = spanId === (searchParams.get(SPAN_ID_PARAM) || null) && nextTab === (searchParams.get(TAB_PARAM) || null) && !searchParams.get(SCORE_ID_PARAM);
170
- if (isNoOp) return;
171
- setSearchParams(
172
- (prev) => {
173
- const next = new URLSearchParams(prev);
174
- next.set(SPAN_ID_PARAM, spanId);
175
- if (nextTab) {
176
- next.set(TAB_PARAM, nextTab);
177
- } else {
178
- next.delete(TAB_PARAM);
179
- }
180
- next.delete(SCORE_ID_PARAM);
181
- return next;
182
- },
183
- { replace: true }
184
- );
185
- },
186
- [searchParams, setSearchParams]
187
- );
188
- const handleScoreChange = useCallback(
189
- (scoreId) => {
190
- const currentScoreId = searchParams.get(SCORE_ID_PARAM) || null;
191
- if (scoreId === currentScoreId) return;
192
- setSearchParams(
193
- (prev) => {
194
- const next = new URLSearchParams(prev);
195
- if (scoreId) {
196
- next.set(SCORE_ID_PARAM, scoreId);
197
- } else {
198
- next.delete(SCORE_ID_PARAM);
199
- }
200
- return next;
201
- },
202
- { replace: true }
203
- );
204
- },
205
- [searchParams, setSearchParams]
206
- );
207
- const handleHighlightSpans = useCallback(
208
- (spanIds) => {
209
- setSearchParams(
210
- (prev) => {
211
- const next = new URLSearchParams(prev);
212
- if (spanIds.length === 0) next.delete(HIGHLIGHT_SPAN_IDS_PARAM);
213
- else next.set(HIGHLIGHT_SPAN_IDS_PARAM, spanIds.join(","));
214
- return next;
215
- },
216
- { replace: true }
217
- );
218
- },
219
- [setSearchParams]
220
- );
221
- const applyFilterTokens = useCallback(
222
- (tokens, groups = []) => {
223
- setSearchParams(
224
- (prev) => {
225
- const next = new URLSearchParams(prev);
226
- applyTracePropertyFilterTokens(next, tokens, groups);
227
- clearSelectionParams(next);
228
- return next;
229
- },
230
- { replace: true }
231
- );
232
- },
233
- [setSearchParams]
234
- );
235
- const handleFilterTokensChange = applyFilterTokens;
236
- const handleDateChange = useCallback(
237
- (value, type) => {
238
- if (datePresetRef.current !== "custom") return;
239
- const param = type === "from" ? TRACE_DATE_FROM_PARAM : TRACE_DATE_TO_PARAM;
240
- setSearchParams(
241
- (prev) => {
242
- const next = new URLSearchParams(prev);
243
- if (value) {
244
- next.set(param, value.toISOString());
245
- } else {
246
- next.delete(param);
247
- }
248
- clearSelectionParams(next);
249
- return next;
250
- },
251
- { replace: true }
252
- );
253
- },
254
- [setSearchParams]
255
- );
256
- const handleDateRangeChange = useCallback(
257
- (from, to) => {
258
- if (datePresetRef.current !== "custom") return;
259
- setSearchParams(
260
- (prev) => {
261
- const next = new URLSearchParams(prev);
262
- if (from) next.set(TRACE_DATE_FROM_PARAM, from.toISOString());
263
- else next.delete(TRACE_DATE_FROM_PARAM);
264
- if (to) next.set(TRACE_DATE_TO_PARAM, to.toISOString());
265
- else next.delete(TRACE_DATE_TO_PARAM);
266
- clearSelectionParams(next);
267
- return next;
268
- },
269
- { replace: true }
270
- );
271
- },
272
- [setSearchParams]
273
- );
274
- const handleDatePresetChange = useCallback(
275
- (preset) => {
276
- datePresetRef.current = preset;
277
- setSearchParams(
278
- (prev) => {
279
- const next = new URLSearchParams(prev);
280
- if (preset === "last-7d") {
281
- next.delete(TRACE_DATE_PRESET_PARAM);
282
- next.delete(TRACE_DATE_FROM_PARAM);
283
- next.delete(TRACE_DATE_TO_PARAM);
284
- } else if (preset === "custom") {
285
- next.set(TRACE_DATE_PRESET_PARAM, "custom");
286
- } else {
287
- next.set(TRACE_DATE_PRESET_PARAM, preset);
288
- next.delete(TRACE_DATE_FROM_PARAM);
289
- next.delete(TRACE_DATE_TO_PARAM);
290
- }
291
- clearSelectionParams(next);
292
- return next;
293
- },
294
- { replace: true }
295
- );
296
- },
297
- [setSearchParams]
298
- );
299
- const handleListModeChange = useCallback(
300
- (mode) => {
301
- setSearchParams(
302
- (prev) => {
303
- const next = new URLSearchParams(prev);
304
- if (mode === "traces") {
305
- next.delete(TRACE_LIST_MODE_PARAM);
306
- } else {
307
- next.set(TRACE_LIST_MODE_PARAM, mode);
308
- }
309
- clearSelectionParams(next);
310
- return next;
311
- },
312
- { replace: true }
313
- );
314
- },
315
- [setSearchParams]
316
- );
317
- const handleRemoveAll = useCallback(() => {
318
- setSearchParams(
319
- (prev) => {
320
- const next = new URLSearchParams(prev);
321
- next.delete(TRACE_LIST_MODE_PARAM);
322
- applyTracePropertyFilterTokens(next, []);
323
- clearSelectionParams(next);
324
- return next;
325
- },
326
- { replace: true }
327
- );
328
- onRemoveAll?.();
329
- }, [setSearchParams, onRemoveAll]);
330
- return {
331
- searchParams,
332
- setSearchParams,
333
- datePreset,
334
- selectedDateFrom,
335
- selectedDateTo,
336
- datePresetRef,
337
- traceIdParam,
338
- spanIdParam,
339
- anchorSpanIdParam,
340
- spanTabParam,
341
- spanViewParam,
342
- scoreIdParam,
343
- highlightSpanIdsParam,
344
- listMode,
345
- selectedEntityOption,
346
- selectedStatus,
347
- filterTokens,
348
- filterGroups,
349
- handleTraceClick,
350
- handleTraceClose,
351
- handleSpanChange,
352
- handleSpanClose,
353
- handleSpanTabChange,
354
- handleSpanViewChange,
355
- handleSpanChangeWithTab,
356
- handleScoreChange,
357
- handleHighlightSpans,
358
- handleListModeChange,
359
- handleFilterTokensChange,
360
- handleDateChange,
361
- handleDateRangeChange,
362
- handleDatePresetChange,
363
- handleRemoveAll,
364
- applyFilterTokens
365
- };
366
- }
367
-
368
- export { useTraceUrlState };
369
- //# sourceMappingURL=use-trace-url-state.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-trace-url-state.es.js","sources":["../../../../src/domains/traces/hooks/use-trace-url-state.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef } from 'react';\nimport type { TraceSpanView } from '../components/trace-data-panel-view';\nimport type { SpanTab, TraceDatePreset } from '../index';\nimport {\n ROOT_ENTITY_TYPE_OPTIONS,\n TRACE_ANCHOR_SPAN_ID_PARAM,\n TRACE_DATE_FROM_PARAM,\n TRACE_DATE_PRESET_PARAM,\n TRACE_DATE_PRESET_VALUES,\n TRACE_DATE_TO_PARAM,\n TRACE_LIST_MODE_PARAM,\n TRACE_LIST_MODE_VALUES,\n TRACE_ROOT_ENTITY_TYPE_PARAM,\n TRACE_STATUS_PARAM,\n TRACE_STATUS_VALUES,\n applyTracePropertyFilterTokens,\n getTraceFilterGroups,\n getTracePropertyFilterTokens,\n} from '../trace-filters';\nimport type {\n EntityOptions,\n TraceFilterGroup,\n TraceFilterToken,\n TraceListMode,\n TraceStatusFilter,\n} from '../trace-filters';\n\nconst TRACE_ID_PARAM = 'traceId';\nconst SPAN_ID_PARAM = 'spanId';\nconst TAB_PARAM = 'tab';\nconst SPAN_VIEW_PARAM = 'spanView';\nconst SCORE_ID_PARAM = 'scoreId';\nconst HIGHLIGHT_SPAN_IDS_PARAM = 'highlightSpanIds';\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\nconst PRESET_MS: Partial<Record<TraceDatePreset, number>> = {\n 'last-24h': DAY_MS,\n 'last-3d': 3 * DAY_MS,\n 'last-7d': 7 * DAY_MS,\n 'last-14d': 14 * DAY_MS,\n 'last-30d': 30 * DAY_MS,\n};\n\n/** Mutates `params` in place to drop the featured trace/span/tab/score selection.\n * Used whenever a filter changes — selection no longer makes sense in the new result set. */\nfunction clearSelectionParams(params: URLSearchParams) {\n params.delete(TRACE_ID_PARAM);\n params.delete(SPAN_ID_PARAM);\n params.delete(TRACE_ANCHOR_SPAN_ID_PARAM);\n params.delete(TAB_PARAM);\n params.delete(SCORE_ID_PARAM);\n params.delete(HIGHLIGHT_SPAN_IDS_PARAM);\n}\n\n/** Minimal interface compatible with react-router's `setSearchParams`. */\nexport type SetURLSearchParamsLike = (\n next: URLSearchParams | ((prev: URLSearchParams) => URLSearchParams),\n options?: { replace?: boolean; preventScrollReset?: boolean; state?: unknown },\n) => void;\n\nexport interface UseTraceUrlStateOptions {\n /** Called after `handleRemoveAll` clears all filter URL params. Use this to reset page-local\n * UI state (e.g. a \"group by thread\" toggle) without wrapping the handler. */\n onRemoveAll?: () => void;\n}\n\nexport interface UseTraceUrlStateResult {\n // Raw search params passed through for convenience\n searchParams: URLSearchParams;\n setSearchParams: SetURLSearchParamsLike;\n\n // Date state (derived from URL)\n datePreset: TraceDatePreset;\n selectedDateFrom: Date | undefined;\n selectedDateTo: Date | undefined;\n /** Synchronously-updated ref of the latest preset. Used to ignore onDateChange callbacks\n * the date picker fires after a non-custom preset switch. */\n datePresetRef: React.MutableRefObject<TraceDatePreset>;\n\n // Selection state (derived from URL)\n traceIdParam: string | undefined;\n spanIdParam: string | undefined;\n /** Branch-mode only: the anchor span that defines the displayed subtree. Stable while the\n * user navigates between spans inside the panel (which only changes `spanIdParam`). */\n anchorSpanIdParam: string | undefined;\n spanTabParam: SpanTab | undefined;\n /** Which view the trace column shows; `tree` is the default and is not written to the URL. */\n spanViewParam: TraceSpanView;\n scoreIdParam: string | undefined;\n /** Span ids featured in the timeline (e.g. the spans behind a reconstructed message). Empty when unset. */\n highlightSpanIdsParam: string[];\n\n // Filter state (derived from URL)\n listMode: TraceListMode;\n selectedEntityOption: EntityOptions | undefined;\n selectedStatus: TraceStatusFilter | undefined;\n filterTokens: TraceFilterToken[];\n /** Root-level advanced (AND/OR) filter groups, read from the `filterGroup` params. */\n filterGroups: TraceFilterGroup[];\n\n // URL-modifying handlers\n /**\n * Selects a row. In traces mode pass just `traceId` (and optionally a `spanId` for an\n * initial span selection in the panel). In branches mode also pass `anchorSpanId` — the\n * branch identity, kept stable while the user navigates between spans inside the panel.\n * Branch rows are identified by (traceId, anchorSpanId); trace rows by traceId alone.\n */\n handleTraceClick: (traceId: string, spanId?: string, anchorSpanId?: string) => void;\n /** Convenience: clears the featured trace selection. Equivalent to `handleTraceClick('')`. */\n handleTraceClose: () => void;\n handleSpanChange: (spanId: string | null) => void;\n /** Convenience: clears the featured span selection. Equivalent to `handleSpanChange(null)`. */\n handleSpanClose: () => void;\n handleSpanTabChange: (tab: SpanTab) => void;\n handleSpanViewChange: (view: TraceSpanView) => void;\n /** Selects a span AND switches its panel tab in a single URL update. Use when both must change\n * from one interaction (e.g. \"Evaluate Trace\"). Calling `handleSpanChange` + `handleSpanTabChange`\n * separately races: each functional `setSearchParams` updater reads the same pre-update\n * `searchParams` snapshot, so the second navigation overwrites the first (last write wins) and one\n * of the two changes is lost on the first click. */\n handleSpanChangeWithTab: (spanId: string, tab: SpanTab) => void;\n handleScoreChange: (scoreId: string | null) => void;\n /** Features `spanIds` in the timeline and selects the first one. An empty array clears the highlight. */\n handleHighlightSpans: (spanIds: string[]) => void;\n /** Switches the list view between traces and branches. Clears the current selection. */\n handleListModeChange: (mode: TraceListMode) => void;\n handleFilterTokensChange: (nextTokens: TraceFilterToken[], nextGroups?: TraceFilterGroup[]) => void;\n handleDateChange: (value: Date | undefined, type: 'from' | 'to') => void;\n /** Writes both ends of a custom range in one URL update (two `handleDateChange` calls in the\n * same tick would clobber each other through react-router's closure-bound setter). */\n handleDateRangeChange: (from: Date | undefined, to: Date | undefined) => void;\n handleDatePresetChange: (preset: TraceDatePreset) => void;\n handleRemoveAll: () => void;\n\n /** Lower-level helper used by `handleClear`: writes a token set and clears the trace/span selection. */\n applyFilterTokens: (tokens: TraceFilterToken[], groups?: TraceFilterGroup[]) => void;\n}\n\n/**\n * Owns all URL-derived state and URL-modifying handlers for the traces page. Routing-agnostic —\n * pass `searchParams` and `setSearchParams` from whichever router the consumer uses.\n *\n * Stays focused on URL state: localStorage save/restore, filter discovery, and the error-view\n * short-circuit are intentionally NOT part of this hook so consumers can swap them independently.\n */\nexport function useTraceUrlState(\n searchParams: URLSearchParams,\n setSearchParams: SetURLSearchParamsLike,\n options?: UseTraceUrlStateOptions,\n): UseTraceUrlStateResult {\n const { onRemoveAll } = options ?? {};\n const datePreset = useMemo<TraceDatePreset>(() => {\n const value = searchParams.get(TRACE_DATE_PRESET_PARAM);\n return value && value !== 'all' && TRACE_DATE_PRESET_VALUES.has(value as TraceDatePreset)\n ? (value as TraceDatePreset)\n : 'last-7d';\n }, [searchParams]);\n\n const dateFromParamRaw = searchParams.get(TRACE_DATE_FROM_PARAM);\n const dateToParamRaw = searchParams.get(TRACE_DATE_TO_PARAM);\n\n const selectedDateFrom = useMemo(() => {\n if (datePreset === 'custom') {\n if (!dateFromParamRaw) return undefined;\n const parsed = new Date(dateFromParamRaw);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }\n // 'all' has no entry in PRESET_MS, so it falls out as an open-ended window.\n const ms = PRESET_MS[datePreset];\n return ms ? new Date(Date.now() - ms) : undefined;\n }, [datePreset, dateFromParamRaw]);\n\n const selectedDateTo = useMemo(() => {\n if (datePreset !== 'custom' || !dateToParamRaw) return undefined;\n const parsed = new Date(dateToParamRaw);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }, [datePreset, dateToParamRaw]);\n\n // Track the latest preset synchronously so onDateChange callbacks that follow\n // a non-custom preset switch can be ignored (router setSearchParams captures\n // searchParams in its closure, so multiple synchronous calls would otherwise\n // clobber each other).\n const datePresetRef = useRef(datePreset);\n datePresetRef.current = datePreset;\n\n const traceIdParam = searchParams.get(TRACE_ID_PARAM) || undefined;\n const spanIdParam = searchParams.get(SPAN_ID_PARAM) || undefined;\n /** Branch-mode only: identifies which branch (anchor span) the panel is viewing. Stays put\n * while the user navigates between spans inside the panel (which only changes spanIdParam). */\n const anchorSpanIdParam = searchParams.get(TRACE_ANCHOR_SPAN_ID_PARAM) || undefined;\n const tabParam = searchParams.get(TAB_PARAM);\n const spanTabParam: SpanTab | undefined =\n tabParam === 'feedback' ? 'feedback' : tabParam === 'details' ? 'details' : undefined;\n const spanViewParam: TraceSpanView = searchParams.get(SPAN_VIEW_PARAM) === 'timeline' ? 'timeline' : 'tree';\n const scoreIdParam = searchParams.get(SCORE_ID_PARAM) || undefined;\n const highlightSpanIdsRaw = searchParams.get(HIGHLIGHT_SPAN_IDS_PARAM);\n const highlightSpanIdsParam = useMemo(\n () => (highlightSpanIdsRaw ? highlightSpanIdsRaw.split(',').filter(Boolean) : []),\n [highlightSpanIdsRaw],\n );\n\n const listMode = useMemo<TraceListMode>(() => {\n const value = searchParams.get(TRACE_LIST_MODE_PARAM);\n return value && TRACE_LIST_MODE_VALUES.has(value as TraceListMode) ? (value as TraceListMode) : 'traces';\n }, [searchParams]);\n const selectedEntityOption = useMemo(\n () => ROOT_ENTITY_TYPE_OPTIONS.find(option => option.entityType === searchParams.get(TRACE_ROOT_ENTITY_TYPE_PARAM)),\n [searchParams],\n );\n const selectedStatus = useMemo<TraceStatusFilter | undefined>(() => {\n const value = searchParams.get(TRACE_STATUS_PARAM);\n return value && TRACE_STATUS_VALUES.has(value as TraceStatusFilter) ? (value as TraceStatusFilter) : undefined;\n }, [searchParams]);\n const filterTokens = useMemo(() => getTracePropertyFilterTokens(searchParams), [searchParams]);\n const filterGroups = useMemo(() => getTraceFilterGroups(searchParams), [searchParams]);\n\n const handleTraceClick = useCallback(\n (traceId: string, spanId?: string, anchorSpanId?: string) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (traceId) {\n next.set(TRACE_ID_PARAM, traceId);\n } else {\n next.delete(TRACE_ID_PARAM);\n }\n if (spanId) {\n next.set(SPAN_ID_PARAM, spanId);\n } else {\n next.delete(SPAN_ID_PARAM);\n }\n if (anchorSpanId) {\n next.set(TRACE_ANCHOR_SPAN_ID_PARAM, anchorSpanId);\n } else {\n next.delete(TRACE_ANCHOR_SPAN_ID_PARAM);\n }\n next.delete(TAB_PARAM);\n next.delete(SCORE_ID_PARAM);\n next.delete(HIGHLIGHT_SPAN_IDS_PARAM);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleTraceClose = useCallback(() => handleTraceClick(''), [handleTraceClick]);\n\n const handleSpanChange = useCallback(\n (spanId: string | null) => {\n const currentSpanId = searchParams.get(SPAN_ID_PARAM) || null;\n if (spanId === currentSpanId) return;\n\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (spanId) {\n next.set(SPAN_ID_PARAM, spanId);\n } else {\n next.delete(SPAN_ID_PARAM);\n }\n // Tab + score are per-span; they'd point at the previous span's context otherwise.\n next.delete(TAB_PARAM);\n next.delete(SCORE_ID_PARAM);\n return next;\n },\n { replace: true },\n );\n },\n [searchParams, setSearchParams],\n );\n\n const handleSpanClose = useCallback(() => handleSpanChange(null), [handleSpanChange]);\n\n const handleSpanViewChange = useCallback(\n (view: TraceSpanView) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (view === 'timeline') {\n next.set(SPAN_VIEW_PARAM, view);\n } else {\n next.delete(SPAN_VIEW_PARAM);\n }\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleSpanTabChange = useCallback(\n (tab: SpanTab) => {\n const currentTab = searchParams.get(TAB_PARAM) || null;\n if (tab === currentTab) return;\n\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (tab && tab !== 'details') {\n next.set(TAB_PARAM, tab);\n } else {\n next.delete(TAB_PARAM);\n }\n next.delete(SCORE_ID_PARAM);\n return next;\n },\n { replace: true },\n );\n },\n [searchParams, setSearchParams],\n );\n\n const handleSpanChangeWithTab = useCallback(\n (spanId: string, tab: SpanTab) => {\n const nextTab = tab && tab !== 'details' ? tab : null;\n // No-op guard (same pattern as the sibling handlers): skip the navigation only when span,\n // tab AND score are already exactly what this call would produce.\n const isNoOp =\n spanId === (searchParams.get(SPAN_ID_PARAM) || null) &&\n nextTab === (searchParams.get(TAB_PARAM) || null) &&\n !searchParams.get(SCORE_ID_PARAM);\n if (isNoOp) return;\n\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n next.set(SPAN_ID_PARAM, spanId);\n if (nextTab) {\n next.set(TAB_PARAM, nextTab);\n } else {\n next.delete(TAB_PARAM);\n }\n next.delete(SCORE_ID_PARAM);\n return next;\n },\n { replace: true },\n );\n },\n [searchParams, setSearchParams],\n );\n\n const handleScoreChange = useCallback(\n (scoreId: string | null) => {\n const currentScoreId = searchParams.get(SCORE_ID_PARAM) || null;\n if (scoreId === currentScoreId) return;\n\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (scoreId) {\n next.set(SCORE_ID_PARAM, scoreId);\n } else {\n next.delete(SCORE_ID_PARAM);\n }\n return next;\n },\n { replace: true },\n );\n },\n [searchParams, setSearchParams],\n );\n\n const handleHighlightSpans = useCallback(\n (spanIds: string[]) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (spanIds.length === 0) next.delete(HIGHLIGHT_SPAN_IDS_PARAM);\n else next.set(HIGHLIGHT_SPAN_IDS_PARAM, spanIds.join(','));\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const applyFilterTokens = useCallback(\n (tokens: TraceFilterToken[], groups: TraceFilterGroup[] = []) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n // applyTracePropertyFilterTokens wipes all filter params (including\n // rootEntityType / status / filterGroup) and re-adds them in `nextTokens`\n // order so URL insertion order == filter creation order.\n applyTracePropertyFilterTokens(next, tokens, groups);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleFilterTokensChange = applyFilterTokens;\n\n // Only relevant for 'custom' — the picker also fires onDateChange after a\n // non-custom preset switch, which we ignore to avoid racing URL updates.\n const handleDateChange = useCallback(\n (value: Date | undefined, type: 'from' | 'to') => {\n if (datePresetRef.current !== 'custom') return;\n const param = type === 'from' ? TRACE_DATE_FROM_PARAM : TRACE_DATE_TO_PARAM;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (value) {\n next.set(param, value.toISOString());\n } else {\n next.delete(param);\n }\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleDateRangeChange = useCallback(\n (from: Date | undefined, to: Date | undefined) => {\n if (datePresetRef.current !== 'custom') return;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (from) next.set(TRACE_DATE_FROM_PARAM, from.toISOString());\n else next.delete(TRACE_DATE_FROM_PARAM);\n if (to) next.set(TRACE_DATE_TO_PARAM, to.toISOString());\n else next.delete(TRACE_DATE_TO_PARAM);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleDatePresetChange = useCallback(\n (preset: TraceDatePreset) => {\n // Update ref synchronously so any onDateChange fired by the picker in the\n // same tick (for non-custom presets) sees the new value and skips.\n datePresetRef.current = preset;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (preset === 'last-7d') {\n // Default — clear all date params.\n next.delete(TRACE_DATE_PRESET_PARAM);\n next.delete(TRACE_DATE_FROM_PARAM);\n next.delete(TRACE_DATE_TO_PARAM);\n } else if (preset === 'custom') {\n next.set(TRACE_DATE_PRESET_PARAM, 'custom');\n // Keep existing dateFrom/dateTo for the user to adjust.\n } else {\n // `last-*` or 'all' — only the preset is stored; dates are derived.\n next.set(TRACE_DATE_PRESET_PARAM, preset);\n next.delete(TRACE_DATE_FROM_PARAM);\n next.delete(TRACE_DATE_TO_PARAM);\n }\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleListModeChange = useCallback(\n (mode: TraceListMode) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (mode === 'traces') {\n next.delete(TRACE_LIST_MODE_PARAM);\n } else {\n next.set(TRACE_LIST_MODE_PARAM, mode);\n }\n // Clear selection: rows from the previous mode don't map cleanly to the new mode.\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleRemoveAll = useCallback(() => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n next.delete(TRACE_LIST_MODE_PARAM);\n // Wipes rootEntityType/status, every filter* param, their `.op` siblings and metadata params.\n applyTracePropertyFilterTokens(next, []);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n onRemoveAll?.();\n }, [setSearchParams, onRemoveAll]);\n\n return {\n searchParams,\n setSearchParams,\n datePreset,\n selectedDateFrom,\n selectedDateTo,\n datePresetRef,\n traceIdParam,\n spanIdParam,\n anchorSpanIdParam,\n spanTabParam,\n spanViewParam,\n scoreIdParam,\n highlightSpanIdsParam,\n listMode,\n selectedEntityOption,\n selectedStatus,\n filterTokens,\n filterGroups,\n handleTraceClick,\n handleTraceClose,\n handleSpanChange,\n handleSpanClose,\n handleSpanTabChange,\n handleSpanViewChange,\n handleSpanChangeWithTab,\n handleScoreChange,\n handleHighlightSpans,\n handleListModeChange,\n handleFilterTokensChange,\n handleDateChange,\n handleDateRangeChange,\n handleDatePresetChange,\n handleRemoveAll,\n applyFilterTokens,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"notification-activity-BSNuqJDd.cjs","sources":["../src/ds/components/ai/activity/presets/notification-activity.tsx"],"sourcesContent":["import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface NotificationActivityProps {\n label: string;\n message: string;\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n}\n\nconst priorityBadgeVariants: Partial<Record<string, BadgeVariant>> = {\n urgent: 'red',\n high: 'orange',\n medium: 'blue',\n};\n\nexport function NotificationActivity({\n label,\n message,\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n}: NotificationActivityProps) {\n const lineHoldsMessage = messagePreviewShowsAll(message);\n const hasBadges = Boolean(priority || status || pending);\n\n return (\n <ActivityItem\n label={label}\n detail={messagePreview(message)}\n detailFont=\"sans\"\n icon={icon ?? <Bell className=\"text-warning-foreground\" aria-hidden />}\n badges={\n hasBadges && (\n <>\n {priority && (\n <Badge size=\"xs\" variant={priorityBadgeVariants[priority]}>\n {priority}\n </Badge>\n )}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n </>\n )\n }\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n {(!lineHoldsMessage || link) && (\n <div className=\"flex flex-col gap-2\">\n {message && (\n <Txt variant=\"caption\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n )}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </ActivityItem>\n );\n}\n\nfunction NotificationLink({\n link,\n message,\n}: {\n link: NonNullable<NotificationActivityProps['link']>;\n message: string;\n}) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`${link.label}: ${messagePreview(message)}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n"],"names":["messagePreviewShowsAll","jsx","ActivityItem","messagePreview","Bell","jsxs","Fragment","Badge","Txt","ExternalLink"],"mappings":";;;;;;;;;AAoBA,MAAM,qBAAA,GAA+D;AAAA,EACnE,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ;AACV,CAAA;AAEO,SAAS,oBAAA,CAAqB;AAAA,EACnC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,cAAA;AAAA,EACR,IAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,gBAAA,GAAmBA,sCAAuB,OAAO,CAAA;AACvD,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,QAAA,IAAY,MAAA,IAAU,OAAO,CAAA;AAEvD,EAAA,uBACEC,cAAA;AAAA,IAACC,qBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,MAAA,EAAQC,8BAAe,OAAO,CAAA;AAAA,MAC9B,UAAA,EAAW,MAAA;AAAA,MACX,MAAM,IAAA,oBAAQF,cAAA,CAACG,oBAAK,SAAA,EAAU,yBAAA,EAA0B,eAAW,IAAA,EAAC,CAAA;AAAA,MACpE,MAAA,EACE,6BACEC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,QAAA,oBACCL,cAAA,CAACM,eAAM,IAAA,EAAK,IAAA,EAAK,SAAS,qBAAA,CAAsB,QAAQ,GACrD,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,QAED,MAAA,oBAAUN,cAAA,CAACM,WAAA,EAAA,EAAM,IAAA,EAAK,MAAM,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QACnC,OAAA,oBAAWF,eAAA,CAACE,WAAA,EAAA,EAAM,IAAA,EAAK,IAAA,EAAM,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UAAQ;AAAA,SAAA,EAAQ;AAAA,OAAA,EAChD,CAAA;AAAA,MAGJ,WAAA;AAAA,MACA,yBAAA,EAAyB,KAAA;AAAA,MACzB,YAAA,EAAY,iBAAiB,KAAK,CAAA,CAAA;AAAA,MAEhC,YAAC,gBAAA,IAAoB,IAAA,qBACrBF,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,OAAA,mCACEG,OAAA,EAAA,EAAI,OAAA,EAAQ,SAAA,EAAU,SAAA,EAAU,mCAC9B,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,QAED,IAAA,oBAAQP,cAAA,CAAC,gBAAA,EAAA,EAAiB,IAAA,EAAY,OAAA,EAAkB;AAAA,OAAA,EAC3D;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,uBACEI,eAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAI,YAAA;AAAA,MACJ,cAAY,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,EAAA,EAAKF,6BAAA,CAAe,OAAO,CAAC,CAAA,CAAA;AAAA,MACrD,SAAA,EAAU,qFAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,KAAA;AAAA,wBACNF,cAAA,CAACQ,wBAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,eAAW,IAAA,EAAC;AAAA;AAAA;AAAA,GACtC;AAEJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"notification-activity-BWXHmlTn.js","sources":["../src/ds/components/ai/activity/presets/notification-activity.tsx"],"sourcesContent":["import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface NotificationActivityProps {\n label: string;\n message: string;\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n}\n\nconst priorityBadgeVariants: Partial<Record<string, BadgeVariant>> = {\n urgent: 'red',\n high: 'orange',\n medium: 'blue',\n};\n\nexport function NotificationActivity({\n label,\n message,\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n}: NotificationActivityProps) {\n const lineHoldsMessage = messagePreviewShowsAll(message);\n const hasBadges = Boolean(priority || status || pending);\n\n return (\n <ActivityItem\n label={label}\n detail={messagePreview(message)}\n detailFont=\"sans\"\n icon={icon ?? <Bell className=\"text-warning-foreground\" aria-hidden />}\n badges={\n hasBadges && (\n <>\n {priority && (\n <Badge size=\"xs\" variant={priorityBadgeVariants[priority]}>\n {priority}\n </Badge>\n )}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n </>\n )\n }\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n {(!lineHoldsMessage || link) && (\n <div className=\"flex flex-col gap-2\">\n {message && (\n <Txt variant=\"caption\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n )}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </ActivityItem>\n );\n}\n\nfunction NotificationLink({\n link,\n message,\n}: {\n link: NonNullable<NotificationActivityProps['link']>;\n message: string;\n}) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`${link.label}: ${messagePreview(message)}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAoBA,MAAM,qBAAA,GAA+D;AAAA,EACnE,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ;AACV,CAAA;AAEO,SAAS,oBAAA,CAAqB;AAAA,EACnC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,cAAA;AAAA,EACR,IAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,gBAAA,GAAmB,uBAAuB,OAAO,CAAA;AACvD,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,QAAA,IAAY,MAAA,IAAU,OAAO,CAAA;AAEvD,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,MAAA,EAAQ,eAAe,OAAO,CAAA;AAAA,MAC9B,UAAA,EAAW,MAAA;AAAA,MACX,MAAM,IAAA,oBAAQ,GAAA,CAAC,QAAK,SAAA,EAAU,yBAAA,EAA0B,eAAW,IAAA,EAAC,CAAA;AAAA,MACpE,MAAA,EACE,6BACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,QAAA,oBACC,GAAA,CAAC,SAAM,IAAA,EAAK,IAAA,EAAK,SAAS,qBAAA,CAAsB,QAAQ,GACrD,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,QAED,MAAA,oBAAU,GAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAK,MAAM,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QACnC,OAAA,oBAAW,IAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAK,IAAA,EAAM,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UAAQ;AAAA,SAAA,EAAQ;AAAA,OAAA,EAChD,CAAA;AAAA,MAGJ,WAAA;AAAA,MACA,yBAAA,EAAyB,KAAA;AAAA,MACzB,YAAA,EAAY,iBAAiB,KAAK,CAAA,CAAA;AAAA,MAEhC,YAAC,gBAAA,IAAoB,IAAA,qBACrB,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,OAAA,wBACE,GAAA,EAAA,EAAI,OAAA,EAAQ,SAAA,EAAU,SAAA,EAAU,mCAC9B,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,QAED,IAAA,oBAAQ,GAAA,CAAC,gBAAA,EAAA,EAAiB,IAAA,EAAY,OAAA,EAAkB;AAAA,OAAA,EAC3D;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,uBACE,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAI,YAAA;AAAA,MACJ,cAAY,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,EAAA,EAAK,cAAA,CAAe,OAAO,CAAC,CAAA,CAAA;AAAA,MACrD,SAAA,EAAU,qFAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,KAAA;AAAA,wBACN,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,eAAW,IAAA,EAAC;AAAA;AAAA;AAAA,GACtC;AAEJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-7rYaECQf.js","sources":["../src/ds/components/Select/select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from '@base-ui/react/select';\nimport type { SelectPopupProps, SelectPositionerProps } from '@base-ui/react/select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport * as React from 'react';\n\nimport { buttonVariants } from '../Button/Button';\nimport type { TextButtonSize } from '../Button/Button';\nimport { keepOwnAccessibleName } from '@/ds/components/Field/field-control-aria';\nimport { controlTriggerOpenState } from '@/ds/primitives/control-size';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { fieldTriggerErrorBorder, fieldTriggerStyle, fieldTriggerWidthStyle } from '@/ds/primitives/form-element';\nimport { menuItemCheckClass, menuItemClass, menuPopupClass, menuPositionerClass } from '@/ds/primitives/menu-item';\nimport { menuScrollPopupClass, MenuScrollArea } from '@/ds/primitives/menu-scroll-area';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n/**\n * Select migrated from `@radix-ui/react-select` to Base UI (`@base-ui/react/select`).\n *\n * The public API (`Select`, `SelectGroup`, `SelectValue`, `SelectTrigger`,\n * `SelectContent`, `SelectItem`) is intentionally kept stable so existing\n * consumers do not need changes.\n *\n * Notable behavioral differences vs. Radix that consumers should be aware of:\n * - `onValueChange` now receives a second `eventDetails` argument. Existing\n * handlers typed as `(value: string) => void` keep working (extra arg ignored).\n * - The dropdown no longer overlaps the trigger by default\n * (`alignItemWithTrigger={false}`), matching the previous Radix `popper`\n * positioning behavior.\n *\n * Implementation note: unlike Radix, Base UI's `Select.Value` can only resolve\n * a selected value to its label once the popup has mounted (it reads labels\n * from rendered items). To preserve the Radix behavior where the trigger shows\n * the selected label even while closed, `Select` auto-derives an `items` map\n * from the `SelectItem`s declared inside `SelectContent` and passes it to\n * `Select.Root`. Consumers can still pass an explicit `items` prop to override.\n */\ntype SelectItemNode = React.ReactElement<{ value: unknown; children?: React.ReactNode }>;\n\nfunction isSelectItem(node: React.ReactNode): node is SelectItemNode {\n return React.isValidElement(node) && (node.type as { displayName?: string })?.displayName === 'SelectItem';\n}\n\n/** Recursively collect `{ value, label }` pairs from declared `SelectItem`s. */\nfunction collectItems(children: React.ReactNode, acc: Array<{ value: unknown; label: React.ReactNode }>): void {\n React.Children.forEach(children, child => {\n if (!React.isValidElement(child)) return;\n if (isSelectItem(child)) {\n acc.push({ value: child.props.value, label: child.props.children });\n return;\n }\n const nested = (child.props as { children?: React.ReactNode })?.children;\n if (nested != null) collectItems(nested, acc);\n });\n}\n\ntype SelectRootProps<Value> = SelectPrimitive.Root.Props<Value>;\ntype SelectChangeDetails = Parameters<NonNullable<SelectRootProps<unknown>['onValueChange']>>[1];\n\n/**\n * `onValueChange` is intentionally narrowed to a non-null value: these selects\n * always hold a value once changed, which keeps existing `(value) => void`\n * consumer handlers valid (Base UI's own callback type is `Value | null`).\n */\ntype SelectProps<Value = string> = Omit<SelectRootProps<Value>, 'onValueChange'> & {\n onValueChange?: (value: Value, eventDetails: SelectChangeDetails) => void;\n};\n\nfunction Select<Value = string>({ children, items, onValueChange, ...props }: SelectProps<Value>) {\n const derivedItems = React.useMemo(() => {\n if (items != null) return items;\n const acc: Array<{ value: unknown; label: React.ReactNode }> = [];\n collectItems(children, acc);\n return acc.length > 0 ? acc : undefined;\n }, [items, children]);\n\n return (\n <SelectPrimitive.Root\n items={derivedItems}\n onValueChange={onValueChange ? (value, eventDetails) => onValueChange(value as Value, eventDetails) : undefined}\n {...props}\n >\n {children}\n </SelectPrimitive.Root>\n );\n}\nSelect.displayName = 'Select';\n\nconst SelectGroup = SelectPrimitive.Group;\n\nexport type SelectValueProps = Omit<SelectPrimitive.Value.Props, 'className'> & {\n className?: string;\n};\n\n/**\n * Displays the selected value. Radix's `Select.Value` took a `placeholder`\n * prop and rendered the selected item's text automatically; Base UI's\n * `Select.Value` behaves the same way (renders the value, falls back to\n * `placeholder` when nothing is selected), so this is a thin passthrough.\n */\nconst SelectValue = React.forwardRef<HTMLSpanElement, SelectValueProps>(({ className, ...props }, ref) => (\n <SelectPrimitive.Value ref={ref} className={cn('truncate', className)} {...props} />\n));\nSelectValue.displayName = 'SelectValue';\n\n/**\n * A select is a form field, so it reuses the Button's size/shape recipe with\n * these looks: `default` (the Input's overlay surface — the default here too,\n * so a select sits next to an Input as the same kind of thing) and `ghost`\n * (borderless, for dense toolbars/inline pickers). The high-emphasis `primary` look is the only one intentionally NOT\n * offered (a field is not a call-to-action).\n */\nexport type SelectTriggerVariant = 'default' | 'ghost';\ntype SelectTriggerLegacyVariant = 'primary';\n\nexport type SelectTriggerProps = Omit<SelectPrimitive.Trigger.Props, 'className'> & {\n className?: string;\n size?: TextButtonSize;\n variant?: SelectTriggerVariant | SelectTriggerLegacyVariant;\n};\n\nfunction normalizeSelectTriggerVariant(\n variant: SelectTriggerVariant | SelectTriggerLegacyVariant,\n): SelectTriggerVariant {\n return variant === 'primary' ? 'default' : variant;\n}\n\nconst SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, children, size = 'md', variant = 'default', ...props }, ref) => {\n const visualVariant = normalizeSelectTriggerVariant(variant);\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n // A select = a button + a trailing chevron: reuse the Button recipe\n // (variant colors, size = height/text/padding/radius, unified border\n // focus, disabled) and layer only the select-specific extras.\n className={cn(\n buttonVariants({ variant: visualVariant, size }),\n visualVariant === 'default' && fieldTriggerStyle,\n // Fill the field and push the value left / chevron right (Button's\n // base centers its content with `justify-center`).\n fieldTriggerWidthStyle,\n 'justify-between',\n // Read as \"active\" while the menu is open, per variant (see map above).\n controlTriggerOpenState[visualVariant],\n 'data-[placeholder]:text-muted-foreground',\n fieldTriggerErrorBorder,\n '[&>span]:truncate',\n className,\n )}\n {...props}\n {...keepOwnAccessibleName(props)}\n >\n {children}\n {/* `SelectPrimitive.Icon` renders the provided element in place of its\n default `<span>`, so the chevron would land as a *direct* `<svg>`\n child of the trigger — where Button's `TEXT_MODE_ADORNMENTS`\n `[&>svg]` rules (negative `mx`, forced 50% opacity, 1.1em sizing)\n would distort and mis-position it. Wrapping it in a `<span>` keeps\n the svg one level deep so those rules can't reach it, leaving the\n chevron pinned at the right edge at its intended size and color. */}\n <SelectPrimitive.Icon\n render={\n <span className=\"flex shrink-0 items-center\">\n <ChevronDown className={cn('size-4 text-muted-foreground', transitions.colors)} />\n </span>\n }\n />\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'SelectTrigger';\n\ntype SelectContentPositionerProps = Omit<SelectPositionerProps, keyof SelectPopupProps>;\n\nexport type SelectContentProps = Omit<SelectPopupProps, 'className'> &\n SelectContentPositionerProps & {\n className?: string;\n /**\n * Kept for API compatibility with the previous Radix API. Radix supported\n * `position=\"popper\" | \"item-aligned\"`; Base UI always uses popper-style\n * positioning so this prop is accepted but has no effect.\n */\n position?: 'popper' | 'item-aligned';\n /** Optional portal container, forwarded to `Select.Portal`. */\n container?: HTMLElement | null;\n };\n\nconst SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n (\n {\n className,\n children,\n position: _position,\n container,\n side = 'bottom',\n align = 'start',\n sideOffset = 4,\n alignItemWithTrigger = false,\n anchor,\n positionMethod = FLOATING_POSITION_METHOD,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n ...props\n },\n ref,\n ) => {\n // Default to the nearest SideDialog/Drawer popup so the dropdown stays\n // interactive inside a modal drawer; an explicit `container` still wins.\n const resolvedContainer = usePortalContainer(container);\n const menu = useFluidMenu();\n const positionerProps: SelectContentPositionerProps = {\n side,\n align,\n sideOffset,\n alignItemWithTrigger,\n anchor,\n positionMethod,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n };\n\n return (\n <SelectPrimitive.Portal container={resolvedContainer}>\n <SelectPrimitive.Positioner className={menuPositionerClass} {...positionerProps}>\n <SelectPrimitive.Popup ref={ref} className={cn(menuPopupClass, menuScrollPopupClass, className)} {...props}>\n {/* The viewport is Select's list, so Select scrolls it to line the selected item up with the\n trigger. `role` is restated because the viewport's own `presentation` role would win. */}\n <MenuScrollArea menu={menu} viewportRender={<SelectPrimitive.List role=\"listbox\" />}>\n {children}\n </MenuScrollArea>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'SelectContent';\n\nexport type SelectItemProps = Omit<SelectPrimitive.Item.Props, 'className'> & {\n className?: string;\n};\n\nconst SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item ref={useFluidMenuItemRef(ref)} className={cn(menuItemClass, className)} {...props}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator className={menuItemCheckClass}>\n <Check />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = 'SelectItem';\n\nexport { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem };\n"],"names":["SelectPrimitive"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-A3AFKLd9.cjs","sources":["../src/ds/components/Select/select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from '@base-ui/react/select';\nimport type { SelectPopupProps, SelectPositionerProps } from '@base-ui/react/select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport * as React from 'react';\n\nimport { buttonVariants } from '../Button/Button';\nimport type { TextButtonSize } from '../Button/Button';\nimport { keepOwnAccessibleName } from '@/ds/components/Field/field-control-aria';\nimport { controlTriggerOpenState } from '@/ds/primitives/control-size';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { fieldTriggerErrorBorder, fieldTriggerStyle, fieldTriggerWidthStyle } from '@/ds/primitives/form-element';\nimport { menuItemCheckClass, menuItemClass, menuPopupClass, menuPositionerClass } from '@/ds/primitives/menu-item';\nimport { menuScrollPopupClass, MenuScrollArea } from '@/ds/primitives/menu-scroll-area';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n/**\n * Select migrated from `@radix-ui/react-select` to Base UI (`@base-ui/react/select`).\n *\n * The public API (`Select`, `SelectGroup`, `SelectValue`, `SelectTrigger`,\n * `SelectContent`, `SelectItem`) is intentionally kept stable so existing\n * consumers do not need changes.\n *\n * Notable behavioral differences vs. Radix that consumers should be aware of:\n * - `onValueChange` now receives a second `eventDetails` argument. Existing\n * handlers typed as `(value: string) => void` keep working (extra arg ignored).\n * - The dropdown no longer overlaps the trigger by default\n * (`alignItemWithTrigger={false}`), matching the previous Radix `popper`\n * positioning behavior.\n *\n * Implementation note: unlike Radix, Base UI's `Select.Value` can only resolve\n * a selected value to its label once the popup has mounted (it reads labels\n * from rendered items). To preserve the Radix behavior where the trigger shows\n * the selected label even while closed, `Select` auto-derives an `items` map\n * from the `SelectItem`s declared inside `SelectContent` and passes it to\n * `Select.Root`. Consumers can still pass an explicit `items` prop to override.\n */\ntype SelectItemNode = React.ReactElement<{ value: unknown; children?: React.ReactNode }>;\n\nfunction isSelectItem(node: React.ReactNode): node is SelectItemNode {\n return React.isValidElement(node) && (node.type as { displayName?: string })?.displayName === 'SelectItem';\n}\n\n/** Recursively collect `{ value, label }` pairs from declared `SelectItem`s. */\nfunction collectItems(children: React.ReactNode, acc: Array<{ value: unknown; label: React.ReactNode }>): void {\n React.Children.forEach(children, child => {\n if (!React.isValidElement(child)) return;\n if (isSelectItem(child)) {\n acc.push({ value: child.props.value, label: child.props.children });\n return;\n }\n const nested = (child.props as { children?: React.ReactNode })?.children;\n if (nested != null) collectItems(nested, acc);\n });\n}\n\ntype SelectRootProps<Value> = SelectPrimitive.Root.Props<Value>;\ntype SelectChangeDetails = Parameters<NonNullable<SelectRootProps<unknown>['onValueChange']>>[1];\n\n/**\n * `onValueChange` is intentionally narrowed to a non-null value: these selects\n * always hold a value once changed, which keeps existing `(value) => void`\n * consumer handlers valid (Base UI's own callback type is `Value | null`).\n */\ntype SelectProps<Value = string> = Omit<SelectRootProps<Value>, 'onValueChange'> & {\n onValueChange?: (value: Value, eventDetails: SelectChangeDetails) => void;\n};\n\nfunction Select<Value = string>({ children, items, onValueChange, ...props }: SelectProps<Value>) {\n const derivedItems = React.useMemo(() => {\n if (items != null) return items;\n const acc: Array<{ value: unknown; label: React.ReactNode }> = [];\n collectItems(children, acc);\n return acc.length > 0 ? acc : undefined;\n }, [items, children]);\n\n return (\n <SelectPrimitive.Root\n items={derivedItems}\n onValueChange={onValueChange ? (value, eventDetails) => onValueChange(value as Value, eventDetails) : undefined}\n {...props}\n >\n {children}\n </SelectPrimitive.Root>\n );\n}\nSelect.displayName = 'Select';\n\nconst SelectGroup = SelectPrimitive.Group;\n\nexport type SelectValueProps = Omit<SelectPrimitive.Value.Props, 'className'> & {\n className?: string;\n};\n\n/**\n * Displays the selected value. Radix's `Select.Value` took a `placeholder`\n * prop and rendered the selected item's text automatically; Base UI's\n * `Select.Value` behaves the same way (renders the value, falls back to\n * `placeholder` when nothing is selected), so this is a thin passthrough.\n */\nconst SelectValue = React.forwardRef<HTMLSpanElement, SelectValueProps>(({ className, ...props }, ref) => (\n <SelectPrimitive.Value ref={ref} className={cn('truncate', className)} {...props} />\n));\nSelectValue.displayName = 'SelectValue';\n\n/**\n * A select is a form field, so it reuses the Button's size/shape recipe with\n * these looks: `default` (the Input's overlay surface — the default here too,\n * so a select sits next to an Input as the same kind of thing) and `ghost`\n * (borderless, for dense toolbars/inline pickers). The high-emphasis `primary` look is the only one intentionally NOT\n * offered (a field is not a call-to-action).\n */\nexport type SelectTriggerVariant = 'default' | 'ghost';\ntype SelectTriggerLegacyVariant = 'primary';\n\nexport type SelectTriggerProps = Omit<SelectPrimitive.Trigger.Props, 'className'> & {\n className?: string;\n size?: TextButtonSize;\n variant?: SelectTriggerVariant | SelectTriggerLegacyVariant;\n};\n\nfunction normalizeSelectTriggerVariant(\n variant: SelectTriggerVariant | SelectTriggerLegacyVariant,\n): SelectTriggerVariant {\n return variant === 'primary' ? 'default' : variant;\n}\n\nconst SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, children, size = 'md', variant = 'default', ...props }, ref) => {\n const visualVariant = normalizeSelectTriggerVariant(variant);\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n // A select = a button + a trailing chevron: reuse the Button recipe\n // (variant colors, size = height/text/padding/radius, unified border\n // focus, disabled) and layer only the select-specific extras.\n className={cn(\n buttonVariants({ variant: visualVariant, size }),\n visualVariant === 'default' && fieldTriggerStyle,\n // Fill the field and push the value left / chevron right (Button's\n // base centers its content with `justify-center`).\n fieldTriggerWidthStyle,\n 'justify-between',\n // Read as \"active\" while the menu is open, per variant (see map above).\n controlTriggerOpenState[visualVariant],\n 'data-[placeholder]:text-muted-foreground',\n fieldTriggerErrorBorder,\n '[&>span]:truncate',\n className,\n )}\n {...props}\n {...keepOwnAccessibleName(props)}\n >\n {children}\n {/* `SelectPrimitive.Icon` renders the provided element in place of its\n default `<span>`, so the chevron would land as a *direct* `<svg>`\n child of the trigger — where Button's `TEXT_MODE_ADORNMENTS`\n `[&>svg]` rules (negative `mx`, forced 50% opacity, 1.1em sizing)\n would distort and mis-position it. Wrapping it in a `<span>` keeps\n the svg one level deep so those rules can't reach it, leaving the\n chevron pinned at the right edge at its intended size and color. */}\n <SelectPrimitive.Icon\n render={\n <span className=\"flex shrink-0 items-center\">\n <ChevronDown className={cn('size-4 text-muted-foreground', transitions.colors)} />\n </span>\n }\n />\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'SelectTrigger';\n\ntype SelectContentPositionerProps = Omit<SelectPositionerProps, keyof SelectPopupProps>;\n\nexport type SelectContentProps = Omit<SelectPopupProps, 'className'> &\n SelectContentPositionerProps & {\n className?: string;\n /**\n * Kept for API compatibility with the previous Radix API. Radix supported\n * `position=\"popper\" | \"item-aligned\"`; Base UI always uses popper-style\n * positioning so this prop is accepted but has no effect.\n */\n position?: 'popper' | 'item-aligned';\n /** Optional portal container, forwarded to `Select.Portal`. */\n container?: HTMLElement | null;\n };\n\nconst SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n (\n {\n className,\n children,\n position: _position,\n container,\n side = 'bottom',\n align = 'start',\n sideOffset = 4,\n alignItemWithTrigger = false,\n anchor,\n positionMethod = FLOATING_POSITION_METHOD,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n ...props\n },\n ref,\n ) => {\n // Default to the nearest SideDialog/Drawer popup so the dropdown stays\n // interactive inside a modal drawer; an explicit `container` still wins.\n const resolvedContainer = usePortalContainer(container);\n const menu = useFluidMenu();\n const positionerProps: SelectContentPositionerProps = {\n side,\n align,\n sideOffset,\n alignItemWithTrigger,\n anchor,\n positionMethod,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n };\n\n return (\n <SelectPrimitive.Portal container={resolvedContainer}>\n <SelectPrimitive.Positioner className={menuPositionerClass} {...positionerProps}>\n <SelectPrimitive.Popup ref={ref} className={cn(menuPopupClass, menuScrollPopupClass, className)} {...props}>\n {/* The viewport is Select's list, so Select scrolls it to line the selected item up with the\n trigger. `role` is restated because the viewport's own `presentation` role would win. */}\n <MenuScrollArea menu={menu} viewportRender={<SelectPrimitive.List role=\"listbox\" />}>\n {children}\n </MenuScrollArea>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'SelectContent';\n\nexport type SelectItemProps = Omit<SelectPrimitive.Item.Props, 'className'> & {\n className?: string;\n};\n\nconst SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item ref={useFluidMenuItemRef(ref)} className={cn(menuItemClass, className)} {...props}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator className={menuItemCheckClass}>\n <Check />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = 'SelectItem';\n\nexport { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem };\n"],"names":["React","jsx","SelectPrimitive","cn","jsxs","buttonVariants","fieldTriggerStyle","fieldTriggerWidthStyle","controlTriggerOpenState","fieldTriggerErrorBorder","keepOwnAccessibleName","ChevronDown","transitions","FLOATING_POSITION_METHOD","usePortalContainer","useFluidMenu","menuPositionerClass","menuPopupClass","menuScrollPopupClass","MenuScrollArea","useFluidMenuItemRef","menuItemClass","menuItemCheckClass","Check"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings-row-m_4gDCwS.cjs","sources":["../src/ds/new/settings/settings-container.tsx","../src/ds/new/settings/settings-row.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport function SettingsContainerLayout({\n layout,\n className,\n ...props\n}: ComponentProps<'div'> & { layout: 'factory' | 'section' }) {\n return (\n <div\n data-slot={layout === 'section' ? 'section-content' : 'settings-container'}\n className={cn(\n layout === 'factory'\n ? cn(raisedSurfaceStyle, 'rounded-xl')\n : cn(\n 'group-data-[variant=factory]/section:overflow-hidden group-data-[variant=factory]/section:rounded-xl',\n 'group-data-[variant=factory]/section:bg-card group-data-[variant=factory]/section:shadow-raised',\n ),\n className,\n )}\n {...props}\n />\n );\n}\n\nexport type SettingsContainerVariant = 'default' | 'inset';\n\nexport type SettingsContainerProps = ComponentProps<'div'> & { variant?: SettingsContainerVariant };\n\nconst rowsClassNames = {\n default: 'divide-y divide-border',\n inset:\n 'flex flex-col gap-px p-1 [&>*]:min-h-14 [&>*]:bg-background [&>*]:px-3.5 [&>*]:py-2.5 [&>:first-child]:rounded-t-lg [&>:last-child]:rounded-b-lg',\n} satisfies Record<SettingsContainerVariant, string>;\n\nexport function SettingsContainer({ variant = 'default', className, ...props }: SettingsContainerProps) {\n return (\n <SettingsContainerLayout\n {...props}\n layout=\"factory\"\n data-variant={variant}\n className={cn(rowsClassNames[variant], className)}\n />\n );\n}\n","import { LockKeyholeIcon } from 'lucide-react';\nimport { useId } from 'react';\nimport type { ReactNode } from 'react';\nimport { Field, FieldDescription, FieldError, FieldLabel, Fieldset, FieldsetLegend } from '@/ds/components/Field';\nimport type { FieldProps, FieldsetProps } from '@/ds/components/Field';\nimport { cn } from '@/lib/utils';\n\nexport type SettingsRowProps = Omit<FieldProps, 'children' | 'invalid' | 'orientation'> & {\n label: ReactNode;\n description?: ReactNode;\n /** @deprecated The row's `Field` names the control it holds; drop `htmlFor` and the control's `id`. */\n htmlFor?: string;\n children?: ReactNode;\n tone?: 'default' | 'destructive';\n viewOnly?: boolean;\n required?: boolean;\n errorMsg?: ReactNode;\n};\n\ntype SettingsRowLayoutProps = SettingsRowProps & {\n layout: 'factory' | 'section';\n};\n\nconst factoryRowClassName = 'gap-2 px-4 py-3 sm:justify-between sm:gap-4';\nconst factoryRowSideControlWidthClassName = 'sm:[--field-shrink:0] sm:[--field-width:16rem]';\nconst factoryRowHeadingClassName = 'flex min-w-0 flex-col gap-0.5';\n\nexport function SettingsRowLayout({\n label,\n description,\n htmlFor,\n children,\n className,\n layout,\n tone = 'default',\n viewOnly = false,\n required = false,\n errorMsg,\n disabled,\n ...props\n}: SettingsRowLayoutProps) {\n const isSectionLayout = layout === 'section';\n const control = viewOnly ? (\n <>\n <LockKeyholeIcon className=\"size-4 shrink-0\" aria-hidden />\n <span className=\"sr-only\">View only: </span>\n {children}\n </>\n ) : (\n children\n );\n\n return (\n <Field\n orientation=\"responsive\"\n invalid={Boolean(errorMsg)}\n disabled={disabled || viewOnly}\n data-slot={isSectionLayout ? 'section-row' : 'settings-row'}\n className={cn(\n isSectionLayout\n ? 'grid min-w-0 gap-3 group-data-[variant=factory]/section:px-3 group-data-[variant=factory]/section:py-2 group-data-[variant=flat]/section:p-3 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center sm:group-data-[variant=default]/section:gap-4 sm:group-data-[variant=factory]/section:gap-4 sm:group-data-[variant=flat]/section:gap-6'\n : 'min-w-0',\n layout === 'factory' && factoryRowClassName,\n layout === 'factory' && factoryRowSideControlWidthClassName,\n className,\n )}\n {...props}\n >\n <div className={isSectionLayout ? 'min-w-0' : factoryRowHeadingClassName}>\n <FieldLabel\n {...(htmlFor ? { htmlFor } : {})}\n required={required}\n className={cn(tone === 'destructive' && 'text-destructive-foreground')}\n >\n {label}\n </FieldLabel>\n {description != null && (\n <FieldDescription\n render={isSectionLayout ? undefined : <div />}\n className={cn('mt-0', isSectionLayout ? 'mt-1 max-w-[62ch] text-pretty' : 'flex flex-col gap-0.5')}\n >\n {description}\n </FieldDescription>\n )}\n <FieldError className={cn('mt-0', isSectionLayout && 'mt-1')}>{errorMsg}</FieldError>\n </div>\n {children != null &&\n (isSectionLayout || viewOnly ? (\n <div\n data-slot={isSectionLayout ? 'section-control' : undefined}\n className={cn(\n 'min-w-0',\n isSectionLayout && 'sm:justify-self-end',\n viewOnly && 'flex items-center gap-2 text-body-sm text-muted-foreground',\n )}\n >\n {control}\n </div>\n ) : (\n control\n ))}\n </Field>\n );\n}\n\nexport function SettingsRow(props: SettingsRowProps) {\n return <SettingsRowLayout {...props} layout=\"factory\" />;\n}\n\nexport type SettingsFieldsetRowProps = Omit<FieldsetProps, 'children'> & {\n label: ReactNode;\n description?: ReactNode;\n children?: ReactNode;\n};\n\nexport function SettingsFieldsetRow({ label, description, children, className, ...props }: SettingsFieldsetRowProps) {\n const descriptionId = useId();\n\n return (\n <Fieldset\n data-slot=\"settings-row\"\n aria-describedby={description == null ? undefined : descriptionId}\n className={cn('flex flex-col sm:flex-row sm:items-center', factoryRowClassName, className)}\n {...props}\n >\n <div className={factoryRowHeadingClassName}>\n <FieldsetLegend>{label}</FieldsetLegend>\n {description != null && (\n <div id={descriptionId} className=\"flex flex-col gap-0.5 text-caption text-muted-foreground\">\n {description}\n </div>\n )}\n </div>\n {children}\n </Fieldset>\n );\n}\n"],"names":["jsx","cn","raisedSurfaceStyle","jsxs","Fragment","LockKeyholeIcon","Field","FieldLabel","FieldDescription","FieldError","useId","Fieldset","FieldsetLegend"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings-row-yuQjwWTl.js","sources":["../src/ds/new/settings/settings-container.tsx","../src/ds/new/settings/settings-row.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport function SettingsContainerLayout({\n layout,\n className,\n ...props\n}: ComponentProps<'div'> & { layout: 'factory' | 'section' }) {\n return (\n <div\n data-slot={layout === 'section' ? 'section-content' : 'settings-container'}\n className={cn(\n layout === 'factory'\n ? cn(raisedSurfaceStyle, 'rounded-xl')\n : cn(\n 'group-data-[variant=factory]/section:overflow-hidden group-data-[variant=factory]/section:rounded-xl',\n 'group-data-[variant=factory]/section:bg-card group-data-[variant=factory]/section:shadow-raised',\n ),\n className,\n )}\n {...props}\n />\n );\n}\n\nexport type SettingsContainerVariant = 'default' | 'inset';\n\nexport type SettingsContainerProps = ComponentProps<'div'> & { variant?: SettingsContainerVariant };\n\nconst rowsClassNames = {\n default: 'divide-y divide-border',\n inset:\n 'flex flex-col gap-px p-1 [&>*]:min-h-14 [&>*]:bg-background [&>*]:px-3.5 [&>*]:py-2.5 [&>:first-child]:rounded-t-lg [&>:last-child]:rounded-b-lg',\n} satisfies Record<SettingsContainerVariant, string>;\n\nexport function SettingsContainer({ variant = 'default', className, ...props }: SettingsContainerProps) {\n return (\n <SettingsContainerLayout\n {...props}\n layout=\"factory\"\n data-variant={variant}\n className={cn(rowsClassNames[variant], className)}\n />\n );\n}\n","import { LockKeyholeIcon } from 'lucide-react';\nimport { useId } from 'react';\nimport type { ReactNode } from 'react';\nimport { Field, FieldDescription, FieldError, FieldLabel, Fieldset, FieldsetLegend } from '@/ds/components/Field';\nimport type { FieldProps, FieldsetProps } from '@/ds/components/Field';\nimport { cn } from '@/lib/utils';\n\nexport type SettingsRowProps = Omit<FieldProps, 'children' | 'invalid' | 'orientation'> & {\n label: ReactNode;\n description?: ReactNode;\n /** @deprecated The row's `Field` names the control it holds; drop `htmlFor` and the control's `id`. */\n htmlFor?: string;\n children?: ReactNode;\n tone?: 'default' | 'destructive';\n viewOnly?: boolean;\n required?: boolean;\n errorMsg?: ReactNode;\n};\n\ntype SettingsRowLayoutProps = SettingsRowProps & {\n layout: 'factory' | 'section';\n};\n\nconst factoryRowClassName = 'gap-2 px-4 py-3 sm:justify-between sm:gap-4';\nconst factoryRowSideControlWidthClassName = 'sm:[--field-shrink:0] sm:[--field-width:16rem]';\nconst factoryRowHeadingClassName = 'flex min-w-0 flex-col gap-0.5';\n\nexport function SettingsRowLayout({\n label,\n description,\n htmlFor,\n children,\n className,\n layout,\n tone = 'default',\n viewOnly = false,\n required = false,\n errorMsg,\n disabled,\n ...props\n}: SettingsRowLayoutProps) {\n const isSectionLayout = layout === 'section';\n const control = viewOnly ? (\n <>\n <LockKeyholeIcon className=\"size-4 shrink-0\" aria-hidden />\n <span className=\"sr-only\">View only: </span>\n {children}\n </>\n ) : (\n children\n );\n\n return (\n <Field\n orientation=\"responsive\"\n invalid={Boolean(errorMsg)}\n disabled={disabled || viewOnly}\n data-slot={isSectionLayout ? 'section-row' : 'settings-row'}\n className={cn(\n isSectionLayout\n ? 'grid min-w-0 gap-3 group-data-[variant=factory]/section:px-3 group-data-[variant=factory]/section:py-2 group-data-[variant=flat]/section:p-3 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center sm:group-data-[variant=default]/section:gap-4 sm:group-data-[variant=factory]/section:gap-4 sm:group-data-[variant=flat]/section:gap-6'\n : 'min-w-0',\n layout === 'factory' && factoryRowClassName,\n layout === 'factory' && factoryRowSideControlWidthClassName,\n className,\n )}\n {...props}\n >\n <div className={isSectionLayout ? 'min-w-0' : factoryRowHeadingClassName}>\n <FieldLabel\n {...(htmlFor ? { htmlFor } : {})}\n required={required}\n className={cn(tone === 'destructive' && 'text-destructive-foreground')}\n >\n {label}\n </FieldLabel>\n {description != null && (\n <FieldDescription\n render={isSectionLayout ? undefined : <div />}\n className={cn('mt-0', isSectionLayout ? 'mt-1 max-w-[62ch] text-pretty' : 'flex flex-col gap-0.5')}\n >\n {description}\n </FieldDescription>\n )}\n <FieldError className={cn('mt-0', isSectionLayout && 'mt-1')}>{errorMsg}</FieldError>\n </div>\n {children != null &&\n (isSectionLayout || viewOnly ? (\n <div\n data-slot={isSectionLayout ? 'section-control' : undefined}\n className={cn(\n 'min-w-0',\n isSectionLayout && 'sm:justify-self-end',\n viewOnly && 'flex items-center gap-2 text-body-sm text-muted-foreground',\n )}\n >\n {control}\n </div>\n ) : (\n control\n ))}\n </Field>\n );\n}\n\nexport function SettingsRow(props: SettingsRowProps) {\n return <SettingsRowLayout {...props} layout=\"factory\" />;\n}\n\nexport type SettingsFieldsetRowProps = Omit<FieldsetProps, 'children'> & {\n label: ReactNode;\n description?: ReactNode;\n children?: ReactNode;\n};\n\nexport function SettingsFieldsetRow({ label, description, children, className, ...props }: SettingsFieldsetRowProps) {\n const descriptionId = useId();\n\n return (\n <Fieldset\n data-slot=\"settings-row\"\n aria-describedby={description == null ? undefined : descriptionId}\n className={cn('flex flex-col sm:flex-row sm:items-center', factoryRowClassName, className)}\n {...props}\n >\n <div className={factoryRowHeadingClassName}>\n <FieldsetLegend>{label}</FieldsetLegend>\n {description != null && (\n <div id={descriptionId} className=\"flex flex-col gap-0.5 text-caption text-muted-foreground\">\n {description}\n </div>\n )}\n </div>\n {children}\n </Fieldset>\n );\n}\n"],"names":[],"mappings":"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"}