@mastra/playground-ui 62.0.0 → 63.0.0-alpha.1

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 (473) hide show
  1. package/dist/alert-dialog-R9z2SJLl.js +40 -0
  2. package/dist/alert-dialog-R9z2SJLl.js.map +1 -0
  3. package/dist/alert-dialog-j626w-Qb.cjs +42 -0
  4. package/dist/alert-dialog-j626w-Qb.cjs.map +1 -0
  5. package/dist/{ask-user-card-xR8YiiQa.js → ask-user-card-CwKfl6M2.js} +5 -6
  6. package/dist/{ask-user-card-xR8YiiQa.js.map → ask-user-card-CwKfl6M2.js.map} +1 -1
  7. package/dist/{ask-user-card-40a18Qea.cjs → ask-user-card-g8cqh8KI.cjs} +1 -2
  8. package/dist/{ask-user-card-40a18Qea.cjs.map → ask-user-card-g8cqh8KI.cjs.map} +1 -1
  9. package/dist/{checkbox-mmR3rD2j.js → checkbox-B3tvJLCl.js} +2 -2
  10. package/dist/{checkbox-mmR3rD2j.js.map → checkbox-B3tvJLCl.js.map} +1 -1
  11. package/dist/{code-block-BQZUoOfS.js → code-block-9sT-CaoF.js} +2 -2
  12. package/dist/{code-block-BQZUoOfS.js.map → code-block-9sT-CaoF.js.map} +1 -1
  13. package/dist/{code-editor-D69saH4C.js → code-editor-DgfDaPAD.js} +2 -2
  14. package/dist/{code-editor-D69saH4C.js.map → code-editor-DgfDaPAD.js.map} +1 -1
  15. package/dist/{combobox-DDUIREaG.js → combobox-DJu0ggNa.js} +2 -2
  16. package/dist/{combobox-DDUIREaG.js.map → combobox-DJu0ggNa.js.map} +1 -1
  17. package/dist/{command-Cx5QAS4E.cjs → command-DbZ6CSAy.cjs} +3 -3
  18. package/dist/command-DbZ6CSAy.cjs.map +1 -0
  19. package/dist/{command-B141Sxts.js → command-DtIlcv-t.js} +3 -3
  20. package/dist/command-DtIlcv-t.js.map +1 -0
  21. package/dist/components/AlertDialog.cjs.js +1 -1
  22. package/dist/components/AlertDialog.es.js +1 -1
  23. package/dist/components/Checkbox.es.js +1 -1
  24. package/dist/components/CodeBlock.es.js +1 -1
  25. package/dist/components/CodeEditor.es.js +1 -1
  26. package/dist/components/Combobox.es.js +1 -1
  27. package/dist/components/Command.cjs.js +1 -1
  28. package/dist/components/Command.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 +0 -1
  32. package/dist/components/Comment.cjs.js.map +1 -1
  33. package/dist/components/Comment.es.js +2 -3
  34. package/dist/components/Comment.es.js.map +1 -1
  35. package/dist/components/DataCodeSection.cjs.js +1 -1
  36. package/dist/components/DataCodeSection.es.js +1 -1
  37. package/dist/components/DataList.cjs.js +15 -17
  38. package/dist/components/DataList.cjs.js.map +1 -1
  39. package/dist/components/DataList.es.js +4 -5
  40. package/dist/components/DataList.es.js.map +1 -1
  41. package/dist/components/DataPanel.cjs.js +1 -1
  42. package/dist/components/DataPanel.es.js +1 -1
  43. package/dist/components/DateTimePicker.cjs.js +0 -1
  44. package/dist/components/DateTimePicker.cjs.js.map +1 -1
  45. package/dist/components/DateTimePicker.es.js +3 -4
  46. package/dist/components/DateTimePicker.es.js.map +1 -1
  47. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  48. package/dist/components/DateTimeRangePicker.es.js +1 -1
  49. package/dist/components/Dialog.cjs.js +2 -2
  50. package/dist/components/Dialog.es.js +2 -2
  51. package/dist/components/Drawer.cjs.js +1 -1
  52. package/dist/components/Drawer.es.js +1 -1
  53. package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -2
  54. package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
  55. package/dist/components/EnvironmentVariablesEditor.es.js +3 -4
  56. package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
  57. package/dist/components/Field.es.js +2 -2
  58. package/dist/components/FilterBar.cjs.js +2 -2
  59. package/dist/components/FilterBar.cjs.js.map +1 -1
  60. package/dist/components/FilterBar.es.js +3 -3
  61. package/dist/components/FilterBar.es.js.map +1 -1
  62. package/dist/components/FormFieldBlocks.es.js +2 -2
  63. package/dist/components/Input.es.js +1 -1
  64. package/dist/components/InputGroup.es.js +1 -1
  65. package/dist/components/InputNumber.es.js +1 -1
  66. package/dist/components/JSONSchemaForm.cjs.js +0 -1
  67. package/dist/components/JSONSchemaForm.cjs.js.map +1 -1
  68. package/dist/components/JSONSchemaForm.es.js +4 -5
  69. package/dist/components/JSONSchemaForm.es.js.map +1 -1
  70. package/dist/components/ListSearch.cjs.js +1 -1
  71. package/dist/components/ListSearch.es.js +1 -1
  72. package/dist/components/LogsDataList.cjs.js +5 -2
  73. package/dist/components/LogsDataList.cjs.js.map +1 -1
  74. package/dist/components/LogsDataList.es.js +5 -2
  75. package/dist/components/LogsDataList.es.js.map +1 -1
  76. package/dist/components/MarkdownRenderer.es.js +1 -1
  77. package/dist/components/PropertyFilter.cjs.js +0 -1
  78. package/dist/components/PropertyFilter.cjs.js.map +1 -1
  79. package/dist/components/PropertyFilter.es.js +4 -5
  80. package/dist/components/PropertyFilter.es.js.map +1 -1
  81. package/dist/components/RadioGroup.es.js +1 -1
  82. package/dist/components/RuleBuilder.es.js +2 -2
  83. package/dist/components/SavedViews.cjs.js +1 -1
  84. package/dist/components/SavedViews.es.js +1 -1
  85. package/dist/components/SearchInput.cjs.js +1 -1
  86. package/dist/components/SearchInput.es.js +1 -1
  87. package/dist/components/Section.cjs.js +1 -1
  88. package/dist/components/Section.es.js +1 -1
  89. package/dist/components/SegmentedControl.es.js +1 -1
  90. package/dist/components/Select.es.js +1 -1
  91. package/dist/components/SideDialog.cjs.js +1 -1
  92. package/dist/components/SideDialog.es.js +1 -1
  93. package/dist/components/Sidebar.cjs.js +2 -2
  94. package/dist/components/Sidebar.es.js +3 -3
  95. package/dist/components/Switch.es.js +1 -1
  96. package/dist/components/ThemeToggle.es.js +1 -1
  97. package/dist/components/Workflow.cjs.js +2 -2
  98. package/dist/components/Workflow.es.js +3 -3
  99. package/dist/components/ai/activity.es.js +1 -1
  100. package/dist/components/ai/ask-user.cjs.js +1 -1
  101. package/dist/components/ai/ask-user.es.js +1 -1
  102. package/dist/components/ai/plan.es.js +1 -1
  103. package/dist/components/ai/tool-approval.es.js +1 -1
  104. package/dist/components/ai/tool-call.es.js +1 -1
  105. package/dist/{data-code-section-zG2S1MPX.js → data-code-section-BGLC-hxm.js} +3 -3
  106. package/dist/{data-code-section-zG2S1MPX.js.map → data-code-section-BGLC-hxm.js.map} +1 -1
  107. package/dist/{data-code-section-hVbIXLNC.cjs → data-code-section-BTRNa1SD.cjs} +3 -3
  108. package/dist/{data-code-section-hVbIXLNC.cjs.map → data-code-section-BTRNa1SD.cjs.map} +1 -1
  109. package/dist/{data-list-top-BJCC62oy.js → data-list-DDGpWucH.js} +333 -6
  110. package/dist/data-list-DDGpWucH.js.map +1 -0
  111. package/dist/{data-list-top-Ds-NWyPO.cjs → data-list-_yDPF5wR.cjs} +339 -13
  112. package/dist/data-list-_yDPF5wR.cjs.map +1 -0
  113. package/dist/{data-list-skeleton-BmsDYJrA.js → data-list-skeleton-CJFwZBlW.js} +2 -2
  114. package/dist/{data-list-skeleton-BmsDYJrA.js.map → data-list-skeleton-CJFwZBlW.js.map} +1 -1
  115. package/dist/{data-list-skeleton-CfVsXhx1.cjs → data-list-skeleton-maUWF7Ri.cjs} +6 -6
  116. package/dist/{data-list-skeleton-CfVsXhx1.cjs.map → data-list-skeleton-maUWF7Ri.cjs.map} +1 -1
  117. package/dist/{data-panel-BLqydW68.js → data-panel-DfVGx0Ea.js} +3 -3
  118. package/dist/{data-panel-BLqydW68.js.map → data-panel-DfVGx0Ea.js.map} +1 -1
  119. package/dist/{data-panel-BdeebdMA.cjs → data-panel-Dhg7s3fD.cjs} +4 -4
  120. package/dist/{data-panel-BdeebdMA.cjs.map → data-panel-Dhg7s3fD.cjs.map} +1 -1
  121. package/dist/{date-time-range-picker-BvRPfy1i.cjs → date-time-range-picker-BNaXCa7r.cjs} +1 -2
  122. package/dist/{date-time-range-picker-BvRPfy1i.cjs.map → date-time-range-picker-BNaXCa7r.cjs.map} +1 -1
  123. package/dist/{date-time-range-picker-CIfaXUuy.js → date-time-range-picker-C5x_33hB.js} +3 -4
  124. package/dist/{date-time-range-picker-CIfaXUuy.js.map → date-time-range-picker-C5x_33hB.js.map} +1 -1
  125. package/dist/{dialog-wL-fuFON.cjs → dialog-DQI9ChYf.cjs} +74 -37
  126. package/dist/dialog-DQI9ChYf.cjs.map +1 -0
  127. package/dist/{dialog-BYsQZGIj.js → dialog-DlZmNahd.js} +75 -35
  128. package/dist/dialog-DlZmNahd.js.map +1 -0
  129. package/dist/{dialog-action-B-pF99m0.js → dialog-action-c4nfPomF.js} +2 -2
  130. package/dist/{dialog-action-B-pF99m0.js.map → dialog-action-c4nfPomF.js.map} +1 -1
  131. package/dist/{dialog-action-CcMhvjM-.cjs → dialog-action-gdo9CwUv.cjs} +2 -2
  132. package/dist/{dialog-action-CcMhvjM-.cjs.map → dialog-action-gdo9CwUv.cjs.map} +1 -1
  133. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +1 -1
  134. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +1 -1
  135. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  136. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +2 -2
  137. package/dist/domains/chat/messages/dataset-save-action.cjs.js +2 -3
  138. package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
  139. package/dist/domains/chat/messages/dataset-save-action.es.js +5 -6
  140. package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
  141. package/dist/domains/chat/messages/message-row.cjs.js +0 -1
  142. package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
  143. package/dist/domains/chat/messages/message-row.es.js +1 -2
  144. package/dist/domains/chat/messages/message-row.es.js.map +1 -1
  145. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  146. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  147. package/dist/domains/chat/messages/skill-message.es.js +1 -1
  148. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  149. package/dist/domains/chat/tools/badges/agent-badge.es.js +2 -2
  150. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  151. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  152. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
  153. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +2 -2
  154. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
  155. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
  156. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
  157. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  158. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  159. package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
  160. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +2 -2
  161. package/dist/domains/chat/tools/badges/workflow-badge.es.js +3 -3
  162. package/dist/domains/chat/tools/submit-plan-tool.es.js +1 -1
  163. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  164. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +1 -2
  165. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js.map +1 -1
  166. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -5
  167. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js.map +1 -1
  168. package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
  169. package/dist/domains/logs/components/log-data-panel.es.js +1 -1
  170. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -2
  171. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  172. package/dist/domains/logs/components/logs-list-view.es.js +3 -2
  173. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  174. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  175. package/dist/domains/memory/components/observation-detail-view.cjs.js +0 -1
  176. package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
  177. package/dist/domains/memory/components/observation-detail-view.es.js +2 -3
  178. package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
  179. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  180. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  181. package/dist/domains/metrics/drilldown.cjs.js +1 -1
  182. package/dist/domains/metrics/drilldown.es.js +1 -1
  183. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +1 -2
  184. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js.map +1 -1
  185. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -5
  186. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js.map +1 -1
  187. package/dist/domains/request-context/components/request-context-label.cjs.js +0 -1
  188. package/dist/domains/request-context/components/request-context-label.cjs.js.map +1 -1
  189. package/dist/domains/request-context/components/request-context-label.es.js +1 -2
  190. package/dist/domains/request-context/components/request-context-label.es.js.map +1 -1
  191. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  192. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  193. package/dist/domains/scores/components/span-scoring.cjs.js +2 -2
  194. package/dist/domains/scores/components/span-scoring.es.js +3 -3
  195. package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -1
  196. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  197. package/dist/domains/scores/components/trace-scores-tab.es.js +2 -1
  198. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  199. package/dist/domains/traces/components/feedback-thread.cjs.js +1 -1
  200. package/dist/domains/traces/components/feedback-thread.es.js +2 -2
  201. package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -2
  202. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  203. package/dist/domains/traces/components/span-data-panel-view.es.js +1 -2
  204. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  205. package/dist/domains/traces/components/span-details-view.cjs.js +0 -1
  206. package/dist/domains/traces/components/span-details-view.cjs.js.map +1 -1
  207. package/dist/domains/traces/components/span-details-view.es.js +0 -1
  208. package/dist/domains/traces/components/span-details-view.es.js.map +1 -1
  209. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  210. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  211. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  212. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  213. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  214. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  215. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  216. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
  217. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  218. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  219. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  220. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  221. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +0 -2
  222. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  223. package/dist/domains/traces/components/thread-view-by-trace.es.js +0 -2
  224. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  225. package/dist/domains/traces/components/trace-columns-menu.cjs.js +2 -3
  226. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  227. package/dist/domains/traces/components/trace-columns-menu.es.js +4 -5
  228. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  229. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +2 -2
  230. package/dist/domains/traces/components/trace-data-panel-view.es.js +2 -2
  231. package/dist/domains/traces/components/trace-data-panel.cjs.js +3 -4
  232. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  233. package/dist/domains/traces/components/trace-data-panel.es.js +3 -4
  234. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  235. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  236. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  237. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  238. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  239. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  240. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  241. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +3 -3
  242. package/dist/domains/traces/components/trace-time-range-chip.es.js +3 -3
  243. package/dist/domains/traces/components/traces-list-view.cjs.js +4 -5
  244. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  245. package/dist/domains/traces/components/traces-list-view.es.js +3 -4
  246. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  247. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +4 -1
  248. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  249. package/dist/domains/traces/components/traces-page-skeleton.es.js +4 -1
  250. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  251. package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js +1 -1
  252. package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js +1 -1
  253. package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +1 -1
  254. package/dist/domains/traces/hooks/use-trace-url-state.es.js +1 -1
  255. package/dist/domains/traces/trace-filters.cjs.js +1 -1
  256. package/dist/domains/traces/trace-filters.es.js +1 -1
  257. package/dist/domains/traces/trace-query-filters.cjs.js +1 -1
  258. package/dist/domains/traces/trace-query-filters.es.js +1 -1
  259. package/dist/domains/traces.cjs.js +1 -1
  260. package/dist/domains/traces.es.js +1 -1
  261. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  262. package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
  263. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  264. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  265. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +1 -1
  266. package/dist/domains/workflows/runs/workflow-run-list.es.js +1 -1
  267. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  268. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  269. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +1 -1
  270. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +0 -1
  271. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js.map +1 -1
  272. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +2 -3
  273. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js.map +1 -1
  274. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +0 -1
  275. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -1
  276. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -3
  277. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -1
  278. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
  279. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  280. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  281. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  282. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +0 -1
  283. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js.map +1 -1
  284. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +2 -3
  285. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js.map +1 -1
  286. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +1 -1
  287. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
  288. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +0 -2
  289. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
  290. package/dist/domains/workflows/workflow/workflow-input-data.es.js +0 -2
  291. package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
  292. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
  293. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +2 -2
  294. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
  295. package/dist/domains/workflows/workflow/workflow-run-data.es.js +1 -1
  296. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  297. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +1 -1
  298. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
  299. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
  300. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +0 -1
  301. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js.map +1 -1
  302. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +2 -3
  303. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js.map +1 -1
  304. package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
  305. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +3 -4
  306. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js.map +1 -1
  307. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +6 -7
  308. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js.map +1 -1
  309. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +1 -1
  310. package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
  311. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
  312. package/dist/domains/workspace/components/workspace-search.es.js +1 -1
  313. package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
  314. package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
  315. package/dist/{drawer-B-t4ydEh.js → drawer-CZlqOjd2.js} +17 -7
  316. package/dist/{drawer-B-t4ydEh.js.map → drawer-CZlqOjd2.js.map} +1 -1
  317. package/dist/{drawer-DE2b3eld.cjs → drawer-CeUYCG-S.cjs} +16 -6
  318. package/dist/{drawer-DE2b3eld.cjs.map → drawer-CeUYCG-S.cjs.map} +1 -1
  319. package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
  320. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  321. package/dist/ee/signals/components/entity-index-list.es.js +3 -1
  322. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  323. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -2
  324. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  325. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +5 -3
  326. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  327. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  328. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  329. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -3
  330. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js.map +1 -1
  331. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +4 -5
  332. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -1
  333. package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
  334. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  335. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  336. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
  337. package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
  338. package/dist/{field-B89BEZg4.js → field-Bc8Ewf_M.js} +2 -2
  339. package/dist/{field-B89BEZg4.js.map → field-Bc8Ewf_M.js.map} +1 -1
  340. package/dist/{field-control-aria-DB6y41tQ.js → field-control-aria-CCJ4-mUe.js} +2 -2
  341. package/dist/{field-control-aria-DB6y41tQ.js.map → field-control-aria-CCJ4-mUe.js.map} +1 -1
  342. package/dist/{filter-bar-chip-uPmGVzPR.cjs → filter-bar-chip-C_371aon.cjs} +35 -6
  343. package/dist/filter-bar-chip-C_371aon.cjs.map +1 -0
  344. package/dist/{filter-bar-chip-Bu27EjSO.js → filter-bar-chip-Dc6phYqZ.js} +35 -6
  345. package/dist/filter-bar-chip-Dc6phYqZ.js.map +1 -0
  346. package/dist/hooks/use-is-mobile.cjs.js +14 -10
  347. package/dist/hooks/use-is-mobile.cjs.js.map +1 -1
  348. package/dist/hooks/use-is-mobile.es.js +15 -11
  349. package/dist/hooks/use-is-mobile.es.js.map +1 -1
  350. package/dist/{input-DQFUjtnh.js → input-Ds171RJ5.js} +2 -2
  351. package/dist/{input-DQFUjtnh.js.map → input-Ds171RJ5.js.map} +1 -1
  352. package/dist/{input-group-BWsGYnES.js → input-group-Cxv64rPB.js} +2 -2
  353. package/dist/{input-group-BWsGYnES.js.map → input-group-Cxv64rPB.js.map} +1 -1
  354. package/dist/layout/tabbed-container.cjs.js +2 -2
  355. package/dist/layout/tabbed-container.es.js +3 -3
  356. package/dist/lib/form/components/boolean-field.cjs.js +0 -1
  357. package/dist/lib/form/components/boolean-field.cjs.js.map +1 -1
  358. package/dist/lib/form/components/boolean-field.es.js +2 -3
  359. package/dist/lib/form/components/boolean-field.es.js.map +1 -1
  360. package/dist/lib/form/components/date-field.es.js +1 -1
  361. package/dist/lib/form/components/field-wrapper.cjs.js +0 -1
  362. package/dist/lib/form/components/field-wrapper.cjs.js.map +1 -1
  363. package/dist/lib/form/components/field-wrapper.es.js +1 -2
  364. package/dist/lib/form/components/field-wrapper.es.js.map +1 -1
  365. package/dist/lib/form/components/number-field.es.js +1 -1
  366. package/dist/lib/form/components/record-field.es.js +1 -1
  367. package/dist/lib/form/components/select-field.es.js +1 -1
  368. package/dist/{list-search-xHadeMHl.cjs → list-search-C3yXcTRO.cjs} +2 -2
  369. package/dist/{list-search-xHadeMHl.cjs.map → list-search-C3yXcTRO.cjs.map} +1 -1
  370. package/dist/{list-search-BNnMwbpv.js → list-search-CmPRFDsn.js} +2 -2
  371. package/dist/{list-search-BNnMwbpv.js.map → list-search-CmPRFDsn.js.map} +1 -1
  372. package/dist/{logs-data-list-DfuVMd6f.cjs → logs-data-list-Bf_vIsFb.cjs} +21 -22
  373. package/dist/{logs-data-list-DfuVMd6f.cjs.map → logs-data-list-Bf_vIsFb.cjs.map} +1 -1
  374. package/dist/{logs-data-list-C262Be3o.js → logs-data-list-Cudh6b-c.js} +2 -3
  375. package/dist/{logs-data-list-C262Be3o.js.map → logs-data-list-Cudh6b-c.js.map} +1 -1
  376. package/dist/{markdown-renderer-D5Wjk1Cs.js → markdown-renderer-Cly6VMDr.js} +2 -2
  377. package/dist/{markdown-renderer-D5Wjk1Cs.js.map → markdown-renderer-Cly6VMDr.js.map} +1 -1
  378. package/dist/new/settings.cjs.js +1 -1
  379. package/dist/new/settings.es.js +1 -1
  380. package/dist/{plan-Cl3-JgbI.js → plan-DIbhFPRL.js} +2 -2
  381. package/dist/{plan-Cl3-JgbI.js.map → plan-DIbhFPRL.js.map} +1 -1
  382. package/dist/primitives/textarea-control.es.js +1 -1
  383. package/dist/{property-filter-applied-CZLzY0OH.js → property-filter-applied-DXH81ffT.js} +2 -2
  384. package/dist/{property-filter-applied-CZLzY0OH.js.map → property-filter-applied-DXH81ffT.js.map} +1 -1
  385. package/dist/{radio-group-Bk52hNNb.js → radio-group-C2zsCipq.js} +2 -2
  386. package/dist/{radio-group-Bk52hNNb.js.map → radio-group-C2zsCipq.js.map} +1 -1
  387. package/dist/{reasoning-activity-CIuVSAGA.js → reasoning-activity-B1r4JQxm.js} +2 -2
  388. package/dist/{reasoning-activity-CIuVSAGA.js.map → reasoning-activity-B1r4JQxm.js.map} +1 -1
  389. package/dist/resize/panel-drawer.cjs.js +1 -1
  390. package/dist/resize/panel-drawer.es.js +1 -1
  391. package/dist/{search-input-fqSrRTLU.js → search-input-D23h16CB.js} +3 -4
  392. package/dist/{search-input-fqSrRTLU.js.map → search-input-D23h16CB.js.map} +1 -1
  393. package/dist/{search-input-UtTJMjJu.cjs → search-input-DbEE2zEz.cjs} +1 -2
  394. package/dist/{search-input-UtTJMjJu.cjs.map → search-input-DbEE2zEz.cjs.map} +1 -1
  395. package/dist/{section-DhZbtWhu.cjs → section-CdaSS9M7.cjs} +2 -2
  396. package/dist/{section-DhZbtWhu.cjs.map → section-CdaSS9M7.cjs.map} +1 -1
  397. package/dist/{section-Dq6aFxlH.js → section-DcjTdrqz.js} +2 -2
  398. package/dist/{section-Dq6aFxlH.js.map → section-DcjTdrqz.js.map} +1 -1
  399. package/dist/{segmented-control-CUnvFStD.js → segmented-control-BfY7F0NZ.js} +2 -2
  400. package/dist/{segmented-control-CUnvFStD.js.map → segmented-control-BfY7F0NZ.js.map} +1 -1
  401. package/dist/{select-N2lgBRsg.js → select-BGAiIHnS.js} +2 -2
  402. package/dist/{select-N2lgBRsg.js.map → select-BGAiIHnS.js.map} +1 -1
  403. package/dist/{settings-row-CwZ3JffC.cjs → settings-row-rOI4yGvi.cjs} +1 -2
  404. package/dist/{settings-row-CwZ3JffC.cjs.map → settings-row-rOI4yGvi.cjs.map} +1 -1
  405. package/dist/{settings-row-gpwIVAMN.js → settings-row-ylIw4rfC.js} +2 -3
  406. package/dist/{settings-row-gpwIVAMN.js.map → settings-row-ylIw4rfC.js.map} +1 -1
  407. package/dist/{side-dialog-BIyr498B.js → side-dialog-CB_wrLtE.js} +3 -3
  408. package/dist/{side-dialog-BIyr498B.js.map → side-dialog-CB_wrLtE.js.map} +1 -1
  409. package/dist/{side-dialog-BT2xywA8.cjs → side-dialog-OPXvmRDA.cjs} +3 -3
  410. package/dist/{side-dialog-BT2xywA8.cjs.map → side-dialog-OPXvmRDA.cjs.map} +1 -1
  411. package/dist/{span-payload-primitives-WqYTBiGx.js → span-payload-primitives-Cixom2Py.js} +2 -2
  412. package/dist/{span-payload-primitives-WqYTBiGx.js.map → span-payload-primitives-Cixom2Py.js.map} +1 -1
  413. package/dist/src/ds/components/AlertDialog/alert-dialog.d.ts +8 -11
  414. package/dist/src/ds/components/Dialog/dialog-shell.d.ts +1 -0
  415. package/dist/src/ds/components/Dialog/dialog.d.ts +9 -3
  416. package/dist/src/ds/components/FilterBar/filter-bar-tree.d.ts +9 -1
  417. package/dist/src/ds/components/FilterBar/types.d.ts +6 -0
  418. package/dist/style.css +17 -4
  419. package/dist/{switch-DiSlsWUt.js → switch-BBeMfeQ2.js} +2 -2
  420. package/dist/{switch-DiSlsWUt.js.map → switch-BBeMfeQ2.js.map} +1 -1
  421. package/dist/{time-picker-J7GaNaEd.js → time-picker-Bo6GJcmz.js} +2 -2
  422. package/dist/{time-picker-J7GaNaEd.js.map → time-picker-Bo6GJcmz.js.map} +1 -1
  423. package/dist/{tool-approval-nsbG8-qI.js → tool-approval-BQ6sDvyS.js} +2 -2
  424. package/dist/{tool-approval-nsbG8-qI.js.map → tool-approval-BQ6sDvyS.js.map} +1 -1
  425. package/dist/{tool-call-arguments-RKyYP3xh.js → tool-call-arguments-B86JP3Dy.js} +2 -2
  426. package/dist/{tool-call-arguments-RKyYP3xh.js.map → tool-call-arguments-B86JP3Dy.js.map} +1 -1
  427. package/dist/{tool-card-BtPh44u6.js → tool-card-C8IrtMuQ.js} +2 -2
  428. package/dist/{tool-card-BtPh44u6.js.map → tool-card-C8IrtMuQ.js.map} +1 -1
  429. package/dist/{trace-filters-B9myZP-l.cjs → trace-filters-Bh4dVNPX.cjs} +16 -20
  430. package/dist/trace-filters-Bh4dVNPX.cjs.map +1 -0
  431. package/dist/{trace-filters-Cvra0Aum.js → trace-filters-C71gmCq4.js} +16 -20
  432. package/dist/trace-filters-C71gmCq4.js.map +1 -0
  433. package/dist/{traces-data-list-Cf_PpmSN.cjs → traces-data-list-DaFA1Ccg.cjs} +17 -19
  434. package/dist/{traces-data-list-Cf_PpmSN.cjs.map → traces-data-list-DaFA1Ccg.cjs.map} +1 -1
  435. package/dist/{traces-data-list-_mFOMw0U.js → traces-data-list-L_r2GAtr.js} +2 -4
  436. package/dist/{traces-data-list-_mFOMw0U.js.map → traces-data-list-L_r2GAtr.js.map} +1 -1
  437. package/dist/types-CIPrYAzY.js.map +1 -1
  438. package/dist/types-Ns4ZNp-g.cjs.map +1 -1
  439. package/dist/{use-workflow-graph-runtime-CAyNWN_Z.js → use-workflow-graph-runtime-DS7eWso7.js} +2 -2
  440. package/dist/{use-workflow-graph-runtime-CAyNWN_Z.js.map → use-workflow-graph-runtime-DS7eWso7.js.map} +1 -1
  441. package/dist/{workflow-code-dialog-content-CNDoMFAV.js → workflow-code-dialog-content-BUCZZoKf.js} +2 -2
  442. package/dist/{workflow-code-dialog-content-CNDoMFAV.js.map → workflow-code-dialog-content-BUCZZoKf.js.map} +1 -1
  443. package/dist/{workflow-data-edge-view-CMdPlcQj.cjs → workflow-data-edge-view-BHvpuvmp.cjs} +2 -2
  444. package/dist/{workflow-data-edge-view-CMdPlcQj.cjs.map → workflow-data-edge-view-BHvpuvmp.cjs.map} +1 -1
  445. package/dist/{workflow-data-edge-view-DeX0gykV.js → workflow-data-edge-view-BIiMA9zg.js} +2 -2
  446. package/dist/{workflow-data-edge-view-DeX0gykV.js.map → workflow-data-edge-view-BIiMA9zg.js.map} +1 -1
  447. package/dist/{workflow-edge-data-button-CSeMH2Ky.cjs → workflow-edge-data-button-Cz2rcoDr.cjs} +2 -2
  448. package/dist/{workflow-edge-data-button-CSeMH2Ky.cjs.map → workflow-edge-data-button-Cz2rcoDr.cjs.map} +1 -1
  449. package/dist/{workflow-edge-data-button-DfyJCI6R.js → workflow-edge-data-button-D5oK4NS5.js} +3 -3
  450. package/dist/{workflow-edge-data-button-DfyJCI6R.js.map → workflow-edge-data-button-D5oK4NS5.js.map} +1 -1
  451. package/package.json +9 -9
  452. package/dist/alert-dialog-BJlS-v3z.cjs +0 -55
  453. package/dist/alert-dialog-BJlS-v3z.cjs.map +0 -1
  454. package/dist/alert-dialog-BvzVYar8.js +0 -53
  455. package/dist/alert-dialog-BvzVYar8.js.map +0 -1
  456. package/dist/command-B141Sxts.js.map +0 -1
  457. package/dist/command-Cx5QAS4E.cjs.map +0 -1
  458. package/dist/data-list-DkVOwk8l.cjs +0 -142
  459. package/dist/data-list-DkVOwk8l.cjs.map +0 -1
  460. package/dist/data-list-Dv2lP-dU.js +0 -138
  461. package/dist/data-list-Dv2lP-dU.js.map +0 -1
  462. package/dist/data-list-spacer-DEMquKp9.js +0 -209
  463. package/dist/data-list-spacer-DEMquKp9.js.map +0 -1
  464. package/dist/data-list-spacer-pXP8xDlg.cjs +0 -218
  465. package/dist/data-list-spacer-pXP8xDlg.cjs.map +0 -1
  466. package/dist/data-list-top-BJCC62oy.js.map +0 -1
  467. package/dist/data-list-top-Ds-NWyPO.cjs.map +0 -1
  468. package/dist/dialog-BYsQZGIj.js.map +0 -1
  469. package/dist/dialog-wL-fuFON.cjs.map +0 -1
  470. package/dist/filter-bar-chip-Bu27EjSO.js.map +0 -1
  471. package/dist/filter-bar-chip-uPmGVzPR.cjs.map +0 -1
  472. package/dist/trace-filters-B9myZP-l.cjs.map +0 -1
  473. package/dist/trace-filters-Cvra0Aum.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"entity-index-list.cjs.js","sources":["../../../../src/ee/signals/components/entity-index-list.tsx"],"sourcesContent":["import type { ThemeLearningEntity } from '@mastra/client-js';\n\nimport { entityIndexMetadata, entityStatusLabel } from './entity-index-model';\nimport { Badge } from '@/ds/components/Badge';\nimport { DataList } from '@/ds/components/DataList';\nimport type { LinkComponent } from '@/ds/types/link-component';\n\nconst columns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface EntityIndexListProps {\n entities: readonly ThemeLearningEntity[];\n hasSearch: boolean;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n LinkComponent: LinkComponent;\n}\n\nfunction Status({ entity }: { entity: ThemeLearningEntity }) {\n const label = entityStatusLabel(entity.status);\n const variant = entity.status === 'ready' ? 'success' : entity.status === 'processing' ? 'info' : 'neutral';\n return (\n <Badge variant={variant} size=\"sm\" indicator={entity.status === undefined ? undefined : 'dot'}>\n {label}\n </Badge>\n );\n}\n\nexport function EntityIndexList({ entities, hasSearch, getEntityHref, LinkComponent }: EntityIndexListProps) {\n return (\n <section aria-label=\"Trace Intelligence entities\" className=\"min-h-0\">\n <DataList columns={columns} fit=\"container\">\n <DataList.Top>\n <DataList.TopCell>Entity</DataList.TopCell>\n <DataList.TopCell>Traces</DataList.TopCell>\n <DataList.TopCell>Signals set</DataList.TopCell>\n <DataList.TopCell>Status</DataList.TopCell>\n <DataList.TopCell>Updated</DataList.TopCell>\n </DataList.Top>\n {entities.length === 0 && hasSearch ? <DataList.NoMatch message=\"No entities match your search\" /> : null}\n {entities.map(entity => {\n const metadata = entityIndexMetadata(entity);\n return (\n <DataList.RowLink\n key={`${entity.entityType}:${entity.entityId}`}\n to={getEntityHref(entity)}\n LinkComponent={LinkComponent}\n className=\"min-w-0\"\n >\n <DataList.Cell className=\"min-w-0 overflow-visible text-left\">\n <span className=\"sr-only\">Open entity {entity.entityId}</span>\n <span aria-hidden=\"true\" className=\"block overflow-clip text-ellipsis whitespace-nowrap\">\n {entity.entityId}\n </span>\n </DataList.Cell>\n <DataList.NumberCell>{metadata.traceCount}</DataList.NumberCell>\n <DataList.Cell>{metadata.signalsSet}</DataList.Cell>\n <DataList.Cell>\n <Status entity={entity} />\n </DataList.Cell>\n <DataList.Cell title={entity.updatedAt}>{metadata.updatedAt}</DataList.Cell>\n </DataList.RowLink>\n );\n })}\n </DataList>\n </section>\n );\n}\n"],"names":["entityStatusLabel","jsx","Badge","jsxs","DataList","entityIndexMetadata"],"mappings":"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"}
1
+ {"version":3,"file":"entity-index-list.cjs.js","sources":["../../../../src/ee/signals/components/entity-index-list.tsx"],"sourcesContent":["import type { ThemeLearningEntity } from '@mastra/client-js';\n\nimport { entityIndexMetadata, entityStatusLabel } from './entity-index-model';\nimport { Badge } from '@/ds/components/Badge';\nimport { DataList } from '@/ds/components/DataList';\nimport type { LinkComponent } from '@/ds/types/link-component';\n\nconst columns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface EntityIndexListProps {\n entities: readonly ThemeLearningEntity[];\n hasSearch: boolean;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n LinkComponent: LinkComponent;\n}\n\nfunction Status({ entity }: { entity: ThemeLearningEntity }) {\n const label = entityStatusLabel(entity.status);\n const variant = entity.status === 'ready' ? 'success' : entity.status === 'processing' ? 'info' : 'neutral';\n return (\n <Badge variant={variant} size=\"sm\" indicator={entity.status === undefined ? undefined : 'dot'}>\n {label}\n </Badge>\n );\n}\n\nexport function EntityIndexList({ entities, hasSearch, getEntityHref, LinkComponent }: EntityIndexListProps) {\n return (\n <section aria-label=\"Trace Intelligence entities\" className=\"min-h-0\">\n <DataList columns={columns} fit=\"container\">\n <DataList.Top>\n <DataList.TopCell>Entity</DataList.TopCell>\n <DataList.TopCell>Traces</DataList.TopCell>\n <DataList.TopCell>Signals set</DataList.TopCell>\n <DataList.TopCell>Status</DataList.TopCell>\n <DataList.TopCell>Updated</DataList.TopCell>\n </DataList.Top>\n {entities.length === 0 && hasSearch ? <DataList.NoMatch message=\"No entities match your search\" /> : null}\n {entities.map(entity => {\n const metadata = entityIndexMetadata(entity);\n return (\n <DataList.RowLink\n key={`${entity.entityType}:${entity.entityId}`}\n to={getEntityHref(entity)}\n LinkComponent={LinkComponent}\n className=\"min-w-0\"\n >\n <DataList.Cell className=\"min-w-0 overflow-visible text-left\">\n <span className=\"sr-only\">Open entity {entity.entityId}</span>\n <span aria-hidden=\"true\" className=\"block overflow-clip text-ellipsis whitespace-nowrap\">\n {entity.entityId}\n </span>\n </DataList.Cell>\n <DataList.NumberCell>{metadata.traceCount}</DataList.NumberCell>\n <DataList.Cell>{metadata.signalsSet}</DataList.Cell>\n <DataList.Cell>\n <Status entity={entity} />\n </DataList.Cell>\n <DataList.Cell title={entity.updatedAt}>{metadata.updatedAt}</DataList.Cell>\n </DataList.RowLink>\n );\n })}\n </DataList>\n </section>\n );\n}\n"],"names":["entityStatusLabel","jsx","Badge","jsxs","DataList","entityIndexMetadata"],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { entityIndexMetadata, entityStatusLabel } from './entity-index-model.es.js';
3
3
  import { B as Badge } from '../../../Badge-3-G2I_cx.js';
4
- import { D as DataList } from '../../../data-list-Dv2lP-dU.js';
4
+ import { e as DataList } from '../../../data-list-DDGpWucH.js';
5
+ import 'react';
6
+ import '../../../keyboard/keyboard-shortcuts-context.es.js';
5
7
 
6
8
  const columns = "minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)";
7
9
  function Status({ entity }) {
@@ -1 +1 @@
1
- {"version":3,"file":"entity-index-list.es.js","sources":["../../../../src/ee/signals/components/entity-index-list.tsx"],"sourcesContent":["import type { ThemeLearningEntity } from '@mastra/client-js';\n\nimport { entityIndexMetadata, entityStatusLabel } from './entity-index-model';\nimport { Badge } from '@/ds/components/Badge';\nimport { DataList } from '@/ds/components/DataList';\nimport type { LinkComponent } from '@/ds/types/link-component';\n\nconst columns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface EntityIndexListProps {\n entities: readonly ThemeLearningEntity[];\n hasSearch: boolean;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n LinkComponent: LinkComponent;\n}\n\nfunction Status({ entity }: { entity: ThemeLearningEntity }) {\n const label = entityStatusLabel(entity.status);\n const variant = entity.status === 'ready' ? 'success' : entity.status === 'processing' ? 'info' : 'neutral';\n return (\n <Badge variant={variant} size=\"sm\" indicator={entity.status === undefined ? undefined : 'dot'}>\n {label}\n </Badge>\n );\n}\n\nexport function EntityIndexList({ entities, hasSearch, getEntityHref, LinkComponent }: EntityIndexListProps) {\n return (\n <section aria-label=\"Trace Intelligence entities\" className=\"min-h-0\">\n <DataList columns={columns} fit=\"container\">\n <DataList.Top>\n <DataList.TopCell>Entity</DataList.TopCell>\n <DataList.TopCell>Traces</DataList.TopCell>\n <DataList.TopCell>Signals set</DataList.TopCell>\n <DataList.TopCell>Status</DataList.TopCell>\n <DataList.TopCell>Updated</DataList.TopCell>\n </DataList.Top>\n {entities.length === 0 && hasSearch ? <DataList.NoMatch message=\"No entities match your search\" /> : null}\n {entities.map(entity => {\n const metadata = entityIndexMetadata(entity);\n return (\n <DataList.RowLink\n key={`${entity.entityType}:${entity.entityId}`}\n to={getEntityHref(entity)}\n LinkComponent={LinkComponent}\n className=\"min-w-0\"\n >\n <DataList.Cell className=\"min-w-0 overflow-visible text-left\">\n <span className=\"sr-only\">Open entity {entity.entityId}</span>\n <span aria-hidden=\"true\" className=\"block overflow-clip text-ellipsis whitespace-nowrap\">\n {entity.entityId}\n </span>\n </DataList.Cell>\n <DataList.NumberCell>{metadata.traceCount}</DataList.NumberCell>\n <DataList.Cell>{metadata.signalsSet}</DataList.Cell>\n <DataList.Cell>\n <Status entity={entity} />\n </DataList.Cell>\n <DataList.Cell title={entity.updatedAt}>{metadata.updatedAt}</DataList.Cell>\n </DataList.RowLink>\n );\n })}\n </DataList>\n </section>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-index-list.es.js","sources":["../../../../src/ee/signals/components/entity-index-list.tsx"],"sourcesContent":["import type { ThemeLearningEntity } from '@mastra/client-js';\n\nimport { entityIndexMetadata, entityStatusLabel } from './entity-index-model';\nimport { Badge } from '@/ds/components/Badge';\nimport { DataList } from '@/ds/components/DataList';\nimport type { LinkComponent } from '@/ds/types/link-component';\n\nconst columns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface EntityIndexListProps {\n entities: readonly ThemeLearningEntity[];\n hasSearch: boolean;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n LinkComponent: LinkComponent;\n}\n\nfunction Status({ entity }: { entity: ThemeLearningEntity }) {\n const label = entityStatusLabel(entity.status);\n const variant = entity.status === 'ready' ? 'success' : entity.status === 'processing' ? 'info' : 'neutral';\n return (\n <Badge variant={variant} size=\"sm\" indicator={entity.status === undefined ? undefined : 'dot'}>\n {label}\n </Badge>\n );\n}\n\nexport function EntityIndexList({ entities, hasSearch, getEntityHref, LinkComponent }: EntityIndexListProps) {\n return (\n <section aria-label=\"Trace Intelligence entities\" className=\"min-h-0\">\n <DataList columns={columns} fit=\"container\">\n <DataList.Top>\n <DataList.TopCell>Entity</DataList.TopCell>\n <DataList.TopCell>Traces</DataList.TopCell>\n <DataList.TopCell>Signals set</DataList.TopCell>\n <DataList.TopCell>Status</DataList.TopCell>\n <DataList.TopCell>Updated</DataList.TopCell>\n </DataList.Top>\n {entities.length === 0 && hasSearch ? <DataList.NoMatch message=\"No entities match your search\" /> : null}\n {entities.map(entity => {\n const metadata = entityIndexMetadata(entity);\n return (\n <DataList.RowLink\n key={`${entity.entityType}:${entity.entityId}`}\n to={getEntityHref(entity)}\n LinkComponent={LinkComponent}\n className=\"min-w-0\"\n >\n <DataList.Cell className=\"min-w-0 overflow-visible text-left\">\n <span className=\"sr-only\">Open entity {entity.entityId}</span>\n <span aria-hidden=\"true\" className=\"block overflow-clip text-ellipsis whitespace-nowrap\">\n {entity.entityId}\n </span>\n </DataList.Cell>\n <DataList.NumberCell>{metadata.traceCount}</DataList.NumberCell>\n <DataList.Cell>{metadata.signalsSet}</DataList.Cell>\n <DataList.Cell>\n <Status entity={entity} />\n </DataList.Cell>\n <DataList.Cell title={entity.updatedAt}>{metadata.updatedAt}</DataList.Cell>\n </DataList.RowLink>\n );\n })}\n </DataList>\n </section>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -17,9 +17,11 @@ const domains_auth_components_permissionDenied = require('../../../domains/auth/
17
17
  const domains_auth_components_sessionExpired = require('../../../domains/auth/components/session-expired.cjs.js');
18
18
  const Button = require('../../../Button-BfZzgZrA.cjs');
19
19
  const buttonsGroup = require('../../../buttons-group-C2lPe7sm.cjs');
20
- const dataListSkeleton = require('../../../data-list-skeleton-CfVsXhx1.cjs');
20
+ require('../../../data-list-_yDPF5wR.cjs');
21
+ const dataListSkeleton = require('../../../data-list-skeleton-maUWF7Ri.cjs');
22
+ require('../../../keyboard/keyboard-shortcuts-context.cjs.js');
21
23
  const EmptyState = require('../../../EmptyState-ChzkDnbJ.cjs');
22
- const listSearch = require('../../../list-search-xHadeMHl.cjs');
24
+ const listSearch = require('../../../list-search-C3yXcTRO.cjs');
23
25
  const select = require('../../../select-Cdz5I0A5.cjs');
24
26
  const query = require('@mastra/react/hooks/query');
25
27
 
@@ -1 +1 @@
1
- {"version":3,"file":"trace-intelligence-entity-index.cjs.js","sources":["../../../../src/ee/signals/components/trace-intelligence-entity-index.tsx"],"sourcesContent":["import type { SignalCatalogEntry, ThemeLearningEntity } from '@mastra/client-js';\nimport { Columns2, List } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nimport { useThemeEntities } from '../hooks';\nimport { TraceSignalSettingsButton, TraceSignalSettingsPanel } from '../settings/trace-signal-settings';\nimport { TraceIntelligenceExplainer } from '../trace-intelligence-explainer';\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { EntityIndexCompactGrid } from './entity-index-compact-grid';\nimport { EntityIndexList } from './entity-index-list';\nimport { filterAndSortEntities } from './entity-index-model';\nimport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\nimport { PermissionDenied } from '@/domains/auth/components/permission-denied';\nimport { SessionExpired } from '@/domains/auth/components/session-expired';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { ListSearch } from '@/ds/components/ListSearch';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { is401UnauthorizedError, is403ForbiddenError } from '@/utils/errors';\n\nexport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\n\nconst listColumns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface TraceIntelligenceEntityIndexProps {\n entityType: string;\n search: string;\n sort: TraceIntelligenceEntitySort;\n view: TraceIntelligenceEntityView;\n onSearchChange: (search: string) => void;\n onSortChange: (sort: TraceIntelligenceEntitySort) => void;\n onViewChange: (view: TraceIntelligenceEntityView) => void;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n headerAction?: ReactNode;\n}\n\nfunction EntityIndexError({ error }: { error: Error }) {\n if (is401UnauthorizedError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <SessionExpired />\n </div>\n );\n }\n if (is403ForbiddenError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <PermissionDenied resource=\"Trace Intelligence\" />\n </div>\n );\n }\n return (\n <div className=\"flex h-full items-center justify-center\">\n <EmptyState tone=\"error\" titleSlot=\"Failed to load Trace Intelligence\" descriptionSlot={error.message} />\n </div>\n );\n}\n\nfunction EntityIndexControls({\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n headerAction,\n signalCatalog,\n}: Pick<\n TraceIntelligenceEntityIndexProps,\n 'search' | 'sort' | 'view' | 'onSearchChange' | 'onSortChange' | 'onViewChange' | 'headerAction'\n> & { signalCatalog: readonly SignalCatalogEntry[] }) {\n return (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n <div className=\"max-w-120 flex-1\">\n <ListSearch\n value={search}\n onSearch={onSearchChange}\n label=\"Filter entities\"\n placeholder=\"Filter by entity identifier\"\n />\n </div>\n <div className=\"flex items-center justify-between gap-2 sm:ml-auto sm:justify-end\">\n <TraceIntelligenceExplainer signalCatalog={signalCatalog} />\n <Select<TraceIntelligenceEntitySort> value={sort} onValueChange={onSortChange}>\n <SelectTrigger aria-label=\"Sort entities\" size=\"md\" variant=\"ghost\" className=\"w-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent align=\"end\">\n <SelectItem value=\"default\">Default order</SelectItem>\n <SelectItem value=\"entity-asc\">Entity: A–Z</SelectItem>\n <SelectItem value=\"entity-desc\">Entity: Z–A</SelectItem>\n </SelectContent>\n </Select>\n {headerAction}\n <ButtonsGroup aria-label=\"Entities view\">\n <Button\n type=\"button\"\n variant={view === 'list' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"List view\"\n aria-pressed={view === 'list'}\n onClick={() => onViewChange('list')}\n >\n <List />\n </Button>\n <Button\n type=\"button\"\n variant={view === 'compact' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"Compact view\"\n aria-pressed={view === 'compact'}\n onClick={() => onViewChange('compact')}\n >\n <Columns2 />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n );\n}\n\nexport function TraceIntelligenceEntityIndex({\n entityType,\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n getEntityHref,\n headerAction,\n}: TraceIntelligenceEntityIndexProps) {\n const entitiesQuery = useThemeEntities(entityType);\n const { LinkComponent, signalCatalog: contextSignalCatalog, signalManagement } = useTraceIntelligence();\n const [settingsOpen, setSettingsOpen] = useState(false);\n\n if (entitiesQuery.error) return <EntityIndexError error={entitiesQuery.error} />;\n\n const sourceEntities = entitiesQuery.data?.entities ?? [];\n const signalCatalog =\n sourceEntities.find(entity => entity.signalCatalog?.length)?.signalCatalog ?? contextSignalCatalog;\n const entities = filterAndSortEntities(sourceEntities, search, sort);\n const hasSearch = search.trim().length > 0;\n let body = (\n <EntityIndexList\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n if (entitiesQuery.isPending) {\n body = (\n <div role=\"status\" aria-label=\"Loading Trace Intelligence entities\">\n <DataListSkeleton columns={listColumns} />\n </div>\n );\n } else if (entitiesQuery.data.entities.length === 0 && !hasSearch) {\n body = (\n <EmptyState\n titleSlot=\"No Trace Intelligence entities yet\"\n descriptionSlot=\"Entities appear after Trace Intelligence begins collecting generated signal data.\"\n />\n );\n } else if (view === 'compact') {\n body = (\n <EntityIndexCompactGrid\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n }\n\n return (\n <div className=\"mx-auto grid size-full min-h-0 max-w-7xl grid-rows-[auto_minmax(0,1fr)]\">\n <div className=\"pb-3\">\n <EntityIndexControls\n search={search}\n sort={sort}\n view={view}\n onSearchChange={onSearchChange}\n onSortChange={onSortChange}\n onViewChange={onViewChange}\n signalCatalog={signalCatalog}\n headerAction={\n headerAction || signalManagement ? (\n <>\n {headerAction}\n {signalManagement ? (\n <TraceSignalSettingsButton open={settingsOpen} onClick={() => setSettingsOpen(open => !open)} />\n ) : null}\n </>\n ) : undefined\n }\n />\n </div>\n <div\n className={\n settingsOpen\n ? 'grid max-h-full min-h-0 grid-cols-1 items-start gap-4 lg:grid-cols-[1fr_1fr]'\n : 'grid min-h-0 grid-cols-1'\n }\n >\n <div className=\"min-h-0 min-w-0\">{body}</div>\n {settingsOpen ? <TraceSignalSettingsPanel onClose={() => setSettingsOpen(false)} /> : null}\n </div>\n </div>\n );\n}\n"],"names":["is401UnauthorizedError","jsx","SessionExpired","is403ForbiddenError","PermissionDenied","EmptyState","jsxs","ListSearch","TraceIntelligenceExplainer","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","ButtonsGroup","Button","List","Columns2","useThemeEntities","useTraceIntelligence","useState","filterAndSortEntities","EntityIndexList","DataListSkeleton","EntityIndexCompactGrid","Fragment","TraceSignalSettingsButton","TraceSignalSettingsPanel"],"mappings":"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"}
1
+ {"version":3,"file":"trace-intelligence-entity-index.cjs.js","sources":["../../../../src/ee/signals/components/trace-intelligence-entity-index.tsx"],"sourcesContent":["import type { SignalCatalogEntry, ThemeLearningEntity } from '@mastra/client-js';\nimport { Columns2, List } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nimport { useThemeEntities } from '../hooks';\nimport { TraceSignalSettingsButton, TraceSignalSettingsPanel } from '../settings/trace-signal-settings';\nimport { TraceIntelligenceExplainer } from '../trace-intelligence-explainer';\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { EntityIndexCompactGrid } from './entity-index-compact-grid';\nimport { EntityIndexList } from './entity-index-list';\nimport { filterAndSortEntities } from './entity-index-model';\nimport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\nimport { PermissionDenied } from '@/domains/auth/components/permission-denied';\nimport { SessionExpired } from '@/domains/auth/components/session-expired';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { ListSearch } from '@/ds/components/ListSearch';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { is401UnauthorizedError, is403ForbiddenError } from '@/utils/errors';\n\nexport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\n\nconst listColumns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface TraceIntelligenceEntityIndexProps {\n entityType: string;\n search: string;\n sort: TraceIntelligenceEntitySort;\n view: TraceIntelligenceEntityView;\n onSearchChange: (search: string) => void;\n onSortChange: (sort: TraceIntelligenceEntitySort) => void;\n onViewChange: (view: TraceIntelligenceEntityView) => void;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n headerAction?: ReactNode;\n}\n\nfunction EntityIndexError({ error }: { error: Error }) {\n if (is401UnauthorizedError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <SessionExpired />\n </div>\n );\n }\n if (is403ForbiddenError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <PermissionDenied resource=\"Trace Intelligence\" />\n </div>\n );\n }\n return (\n <div className=\"flex h-full items-center justify-center\">\n <EmptyState tone=\"error\" titleSlot=\"Failed to load Trace Intelligence\" descriptionSlot={error.message} />\n </div>\n );\n}\n\nfunction EntityIndexControls({\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n headerAction,\n signalCatalog,\n}: Pick<\n TraceIntelligenceEntityIndexProps,\n 'search' | 'sort' | 'view' | 'onSearchChange' | 'onSortChange' | 'onViewChange' | 'headerAction'\n> & { signalCatalog: readonly SignalCatalogEntry[] }) {\n return (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n <div className=\"max-w-120 flex-1\">\n <ListSearch\n value={search}\n onSearch={onSearchChange}\n label=\"Filter entities\"\n placeholder=\"Filter by entity identifier\"\n />\n </div>\n <div className=\"flex items-center justify-between gap-2 sm:ml-auto sm:justify-end\">\n <TraceIntelligenceExplainer signalCatalog={signalCatalog} />\n <Select<TraceIntelligenceEntitySort> value={sort} onValueChange={onSortChange}>\n <SelectTrigger aria-label=\"Sort entities\" size=\"md\" variant=\"ghost\" className=\"w-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent align=\"end\">\n <SelectItem value=\"default\">Default order</SelectItem>\n <SelectItem value=\"entity-asc\">Entity: A–Z</SelectItem>\n <SelectItem value=\"entity-desc\">Entity: Z–A</SelectItem>\n </SelectContent>\n </Select>\n {headerAction}\n <ButtonsGroup aria-label=\"Entities view\">\n <Button\n type=\"button\"\n variant={view === 'list' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"List view\"\n aria-pressed={view === 'list'}\n onClick={() => onViewChange('list')}\n >\n <List />\n </Button>\n <Button\n type=\"button\"\n variant={view === 'compact' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"Compact view\"\n aria-pressed={view === 'compact'}\n onClick={() => onViewChange('compact')}\n >\n <Columns2 />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n );\n}\n\nexport function TraceIntelligenceEntityIndex({\n entityType,\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n getEntityHref,\n headerAction,\n}: TraceIntelligenceEntityIndexProps) {\n const entitiesQuery = useThemeEntities(entityType);\n const { LinkComponent, signalCatalog: contextSignalCatalog, signalManagement } = useTraceIntelligence();\n const [settingsOpen, setSettingsOpen] = useState(false);\n\n if (entitiesQuery.error) return <EntityIndexError error={entitiesQuery.error} />;\n\n const sourceEntities = entitiesQuery.data?.entities ?? [];\n const signalCatalog =\n sourceEntities.find(entity => entity.signalCatalog?.length)?.signalCatalog ?? contextSignalCatalog;\n const entities = filterAndSortEntities(sourceEntities, search, sort);\n const hasSearch = search.trim().length > 0;\n let body = (\n <EntityIndexList\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n if (entitiesQuery.isPending) {\n body = (\n <div role=\"status\" aria-label=\"Loading Trace Intelligence entities\">\n <DataListSkeleton columns={listColumns} />\n </div>\n );\n } else if (entitiesQuery.data.entities.length === 0 && !hasSearch) {\n body = (\n <EmptyState\n titleSlot=\"No Trace Intelligence entities yet\"\n descriptionSlot=\"Entities appear after Trace Intelligence begins collecting generated signal data.\"\n />\n );\n } else if (view === 'compact') {\n body = (\n <EntityIndexCompactGrid\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n }\n\n return (\n <div className=\"mx-auto grid size-full min-h-0 max-w-7xl grid-rows-[auto_minmax(0,1fr)]\">\n <div className=\"pb-3\">\n <EntityIndexControls\n search={search}\n sort={sort}\n view={view}\n onSearchChange={onSearchChange}\n onSortChange={onSortChange}\n onViewChange={onViewChange}\n signalCatalog={signalCatalog}\n headerAction={\n headerAction || signalManagement ? (\n <>\n {headerAction}\n {signalManagement ? (\n <TraceSignalSettingsButton open={settingsOpen} onClick={() => setSettingsOpen(open => !open)} />\n ) : null}\n </>\n ) : undefined\n }\n />\n </div>\n <div\n className={\n settingsOpen\n ? 'grid max-h-full min-h-0 grid-cols-1 items-start gap-4 lg:grid-cols-[1fr_1fr]'\n : 'grid min-h-0 grid-cols-1'\n }\n >\n <div className=\"min-h-0 min-w-0\">{body}</div>\n {settingsOpen ? <TraceSignalSettingsPanel onClose={() => setSettingsOpen(false)} /> : null}\n </div>\n </div>\n );\n}\n"],"names":["is401UnauthorizedError","jsx","SessionExpired","is403ForbiddenError","PermissionDenied","EmptyState","jsxs","ListSearch","TraceIntelligenceExplainer","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","ButtonsGroup","Button","List","Columns2","useThemeEntities","useTraceIntelligence","useState","filterAndSortEntities","EntityIndexList","DataListSkeleton","EntityIndexCompactGrid","Fragment","TraceSignalSettingsButton","TraceSignalSettingsPanel"],"mappings":"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"}
@@ -13,10 +13,12 @@ import { PermissionDenied } from '../../../domains/auth/components/permission-de
13
13
  import { SessionExpired } from '../../../domains/auth/components/session-expired.es.js';
14
14
  import { B as Button } from '../../../Button-C8QDEN9j.js';
15
15
  import { B as ButtonsGroup } from '../../../buttons-group-BU9ErJSH.js';
16
- import { D as DataListSkeleton } from '../../../data-list-skeleton-BmsDYJrA.js';
16
+ import '../../../data-list-DDGpWucH.js';
17
+ import { D as DataListSkeleton } from '../../../data-list-skeleton-CJFwZBlW.js';
18
+ import '../../../keyboard/keyboard-shortcuts-context.es.js';
17
19
  import { E as EmptyState } from '../../../EmptyState-Cu6JKbrk.js';
18
- import { L as ListSearch } from '../../../list-search-BNnMwbpv.js';
19
- import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../../../select-N2lgBRsg.js';
20
+ import { L as ListSearch } from '../../../list-search-CmPRFDsn.js';
21
+ import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../../../select-BGAiIHnS.js';
20
22
  import { is401UnauthorizedError, is403ForbiddenError } from '@mastra/react/hooks/query';
21
23
 
22
24
  const listColumns = "minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)";
@@ -1 +1 @@
1
- {"version":3,"file":"trace-intelligence-entity-index.es.js","sources":["../../../../src/ee/signals/components/trace-intelligence-entity-index.tsx"],"sourcesContent":["import type { SignalCatalogEntry, ThemeLearningEntity } from '@mastra/client-js';\nimport { Columns2, List } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nimport { useThemeEntities } from '../hooks';\nimport { TraceSignalSettingsButton, TraceSignalSettingsPanel } from '../settings/trace-signal-settings';\nimport { TraceIntelligenceExplainer } from '../trace-intelligence-explainer';\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { EntityIndexCompactGrid } from './entity-index-compact-grid';\nimport { EntityIndexList } from './entity-index-list';\nimport { filterAndSortEntities } from './entity-index-model';\nimport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\nimport { PermissionDenied } from '@/domains/auth/components/permission-denied';\nimport { SessionExpired } from '@/domains/auth/components/session-expired';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { ListSearch } from '@/ds/components/ListSearch';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { is401UnauthorizedError, is403ForbiddenError } from '@/utils/errors';\n\nexport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\n\nconst listColumns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface TraceIntelligenceEntityIndexProps {\n entityType: string;\n search: string;\n sort: TraceIntelligenceEntitySort;\n view: TraceIntelligenceEntityView;\n onSearchChange: (search: string) => void;\n onSortChange: (sort: TraceIntelligenceEntitySort) => void;\n onViewChange: (view: TraceIntelligenceEntityView) => void;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n headerAction?: ReactNode;\n}\n\nfunction EntityIndexError({ error }: { error: Error }) {\n if (is401UnauthorizedError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <SessionExpired />\n </div>\n );\n }\n if (is403ForbiddenError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <PermissionDenied resource=\"Trace Intelligence\" />\n </div>\n );\n }\n return (\n <div className=\"flex h-full items-center justify-center\">\n <EmptyState tone=\"error\" titleSlot=\"Failed to load Trace Intelligence\" descriptionSlot={error.message} />\n </div>\n );\n}\n\nfunction EntityIndexControls({\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n headerAction,\n signalCatalog,\n}: Pick<\n TraceIntelligenceEntityIndexProps,\n 'search' | 'sort' | 'view' | 'onSearchChange' | 'onSortChange' | 'onViewChange' | 'headerAction'\n> & { signalCatalog: readonly SignalCatalogEntry[] }) {\n return (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n <div className=\"max-w-120 flex-1\">\n <ListSearch\n value={search}\n onSearch={onSearchChange}\n label=\"Filter entities\"\n placeholder=\"Filter by entity identifier\"\n />\n </div>\n <div className=\"flex items-center justify-between gap-2 sm:ml-auto sm:justify-end\">\n <TraceIntelligenceExplainer signalCatalog={signalCatalog} />\n <Select<TraceIntelligenceEntitySort> value={sort} onValueChange={onSortChange}>\n <SelectTrigger aria-label=\"Sort entities\" size=\"md\" variant=\"ghost\" className=\"w-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent align=\"end\">\n <SelectItem value=\"default\">Default order</SelectItem>\n <SelectItem value=\"entity-asc\">Entity: A–Z</SelectItem>\n <SelectItem value=\"entity-desc\">Entity: Z–A</SelectItem>\n </SelectContent>\n </Select>\n {headerAction}\n <ButtonsGroup aria-label=\"Entities view\">\n <Button\n type=\"button\"\n variant={view === 'list' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"List view\"\n aria-pressed={view === 'list'}\n onClick={() => onViewChange('list')}\n >\n <List />\n </Button>\n <Button\n type=\"button\"\n variant={view === 'compact' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"Compact view\"\n aria-pressed={view === 'compact'}\n onClick={() => onViewChange('compact')}\n >\n <Columns2 />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n );\n}\n\nexport function TraceIntelligenceEntityIndex({\n entityType,\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n getEntityHref,\n headerAction,\n}: TraceIntelligenceEntityIndexProps) {\n const entitiesQuery = useThemeEntities(entityType);\n const { LinkComponent, signalCatalog: contextSignalCatalog, signalManagement } = useTraceIntelligence();\n const [settingsOpen, setSettingsOpen] = useState(false);\n\n if (entitiesQuery.error) return <EntityIndexError error={entitiesQuery.error} />;\n\n const sourceEntities = entitiesQuery.data?.entities ?? [];\n const signalCatalog =\n sourceEntities.find(entity => entity.signalCatalog?.length)?.signalCatalog ?? contextSignalCatalog;\n const entities = filterAndSortEntities(sourceEntities, search, sort);\n const hasSearch = search.trim().length > 0;\n let body = (\n <EntityIndexList\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n if (entitiesQuery.isPending) {\n body = (\n <div role=\"status\" aria-label=\"Loading Trace Intelligence entities\">\n <DataListSkeleton columns={listColumns} />\n </div>\n );\n } else if (entitiesQuery.data.entities.length === 0 && !hasSearch) {\n body = (\n <EmptyState\n titleSlot=\"No Trace Intelligence entities yet\"\n descriptionSlot=\"Entities appear after Trace Intelligence begins collecting generated signal data.\"\n />\n );\n } else if (view === 'compact') {\n body = (\n <EntityIndexCompactGrid\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n }\n\n return (\n <div className=\"mx-auto grid size-full min-h-0 max-w-7xl grid-rows-[auto_minmax(0,1fr)]\">\n <div className=\"pb-3\">\n <EntityIndexControls\n search={search}\n sort={sort}\n view={view}\n onSearchChange={onSearchChange}\n onSortChange={onSortChange}\n onViewChange={onViewChange}\n signalCatalog={signalCatalog}\n headerAction={\n headerAction || signalManagement ? (\n <>\n {headerAction}\n {signalManagement ? (\n <TraceSignalSettingsButton open={settingsOpen} onClick={() => setSettingsOpen(open => !open)} />\n ) : null}\n </>\n ) : undefined\n }\n />\n </div>\n <div\n className={\n settingsOpen\n ? 'grid max-h-full min-h-0 grid-cols-1 items-start gap-4 lg:grid-cols-[1fr_1fr]'\n : 'grid min-h-0 grid-cols-1'\n }\n >\n <div className=\"min-h-0 min-w-0\">{body}</div>\n {settingsOpen ? <TraceSignalSettingsPanel onClose={() => setSettingsOpen(false)} /> : null}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace-intelligence-entity-index.es.js","sources":["../../../../src/ee/signals/components/trace-intelligence-entity-index.tsx"],"sourcesContent":["import type { SignalCatalogEntry, ThemeLearningEntity } from '@mastra/client-js';\nimport { Columns2, List } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nimport { useThemeEntities } from '../hooks';\nimport { TraceSignalSettingsButton, TraceSignalSettingsPanel } from '../settings/trace-signal-settings';\nimport { TraceIntelligenceExplainer } from '../trace-intelligence-explainer';\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { EntityIndexCompactGrid } from './entity-index-compact-grid';\nimport { EntityIndexList } from './entity-index-list';\nimport { filterAndSortEntities } from './entity-index-model';\nimport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\nimport { PermissionDenied } from '@/domains/auth/components/permission-denied';\nimport { SessionExpired } from '@/domains/auth/components/session-expired';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { ListSearch } from '@/ds/components/ListSearch';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { is401UnauthorizedError, is403ForbiddenError } from '@/utils/errors';\n\nexport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\n\nconst listColumns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface TraceIntelligenceEntityIndexProps {\n entityType: string;\n search: string;\n sort: TraceIntelligenceEntitySort;\n view: TraceIntelligenceEntityView;\n onSearchChange: (search: string) => void;\n onSortChange: (sort: TraceIntelligenceEntitySort) => void;\n onViewChange: (view: TraceIntelligenceEntityView) => void;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n headerAction?: ReactNode;\n}\n\nfunction EntityIndexError({ error }: { error: Error }) {\n if (is401UnauthorizedError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <SessionExpired />\n </div>\n );\n }\n if (is403ForbiddenError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <PermissionDenied resource=\"Trace Intelligence\" />\n </div>\n );\n }\n return (\n <div className=\"flex h-full items-center justify-center\">\n <EmptyState tone=\"error\" titleSlot=\"Failed to load Trace Intelligence\" descriptionSlot={error.message} />\n </div>\n );\n}\n\nfunction EntityIndexControls({\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n headerAction,\n signalCatalog,\n}: Pick<\n TraceIntelligenceEntityIndexProps,\n 'search' | 'sort' | 'view' | 'onSearchChange' | 'onSortChange' | 'onViewChange' | 'headerAction'\n> & { signalCatalog: readonly SignalCatalogEntry[] }) {\n return (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n <div className=\"max-w-120 flex-1\">\n <ListSearch\n value={search}\n onSearch={onSearchChange}\n label=\"Filter entities\"\n placeholder=\"Filter by entity identifier\"\n />\n </div>\n <div className=\"flex items-center justify-between gap-2 sm:ml-auto sm:justify-end\">\n <TraceIntelligenceExplainer signalCatalog={signalCatalog} />\n <Select<TraceIntelligenceEntitySort> value={sort} onValueChange={onSortChange}>\n <SelectTrigger aria-label=\"Sort entities\" size=\"md\" variant=\"ghost\" className=\"w-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent align=\"end\">\n <SelectItem value=\"default\">Default order</SelectItem>\n <SelectItem value=\"entity-asc\">Entity: A–Z</SelectItem>\n <SelectItem value=\"entity-desc\">Entity: Z–A</SelectItem>\n </SelectContent>\n </Select>\n {headerAction}\n <ButtonsGroup aria-label=\"Entities view\">\n <Button\n type=\"button\"\n variant={view === 'list' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"List view\"\n aria-pressed={view === 'list'}\n onClick={() => onViewChange('list')}\n >\n <List />\n </Button>\n <Button\n type=\"button\"\n variant={view === 'compact' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"Compact view\"\n aria-pressed={view === 'compact'}\n onClick={() => onViewChange('compact')}\n >\n <Columns2 />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n );\n}\n\nexport function TraceIntelligenceEntityIndex({\n entityType,\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n getEntityHref,\n headerAction,\n}: TraceIntelligenceEntityIndexProps) {\n const entitiesQuery = useThemeEntities(entityType);\n const { LinkComponent, signalCatalog: contextSignalCatalog, signalManagement } = useTraceIntelligence();\n const [settingsOpen, setSettingsOpen] = useState(false);\n\n if (entitiesQuery.error) return <EntityIndexError error={entitiesQuery.error} />;\n\n const sourceEntities = entitiesQuery.data?.entities ?? [];\n const signalCatalog =\n sourceEntities.find(entity => entity.signalCatalog?.length)?.signalCatalog ?? contextSignalCatalog;\n const entities = filterAndSortEntities(sourceEntities, search, sort);\n const hasSearch = search.trim().length > 0;\n let body = (\n <EntityIndexList\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n if (entitiesQuery.isPending) {\n body = (\n <div role=\"status\" aria-label=\"Loading Trace Intelligence entities\">\n <DataListSkeleton columns={listColumns} />\n </div>\n );\n } else if (entitiesQuery.data.entities.length === 0 && !hasSearch) {\n body = (\n <EmptyState\n titleSlot=\"No Trace Intelligence entities yet\"\n descriptionSlot=\"Entities appear after Trace Intelligence begins collecting generated signal data.\"\n />\n );\n } else if (view === 'compact') {\n body = (\n <EntityIndexCompactGrid\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n }\n\n return (\n <div className=\"mx-auto grid size-full min-h-0 max-w-7xl grid-rows-[auto_minmax(0,1fr)]\">\n <div className=\"pb-3\">\n <EntityIndexControls\n search={search}\n sort={sort}\n view={view}\n onSearchChange={onSearchChange}\n onSortChange={onSortChange}\n onViewChange={onViewChange}\n signalCatalog={signalCatalog}\n headerAction={\n headerAction || signalManagement ? (\n <>\n {headerAction}\n {signalManagement ? (\n <TraceSignalSettingsButton open={settingsOpen} onClick={() => setSettingsOpen(open => !open)} />\n ) : null}\n </>\n ) : undefined\n }\n />\n </div>\n <div\n className={\n settingsOpen\n ? 'grid max-h-full min-h-0 grid-cols-1 items-start gap-4 lg:grid-cols-[1fr_1fr]'\n : 'grid min-h-0 grid-cols-1'\n }\n >\n <div className=\"min-h-0 min-w-0\">{body}</div>\n {settingsOpen ? <TraceSignalSettingsPanel onClose={() => setSettingsOpen(false)} /> : null}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAM,WAAA,GAAc,gGAAA;AAcpB,SAAS,gBAAA,CAAiB,EAAE,KAAA,EAAM,EAAqB;AACrD,EAAA,IAAI,sBAAA,CAAuB,KAAK,CAAA,EAAG;AACjC,IAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAU,yCAAA,EACb,QAAA,kBAAA,GAAA,CAAC,kBAAe,CAAA,EAClB,CAAA;AAAA,EAEJ;AACA,EAAA,IAAI,mBAAA,CAAoB,KAAK,CAAA,EAAG;AAC9B,IAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EAAU,yCAAA,EACb,8BAAC,gBAAA,EAAA,EAAiB,QAAA,EAAS,sBAAqB,CAAA,EAClD,CAAA;AAAA,EAEJ;AACA,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yCAAA,EACb,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,mCAAA,EAAoC,eAAA,EAAiB,KAAA,CAAM,SAAS,CAAA,EACzG,CAAA;AAEJ;AAEA,SAAS,mBAAA,CAAoB;AAAA,EAC3B,MAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAGsD;AACpD,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iDAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kBAAA,EACb,QAAA,kBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,MAAA;AAAA,QACP,QAAA,EAAU,cAAA;AAAA,QACV,KAAA,EAAM,iBAAA;AAAA,QACN,WAAA,EAAY;AAAA;AAAA,KACd,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mEAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,8BAA2B,aAAA,EAA8B,CAAA;AAAA,sBAC1D,IAAA,CAAC,MAAA,EAAA,EAAoC,KAAA,EAAO,IAAA,EAAM,eAAe,YAAA,EAC/D,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,YAAA,EAAW,eAAA,EAAgB,IAAA,EAAK,IAAA,EAAK,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,QAAA,EAC5E,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,CAAA,EACf,CAAA;AAAA,wBACA,IAAA,CAAC,aAAA,EAAA,EAAc,KAAA,EAAM,KAAA,EACnB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,UAAA,EAAA,EAAW,KAAA,EAAM,SAAA,EAAU,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,0BACzC,GAAA,CAAC,UAAA,EAAA,EAAW,KAAA,EAAM,YAAA,EAAa,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,0BAC1C,GAAA,CAAC,UAAA,EAAA,EAAW,KAAA,EAAM,aAAA,EAAc,QAAA,EAAA,aAAA,EAAW;AAAA,SAAA,EAC7C;AAAA,OAAA,EACF,CAAA;AAAA,MACC,YAAA;AAAA,sBACD,IAAA,CAAC,YAAA,EAAA,EAAa,YAAA,EAAW,eAAA,EACvB,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,IAAA,KAAS,MAAA,GAAS,SAAA,GAAY,SAAA;AAAA,YACvC,IAAA,EAAK,SAAA;AAAA,YACL,OAAA,EAAQ,WAAA;AAAA,YACR,gBAAc,IAAA,KAAS,MAAA;AAAA,YACvB,OAAA,EAAS,MAAM,YAAA,CAAa,MAAM,CAAA;AAAA,YAElC,8BAAC,IAAA,EAAA,EAAK;AAAA;AAAA,SACR;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,IAAA,KAAS,SAAA,GAAY,SAAA,GAAY,SAAA;AAAA,YAC1C,IAAA,EAAK,SAAA;AAAA,YACL,OAAA,EAAQ,cAAA;AAAA,YACR,gBAAc,IAAA,KAAS,SAAA;AAAA,YACvB,OAAA,EAAS,MAAM,YAAA,CAAa,SAAS,CAAA;AAAA,YAErC,8BAAC,QAAA,EAAA,EAAS;AAAA;AAAA;AACZ,OAAA,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAEO,SAAS,4BAAA,CAA6B;AAAA,EAC3C,UAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,EAAsC;AACpC,EAAA,MAAM,aAAA,GAAgB,iBAAiB,UAAU,CAAA;AACjD,EAAA,MAAM,EAAE,aAAA,EAAe,aAAA,EAAe,oBAAA,EAAsB,gBAAA,KAAqB,oBAAA,EAAqB;AACtG,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,KAAK,CAAA;AAEtD,EAAA,IAAI,cAAc,KAAA,EAAO,2BAAQ,gBAAA,EAAA,EAAiB,KAAA,EAAO,cAAc,KAAA,EAAO,CAAA;AAE9E,EAAA,MAAM,cAAA,GAAiB,aAAA,CAAc,IAAA,EAAM,QAAA,IAAY,EAAC;AACxD,EAAA,MAAM,aAAA,GACJ,eAAe,IAAA,CAAK,CAAA,MAAA,KAAU,OAAO,aAAA,EAAe,MAAM,GAAG,aAAA,IAAiB,oBAAA;AAChF,EAAA,MAAM,QAAA,GAAW,qBAAA,CAAsB,cAAA,EAAgB,MAAA,EAAQ,IAAI,CAAA;AACnE,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA;AACzC,EAAA,IAAI,IAAA,mBACF,GAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,QAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA;AAAA;AAAA,GACF;AAEF,EAAA,IAAI,cAAc,SAAA,EAAW;AAC3B,IAAA,IAAA,mBACE,GAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,uCAC5B,QAAA,kBAAA,GAAA,CAAC,gBAAA,EAAA,EAAiB,OAAA,EAAS,WAAA,EAAa,CAAA,EAC1C,CAAA;AAAA,EAEJ,WAAW,aAAA,CAAc,IAAA,CAAK,SAAS,MAAA,KAAW,CAAA,IAAK,CAAC,SAAA,EAAW;AACjE,IAAA,IAAA,mBACE,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,oCAAA;AAAA,QACV,eAAA,EAAgB;AAAA;AAAA,KAClB;AAAA,EAEJ,CAAA,MAAA,IAAW,SAAS,SAAA,EAAW;AAC7B,IAAA,IAAA,mBACE,GAAA;AAAA,MAAC,sBAAA;AAAA,MAAA;AAAA,QACC,QAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAA;AAAA,QACA;AAAA;AAAA,KACF;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yEAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,MAAA,EACb,QAAA,kBAAA,GAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,MAAA;AAAA,QACA,IAAA;AAAA,QACA,IAAA;AAAA,QACA,cAAA;AAAA,QACA,YAAA;AAAA,QACA,YAAA;AAAA,QACA,aAAA;AAAA,QACA,YAAA,EACE,YAAA,IAAgB,gBAAA,mBACd,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UACA,gBAAA,mBACC,GAAA,CAAC,yBAAA,EAAA,EAA0B,IAAA,EAAM,YAAA,EAAc,OAAA,EAAS,MAAM,eAAA,CAAgB,CAAA,IAAA,KAAQ,CAAC,IAAI,CAAA,EAAG,CAAA,GAC5F;AAAA,SAAA,EACN,CAAA,GACE;AAAA;AAAA,KAER,EACF,CAAA;AAAA,oBACA,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EACE,eACI,8EAAA,GACA,0BAAA;AAAA,QAGN,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAmB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,UACtC,YAAA,uBAAgB,wBAAA,EAAA,EAAyB,OAAA,EAAS,MAAM,eAAA,CAAgB,KAAK,GAAG,CAAA,GAAK;AAAA;AAAA;AAAA;AACxF,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -11,7 +11,7 @@ require('@tanstack/react-query');
11
11
  require('./trace-intelligence-context.cjs.js');
12
12
  const ee_signals_signalFormatting = require('./signal-formatting.cjs.js');
13
13
  const ee_signals_traceInsightView = require('./trace-insight-view.cjs.js');
14
- const drawer = require('../../drawer-DE2b3eld.cjs');
14
+ const drawer = require('../../drawer-CeUYCG-S.cjs');
15
15
  const Txt = require('../../Txt-DXjXpX9r.cjs');
16
16
  const primitives_raisedSurface = require('../../primitives/raised-surface.cjs.js');
17
17
  const utils_cn = require('../../cn-TqD01zH-.cjs');
@@ -7,7 +7,7 @@ import '@tanstack/react-query';
7
7
  import './trace-intelligence-context.es.js';
8
8
  import { shareSentence } from './signal-formatting.es.js';
9
9
  import { TraceInsightView } from './trace-insight-view.es.js';
10
- import { D as Drawer, d as DrawerContent, g as DrawerHeader, o as DrawerTitle, e as DrawerDescription, b as DrawerBody } from '../../drawer-B-t4ydEh.js';
10
+ import { D as Drawer, d as DrawerContent, g as DrawerHeader, o as DrawerTitle, e as DrawerDescription, b as DrawerBody } from '../../drawer-CZlqOjd2.js';
11
11
  import { T as Txt } from '../../Txt-BuzYj7Vy.js';
12
12
  import { raisedSurfaceStyle } from '../../primitives/raised-surface.es.js';
13
13
  import { c as cn } from '../../cn-coERSHz5.js';
@@ -4,15 +4,14 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
- const dialog = require('../../../dialog-wL-fuFON.cjs');
7
+ const dialog = require('../../../dialog-DQI9ChYf.cjs');
8
8
  const field = require('../../../field-D1SVMPMz.cjs');
9
- require('../../../field-control-aria-WzMGs0A4.cjs');
10
9
  const form = require('../../../form-CsSBTIbV.cjs');
11
10
  const input = require('../../../input-zdqTky_C.cjs');
12
11
  const Notice = require('../../../Notice-c8dMiAtZ.cjs');
13
12
  const textarea = require('../../../textarea-Cy51PMd4.cjs');
14
13
  const Txt = require('../../../Txt-DXjXpX9r.cjs');
15
- const dialogAction = require('../../../dialog-action-CcMhvjM-.cjs');
14
+ const dialogAction = require('../../../dialog-action-gdo9CwUv.cjs');
16
15
 
17
16
  const reservedNames = /* @__PURE__ */ new Set([
18
17
  "goal",
@@ -1 +1 @@
1
- {"version":3,"file":"signal-definition-form-dialog.cjs.js","sources":["../../../../src/ee/signals/settings/signal-definition-form-dialog.tsx"],"sourcesContent":["import type {\n CreateTraceSignalDefinitionInput,\n TraceSignalDefinition,\n UpdateTraceSignalDefinitionInput,\n} from '@mastra/client-js';\nimport { useId, useState } from 'react';\n\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { Form } from '@/ds/components/Form';\nimport { Input } from '@/ds/components/Input';\nimport { Notice } from '@/ds/components/Notice';\nimport { Textarea } from '@/ds/components/Textarea';\nimport { Txt } from '@/ds/components/Txt';\n\nconst reservedNames = new Set([\n 'goal',\n 'sentiment',\n 'behavior',\n 'outcome',\n 'intent',\n 'summary',\n 'tags',\n 'theme',\n 'noise',\n]);\n\nexport interface SignalDefinitionFormDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n definition?: TraceSignalDefinition;\n error?: string;\n pending: boolean;\n onCreate: (input: CreateTraceSignalDefinitionInput) => Promise<void>;\n onUpdate: (id: string, input: UpdateTraceSignalDefinitionInput) => Promise<void>;\n}\n\ntype FormValue = CreateTraceSignalDefinitionInput;\ntype FormErrors = Partial<Record<keyof FormValue, string>>;\n\nfunction initialValue(definition?: TraceSignalDefinition): FormValue {\n return definition\n ? {\n name: definition.name,\n displayLabel: definition.displayLabel,\n description: definition.description,\n taskPrompt: definition.taskPrompt,\n }\n : {\n name: '',\n displayLabel: '',\n description: '',\n taskPrompt: '',\n };\n}\n\nfunction validate(value: FormValue, editing: boolean): FormErrors {\n const errors: FormErrors = {};\n if (!editing && (!/^[a-z][a-z0-9_-]{1,31}$/.test(value.name) || reservedNames.has(value.name))) {\n errors.name = 'Use an unreserved lowercase slug of 2–32 letters, numbers, underscores, or hyphens.';\n }\n if (!value.displayLabel.trim()) errors.displayLabel = 'Display label is required.';\n if (!value.taskPrompt.trim() || value.taskPrompt.length > 2000) {\n errors.taskPrompt = 'Signal instructions are required and must be at most 2,000 characters.';\n }\n return errors;\n}\n\nexport function SignalDefinitionFormDialog({\n open,\n onOpenChange,\n definition,\n error,\n pending,\n onCreate,\n onUpdate,\n}: SignalDefinitionFormDialogProps) {\n const formId = useId();\n const [value, setValue] = useState(() => initialValue(definition));\n const [validationErrors, setValidationErrors] = useState<FormErrors>({});\n const editing = Boolean(definition);\n\n const setField = <Key extends keyof FormValue>(key: Key, fieldValue: FormValue[Key]) => {\n setValue(current => ({ ...current, [key]: fieldValue }));\n setValidationErrors(current => ({ ...current, [key]: undefined }));\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} pending={pending}>\n <DialogContent size=\"lg\">\n <DialogHeader>\n <DialogTitle>{editing ? 'Edit custom signal' : 'Create custom signal'}</DialogTitle>\n <DialogDescription>\n Definitions belong to the organization. Every signal receives all available bounded trace context.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <Form\n id={formId}\n onSubmit={event => {\n event.preventDefault();\n const errors = validate(value, editing);\n setValidationErrors(errors);\n if (Object.keys(errors).length > 0) return;\n const action = definition\n ? onUpdate(definition.id, {\n displayLabel: value.displayLabel,\n description: value.description,\n taskPrompt: value.taskPrompt,\n })\n : onCreate(value);\n void action.then(() => onOpenChange(false)).catch(() => undefined);\n }}\n >\n <Field invalid={Boolean(validationErrors.name)} disabled={editing || pending}>\n <FieldLabel>Signal name</FieldLabel>\n <Input\n name=\"name\"\n placeholder=\"handoff_quality\"\n value={value.name}\n onChange={event => setField('name', event.target.value)}\n />\n <FieldDescription>A stable lowercase slug. It cannot be changed after creation.</FieldDescription>\n <FieldError>{validationErrors.name}</FieldError>\n </Field>\n <Field invalid={Boolean(validationErrors.displayLabel)} disabled={pending}>\n <FieldLabel>Display label</FieldLabel>\n <Input\n name=\"displayLabel\"\n placeholder=\"Handoff quality\"\n value={value.displayLabel}\n onChange={event => setField('displayLabel', event.target.value)}\n />\n <FieldError>{validationErrors.displayLabel}</FieldError>\n </Field>\n <Field disabled={pending}>\n <FieldLabel>Description</FieldLabel>\n <Textarea\n name=\"description\"\n rows={2}\n value={value.description}\n onChange={event => setField('description', event.target.value)}\n />\n </Field>\n <Field invalid={Boolean(validationErrors.taskPrompt)} disabled={pending}>\n <FieldLabel>Signal instructions</FieldLabel>\n <Textarea\n name=\"taskPrompt\"\n rows={5}\n value={value.taskPrompt}\n placeholder=\"Describe what this signal should evaluate and how the result should be written.\"\n onChange={event => setField('taskPrompt', event.target.value)}\n />\n <FieldDescription>\n Tell the model what to evaluate and what the signal result should contain. {value.taskPrompt.length}\n /2,000 characters\n </FieldDescription>\n <FieldError>{validationErrors.taskPrompt}</FieldError>\n </Field>\n {editing ? (\n <Txt variant=\"meta\" tone=\"muted\">\n Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged.\n </Txt>\n ) : null}\n {error ? (\n <div role=\"alert\">\n <Notice variant=\"destructive\">{error}</Notice>\n </div>\n ) : null}\n </Form>\n </DialogBody>\n <DialogFooter>\n <DialogCancel>Cancel</DialogCancel>\n <DialogAction type=\"submit\" form={formId}>\n {editing ? 'Save signal' : 'Create signal'}\n </DialogAction>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["useId","useState","jsx","Dialog","jsxs","DialogContent","DialogHeader","DialogTitle","DialogDescription","DialogBody","Form","Field","FieldLabel","Input","FieldDescription","FieldError","Textarea","Txt","Notice","DialogFooter","DialogCancel","DialogAction"],"mappings":"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"}
1
+ {"version":3,"file":"signal-definition-form-dialog.cjs.js","sources":["../../../../src/ee/signals/settings/signal-definition-form-dialog.tsx"],"sourcesContent":["import type {\n CreateTraceSignalDefinitionInput,\n TraceSignalDefinition,\n UpdateTraceSignalDefinitionInput,\n} from '@mastra/client-js';\nimport { useId, useState } from 'react';\n\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { Form } from '@/ds/components/Form';\nimport { Input } from '@/ds/components/Input';\nimport { Notice } from '@/ds/components/Notice';\nimport { Textarea } from '@/ds/components/Textarea';\nimport { Txt } from '@/ds/components/Txt';\n\nconst reservedNames = new Set([\n 'goal',\n 'sentiment',\n 'behavior',\n 'outcome',\n 'intent',\n 'summary',\n 'tags',\n 'theme',\n 'noise',\n]);\n\nexport interface SignalDefinitionFormDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n definition?: TraceSignalDefinition;\n error?: string;\n pending: boolean;\n onCreate: (input: CreateTraceSignalDefinitionInput) => Promise<void>;\n onUpdate: (id: string, input: UpdateTraceSignalDefinitionInput) => Promise<void>;\n}\n\ntype FormValue = CreateTraceSignalDefinitionInput;\ntype FormErrors = Partial<Record<keyof FormValue, string>>;\n\nfunction initialValue(definition?: TraceSignalDefinition): FormValue {\n return definition\n ? {\n name: definition.name,\n displayLabel: definition.displayLabel,\n description: definition.description,\n taskPrompt: definition.taskPrompt,\n }\n : {\n name: '',\n displayLabel: '',\n description: '',\n taskPrompt: '',\n };\n}\n\nfunction validate(value: FormValue, editing: boolean): FormErrors {\n const errors: FormErrors = {};\n if (!editing && (!/^[a-z][a-z0-9_-]{1,31}$/.test(value.name) || reservedNames.has(value.name))) {\n errors.name = 'Use an unreserved lowercase slug of 2–32 letters, numbers, underscores, or hyphens.';\n }\n if (!value.displayLabel.trim()) errors.displayLabel = 'Display label is required.';\n if (!value.taskPrompt.trim() || value.taskPrompt.length > 2000) {\n errors.taskPrompt = 'Signal instructions are required and must be at most 2,000 characters.';\n }\n return errors;\n}\n\nexport function SignalDefinitionFormDialog({\n open,\n onOpenChange,\n definition,\n error,\n pending,\n onCreate,\n onUpdate,\n}: SignalDefinitionFormDialogProps) {\n const formId = useId();\n const [value, setValue] = useState(() => initialValue(definition));\n const [validationErrors, setValidationErrors] = useState<FormErrors>({});\n const editing = Boolean(definition);\n\n const setField = <Key extends keyof FormValue>(key: Key, fieldValue: FormValue[Key]) => {\n setValue(current => ({ ...current, [key]: fieldValue }));\n setValidationErrors(current => ({ ...current, [key]: undefined }));\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} pending={pending}>\n <DialogContent size=\"lg\">\n <DialogHeader>\n <DialogTitle>{editing ? 'Edit custom signal' : 'Create custom signal'}</DialogTitle>\n <DialogDescription>\n Definitions belong to the organization. Every signal receives all available bounded trace context.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <Form\n id={formId}\n onSubmit={event => {\n event.preventDefault();\n const errors = validate(value, editing);\n setValidationErrors(errors);\n if (Object.keys(errors).length > 0) return;\n const action = definition\n ? onUpdate(definition.id, {\n displayLabel: value.displayLabel,\n description: value.description,\n taskPrompt: value.taskPrompt,\n })\n : onCreate(value);\n void action.then(() => onOpenChange(false)).catch(() => undefined);\n }}\n >\n <Field invalid={Boolean(validationErrors.name)} disabled={editing || pending}>\n <FieldLabel>Signal name</FieldLabel>\n <Input\n name=\"name\"\n placeholder=\"handoff_quality\"\n value={value.name}\n onChange={event => setField('name', event.target.value)}\n />\n <FieldDescription>A stable lowercase slug. It cannot be changed after creation.</FieldDescription>\n <FieldError>{validationErrors.name}</FieldError>\n </Field>\n <Field invalid={Boolean(validationErrors.displayLabel)} disabled={pending}>\n <FieldLabel>Display label</FieldLabel>\n <Input\n name=\"displayLabel\"\n placeholder=\"Handoff quality\"\n value={value.displayLabel}\n onChange={event => setField('displayLabel', event.target.value)}\n />\n <FieldError>{validationErrors.displayLabel}</FieldError>\n </Field>\n <Field disabled={pending}>\n <FieldLabel>Description</FieldLabel>\n <Textarea\n name=\"description\"\n rows={2}\n value={value.description}\n onChange={event => setField('description', event.target.value)}\n />\n </Field>\n <Field invalid={Boolean(validationErrors.taskPrompt)} disabled={pending}>\n <FieldLabel>Signal instructions</FieldLabel>\n <Textarea\n name=\"taskPrompt\"\n rows={5}\n value={value.taskPrompt}\n placeholder=\"Describe what this signal should evaluate and how the result should be written.\"\n onChange={event => setField('taskPrompt', event.target.value)}\n />\n <FieldDescription>\n Tell the model what to evaluate and what the signal result should contain. {value.taskPrompt.length}\n /2,000 characters\n </FieldDescription>\n <FieldError>{validationErrors.taskPrompt}</FieldError>\n </Field>\n {editing ? (\n <Txt variant=\"meta\" tone=\"muted\">\n Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged.\n </Txt>\n ) : null}\n {error ? (\n <div role=\"alert\">\n <Notice variant=\"destructive\">{error}</Notice>\n </div>\n ) : null}\n </Form>\n </DialogBody>\n <DialogFooter>\n <DialogCancel>Cancel</DialogCancel>\n <DialogAction type=\"submit\" form={formId}>\n {editing ? 'Save signal' : 'Create signal'}\n </DialogAction>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["useId","useState","jsx","Dialog","jsxs","DialogContent","DialogHeader","DialogTitle","DialogDescription","DialogBody","Form","Field","FieldLabel","Input","FieldDescription","FieldError","Textarea","Txt","Notice","DialogFooter","DialogCancel","DialogAction"],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useId, useState } from 'react';
3
- import { D as Dialog, d as DialogContent, g as DialogHeader, j as DialogTitle, e as DialogDescription, a as DialogBody, f as DialogFooter, b as DialogCancel } from '../../../dialog-BYsQZGIj.js';
4
- import { F as Field, e as FieldLabel, b as FieldDescription, c as FieldError } from '../../../field-B89BEZg4.js';
5
- import '../../../field-control-aria-DB6y41tQ.js';
3
+ import { D as Dialog, d as DialogContent, g as DialogHeader, j as DialogTitle, e as DialogDescription, a as DialogBody, f as DialogFooter, b as DialogCancel } from '../../../dialog-DlZmNahd.js';
4
+ import { F as Field, e as FieldLabel, b as FieldDescription, c as FieldError } from '../../../field-Bc8Ewf_M.js';
6
5
  import { F as Form } from '../../../form-CDRsQaFS.js';
7
- import { I as Input } from '../../../input-DQFUjtnh.js';
6
+ import { I as Input } from '../../../input-Ds171RJ5.js';
8
7
  import { N as Notice } from '../../../Notice-Wy1grdLu.js';
9
8
  import { T as Textarea } from '../../../textarea-Bl3htAGs.js';
10
9
  import { T as Txt } from '../../../Txt-BuzYj7Vy.js';
11
- import { D as DialogAction } from '../../../dialog-action-B-pF99m0.js';
10
+ import { D as DialogAction } from '../../../dialog-action-c4nfPomF.js';
12
11
 
13
12
  const reservedNames = /* @__PURE__ */ new Set([
14
13
  "goal",
@@ -1 +1 @@
1
- {"version":3,"file":"signal-definition-form-dialog.es.js","sources":["../../../../src/ee/signals/settings/signal-definition-form-dialog.tsx"],"sourcesContent":["import type {\n CreateTraceSignalDefinitionInput,\n TraceSignalDefinition,\n UpdateTraceSignalDefinitionInput,\n} from '@mastra/client-js';\nimport { useId, useState } from 'react';\n\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { Form } from '@/ds/components/Form';\nimport { Input } from '@/ds/components/Input';\nimport { Notice } from '@/ds/components/Notice';\nimport { Textarea } from '@/ds/components/Textarea';\nimport { Txt } from '@/ds/components/Txt';\n\nconst reservedNames = new Set([\n 'goal',\n 'sentiment',\n 'behavior',\n 'outcome',\n 'intent',\n 'summary',\n 'tags',\n 'theme',\n 'noise',\n]);\n\nexport interface SignalDefinitionFormDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n definition?: TraceSignalDefinition;\n error?: string;\n pending: boolean;\n onCreate: (input: CreateTraceSignalDefinitionInput) => Promise<void>;\n onUpdate: (id: string, input: UpdateTraceSignalDefinitionInput) => Promise<void>;\n}\n\ntype FormValue = CreateTraceSignalDefinitionInput;\ntype FormErrors = Partial<Record<keyof FormValue, string>>;\n\nfunction initialValue(definition?: TraceSignalDefinition): FormValue {\n return definition\n ? {\n name: definition.name,\n displayLabel: definition.displayLabel,\n description: definition.description,\n taskPrompt: definition.taskPrompt,\n }\n : {\n name: '',\n displayLabel: '',\n description: '',\n taskPrompt: '',\n };\n}\n\nfunction validate(value: FormValue, editing: boolean): FormErrors {\n const errors: FormErrors = {};\n if (!editing && (!/^[a-z][a-z0-9_-]{1,31}$/.test(value.name) || reservedNames.has(value.name))) {\n errors.name = 'Use an unreserved lowercase slug of 2–32 letters, numbers, underscores, or hyphens.';\n }\n if (!value.displayLabel.trim()) errors.displayLabel = 'Display label is required.';\n if (!value.taskPrompt.trim() || value.taskPrompt.length > 2000) {\n errors.taskPrompt = 'Signal instructions are required and must be at most 2,000 characters.';\n }\n return errors;\n}\n\nexport function SignalDefinitionFormDialog({\n open,\n onOpenChange,\n definition,\n error,\n pending,\n onCreate,\n onUpdate,\n}: SignalDefinitionFormDialogProps) {\n const formId = useId();\n const [value, setValue] = useState(() => initialValue(definition));\n const [validationErrors, setValidationErrors] = useState<FormErrors>({});\n const editing = Boolean(definition);\n\n const setField = <Key extends keyof FormValue>(key: Key, fieldValue: FormValue[Key]) => {\n setValue(current => ({ ...current, [key]: fieldValue }));\n setValidationErrors(current => ({ ...current, [key]: undefined }));\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} pending={pending}>\n <DialogContent size=\"lg\">\n <DialogHeader>\n <DialogTitle>{editing ? 'Edit custom signal' : 'Create custom signal'}</DialogTitle>\n <DialogDescription>\n Definitions belong to the organization. Every signal receives all available bounded trace context.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <Form\n id={formId}\n onSubmit={event => {\n event.preventDefault();\n const errors = validate(value, editing);\n setValidationErrors(errors);\n if (Object.keys(errors).length > 0) return;\n const action = definition\n ? onUpdate(definition.id, {\n displayLabel: value.displayLabel,\n description: value.description,\n taskPrompt: value.taskPrompt,\n })\n : onCreate(value);\n void action.then(() => onOpenChange(false)).catch(() => undefined);\n }}\n >\n <Field invalid={Boolean(validationErrors.name)} disabled={editing || pending}>\n <FieldLabel>Signal name</FieldLabel>\n <Input\n name=\"name\"\n placeholder=\"handoff_quality\"\n value={value.name}\n onChange={event => setField('name', event.target.value)}\n />\n <FieldDescription>A stable lowercase slug. It cannot be changed after creation.</FieldDescription>\n <FieldError>{validationErrors.name}</FieldError>\n </Field>\n <Field invalid={Boolean(validationErrors.displayLabel)} disabled={pending}>\n <FieldLabel>Display label</FieldLabel>\n <Input\n name=\"displayLabel\"\n placeholder=\"Handoff quality\"\n value={value.displayLabel}\n onChange={event => setField('displayLabel', event.target.value)}\n />\n <FieldError>{validationErrors.displayLabel}</FieldError>\n </Field>\n <Field disabled={pending}>\n <FieldLabel>Description</FieldLabel>\n <Textarea\n name=\"description\"\n rows={2}\n value={value.description}\n onChange={event => setField('description', event.target.value)}\n />\n </Field>\n <Field invalid={Boolean(validationErrors.taskPrompt)} disabled={pending}>\n <FieldLabel>Signal instructions</FieldLabel>\n <Textarea\n name=\"taskPrompt\"\n rows={5}\n value={value.taskPrompt}\n placeholder=\"Describe what this signal should evaluate and how the result should be written.\"\n onChange={event => setField('taskPrompt', event.target.value)}\n />\n <FieldDescription>\n Tell the model what to evaluate and what the signal result should contain. {value.taskPrompt.length}\n /2,000 characters\n </FieldDescription>\n <FieldError>{validationErrors.taskPrompt}</FieldError>\n </Field>\n {editing ? (\n <Txt variant=\"meta\" tone=\"muted\">\n Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged.\n </Txt>\n ) : null}\n {error ? (\n <div role=\"alert\">\n <Notice variant=\"destructive\">{error}</Notice>\n </div>\n ) : null}\n </Form>\n </DialogBody>\n <DialogFooter>\n <DialogCancel>Cancel</DialogCancel>\n <DialogAction type=\"submit\" form={formId}>\n {editing ? 'Save signal' : 'Create signal'}\n </DialogAction>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signal-definition-form-dialog.es.js","sources":["../../../../src/ee/signals/settings/signal-definition-form-dialog.tsx"],"sourcesContent":["import type {\n CreateTraceSignalDefinitionInput,\n TraceSignalDefinition,\n UpdateTraceSignalDefinitionInput,\n} from '@mastra/client-js';\nimport { useId, useState } from 'react';\n\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { Form } from '@/ds/components/Form';\nimport { Input } from '@/ds/components/Input';\nimport { Notice } from '@/ds/components/Notice';\nimport { Textarea } from '@/ds/components/Textarea';\nimport { Txt } from '@/ds/components/Txt';\n\nconst reservedNames = new Set([\n 'goal',\n 'sentiment',\n 'behavior',\n 'outcome',\n 'intent',\n 'summary',\n 'tags',\n 'theme',\n 'noise',\n]);\n\nexport interface SignalDefinitionFormDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n definition?: TraceSignalDefinition;\n error?: string;\n pending: boolean;\n onCreate: (input: CreateTraceSignalDefinitionInput) => Promise<void>;\n onUpdate: (id: string, input: UpdateTraceSignalDefinitionInput) => Promise<void>;\n}\n\ntype FormValue = CreateTraceSignalDefinitionInput;\ntype FormErrors = Partial<Record<keyof FormValue, string>>;\n\nfunction initialValue(definition?: TraceSignalDefinition): FormValue {\n return definition\n ? {\n name: definition.name,\n displayLabel: definition.displayLabel,\n description: definition.description,\n taskPrompt: definition.taskPrompt,\n }\n : {\n name: '',\n displayLabel: '',\n description: '',\n taskPrompt: '',\n };\n}\n\nfunction validate(value: FormValue, editing: boolean): FormErrors {\n const errors: FormErrors = {};\n if (!editing && (!/^[a-z][a-z0-9_-]{1,31}$/.test(value.name) || reservedNames.has(value.name))) {\n errors.name = 'Use an unreserved lowercase slug of 2–32 letters, numbers, underscores, or hyphens.';\n }\n if (!value.displayLabel.trim()) errors.displayLabel = 'Display label is required.';\n if (!value.taskPrompt.trim() || value.taskPrompt.length > 2000) {\n errors.taskPrompt = 'Signal instructions are required and must be at most 2,000 characters.';\n }\n return errors;\n}\n\nexport function SignalDefinitionFormDialog({\n open,\n onOpenChange,\n definition,\n error,\n pending,\n onCreate,\n onUpdate,\n}: SignalDefinitionFormDialogProps) {\n const formId = useId();\n const [value, setValue] = useState(() => initialValue(definition));\n const [validationErrors, setValidationErrors] = useState<FormErrors>({});\n const editing = Boolean(definition);\n\n const setField = <Key extends keyof FormValue>(key: Key, fieldValue: FormValue[Key]) => {\n setValue(current => ({ ...current, [key]: fieldValue }));\n setValidationErrors(current => ({ ...current, [key]: undefined }));\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} pending={pending}>\n <DialogContent size=\"lg\">\n <DialogHeader>\n <DialogTitle>{editing ? 'Edit custom signal' : 'Create custom signal'}</DialogTitle>\n <DialogDescription>\n Definitions belong to the organization. Every signal receives all available bounded trace context.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <Form\n id={formId}\n onSubmit={event => {\n event.preventDefault();\n const errors = validate(value, editing);\n setValidationErrors(errors);\n if (Object.keys(errors).length > 0) return;\n const action = definition\n ? onUpdate(definition.id, {\n displayLabel: value.displayLabel,\n description: value.description,\n taskPrompt: value.taskPrompt,\n })\n : onCreate(value);\n void action.then(() => onOpenChange(false)).catch(() => undefined);\n }}\n >\n <Field invalid={Boolean(validationErrors.name)} disabled={editing || pending}>\n <FieldLabel>Signal name</FieldLabel>\n <Input\n name=\"name\"\n placeholder=\"handoff_quality\"\n value={value.name}\n onChange={event => setField('name', event.target.value)}\n />\n <FieldDescription>A stable lowercase slug. It cannot be changed after creation.</FieldDescription>\n <FieldError>{validationErrors.name}</FieldError>\n </Field>\n <Field invalid={Boolean(validationErrors.displayLabel)} disabled={pending}>\n <FieldLabel>Display label</FieldLabel>\n <Input\n name=\"displayLabel\"\n placeholder=\"Handoff quality\"\n value={value.displayLabel}\n onChange={event => setField('displayLabel', event.target.value)}\n />\n <FieldError>{validationErrors.displayLabel}</FieldError>\n </Field>\n <Field disabled={pending}>\n <FieldLabel>Description</FieldLabel>\n <Textarea\n name=\"description\"\n rows={2}\n value={value.description}\n onChange={event => setField('description', event.target.value)}\n />\n </Field>\n <Field invalid={Boolean(validationErrors.taskPrompt)} disabled={pending}>\n <FieldLabel>Signal instructions</FieldLabel>\n <Textarea\n name=\"taskPrompt\"\n rows={5}\n value={value.taskPrompt}\n placeholder=\"Describe what this signal should evaluate and how the result should be written.\"\n onChange={event => setField('taskPrompt', event.target.value)}\n />\n <FieldDescription>\n Tell the model what to evaluate and what the signal result should contain. {value.taskPrompt.length}\n /2,000 characters\n </FieldDescription>\n <FieldError>{validationErrors.taskPrompt}</FieldError>\n </Field>\n {editing ? (\n <Txt variant=\"meta\" tone=\"muted\">\n Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged.\n </Txt>\n ) : null}\n {error ? (\n <div role=\"alert\">\n <Notice variant=\"destructive\">{error}</Notice>\n </div>\n ) : null}\n </Form>\n </DialogBody>\n <DialogFooter>\n <DialogCancel>Cancel</DialogCancel>\n <DialogAction type=\"submit\" form={formId}>\n {editing ? 'Save signal' : 'Create signal'}\n </DialogAction>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { B as Button } from '../../../Button-C8QDEN9j.js';
9
9
  import { DataDetailsPanel } from '../../../components/DataDetailsPanel.es.js';
10
10
  import { N as Notice } from '../../../Notice-Wy1grdLu.js';
11
11
  import { S as Skeleton } from '../../../skeleton-Bjxvf3Y-.js';
12
- import { S as Switch } from '../../../switch-DiSlsWUt.js';
12
+ import { S as Switch } from '../../../switch-BBeMfeQ2.js';
13
13
  import { T as Txt } from '../../../Txt-BuzYj7Vy.js';
14
14
 
15
15
  function TraceSignalSettingsButton({ open, onClick }) {
@@ -15,7 +15,7 @@ const ee_signals_signalFormatting = require('./signal-formatting.cjs.js');
15
15
  const ee_signals_themeTrend = require('./theme-trend.cjs.js');
16
16
  const ee_signals_themeTrendChart = require('./theme-trend-chart.cjs.js');
17
17
  const ee_signals_traceInsightView = require('./trace-insight-view.cjs.js');
18
- const drawer = require('../../drawer-DE2b3eld.cjs');
18
+ const drawer = require('../../drawer-CeUYCG-S.cjs');
19
19
  const tooltip = require('../../tooltip-C4txPRSa.cjs');
20
20
  const Txt = require('../../Txt-DXjXpX9r.cjs');
21
21
  const primitives_raisedSurface = require('../../primitives/raised-surface.cjs.js');
@@ -11,7 +11,7 @@ import { signalLabel, signalDescription, shareSentence, formatSnapshotDate } fro
11
11
  import { chronologicalHistoryPoints, themeTrendDirection } from './theme-trend.es.js';
12
12
  import { ThemeTrendChart } from './theme-trend-chart.es.js';
13
13
  import { TraceInsightView } from './trace-insight-view.es.js';
14
- import { D as Drawer, d as DrawerContent, g as DrawerHeader, o as DrawerTitle, e as DrawerDescription, b as DrawerBody } from '../../drawer-B-t4ydEh.js';
14
+ import { D as Drawer, d as DrawerContent, g as DrawerHeader, o as DrawerTitle, e as DrawerDescription, b as DrawerBody } from '../../drawer-CZlqOjd2.js';
15
15
  import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../../tooltip-CCZcMbgy.js';
16
16
  import { T as Txt } from '../../Txt-BuzYj7Vy.js';
17
17
  import { raisedSurfaceStyle } from '../../primitives/raised-surface.es.js';
@@ -7,9 +7,9 @@ const lucideReact = require('lucide-react');
7
7
  const React = require('react');
8
8
  const ee_topics_utils = require('../utils.cjs.js');
9
9
  const Button = require('../../../Button-BfZzgZrA.cjs');
10
- const dataList = require('../../../data-list-DkVOwk8l.cjs');
10
+ const dataList = require('../../../data-list-_yDPF5wR.cjs');
11
11
  const useDataListKeyboard = require('../../../use-data-list-keyboard-DF3tLe10.cjs');
12
- const searchInput = require('../../../search-input-UtTJMjJu.cjs');
12
+ const searchInput = require('../../../search-input-DbEE2zEz.cjs');
13
13
 
14
14
  function TopicTraceSummaryList({
15
15
  traces,
@@ -3,9 +3,9 @@ import { ChevronDown } from 'lucide-react';
3
3
  import { useState, useMemo } from 'react';
4
4
  import { getVisibleTraceSummaries } from '../utils.es.js';
5
5
  import { B as Button } from '../../../Button-C8QDEN9j.js';
6
- import { D as DataList } from '../../../data-list-Dv2lP-dU.js';
6
+ import { e as DataList } from '../../../data-list-DDGpWucH.js';
7
7
  import { u as useDataListKeyboard } from '../../../use-data-list-keyboard-DFQr4t38.js';
8
- import { S as SearchInput } from '../../../search-input-fqSrRTLU.js';
8
+ import { S as SearchInput } from '../../../search-input-D23h16CB.js';
9
9
 
10
10
  function TopicTraceSummaryList({
11
11
  traces,
@@ -3,7 +3,7 @@ import { Field as Field$1 } from '@base-ui/react/field';
3
3
  import { Fieldset as Fieldset$1 } from '@base-ui/react/fieldset';
4
4
  import { CircleAlertIcon } from 'lucide-react';
5
5
  import * as React from 'react';
6
- import { F as FieldAriaContext, a as useFieldAriaIds } from './field-control-aria-DB6y41tQ.js';
6
+ import { F as FieldAriaContext, a as useFieldAriaIds } from './field-control-aria-CCJ4-mUe.js';
7
7
  import { Icon } from './icons/Icon.es.js';
8
8
  import { c as cn } from './cn-coERSHz5.js';
9
9
 
@@ -167,4 +167,4 @@ function FieldsetLegend({ className, required = false, children, ...props }) {
167
167
  }
168
168
 
169
169
  export { Field as F, FieldContent as a, FieldDescription as b, FieldError as c, FieldItem as d, FieldLabel as e, Fieldset as f, FieldsetLegend as g };
170
- //# sourceMappingURL=field-B89BEZg4.js.map
170
+ //# sourceMappingURL=field-Bc8Ewf_M.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-B89BEZg4.js","sources":["../src/ds/components/Field/field.tsx"],"sourcesContent":["import { Field as FieldPrimitive } from '@base-ui/react/field';\nimport { Fieldset as FieldsetPrimitive } from '@base-ui/react/fieldset';\nimport { CircleAlertIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { FieldAriaContext, useFieldAriaIds } from './field-control-aria';\nimport { Icon } from '@/ds/icons/Icon';\nimport { cn } from '@/lib/utils';\n\ntype FieldProps = Omit<FieldPrimitive.Root.Props, 'className'> & {\n className?: string;\n orientation?: 'vertical' | 'horizontal' | 'responsive';\n};\n\nconst orientationClassName = {\n vertical: 'grid gap-2',\n horizontal: 'flex items-center gap-2 has-[>[data-slot=field-label]:first-child]:justify-between',\n responsive: 'flex flex-col gap-2 sm:flex-row sm:items-center',\n} satisfies Record<NonNullable<FieldProps['orientation']>, string>;\n\nfunction Field({ className, orientation = 'vertical', invalid = false, ...props }: FieldProps) {\n const id = React.useId();\n const [hasDescription, setHasDescription] = React.useState(false);\n const ariaIds = React.useMemo(\n () => ({\n labelId: `${id}-label`,\n descriptionId: `${id}-description`,\n errorId: `${id}-error`,\n controlId: `${id}-control`,\n invalid,\n hasDescription,\n setHasDescription,\n }),\n [id, invalid, hasDescription],\n );\n\n return (\n <FieldAriaContext.Provider value={ariaIds}>\n <FieldPrimitive.Root\n invalid={invalid}\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn('min-w-0 text-foreground', orientationClassName[orientation], className)}\n {...props}\n />\n </FieldAriaContext.Provider>\n );\n}\n\ntype FieldContentProps = React.ComponentProps<'div'>;\n\nfunction FieldContent({ className, ...props }: FieldContentProps) {\n return <div data-slot=\"field-content\" className={cn('grid min-w-0 flex-1 gap-2', className)} {...props} />;\n}\n\ntype FieldItemProps = Omit<FieldPrimitive.Item.Props, 'className'> & {\n className?: string;\n};\n\nfunction FieldItem({ className, ...props }: FieldItemProps) {\n const isInsideField = useFieldAriaIds() !== null;\n const ItemScope = isInsideField ? FieldPrimitive.Item : FieldPrimitive.Root;\n\n return (\n <FieldAriaContext.Provider value={null}>\n <ItemScope data-slot=\"field-item\" className={cn('flex min-w-0 items-center gap-2', className)} {...props} />\n </FieldAriaContext.Provider>\n );\n}\n\nfunction RequiredMark() {\n return (\n <>\n <span aria-hidden className=\"ml-0.5 text-destructive-foreground in-data-disabled:text-muted-foreground\">\n *\n </span>{' '}\n <span className=\"sr-only\">(required)</span>\n </>\n );\n}\n\ntype FieldLabelProps = Omit<FieldPrimitive.Label.Props, 'className' | 'id'> & {\n className?: string;\n required?: boolean;\n size?: 'smaller' | 'default' | 'bigger';\n};\n\nfunction FieldLabel({ className, required = false, size = 'default', children, onClick, ...props }: FieldLabelProps) {\n const field = useFieldAriaIds();\n\n const focusManualControl: FieldLabelProps['onClick'] = event => {\n onClick?.(event);\n if (!field || event.defaultPrevented) return;\n event.currentTarget.ownerDocument.getElementById(field.controlId)?.focus();\n };\n\n return (\n <FieldPrimitive.Label\n id={field?.labelId}\n data-slot=\"field-label\"\n className={cn(\n 'inline-flex shrink-0 items-center text-label text-foreground data-disabled:text-muted-foreground',\n 'not-data-disabled:has-[[role=checkbox],[role=switch],[role=radio]]:cursor-pointer',\n 'not-data-disabled:[:is([data-slot=field],[data-slot=field-item]):has(>[role=checkbox],>[role=switch],>[role=radio])_&]:cursor-pointer',\n 'data-disabled:cursor-not-allowed',\n size === 'smaller' && 'text-column',\n size === 'bigger' && 'text-body',\n className,\n )}\n onClick={focusManualControl}\n {...props}\n >\n {children}\n {required ? <RequiredMark /> : null}\n </FieldPrimitive.Label>\n );\n}\n\ntype FieldDescriptionProps = Omit<FieldPrimitive.Description.Props, 'className' | 'id'> & {\n className?: string;\n};\n\nfunction FieldDescription({ className, ...props }: FieldDescriptionProps) {\n const field = useFieldAriaIds();\n const setHasDescription = field?.setHasDescription;\n\n React.useEffect(() => {\n if (!setHasDescription) return;\n setHasDescription(true);\n return () => setHasDescription(false);\n }, [setHasDescription]);\n\n return (\n <FieldPrimitive.Description\n id={field?.descriptionId}\n data-slot=\"field-description\"\n className={cn('-mt-1 text-caption text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\ntype FieldErrorProps = Omit<FieldPrimitive.Error.Props, 'className' | 'match' | 'render'> & {\n className?: string;\n};\n\nconst fieldErrorClassName = '-mt-1 flex gap-1 text-body-sm text-destructive-foreground';\n\nfunction FieldErrorIcon() {\n return (\n <Icon size=\"xs\" className=\"mt-1 shrink-0\" aria-hidden>\n <CircleAlertIcon />\n </Icon>\n );\n}\n\nfunction FieldError({ className, children, ...props }: FieldErrorProps) {\n const field = useFieldAriaIds();\n\n if (children) {\n return (\n <FieldPrimitive.Error\n key=\"external\"\n id={field?.errorId}\n match\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(fieldErrorClassName, className)}\n {...props}\n >\n <FieldErrorIcon />\n <span className=\"min-w-0\">{children}</span>\n </FieldPrimitive.Error>\n );\n }\n\n return (\n <FieldPrimitive.Error\n key=\"native\"\n id={field?.errorId}\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(fieldErrorClassName, className)}\n {...props}\n render={({ children: message, ...errorProps }) => (\n <div {...errorProps}>\n <FieldErrorIcon />\n <span className=\"min-w-0\">{message}</span>\n </div>\n )}\n />\n );\n}\n\ntype FieldsetProps = Omit<FieldsetPrimitive.Root.Props, 'className'> & {\n className?: string;\n};\n\nfunction Fieldset({ className, ...props }: FieldsetProps) {\n return (\n <FieldsetPrimitive.Root\n data-slot=\"fieldset\"\n className={cn('m-0 grid min-w-0 gap-3 border-0 p-0', className)}\n {...props}\n />\n );\n}\n\ntype FieldsetLegendProps = Omit<FieldsetPrimitive.Legend.Props, 'className'> & {\n className?: string;\n required?: boolean;\n};\n\nfunction FieldsetLegend({ className, required = false, children, ...props }: FieldsetLegendProps) {\n return (\n <FieldsetPrimitive.Legend\n data-slot=\"fieldset-legend\"\n className={cn('text-label text-foreground data-disabled:text-muted-foreground', className)}\n {...props}\n >\n {children}\n {required ? <RequiredMark /> : null}\n </FieldsetPrimitive.Legend>\n );\n}\n\nexport { Field, FieldContent, FieldItem, FieldLabel, FieldDescription, FieldError, Fieldset, FieldsetLegend };\nexport type {\n FieldProps,\n FieldContentProps,\n FieldItemProps,\n FieldLabelProps,\n FieldDescriptionProps,\n FieldErrorProps,\n FieldsetProps,\n FieldsetLegendProps,\n};\n"],"names":["FieldPrimitive","FieldsetPrimitive"],"mappings":"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"}
1
+ {"version":3,"file":"field-Bc8Ewf_M.js","sources":["../src/ds/components/Field/field.tsx"],"sourcesContent":["import { Field as FieldPrimitive } from '@base-ui/react/field';\nimport { Fieldset as FieldsetPrimitive } from '@base-ui/react/fieldset';\nimport { CircleAlertIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { FieldAriaContext, useFieldAriaIds } from './field-control-aria';\nimport { Icon } from '@/ds/icons/Icon';\nimport { cn } from '@/lib/utils';\n\ntype FieldProps = Omit<FieldPrimitive.Root.Props, 'className'> & {\n className?: string;\n orientation?: 'vertical' | 'horizontal' | 'responsive';\n};\n\nconst orientationClassName = {\n vertical: 'grid gap-2',\n horizontal: 'flex items-center gap-2 has-[>[data-slot=field-label]:first-child]:justify-between',\n responsive: 'flex flex-col gap-2 sm:flex-row sm:items-center',\n} satisfies Record<NonNullable<FieldProps['orientation']>, string>;\n\nfunction Field({ className, orientation = 'vertical', invalid = false, ...props }: FieldProps) {\n const id = React.useId();\n const [hasDescription, setHasDescription] = React.useState(false);\n const ariaIds = React.useMemo(\n () => ({\n labelId: `${id}-label`,\n descriptionId: `${id}-description`,\n errorId: `${id}-error`,\n controlId: `${id}-control`,\n invalid,\n hasDescription,\n setHasDescription,\n }),\n [id, invalid, hasDescription],\n );\n\n return (\n <FieldAriaContext.Provider value={ariaIds}>\n <FieldPrimitive.Root\n invalid={invalid}\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn('min-w-0 text-foreground', orientationClassName[orientation], className)}\n {...props}\n />\n </FieldAriaContext.Provider>\n );\n}\n\ntype FieldContentProps = React.ComponentProps<'div'>;\n\nfunction FieldContent({ className, ...props }: FieldContentProps) {\n return <div data-slot=\"field-content\" className={cn('grid min-w-0 flex-1 gap-2', className)} {...props} />;\n}\n\ntype FieldItemProps = Omit<FieldPrimitive.Item.Props, 'className'> & {\n className?: string;\n};\n\nfunction FieldItem({ className, ...props }: FieldItemProps) {\n const isInsideField = useFieldAriaIds() !== null;\n const ItemScope = isInsideField ? FieldPrimitive.Item : FieldPrimitive.Root;\n\n return (\n <FieldAriaContext.Provider value={null}>\n <ItemScope data-slot=\"field-item\" className={cn('flex min-w-0 items-center gap-2', className)} {...props} />\n </FieldAriaContext.Provider>\n );\n}\n\nfunction RequiredMark() {\n return (\n <>\n <span aria-hidden className=\"ml-0.5 text-destructive-foreground in-data-disabled:text-muted-foreground\">\n *\n </span>{' '}\n <span className=\"sr-only\">(required)</span>\n </>\n );\n}\n\ntype FieldLabelProps = Omit<FieldPrimitive.Label.Props, 'className' | 'id'> & {\n className?: string;\n required?: boolean;\n size?: 'smaller' | 'default' | 'bigger';\n};\n\nfunction FieldLabel({ className, required = false, size = 'default', children, onClick, ...props }: FieldLabelProps) {\n const field = useFieldAriaIds();\n\n const focusManualControl: FieldLabelProps['onClick'] = event => {\n onClick?.(event);\n if (!field || event.defaultPrevented) return;\n event.currentTarget.ownerDocument.getElementById(field.controlId)?.focus();\n };\n\n return (\n <FieldPrimitive.Label\n id={field?.labelId}\n data-slot=\"field-label\"\n className={cn(\n 'inline-flex shrink-0 items-center text-label text-foreground data-disabled:text-muted-foreground',\n 'not-data-disabled:has-[[role=checkbox],[role=switch],[role=radio]]:cursor-pointer',\n 'not-data-disabled:[:is([data-slot=field],[data-slot=field-item]):has(>[role=checkbox],>[role=switch],>[role=radio])_&]:cursor-pointer',\n 'data-disabled:cursor-not-allowed',\n size === 'smaller' && 'text-column',\n size === 'bigger' && 'text-body',\n className,\n )}\n onClick={focusManualControl}\n {...props}\n >\n {children}\n {required ? <RequiredMark /> : null}\n </FieldPrimitive.Label>\n );\n}\n\ntype FieldDescriptionProps = Omit<FieldPrimitive.Description.Props, 'className' | 'id'> & {\n className?: string;\n};\n\nfunction FieldDescription({ className, ...props }: FieldDescriptionProps) {\n const field = useFieldAriaIds();\n const setHasDescription = field?.setHasDescription;\n\n React.useEffect(() => {\n if (!setHasDescription) return;\n setHasDescription(true);\n return () => setHasDescription(false);\n }, [setHasDescription]);\n\n return (\n <FieldPrimitive.Description\n id={field?.descriptionId}\n data-slot=\"field-description\"\n className={cn('-mt-1 text-caption text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\ntype FieldErrorProps = Omit<FieldPrimitive.Error.Props, 'className' | 'match' | 'render'> & {\n className?: string;\n};\n\nconst fieldErrorClassName = '-mt-1 flex gap-1 text-body-sm text-destructive-foreground';\n\nfunction FieldErrorIcon() {\n return (\n <Icon size=\"xs\" className=\"mt-1 shrink-0\" aria-hidden>\n <CircleAlertIcon />\n </Icon>\n );\n}\n\nfunction FieldError({ className, children, ...props }: FieldErrorProps) {\n const field = useFieldAriaIds();\n\n if (children) {\n return (\n <FieldPrimitive.Error\n key=\"external\"\n id={field?.errorId}\n match\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(fieldErrorClassName, className)}\n {...props}\n >\n <FieldErrorIcon />\n <span className=\"min-w-0\">{children}</span>\n </FieldPrimitive.Error>\n );\n }\n\n return (\n <FieldPrimitive.Error\n key=\"native\"\n id={field?.errorId}\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(fieldErrorClassName, className)}\n {...props}\n render={({ children: message, ...errorProps }) => (\n <div {...errorProps}>\n <FieldErrorIcon />\n <span className=\"min-w-0\">{message}</span>\n </div>\n )}\n />\n );\n}\n\ntype FieldsetProps = Omit<FieldsetPrimitive.Root.Props, 'className'> & {\n className?: string;\n};\n\nfunction Fieldset({ className, ...props }: FieldsetProps) {\n return (\n <FieldsetPrimitive.Root\n data-slot=\"fieldset\"\n className={cn('m-0 grid min-w-0 gap-3 border-0 p-0', className)}\n {...props}\n />\n );\n}\n\ntype FieldsetLegendProps = Omit<FieldsetPrimitive.Legend.Props, 'className'> & {\n className?: string;\n required?: boolean;\n};\n\nfunction FieldsetLegend({ className, required = false, children, ...props }: FieldsetLegendProps) {\n return (\n <FieldsetPrimitive.Legend\n data-slot=\"fieldset-legend\"\n className={cn('text-label text-foreground data-disabled:text-muted-foreground', className)}\n {...props}\n >\n {children}\n {required ? <RequiredMark /> : null}\n </FieldsetPrimitive.Legend>\n );\n}\n\nexport { Field, FieldContent, FieldItem, FieldLabel, FieldDescription, FieldError, Fieldset, FieldsetLegend };\nexport type {\n FieldProps,\n FieldContentProps,\n FieldItemProps,\n FieldLabelProps,\n FieldDescriptionProps,\n FieldErrorProps,\n FieldsetProps,\n FieldsetLegendProps,\n};\n"],"names":["FieldPrimitive","FieldsetPrimitive"],"mappings":"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"}