@mastra/playground-ui 57.0.0 → 57.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (698) hide show
  1. package/dist/{Button-KUj0U-5I.js → Button-B8nF87ai.js} +2 -8
  2. package/dist/Button-B8nF87ai.js.map +1 -0
  3. package/dist/{Button-MMZPEb_q.cjs → Button-BAMnPqos.cjs} +1 -7
  4. package/dist/Button-BAMnPqos.cjs.map +1 -0
  5. package/dist/{Card-DwGasv0K.cjs → Card-BbwF20OW.cjs} +3 -3
  6. package/dist/Card-BbwF20OW.cjs.map +1 -0
  7. package/dist/{Card-B_buJ5yF.js → Card-DmT57Pve.js} +3 -3
  8. package/dist/Card-DmT57Pve.js.map +1 -0
  9. package/dist/{EmptyState-DiSP6UIy.cjs → EmptyState-2XQgeju6.cjs} +12 -3
  10. package/dist/EmptyState-2XQgeju6.cjs.map +1 -0
  11. package/dist/{EmptyState-B6cyZw6m.js → EmptyState-Bc4nJ9QH.js} +13 -4
  12. package/dist/EmptyState-Bc4nJ9QH.js.map +1 -0
  13. package/dist/{Notice-CPyYcX5J.cjs → Notice-AUNd8fqT.cjs} +2 -2
  14. package/dist/{Notice-CPyYcX5J.cjs.map → Notice-AUNd8fqT.cjs.map} +1 -1
  15. package/dist/{Notice-KC18b8Nd.js → Notice-WT8G4OA6.js} +2 -2
  16. package/dist/{Notice-KC18b8Nd.js.map → Notice-WT8G4OA6.js.map} +1 -1
  17. package/dist/{ask-user-DaRRR4qQ.cjs → ask-user--Samf9gv.cjs} +2 -2
  18. package/dist/{ask-user-DaRRR4qQ.cjs.map → ask-user--Samf9gv.cjs.map} +1 -1
  19. package/dist/{ask-user-C4DTzEQF.js → ask-user-C-B3dhNP.js} +2 -2
  20. package/dist/{ask-user-C4DTzEQF.js.map → ask-user-C-B3dhNP.js.map} +1 -1
  21. package/dist/buttons-group.css +2 -14
  22. package/dist/{chat-notification-DeKD1Ifx.js → chat-notification-CmdRGO_D.js} +2 -2
  23. package/dist/{chat-notification-DeKD1Ifx.js.map → chat-notification-CmdRGO_D.js.map} +1 -1
  24. package/dist/{chat-notification-C5Ox5tuS.cjs → chat-notification-DJykWtoj.cjs} +2 -2
  25. package/dist/{chat-notification-C5Ox5tuS.cjs.map → chat-notification-DJykWtoj.cjs.map} +1 -1
  26. package/dist/{chat-signal-DiAHks6_.js → chat-signal-Vg8pGXwH.js} +2 -2
  27. package/dist/{chat-signal-DiAHks6_.js.map → chat-signal-Vg8pGXwH.js.map} +1 -1
  28. package/dist/{chat-signal-ClyJeml8.cjs → chat-signal-xs3FkPts.cjs} +2 -2
  29. package/dist/{chat-signal-ClyJeml8.cjs.map → chat-signal-xs3FkPts.cjs.map} +1 -1
  30. package/dist/{code-block-D37olB3O.js → code-block-CoKMTAdr.js} +5 -5
  31. package/dist/{code-block-D37olB3O.js.map → code-block-CoKMTAdr.js.map} +1 -1
  32. package/dist/{code-block-BoTq0TMr.cjs → code-block-FTEGH9VP.cjs} +5 -5
  33. package/dist/{code-block-BoTq0TMr.cjs.map → code-block-FTEGH9VP.cjs.map} +1 -1
  34. package/dist/{code-editor-BfoJXq9l.cjs → code-editor-D0wHkvDt.cjs} +2 -2
  35. package/dist/{code-editor-BfoJXq9l.cjs.map → code-editor-D0wHkvDt.cjs.map} +1 -1
  36. package/dist/{code-editor-BQTDma1I.js → code-editor-DmvGc1jj.js} +2 -2
  37. package/dist/{code-editor-BQTDma1I.js.map → code-editor-DmvGc1jj.js.map} +1 -1
  38. package/dist/{combobox-Bn_uyUSB.cjs → combobox-1tyP_dy-.cjs} +3 -3
  39. package/dist/{combobox-Bn_uyUSB.cjs.map → combobox-1tyP_dy-.cjs.map} +1 -1
  40. package/dist/{combobox-Cykfy5wc.js → combobox-gPiXyJgX.js} +3 -3
  41. package/dist/{combobox-Cykfy5wc.js.map → combobox-gPiXyJgX.js.map} +1 -1
  42. package/dist/{combobox-styles-CSsS2LEx.cjs → combobox-styles-CeTbTVnX.cjs} +2 -2
  43. package/dist/combobox-styles-CeTbTVnX.cjs.map +1 -0
  44. package/dist/{combobox-styles-iuJUkJEQ.js → combobox-styles-DZbWnLlE.js} +2 -2
  45. package/dist/combobox-styles-DZbWnLlE.js.map +1 -0
  46. package/dist/{command-Bmy4PznC.js → command-6BKuiTWd.js} +2 -2
  47. package/dist/{command-Bmy4PznC.js.map → command-6BKuiTWd.js.map} +1 -1
  48. package/dist/{command-B7H-emho.cjs → command-ByQRbkpW.cjs} +2 -2
  49. package/dist/{command-B7H-emho.cjs.map → command-ByQRbkpW.cjs.map} +1 -1
  50. package/dist/components/AlertDialog.cjs.js +1 -1
  51. package/dist/components/AlertDialog.es.js +1 -1
  52. package/dist/components/Button.cjs.js +1 -1
  53. package/dist/components/Button.es.js +2 -2
  54. package/dist/components/Card.cjs.js +1 -1
  55. package/dist/components/Card.es.js +1 -1
  56. package/dist/components/ClampedText.cjs.js +1 -1
  57. package/dist/components/ClampedText.es.js +1 -1
  58. package/dist/components/CodeBlock.cjs.js +1 -1
  59. package/dist/components/CodeBlock.es.js +1 -1
  60. package/dist/components/CodeEditor.cjs.js +1 -1
  61. package/dist/components/CodeEditor.es.js +1 -1
  62. package/dist/components/Columns.cjs.js +2 -106
  63. package/dist/components/Columns.cjs.js.map +1 -1
  64. package/dist/components/Columns.es.js +4 -107
  65. package/dist/components/Columns.es.js.map +1 -1
  66. package/dist/components/Combobox.cjs.js +2 -2
  67. package/dist/components/Combobox.es.js +2 -2
  68. package/dist/components/Command.cjs.js +1 -1
  69. package/dist/components/Command.es.js +1 -1
  70. package/dist/components/CommandPalette.cjs.js +1 -1
  71. package/dist/components/CommandPalette.es.js +1 -1
  72. package/dist/components/Comment.cjs.js +3 -3
  73. package/dist/components/Comment.cjs.js.map +1 -1
  74. package/dist/components/Comment.es.js +3 -3
  75. package/dist/components/Comment.es.js.map +1 -1
  76. package/dist/components/CopyButton.cjs.js +1 -1
  77. package/dist/components/CopyButton.es.js +1 -1
  78. package/dist/components/DataCodeSection.cjs.js +1 -1
  79. package/dist/components/DataCodeSection.es.js +1 -1
  80. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  81. package/dist/components/DataDetailsPanel.es.js +2 -2
  82. package/dist/components/DataKeysAndValues.cjs.js +1 -1
  83. package/dist/components/DataKeysAndValues.es.js +1 -1
  84. package/dist/components/DataList.cjs.js +3 -3
  85. package/dist/components/DataList.es.js +3 -3
  86. package/dist/components/DataPanel.cjs.js +1 -1
  87. package/dist/components/DataPanel.es.js +1 -1
  88. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  89. package/dist/components/DateRangeTimeline.es.js +1 -1
  90. package/dist/components/DateTimePicker.cjs.js +2 -2
  91. package/dist/components/DateTimePicker.es.js +2 -2
  92. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  93. package/dist/components/DateTimeRangePicker.es.js +1 -1
  94. package/dist/components/Dialog.cjs.js +2 -2
  95. package/dist/components/Dialog.es.js +3 -3
  96. package/dist/components/DisabledFeatureButton.cjs.js +1 -1
  97. package/dist/components/DisabledFeatureButton.es.js +1 -1
  98. package/dist/components/Drawer.cjs.js +1 -1
  99. package/dist/components/Drawer.es.js +1 -1
  100. package/dist/components/EmptyState.cjs.js +1 -1
  101. package/dist/components/EmptyState.es.js +1 -1
  102. package/dist/components/EnvironmentVariablesEditor.cjs.js +4 -4
  103. package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
  104. package/dist/components/ErrorBoundary.cjs.js +1 -1
  105. package/dist/components/ErrorBoundary.es.js +1 -1
  106. package/dist/components/FilterBar.cjs.js +3 -3
  107. package/dist/components/FilterBar.es.js +4 -4
  108. package/dist/components/FormFieldBlocks.cjs.js +2 -2
  109. package/dist/components/FormFieldBlocks.es.js +2 -2
  110. package/dist/components/InputGroup.cjs.js +1 -1
  111. package/dist/components/InputGroup.es.js +1 -1
  112. package/dist/components/IntegrationDialog.cjs.js +2 -2
  113. package/dist/components/IntegrationDialog.es.js +2 -2
  114. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  115. package/dist/components/JSONSchemaForm.es.js +2 -2
  116. package/dist/components/ListSearch.cjs.js +1 -1
  117. package/dist/components/ListSearch.es.js +1 -1
  118. package/dist/components/LogsDataList.cjs.js +1 -1
  119. package/dist/components/LogsDataList.es.js +1 -1
  120. package/dist/components/MainSidebar.cjs.js +125 -11
  121. package/dist/components/MainSidebar.cjs.js.map +1 -1
  122. package/dist/components/MainSidebar.es.js +120 -1
  123. package/dist/components/MainSidebar.es.js.map +1 -1
  124. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  125. package/dist/components/MarkdownRenderer.es.js +1 -1
  126. package/dist/components/Message.cjs.js +1 -1
  127. package/dist/components/Message.es.js +1 -1
  128. package/dist/components/MetricsCard.cjs.js +1 -1
  129. package/dist/components/MetricsCard.es.js +1 -1
  130. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  131. package/dist/components/MetricsKpiCard.es.js +1 -1
  132. package/dist/components/Notice.cjs.js +1 -1
  133. package/dist/components/Notice.es.js +1 -1
  134. package/dist/components/PageHeader.cjs.js +1 -1
  135. package/dist/components/PageHeader.es.js +1 -1
  136. package/dist/components/PageLayout.cjs.js +26 -3
  137. package/dist/components/PageLayout.cjs.js.map +1 -1
  138. package/dist/components/PageLayout.es.js +27 -4
  139. package/dist/components/PageLayout.es.js.map +1 -1
  140. package/dist/components/PrevNextNav.cjs.js +1 -1
  141. package/dist/components/PrevNextNav.es.js +1 -1
  142. package/dist/components/PropertyFilter.cjs.js +5 -5
  143. package/dist/components/PropertyFilter.cjs.js.map +1 -1
  144. package/dist/components/PropertyFilter.es.js +6 -6
  145. package/dist/components/PropertyFilter.es.js.map +1 -1
  146. package/dist/components/RuleBuilder.cjs.js +2 -2
  147. package/dist/components/RuleBuilder.es.js +2 -2
  148. package/dist/components/Select.cjs.js +1 -1
  149. package/dist/components/Select.es.js +1 -1
  150. package/dist/components/SideDialog.cjs.js +3 -3
  151. package/dist/components/SideDialog.es.js +3 -3
  152. package/dist/components/Tabs.cjs.js +3 -3
  153. package/dist/components/Tabs.es.js +3 -3
  154. package/dist/components/ThreadList.cjs.js +1 -1
  155. package/dist/components/ThreadList.es.js +1 -1
  156. package/dist/components/Truncate.cjs.js +1 -1
  157. package/dist/components/Truncate.es.js +1 -1
  158. package/dist/components/Workflow.cjs.js +4 -4
  159. package/dist/components/Workflow.es.js +4 -4
  160. package/dist/components/ai/ask-user.cjs.js +1 -1
  161. package/dist/components/ai/ask-user.es.js +1 -1
  162. package/dist/components/ai/chat-event.cjs.js +3 -3
  163. package/dist/components/ai/chat-event.es.js +4 -4
  164. package/dist/components/ai/plan.cjs.js +2 -2
  165. package/dist/components/ai/plan.es.js +2 -2
  166. package/dist/components/ai/tool-approval.cjs.js +1 -1
  167. package/dist/components/ai/tool-approval.es.js +1 -1
  168. package/dist/components/ai/tool-call.cjs.js +2 -2
  169. package/dist/components/ai/tool-call.es.js +3 -3
  170. package/dist/{copy-button-B5ZCtnTb.cjs → copy-button-D2MTGxq_.cjs} +2 -2
  171. package/dist/{copy-button-B5ZCtnTb.cjs.map → copy-button-D2MTGxq_.cjs.map} +1 -1
  172. package/dist/{copy-button-DZqxEuiE.js → copy-button-DcZ1mdw4.js} +2 -2
  173. package/dist/{copy-button-DZqxEuiE.js.map → copy-button-DcZ1mdw4.js.map} +1 -1
  174. package/dist/{data-code-section-iXzoOYMX.cjs → data-code-section-C10eY4qv.cjs} +5 -5
  175. package/dist/{data-code-section-iXzoOYMX.cjs.map → data-code-section-C10eY4qv.cjs.map} +1 -1
  176. package/dist/{data-code-section-DJRr65hS.js → data-code-section-CW9vy-nF.js} +5 -5
  177. package/dist/{data-code-section-DJRr65hS.js.map → data-code-section-CW9vy-nF.js.map} +1 -1
  178. package/dist/{data-keys-and-values-DhC4U4Yl.js → data-keys-and-values-BTYDB-K2.js} +3 -20
  179. package/dist/data-keys-and-values-BTYDB-K2.js.map +1 -0
  180. package/dist/{data-keys-and-values-BduKvvC5.cjs → data-keys-and-values-CMJ9zHKm.cjs} +3 -20
  181. package/dist/data-keys-and-values-CMJ9zHKm.cjs.map +1 -0
  182. package/dist/{data-list-DSbuTWLI.cjs → data-list-CH3HAhK5.cjs} +5 -5
  183. package/dist/data-list-CH3HAhK5.cjs.map +1 -0
  184. package/dist/{data-list-Cn0Ls4l2.js → data-list-DXjH5wkB.js} +5 -5
  185. package/dist/data-list-DXjH5wkB.js.map +1 -0
  186. package/dist/{data-list-spacer-C0YimRXC.js → data-list-spacer-BQ4_YeyT.js} +2 -2
  187. package/dist/{data-list-spacer-C0YimRXC.js.map → data-list-spacer-BQ4_YeyT.js.map} +1 -1
  188. package/dist/{data-list-spacer-DUBpzv_H.cjs → data-list-spacer-GIVW2hB1.cjs} +2 -2
  189. package/dist/{data-list-spacer-DUBpzv_H.cjs.map → data-list-spacer-GIVW2hB1.cjs.map} +1 -1
  190. package/dist/{data-panel-Bd_Xsz-W.cjs → data-panel-BG7wlPAX.cjs} +3 -3
  191. package/dist/{data-panel-Bd_Xsz-W.cjs.map → data-panel-BG7wlPAX.cjs.map} +1 -1
  192. package/dist/{data-panel-Y7wD0xlR.js → data-panel-Dclh0gKS.js} +3 -3
  193. package/dist/{data-panel-Y7wD0xlR.js.map → data-panel-Dclh0gKS.js.map} +1 -1
  194. package/dist/{date-time-range-picker-D2g3RU5B.cjs → date-time-range-picker-CiWpvWGR.cjs} +3 -3
  195. package/dist/{date-time-range-picker-D2g3RU5B.cjs.map → date-time-range-picker-CiWpvWGR.cjs.map} +1 -1
  196. package/dist/{date-time-range-picker-Cb86jLFc.js → date-time-range-picker-YGP0bTkl.js} +3 -3
  197. package/dist/{date-time-range-picker-Cb86jLFc.js.map → date-time-range-picker-YGP0bTkl.js.map} +1 -1
  198. package/dist/{dialog-Bilo4jEU.cjs → dialog-B2DGYuyi.cjs} +2 -2
  199. package/dist/{dialog-Bilo4jEU.cjs.map → dialog-B2DGYuyi.cjs.map} +1 -1
  200. package/dist/{dialog-DMOXPT0N.js → dialog-BvDeW4yR.js} +2 -2
  201. package/dist/{dialog-DMOXPT0N.js.map → dialog-BvDeW4yR.js.map} +1 -1
  202. package/dist/domains/auth/components/permission-denied.cjs.js +22 -0
  203. package/dist/domains/auth/components/permission-denied.cjs.js.map +1 -0
  204. package/dist/domains/auth/components/permission-denied.d.ts +2 -0
  205. package/dist/domains/auth/components/permission-denied.es.js +18 -0
  206. package/dist/domains/auth/components/permission-denied.es.js.map +1 -0
  207. package/dist/domains/auth/components/session-expired.cjs.js +40 -0
  208. package/dist/domains/auth/components/session-expired.cjs.js.map +1 -0
  209. package/dist/domains/auth/components/session-expired.d.ts +2 -0
  210. package/dist/domains/auth/components/session-expired.es.js +36 -0
  211. package/dist/domains/auth/components/session-expired.es.js.map +1 -0
  212. package/dist/domains/auth/services/sso-login.cjs.js +28 -0
  213. package/dist/domains/auth/services/sso-login.cjs.js.map +1 -0
  214. package/dist/domains/auth/services/sso-login.d.ts +2 -0
  215. package/dist/domains/auth/services/sso-login.es.js +24 -0
  216. package/dist/domains/auth/services/sso-login.es.js.map +1 -0
  217. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -3
  218. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js.map +1 -1
  219. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -3
  220. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js.map +1 -1
  221. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -2
  222. package/dist/domains/chat/attachments/composer-attachment.cjs.js.map +1 -1
  223. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -2
  224. package/dist/domains/chat/attachments/composer-attachment.es.js.map +1 -1
  225. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  226. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  227. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
  228. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
  229. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  230. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  231. package/dist/domains/chat/messages/reasoning.cjs.js +1 -1
  232. package/dist/domains/chat/messages/reasoning.es.js +1 -1
  233. package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
  234. package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
  235. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  236. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  237. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  238. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  239. package/dist/domains/chat/messages/tripwire-notice.cjs.js +1 -1
  240. package/dist/domains/chat/messages/tripwire-notice.es.js +1 -1
  241. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  242. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  243. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
  244. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
  245. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
  246. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
  247. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  248. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  249. package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
  250. package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
  251. package/dist/domains/logs/components/log-details-view.cjs.js +2 -2
  252. package/dist/domains/logs/components/log-details-view.es.js +2 -2
  253. package/dist/domains/logs/components/logs-error-content.cjs.js +6 -7
  254. package/dist/domains/logs/components/logs-error-content.cjs.js.map +1 -1
  255. package/dist/domains/logs/components/logs-error-content.es.js +4 -5
  256. package/dist/domains/logs/components/logs-error-content.es.js.map +1 -1
  257. package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
  258. package/dist/domains/logs/components/logs-list-view.es.js +1 -1
  259. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  260. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  261. package/dist/domains/logs/components/no-logs-info.cjs.js +2 -2
  262. package/dist/domains/logs/components/no-logs-info.es.js +2 -2
  263. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  264. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  265. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  266. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  267. package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
  268. package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
  269. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  270. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  271. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  272. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  273. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  274. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  275. package/dist/domains/metrics/components/latency-card-view.cjs.js +4 -4
  276. package/dist/domains/metrics/components/latency-card-view.es.js +4 -4
  277. package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
  278. package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
  279. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  280. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  281. package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -5
  282. package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
  283. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +4 -4
  284. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +4 -4
  285. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +4 -4
  286. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +4 -4
  287. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +4 -4
  288. package/dist/domains/metrics/components/traces-volume-card-view.es.js +4 -4
  289. package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
  290. package/dist/domains/traces/components/no-traces-info.es.js +1 -1
  291. package/dist/domains/traces/components/span-data-panel-view.cjs.js +19 -8
  292. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  293. package/dist/domains/traces/components/span-data-panel-view.es.js +20 -9
  294. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  295. package/dist/domains/traces/components/span-details-view.cjs.js +5 -3
  296. package/dist/domains/traces/components/span-details-view.cjs.js.map +1 -1
  297. package/dist/domains/traces/components/span-details-view.es.js +6 -4
  298. package/dist/domains/traces/components/span-details-view.es.js.map +1 -1
  299. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +3 -3
  300. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +3 -3
  301. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +5 -3
  302. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js.map +1 -1
  303. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +5 -3
  304. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js.map +1 -1
  305. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +13 -12
  306. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js.map +1 -1
  307. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +7 -6
  308. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js.map +1 -1
  309. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +1 -1
  310. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +1 -1
  311. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  312. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  313. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +79 -0
  314. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js.map +1 -0
  315. package/dist/domains/traces/components/span-payload/span-payload-processor.d.ts +2 -0
  316. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +75 -0
  317. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js.map +1 -0
  318. package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js +2 -0
  319. package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js.map +1 -1
  320. package/dist/domains/traces/components/span-payload/span-payload-registry.es.js +2 -1
  321. package/dist/domains/traces/components/span-payload/span-payload-registry.es.js.map +1 -1
  322. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +2 -2
  323. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -2
  324. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  325. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  326. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +85 -0
  327. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js.map +1 -0
  328. package/dist/domains/traces/components/span-payload/span-processor-attributes.d.ts +2 -0
  329. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +81 -0
  330. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js.map +1 -0
  331. package/dist/domains/traces/components/span-payload.cjs.js +4 -0
  332. package/dist/domains/traces/components/span-payload.cjs.js.map +1 -1
  333. package/dist/domains/traces/components/span-payload.es.js +2 -0
  334. package/dist/domains/traces/components/span-payload.es.js.map +1 -1
  335. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  336. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  337. package/dist/domains/traces/components/span-timing-hover-card.cjs.js +1 -1
  338. package/dist/domains/traces/components/span-timing-hover-card.es.js +1 -1
  339. package/dist/domains/traces/components/span-token-usage.cjs.js +1 -1
  340. package/dist/domains/traces/components/span-token-usage.es.js +1 -1
  341. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  342. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  343. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
  344. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
  345. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
  346. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
  347. package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
  348. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  349. package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
  350. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  351. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +12 -16
  352. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  353. package/dist/domains/traces/components/trace-data-panel-view.es.js +12 -16
  354. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  355. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  356. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  357. package/dist/domains/traces/components/trace-summary-description.cjs.js +8 -1
  358. package/dist/domains/traces/components/trace-summary-description.cjs.js.map +1 -1
  359. package/dist/domains/traces/components/trace-summary-description.es.js +8 -1
  360. package/dist/domains/traces/components/trace-summary-description.es.js.map +1 -1
  361. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  362. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  363. package/dist/domains/traces/components/traces-error-content.cjs.js +6 -6
  364. package/dist/domains/traces/components/traces-error-content.cjs.js.map +1 -1
  365. package/dist/domains/traces/components/traces-error-content.es.js +4 -4
  366. package/dist/domains/traces/components/traces-error-content.es.js.map +1 -1
  367. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  368. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  369. package/dist/domains/traces/components/traces-list-view.cjs.js +2 -2
  370. package/dist/domains/traces/components/traces-list-view.es.js +2 -2
  371. package/dist/domains/traces/components.cjs.js +4 -2
  372. package/dist/domains/traces/components.cjs.js.map +1 -1
  373. package/dist/domains/traces/components.es.js +2 -1
  374. package/dist/domains/traces/components.es.js.map +1 -1
  375. package/dist/domains/traces.cjs.js +4 -2
  376. package/dist/domains/traces.cjs.js.map +1 -1
  377. package/dist/domains/traces.es.js +2 -1
  378. package/dist/domains/traces.es.js.map +1 -1
  379. package/dist/{drawer-B6Ftum77.cjs → drawer-CmzM8WKh.cjs} +2 -2
  380. package/dist/{drawer-B6Ftum77.cjs.map → drawer-CmzM8WKh.cjs.map} +1 -1
  381. package/dist/{drawer-CnCsgToD.js → drawer-b_iqX4G0.js} +2 -2
  382. package/dist/{drawer-CnCsgToD.js.map → drawer-b_iqX4G0.js.map} +1 -1
  383. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  384. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  385. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  386. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  387. package/dist/ee/signals/components/signals-empty-state.cjs.js +2 -3
  388. package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
  389. package/dist/ee/signals/components/signals-empty-state.es.js +2 -3
  390. package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
  391. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
  392. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
  393. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +11 -12
  394. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  395. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +9 -10
  396. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  397. package/dist/ee/signals/examples-pager.cjs.js +1 -3
  398. package/dist/ee/signals/examples-pager.cjs.js.map +1 -1
  399. package/dist/ee/signals/examples-pager.es.js +1 -3
  400. package/dist/ee/signals/examples-pager.es.js.map +1 -1
  401. package/dist/ee/signals/flow-card.cjs.js +1 -1
  402. package/dist/ee/signals/flow-card.es.js +1 -1
  403. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  404. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  405. package/dist/ee/signals/sankey-signals.cjs.js +1 -1
  406. package/dist/ee/signals/sankey-signals.es.js +1 -1
  407. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +3 -3
  408. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +3 -3
  409. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +2 -2
  410. package/dist/ee/signals/settings/trace-signal-settings.es.js +2 -2
  411. package/dist/ee/signals/signals-error-state.cjs.js +2 -2
  412. package/dist/ee/signals/signals-error-state.cjs.js.map +1 -1
  413. package/dist/ee/signals/signals-error-state.es.js +2 -2
  414. package/dist/ee/signals/signals-error-state.es.js.map +1 -1
  415. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -2
  416. package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
  417. package/dist/ee/signals/snapshot-timeline.es.js +1 -2
  418. package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
  419. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  420. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  421. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  422. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  423. package/dist/ee/signals/trace-insight-view.cjs.js +3 -12
  424. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  425. package/dist/ee/signals/trace-insight-view.es.js +3 -12
  426. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  427. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  428. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  429. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +10 -19
  430. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js.map +1 -1
  431. package/dist/ee/topics/components/topic-trace-summary-list.es.js +10 -19
  432. package/dist/ee/topics/components/topic-trace-summary-list.es.js.map +1 -1
  433. package/dist/{filter-bar-chip-B_k_vbip.cjs → filter-bar-chip-Y_lejyj9.cjs} +3 -3
  434. package/dist/{filter-bar-chip-B_k_vbip.cjs.map → filter-bar-chip-Y_lejyj9.cjs.map} +1 -1
  435. package/dist/{filter-bar-chip-BlvuAPve.js → filter-bar-chip-yvB9JA0r.js} +3 -3
  436. package/dist/{filter-bar-chip-BlvuAPve.js.map → filter-bar-chip-yvB9JA0r.js.map} +1 -1
  437. package/dist/hooks/use-fluid-hover.cjs.js +2 -4
  438. package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
  439. package/dist/hooks/use-fluid-hover.es.js +2 -4
  440. package/dist/hooks/use-fluid-hover.es.js.map +1 -1
  441. package/dist/{input-group-DaIV9Orp.cjs → input-group-Dt7PI7Bh.cjs} +2 -2
  442. package/dist/{input-group-DaIV9Orp.cjs.map → input-group-Dt7PI7Bh.cjs.map} +1 -1
  443. package/dist/{input-group-B-pskRGt.js → input-group-QyOyAe2m.js} +2 -2
  444. package/dist/{input-group-B-pskRGt.js.map → input-group-QyOyAe2m.js.map} +1 -1
  445. package/dist/layout/tabbed-container.cjs.js +6 -6
  446. package/dist/layout/tabbed-container.es.js +6 -6
  447. package/dist/{list-search-DhReauU5.cjs → list-search-CspJ7pQa.cjs} +2 -2
  448. package/dist/{list-search-DhReauU5.cjs.map → list-search-CspJ7pQa.cjs.map} +1 -1
  449. package/dist/{list-search-DK2yMiME.js → list-search-hX4N3d_Y.js} +2 -2
  450. package/dist/{list-search-DK2yMiME.js.map → list-search-hX4N3d_Y.js.map} +1 -1
  451. package/dist/{logs-data-list-DgoCLb6k.cjs → logs-data-list-BGJTRyO_.cjs} +2 -2
  452. package/dist/{logs-data-list-DgoCLb6k.cjs.map → logs-data-list-BGJTRyO_.cjs.map} +1 -1
  453. package/dist/{logs-data-list-B24gfDle.js → logs-data-list-XU1hCwI5.js} +2 -2
  454. package/dist/{logs-data-list-B24gfDle.js.map → logs-data-list-XU1hCwI5.js.map} +1 -1
  455. package/dist/{main-sidebar-DYfRxFn4.cjs → main-sidebar-link-active-CYZwvfPC.cjs} +5 -118
  456. package/dist/main-sidebar-link-active-CYZwvfPC.cjs.map +1 -0
  457. package/dist/{main-sidebar-Cf5G9iaC.js → main-sidebar-link-active-NW5N8nMT.js} +7 -119
  458. package/dist/main-sidebar-link-active-NW5N8nMT.js.map +1 -0
  459. package/dist/{markdown-renderer-BUqHHH4y.js → markdown-renderer-4cVz18hI.js} +3 -3
  460. package/dist/{markdown-renderer-BUqHHH4y.js.map → markdown-renderer-4cVz18hI.js.map} +1 -1
  461. package/dist/{markdown-renderer-CZLwgva-.cjs → markdown-renderer-zbO5SMQg.cjs} +3 -3
  462. package/dist/{markdown-renderer-CZLwgva-.cjs.map → markdown-renderer-zbO5SMQg.cjs.map} +1 -1
  463. package/dist/{metrics-card-CN4VRQQJ.js → metrics-card-Bzm6m1dy.js} +3 -3
  464. package/dist/{metrics-card-CN4VRQQJ.js.map → metrics-card-Bzm6m1dy.js.map} +1 -1
  465. package/dist/{metrics-card-DStXI6yn.cjs → metrics-card-DCCHIG-z.cjs} +3 -3
  466. package/dist/{metrics-card-DStXI6yn.cjs.map → metrics-card-DCCHIG-z.cjs.map} +1 -1
  467. package/dist/{metrics-kpi-card-CvOXyEGn.cjs → metrics-kpi-card-Bhb4R4z0.cjs} +2 -2
  468. package/dist/{metrics-kpi-card-CvOXyEGn.cjs.map → metrics-kpi-card-Bhb4R4z0.cjs.map} +1 -1
  469. package/dist/{metrics-kpi-card-C-XLN_Us.js → metrics-kpi-card-BrnFhFQm.js} +2 -2
  470. package/dist/{metrics-kpi-card-C-XLN_Us.js.map → metrics-kpi-card-BrnFhFQm.js.map} +1 -1
  471. package/dist/new/layout/app-shell.cjs.js +13 -0
  472. package/dist/new/layout/app-shell.cjs.js.map +1 -1
  473. package/dist/new/layout/app-shell.es.js +13 -1
  474. package/dist/new/layout/app-shell.es.js.map +1 -1
  475. package/dist/new/layout/page-header.cjs.js +1 -1
  476. package/dist/new/layout/page-header.es.js +1 -1
  477. package/dist/new/settings.cjs.js +42 -2
  478. package/dist/new/settings.cjs.js.map +1 -1
  479. package/dist/new/settings.es.js +43 -3
  480. package/dist/new/settings.es.js.map +1 -1
  481. package/dist/new/sidebar.cjs.js +33 -33
  482. package/dist/new/sidebar.cjs.js.map +1 -1
  483. package/dist/new/sidebar.es.js +3 -3
  484. package/dist/new/sidebar.es.js.map +1 -1
  485. package/dist/{page-header-CSigVThQ.js → page-header-CyXAezlZ.js} +25 -26
  486. package/dist/page-header-CyXAezlZ.js.map +1 -0
  487. package/dist/{page-header-DzEEkOca.cjs → page-header-Dk3s3XtC.cjs} +25 -26
  488. package/dist/page-header-Dk3s3XtC.cjs.map +1 -0
  489. package/dist/primitives/control-size.cjs.js +1 -2
  490. package/dist/primitives/control-size.cjs.js.map +1 -1
  491. package/dist/primitives/control-size.es.js +1 -2
  492. package/dist/primitives/control-size.es.js.map +1 -1
  493. package/dist/primitives/form-element.cjs.js +0 -2
  494. package/dist/primitives/form-element.cjs.js.map +1 -1
  495. package/dist/primitives/form-element.es.js +1 -2
  496. package/dist/primitives/form-element.es.js.map +1 -1
  497. package/dist/primitives/menu-item.cjs.js +1 -1
  498. package/dist/primitives/menu-item.cjs.js.map +1 -1
  499. package/dist/primitives/menu-item.es.js +1 -1
  500. package/dist/primitives/menu-item.es.js.map +1 -1
  501. package/dist/primitives/trigger-button.cjs.js +1 -1
  502. package/dist/primitives/trigger-button.es.js +1 -1
  503. package/dist/{property-filter-applied-uYr-sCdm.js → property-filter-applied-CVVhhWGf.js} +2 -2
  504. package/dist/{property-filter-applied-uYr-sCdm.js.map → property-filter-applied-CVVhhWGf.js.map} +1 -1
  505. package/dist/{property-filter-applied-DxSZN3Om.cjs → property-filter-applied-DEeqrI0g.cjs} +2 -2
  506. package/dist/{property-filter-applied-DxSZN3Om.cjs.map → property-filter-applied-DEeqrI0g.cjs.map} +1 -1
  507. package/dist/resize/panel-drawer.cjs.js +1 -1
  508. package/dist/resize/panel-drawer.es.js +1 -1
  509. package/dist/{search-field-block-Bg9GPPaA.cjs → search-field-block-D34NmyvF.cjs} +2 -2
  510. package/dist/{search-field-block-Bg9GPPaA.cjs.map → search-field-block-D34NmyvF.cjs.map} +1 -1
  511. package/dist/{search-field-block-B0twxGWI.js → search-field-block-DCWcRx4k.js} +2 -2
  512. package/dist/{search-field-block-B0twxGWI.js.map → search-field-block-DCWcRx4k.js.map} +1 -1
  513. package/dist/{select-65j5NjtJ.cjs → select-DjXJeDlO.cjs} +2 -2
  514. package/dist/select-DjXJeDlO.cjs.map +1 -0
  515. package/dist/{select-BiY-SoMJ.js → select-TslOr65J.js} +2 -2
  516. package/dist/select-TslOr65J.js.map +1 -0
  517. package/dist/{select-field-block-D_b9N7od.js → select-field-block-660lYYtx.js} +2 -2
  518. package/dist/{select-field-block-D_b9N7od.js.map → select-field-block-660lYYtx.js.map} +1 -1
  519. package/dist/{select-field-block-CZbN1w__.cjs → select-field-block-BPSwJ76v.cjs} +2 -2
  520. package/dist/{select-field-block-CZbN1w__.cjs.map → select-field-block-BPSwJ76v.cjs.map} +1 -1
  521. package/dist/{span-payload-primitives-DlIOpCII.js → span-payload-primitives-DIIZ42fv.js} +3 -3
  522. package/dist/{span-payload-primitives-DlIOpCII.js.map → span-payload-primitives-DIIZ42fv.js.map} +1 -1
  523. package/dist/{span-payload-primitives-BjBTICfq.cjs → span-payload-primitives-c6C46Zp1.cjs} +3 -3
  524. package/dist/{span-payload-primitives-BjBTICfq.cjs.map → span-payload-primitives-c6C46Zp1.cjs.map} +1 -1
  525. package/dist/src/domains/auth/components/permission-denied.d.ts +6 -0
  526. package/dist/src/{ds/components/PermissionDenied → domains/auth/components}/permission-denied.stories.d.ts +1 -3
  527. package/dist/src/domains/auth/components/session-expired.d.ts +5 -0
  528. package/dist/src/{ds/components/SessionExpired → domains/auth/components}/session-expired.stories.d.ts +1 -2
  529. package/dist/src/domains/auth/services/sso-login.d.ts +7 -0
  530. package/dist/src/domains/logs/components/logs-error-content.d.ts +2 -2
  531. package/dist/src/domains/traces/components/index.d.ts +0 -1
  532. package/dist/src/domains/traces/components/span-payload/index.d.ts +2 -0
  533. package/dist/src/domains/traces/components/span-payload/span-payload-processor.d.ts +10 -0
  534. package/dist/src/domains/traces/components/span-payload/span-payload-registry.d.ts +1 -0
  535. package/dist/src/domains/traces/components/span-payload/span-payload.stories.d.ts +2 -0
  536. package/dist/src/domains/traces/components/span-payload/span-processor-attributes.d.ts +10 -0
  537. package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +94 -0
  538. package/dist/src/domains/traces/components/trace-summary-description.d.ts +1 -0
  539. package/dist/src/domains/traces/components/traces-error-content.d.ts +2 -2
  540. package/dist/src/ds/components/Button/Button.d.ts +1 -1
  541. package/dist/src/ds/components/ButtonsGroup/buttons-group.stories.d.ts +2 -2
  542. package/dist/src/ds/components/Columns/column-root.d.ts +1 -3
  543. package/dist/src/ds/components/Columns/columns.stories.d.ts +0 -1
  544. package/dist/src/ds/components/Columns/index.d.ts +0 -1
  545. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +1 -2
  546. package/dist/src/ds/components/DataKeysAndValues/data-keys-and-values-root.d.ts +1 -2
  547. package/dist/src/ds/components/DataKeysAndValues/data-keys-and-values.stories.d.ts +1 -2
  548. package/dist/src/ds/components/EmptyState/EmptyState.d.ts +6 -2
  549. package/dist/src/ds/components/EmptyState/empty-state.stories.d.ts +1 -0
  550. package/dist/src/ds/components/PageLayout/page-layout.d.ts +8 -3
  551. package/dist/src/ds/components/PageLayout/page-layout.stories.d.ts +3 -0
  552. package/dist/src/ds/components/Select/select.d.ts +3 -4
  553. package/dist/src/ds/components/Select/select.stories.d.ts +2 -2
  554. package/dist/src/ds/new/layout/app-shell/index.d.ts +1 -0
  555. package/dist/src/ds/new/layout/app-shell/main-card.d.ts +5 -0
  556. package/dist/src/ds/new/settings/index.d.ts +1 -1
  557. package/dist/src/ds/new/settings/settings.stories.d.ts +2 -0
  558. package/dist/src/ds/primitives/control-size.d.ts +1 -1
  559. package/dist/src/ds/primitives/form-element.d.ts +0 -1
  560. package/dist/src/hooks/stories/browser/use-autoscroll.stories.d.ts +22 -0
  561. package/dist/src/hooks/stories/browser/use-copy-to-clipboard.stories.d.ts +22 -0
  562. package/dist/src/hooks/stories/browser/use-fluid-hover.stories.d.ts +17 -0
  563. package/dist/src/hooks/stories/browser/use-in-view.stories.d.ts +17 -0
  564. package/dist/src/hooks/stories/browser/use-is-apple-platform.stories.d.ts +17 -0
  565. package/dist/src/hooks/stories/browser/use-is-mobile.stories.d.ts +32 -0
  566. package/dist/src/hooks/stories/browser/use-isomorphic-layout-effect.stories.d.ts +32 -0
  567. package/dist/src/hooks/stories/browser/use-keyboard-shortcut-label.stories.d.ts +22 -0
  568. package/dist/src/hooks/stories/browser/use-register-fluid-hover-item.stories.d.ts +17 -0
  569. package/dist/src/hooks/stories/environment/use-custom-environment-variables-editor.stories.d.ts +17 -0
  570. package/dist/src/hooks/stories/environment/use-environment-variables-editor.stories.d.ts +17 -0
  571. package/dist/src/hooks/stories/state/use-debounced-value.stories.d.ts +32 -0
  572. package/dist/src/hooks/stories/state/use-expiring-local-storage-state.stories.d.ts +17 -0
  573. package/dist/src/hooks/stories/state/use-local-storage-state.stories.d.ts +17 -0
  574. package/dist/src/hooks/stories/text/use-is-clamped.stories.d.ts +17 -0
  575. package/dist/src/hooks/stories/text/use-measured-auto-height.stories.d.ts +17 -0
  576. package/dist/src/hooks/stories/text/use-scroll-to-first-highlight.stories.d.ts +17 -0
  577. package/dist/src/hooks/stories/text/use-text-highlight.stories.d.ts +17 -0
  578. package/dist/src/lib/keyboard/use-keyboard-scope-depth.stories.d.ts +17 -0
  579. package/dist/src/lib/keyboard/use-keyboard-shortcuts-context.stories.d.ts +17 -0
  580. package/dist/src/lib/keyboard/use-table-keydown.stories.d.ts +15 -0
  581. package/dist/style.css +28 -91
  582. package/dist/{tabs-content-DMrffE9p.js → tabs-content-7ODUUdQ0.js} +2 -2
  583. package/dist/{tabs-content-DMrffE9p.js.map → tabs-content-7ODUUdQ0.js.map} +1 -1
  584. package/dist/{tabs-content-CuUlcS67.cjs → tabs-content-DlCJoQUW.cjs} +2 -2
  585. package/dist/{tabs-content-CuUlcS67.cjs.map → tabs-content-DlCJoQUW.cjs.map} +1 -1
  586. package/dist/{tabs-root-DrK1hxeV.cjs → tabs-root-COCL6jcx.cjs} +2 -2
  587. package/dist/{tabs-root-DrK1hxeV.cjs.map → tabs-root-COCL6jcx.cjs.map} +1 -1
  588. package/dist/{tabs-root-B2sdkQ3A.js → tabs-root-UNPxoGhW.js} +2 -2
  589. package/dist/{tabs-root-B2sdkQ3A.js.map → tabs-root-UNPxoGhW.js.map} +1 -1
  590. package/dist/{tabs-tab-ClmulJmM.cjs → tabs-tab-DFmRMdi3.cjs} +2 -2
  591. package/dist/{tabs-tab-ClmulJmM.cjs.map → tabs-tab-DFmRMdi3.cjs.map} +1 -1
  592. package/dist/{tabs-tab-u6LS5twu.js → tabs-tab-DluwCnDF.js} +2 -2
  593. package/dist/{tabs-tab-u6LS5twu.js.map → tabs-tab-DluwCnDF.js.map} +1 -1
  594. package/dist/{time-picker-PXFCgAuR.cjs → time-picker-BokshW_l.cjs} +2 -2
  595. package/dist/{time-picker-PXFCgAuR.cjs.map → time-picker-BokshW_l.cjs.map} +1 -1
  596. package/dist/{time-picker-DMroqHbw.js → time-picker-D0GksHc0.js} +2 -2
  597. package/dist/{time-picker-DMroqHbw.js.map → time-picker-D0GksHc0.js.map} +1 -1
  598. package/dist/{tool-approval-DzOGIKRh.js → tool-approval-DXUFyrSl.js} +2 -2
  599. package/dist/{tool-approval-DzOGIKRh.js.map → tool-approval-DXUFyrSl.js.map} +1 -1
  600. package/dist/{tool-approval-DYX_ZNWc.cjs → tool-approval-LIy1nZZJ.cjs} +2 -2
  601. package/dist/{tool-approval-DYX_ZNWc.cjs.map → tool-approval-LIy1nZZJ.cjs.map} +1 -1
  602. package/dist/{tool-call-HNNRcirD.js → tool-call-Bs-9Cah5.js} +2 -2
  603. package/dist/{tool-call-HNNRcirD.js.map → tool-call-Bs-9Cah5.js.map} +1 -1
  604. package/dist/{tool-call-vZeZ5XT5.cjs → tool-call-C0JeHe8Z.cjs} +2 -2
  605. package/dist/{tool-call-vZeZ5XT5.cjs.map → tool-call-C0JeHe8Z.cjs.map} +1 -1
  606. package/dist/{traces-data-list-DHrC158-.js → traces-data-list-Cjy5a-1f.js} +3 -3
  607. package/dist/{traces-data-list-DHrC158-.js.map → traces-data-list-Cjy5a-1f.js.map} +1 -1
  608. package/dist/{traces-data-list-DNOtQze4.cjs → traces-data-list-DLeKSbaZ.cjs} +3 -3
  609. package/dist/{traces-data-list-DNOtQze4.cjs.map → traces-data-list-DLeKSbaZ.cjs.map} +1 -1
  610. package/package.json +13 -13
  611. package/dist/Button-KUj0U-5I.js.map +0 -1
  612. package/dist/Button-MMZPEb_q.cjs.map +0 -1
  613. package/dist/Card-B_buJ5yF.js.map +0 -1
  614. package/dist/Card-DwGasv0K.cjs.map +0 -1
  615. package/dist/EmptyState-B6cyZw6m.js.map +0 -1
  616. package/dist/EmptyState-DiSP6UIy.cjs.map +0 -1
  617. package/dist/ErrorState-B0839u-q.cjs +0 -21
  618. package/dist/ErrorState-B0839u-q.cjs.map +0 -1
  619. package/dist/ErrorState-HyRJdaA2.js +0 -19
  620. package/dist/ErrorState-HyRJdaA2.js.map +0 -1
  621. package/dist/PermissionDenied-CTqnE57B.js +0 -27
  622. package/dist/PermissionDenied-CTqnE57B.js.map +0 -1
  623. package/dist/PermissionDenied-fdVmTjjf.cjs +0 -29
  624. package/dist/PermissionDenied-fdVmTjjf.cjs.map +0 -1
  625. package/dist/SessionExpired-B9e1Kx4I.js +0 -44
  626. package/dist/SessionExpired-B9e1Kx4I.js.map +0 -1
  627. package/dist/SessionExpired-GSQkcV9f.cjs +0 -46
  628. package/dist/SessionExpired-GSQkcV9f.cjs.map +0 -1
  629. package/dist/combobox-styles-CSsS2LEx.cjs.map +0 -1
  630. package/dist/combobox-styles-iuJUkJEQ.js.map +0 -1
  631. package/dist/components/DataFilter.cjs.js +0 -173
  632. package/dist/components/DataFilter.cjs.js.map +0 -1
  633. package/dist/components/DataFilter.d.ts +0 -2
  634. package/dist/components/DataFilter.es.js +0 -169
  635. package/dist/components/DataFilter.es.js.map +0 -1
  636. package/dist/components/ErrorState.cjs.js +0 -10
  637. package/dist/components/ErrorState.cjs.js.map +0 -1
  638. package/dist/components/ErrorState.d.ts +0 -2
  639. package/dist/components/ErrorState.es.js +0 -2
  640. package/dist/components/ErrorState.es.js.map +0 -1
  641. package/dist/components/PermissionDenied.cjs.js +0 -10
  642. package/dist/components/PermissionDenied.cjs.js.map +0 -1
  643. package/dist/components/PermissionDenied.d.ts +0 -2
  644. package/dist/components/PermissionDenied.es.js +0 -2
  645. package/dist/components/PermissionDenied.es.js.map +0 -1
  646. package/dist/components/Sections.cjs.js +0 -13
  647. package/dist/components/Sections.cjs.js.map +0 -1
  648. package/dist/components/Sections.d.ts +0 -2
  649. package/dist/components/Sections.es.js +0 -9
  650. package/dist/components/Sections.es.js.map +0 -1
  651. package/dist/components/SessionExpired.cjs.js +0 -10
  652. package/dist/components/SessionExpired.cjs.js.map +0 -1
  653. package/dist/components/SessionExpired.d.ts +0 -2
  654. package/dist/components/SessionExpired.es.js +0 -2
  655. package/dist/components/SessionExpired.es.js.map +0 -1
  656. package/dist/components/SettingsLayout.cjs.js +0 -10
  657. package/dist/components/SettingsLayout.cjs.js.map +0 -1
  658. package/dist/components/SettingsLayout.d.ts +0 -2
  659. package/dist/components/SettingsLayout.es.js +0 -2
  660. package/dist/components/SettingsLayout.es.js.map +0 -1
  661. package/dist/data-keys-and-values-BduKvvC5.cjs.map +0 -1
  662. package/dist/data-keys-and-values-DhC4U4Yl.js.map +0 -1
  663. package/dist/data-list-Cn0Ls4l2.js.map +0 -1
  664. package/dist/data-list-DSbuTWLI.cjs.map +0 -1
  665. package/dist/domains/traces/components/trace-keys-and-values.cjs.js +0 -70
  666. package/dist/domains/traces/components/trace-keys-and-values.cjs.js.map +0 -1
  667. package/dist/domains/traces/components/trace-keys-and-values.d.ts +0 -2
  668. package/dist/domains/traces/components/trace-keys-and-values.es.js +0 -66
  669. package/dist/domains/traces/components/trace-keys-and-values.es.js.map +0 -1
  670. package/dist/main-sidebar-Cf5G9iaC.js.map +0 -1
  671. package/dist/main-sidebar-DYfRxFn4.cjs.map +0 -1
  672. package/dist/page-header-CSigVThQ.js.map +0 -1
  673. package/dist/page-header-DzEEkOca.cjs.map +0 -1
  674. package/dist/select-65j5NjtJ.cjs.map +0 -1
  675. package/dist/select-BiY-SoMJ.js.map +0 -1
  676. package/dist/settings-layout-BGvMSClL.cjs +0 -49
  677. package/dist/settings-layout-BGvMSClL.cjs.map +0 -1
  678. package/dist/settings-layout-DA-JWqW3.js +0 -47
  679. package/dist/settings-layout-DA-JWqW3.js.map +0 -1
  680. package/dist/src/domains/traces/components/trace-keys-and-values.d.ts +0 -24
  681. package/dist/src/domains/traces/components/trace-keys-and-values.stories.d.ts +0 -28
  682. package/dist/src/ds/components/Columns/multi-column.d.ts +0 -7
  683. package/dist/src/ds/components/DataFilter/index.d.ts +0 -2
  684. package/dist/src/ds/components/DataFilter/select-data-filter.d.ts +0 -40
  685. package/dist/src/ds/components/DataFilter/select-data-filter.stories.d.ts +0 -8
  686. package/dist/src/ds/components/ErrorState/ErrorState.d.ts +0 -8
  687. package/dist/src/ds/components/ErrorState/error-state.stories.d.ts +0 -8
  688. package/dist/src/ds/components/ErrorState/index.d.ts +0 -2
  689. package/dist/src/ds/components/PermissionDenied/PermissionDenied.d.ts +0 -16
  690. package/dist/src/ds/components/PermissionDenied/index.d.ts +0 -2
  691. package/dist/src/ds/components/Sections/index.d.ts +0 -1
  692. package/dist/src/ds/components/Sections/sections.d.ts +0 -5
  693. package/dist/src/ds/components/Sections/sections.stories.d.ts +0 -8
  694. package/dist/src/ds/components/SessionExpired/SessionExpired.d.ts +0 -11
  695. package/dist/src/ds/components/SessionExpired/index.d.ts +0 -2
  696. package/dist/src/ds/components/SettingsLayout/index.d.ts +0 -1
  697. package/dist/src/ds/components/SettingsLayout/settings-layout.stories.d.ts +0 -52
  698. /package/dist/src/ds/{components/SettingsLayout → new/settings}/settings-layout.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyFilter.cjs.js","sources":["../../src/ds/components/PropertyFilter/property-filter-creator.tsx"],"sourcesContent":["import {\n ArrowLeftIcon,\n ChevronRightIcon,\n FilterIcon,\n ListFilterPlusIcon,\n PlusIcon,\n ListFilterPlus,\n X,\n} from 'lucide-react';\nimport { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes } from 'react';\nimport { PickMultiPanel } from './pick-multi-panel';\nimport type { PropertyFilterField, PropertyFilterToken } from './types';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { Combobox } from '@/ds/components/Combobox/combobox';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover/popover';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { MENU_SIDE_OFFSET, menuEmptyClass, menuItemClass, menuItemTrailingIconClass } from '@/ds/primitives/menu-item';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\n// Plain <button>s navigated with roving focus (not Base UI): the fluid highlight follows focus.\nconst filterItemClass = cn(menuItemClass, 'focus:text-foreground');\n\nconst FilterMenuButton = forwardRef<HTMLButtonElement, ButtonHTMLAttributes<HTMLButtonElement>>((props, ref) => (\n <button type=\"button\" role=\"menuitem\" data-filter-item=\"\" ref={useFluidMenuItemRef(ref)} {...props} />\n));\nFilterMenuButton.displayName = 'FilterMenuButton';\n\nexport type PropertyFilterCreatorProps = {\n fields: PropertyFilterField[];\n tokens: PropertyFilterToken[];\n onTokensChange: (tokens: PropertyFilterToken[]) => void;\n label?: string;\n disabled?: boolean;\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n /**\n * Called when the user picks a text (id-style) field. Consumers are expected\n * to render a pending applied-filter pill with an active input so the user\n * can type the value inline instead of in this popover.\n */\n onStartTextFilter?: (fieldId: string) => void;\n /**\n * Field ids hidden from the Add Filter dropdown. Use to prevent users from\n * recreating a filter that an upstream context already owns (e.g. the agent\n * id when viewing the agent-scoped traces tab).\n */\n hiddenFieldIds?: readonly string[];\n};\n\n/**\n * Minimal Linear-style filter creator: a `+ Filter` button whose popover walks\n * the user through property → value → commit. For id-style text fields, the\n * picker closes immediately and the applied-filter pill owns the input. For\n * `pick-multi` fields (e.g. Root Entity Name) hovering the item opens a\n * separate side popover with checkboxes — each check adds its own applied\n * filter and the main popover stays open so users can pick many.\n */\nexport function PropertyFilterCreator({\n fields,\n tokens,\n onTokensChange,\n label = 'Add Filter',\n disabled,\n size,\n onStartTextFilter,\n hiddenFieldIds,\n}: PropertyFilterCreatorProps) {\n const visibleFields = useMemo(() => {\n if (!hiddenFieldIds || hiddenFieldIds.length === 0) return fields;\n const hidden = new Set(hiddenFieldIds);\n return fields.filter(f => !hidden.has(f.id));\n }, [fields, hiddenFieldIds]);\n const [open, setOpen] = useState(false);\n const menu = useFluidMenu<HTMLDivElement>();\n const [fieldId, setFieldId] = useState<string | undefined>();\n const [multiValue, setMultiValue] = useState<string[]>([]);\n const [error, setError] = useState<string | undefined>();\n // Single source of truth for which pick-multi side panel is open. Opens only\n // via explicit click/keyboard press on the menu item — no hover/focus\n // auto-open (was too flicker-prone).\n const [openPickMultiFieldId, setOpenPickMultiFieldId] = useState<string | undefined>();\n\n // When the user picks a text field we close this popover and hand off focus\n // to the newly-created pill's input — prevent Radix from returning focus to\n // the trigger button in that case.\n const skipCloseFocusRef = useRef(false);\n\n const togglePickMulti = useCallback((id: string) => {\n setOpenPickMultiFieldId(current => (current === id ? undefined : id));\n }, []);\n const closePickMulti = useCallback(() => setOpenPickMultiFieldId(undefined), []);\n\n useEffect(() => {\n if (!open) setOpenPickMultiFieldId(undefined);\n }, [open]);\n\n const selectedField = useMemo(() => visibleFields.find(f => f.id === fieldId), [visibleFields, fieldId]);\n // Only single-use kinds (text, multi-select) count as \"used\". `pick-multi`\n // allows multiple tokens with the same fieldId.\n const singleUseFieldIds = useMemo(() => {\n const ids = new Set<string>();\n for (const token of tokens) {\n const field = fields.find(f => f.id === token.fieldId);\n if (field && field.kind !== 'pick-multi') ids.add(token.fieldId);\n }\n return ids;\n }, [tokens, fields]);\n\n const reset = useCallback(() => {\n setFieldId(undefined);\n setMultiValue([]);\n setError(undefined);\n }, []);\n\n useEffect(() => {\n if (!open) reset();\n }, [open, reset]);\n\n /**\n * Replace whatever token exists for `fieldId` with the given value. Used by\n * both single-select (radio) and multi-select (checkbox) pick-multi panels.\n * An empty list means nothing is selected, which removes the token here —\n * unlike the applied pill, where the filter stays on in a neutral state.\n */\n const replacePickMultiToken = useCallback(\n (fieldId: string, value: string | string[]) => {\n const existingIndex = tokens.findIndex(t => t.fieldId === fieldId);\n\n if (Array.isArray(value) && value.length === 0) {\n if (existingIndex === -1) return;\n onTokensChange(tokens.filter((_, i) => i !== existingIndex));\n return;\n }\n\n if (existingIndex === -1) {\n onTokensChange([...tokens, { fieldId, value }]);\n return;\n }\n\n const nextTokens = [...tokens];\n nextTokens[existingIndex] = { fieldId, value };\n onTokensChange(nextTokens);\n },\n [onTokensChange, tokens],\n );\n\n const commit = useCallback(() => {\n if (!selectedField) {\n setError('Choose a property first.');\n return;\n }\n if (singleUseFieldIds.has(selectedField.id)) {\n setError(`Remove the existing ${selectedField.label} filter before adding another.`);\n return;\n }\n if (multiValue.length === 0) {\n setError(`Choose at least one ${selectedField.label.toLowerCase()} value.`);\n return;\n }\n onTokensChange([...tokens, { fieldId: selectedField.id, value: multiValue }]);\n setOpen(false);\n }, [multiValue, onTokensChange, selectedField, singleUseFieldIds, tokens]);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button variant=\"outline\" size={size} disabled={disabled} icon={<ListFilterPlusIcon />}>\n {label}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align=\"end\"\n sideOffset={MENU_SIDE_OFFSET}\n className={cn('w-64', selectedField ? 'p-3' : 'p-1')}\n initialFocus={false}\n finalFocus={() => {\n if (skipCloseFocusRef.current) {\n skipCloseFocusRef.current = false;\n return false;\n }\n return true;\n }}\n >\n <div className={cn('grid', selectedField && 'gap-3')}>\n {selectedField && (\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n aria-label=\"Back to properties\"\n className={cn(quietTextHover, controlStateColorTransition)}\n onClick={reset}\n >\n <ArrowLeftIcon className=\"size-4\" />\n </button>\n <FilterIcon className=\"size-4 shrink-0 text-muted-foreground\" />\n <span className=\"text-caption text-muted-foreground\">{`${selectedField.label} · is`}</span>\n </div>\n )}\n\n {!selectedField && (\n <div\n role=\"menu\"\n className={cn('max-h-[80dvh] overflow-auto', menu.containerClassName)}\n {...menu.getContainerProps({})}\n onKeyDown={e => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp' && e.key !== 'Home' && e.key !== 'End') return;\n const buttons = Array.from(\n e.currentTarget.querySelectorAll<HTMLButtonElement>('[data-filter-item]:not([disabled])'),\n );\n if (buttons.length === 0) return;\n e.preventDefault();\n const active = document.activeElement as HTMLElement | null;\n const current = buttons.findIndex(b => b === active);\n let next: number;\n if (e.key === 'Home') next = 0;\n else if (e.key === 'End') next = buttons.length - 1;\n else if (e.key === 'ArrowDown') next = current < 0 ? 0 : (current + 1) % buttons.length;\n else next = current <= 0 ? buttons.length - 1 : current - 1;\n buttons[next]?.focus();\n }}\n >\n <FluidMenuItems menu={menu}>\n {visibleFields.length > 0 ? (\n visibleFields.map(f => {\n const used = singleUseFieldIds.has(f.id);\n if (f.kind === 'pick-multi') {\n return (\n <PickMultiMenuItem\n key={f.id}\n field={f}\n tokens={tokens}\n onChange={replacePickMultiToken}\n open={openPickMultiFieldId === f.id}\n onToggle={togglePickMulti}\n onClose={closePickMulti}\n />\n );\n }\n return (\n <FilterMenuButton\n key={f.id}\n className={cn(filterItemClass, 'group')}\n disabled={used}\n onClick={() => {\n setError(undefined);\n if (f.kind === 'text') {\n onTokensChange([...tokens, { fieldId: f.id, value: '' }]);\n onStartTextFilter?.(f.id);\n skipCloseFocusRef.current = true;\n setOpen(false);\n return;\n }\n setFieldId(f.id);\n }}\n >\n <span className=\"truncate\">{f.label}</span>\n {used ? (\n <span className=\"ml-auto text-muted-foreground\">In use</span>\n ) : (\n <span\n className={cn(\n menuItemTrailingIconClass,\n 'text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 group-focus:opacity-100',\n )}\n >\n <PlusIcon />\n </span>\n )}\n </FilterMenuButton>\n );\n })\n ) : (\n <div className={menuEmptyClass}>No matching property.</div>\n )}\n </FluidMenuItems>\n </div>\n )}\n\n {selectedField && (\n <Combobox\n multiple\n options={selectedField.options ?? []}\n value={multiValue}\n onValueChange={v => {\n setMultiValue(v);\n setError(undefined);\n }}\n placeholder={selectedField.placeholder ?? `Choose ${selectedField.label}`}\n searchPlaceholder={`Search ${selectedField.label.toLowerCase()}...`}\n emptyText={selectedField.emptyText ?? 'No option found.'}\n size=\"md\"\n name={`property-filter-${selectedField.id}`}\n aria-label={selectedField.label}\n error={error}\n />\n )}\n\n {selectedField && (\n <div className=\"flex items-center justify-end gap-2\">\n <Button icon={<X />} variant=\"ghost\" size=\"md\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button icon={<ListFilterPlus />} variant=\"outline\" size=\"md\" onClick={commit}>\n Add filter\n </Button>\n </div>\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n\ntype PickMultiField = Extract<PropertyFilterField, { kind: 'pick-multi' }>;\n\ntype PickMultiMenuItemProps = {\n field: PickMultiField;\n tokens: PropertyFilterToken[];\n onChange: (fieldId: string, value: string | string[]) => void;\n open: boolean;\n onToggle: (fieldId: string) => void;\n onClose: () => void;\n};\n\n/**\n * A property-picker menu item that opens a separate Radix popover (portaled to\n * the side) with a radio group (single-select) or checkbox list (multi-select,\n * `field.multi === true`). Open/close is driven by explicit click / keyboard\n * press; the panel only closes when the user clicks outside, presses Escape,\n * or clicks the row again to toggle it off.\n */\nfunction PickMultiMenuItem({ field, tokens, onChange, open, onToggle, onClose }: PickMultiMenuItemProps) {\n const contentRef = useRef<HTMLDivElement>(null);\n\n return (\n <Popover\n open={open}\n onOpenChange={next => {\n if (next) onToggle(field.id);\n else onClose();\n }}\n >\n <PopoverTrigger asChild>\n <FilterMenuButton\n className={filterItemClass}\n onKeyDown={e => {\n if (e.key !== 'ArrowRight' && e.key !== 'ArrowLeft') return;\n if (!open) onToggle(field.id);\n e.preventDefault();\n requestAnimationFrame(() => {\n const first = contentRef.current?.querySelector<HTMLElement>(\n 'input, button, [tabindex]:not([tabindex=\"-1\"])',\n );\n first?.focus();\n });\n }}\n >\n {open && <ChevronRightIcon className=\"text-muted-foreground\" />}\n <span className=\"truncate\">{field.label}</span>\n {!open && (\n <span className={cn(menuItemTrailingIconClass, 'text-muted-foreground')}>\n <ChevronRightIcon />\n </span>\n )}\n </FilterMenuButton>\n </PopoverTrigger>\n <PopoverContent\n ref={contentRef}\n side=\"right\"\n align=\"start\"\n sideOffset={MENU_SIDE_OFFSET}\n className=\"w-64 p-0\"\n initialFocus={false}\n onKeyDown={e => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp' && e.key !== 'Home' && e.key !== 'End') return;\n const items = Array.from(\n e.currentTarget.querySelectorAll<HTMLElement>('[data-pick-multi-item]:not([disabled])'),\n );\n if (items.length === 0) return;\n e.preventDefault();\n e.stopPropagation();\n const active = document.activeElement as HTMLElement | null;\n const current = items.findIndex(el => el === active);\n let next: number;\n if (e.key === 'Home') next = 0;\n else if (e.key === 'End') next = items.length - 1;\n else if (e.key === 'ArrowDown') next = current < 0 ? 0 : (current + 1) % items.length;\n else next = current <= 0 ? items.length - 1 : current - 1;\n items[next]?.focus();\n }}\n data-pick-multi-panel\n >\n <PickMultiPanel field={field} tokens={tokens} onChange={onChange} />\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["cn","menuItemClass","forwardRef","jsx","useFluidMenuItemRef","useMemo","useState","useFluidMenu","useRef","useCallback","useEffect","fieldId","jsxs","Popover","PopoverTrigger","Button","ListFilterPlusIcon","PopoverContent","MENU_SIDE_OFFSET","quietTextHover","controlStateColorTransition","ArrowLeftIcon","FilterIcon","FluidMenuItems","menuItemTrailingIconClass","PlusIcon","menuEmptyClass","Combobox","X","ListFilterPlus","ChevronRightIcon","PickMultiPanel"],"mappings":";;;;;;;;;;;;;;;;;AAwBA,MAAM,eAAA,GAAkBA,WAAA,CAAGC,iCAAA,EAAe,uBAAuB,CAAA;AAEjE,MAAM,mBAAmBC,gBAAA,CAAuE,CAAC,OAAO,GAAA,qBACtGC,cAAA,CAAC,YAAO,IAAA,EAAK,QAAA,EAAS,MAAK,UAAA,EAAW,kBAAA,EAAiB,IAAG,GAAA,EAAKC,wCAAA,CAAoB,GAAG,CAAA,EAAI,GAAG,OAAO,CACrG,CAAA;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAgCxB,SAAS,qBAAA,CAAsB;AAAA,EACpC,MAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA,KAAA,GAAQ,YAAA;AAAA,EACR,QAAA;AAAA,EACA,IAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAA,EAA+B;AAC7B,EAAA,MAAM,aAAA,GAAgBC,cAAQ,MAAM;AAClC,IAAA,IAAI,CAAC,cAAA,IAAkB,cAAA,CAAe,MAAA,KAAW,GAAG,OAAO,MAAA;AAC3D,IAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,cAAc,CAAA;AACrC,IAAA,OAAO,MAAA,CAAO,OAAO,CAAA,CAAA,KAAK,CAAC,OAAO,GAAA,CAAI,CAAA,CAAE,EAAE,CAAC,CAAA;AAAA,EAC7C,CAAA,EAAG,CAAC,MAAA,EAAQ,cAAc,CAAC,CAAA;AAC3B,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIC,eAAS,KAAK,CAAA;AACtC,EAAA,MAAM,OAAOC,iCAAA,EAA6B;AAC1C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAID,cAAA,EAA6B;AAC3D,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,cAAA,CAAmB,EAAE,CAAA;AACzD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,cAAA,EAA6B;AAIvD,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAIA,cAAA,EAA6B;AAKrF,EAAA,MAAM,iBAAA,GAAoBE,aAAO,KAAK,CAAA;AAEtC,EAAA,MAAM,eAAA,GAAkBC,iBAAA,CAAY,CAAC,EAAA,KAAe;AAClD,IAAA,uBAAA,CAAwB,CAAA,OAAA,KAAY,OAAA,KAAY,EAAA,GAAK,MAAA,GAAY,EAAG,CAAA;AAAA,EACtE,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,MAAM,iBAAiBA,iBAAA,CAAY,MAAM,wBAAwB,MAAS,CAAA,EAAG,EAAE,CAAA;AAE/E,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM,uBAAA,CAAwB,MAAS,CAAA;AAAA,EAC9C,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,aAAA,GAAgBL,aAAA,CAAQ,MAAM,aAAA,CAAc,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,EAAA,KAAO,OAAO,CAAA,EAAG,CAAC,aAAA,EAAe,OAAO,CAAC,CAAA;AAGvG,EAAA,MAAM,iBAAA,GAAoBA,cAAQ,MAAM;AACtC,IAAA,MAAM,GAAA,uBAAU,GAAA,EAAY;AAC5B,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,MAAM,QAAQ,MAAA,CAAO,IAAA,CAAK,OAAK,CAAA,CAAE,EAAA,KAAO,MAAM,OAAO,CAAA;AACrD,MAAA,IAAI,SAAS,KAAA,CAAM,IAAA,KAAS,cAAc,GAAA,CAAI,GAAA,CAAI,MAAM,OAAO,CAAA;AAAA,IACjE;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AAEnB,EAAA,MAAM,KAAA,GAAQI,kBAAY,MAAM;AAC9B,IAAA,UAAA,CAAW,MAAS,CAAA;AACpB,IAAA,aAAA,CAAc,EAAE,CAAA;AAChB,IAAA,QAAA,CAAS,MAAS,CAAA;AAAA,EACpB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,MAAM,KAAA,EAAM;AAAA,EACnB,CAAA,EAAG,CAAC,IAAA,EAAM,KAAK,CAAC,CAAA;AAQhB,EAAA,MAAM,qBAAA,GAAwBD,iBAAA;AAAA,IAC5B,CAACE,UAAiB,KAAA,KAA6B;AAC7C,MAAA,MAAM,gBAAgB,MAAA,CAAO,SAAA,CAAU,CAAA,CAAA,KAAK,CAAA,CAAE,YAAYA,QAAO,CAAA;AAEjE,MAAA,IAAI,MAAM,OAAA,CAAQ,KAAK,CAAA,IAAK,KAAA,CAAM,WAAW,CAAA,EAAG;AAC9C,QAAA,IAAI,kBAAkB,EAAA,EAAI;AAC1B,QAAA,cAAA,CAAe,OAAO,MAAA,CAAO,CAAC,GAAG,CAAA,KAAM,CAAA,KAAM,aAAa,CAAC,CAAA;AAC3D,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,kBAAkB,EAAA,EAAI;AACxB,QAAA,cAAA,CAAe,CAAC,GAAG,MAAA,EAAQ,EAAE,SAAAA,QAAAA,EAAS,KAAA,EAAO,CAAC,CAAA;AAC9C,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,UAAA,GAAa,CAAC,GAAG,MAAM,CAAA;AAC7B,MAAA,UAAA,CAAW,aAAa,CAAA,GAAI,EAAE,OAAA,EAAAA,UAAS,KAAA,EAAM;AAC7C,MAAA,cAAA,CAAe,UAAU,CAAA;AAAA,IAC3B,CAAA;AAAA,IACA,CAAC,gBAAgB,MAAM;AAAA,GACzB;AAEA,EAAA,MAAM,MAAA,GAASF,kBAAY,MAAM;AAC/B,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,QAAA,CAAS,0BAA0B,CAAA;AACnC,MAAA;AAAA,IACF;AACA,IAAA,IAAI,iBAAA,CAAkB,GAAA,CAAI,aAAA,CAAc,EAAE,CAAA,EAAG;AAC3C,MAAA,QAAA,CAAS,CAAA,oBAAA,EAAuB,aAAA,CAAc,KAAK,CAAA,8BAAA,CAAgC,CAAA;AACnF,MAAA;AAAA,IACF;AACA,IAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC3B,MAAA,QAAA,CAAS,CAAA,oBAAA,EAAuB,aAAA,CAAc,KAAA,CAAM,WAAA,EAAa,CAAA,OAAA,CAAS,CAAA;AAC1E,MAAA;AAAA,IACF;AACA,IAAA,cAAA,CAAe,CAAC,GAAG,MAAA,EAAQ,EAAE,OAAA,EAAS,cAAc,EAAA,EAAI,KAAA,EAAO,UAAA,EAAY,CAAC,CAAA;AAC5E,IAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,EACf,GAAG,CAAC,UAAA,EAAY,gBAAgB,aAAA,EAAe,iBAAA,EAAmB,MAAM,CAAC,CAAA;AAEzE,EAAA,uBACEG,eAAA,CAACC,eAAA,EAAA,EAAQ,IAAA,EAAY,YAAA,EAAc,OAAA,EACjC,QAAA,EAAA;AAAA,oBAAAV,cAAA,CAACW,sBAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EACrB,QAAA,kBAAAX,cAAA,CAACY,iBAAO,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAY,QAAA,EAAoB,IAAA,kBAAMZ,cAAA,CAACa,8BAAA,EAAA,EAAmB,CAAA,EACjF,iBACH,CAAA,EACF,CAAA;AAAA,oBACAb,cAAA;AAAA,MAACc,sBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAM,KAAA;AAAA,QACN,UAAA,EAAYC,oCAAA;AAAA,QACZ,SAAA,EAAWlB,WAAA,CAAG,MAAA,EAAQ,aAAA,GAAgB,QAAQ,KAAK,CAAA;AAAA,QACnD,YAAA,EAAc,KAAA;AAAA,QACd,YAAY,MAAM;AAChB,UAAA,IAAI,kBAAkB,OAAA,EAAS;AAC7B,YAAA,iBAAA,CAAkB,OAAA,GAAU,KAAA;AAC5B,YAAA,OAAO,KAAA;AAAA,UACT;AACA,UAAA,OAAO,IAAA;AAAA,QACT,CAAA;AAAA,QAEA,0CAAC,KAAA,EAAA,EAAI,SAAA,EAAWA,YAAG,MAAA,EAAQ,aAAA,IAAiB,OAAO,CAAA,EAChD,QAAA,EAAA;AAAA,UAAA,aAAA,oBACCY,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,4BAAAT,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,YAAA,EAAW,oBAAA;AAAA,gBACX,SAAA,EAAWH,WAAA,CAAGmB,oCAAA,EAAgBC,kDAA2B,CAAA;AAAA,gBACzD,OAAA,EAAS,KAAA;AAAA,gBAET,QAAA,kBAAAjB,cAAA,CAACkB,yBAAA,EAAA,EAAc,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,aACpC;AAAA,4BACAlB,cAAA,CAACmB,sBAAA,EAAA,EAAW,SAAA,EAAU,uCAAA,EAAwC,CAAA;AAAA,2CAC7D,MAAA,EAAA,EAAK,SAAA,EAAU,sCAAsC,QAAA,EAAA,CAAA,EAAG,aAAA,CAAc,KAAK,CAAA,KAAA,CAAA,EAAQ;AAAA,WAAA,EACtF,CAAA;AAAA,UAGD,CAAC,aAAA,oBACAnB,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,MAAA;AAAA,cACL,SAAA,EAAWH,WAAA,CAAG,6BAAA,EAA+B,IAAA,CAAK,kBAAkB,CAAA;AAAA,cACnE,GAAG,IAAA,CAAK,iBAAA,CAAkB,EAAE,CAAA;AAAA,cAC7B,WAAW,CAAA,CAAA,KAAK;AACd,gBAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,WAAA,IAAe,CAAA,CAAE,GAAA,KAAQ,SAAA,IAAa,CAAA,CAAE,GAAA,KAAQ,MAAA,IAAU,CAAA,CAAE,GAAA,KAAQ,KAAA,EAAO;AACzF,gBAAA,MAAM,UAAU,KAAA,CAAM,IAAA;AAAA,kBACpB,CAAA,CAAE,aAAA,CAAc,gBAAA,CAAoC,oCAAoC;AAAA,iBAC1F;AACA,gBAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC1B,gBAAA,CAAA,CAAE,cAAA,EAAe;AACjB,gBAAA,MAAM,SAAS,QAAA,CAAS,aAAA;AACxB,gBAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,SAAA,CAAU,CAAA,CAAA,KAAK,MAAM,MAAM,CAAA;AACnD,gBAAA,IAAI,IAAA;AACJ,gBAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,MAAA,EAAQ,IAAA,GAAO,CAAA;AAAA,qBAAA,IACpB,CAAA,CAAE,GAAA,KAAQ,KAAA,EAAO,IAAA,GAAO,QAAQ,MAAA,GAAS,CAAA;AAAA,qBAAA,IACzC,CAAA,CAAE,QAAQ,WAAA,EAAa,IAAA,GAAO,UAAU,CAAA,GAAI,CAAA,GAAA,CAAK,OAAA,GAAU,CAAA,IAAK,OAAA,CAAQ,MAAA;AAAA,4BACrE,OAAA,IAAW,CAAA,GAAI,OAAA,CAAQ,MAAA,GAAS,IAAI,OAAA,GAAU,CAAA;AAC1D,gBAAA,OAAA,CAAQ,IAAI,GAAG,KAAA,EAAM;AAAA,cACvB,CAAA;AAAA,cAEA,QAAA,kBAAAG,cAAA,CAACoB,uCAAe,IAAA,EACb,QAAA,EAAA,aAAA,CAAc,SAAS,CAAA,GACtB,aAAA,CAAc,IAAI,CAAA,CAAA,KAAK;AACrB,gBAAA,MAAM,IAAA,GAAO,iBAAA,CAAkB,GAAA,CAAI,CAAA,CAAE,EAAE,CAAA;AACvC,gBAAA,IAAI,CAAA,CAAE,SAAS,YAAA,EAAc;AAC3B,kBAAA,uBACEpB,cAAA;AAAA,oBAAC,iBAAA;AAAA,oBAAA;AAAA,sBAEC,KAAA,EAAO,CAAA;AAAA,sBACP,MAAA;AAAA,sBACA,QAAA,EAAU,qBAAA;AAAA,sBACV,IAAA,EAAM,yBAAyB,CAAA,CAAE,EAAA;AAAA,sBACjC,QAAA,EAAU,eAAA;AAAA,sBACV,OAAA,EAAS;AAAA,qBAAA;AAAA,oBANJ,CAAA,CAAE;AAAA,mBAOT;AAAA,gBAEJ;AACA,gBAAA,uBACES,eAAA;AAAA,kBAAC,gBAAA;AAAA,kBAAA;AAAA,oBAEC,SAAA,EAAWZ,WAAA,CAAG,eAAA,EAAiB,OAAO,CAAA;AAAA,oBACtC,QAAA,EAAU,IAAA;AAAA,oBACV,SAAS,MAAM;AACb,sBAAA,QAAA,CAAS,MAAS,CAAA;AAClB,sBAAA,IAAI,CAAA,CAAE,SAAS,MAAA,EAAQ;AACrB,wBAAA,cAAA,CAAe,CAAC,GAAG,MAAA,EAAQ,EAAE,OAAA,EAAS,EAAE,EAAA,EAAI,KAAA,EAAO,EAAA,EAAI,CAAC,CAAA;AACxD,wBAAA,iBAAA,GAAoB,EAAE,EAAE,CAAA;AACxB,wBAAA,iBAAA,CAAkB,OAAA,GAAU,IAAA;AAC5B,wBAAA,OAAA,CAAQ,KAAK,CAAA;AACb,wBAAA;AAAA,sBACF;AACA,sBAAA,UAAA,CAAW,EAAE,EAAE,CAAA;AAAA,oBACjB,CAAA;AAAA,oBAEA,QAAA,EAAA;AAAA,sCAAAG,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EAAY,QAAA,EAAA,CAAA,CAAE,KAAA,EAAM,CAAA;AAAA,sBACnC,uBACCA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+BAAA,EAAgC,oBAAM,CAAA,mBAEtDA,cAAA;AAAA,wBAAC,MAAA;AAAA,wBAAA;AAAA,0BACC,SAAA,EAAWH,WAAA;AAAA,4BACTwB,6CAAA;AAAA,4BACA;AAAA,2BACF;AAAA,0BAEA,yCAACC,oBAAA,EAAA,EAAS;AAAA;AAAA;AACZ;AAAA,mBAAA;AAAA,kBA1BG,CAAA,CAAE;AAAA,iBA4BT;AAAA,cAEJ,CAAC,CAAA,mBAEDtB,cAAA,CAAC,SAAI,SAAA,EAAWuB,kCAAA,EAAgB,mCAAqB,CAAA,EAEzD;AAAA;AAAA,WACF;AAAA,UAGD,aAAA,oBACCvB,cAAA;AAAA,YAACwB,iBAAA;AAAA,YAAA;AAAA,cACC,QAAA,EAAQ,IAAA;AAAA,cACR,OAAA,EAAS,aAAA,CAAc,OAAA,IAAW,EAAC;AAAA,cACnC,KAAA,EAAO,UAAA;AAAA,cACP,eAAe,CAAA,CAAA,KAAK;AAClB,gBAAA,aAAA,CAAc,CAAC,CAAA;AACf,gBAAA,QAAA,CAAS,MAAS,CAAA;AAAA,cACpB,CAAA;AAAA,cACA,WAAA,EAAa,aAAA,CAAc,WAAA,IAAe,CAAA,OAAA,EAAU,cAAc,KAAK,CAAA,CAAA;AAAA,cACvE,iBAAA,EAAmB,CAAA,OAAA,EAAU,aAAA,CAAc,KAAA,CAAM,aAAa,CAAA,GAAA,CAAA;AAAA,cAC9D,SAAA,EAAW,cAAc,SAAA,IAAa,kBAAA;AAAA,cACtC,IAAA,EAAK,IAAA;AAAA,cACL,IAAA,EAAM,CAAA,gBAAA,EAAmB,aAAA,CAAc,EAAE,CAAA,CAAA;AAAA,cACzC,cAAY,aAAA,CAAc,KAAA;AAAA,cAC1B;AAAA;AAAA,WACF;AAAA,UAGD,aAAA,oBACCf,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAA,EACb,QAAA,EAAA;AAAA,4BAAAT,cAAA,CAACY,aAAA,EAAA,EAAO,IAAA,kBAAMZ,cAAA,CAACyB,aAAA,EAAA,EAAE,GAAI,OAAA,EAAQ,OAAA,EAAQ,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAK,GAAG,QAAA,EAAA,QAAA,EAE9E,CAAA;AAAA,4BACAzB,cAAA,CAACY,aAAA,EAAA,EAAO,IAAA,kBAAMZ,cAAA,CAAC0B,0BAAA,EAAA,EAAe,CAAA,EAAI,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,MAAA,EAAQ,QAAA,EAAA,YAAA,EAE/E;AAAA,WAAA,EACF;AAAA,SAAA,EAEJ;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;AAoBA,SAAS,iBAAA,CAAkB,EAAE,KAAA,EAAO,MAAA,EAAQ,UAAU,IAAA,EAAM,QAAA,EAAU,SAAQ,EAA2B;AACvG,EAAA,MAAM,UAAA,GAAarB,aAAuB,IAAI,CAAA;AAE9C,EAAA,uBACEI,eAAA;AAAA,IAACC,eAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,cAAc,CAAA,IAAA,KAAQ;AACpB,QAAA,IAAI,IAAA,EAAM,QAAA,CAAS,KAAA,CAAM,EAAE,CAAA;AAAA,aACtB,OAAA,EAAQ;AAAA,MACf,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAV,cAAA,CAACW,sBAAA,EAAA,EAAe,SAAO,IAAA,EACrB,QAAA,kBAAAF,eAAA;AAAA,UAAC,gBAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,eAAA;AAAA,YACX,WAAW,CAAA,CAAA,KAAK;AACd,cAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,YAAA,IAAgB,CAAA,CAAE,QAAQ,WAAA,EAAa;AACrD,cAAA,IAAI,CAAC,IAAA,EAAM,QAAA,CAAS,KAAA,CAAM,EAAE,CAAA;AAC5B,cAAA,CAAA,CAAE,cAAA,EAAe;AACjB,cAAA,qBAAA,CAAsB,MAAM;AAC1B,gBAAA,MAAM,KAAA,GAAQ,WAAW,OAAA,EAAS,aAAA;AAAA,kBAChC;AAAA,iBACF;AACA,gBAAA,KAAA,EAAO,KAAA,EAAM;AAAA,cACf,CAAC,CAAA;AAAA,YACH,CAAA;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,IAAA,oBAAQT,cAAA,CAAC2B,4BAAA,EAAA,EAAiB,SAAA,EAAU,uBAAA,EAAwB,CAAA;AAAA,8BAC7D3B,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EAAY,gBAAM,KAAA,EAAM,CAAA;AAAA,cACvC,CAAC,IAAA,oBACAA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWH,WAAA,CAAGwB,6CAAA,EAA2B,uBAAuB,CAAA,EACpE,QAAA,kBAAArB,cAAA,CAAC2B,4BAAA,EAAA,EAAiB,CAAA,EACpB;AAAA;AAAA;AAAA,SAEJ,EACF,CAAA;AAAA,wBACA3B,cAAA;AAAA,UAACc,sBAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,UAAA;AAAA,YACL,IAAA,EAAK,OAAA;AAAA,YACL,KAAA,EAAM,OAAA;AAAA,YACN,UAAA,EAAYC,oCAAA;AAAA,YACZ,SAAA,EAAU,UAAA;AAAA,YACV,YAAA,EAAc,KAAA;AAAA,YACd,WAAW,CAAA,CAAA,KAAK;AACd,cAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,WAAA,IAAe,CAAA,CAAE,GAAA,KAAQ,SAAA,IAAa,CAAA,CAAE,GAAA,KAAQ,MAAA,IAAU,CAAA,CAAE,GAAA,KAAQ,KAAA,EAAO;AACzF,cAAA,MAAM,QAAQ,KAAA,CAAM,IAAA;AAAA,gBAClB,CAAA,CAAE,aAAA,CAAc,gBAAA,CAA8B,wCAAwC;AAAA,eACxF;AACA,cAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACxB,cAAA,CAAA,CAAE,cAAA,EAAe;AACjB,cAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,cAAA,MAAM,SAAS,QAAA,CAAS,aAAA;AACxB,cAAA,MAAM,OAAA,GAAU,KAAA,CAAM,SAAA,CAAU,CAAA,EAAA,KAAM,OAAO,MAAM,CAAA;AACnD,cAAA,IAAI,IAAA;AACJ,cAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,MAAA,EAAQ,IAAA,GAAO,CAAA;AAAA,mBAAA,IACpB,CAAA,CAAE,GAAA,KAAQ,KAAA,EAAO,IAAA,GAAO,MAAM,MAAA,GAAS,CAAA;AAAA,mBAAA,IACvC,CAAA,CAAE,QAAQ,WAAA,EAAa,IAAA,GAAO,UAAU,CAAA,GAAI,CAAA,GAAA,CAAK,OAAA,GAAU,CAAA,IAAK,KAAA,CAAM,MAAA;AAAA,0BACnE,OAAA,IAAW,CAAA,GAAI,KAAA,CAAM,MAAA,GAAS,IAAI,OAAA,GAAU,CAAA;AACxD,cAAA,KAAA,CAAM,IAAI,GAAG,KAAA,EAAM;AAAA,YACrB,CAAA;AAAA,YACA,uBAAA,EAAqB,IAAA;AAAA,YAErB,QAAA,kBAAAf,cAAA,CAAC4B,oCAAA,EAAA,EAAe,KAAA,EAAc,MAAA,EAAgB,QAAA,EAAoB;AAAA;AAAA;AACpE;AAAA;AAAA,GACF;AAEJ;;;;;;;"}
1
+ {"version":3,"file":"PropertyFilter.cjs.js","sources":["../../src/ds/components/PropertyFilter/property-filter-creator.tsx"],"sourcesContent":["import {\n ArrowLeftIcon,\n ChevronRightIcon,\n FilterIcon,\n ListFilterPlusIcon,\n PlusIcon,\n ListFilterPlus,\n X,\n} from 'lucide-react';\nimport { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes } from 'react';\nimport { PickMultiPanel } from './pick-multi-panel';\nimport type { PropertyFilterField, PropertyFilterToken } from './types';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { Combobox } from '@/ds/components/Combobox/combobox';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover/popover';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { MENU_SIDE_OFFSET, menuEmptyClass, menuItemClass, menuItemTrailingIconClass } from '@/ds/primitives/menu-item';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\n// Plain <button>s navigated with roving focus (not Base UI): the fluid highlight follows focus.\nconst filterItemClass = cn(menuItemClass, 'focus:text-foreground');\n\nconst FilterMenuButton = forwardRef<HTMLButtonElement, ButtonHTMLAttributes<HTMLButtonElement>>((props, ref) => (\n <button type=\"button\" role=\"menuitem\" data-filter-item=\"\" ref={useFluidMenuItemRef(ref)} {...props} />\n));\nFilterMenuButton.displayName = 'FilterMenuButton';\n\nexport type PropertyFilterCreatorProps = {\n fields: PropertyFilterField[];\n tokens: PropertyFilterToken[];\n onTokensChange: (tokens: PropertyFilterToken[]) => void;\n label?: string;\n disabled?: boolean;\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n /**\n * Called when the user picks a text (id-style) field. Consumers are expected\n * to render a pending applied-filter pill with an active input so the user\n * can type the value inline instead of in this popover.\n */\n onStartTextFilter?: (fieldId: string) => void;\n /**\n * Field ids hidden from the Add Filter dropdown. Use to prevent users from\n * recreating a filter that an upstream context already owns (e.g. the agent\n * id when viewing the agent-scoped traces tab).\n */\n hiddenFieldIds?: readonly string[];\n};\n\n/**\n * Minimal Linear-style filter creator: a `+ Filter` button whose popover walks\n * the user through property → value → commit. For id-style text fields, the\n * picker closes immediately and the applied-filter pill owns the input. For\n * `pick-multi` fields (e.g. Root Entity Name) hovering the item opens a\n * separate side popover with checkboxes — each check adds its own applied\n * filter and the main popover stays open so users can pick many.\n */\nexport function PropertyFilterCreator({\n fields,\n tokens,\n onTokensChange,\n label = 'Add Filter',\n disabled,\n size,\n onStartTextFilter,\n hiddenFieldIds,\n}: PropertyFilterCreatorProps) {\n const visibleFields = useMemo(() => {\n if (!hiddenFieldIds || hiddenFieldIds.length === 0) return fields;\n const hidden = new Set(hiddenFieldIds);\n return fields.filter(f => !hidden.has(f.id));\n }, [fields, hiddenFieldIds]);\n const [open, setOpen] = useState(false);\n const menu = useFluidMenu<HTMLDivElement>();\n const [fieldId, setFieldId] = useState<string | undefined>();\n const [multiValue, setMultiValue] = useState<string[]>([]);\n const [error, setError] = useState<string | undefined>();\n // Single source of truth for which pick-multi side panel is open. Opens only\n // via explicit click/keyboard press on the menu item — no hover/focus\n // auto-open (was too flicker-prone).\n const [openPickMultiFieldId, setOpenPickMultiFieldId] = useState<string | undefined>();\n\n // When the user picks a text field we close this popover and hand off focus\n // to the newly-created pill's input — prevent Radix from returning focus to\n // the trigger button in that case.\n const skipCloseFocusRef = useRef(false);\n\n const togglePickMulti = useCallback((id: string) => {\n setOpenPickMultiFieldId(current => (current === id ? undefined : id));\n }, []);\n const closePickMulti = useCallback(() => setOpenPickMultiFieldId(undefined), []);\n\n useEffect(() => {\n if (!open) setOpenPickMultiFieldId(undefined);\n }, [open]);\n\n const selectedField = useMemo(() => visibleFields.find(f => f.id === fieldId), [visibleFields, fieldId]);\n // Only single-use kinds (text, multi-select) count as \"used\". `pick-multi`\n // allows multiple tokens with the same fieldId.\n const singleUseFieldIds = useMemo(() => {\n const ids = new Set<string>();\n for (const token of tokens) {\n const field = fields.find(f => f.id === token.fieldId);\n if (field && field.kind !== 'pick-multi') ids.add(token.fieldId);\n }\n return ids;\n }, [tokens, fields]);\n\n const reset = useCallback(() => {\n setFieldId(undefined);\n setMultiValue([]);\n setError(undefined);\n }, []);\n\n useEffect(() => {\n if (!open) reset();\n }, [open, reset]);\n\n /**\n * Replace whatever token exists for `fieldId` with the given value. Used by\n * both single-select (radio) and multi-select (checkbox) pick-multi panels.\n * An empty list means nothing is selected, which removes the token here —\n * unlike the applied pill, where the filter stays on in a neutral state.\n */\n const replacePickMultiToken = useCallback(\n (fieldId: string, value: string | string[]) => {\n const existingIndex = tokens.findIndex(t => t.fieldId === fieldId);\n\n if (Array.isArray(value) && value.length === 0) {\n if (existingIndex === -1) return;\n onTokensChange(tokens.filter((_, i) => i !== existingIndex));\n return;\n }\n\n if (existingIndex === -1) {\n onTokensChange([...tokens, { fieldId, value }]);\n return;\n }\n\n const nextTokens = [...tokens];\n nextTokens[existingIndex] = { fieldId, value };\n onTokensChange(nextTokens);\n },\n [onTokensChange, tokens],\n );\n\n const commit = useCallback(() => {\n if (!selectedField) {\n setError('Choose a property first.');\n return;\n }\n if (singleUseFieldIds.has(selectedField.id)) {\n setError(`Remove the existing ${selectedField.label} filter before adding another.`);\n return;\n }\n if (multiValue.length === 0) {\n setError(`Choose at least one ${selectedField.label.toLowerCase()} value.`);\n return;\n }\n onTokensChange([...tokens, { fieldId: selectedField.id, value: multiValue }]);\n setOpen(false);\n }, [multiValue, onTokensChange, selectedField, singleUseFieldIds, tokens]);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled} icon={<ListFilterPlusIcon />}>\n {label}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align=\"end\"\n sideOffset={MENU_SIDE_OFFSET}\n className={cn('w-64', selectedField ? 'p-3' : 'p-1')}\n initialFocus={false}\n finalFocus={() => {\n if (skipCloseFocusRef.current) {\n skipCloseFocusRef.current = false;\n return false;\n }\n return true;\n }}\n >\n <div className={cn('grid', selectedField && 'gap-3')}>\n {selectedField && (\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n aria-label=\"Back to properties\"\n className={cn(quietTextHover, controlStateColorTransition)}\n onClick={reset}\n >\n <ArrowLeftIcon className=\"size-4\" />\n </button>\n <FilterIcon className=\"size-4 shrink-0 text-muted-foreground\" />\n <span className=\"text-caption text-muted-foreground\">{`${selectedField.label} · is`}</span>\n </div>\n )}\n\n {!selectedField && (\n <div\n role=\"menu\"\n className={cn('max-h-[80dvh] overflow-auto', menu.containerClassName)}\n {...menu.getContainerProps({})}\n onKeyDown={e => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp' && e.key !== 'Home' && e.key !== 'End') return;\n const buttons = Array.from(\n e.currentTarget.querySelectorAll<HTMLButtonElement>('[data-filter-item]:not([disabled])'),\n );\n if (buttons.length === 0) return;\n e.preventDefault();\n const active = document.activeElement as HTMLElement | null;\n const current = buttons.findIndex(b => b === active);\n let next: number;\n if (e.key === 'Home') next = 0;\n else if (e.key === 'End') next = buttons.length - 1;\n else if (e.key === 'ArrowDown') next = current < 0 ? 0 : (current + 1) % buttons.length;\n else next = current <= 0 ? buttons.length - 1 : current - 1;\n buttons[next]?.focus();\n }}\n >\n <FluidMenuItems menu={menu}>\n {visibleFields.length > 0 ? (\n visibleFields.map(f => {\n const used = singleUseFieldIds.has(f.id);\n if (f.kind === 'pick-multi') {\n return (\n <PickMultiMenuItem\n key={f.id}\n field={f}\n tokens={tokens}\n onChange={replacePickMultiToken}\n open={openPickMultiFieldId === f.id}\n onToggle={togglePickMulti}\n onClose={closePickMulti}\n />\n );\n }\n return (\n <FilterMenuButton\n key={f.id}\n className={cn(filterItemClass, 'group')}\n disabled={used}\n onClick={() => {\n setError(undefined);\n if (f.kind === 'text') {\n onTokensChange([...tokens, { fieldId: f.id, value: '' }]);\n onStartTextFilter?.(f.id);\n skipCloseFocusRef.current = true;\n setOpen(false);\n return;\n }\n setFieldId(f.id);\n }}\n >\n <span className=\"truncate\">{f.label}</span>\n {used ? (\n <span className=\"ml-auto text-muted-foreground\">In use</span>\n ) : (\n <span\n className={cn(\n menuItemTrailingIconClass,\n 'text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 group-focus:opacity-100',\n )}\n >\n <PlusIcon />\n </span>\n )}\n </FilterMenuButton>\n );\n })\n ) : (\n <div className={menuEmptyClass}>No matching property.</div>\n )}\n </FluidMenuItems>\n </div>\n )}\n\n {selectedField && (\n <Combobox\n multiple\n options={selectedField.options ?? []}\n value={multiValue}\n onValueChange={v => {\n setMultiValue(v);\n setError(undefined);\n }}\n placeholder={selectedField.placeholder ?? `Choose ${selectedField.label}`}\n searchPlaceholder={`Search ${selectedField.label.toLowerCase()}...`}\n emptyText={selectedField.emptyText ?? 'No option found.'}\n size=\"md\"\n name={`property-filter-${selectedField.id}`}\n aria-label={selectedField.label}\n error={error}\n />\n )}\n\n {selectedField && (\n <div className=\"flex items-center justify-end gap-2\">\n <Button icon={<X />} variant=\"ghost\" size=\"md\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button icon={<ListFilterPlus />} size=\"md\" onClick={commit}>\n Add filter\n </Button>\n </div>\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n\ntype PickMultiField = Extract<PropertyFilterField, { kind: 'pick-multi' }>;\n\ntype PickMultiMenuItemProps = {\n field: PickMultiField;\n tokens: PropertyFilterToken[];\n onChange: (fieldId: string, value: string | string[]) => void;\n open: boolean;\n onToggle: (fieldId: string) => void;\n onClose: () => void;\n};\n\n/**\n * A property-picker menu item that opens a separate Radix popover (portaled to\n * the side) with a radio group (single-select) or checkbox list (multi-select,\n * `field.multi === true`). Open/close is driven by explicit click / keyboard\n * press; the panel only closes when the user clicks outside, presses Escape,\n * or clicks the row again to toggle it off.\n */\nfunction PickMultiMenuItem({ field, tokens, onChange, open, onToggle, onClose }: PickMultiMenuItemProps) {\n const contentRef = useRef<HTMLDivElement>(null);\n\n return (\n <Popover\n open={open}\n onOpenChange={next => {\n if (next) onToggle(field.id);\n else onClose();\n }}\n >\n <PopoverTrigger asChild>\n <FilterMenuButton\n className={filterItemClass}\n onKeyDown={e => {\n if (e.key !== 'ArrowRight' && e.key !== 'ArrowLeft') return;\n if (!open) onToggle(field.id);\n e.preventDefault();\n requestAnimationFrame(() => {\n const first = contentRef.current?.querySelector<HTMLElement>(\n 'input, button, [tabindex]:not([tabindex=\"-1\"])',\n );\n first?.focus();\n });\n }}\n >\n {open && <ChevronRightIcon className=\"text-muted-foreground\" />}\n <span className=\"truncate\">{field.label}</span>\n {!open && (\n <span className={cn(menuItemTrailingIconClass, 'text-muted-foreground')}>\n <ChevronRightIcon />\n </span>\n )}\n </FilterMenuButton>\n </PopoverTrigger>\n <PopoverContent\n ref={contentRef}\n side=\"right\"\n align=\"start\"\n sideOffset={MENU_SIDE_OFFSET}\n className=\"w-64 p-0\"\n initialFocus={false}\n onKeyDown={e => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp' && e.key !== 'Home' && e.key !== 'End') return;\n const items = Array.from(\n e.currentTarget.querySelectorAll<HTMLElement>('[data-pick-multi-item]:not([disabled])'),\n );\n if (items.length === 0) return;\n e.preventDefault();\n e.stopPropagation();\n const active = document.activeElement as HTMLElement | null;\n const current = items.findIndex(el => el === active);\n let next: number;\n if (e.key === 'Home') next = 0;\n else if (e.key === 'End') next = items.length - 1;\n else if (e.key === 'ArrowDown') next = current < 0 ? 0 : (current + 1) % items.length;\n else next = current <= 0 ? items.length - 1 : current - 1;\n items[next]?.focus();\n }}\n data-pick-multi-panel\n >\n <PickMultiPanel field={field} tokens={tokens} onChange={onChange} />\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["cn","menuItemClass","forwardRef","jsx","useFluidMenuItemRef","useMemo","useState","useFluidMenu","useRef","useCallback","useEffect","fieldId","jsxs","Popover","PopoverTrigger","Button","ListFilterPlusIcon","PopoverContent","MENU_SIDE_OFFSET","quietTextHover","controlStateColorTransition","ArrowLeftIcon","FilterIcon","FluidMenuItems","menuItemTrailingIconClass","PlusIcon","menuEmptyClass","Combobox","X","ListFilterPlus","ChevronRightIcon","PickMultiPanel"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { b as PickMultiPanel } from '../property-filter-applied-uYr-sCdm.js';
2
- export { a as PropertyFilterActions, P as PropertyFilterApplied } from '../property-filter-applied-uYr-sCdm.js';
1
+ import { b as PickMultiPanel } from '../property-filter-applied-CVVhhWGf.js';
2
+ export { a as PropertyFilterActions, P as PropertyFilterApplied } from '../property-filter-applied-CVVhhWGf.js';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
  import { ListFilterPlusIcon, ArrowLeftIcon, FilterIcon, PlusIcon, X, ListFilterPlus, ChevronRightIcon } from 'lucide-react';
5
5
  import { useMemo, useState, useRef, useCallback, useEffect, forwardRef } from 'react';
6
- import { B as Button } from '../Button-KUj0U-5I.js';
7
- import { C as Combobox } from '../combobox-Cykfy5wc.js';
6
+ import { B as Button } from '../Button-B8nF87ai.js';
7
+ import { C as Combobox } from '../combobox-gPiXyJgX.js';
8
8
  import { P as Popover, b as PopoverTrigger, a as PopoverContent } from '../popover-Dg70UGyn.js';
9
9
  import { useFluidMenu, FluidMenuItems, useFluidMenuItemRef } from '../primitives/fluid-menu.es.js';
10
10
  import { MENU_SIDE_OFFSET, menuItemTrailingIconClass, menuEmptyClass, menuItemClass } from '../primitives/menu-item.es.js';
@@ -96,7 +96,7 @@ function PropertyFilterCreator({
96
96
  setOpen(false);
97
97
  }, [multiValue, onTokensChange, selectedField, singleUseFieldIds, tokens]);
98
98
  return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
99
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", size, disabled, icon: /* @__PURE__ */ jsx(ListFilterPlusIcon, {}), children: label }) }),
99
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size, disabled, icon: /* @__PURE__ */ jsx(ListFilterPlusIcon, {}), children: label }) }),
100
100
  /* @__PURE__ */ jsx(
101
101
  PopoverContent,
102
102
  {
@@ -220,7 +220,7 @@ function PropertyFilterCreator({
220
220
  ),
221
221
  selectedField && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2", children: [
222
222
  /* @__PURE__ */ jsx(Button, { icon: /* @__PURE__ */ jsx(X, {}), variant: "ghost", size: "md", onClick: () => setOpen(false), children: "Cancel" }),
223
- /* @__PURE__ */ jsx(Button, { icon: /* @__PURE__ */ jsx(ListFilterPlus, {}), variant: "outline", size: "md", onClick: commit, children: "Add filter" })
223
+ /* @__PURE__ */ jsx(Button, { icon: /* @__PURE__ */ jsx(ListFilterPlus, {}), size: "md", onClick: commit, children: "Add filter" })
224
224
  ] })
225
225
  ] })
226
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyFilter.es.js","sources":["../../src/ds/components/PropertyFilter/property-filter-creator.tsx"],"sourcesContent":["import {\n ArrowLeftIcon,\n ChevronRightIcon,\n FilterIcon,\n ListFilterPlusIcon,\n PlusIcon,\n ListFilterPlus,\n X,\n} from 'lucide-react';\nimport { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes } from 'react';\nimport { PickMultiPanel } from './pick-multi-panel';\nimport type { PropertyFilterField, PropertyFilterToken } from './types';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { Combobox } from '@/ds/components/Combobox/combobox';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover/popover';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { MENU_SIDE_OFFSET, menuEmptyClass, menuItemClass, menuItemTrailingIconClass } from '@/ds/primitives/menu-item';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\n// Plain <button>s navigated with roving focus (not Base UI): the fluid highlight follows focus.\nconst filterItemClass = cn(menuItemClass, 'focus:text-foreground');\n\nconst FilterMenuButton = forwardRef<HTMLButtonElement, ButtonHTMLAttributes<HTMLButtonElement>>((props, ref) => (\n <button type=\"button\" role=\"menuitem\" data-filter-item=\"\" ref={useFluidMenuItemRef(ref)} {...props} />\n));\nFilterMenuButton.displayName = 'FilterMenuButton';\n\nexport type PropertyFilterCreatorProps = {\n fields: PropertyFilterField[];\n tokens: PropertyFilterToken[];\n onTokensChange: (tokens: PropertyFilterToken[]) => void;\n label?: string;\n disabled?: boolean;\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n /**\n * Called when the user picks a text (id-style) field. Consumers are expected\n * to render a pending applied-filter pill with an active input so the user\n * can type the value inline instead of in this popover.\n */\n onStartTextFilter?: (fieldId: string) => void;\n /**\n * Field ids hidden from the Add Filter dropdown. Use to prevent users from\n * recreating a filter that an upstream context already owns (e.g. the agent\n * id when viewing the agent-scoped traces tab).\n */\n hiddenFieldIds?: readonly string[];\n};\n\n/**\n * Minimal Linear-style filter creator: a `+ Filter` button whose popover walks\n * the user through property → value → commit. For id-style text fields, the\n * picker closes immediately and the applied-filter pill owns the input. For\n * `pick-multi` fields (e.g. Root Entity Name) hovering the item opens a\n * separate side popover with checkboxes — each check adds its own applied\n * filter and the main popover stays open so users can pick many.\n */\nexport function PropertyFilterCreator({\n fields,\n tokens,\n onTokensChange,\n label = 'Add Filter',\n disabled,\n size,\n onStartTextFilter,\n hiddenFieldIds,\n}: PropertyFilterCreatorProps) {\n const visibleFields = useMemo(() => {\n if (!hiddenFieldIds || hiddenFieldIds.length === 0) return fields;\n const hidden = new Set(hiddenFieldIds);\n return fields.filter(f => !hidden.has(f.id));\n }, [fields, hiddenFieldIds]);\n const [open, setOpen] = useState(false);\n const menu = useFluidMenu<HTMLDivElement>();\n const [fieldId, setFieldId] = useState<string | undefined>();\n const [multiValue, setMultiValue] = useState<string[]>([]);\n const [error, setError] = useState<string | undefined>();\n // Single source of truth for which pick-multi side panel is open. Opens only\n // via explicit click/keyboard press on the menu item — no hover/focus\n // auto-open (was too flicker-prone).\n const [openPickMultiFieldId, setOpenPickMultiFieldId] = useState<string | undefined>();\n\n // When the user picks a text field we close this popover and hand off focus\n // to the newly-created pill's input — prevent Radix from returning focus to\n // the trigger button in that case.\n const skipCloseFocusRef = useRef(false);\n\n const togglePickMulti = useCallback((id: string) => {\n setOpenPickMultiFieldId(current => (current === id ? undefined : id));\n }, []);\n const closePickMulti = useCallback(() => setOpenPickMultiFieldId(undefined), []);\n\n useEffect(() => {\n if (!open) setOpenPickMultiFieldId(undefined);\n }, [open]);\n\n const selectedField = useMemo(() => visibleFields.find(f => f.id === fieldId), [visibleFields, fieldId]);\n // Only single-use kinds (text, multi-select) count as \"used\". `pick-multi`\n // allows multiple tokens with the same fieldId.\n const singleUseFieldIds = useMemo(() => {\n const ids = new Set<string>();\n for (const token of tokens) {\n const field = fields.find(f => f.id === token.fieldId);\n if (field && field.kind !== 'pick-multi') ids.add(token.fieldId);\n }\n return ids;\n }, [tokens, fields]);\n\n const reset = useCallback(() => {\n setFieldId(undefined);\n setMultiValue([]);\n setError(undefined);\n }, []);\n\n useEffect(() => {\n if (!open) reset();\n }, [open, reset]);\n\n /**\n * Replace whatever token exists for `fieldId` with the given value. Used by\n * both single-select (radio) and multi-select (checkbox) pick-multi panels.\n * An empty list means nothing is selected, which removes the token here —\n * unlike the applied pill, where the filter stays on in a neutral state.\n */\n const replacePickMultiToken = useCallback(\n (fieldId: string, value: string | string[]) => {\n const existingIndex = tokens.findIndex(t => t.fieldId === fieldId);\n\n if (Array.isArray(value) && value.length === 0) {\n if (existingIndex === -1) return;\n onTokensChange(tokens.filter((_, i) => i !== existingIndex));\n return;\n }\n\n if (existingIndex === -1) {\n onTokensChange([...tokens, { fieldId, value }]);\n return;\n }\n\n const nextTokens = [...tokens];\n nextTokens[existingIndex] = { fieldId, value };\n onTokensChange(nextTokens);\n },\n [onTokensChange, tokens],\n );\n\n const commit = useCallback(() => {\n if (!selectedField) {\n setError('Choose a property first.');\n return;\n }\n if (singleUseFieldIds.has(selectedField.id)) {\n setError(`Remove the existing ${selectedField.label} filter before adding another.`);\n return;\n }\n if (multiValue.length === 0) {\n setError(`Choose at least one ${selectedField.label.toLowerCase()} value.`);\n return;\n }\n onTokensChange([...tokens, { fieldId: selectedField.id, value: multiValue }]);\n setOpen(false);\n }, [multiValue, onTokensChange, selectedField, singleUseFieldIds, tokens]);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button variant=\"outline\" size={size} disabled={disabled} icon={<ListFilterPlusIcon />}>\n {label}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align=\"end\"\n sideOffset={MENU_SIDE_OFFSET}\n className={cn('w-64', selectedField ? 'p-3' : 'p-1')}\n initialFocus={false}\n finalFocus={() => {\n if (skipCloseFocusRef.current) {\n skipCloseFocusRef.current = false;\n return false;\n }\n return true;\n }}\n >\n <div className={cn('grid', selectedField && 'gap-3')}>\n {selectedField && (\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n aria-label=\"Back to properties\"\n className={cn(quietTextHover, controlStateColorTransition)}\n onClick={reset}\n >\n <ArrowLeftIcon className=\"size-4\" />\n </button>\n <FilterIcon className=\"size-4 shrink-0 text-muted-foreground\" />\n <span className=\"text-caption text-muted-foreground\">{`${selectedField.label} · is`}</span>\n </div>\n )}\n\n {!selectedField && (\n <div\n role=\"menu\"\n className={cn('max-h-[80dvh] overflow-auto', menu.containerClassName)}\n {...menu.getContainerProps({})}\n onKeyDown={e => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp' && e.key !== 'Home' && e.key !== 'End') return;\n const buttons = Array.from(\n e.currentTarget.querySelectorAll<HTMLButtonElement>('[data-filter-item]:not([disabled])'),\n );\n if (buttons.length === 0) return;\n e.preventDefault();\n const active = document.activeElement as HTMLElement | null;\n const current = buttons.findIndex(b => b === active);\n let next: number;\n if (e.key === 'Home') next = 0;\n else if (e.key === 'End') next = buttons.length - 1;\n else if (e.key === 'ArrowDown') next = current < 0 ? 0 : (current + 1) % buttons.length;\n else next = current <= 0 ? buttons.length - 1 : current - 1;\n buttons[next]?.focus();\n }}\n >\n <FluidMenuItems menu={menu}>\n {visibleFields.length > 0 ? (\n visibleFields.map(f => {\n const used = singleUseFieldIds.has(f.id);\n if (f.kind === 'pick-multi') {\n return (\n <PickMultiMenuItem\n key={f.id}\n field={f}\n tokens={tokens}\n onChange={replacePickMultiToken}\n open={openPickMultiFieldId === f.id}\n onToggle={togglePickMulti}\n onClose={closePickMulti}\n />\n );\n }\n return (\n <FilterMenuButton\n key={f.id}\n className={cn(filterItemClass, 'group')}\n disabled={used}\n onClick={() => {\n setError(undefined);\n if (f.kind === 'text') {\n onTokensChange([...tokens, { fieldId: f.id, value: '' }]);\n onStartTextFilter?.(f.id);\n skipCloseFocusRef.current = true;\n setOpen(false);\n return;\n }\n setFieldId(f.id);\n }}\n >\n <span className=\"truncate\">{f.label}</span>\n {used ? (\n <span className=\"ml-auto text-muted-foreground\">In use</span>\n ) : (\n <span\n className={cn(\n menuItemTrailingIconClass,\n 'text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 group-focus:opacity-100',\n )}\n >\n <PlusIcon />\n </span>\n )}\n </FilterMenuButton>\n );\n })\n ) : (\n <div className={menuEmptyClass}>No matching property.</div>\n )}\n </FluidMenuItems>\n </div>\n )}\n\n {selectedField && (\n <Combobox\n multiple\n options={selectedField.options ?? []}\n value={multiValue}\n onValueChange={v => {\n setMultiValue(v);\n setError(undefined);\n }}\n placeholder={selectedField.placeholder ?? `Choose ${selectedField.label}`}\n searchPlaceholder={`Search ${selectedField.label.toLowerCase()}...`}\n emptyText={selectedField.emptyText ?? 'No option found.'}\n size=\"md\"\n name={`property-filter-${selectedField.id}`}\n aria-label={selectedField.label}\n error={error}\n />\n )}\n\n {selectedField && (\n <div className=\"flex items-center justify-end gap-2\">\n <Button icon={<X />} variant=\"ghost\" size=\"md\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button icon={<ListFilterPlus />} variant=\"outline\" size=\"md\" onClick={commit}>\n Add filter\n </Button>\n </div>\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n\ntype PickMultiField = Extract<PropertyFilterField, { kind: 'pick-multi' }>;\n\ntype PickMultiMenuItemProps = {\n field: PickMultiField;\n tokens: PropertyFilterToken[];\n onChange: (fieldId: string, value: string | string[]) => void;\n open: boolean;\n onToggle: (fieldId: string) => void;\n onClose: () => void;\n};\n\n/**\n * A property-picker menu item that opens a separate Radix popover (portaled to\n * the side) with a radio group (single-select) or checkbox list (multi-select,\n * `field.multi === true`). Open/close is driven by explicit click / keyboard\n * press; the panel only closes when the user clicks outside, presses Escape,\n * or clicks the row again to toggle it off.\n */\nfunction PickMultiMenuItem({ field, tokens, onChange, open, onToggle, onClose }: PickMultiMenuItemProps) {\n const contentRef = useRef<HTMLDivElement>(null);\n\n return (\n <Popover\n open={open}\n onOpenChange={next => {\n if (next) onToggle(field.id);\n else onClose();\n }}\n >\n <PopoverTrigger asChild>\n <FilterMenuButton\n className={filterItemClass}\n onKeyDown={e => {\n if (e.key !== 'ArrowRight' && e.key !== 'ArrowLeft') return;\n if (!open) onToggle(field.id);\n e.preventDefault();\n requestAnimationFrame(() => {\n const first = contentRef.current?.querySelector<HTMLElement>(\n 'input, button, [tabindex]:not([tabindex=\"-1\"])',\n );\n first?.focus();\n });\n }}\n >\n {open && <ChevronRightIcon className=\"text-muted-foreground\" />}\n <span className=\"truncate\">{field.label}</span>\n {!open && (\n <span className={cn(menuItemTrailingIconClass, 'text-muted-foreground')}>\n <ChevronRightIcon />\n </span>\n )}\n </FilterMenuButton>\n </PopoverTrigger>\n <PopoverContent\n ref={contentRef}\n side=\"right\"\n align=\"start\"\n sideOffset={MENU_SIDE_OFFSET}\n className=\"w-64 p-0\"\n initialFocus={false}\n onKeyDown={e => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp' && e.key !== 'Home' && e.key !== 'End') return;\n const items = Array.from(\n e.currentTarget.querySelectorAll<HTMLElement>('[data-pick-multi-item]:not([disabled])'),\n );\n if (items.length === 0) return;\n e.preventDefault();\n e.stopPropagation();\n const active = document.activeElement as HTMLElement | null;\n const current = items.findIndex(el => el === active);\n let next: number;\n if (e.key === 'Home') next = 0;\n else if (e.key === 'End') next = items.length - 1;\n else if (e.key === 'ArrowDown') next = current < 0 ? 0 : (current + 1) % items.length;\n else next = current <= 0 ? items.length - 1 : current - 1;\n items[next]?.focus();\n }}\n data-pick-multi-panel\n >\n <PickMultiPanel field={field} tokens={tokens} onChange={onChange} />\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["fieldId"],"mappings":"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"}
1
+ {"version":3,"file":"PropertyFilter.es.js","sources":["../../src/ds/components/PropertyFilter/property-filter-creator.tsx"],"sourcesContent":["import {\n ArrowLeftIcon,\n ChevronRightIcon,\n FilterIcon,\n ListFilterPlusIcon,\n PlusIcon,\n ListFilterPlus,\n X,\n} from 'lucide-react';\nimport { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes } from 'react';\nimport { PickMultiPanel } from './pick-multi-panel';\nimport type { PropertyFilterField, PropertyFilterToken } from './types';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { Combobox } from '@/ds/components/Combobox/combobox';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover/popover';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { MENU_SIDE_OFFSET, menuEmptyClass, menuItemClass, menuItemTrailingIconClass } from '@/ds/primitives/menu-item';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\n// Plain <button>s navigated with roving focus (not Base UI): the fluid highlight follows focus.\nconst filterItemClass = cn(menuItemClass, 'focus:text-foreground');\n\nconst FilterMenuButton = forwardRef<HTMLButtonElement, ButtonHTMLAttributes<HTMLButtonElement>>((props, ref) => (\n <button type=\"button\" role=\"menuitem\" data-filter-item=\"\" ref={useFluidMenuItemRef(ref)} {...props} />\n));\nFilterMenuButton.displayName = 'FilterMenuButton';\n\nexport type PropertyFilterCreatorProps = {\n fields: PropertyFilterField[];\n tokens: PropertyFilterToken[];\n onTokensChange: (tokens: PropertyFilterToken[]) => void;\n label?: string;\n disabled?: boolean;\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n /**\n * Called when the user picks a text (id-style) field. Consumers are expected\n * to render a pending applied-filter pill with an active input so the user\n * can type the value inline instead of in this popover.\n */\n onStartTextFilter?: (fieldId: string) => void;\n /**\n * Field ids hidden from the Add Filter dropdown. Use to prevent users from\n * recreating a filter that an upstream context already owns (e.g. the agent\n * id when viewing the agent-scoped traces tab).\n */\n hiddenFieldIds?: readonly string[];\n};\n\n/**\n * Minimal Linear-style filter creator: a `+ Filter` button whose popover walks\n * the user through property → value → commit. For id-style text fields, the\n * picker closes immediately and the applied-filter pill owns the input. For\n * `pick-multi` fields (e.g. Root Entity Name) hovering the item opens a\n * separate side popover with checkboxes — each check adds its own applied\n * filter and the main popover stays open so users can pick many.\n */\nexport function PropertyFilterCreator({\n fields,\n tokens,\n onTokensChange,\n label = 'Add Filter',\n disabled,\n size,\n onStartTextFilter,\n hiddenFieldIds,\n}: PropertyFilterCreatorProps) {\n const visibleFields = useMemo(() => {\n if (!hiddenFieldIds || hiddenFieldIds.length === 0) return fields;\n const hidden = new Set(hiddenFieldIds);\n return fields.filter(f => !hidden.has(f.id));\n }, [fields, hiddenFieldIds]);\n const [open, setOpen] = useState(false);\n const menu = useFluidMenu<HTMLDivElement>();\n const [fieldId, setFieldId] = useState<string | undefined>();\n const [multiValue, setMultiValue] = useState<string[]>([]);\n const [error, setError] = useState<string | undefined>();\n // Single source of truth for which pick-multi side panel is open. Opens only\n // via explicit click/keyboard press on the menu item — no hover/focus\n // auto-open (was too flicker-prone).\n const [openPickMultiFieldId, setOpenPickMultiFieldId] = useState<string | undefined>();\n\n // When the user picks a text field we close this popover and hand off focus\n // to the newly-created pill's input — prevent Radix from returning focus to\n // the trigger button in that case.\n const skipCloseFocusRef = useRef(false);\n\n const togglePickMulti = useCallback((id: string) => {\n setOpenPickMultiFieldId(current => (current === id ? undefined : id));\n }, []);\n const closePickMulti = useCallback(() => setOpenPickMultiFieldId(undefined), []);\n\n useEffect(() => {\n if (!open) setOpenPickMultiFieldId(undefined);\n }, [open]);\n\n const selectedField = useMemo(() => visibleFields.find(f => f.id === fieldId), [visibleFields, fieldId]);\n // Only single-use kinds (text, multi-select) count as \"used\". `pick-multi`\n // allows multiple tokens with the same fieldId.\n const singleUseFieldIds = useMemo(() => {\n const ids = new Set<string>();\n for (const token of tokens) {\n const field = fields.find(f => f.id === token.fieldId);\n if (field && field.kind !== 'pick-multi') ids.add(token.fieldId);\n }\n return ids;\n }, [tokens, fields]);\n\n const reset = useCallback(() => {\n setFieldId(undefined);\n setMultiValue([]);\n setError(undefined);\n }, []);\n\n useEffect(() => {\n if (!open) reset();\n }, [open, reset]);\n\n /**\n * Replace whatever token exists for `fieldId` with the given value. Used by\n * both single-select (radio) and multi-select (checkbox) pick-multi panels.\n * An empty list means nothing is selected, which removes the token here —\n * unlike the applied pill, where the filter stays on in a neutral state.\n */\n const replacePickMultiToken = useCallback(\n (fieldId: string, value: string | string[]) => {\n const existingIndex = tokens.findIndex(t => t.fieldId === fieldId);\n\n if (Array.isArray(value) && value.length === 0) {\n if (existingIndex === -1) return;\n onTokensChange(tokens.filter((_, i) => i !== existingIndex));\n return;\n }\n\n if (existingIndex === -1) {\n onTokensChange([...tokens, { fieldId, value }]);\n return;\n }\n\n const nextTokens = [...tokens];\n nextTokens[existingIndex] = { fieldId, value };\n onTokensChange(nextTokens);\n },\n [onTokensChange, tokens],\n );\n\n const commit = useCallback(() => {\n if (!selectedField) {\n setError('Choose a property first.');\n return;\n }\n if (singleUseFieldIds.has(selectedField.id)) {\n setError(`Remove the existing ${selectedField.label} filter before adding another.`);\n return;\n }\n if (multiValue.length === 0) {\n setError(`Choose at least one ${selectedField.label.toLowerCase()} value.`);\n return;\n }\n onTokensChange([...tokens, { fieldId: selectedField.id, value: multiValue }]);\n setOpen(false);\n }, [multiValue, onTokensChange, selectedField, singleUseFieldIds, tokens]);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled} icon={<ListFilterPlusIcon />}>\n {label}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align=\"end\"\n sideOffset={MENU_SIDE_OFFSET}\n className={cn('w-64', selectedField ? 'p-3' : 'p-1')}\n initialFocus={false}\n finalFocus={() => {\n if (skipCloseFocusRef.current) {\n skipCloseFocusRef.current = false;\n return false;\n }\n return true;\n }}\n >\n <div className={cn('grid', selectedField && 'gap-3')}>\n {selectedField && (\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n aria-label=\"Back to properties\"\n className={cn(quietTextHover, controlStateColorTransition)}\n onClick={reset}\n >\n <ArrowLeftIcon className=\"size-4\" />\n </button>\n <FilterIcon className=\"size-4 shrink-0 text-muted-foreground\" />\n <span className=\"text-caption text-muted-foreground\">{`${selectedField.label} · is`}</span>\n </div>\n )}\n\n {!selectedField && (\n <div\n role=\"menu\"\n className={cn('max-h-[80dvh] overflow-auto', menu.containerClassName)}\n {...menu.getContainerProps({})}\n onKeyDown={e => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp' && e.key !== 'Home' && e.key !== 'End') return;\n const buttons = Array.from(\n e.currentTarget.querySelectorAll<HTMLButtonElement>('[data-filter-item]:not([disabled])'),\n );\n if (buttons.length === 0) return;\n e.preventDefault();\n const active = document.activeElement as HTMLElement | null;\n const current = buttons.findIndex(b => b === active);\n let next: number;\n if (e.key === 'Home') next = 0;\n else if (e.key === 'End') next = buttons.length - 1;\n else if (e.key === 'ArrowDown') next = current < 0 ? 0 : (current + 1) % buttons.length;\n else next = current <= 0 ? buttons.length - 1 : current - 1;\n buttons[next]?.focus();\n }}\n >\n <FluidMenuItems menu={menu}>\n {visibleFields.length > 0 ? (\n visibleFields.map(f => {\n const used = singleUseFieldIds.has(f.id);\n if (f.kind === 'pick-multi') {\n return (\n <PickMultiMenuItem\n key={f.id}\n field={f}\n tokens={tokens}\n onChange={replacePickMultiToken}\n open={openPickMultiFieldId === f.id}\n onToggle={togglePickMulti}\n onClose={closePickMulti}\n />\n );\n }\n return (\n <FilterMenuButton\n key={f.id}\n className={cn(filterItemClass, 'group')}\n disabled={used}\n onClick={() => {\n setError(undefined);\n if (f.kind === 'text') {\n onTokensChange([...tokens, { fieldId: f.id, value: '' }]);\n onStartTextFilter?.(f.id);\n skipCloseFocusRef.current = true;\n setOpen(false);\n return;\n }\n setFieldId(f.id);\n }}\n >\n <span className=\"truncate\">{f.label}</span>\n {used ? (\n <span className=\"ml-auto text-muted-foreground\">In use</span>\n ) : (\n <span\n className={cn(\n menuItemTrailingIconClass,\n 'text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 group-focus:opacity-100',\n )}\n >\n <PlusIcon />\n </span>\n )}\n </FilterMenuButton>\n );\n })\n ) : (\n <div className={menuEmptyClass}>No matching property.</div>\n )}\n </FluidMenuItems>\n </div>\n )}\n\n {selectedField && (\n <Combobox\n multiple\n options={selectedField.options ?? []}\n value={multiValue}\n onValueChange={v => {\n setMultiValue(v);\n setError(undefined);\n }}\n placeholder={selectedField.placeholder ?? `Choose ${selectedField.label}`}\n searchPlaceholder={`Search ${selectedField.label.toLowerCase()}...`}\n emptyText={selectedField.emptyText ?? 'No option found.'}\n size=\"md\"\n name={`property-filter-${selectedField.id}`}\n aria-label={selectedField.label}\n error={error}\n />\n )}\n\n {selectedField && (\n <div className=\"flex items-center justify-end gap-2\">\n <Button icon={<X />} variant=\"ghost\" size=\"md\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button icon={<ListFilterPlus />} size=\"md\" onClick={commit}>\n Add filter\n </Button>\n </div>\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n\ntype PickMultiField = Extract<PropertyFilterField, { kind: 'pick-multi' }>;\n\ntype PickMultiMenuItemProps = {\n field: PickMultiField;\n tokens: PropertyFilterToken[];\n onChange: (fieldId: string, value: string | string[]) => void;\n open: boolean;\n onToggle: (fieldId: string) => void;\n onClose: () => void;\n};\n\n/**\n * A property-picker menu item that opens a separate Radix popover (portaled to\n * the side) with a radio group (single-select) or checkbox list (multi-select,\n * `field.multi === true`). Open/close is driven by explicit click / keyboard\n * press; the panel only closes when the user clicks outside, presses Escape,\n * or clicks the row again to toggle it off.\n */\nfunction PickMultiMenuItem({ field, tokens, onChange, open, onToggle, onClose }: PickMultiMenuItemProps) {\n const contentRef = useRef<HTMLDivElement>(null);\n\n return (\n <Popover\n open={open}\n onOpenChange={next => {\n if (next) onToggle(field.id);\n else onClose();\n }}\n >\n <PopoverTrigger asChild>\n <FilterMenuButton\n className={filterItemClass}\n onKeyDown={e => {\n if (e.key !== 'ArrowRight' && e.key !== 'ArrowLeft') return;\n if (!open) onToggle(field.id);\n e.preventDefault();\n requestAnimationFrame(() => {\n const first = contentRef.current?.querySelector<HTMLElement>(\n 'input, button, [tabindex]:not([tabindex=\"-1\"])',\n );\n first?.focus();\n });\n }}\n >\n {open && <ChevronRightIcon className=\"text-muted-foreground\" />}\n <span className=\"truncate\">{field.label}</span>\n {!open && (\n <span className={cn(menuItemTrailingIconClass, 'text-muted-foreground')}>\n <ChevronRightIcon />\n </span>\n )}\n </FilterMenuButton>\n </PopoverTrigger>\n <PopoverContent\n ref={contentRef}\n side=\"right\"\n align=\"start\"\n sideOffset={MENU_SIDE_OFFSET}\n className=\"w-64 p-0\"\n initialFocus={false}\n onKeyDown={e => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp' && e.key !== 'Home' && e.key !== 'End') return;\n const items = Array.from(\n e.currentTarget.querySelectorAll<HTMLElement>('[data-pick-multi-item]:not([disabled])'),\n );\n if (items.length === 0) return;\n e.preventDefault();\n e.stopPropagation();\n const active = document.activeElement as HTMLElement | null;\n const current = items.findIndex(el => el === active);\n let next: number;\n if (e.key === 'Home') next = 0;\n else if (e.key === 'End') next = items.length - 1;\n else if (e.key === 'ArrowDown') next = current < 0 ? 0 : (current + 1) % items.length;\n else next = current <= 0 ? items.length - 1 : current - 1;\n items[next]?.focus();\n }}\n data-pick-multi-panel\n >\n <PickMultiPanel field={field} tokens={tokens} onChange={onChange} />\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["fieldId"],"mappings":"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"}
@@ -6,11 +6,11 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
7
  const React = require('react');
8
8
  const utils_ruleEngine = require('../utils/rule-engine.cjs.js');
9
- const select = require('../select-65j5NjtJ.cjs');
9
+ const select = require('../select-DjXJeDlO.cjs');
10
10
  const icons_Icon = require('../icons/Icon.cjs.js');
11
11
  const utils_cn = require('../cn-DG0X1KEP.cjs');
12
12
  const input = require('../input-CDLMprJS.cjs');
13
- const Button = require('../Button-MMZPEb_q.cjs');
13
+ const Button = require('../Button-BAMnPqos.cjs');
14
14
  const primitives_transitions = require('../primitives/transitions.cjs.js');
15
15
  const primitives_typography = require('../primitives/typography.cjs.js');
16
16
 
@@ -2,11 +2,11 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Type, ToggleLeft, Hash, List, Braces, Ban, Check, ListX, ChevronsLeft, ChevronsRight, ChevronLeft, ChevronRight, Text, TextSearch, EqualNot, Equal, X, Plus, Component } from 'lucide-react';
3
3
  import * as React from 'react';
4
4
  import { createDefaultRule, isRule, createDefaultRuleGroup } from '../utils/rule-engine.es.js';
5
- import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../select-BiY-SoMJ.js';
5
+ import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../select-TslOr65J.js';
6
6
  import { Icon } from '../icons/Icon.es.js';
7
7
  import { c as cn } from '../cn-65Adrsfj.js';
8
8
  import { I as Input } from '../input-B1RysHyq.js';
9
- import { B as Button } from '../Button-KUj0U-5I.js';
9
+ import { B as Button } from '../Button-B8nF87ai.js';
10
10
  import { controlStateColorTransition } from '../primitives/transitions.es.js';
11
11
  import { quietTextHover } from '../primitives/typography.es.js';
12
12
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const select = require('../select-65j5NjtJ.cjs');
5
+ const select = require('../select-DjXJeDlO.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { S as Select, a as SelectContent, b as SelectGroup, c as SelectItem, d as SelectTrigger, e as SelectValue } from '../select-BiY-SoMJ.js';
1
+ export { S as Select, a as SelectContent, b as SelectGroup, c as SelectItem, d as SelectTrigger, e as SelectValue } from '../select-TslOr65J.js';
2
2
  //# sourceMappingURL=Select.es.js.map
@@ -11,13 +11,13 @@ const codemirrorThemeDracula = require('@uiw/codemirror-theme-dracula');
11
11
  const ReactCodeMirror = require('@uiw/react-codemirror');
12
12
  const lucideReact = require('lucide-react');
13
13
  const React = require('react');
14
- const Button = require('../Button-MMZPEb_q.cjs');
14
+ const Button = require('../Button-BAMnPqos.cjs');
15
15
  const buttonsGroup = require('../buttons-group-CoZP3lJt.cjs');
16
- const copyButton = require('../copy-button-B5ZCtnTb.cjs');
16
+ const copyButton = require('../copy-button-D2MTGxq_.cjs');
17
17
  const section = require('../section-CTihfzmc.cjs');
18
18
  const themeProvider = require('../theme-provider-aO5-jZVp.cjs');
19
19
  const primitives_raisedSurface = require('../primitives/raised-surface.cjs.js');
20
- const drawer = require('../drawer-B6Ftum77.cjs');
20
+ const drawer = require('../drawer-CmzM8WKh.cjs');
21
21
  const utils_cn = require('../cn-DG0X1KEP.cjs');
22
22
  const primitives_portalContainer = require('../primitives/portal-container.cjs.js');
23
23
  const primitives_transitions = require('../primitives/transitions.cjs.js');
@@ -8,13 +8,13 @@ import ReactCodeMirror from '@uiw/react-codemirror';
8
8
  import { AlignLeftIcon, AlignJustifyIcon, ArrowUpIcon, ArrowDownIcon, ChevronsRightIcon } from 'lucide-react';
9
9
  import * as React from 'react';
10
10
  import { useState, useMemo } from 'react';
11
- import { B as Button } from '../Button-KUj0U-5I.js';
11
+ import { B as Button } from '../Button-B8nF87ai.js';
12
12
  import { B as ButtonsGroup } from '../buttons-group-DsZgrZBZ.js';
13
- import { C as CopyButton } from '../copy-button-DZqxEuiE.js';
13
+ import { C as CopyButton } from '../copy-button-DcZ1mdw4.js';
14
14
  import { S as Section } from '../section-B9OLuEq3.js';
15
15
  import { u as useTheme } from '../theme-provider-C9ih9jSS.js';
16
16
  import { raisedSurfaceStyle } from '../primitives/raised-surface.es.js';
17
- import { j as DrawerInteractive, D as Drawer, l as DrawerPortal, a as DrawerBackdrop, q as DrawerViewport, k as DrawerPopup, o as DrawerTitle, e as DrawerDescription, c as DrawerClose } from '../drawer-CnCsgToD.js';
17
+ import { j as DrawerInteractive, D as Drawer, l as DrawerPortal, a as DrawerBackdrop, q as DrawerViewport, k as DrawerPopup, o as DrawerTitle, e as DrawerDescription, c as DrawerClose } from '../drawer-b_iqX4G0.js';
18
18
  import { c as cn } from '../cn-65Adrsfj.js';
19
19
  import { PortalContainerProvider } from '../primitives/portal-container.es.js';
20
20
  import { transitions } from '../primitives/transitions.es.js';
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const tabsRoot = require('../tabs-root-DrK1hxeV.cjs');
6
- const tabsTab = require('../tabs-tab-ClmulJmM.cjs');
7
- const tabsContent = require('../tabs-content-CuUlcS67.cjs');
5
+ const tabsRoot = require('../tabs-root-COCL6jcx.cjs');
6
+ const tabsTab = require('../tabs-tab-DFmRMdi3.cjs');
7
+ const tabsContent = require('../tabs-content-DlCJoQUW.cjs');
8
8
 
9
9
 
10
10
 
@@ -1,4 +1,4 @@
1
- export { T as TabList, a as Tabs } from '../tabs-root-B2sdkQ3A.js';
2
- export { T as Tab } from '../tabs-tab-u6LS5twu.js';
3
- export { T as TabContent } from '../tabs-content-DMrffE9p.js';
1
+ export { T as TabList, a as Tabs } from '../tabs-root-UNPxoGhW.js';
2
+ export { T as Tab } from '../tabs-tab-DluwCnDF.js';
3
+ export { T as TabContent } from '../tabs-content-7ODUUdQ0.js';
4
4
  //# sourceMappingURL=Tabs.es.js.map
@@ -7,7 +7,7 @@ const lucideReact = require('lucide-react');
7
7
  const React = require('react');
8
8
  const utils_cn = require('../cn-DG0X1KEP.cjs');
9
9
  const primitives_raisedSurface = require('../primitives/raised-surface.cjs.js');
10
- const Button = require('../Button-MMZPEb_q.cjs');
10
+ const Button = require('../Button-BAMnPqos.cjs');
11
11
  const Txt = require('../Txt-B4-2nLaI.cjs');
12
12
 
13
13
  const ThreadList = ({ children, "aria-label": ariaLabel = "Threads", embedded = false }) => {
@@ -3,7 +3,7 @@ import { X } from 'lucide-react';
3
3
  import { createElement } from 'react';
4
4
  import { c as cn } from '../cn-65Adrsfj.js';
5
5
  import { raisedSurfaceStyle } from '../primitives/raised-surface.es.js';
6
- import { B as Button } from '../Button-KUj0U-5I.js';
6
+ import { B as Button } from '../Button-B8nF87ai.js';
7
7
  import { T as Txt } from '../Txt-DTh3Pa_a.js';
8
8
 
9
9
  const ThreadList = ({ children, "aria-label": ariaLabel = "Threads", embedded = false }) => {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
- const copyButton = require('../copy-button-B5ZCtnTb.cjs');
6
+ const copyButton = require('../copy-button-D2MTGxq_.cjs');
7
7
  const tooltip = require('../tooltip-FvWL16Xn.cjs');
8
8
  const Txt = require('../Txt-B4-2nLaI.cjs');
9
9
  const utils_cn = require('../cn-DG0X1KEP.cjs');
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { C as CopyButton } from '../copy-button-DZqxEuiE.js';
2
+ import { C as CopyButton } from '../copy-button-DcZ1mdw4.js';
3
3
  import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../tooltip-BrDiP0RI.js';
4
4
  import { T as Txt } from '../Txt-DTh3Pa_a.js';
5
5
  import { c as cn } from '../cn-65Adrsfj.js';
@@ -10,7 +10,7 @@ const Txt = require('../Txt-B4-2nLaI.cjs');
10
10
  const utils_duration = require('../utils/duration.cjs.js');
11
11
  const code = require('../code-DhrdtZce.cjs');
12
12
  const utils_formatting = require('../utils/formatting.cjs.js');
13
- const copyButton = require('../copy-button-B5ZCtnTb.cjs');
13
+ const copyButton = require('../copy-button-D2MTGxq_.cjs');
14
14
  const primitives_raisedSurface = require('../primitives/raised-surface.cjs.js');
15
15
  const utils_cn = require('../cn-DG0X1KEP.cjs');
16
16
  const activity = require('../activity-BYMLNb0G.cjs');
@@ -20,9 +20,9 @@ const langJavascript = require('@codemirror/lang-javascript');
20
20
  const langJson = require('@codemirror/lang-json');
21
21
  const view = require('@codemirror/view');
22
22
  const ReactCodeMirror = require('@uiw/react-codemirror');
23
- const codeEditor = require('../code-editor-BfoJXq9l.cjs');
24
- const Button = require('../Button-MMZPEb_q.cjs');
25
- const dialog = require('../dialog-Bilo4jEU.cjs');
23
+ const codeEditor = require('../code-editor-D0wHkvDt.cjs');
24
+ const Button = require('../Button-BAMnPqos.cjs');
25
+ const dialog = require('../dialog-B2DGYuyi.cjs');
26
26
  const react = require('@xyflow/react');
27
27
  const slider = require('../slider-C-Fda4HC.cjs');
28
28
  require('@xyflow/react/dist/style.css');
@@ -6,7 +6,7 @@ import { T as Txt } from '../Txt-DTh3Pa_a.js';
6
6
  import { formatDuration } from '../utils/duration.es.js';
7
7
  import { C as Code } from '../code-D4Vw_fYq.js';
8
8
  import { formatTypeScript } from '../utils/formatting.es.js';
9
- import { C as CopyButton } from '../copy-button-DZqxEuiE.js';
9
+ import { C as CopyButton } from '../copy-button-DcZ1mdw4.js';
10
10
  import { raisedSurfaceStyle, surfaceStateLayerStyle } from '../primitives/raised-surface.es.js';
11
11
  import { c as cn } from '../cn-65Adrsfj.js';
12
12
  import { a as ActivityWick } from '../activity-B8TfxRNU.js';
@@ -16,9 +16,9 @@ import { javascript } from '@codemirror/lang-javascript';
16
16
  import { jsonLanguage } from '@codemirror/lang-json';
17
17
  import { EditorView } from '@codemirror/view';
18
18
  import ReactCodeMirror from '@uiw/react-codemirror';
19
- import { u as useCodemirrorTheme } from '../code-editor-BQTDma1I.js';
20
- import { B as Button } from '../Button-KUj0U-5I.js';
21
- import { D as Dialog, a as DialogContent, b as DialogHeader, c as DialogTitle, e as DialogBody } from '../dialog-DMOXPT0N.js';
19
+ import { u as useCodemirrorTheme } from '../code-editor-DmvGc1jj.js';
20
+ import { B as Button } from '../Button-B8nF87ai.js';
21
+ import { D as Dialog, a as DialogContent, b as DialogHeader, c as DialogTitle, e as DialogBody } from '../dialog-BvDeW4yR.js';
22
22
  import { Handle, Position, useInternalNode, getBezierPath, BaseEdge, EdgeLabelRenderer, useViewport, useReactFlow, useStore, Panel, useNodesInitialized, ReactFlow, Background, BackgroundVariant } from '@xyflow/react';
23
23
  import { S as Slider } from '../slider-MM3K0Pyv.js';
24
24
  import '@xyflow/react/dist/style.css';
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const askUser = require('../../ask-user-DaRRR4qQ.cjs');
5
+ const askUser = require('../../ask-user--Samf9gv.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { A as AskUser, a as AskUserBody, b as AskUserContainer, c as AskUserLabel, d as AskUserOptionRow, e as AskUserOutput, f as AskUserPending, g as AskUserQuestion, h as AskUserSubmit } from '../../ask-user-C4DTzEQF.js';
1
+ export { A as AskUser, a as AskUserBody, b as AskUserContainer, c as AskUserLabel, d as AskUserOptionRow, e as AskUserOutput, f as AskUserPending, g as AskUserQuestion, h as AskUserSubmit } from '../../ask-user-C-B3dhNP.js';
2
2
  //# sourceMappingURL=ask-user.es.js.map
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const chatNotification = require('../../chat-notification-C5Ox5tuS.cjs');
6
- const chatSignal = require('../../chat-signal-ClyJeml8.cjs');
5
+ const chatNotification = require('../../chat-notification-DJykWtoj.cjs');
6
+ const chatSignal = require('../../chat-signal-xs3FkPts.cjs');
7
7
  const jsxRuntime = require('react/jsx-runtime');
8
8
  const lucideReact = require('lucide-react');
9
- const markdownRenderer = require('../../markdown-renderer-CZLwgva-.cjs');
9
+ const markdownRenderer = require('../../markdown-renderer-zbO5SMQg.cjs');
10
10
  const scrollArea = require('../../scroll-area-BzOyuS8Y.cjs');
11
11
  const Txt = require('../../Txt-B4-2nLaI.cjs');
12
12
 
@@ -1,9 +1,9 @@
1
- import { a as ChatEvent } from '../../chat-notification-DeKD1Ifx.js';
2
- export { C as ChatNotification } from '../../chat-notification-DeKD1Ifx.js';
3
- export { C as ChatSignal } from '../../chat-signal-DiAHks6_.js';
1
+ import { a as ChatEvent } from '../../chat-notification-CmdRGO_D.js';
2
+ export { C as ChatNotification } from '../../chat-notification-CmdRGO_D.js';
3
+ export { C as ChatSignal } from '../../chat-signal-Vg8pGXwH.js';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
5
5
  import { BookOpen } from 'lucide-react';
6
- import { M as MarkdownRenderer } from '../../markdown-renderer-BUqHHH4y.js';
6
+ import { M as MarkdownRenderer } from '../../markdown-renderer-4cVz18hI.js';
7
7
  import { S as ScrollArea } from '../../scroll-area-DyTZoISq.js';
8
8
  import { T as Txt } from '../../Txt-DTh3Pa_a.js';
9
9
 
@@ -6,8 +6,8 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
7
  const React = require('react');
8
8
  const Badge = require('../../Badge-BEeYtjmv.cjs');
9
- const Button = require('../../Button-MMZPEb_q.cjs');
10
- const markdownRenderer = require('../../markdown-renderer-CZLwgva-.cjs');
9
+ const Button = require('../../Button-BAMnPqos.cjs');
10
+ const markdownRenderer = require('../../markdown-renderer-zbO5SMQg.cjs');
11
11
  const Txt = require('../../Txt-B4-2nLaI.cjs');
12
12
  const icons_Icon = require('../../icons/Icon.cjs.js');
13
13
  const hooks_useCopyToClipboard = require('../../hooks/use-copy-to-clipboard.cjs.js');
@@ -2,8 +2,8 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { CheckIcon, CopyIcon, Minimize2, Maximize2, ClipboardList } from 'lucide-react';
3
3
  import { useState, useRef, useLayoutEffect, createContext, useContext } from 'react';
4
4
  import { B as Badge } from '../../Badge-TD55_qZJ.js';
5
- import { B as Button } from '../../Button-KUj0U-5I.js';
6
- import { M as MarkdownRenderer } from '../../markdown-renderer-BUqHHH4y.js';
5
+ import { B as Button } from '../../Button-B8nF87ai.js';
6
+ import { M as MarkdownRenderer } from '../../markdown-renderer-4cVz18hI.js';
7
7
  import { T as Txt } from '../../Txt-DTh3Pa_a.js';
8
8
  import { Icon } from '../../icons/Icon.es.js';
9
9
  import { useCopyToClipboard } from '../../hooks/use-copy-to-clipboard.es.js';
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const toolApproval = require('../../tool-approval-DYX_ZNWc.cjs');
5
+ const toolApproval = require('../../tool-approval-LIy1nZZJ.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { T as ToolApproval, a as ToolApprovalActions } from '../../tool-approval-DzOGIKRh.js';
1
+ export { T as ToolApproval, a as ToolApprovalActions } from '../../tool-approval-DXUFyrSl.js';
2
2
  //# sourceMappingURL=tool-approval.es.js.map