@mastra/playground-ui 60.0.0 → 60.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 (899) hide show
  1. package/README.md +7 -6
  2. package/dist/{Badge-H8K5WrXg.cjs → Badge-D3EctKQo.cjs} +16 -8
  3. package/dist/Badge-D3EctKQo.cjs.map +1 -0
  4. package/dist/{Badge-Q_pCeeGW.js → Badge-DmOqFpXW.js} +16 -8
  5. package/dist/Badge-DmOqFpXW.js.map +1 -0
  6. package/dist/{Button-BnmR2HRc.cjs → Button-CXhSUBxN.cjs} +3 -3
  7. package/dist/Button-CXhSUBxN.cjs.map +1 -0
  8. package/dist/{Button-C6eUqcPI.js → Button-D43ghVKt.js} +3 -3
  9. package/dist/Button-D43ghVKt.js.map +1 -0
  10. package/dist/{EmptyState-CJ5KC4Db.cjs → EmptyState-CuoMGNP0.cjs} +2 -2
  11. package/dist/EmptyState-CuoMGNP0.cjs.map +1 -0
  12. package/dist/{EmptyState-CynkaZd1.js → EmptyState-DyyUFpzY.js} +2 -2
  13. package/dist/EmptyState-DyyUFpzY.js.map +1 -0
  14. package/dist/{ErrorBoundary-Bb2R5IMR.js → ErrorBoundary-BvwJY6s9.js} +2 -2
  15. package/dist/{ErrorBoundary-Bb2R5IMR.js.map → ErrorBoundary-BvwJY6s9.js.map} +1 -1
  16. package/dist/{ErrorBoundary-CKrwONAU.cjs → ErrorBoundary-D7eIMbMr.cjs} +2 -2
  17. package/dist/{ErrorBoundary-CKrwONAU.cjs.map → ErrorBoundary-D7eIMbMr.cjs.map} +1 -1
  18. package/dist/{Notice-Ce3r5x-7.js → Notice-B8RIClJD.js} +2 -2
  19. package/dist/{Notice-Ce3r5x-7.js.map → Notice-B8RIClJD.js.map} +1 -1
  20. package/dist/{Notice-CEBwitdf.cjs → Notice-C4Tgmtgb.cjs} +2 -2
  21. package/dist/{Notice-CEBwitdf.cjs.map → Notice-C4Tgmtgb.cjs.map} +1 -1
  22. package/dist/{activity-Duth8KP_.js → activity-BoXbE4Kz.js} +3 -3
  23. package/dist/activity-BoXbE4Kz.js.map +1 -0
  24. package/dist/{activity-8egTNbaI.cjs → activity-CbQG59Oc.cjs} +3 -3
  25. package/dist/activity-CbQG59Oc.cjs.map +1 -0
  26. package/dist/{alert-dialog-D1UYVW__.js → alert-dialog-CzRo39mH.js} +3 -3
  27. package/dist/{alert-dialog-D1UYVW__.js.map → alert-dialog-CzRo39mH.js.map} +1 -1
  28. package/dist/{alert-dialog-BcOSIOSW.cjs → alert-dialog-DC-Fapxf.cjs} +3 -3
  29. package/dist/{alert-dialog-BcOSIOSW.cjs.map → alert-dialog-DC-Fapxf.cjs.map} +1 -1
  30. package/dist/{ask-user-DJXmLJzy.cjs → ask-user-CXu4b7Jw.cjs} +4 -4
  31. package/dist/ask-user-CXu4b7Jw.cjs.map +1 -0
  32. package/dist/{ask-user-Crg1O-o6.js → ask-user-Dlz2346n.js} +4 -4
  33. package/dist/ask-user-Dlz2346n.js.map +1 -0
  34. package/dist/buttons-group-CoZP3lJt.cjs.map +1 -1
  35. package/dist/buttons-group-DsZgrZBZ.js.map +1 -1
  36. package/dist/{code-block-C7A4Hv96.cjs → code-block-BzoMjjtf.cjs} +5 -5
  37. package/dist/{code-block-C7A4Hv96.cjs.map → code-block-BzoMjjtf.cjs.map} +1 -1
  38. package/dist/{code-block-C_pvalBv.js → code-block-DY5KsTGY.js} +5 -5
  39. package/dist/{code-block-C_pvalBv.js.map → code-block-DY5KsTGY.js.map} +1 -1
  40. package/dist/{code-editor-BXchPl_F.cjs → code-editor-DzQEzQJh.cjs} +5 -5
  41. package/dist/code-editor-DzQEzQJh.cjs.map +1 -0
  42. package/dist/{code-editor-Cltwid7c.js → code-editor-IR5UX112.js} +5 -5
  43. package/dist/code-editor-IR5UX112.js.map +1 -0
  44. package/dist/{combobox-B_C0cNid.js → combobox-B15qTrWO.js} +4 -4
  45. package/dist/{combobox-B_C0cNid.js.map → combobox-B15qTrWO.js.map} +1 -1
  46. package/dist/{combobox-rKV-Lksj.cjs → combobox-DJ0c4o4S.cjs} +4 -4
  47. package/dist/{combobox-rKV-Lksj.cjs.map → combobox-DJ0c4o4S.cjs.map} +1 -1
  48. package/dist/{combobox-styles-CLxC7VLA.js → combobox-styles-C2MEEpaG.js} +3 -3
  49. package/dist/{combobox-styles-CLxC7VLA.js.map → combobox-styles-C2MEEpaG.js.map} +1 -1
  50. package/dist/{combobox-styles-C4Kq1NFV.cjs → combobox-styles-DLflBH-G.cjs} +3 -3
  51. package/dist/{combobox-styles-C4Kq1NFV.cjs.map → combobox-styles-DLflBH-G.cjs.map} +1 -1
  52. package/dist/{command-CpXMoss8.cjs → command-Bm0VcX7X.cjs} +2 -2
  53. package/dist/{command-CpXMoss8.cjs.map → command-Bm0VcX7X.cjs.map} +1 -1
  54. package/dist/{command-C6JnofUJ.js → command-DFin7kHN.js} +2 -2
  55. package/dist/{command-C6JnofUJ.js.map → command-DFin7kHN.js.map} +1 -1
  56. package/dist/components/AlertDialog.cjs.js +1 -1
  57. package/dist/components/AlertDialog.es.js +1 -1
  58. package/dist/components/Badge.cjs.js +1 -1
  59. package/dist/components/Badge.es.js +1 -1
  60. package/dist/components/Button.cjs.js +1 -1
  61. package/dist/components/Button.es.js +2 -2
  62. package/dist/components/ClampedText.cjs.js +1 -1
  63. package/dist/components/ClampedText.es.js +1 -1
  64. package/dist/components/CodeBlock.cjs.js +1 -1
  65. package/dist/components/CodeBlock.es.js +1 -1
  66. package/dist/components/CodeEditor.cjs.js +1 -1
  67. package/dist/components/CodeEditor.es.js +1 -1
  68. package/dist/components/CollapsibleBox.cjs.js +12 -0
  69. package/dist/components/CollapsibleBox.cjs.js.map +1 -0
  70. package/dist/components/CollapsibleBox.d.ts +2 -0
  71. package/dist/components/CollapsibleBox.es.js +2 -0
  72. package/dist/components/CollapsibleBox.es.js.map +1 -0
  73. package/dist/components/Combobox.cjs.js +2 -2
  74. package/dist/components/Combobox.es.js +2 -2
  75. package/dist/components/Command.cjs.js +1 -1
  76. package/dist/components/Command.es.js +1 -1
  77. package/dist/components/CommandPalette.cjs.js +1 -1
  78. package/dist/components/CommandPalette.es.js +1 -1
  79. package/dist/components/Comment.cjs.js +3 -3
  80. package/dist/components/Comment.es.js +3 -3
  81. package/dist/components/CopyButton.cjs.js +1 -1
  82. package/dist/components/CopyButton.es.js +1 -1
  83. package/dist/components/DataCodeSection.cjs.js +1 -1
  84. package/dist/components/DataCodeSection.es.js +1 -1
  85. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  86. package/dist/components/DataDetailsPanel.es.js +2 -2
  87. package/dist/components/DataList.cjs.js +3 -3
  88. package/dist/components/DataList.es.js +3 -3
  89. package/dist/components/DataPanel.cjs.js +1 -1
  90. package/dist/components/DataPanel.es.js +1 -1
  91. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  92. package/dist/components/DateRangeTimeline.es.js +1 -1
  93. package/dist/components/DateTimePicker.cjs.js +3 -3
  94. package/dist/components/DateTimePicker.es.js +3 -3
  95. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  96. package/dist/components/DateTimeRangePicker.es.js +1 -1
  97. package/dist/components/Dialog.cjs.js +2 -2
  98. package/dist/components/Dialog.es.js +2 -2
  99. package/dist/components/DisabledFeatureButton.cjs.js +1 -1
  100. package/dist/components/DisabledFeatureButton.es.js +1 -1
  101. package/dist/components/Drawer.cjs.js +1 -1
  102. package/dist/components/Drawer.es.js +1 -1
  103. package/dist/components/EmptyState.cjs.js +1 -1
  104. package/dist/components/EmptyState.es.js +1 -1
  105. package/dist/components/EnvironmentVariablesEditor.cjs.js +5 -5
  106. package/dist/components/EnvironmentVariablesEditor.es.js +5 -5
  107. package/dist/components/ErrorBoundary.cjs.js +1 -1
  108. package/dist/components/ErrorBoundary.es.js +1 -1
  109. package/dist/components/FileDropBackdrop.cjs.js +1 -1
  110. package/dist/components/FileDropBackdrop.es.js +1 -1
  111. package/dist/components/FilterBar.cjs.js +3 -3
  112. package/dist/components/FilterBar.es.js +4 -4
  113. package/dist/components/FormFieldBlocks.cjs.js +5 -5
  114. package/dist/components/FormFieldBlocks.es.js +5 -5
  115. package/dist/components/InputGroup.cjs.js +1 -1
  116. package/dist/components/InputGroup.es.js +1 -1
  117. package/dist/components/JSONSchemaForm.cjs.js +3 -3
  118. package/dist/components/JSONSchemaForm.es.js +3 -3
  119. package/dist/components/ListSearch.cjs.js +1 -1
  120. package/dist/components/ListSearch.es.js +1 -1
  121. package/dist/components/LogsDataList.cjs.js +1 -1
  122. package/dist/components/LogsDataList.es.js +1 -1
  123. package/dist/components/MainSidebar.cjs.js +1 -1
  124. package/dist/components/MainSidebar.es.js +2 -2
  125. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  126. package/dist/components/MarkdownRenderer.es.js +1 -1
  127. package/dist/components/Message.cjs.js +1 -1
  128. package/dist/components/Message.es.js +1 -1
  129. package/dist/components/MetricsCard.cjs.js +1 -1
  130. package/dist/components/MetricsCard.es.js +1 -1
  131. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  132. package/dist/components/MetricsKpiCard.es.js +1 -1
  133. package/dist/components/Notice.cjs.js +1 -1
  134. package/dist/components/Notice.es.js +1 -1
  135. package/dist/components/PrevNextNav.cjs.js +1 -1
  136. package/dist/components/PrevNextNav.es.js +1 -1
  137. package/dist/components/ProductBadge.cjs.js +1 -1
  138. package/dist/components/ProductBadge.es.js +1 -1
  139. package/dist/components/PropertyFilter.cjs.js +3 -3
  140. package/dist/components/PropertyFilter.es.js +4 -4
  141. package/dist/components/PullRequestIcon.cjs.js +1 -1
  142. package/dist/components/PullRequestIcon.cjs.js.map +1 -1
  143. package/dist/components/PullRequestIcon.es.js +1 -1
  144. package/dist/components/PullRequestIcon.es.js.map +1 -1
  145. package/dist/components/RelativeTimestamp.cjs.js +1 -1
  146. package/dist/components/RelativeTimestamp.es.js +1 -1
  147. package/dist/components/RuleBuilder.cjs.js +3 -3
  148. package/dist/components/RuleBuilder.cjs.js.map +1 -1
  149. package/dist/components/RuleBuilder.es.js +3 -3
  150. package/dist/components/RuleBuilder.es.js.map +1 -1
  151. package/dist/components/SankeyChart.cjs.js +1 -1
  152. package/dist/components/SankeyChart.es.js +1 -1
  153. package/dist/components/Section.cjs.js +1 -1
  154. package/dist/components/Section.es.js +1 -1
  155. package/dist/components/SegmentedControl.cjs.js +11 -0
  156. package/dist/components/SegmentedControl.cjs.js.map +1 -0
  157. package/dist/components/SegmentedControl.d.ts +2 -0
  158. package/dist/components/SegmentedControl.es.js +2 -0
  159. package/dist/components/SegmentedControl.es.js.map +1 -0
  160. package/dist/components/Select.cjs.js +1 -1
  161. package/dist/components/Select.es.js +1 -1
  162. package/dist/components/SideDialog.cjs.js +1 -1
  163. package/dist/components/SideDialog.es.js +1 -1
  164. package/dist/components/Steps.cjs.js +2 -2
  165. package/dist/components/Steps.cjs.js.map +1 -1
  166. package/dist/components/Steps.es.js +2 -2
  167. package/dist/components/Steps.es.js.map +1 -1
  168. package/dist/components/Tabs.cjs.js +3 -3
  169. package/dist/components/Tabs.es.js +3 -3
  170. package/dist/components/ThemeToggle.cjs.js +17 -86
  171. package/dist/components/ThemeToggle.cjs.js.map +1 -1
  172. package/dist/components/ThemeToggle.es.js +18 -87
  173. package/dist/components/ThemeToggle.es.js.map +1 -1
  174. package/dist/components/ThreadList.cjs.js +1 -1
  175. package/dist/components/ThreadList.es.js +1 -1
  176. package/dist/components/TokenBudget.cjs.js +1 -1
  177. package/dist/components/TokenBudget.es.js +1 -1
  178. package/dist/components/Truncate.cjs.js +1 -1
  179. package/dist/components/Truncate.es.js +1 -1
  180. package/dist/components/Workflow.cjs.js +6 -6
  181. package/dist/components/Workflow.es.js +6 -6
  182. package/dist/components/ai/activity.cjs.js +4 -4
  183. package/dist/components/ai/activity.es.js +4 -4
  184. package/dist/components/ai/ask-user.cjs.js +1 -1
  185. package/dist/components/ai/ask-user.es.js +1 -1
  186. package/dist/components/ai/plan.cjs.js +1 -1
  187. package/dist/components/ai/plan.es.js +1 -1
  188. package/dist/components/ai/tool-approval.cjs.js +1 -1
  189. package/dist/components/ai/tool-approval.es.js +1 -1
  190. package/dist/components/ai/tool-call.cjs.js +4 -4
  191. package/dist/components/ai/tool-call.es.js +4 -4
  192. package/dist/{copy-button-C6nXDjBz.cjs → copy-button-CGkFEDHF.cjs} +2 -2
  193. package/dist/{copy-button-C6nXDjBz.cjs.map → copy-button-CGkFEDHF.cjs.map} +1 -1
  194. package/dist/{copy-button-DbmsTUum.js → copy-button-DH8xtrWz.js} +2 -2
  195. package/dist/{copy-button-DbmsTUum.js.map → copy-button-DH8xtrWz.js.map} +1 -1
  196. package/dist/{data-code-section-D5b6_jcB.cjs → data-code-section-DWBfkrmO.cjs} +6 -6
  197. package/dist/data-code-section-DWBfkrmO.cjs.map +1 -0
  198. package/dist/{data-code-section-Bd2Xnckz.js → data-code-section-It6myyvZ.js} +6 -6
  199. package/dist/data-code-section-It6myyvZ.js.map +1 -0
  200. package/dist/{data-list-DL_oFE4j.js → data-list-CyeD_u-6.js} +3 -3
  201. package/dist/{data-list-DL_oFE4j.js.map → data-list-CyeD_u-6.js.map} +1 -1
  202. package/dist/{data-list-D8bACyyK.cjs → data-list-Y42KyuI1.cjs} +3 -3
  203. package/dist/{data-list-D8bACyyK.cjs.map → data-list-Y42KyuI1.cjs.map} +1 -1
  204. package/dist/{data-list-spacer-_bFe0e2u.cjs → data-list-spacer-BSg2hCx7.cjs} +2 -2
  205. package/dist/{data-list-spacer-_bFe0e2u.cjs.map → data-list-spacer-BSg2hCx7.cjs.map} +1 -1
  206. package/dist/{data-list-spacer-CE6-4ZQq.js → data-list-spacer-C8z32twc.js} +2 -2
  207. package/dist/{data-list-spacer-CE6-4ZQq.js.map → data-list-spacer-C8z32twc.js.map} +1 -1
  208. package/dist/{data-panel-CjvoI_lx.cjs → data-panel-D7Qk4iwZ.cjs} +3 -3
  209. package/dist/{data-panel-CjvoI_lx.cjs.map → data-panel-D7Qk4iwZ.cjs.map} +1 -1
  210. package/dist/{data-panel-42fdcagQ.js → data-panel-DuLf5j8S.js} +3 -3
  211. package/dist/{data-panel-42fdcagQ.js.map → data-panel-DuLf5j8S.js.map} +1 -1
  212. package/dist/{date-time-range-picker-C-pSI1u1.js → date-time-range-picker-BDylIIzt.js} +4 -4
  213. package/dist/{date-time-range-picker-C-pSI1u1.js.map → date-time-range-picker-BDylIIzt.js.map} +1 -1
  214. package/dist/{date-time-range-picker-BORAuIJM.cjs → date-time-range-picker-UheN070q.cjs} +4 -4
  215. package/dist/{date-time-range-picker-BORAuIJM.cjs.map → date-time-range-picker-UheN070q.cjs.map} +1 -1
  216. package/dist/{dialog-cKzR2TXI.js → dialog-Dt5kASkl.js} +2 -2
  217. package/dist/{dialog-cKzR2TXI.js.map → dialog-Dt5kASkl.js.map} +1 -1
  218. package/dist/{dialog-action-B3AHq7mU.cjs → dialog-action-C3Tc7ZKI.cjs} +3 -3
  219. package/dist/{dialog-action-B3AHq7mU.cjs.map → dialog-action-C3Tc7ZKI.cjs.map} +1 -1
  220. package/dist/{dialog-action-BGmDoI5T.js → dialog-action-CB3h9Z2J.js} +3 -3
  221. package/dist/{dialog-action-BGmDoI5T.js.map → dialog-action-CB3h9Z2J.js.map} +1 -1
  222. package/dist/{dialog-DYpOpj9s.cjs → dialog-d_AK1NQD.cjs} +2 -2
  223. package/dist/{dialog-DYpOpj9s.cjs.map → dialog-d_AK1NQD.cjs.map} +1 -1
  224. package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
  225. package/dist/domains/auth/components/permission-denied.es.js +1 -1
  226. package/dist/domains/auth/components/session-expired.cjs.js +2 -2
  227. package/dist/domains/auth/components/session-expired.es.js +2 -2
  228. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
  229. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
  230. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
  231. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
  232. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  233. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  234. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
  235. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
  236. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  237. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  238. package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
  239. package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
  240. package/dist/domains/chat/messages/message-row.cjs.js +5 -5
  241. package/dist/domains/chat/messages/message-row.es.js +5 -5
  242. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  243. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  244. package/dist/domains/chat/messages/renderers/message-text.cjs.js +3 -3
  245. package/dist/domains/chat/messages/renderers/message-text.es.js +3 -3
  246. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  247. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  248. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  249. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  250. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  251. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  252. package/dist/domains/chat/messages/skill-message.cjs.js +3 -3
  253. package/dist/domains/chat/messages/skill-message.es.js +3 -3
  254. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  255. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  256. package/dist/domains/chat/messages/tripwire-notice.cjs.js +2 -2
  257. package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
  258. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  259. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  260. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +4 -4
  261. package/dist/domains/chat/tools/badges/agent-badge.es.js +4 -4
  262. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  263. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  264. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
  265. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
  266. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +3 -3
  267. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
  268. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +3 -3
  269. package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
  270. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +3 -3
  271. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +3 -3
  272. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
  273. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
  274. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
  275. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
  276. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  277. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  278. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +3 -3
  279. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js.map +1 -1
  280. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +3 -3
  281. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js.map +1 -1
  282. package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
  283. package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
  284. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +4 -4
  285. package/dist/domains/chat/tools/badges/tool-badge.es.js +4 -4
  286. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +4 -3
  287. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  288. package/dist/domains/chat/tools/badges/workflow-badge.es.js +4 -3
  289. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  290. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  291. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  292. package/dist/domains/chat/tools/tool-card-kind.cjs.js +5 -1
  293. package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
  294. package/dist/domains/chat/tools/tool-card-kind.es.js +5 -2
  295. package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
  296. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  297. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  298. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
  299. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
  300. package/dist/domains/logs/components/log-data-panel.cjs.js +3 -3
  301. package/dist/domains/logs/components/log-data-panel.es.js +3 -3
  302. package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
  303. package/dist/domains/logs/components/logs-error-content.es.js +1 -1
  304. package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
  305. package/dist/domains/logs/components/logs-list-view.es.js +1 -1
  306. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  307. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  308. package/dist/domains/logs/components/no-logs-info.cjs.js +2 -2
  309. package/dist/domains/logs/components/no-logs-info.es.js +2 -2
  310. package/dist/domains/memory/components/flame-graph.cjs.js +2 -2
  311. package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
  312. package/dist/domains/memory/components/flame-graph.es.js +2 -2
  313. package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
  314. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  315. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  316. package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
  317. package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
  318. package/dist/domains/memory/components/thread-context-progress.cjs.js +1 -1
  319. package/dist/domains/memory/components/thread-context-progress.es.js +1 -1
  320. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  321. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  322. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  323. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  324. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  325. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  326. package/dist/domains/metrics/components/latency-card-view.cjs.js +5 -5
  327. package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
  328. package/dist/domains/metrics/components/latency-card-view.es.js +5 -5
  329. package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
  330. package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
  331. package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
  332. package/dist/domains/metrics/components/metrics-utils.cjs.js +1 -1
  333. package/dist/domains/metrics/components/metrics-utils.cjs.js.map +1 -1
  334. package/dist/domains/metrics/components/metrics-utils.es.js +1 -1
  335. package/dist/domains/metrics/components/metrics-utils.es.js.map +1 -1
  336. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  337. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  338. package/dist/domains/metrics/components/scores-card-view.cjs.js +6 -6
  339. package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
  340. package/dist/domains/metrics/components/scores-card-view.es.js +6 -6
  341. package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
  342. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +4 -4
  343. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +4 -4
  344. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +5 -5
  345. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
  346. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +5 -5
  347. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
  348. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +4 -4
  349. package/dist/domains/metrics/components/traces-volume-card-view.es.js +4 -4
  350. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
  351. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
  352. package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
  353. package/dist/domains/review/components/review-status-badge.es.js +1 -1
  354. package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
  355. package/dist/domains/scores/components/score-data-panel.es.js +2 -2
  356. package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
  357. package/dist/domains/scores/components/span-scoring.es.js +4 -4
  358. package/dist/domains/scores/components/trace-scores-tab.cjs.js +4 -4
  359. package/dist/domains/scores/components/trace-scores-tab.es.js +4 -4
  360. package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
  361. package/dist/domains/traces/components/feedback-thread.es.js +3 -3
  362. package/dist/domains/traces/components/format-trace-thread-messages.cjs.js +31 -9
  363. package/dist/domains/traces/components/format-trace-thread-messages.cjs.js.map +1 -1
  364. package/dist/domains/traces/components/format-trace-thread-messages.es.js +31 -9
  365. package/dist/domains/traces/components/format-trace-thread-messages.es.js.map +1 -1
  366. package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
  367. package/dist/domains/traces/components/no-traces-info.es.js +1 -1
  368. package/dist/domains/traces/components/span-data-panel-view.cjs.js +6 -6
  369. package/dist/domains/traces/components/span-data-panel-view.es.js +6 -6
  370. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  371. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  372. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
  373. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
  374. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  375. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  376. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +3 -3
  377. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -3
  378. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
  379. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js.map +1 -1
  380. package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
  381. package/dist/domains/traces/components/span-payload/span-payload-json.es.js.map +1 -1
  382. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +16 -11
  383. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js.map +1 -1
  384. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +16 -11
  385. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js.map +1 -1
  386. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  387. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  388. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  389. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  390. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +16 -3
  391. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js.map +1 -1
  392. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +16 -3
  393. package/dist/domains/traces/components/span-payload/span-payload-section.es.js.map +1 -1
  394. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  395. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  396. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +2 -2
  397. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +2 -2
  398. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  399. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  400. package/dist/domains/traces/components/span-type-legend.cjs.js +1 -1
  401. package/dist/domains/traces/components/span-type-legend.es.js +1 -1
  402. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  403. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  404. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +6 -6
  405. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js.map +1 -1
  406. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +6 -6
  407. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js.map +1 -1
  408. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
  409. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
  410. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +8 -2
  411. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  412. package/dist/domains/traces/components/thread-view-by-trace.es.js +9 -3
  413. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  414. package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -5
  415. package/dist/domains/traces/components/trace-columns-menu.es.js +5 -5
  416. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +6 -6
  417. package/dist/domains/traces/components/trace-data-panel-view.es.js +6 -6
  418. package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -2
  419. package/dist/domains/traces/components/trace-data-panel.es.js +2 -2
  420. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  421. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  422. package/dist/domains/traces/components/trace-messages-panel.cjs.js +1 -1
  423. package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
  424. package/dist/domains/traces/components/trace-status-value.cjs.js +1 -1
  425. package/dist/domains/traces/components/trace-status-value.cjs.js.map +1 -1
  426. package/dist/domains/traces/components/trace-status-value.es.js +1 -1
  427. package/dist/domains/traces/components/trace-status-value.es.js.map +1 -1
  428. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  429. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  430. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +9 -2
  431. package/dist/domains/traces/components/trace-thread-item-view.cjs.js.map +1 -1
  432. package/dist/domains/traces/components/trace-thread-item-view.es.js +10 -3
  433. package/dist/domains/traces/components/trace-thread-item-view.es.js.map +1 -1
  434. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  435. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  436. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  437. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  438. package/dist/domains/traces/components/traces-error-content.cjs.js +1 -1
  439. package/dist/domains/traces/components/traces-error-content.es.js +1 -1
  440. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  441. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  442. package/dist/domains/traces/components/traces-list-view.cjs.js +2 -2
  443. package/dist/domains/traces/components/traces-list-view.es.js +2 -2
  444. package/dist/domains/traces/hooks/use-trace-query.cjs.js +2 -2
  445. package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +1 -1
  446. package/dist/domains/traces/hooks/use-trace-query.es.js +2 -2
  447. package/dist/domains/traces/hooks/use-trace-query.es.js.map +1 -1
  448. package/dist/domains/traces/trace-filters.cjs.js +5 -5
  449. package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
  450. package/dist/domains/traces/trace-filters.es.js +5 -5
  451. package/dist/domains/traces/trace-filters.es.js.map +1 -1
  452. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  453. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  454. package/dist/domains/workflows/components/workflow-entity-header.cjs.js +1 -1
  455. package/dist/domains/workflows/components/workflow-entity-header.es.js +1 -1
  456. package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
  457. package/dist/domains/workflows/components/workflow-information.es.js +1 -1
  458. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
  459. package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
  460. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +2 -2
  461. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +2 -2
  462. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +3 -3
  463. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js.map +1 -1
  464. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +3 -3
  465. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
  466. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  467. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  468. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  469. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  470. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +4 -4
  471. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js.map +1 -1
  472. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +4 -4
  473. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js.map +1 -1
  474. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +2 -2
  475. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +2 -2
  476. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +3 -3
  477. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +3 -3
  478. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  479. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  480. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  481. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  482. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  483. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  484. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  485. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  486. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  487. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  488. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
  489. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
  490. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  491. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  492. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  493. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  494. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +2 -1
  495. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
  496. package/dist/domains/workflows/workflow/workflow-input-data.es.js +2 -1
  497. package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
  498. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  499. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  500. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
  501. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
  502. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +4 -4
  503. package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -4
  504. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  505. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  506. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +4 -4
  507. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js.map +1 -1
  508. package/dist/domains/workflows/workflow/workflow-run-header.es.js +4 -4
  509. package/dist/domains/workflows/workflow/workflow-run-header.es.js.map +1 -1
  510. package/dist/domains/workflows/workflow/workflow-status.cjs.js +2 -2
  511. package/dist/domains/workflows/workflow/workflow-status.cjs.js.map +1 -1
  512. package/dist/domains/workflows/workflow/workflow-status.es.js +2 -2
  513. package/dist/domains/workflows/workflow/workflow-status.es.js.map +1 -1
  514. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +3 -3
  515. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +3 -3
  516. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
  517. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
  518. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -3
  519. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +3 -3
  520. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
  521. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
  522. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
  523. package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
  524. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
  525. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
  526. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +2 -2
  527. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +2 -2
  528. package/dist/domains/workflows/workflow-status-tone.cjs.js +2 -2
  529. package/dist/domains/workflows/workflow-status-tone.cjs.js.map +1 -1
  530. package/dist/domains/workflows/workflow-status-tone.es.js +2 -2
  531. package/dist/domains/workflows/workflow-status-tone.es.js.map +1 -1
  532. package/dist/{drawer-DXf50w71.js → drawer-BI3B_krl.js} +2 -2
  533. package/dist/{drawer-DXf50w71.js.map → drawer-BI3B_krl.js.map} +1 -1
  534. package/dist/{drawer-d81cZiSV.cjs → drawer-DnXudVbm.cjs} +2 -2
  535. package/dist/{drawer-d81cZiSV.cjs.map → drawer-DnXudVbm.cjs.map} +1 -1
  536. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  537. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  538. package/dist/ee/signals/components/entity-index-list.cjs.js +2 -2
  539. package/dist/ee/signals/components/entity-index-list.es.js +2 -2
  540. package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
  541. package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
  542. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
  543. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
  544. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -4
  545. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +4 -4
  546. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  547. package/dist/ee/signals/examples-pager.es.js +1 -1
  548. package/dist/ee/signals/flow-card.cjs.js +1 -1
  549. package/dist/ee/signals/flow-card.es.js +1 -1
  550. package/dist/ee/signals/noise-detail-panel.cjs.js +3 -3
  551. package/dist/ee/signals/noise-detail-panel.cjs.js.map +1 -1
  552. package/dist/ee/signals/noise-detail-panel.es.js +3 -3
  553. package/dist/ee/signals/noise-detail-panel.es.js.map +1 -1
  554. package/dist/ee/signals/sankey-signals.cjs.js +2 -2
  555. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
  556. package/dist/ee/signals/sankey-signals.es.js +2 -2
  557. package/dist/ee/signals/sankey-signals.es.js.map +1 -1
  558. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +5 -5
  559. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +5 -5
  560. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
  561. package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
  562. package/dist/ee/signals/signal-colors.cjs.js +3 -3
  563. package/dist/ee/signals/signal-colors.cjs.js.map +1 -1
  564. package/dist/ee/signals/signal-colors.es.js +3 -3
  565. package/dist/ee/signals/signal-colors.es.js.map +1 -1
  566. package/dist/ee/signals/signals-error-state.cjs.js +2 -2
  567. package/dist/ee/signals/signals-error-state.cjs.js.map +1 -1
  568. package/dist/ee/signals/signals-error-state.es.js +2 -2
  569. package/dist/ee/signals/signals-error-state.es.js.map +1 -1
  570. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
  571. package/dist/ee/signals/snapshot-timeline.es.js +1 -1
  572. package/dist/ee/signals/theme-detail-panel.cjs.js +4 -4
  573. package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
  574. package/dist/ee/signals/theme-detail-panel.es.js +4 -4
  575. package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
  576. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  577. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  578. package/dist/ee/signals/trace-insight-view.cjs.js +4 -4
  579. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  580. package/dist/ee/signals/trace-insight-view.es.js +4 -4
  581. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  582. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  583. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  584. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
  585. package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
  586. package/dist/{field-block-DpejZ6U6.js → field-block--PeppIRb.js} +10 -3
  587. package/dist/field-block--PeppIRb.js.map +1 -0
  588. package/dist/{field-block-BIDi9Bvc.cjs → field-block-DtaPqBa3.cjs} +10 -3
  589. package/dist/field-block-DtaPqBa3.cjs.map +1 -0
  590. package/dist/{field-block-error-msg-B6-wnlAz.cjs → field-block-error-msg-CkhEN6nU.cjs} +2 -2
  591. package/dist/{field-block-error-msg-B6-wnlAz.cjs.map → field-block-error-msg-CkhEN6nU.cjs.map} +1 -1
  592. package/dist/{field-block-error-msg-edlaudVx.js → field-block-error-msg-LXwhKzIq.js} +2 -2
  593. package/dist/{field-block-error-msg-edlaudVx.js.map → field-block-error-msg-LXwhKzIq.js.map} +1 -1
  594. package/dist/{filter-bar-chip-D4CSm9KP.cjs → filter-bar-chip-CBlHsz4A.cjs} +3 -3
  595. package/dist/{filter-bar-chip-D4CSm9KP.cjs.map → filter-bar-chip-CBlHsz4A.cjs.map} +1 -1
  596. package/dist/{filter-bar-chip-BNPOrSrD.js → filter-bar-chip-DFOtEvpW.js} +3 -3
  597. package/dist/{filter-bar-chip-BNPOrSrD.js.map → filter-bar-chip-DFOtEvpW.js.map} +1 -1
  598. package/dist/{input-group-B8bnoDrA.js → input-group-0G9ZX_cM.js} +2 -2
  599. package/dist/{input-group-B8bnoDrA.js.map → input-group-0G9ZX_cM.js.map} +1 -1
  600. package/dist/{input-group-I8YVM_Ps.cjs → input-group-BRhBfeHC.cjs} +2 -2
  601. package/dist/{input-group-I8YVM_Ps.cjs.map → input-group-BRhBfeHC.cjs.map} +1 -1
  602. package/dist/layout/tabbed-container.cjs.js +6 -6
  603. package/dist/layout/tabbed-container.es.js +6 -6
  604. package/dist/lib/form/components/array-element-wrapper.cjs.js +2 -2
  605. package/dist/lib/form/components/array-element-wrapper.cjs.js.map +1 -1
  606. package/dist/lib/form/components/array-element-wrapper.es.js +2 -2
  607. package/dist/lib/form/components/array-element-wrapper.es.js.map +1 -1
  608. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  609. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  610. package/dist/lib/form/components/boolean-field.cjs.js +1 -1
  611. package/dist/lib/form/components/boolean-field.es.js +1 -1
  612. package/dist/lib/form/components/date-field.cjs.js +1 -1
  613. package/dist/lib/form/components/date-field.es.js +1 -1
  614. package/dist/lib/form/components/error-message.cjs.js +1 -1
  615. package/dist/lib/form/components/error-message.es.js +1 -1
  616. package/dist/lib/form/components/field-wrapper.cjs.js +1 -1
  617. package/dist/lib/form/components/field-wrapper.es.js +1 -1
  618. package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
  619. package/dist/lib/form/components/form-submit-row.es.js +1 -1
  620. package/dist/lib/form/components/object-wrapper.cjs.js +1 -1
  621. package/dist/lib/form/components/object-wrapper.cjs.js.map +1 -1
  622. package/dist/lib/form/components/object-wrapper.es.js +1 -1
  623. package/dist/lib/form/components/object-wrapper.es.js.map +1 -1
  624. package/dist/lib/form/components/record-field.cjs.js +1 -1
  625. package/dist/lib/form/components/record-field.es.js +1 -1
  626. package/dist/lib/form/components/select-field.cjs.js +1 -1
  627. package/dist/lib/form/components/select-field.es.js +1 -1
  628. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  629. package/dist/lib/form/components/submit-button.es.js +1 -1
  630. package/dist/{list-search-DXb7HFX8.cjs → list-search-BzAIj0DB.cjs} +2 -2
  631. package/dist/{list-search-DXb7HFX8.cjs.map → list-search-BzAIj0DB.cjs.map} +1 -1
  632. package/dist/{list-search-9l8IEdxZ.js → list-search-DI1DH7vU.js} +2 -2
  633. package/dist/{list-search-9l8IEdxZ.js.map → list-search-DI1DH7vU.js.map} +1 -1
  634. package/dist/{logs-data-list-C77r2FOj.js → logs-data-list-ButZV-2H.js} +3 -3
  635. package/dist/{logs-data-list-C77r2FOj.js.map → logs-data-list-ButZV-2H.js.map} +1 -1
  636. package/dist/{logs-data-list-CEFyG1Xb.cjs → logs-data-list-CtHern11.cjs} +3 -3
  637. package/dist/{logs-data-list-CEFyG1Xb.cjs.map → logs-data-list-CtHern11.cjs.map} +1 -1
  638. package/dist/{main-sidebar-link-active-BNko0jHZ.cjs → main-sidebar-link-active-D8VSuJKx.cjs} +2 -2
  639. package/dist/{main-sidebar-link-active-BNko0jHZ.cjs.map → main-sidebar-link-active-D8VSuJKx.cjs.map} +1 -1
  640. package/dist/{main-sidebar-link-active-1_ktyA8Q.js → main-sidebar-link-active-buZAhlHo.js} +2 -2
  641. package/dist/{main-sidebar-link-active-1_ktyA8Q.js.map → main-sidebar-link-active-buZAhlHo.js.map} +1 -1
  642. package/dist/{markdown-renderer-CSwjfPaf.cjs → markdown-renderer-CZV6neya.cjs} +3 -3
  643. package/dist/{markdown-renderer-CSwjfPaf.cjs.map → markdown-renderer-CZV6neya.cjs.map} +1 -1
  644. package/dist/{markdown-renderer-Bl0V7FCo.js → markdown-renderer-Cy7Iwy1c.js} +3 -3
  645. package/dist/{markdown-renderer-Bl0V7FCo.js.map → markdown-renderer-Cy7Iwy1c.js.map} +1 -1
  646. package/dist/{message-copy-button-DP3U-xA-.js → message-copy-button-C_mFZ3Vg.js} +2 -2
  647. package/dist/{message-copy-button-DP3U-xA-.js.map → message-copy-button-C_mFZ3Vg.js.map} +1 -1
  648. package/dist/{message-copy-button-ClJBX9qx.cjs → message-copy-button-CqMR2T2t.cjs} +2 -2
  649. package/dist/{message-copy-button-ClJBX9qx.cjs.map → message-copy-button-CqMR2T2t.cjs.map} +1 -1
  650. package/dist/{metrics-card-CloSmyRQ.js → metrics-card-C1rTkbcn.js} +3 -3
  651. package/dist/metrics-card-C1rTkbcn.js.map +1 -0
  652. package/dist/{metrics-card-HmQJHDNa.cjs → metrics-card-D7J9JDgn.cjs} +3 -3
  653. package/dist/metrics-card-D7J9JDgn.cjs.map +1 -0
  654. package/dist/{metrics-kpi-card-CW24YjZp.cjs → metrics-kpi-card-1hbihR2T.cjs} +3 -3
  655. package/dist/metrics-kpi-card-1hbihR2T.cjs.map +1 -0
  656. package/dist/{metrics-kpi-card-DLDT28IB.js → metrics-kpi-card-CiB88L41.js} +3 -3
  657. package/dist/metrics-kpi-card-CiB88L41.js.map +1 -0
  658. package/dist/new/settings.cjs.js +1 -1
  659. package/dist/new/settings.es.js +1 -1
  660. package/dist/new/sidebar.cjs.js +3 -3
  661. package/dist/new/sidebar.cjs.js.map +1 -1
  662. package/dist/new/sidebar.es.js +4 -4
  663. package/dist/new/sidebar.es.js.map +1 -1
  664. package/dist/{notification-activity-B1_2BPe_.js → notification-activity-CFR_b8eA.js} +4 -4
  665. package/dist/notification-activity-CFR_b8eA.js.map +1 -0
  666. package/dist/{notification-activity-BAn2fhYd.cjs → notification-activity-Dk50wcE4.cjs} +4 -4
  667. package/dist/notification-activity-Dk50wcE4.cjs.map +1 -0
  668. package/dist/{plan-DJfH1c_u.js → plan-CvTAGIWv.js} +10 -55
  669. package/dist/plan-CvTAGIWv.js.map +1 -0
  670. package/dist/{plan-ZKAT5frg.cjs → plan-DsfNN3a0.cjs} +10 -55
  671. package/dist/plan-DsfNN3a0.cjs.map +1 -0
  672. package/dist/primitives/menu-item.cjs.js +2 -2
  673. package/dist/primitives/menu-item.cjs.js.map +1 -1
  674. package/dist/primitives/menu-item.es.js +2 -2
  675. package/dist/primitives/menu-item.es.js.map +1 -1
  676. package/dist/primitives/trigger-button.cjs.js +1 -1
  677. package/dist/primitives/trigger-button.es.js +1 -1
  678. package/dist/{property-filter-applied-D0F0BYMY.cjs → property-filter-applied-Bp2z4KBv.cjs} +2 -2
  679. package/dist/{property-filter-applied-D0F0BYMY.cjs.map → property-filter-applied-Bp2z4KBv.cjs.map} +1 -1
  680. package/dist/{property-filter-applied-k0TOa9hf.js → property-filter-applied-C9verwDR.js} +2 -2
  681. package/dist/{property-filter-applied-k0TOa9hf.js.map → property-filter-applied-C9verwDR.js.map} +1 -1
  682. package/dist/{reasoning-activity-CO0Ab1Za.cjs → reasoning-activity-BVviIdMe.cjs} +3 -3
  683. package/dist/{reasoning-activity-CO0Ab1Za.cjs.map → reasoning-activity-BVviIdMe.cjs.map} +1 -1
  684. package/dist/{reasoning-activity-D3oCzL58.js → reasoning-activity-OM1-hbCV.js} +3 -3
  685. package/dist/{reasoning-activity-D3oCzL58.js.map → reasoning-activity-OM1-hbCV.js.map} +1 -1
  686. package/dist/{relative-timestamp-D-IvjsVb.cjs → relative-timestamp-BlmN8Vjn.cjs} +2 -2
  687. package/dist/{relative-timestamp-D-IvjsVb.cjs.map → relative-timestamp-BlmN8Vjn.cjs.map} +1 -1
  688. package/dist/{relative-timestamp-wERh5vUE.js → relative-timestamp-Cnp4VeLp.js} +2 -2
  689. package/dist/{relative-timestamp-wERh5vUE.js.map → relative-timestamp-Cnp4VeLp.js.map} +1 -1
  690. package/dist/resize/panel-drawer.cjs.js +1 -1
  691. package/dist/resize/panel-drawer.es.js +1 -1
  692. package/dist/{sankey-chart-D-xMiO2u.js → sankey-chart-D4Idjtth.js} +2 -2
  693. package/dist/sankey-chart-D4Idjtth.js.map +1 -0
  694. package/dist/{sankey-chart-S7iF7d0E.cjs → sankey-chart-DfVMZpz5.cjs} +2 -2
  695. package/dist/sankey-chart-DfVMZpz5.cjs.map +1 -0
  696. package/dist/{search-field-block-Cj9lJsYi.js → search-field-block-BPJh5yuW.js} +3 -3
  697. package/dist/{search-field-block-Cj9lJsYi.js.map → search-field-block-BPJh5yuW.js.map} +1 -1
  698. package/dist/{search-field-block-B1eqMV8x.cjs → search-field-block-DRa-ZNQj.cjs} +3 -3
  699. package/dist/{search-field-block-B1eqMV8x.cjs.map → search-field-block-DRa-ZNQj.cjs.map} +1 -1
  700. package/dist/{section-B5g_0tUo.js → section-BfEsNViI.js} +2 -2
  701. package/dist/{section-B5g_0tUo.js.map → section-BfEsNViI.js.map} +1 -1
  702. package/dist/{section-Bbp-NIR9.cjs → section-dBeXxS69.cjs} +2 -2
  703. package/dist/{section-Bbp-NIR9.cjs.map → section-dBeXxS69.cjs.map} +1 -1
  704. package/dist/segmented-control--I3IgW21.cjs +157 -0
  705. package/dist/segmented-control--I3IgW21.cjs.map +1 -0
  706. package/dist/segmented-control-BxeiypPR.js +135 -0
  707. package/dist/segmented-control-BxeiypPR.js.map +1 -0
  708. package/dist/{select-C0ZGSJYa.cjs → select-DBY9LQFQ.cjs} +2 -2
  709. package/dist/{select-C0ZGSJYa.cjs.map → select-DBY9LQFQ.cjs.map} +1 -1
  710. package/dist/{select-ch8imm15.js → select-DZeNf-kI.js} +2 -2
  711. package/dist/{select-ch8imm15.js.map → select-DZeNf-kI.js.map} +1 -1
  712. package/dist/{select-field-block-_ZUzUs7l.js → select-field-block-C_x9wNpU.js} +3 -3
  713. package/dist/{select-field-block-_ZUzUs7l.js.map → select-field-block-C_x9wNpU.js.map} +1 -1
  714. package/dist/{select-field-block-Dy_N3tWv.cjs → select-field-block-D8AMzoQT.cjs} +3 -3
  715. package/dist/{select-field-block-Dy_N3tWv.cjs.map → select-field-block-D8AMzoQT.cjs.map} +1 -1
  716. package/dist/{settings-row-2hq9Ww8Z.js → settings-row-C1JZDdz_.js} +4 -4
  717. package/dist/settings-row-C1JZDdz_.js.map +1 -0
  718. package/dist/{settings-row-BMRADph-.cjs → settings-row-C7YKfUgY.cjs} +4 -4
  719. package/dist/settings-row-C7YKfUgY.cjs.map +1 -0
  720. package/dist/{side-dialog-D2O3Y7GB.js → side-dialog-DCzCcZs6.js} +5 -5
  721. package/dist/{side-dialog-D2O3Y7GB.js.map → side-dialog-DCzCcZs6.js.map} +1 -1
  722. package/dist/{side-dialog-7P9aEC4v.cjs → side-dialog-DFnD1498.cjs} +5 -5
  723. package/dist/{side-dialog-7P9aEC4v.cjs.map → side-dialog-DFnD1498.cjs.map} +1 -1
  724. package/dist/{signal-activity-1REUU8T_.js → signal-activity-DW2ExjIp.js} +3 -3
  725. package/dist/{signal-activity-1REUU8T_.js.map → signal-activity-DW2ExjIp.js.map} +1 -1
  726. package/dist/{signal-activity-4OJb4kp6.cjs → signal-activity-byCTRP86.cjs} +3 -3
  727. package/dist/{signal-activity-4OJb4kp6.cjs.map → signal-activity-byCTRP86.cjs.map} +1 -1
  728. package/dist/{span-payload-primitives-CbXrqcs-.cjs → span-payload-primitives-D0mhsndj.cjs} +3 -3
  729. package/dist/{span-payload-primitives-CbXrqcs-.cjs.map → span-payload-primitives-D0mhsndj.cjs.map} +1 -1
  730. package/dist/{span-payload-primitives-CEflnpwW.js → span-payload-primitives-DL1Kr0cu.js} +3 -3
  731. package/dist/{span-payload-primitives-CEflnpwW.js.map → span-payload-primitives-DL1Kr0cu.js.map} +1 -1
  732. package/dist/src/domains/chat/tools/tool-card-kind.d.ts +2 -0
  733. package/dist/src/domains/metrics/components/metrics-utils.d.ts +1 -1
  734. package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +2 -0
  735. package/dist/src/domains/traces/hooks/use-trace-query.d.ts +1 -1
  736. package/dist/src/ds/components/Badge/Badge.d.ts +3 -3
  737. package/dist/src/ds/components/ButtonsGroup/buttons-group.d.ts +1 -0
  738. package/dist/src/ds/components/ButtonsGroup/buttons-group.stories.d.ts +0 -6
  739. package/dist/src/ds/components/CollapsibleBox/collapsible-box.d.ts +10 -0
  740. package/dist/src/ds/components/CollapsibleBox/collapsible-box.stories.d.ts +11 -0
  741. package/dist/src/ds/components/CollapsibleBox/index.d.ts +2 -0
  742. package/dist/src/ds/components/CollapsibleBox/use-collapsible-box.d.ts +14 -0
  743. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +1 -1
  744. package/dist/src/ds/components/SegmentedControl/index.d.ts +1 -0
  745. package/dist/src/ds/components/SegmentedControl/segmented-control.d.ts +38 -0
  746. package/dist/src/ds/components/SegmentedControl/segmented-control.stories.d.ts +11 -0
  747. package/dist/src/ds/components/ThemeToggle/theme-toggle.d.ts +12 -30
  748. package/dist/src/ds/components/ThemeToggle/theme-toggle.stories.d.ts +0 -1
  749. package/dist/src/ds/components/TokenBudget/tones.d.ts +1 -1
  750. package/dist/src/ds/components/Workflow/cards/workflow-card-badge-utils.d.ts +2 -2
  751. package/dist/src/ds/components/ai/plan/plan.d.ts +1 -1
  752. package/dist/src/ds/tokens/colors.d.ts +31 -28
  753. package/dist/src/lib/colors.d.ts +1 -1
  754. package/dist/style.css +517 -184
  755. package/dist/{tabs-content-h2qqD8t-.js → tabs-content-CwbkTutf.js} +2 -2
  756. package/dist/{tabs-content-h2qqD8t-.js.map → tabs-content-CwbkTutf.js.map} +1 -1
  757. package/dist/{tabs-content-DQNRMjup.cjs → tabs-content-DnscxcLI.cjs} +2 -2
  758. package/dist/{tabs-content-DQNRMjup.cjs.map → tabs-content-DnscxcLI.cjs.map} +1 -1
  759. package/dist/{tabs-root-BqC8X_h6.cjs → tabs-root-C-ePF1y9.cjs} +4 -4
  760. package/dist/tabs-root-C-ePF1y9.cjs.map +1 -0
  761. package/dist/{tabs-root-4vL8SHCO.js → tabs-root-lrZZ3KwH.js} +4 -4
  762. package/dist/tabs-root-lrZZ3KwH.js.map +1 -0
  763. package/dist/{tabs-tab-lm4xyjtD.cjs → tabs-tab-BmIBFifi.cjs} +2 -2
  764. package/dist/{tabs-tab-lm4xyjtD.cjs.map → tabs-tab-BmIBFifi.cjs.map} +1 -1
  765. package/dist/{tabs-tab-7e2as-AV.js → tabs-tab-DoPSW-1s.js} +2 -2
  766. package/dist/{tabs-tab-7e2as-AV.js.map → tabs-tab-DoPSW-1s.js.map} +1 -1
  767. package/dist/{text-field-block-DYOWjPgO.cjs → text-field-block-DUntfMPu.cjs} +2 -2
  768. package/dist/{text-field-block-DYOWjPgO.cjs.map → text-field-block-DUntfMPu.cjs.map} +1 -1
  769. package/dist/{text-field-block-DJsOk8dJ.js → text-field-block-DZaGiu5D.js} +2 -2
  770. package/dist/{text-field-block-DJsOk8dJ.js.map → text-field-block-DZaGiu5D.js.map} +1 -1
  771. package/dist/{textarea-field-block-DqTd31gF.js → textarea-field-block-BscOSlvI.js} +2 -2
  772. package/dist/{textarea-field-block-DqTd31gF.js.map → textarea-field-block-BscOSlvI.js.map} +1 -1
  773. package/dist/{textarea-field-block-C5fPL2Hn.cjs → textarea-field-block-CKAhmLrz.cjs} +2 -2
  774. package/dist/{textarea-field-block-C5fPL2Hn.cjs.map → textarea-field-block-CKAhmLrz.cjs.map} +1 -1
  775. package/dist/{thread-list-DGI6M6if.js → thread-list-BTpezI4f.js} +2 -2
  776. package/dist/{thread-list-DGI6M6if.js.map → thread-list-BTpezI4f.js.map} +1 -1
  777. package/dist/{thread-list-DwASH1Vl.cjs → thread-list-Drcptd4x.cjs} +2 -2
  778. package/dist/{thread-list-DwASH1Vl.cjs.map → thread-list-Drcptd4x.cjs.map} +1 -1
  779. package/dist/{time-picker-CfZbLgMm.js → time-picker-BElZALzM.js} +2 -2
  780. package/dist/{time-picker-CfZbLgMm.js.map → time-picker-BElZALzM.js.map} +1 -1
  781. package/dist/{time-picker-C0DCPWpR.cjs → time-picker-_QJdolkZ.cjs} +2 -2
  782. package/dist/{time-picker-C0DCPWpR.cjs.map → time-picker-_QJdolkZ.cjs.map} +1 -1
  783. package/dist/tokens.cjs.js +31 -28
  784. package/dist/tokens.cjs.js.map +1 -1
  785. package/dist/tokens.es.js +31 -28
  786. package/dist/tokens.es.js.map +1 -1
  787. package/dist/{tones-DVtXIMPY.js → tones-RD3VjqiN.js} +2 -2
  788. package/dist/tones-RD3VjqiN.js.map +1 -0
  789. package/dist/{tones-BRAQR5Yb.cjs → tones-koH7QNLH.cjs} +2 -2
  790. package/dist/tones-koH7QNLH.cjs.map +1 -0
  791. package/dist/{tool-approval-xZvYiuBP.js → tool-approval-BNJ6MpnV.js} +3 -3
  792. package/dist/tool-approval-BNJ6MpnV.js.map +1 -0
  793. package/dist/{tool-approval-BAER9nxR.cjs → tool-approval-DOPxugSv.cjs} +3 -3
  794. package/dist/tool-approval-DOPxugSv.cjs.map +1 -0
  795. package/dist/{tool-call-arguments-D7PMJ6vj.js → tool-call-arguments-B1MghuMZ.js} +3 -3
  796. package/dist/{tool-call-arguments-D7PMJ6vj.js.map → tool-call-arguments-B1MghuMZ.js.map} +1 -1
  797. package/dist/{tool-call-arguments-ynBfg2dY.cjs → tool-call-arguments-CQYR65FB.cjs} +3 -3
  798. package/dist/{tool-call-arguments-ynBfg2dY.cjs.map → tool-call-arguments-CQYR65FB.cjs.map} +1 -1
  799. package/dist/{tool-call-group-9Dtupqev.cjs → tool-call-group-D_ioE9hT.cjs} +3 -3
  800. package/dist/tool-call-group-D_ioE9hT.cjs.map +1 -0
  801. package/dist/{tool-call-group-DJX7eUYY.js → tool-call-group-ZuYxpyDs.js} +3 -3
  802. package/dist/tool-call-group-ZuYxpyDs.js.map +1 -0
  803. package/dist/{tool-call-mono-gKG9Ek1m.js → tool-call-mono-CC6uzvhS.js} +2 -2
  804. package/dist/{tool-call-mono-gKG9Ek1m.js.map → tool-call-mono-CC6uzvhS.js.map} +1 -1
  805. package/dist/{tool-call-mono-DFSfVZ6E.cjs → tool-call-mono-DXtb4UMm.cjs} +2 -2
  806. package/dist/{tool-call-mono-DFSfVZ6E.cjs.map → tool-call-mono-DXtb4UMm.cjs.map} +1 -1
  807. package/dist/{tool-call-output-DEoCE_Xn.js → tool-call-output-COq3kB-f.js} +3 -3
  808. package/dist/tool-call-output-COq3kB-f.js.map +1 -0
  809. package/dist/{tool-call-output-Dl4sVfCy.cjs → tool-call-output-ht3k1qLQ.cjs} +3 -3
  810. package/dist/tool-call-output-ht3k1qLQ.cjs.map +1 -0
  811. package/dist/{tool-card-DRqhTx-u.cjs → tool-card-BfMA9tub.cjs} +5 -5
  812. package/dist/tool-card-BfMA9tub.cjs.map +1 -0
  813. package/dist/{tool-card-BA1YcDoS.js → tool-card-DPrShK-9.js} +5 -5
  814. package/dist/tool-card-DPrShK-9.js.map +1 -0
  815. package/dist/{traces-data-list-CU93pUfj.cjs → traces-data-list-BsAYYJ9t.cjs} +4 -4
  816. package/dist/{traces-data-list-CU93pUfj.cjs.map → traces-data-list-BsAYYJ9t.cjs.map} +1 -1
  817. package/dist/{traces-data-list-DaedGcID.js → traces-data-list-CnNpGVRN.js} +4 -4
  818. package/dist/{traces-data-list-DaedGcID.js.map → traces-data-list-CnNpGVRN.js.map} +1 -1
  819. package/dist/use-collapsible-box-CCvsF_a9.js +54 -0
  820. package/dist/use-collapsible-box-CCvsF_a9.js.map +1 -0
  821. package/dist/use-collapsible-box-CbQOkokQ.cjs +58 -0
  822. package/dist/use-collapsible-box-CbQOkokQ.cjs.map +1 -0
  823. package/dist/{use-workflow-graph-runtime-D0ODPlNB.cjs → use-workflow-graph-runtime-CIs2HzoP.cjs} +3 -3
  824. package/dist/{use-workflow-graph-runtime-D0ODPlNB.cjs.map → use-workflow-graph-runtime-CIs2HzoP.cjs.map} +1 -1
  825. package/dist/{use-workflow-graph-runtime-XL5zreeR.js → use-workflow-graph-runtime-CexS1ECI.js} +3 -3
  826. package/dist/{use-workflow-graph-runtime-XL5zreeR.js.map → use-workflow-graph-runtime-CexS1ECI.js.map} +1 -1
  827. package/dist/utils/colors.cjs.js +2 -2
  828. package/dist/utils/colors.cjs.js.map +1 -1
  829. package/dist/utils/colors.es.js +2 -2
  830. package/dist/utils/colors.es.js.map +1 -1
  831. package/dist/{workflow-code-dialog-content-Iz2Omi1P.js → workflow-code-dialog-content-BQBHzRfZ.js} +3 -3
  832. package/dist/{workflow-code-dialog-content-Iz2Omi1P.js.map → workflow-code-dialog-content-BQBHzRfZ.js.map} +1 -1
  833. package/dist/{workflow-code-dialog-content-vLneZlMd.cjs → workflow-code-dialog-content-COlaHWtW.cjs} +3 -3
  834. package/dist/{workflow-code-dialog-content-vLneZlMd.cjs.map → workflow-code-dialog-content-COlaHWtW.cjs.map} +1 -1
  835. package/dist/{workflow-condition-card-B0Va5Amx.js → workflow-condition-card-3J-As62x.js} +10 -10
  836. package/dist/{workflow-condition-card-B0Va5Amx.js.map → workflow-condition-card-3J-As62x.js.map} +1 -1
  837. package/dist/{workflow-condition-card-CfjhZb0m.cjs → workflow-condition-card-BjEAp0t6.cjs} +10 -10
  838. package/dist/{workflow-condition-card-CfjhZb0m.cjs.map → workflow-condition-card-BjEAp0t6.cjs.map} +1 -1
  839. package/dist/{workflow-data-edge-view-o7akvbpB.js → workflow-data-edge-view-BjfKYysc.js} +2 -2
  840. package/dist/{workflow-data-edge-view-o7akvbpB.js.map → workflow-data-edge-view-BjfKYysc.js.map} +1 -1
  841. package/dist/{workflow-data-edge-view-DXeWURnc.cjs → workflow-data-edge-view-BvhW_gux.cjs} +2 -2
  842. package/dist/{workflow-data-edge-view-DXeWURnc.cjs.map → workflow-data-edge-view-BvhW_gux.cjs.map} +1 -1
  843. package/dist/{workflow-debug-controls-Bcb4vcek.cjs → workflow-debug-controls-VbxiluNZ.cjs} +3 -3
  844. package/dist/{workflow-debug-controls-Bcb4vcek.cjs.map → workflow-debug-controls-VbxiluNZ.cjs.map} +1 -1
  845. package/dist/{workflow-debug-controls-DULCFa4s.js → workflow-debug-controls-tty6gLX2.js} +3 -3
  846. package/dist/{workflow-debug-controls-DULCFa4s.js.map → workflow-debug-controls-tty6gLX2.js.map} +1 -1
  847. package/dist/{workflow-edge-data-button-CX-eSbSB.cjs → workflow-edge-data-button-BTsPGDpk.cjs} +4 -4
  848. package/dist/{workflow-edge-data-button-CX-eSbSB.cjs.map → workflow-edge-data-button-BTsPGDpk.cjs.map} +1 -1
  849. package/dist/{workflow-edge-data-button-BuZzeN2n.js → workflow-edge-data-button-CIP46GJE.js} +4 -4
  850. package/dist/{workflow-edge-data-button-BuZzeN2n.js.map → workflow-edge-data-button-CIP46GJE.js.map} +1 -1
  851. package/dist/{workflow-step-action-Cf_XmOwj.js → workflow-step-action-B3coZwPr.js} +3 -3
  852. package/dist/{workflow-step-action-Cf_XmOwj.js.map → workflow-step-action-B3coZwPr.js.map} +1 -1
  853. package/dist/{workflow-step-action-JMkWtObA.cjs → workflow-step-action-COOlMQGX.cjs} +3 -3
  854. package/dist/{workflow-step-action-JMkWtObA.cjs.map → workflow-step-action-COOlMQGX.cjs.map} +1 -1
  855. package/package.json +9 -9
  856. package/theme/colors.css +66 -66
  857. package/theme/data-viz.css +3 -3
  858. package/theme/status.css +89 -71
  859. package/theme/surfaces.css +4 -1
  860. package/dist/Badge-H8K5WrXg.cjs.map +0 -1
  861. package/dist/Badge-Q_pCeeGW.js.map +0 -1
  862. package/dist/Button-BnmR2HRc.cjs.map +0 -1
  863. package/dist/Button-C6eUqcPI.js.map +0 -1
  864. package/dist/EmptyState-CJ5KC4Db.cjs.map +0 -1
  865. package/dist/EmptyState-CynkaZd1.js.map +0 -1
  866. package/dist/activity-8egTNbaI.cjs.map +0 -1
  867. package/dist/activity-Duth8KP_.js.map +0 -1
  868. package/dist/ask-user-Crg1O-o6.js.map +0 -1
  869. package/dist/ask-user-DJXmLJzy.cjs.map +0 -1
  870. package/dist/code-editor-BXchPl_F.cjs.map +0 -1
  871. package/dist/code-editor-Cltwid7c.js.map +0 -1
  872. package/dist/data-code-section-Bd2Xnckz.js.map +0 -1
  873. package/dist/data-code-section-D5b6_jcB.cjs.map +0 -1
  874. package/dist/field-block-BIDi9Bvc.cjs.map +0 -1
  875. package/dist/field-block-DpejZ6U6.js.map +0 -1
  876. package/dist/metrics-card-CloSmyRQ.js.map +0 -1
  877. package/dist/metrics-card-HmQJHDNa.cjs.map +0 -1
  878. package/dist/metrics-kpi-card-CW24YjZp.cjs.map +0 -1
  879. package/dist/metrics-kpi-card-DLDT28IB.js.map +0 -1
  880. package/dist/notification-activity-B1_2BPe_.js.map +0 -1
  881. package/dist/notification-activity-BAn2fhYd.cjs.map +0 -1
  882. package/dist/plan-DJfH1c_u.js.map +0 -1
  883. package/dist/plan-ZKAT5frg.cjs.map +0 -1
  884. package/dist/sankey-chart-D-xMiO2u.js.map +0 -1
  885. package/dist/sankey-chart-S7iF7d0E.cjs.map +0 -1
  886. package/dist/settings-row-2hq9Ww8Z.js.map +0 -1
  887. package/dist/settings-row-BMRADph-.cjs.map +0 -1
  888. package/dist/tabs-root-4vL8SHCO.js.map +0 -1
  889. package/dist/tabs-root-BqC8X_h6.cjs.map +0 -1
  890. package/dist/tones-BRAQR5Yb.cjs.map +0 -1
  891. package/dist/tones-DVtXIMPY.js.map +0 -1
  892. package/dist/tool-approval-BAER9nxR.cjs.map +0 -1
  893. package/dist/tool-approval-xZvYiuBP.js.map +0 -1
  894. package/dist/tool-call-group-9Dtupqev.cjs.map +0 -1
  895. package/dist/tool-call-group-DJX7eUYY.js.map +0 -1
  896. package/dist/tool-call-output-DEoCE_Xn.js.map +0 -1
  897. package/dist/tool-call-output-Dl4sVfCy.cjs.map +0 -1
  898. package/dist/tool-card-BA1YcDoS.js.map +0 -1
  899. package/dist/tool-card-DRqhTx-u.cjs.map +0 -1
@@ -0,0 +1,157 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const radio = require('@base-ui/react/radio');
5
+ const radioGroup = require('@base-ui/react/radio-group');
6
+ const React = require('react');
7
+ const primitives_controlSize = require('./primitives/control-size.cjs.js');
8
+ const primitives_raisedSurface = require('./primitives/raised-surface.cjs.js');
9
+ const primitives_transitions = require('./primitives/transitions.cjs.js');
10
+ const mergeRefs = require('./merge-refs-BLbKe138.cjs');
11
+ const utils_cn = require('./cn-DG0X1KEP.cjs');
12
+
13
+ function _interopNamespaceDefault(e) {
14
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
15
+ if (e) {
16
+ for (const k in e) {
17
+ if (k !== 'default') {
18
+ const d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: () => e[k]
22
+ });
23
+ }
24
+ }
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ const React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
31
+
32
+ const SegmentedControlContext = React__namespace.createContext(void 0);
33
+ function SegmentedControl({
34
+ value,
35
+ onValueChange,
36
+ "aria-label": ariaLabel,
37
+ size = "md",
38
+ iconOnly = false,
39
+ className,
40
+ children,
41
+ ...props
42
+ }) {
43
+ const itemRefs = React__namespace.useRef(/* @__PURE__ */ new Map());
44
+ const thumbRef = React__namespace.useRef(null);
45
+ const context = {
46
+ iconOnly,
47
+ registerItem: (itemValue, element) => itemRefs.current.set(itemValue, element),
48
+ unregisterItem: (itemValue) => itemRefs.current.delete(itemValue)
49
+ };
50
+ const isItemValue = (next) => typeof next === "string" && itemRefs.current.has(next);
51
+ React__namespace.useLayoutEffect(() => {
52
+ const thumb = thumbRef.current;
53
+ const item = itemRefs.current.get(value);
54
+ if (!thumb) return;
55
+ if (!item) {
56
+ thumb.hidden = true;
57
+ return;
58
+ }
59
+ const measure = () => {
60
+ thumb.style.width = `${item.offsetWidth}px`;
61
+ thumb.style.transform = `translateX(${item.offsetLeft}px)`;
62
+ };
63
+ measure();
64
+ let frame;
65
+ if (thumb.hidden) {
66
+ thumb.hidden = false;
67
+ frame = requestAnimationFrame(() => thumb.setAttribute("data-ready", ""));
68
+ }
69
+ const observer = typeof ResizeObserver === "undefined" ? void 0 : new ResizeObserver(measure);
70
+ itemRefs.current.forEach((element) => observer?.observe(element));
71
+ return () => {
72
+ if (frame !== void 0) cancelAnimationFrame(frame);
73
+ observer?.disconnect();
74
+ };
75
+ }, [value, children]);
76
+ return /* @__PURE__ */ jsxRuntime.jsx(SegmentedControlContext.Provider, { value: context, children: /* @__PURE__ */ jsxRuntime.jsxs(
77
+ radioGroup.RadioGroup,
78
+ {
79
+ ...props,
80
+ value,
81
+ onValueChange: (next) => {
82
+ if (isItemValue(next)) onValueChange(next);
83
+ },
84
+ "aria-label": ariaLabel,
85
+ "data-slot": "segmented-control",
86
+ "data-size": size,
87
+ className: utils_cn.cn(
88
+ primitives_raisedSurface.raisedSurfaceStyle,
89
+ "relative inline-flex w-fit shrink-0 items-stretch rounded-full p-0.5",
90
+ // Circular icon items have no padding of their own to keep them apart.
91
+ iconOnly && "gap-0.5",
92
+ primitives_controlSize.controlHeight[size],
93
+ "data-[disabled]:opacity-50",
94
+ className
95
+ ),
96
+ children: [
97
+ /* @__PURE__ */ jsxRuntime.jsx(
98
+ "span",
99
+ {
100
+ ref: thumbRef,
101
+ hidden: true,
102
+ "aria-hidden": "true",
103
+ "data-slot": "segmented-control-thumb",
104
+ className: utils_cn.cn(
105
+ "pointer-events-none absolute inset-y-0.5 left-0 rounded-full bg-fill-hover ring-1 ring-border ring-inset",
106
+ "motion-safe:data-[ready]:transition-[transform,width] motion-safe:data-[ready]:duration-normal motion-safe:data-[ready]:ease-out-custom"
107
+ )
108
+ }
109
+ ),
110
+ children
111
+ ]
112
+ }
113
+ ) });
114
+ }
115
+ function SegmentedControlItem({
116
+ value,
117
+ disabled,
118
+ className,
119
+ children,
120
+ ref,
121
+ ...props
122
+ }) {
123
+ const context = React__namespace.useContext(SegmentedControlContext);
124
+ if (!context) throw new Error("SegmentedControlItem must be used inside a SegmentedControl");
125
+ const { iconOnly, registerItem, unregisterItem } = context;
126
+ const itemRef = mergeRefs.mergeRefs(ref, (element) => {
127
+ if (element) registerItem(value, element);
128
+ return () => unregisterItem(value);
129
+ });
130
+ return /* @__PURE__ */ jsxRuntime.jsx(
131
+ radio.Radio.Root,
132
+ {
133
+ ...props,
134
+ ref: itemRef,
135
+ value,
136
+ disabled,
137
+ "data-slot": "segmented-control-item",
138
+ className: utils_cn.cn(
139
+ "relative inline-flex cursor-pointer items-center justify-center gap-1.5 rounded-full text-label whitespace-nowrap select-none",
140
+ iconOnly ? "aspect-square" : "px-3",
141
+ // A whole disabled group is dimmed on the track; a single disabled item dims itself.
142
+ disabled && "opacity-50",
143
+ "[&_svg]:size-3.5 [&_svg]:shrink-0",
144
+ "text-muted-foreground hover:text-foreground data-[checked]:text-foreground",
145
+ "focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-border-focus",
146
+ "data-[disabled]:cursor-not-allowed data-[disabled]:hover:text-muted-foreground",
147
+ primitives_transitions.controlStateColorTransition,
148
+ className
149
+ ),
150
+ children
151
+ }
152
+ );
153
+ }
154
+
155
+ exports.SegmentedControl = SegmentedControl;
156
+ exports.SegmentedControlItem = SegmentedControlItem;
157
+ //# sourceMappingURL=segmented-control--I3IgW21.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segmented-control--I3IgW21.cjs","sources":["../src/ds/components/SegmentedControl/segmented-control.tsx"],"sourcesContent":["import { Radio as RadioPrimitive } from '@base-ui/react/radio';\nimport { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group';\nimport * as React from 'react';\n\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { controlHeight } from '@/ds/primitives/control-size';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { mergeRefs } from '@/lib/merge-refs';\nimport { cn } from '@/lib/utils';\n\ntype SegmentedControlContextValue = {\n iconOnly: boolean;\n registerItem: (value: string, element: HTMLElement) => void;\n unregisterItem: (value: string) => void;\n};\n\nconst SegmentedControlContext = React.createContext<SegmentedControlContextValue | undefined>(undefined);\n\ntype RadioGroupPassthroughProps = Omit<\n RadioGroupPrimitive.Props,\n 'value' | 'defaultValue' | 'onValueChange' | 'onChange' | 'className' | 'children' | 'aria-label'\n>;\n\nexport type SegmentedControlProps<T extends string = string> = RadioGroupPassthroughProps & {\n value: T;\n onValueChange: (value: T) => void;\n /** Accessible name of the group. */\n 'aria-label': string;\n /** The track's outer height matches the control rung, so it lines up with a Button or Select in the same row. */\n size?: ControlSize;\n /** Every item is a circle holding only an icon; each item then needs its own `aria-label`. */\n iconOnly?: boolean;\n className?: string;\n children: React.ReactNode;\n};\n\n/**\n * A single choice between a few short options, all visible at once. A radio group underneath:\n * one tab stop, arrow keys move the selection. The selected item is marked by a thumb that\n * slides between items, so items keep their natural width.\n *\n * ```tsx\n * <SegmentedControl aria-label=\"Permission\" value={policy} onValueChange={setPolicy}>\n * <SegmentedControlItem value=\"allow\">Allow</SegmentedControlItem>\n * <SegmentedControlItem value=\"ask\">Ask</SegmentedControlItem>\n * </SegmentedControl>\n * ```\n */\nexport function SegmentedControl<T extends string = string>({\n value,\n onValueChange,\n 'aria-label': ariaLabel,\n size = 'md',\n iconOnly = false,\n className,\n children,\n ...props\n}: SegmentedControlProps<T>) {\n const itemRefs = React.useRef(new Map<string, HTMLElement>());\n const thumbRef = React.useRef<HTMLSpanElement>(null);\n\n const context: SegmentedControlContextValue = {\n iconOnly,\n registerItem: (itemValue, element) => itemRefs.current.set(itemValue, element),\n unregisterItem: itemValue => itemRefs.current.delete(itemValue),\n };\n\n // Base UI reports the chosen value as `unknown`; accept only a value one of our items carries.\n const isItemValue = (next: unknown): next is T => typeof next === 'string' && itemRefs.current.has(next);\n\n // Measuring is layout work, so the thumb is positioned straight on the DOM instead of through\n // state: no extra render, and it is in place before paint.\n React.useLayoutEffect(() => {\n const thumb = thumbRef.current;\n const item = itemRefs.current.get(value);\n if (!thumb) return;\n if (!item) {\n thumb.hidden = true;\n return;\n }\n const measure = () => {\n thumb.style.width = `${item.offsetWidth}px`;\n thumb.style.transform = `translateX(${item.offsetLeft}px)`;\n };\n measure();\n let frame: number | undefined;\n if (thumb.hidden) {\n // The first placement snaps; transitions switch on after it has painted.\n thumb.hidden = false;\n frame = requestAnimationFrame(() => thumb.setAttribute('data-ready', ''));\n }\n // Labels reflow when fonts load or the text changes; a sibling's resize moves this item too.\n const observer = typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(measure);\n itemRefs.current.forEach(element => observer?.observe(element));\n return () => {\n if (frame !== undefined) cancelAnimationFrame(frame);\n observer?.disconnect();\n };\n }, [value, children]);\n\n return (\n <SegmentedControlContext.Provider value={context}>\n <RadioGroupPrimitive\n {...props}\n value={value}\n onValueChange={next => {\n if (isItemValue(next)) onValueChange(next);\n }}\n aria-label={ariaLabel}\n data-slot=\"segmented-control\"\n data-size={size}\n className={cn(\n raisedSurfaceStyle,\n 'relative inline-flex w-fit shrink-0 items-stretch rounded-full p-0.5',\n // Circular icon items have no padding of their own to keep them apart.\n iconOnly && 'gap-0.5',\n controlHeight[size],\n 'data-[disabled]:opacity-50',\n className,\n )}\n >\n <span\n ref={thumbRef}\n hidden\n aria-hidden=\"true\"\n data-slot=\"segmented-control-thumb\"\n className={cn(\n 'pointer-events-none absolute inset-y-0.5 left-0 rounded-full bg-fill-hover ring-1 ring-border ring-inset',\n 'motion-safe:data-[ready]:transition-[transform,width] motion-safe:data-[ready]:duration-normal motion-safe:data-[ready]:ease-out-custom',\n )}\n />\n {children}\n </RadioGroupPrimitive>\n </SegmentedControlContext.Provider>\n );\n}\n\nexport type SegmentedControlItemProps = Omit<RadioPrimitive.Root.Props, 'className' | 'value' | 'children'> & {\n value: string;\n /** Text, an icon and text, or only an icon when the control is `iconOnly`. */\n children: React.ReactNode;\n className?: string;\n};\n\nexport function SegmentedControlItem({\n value,\n disabled,\n className,\n children,\n ref,\n ...props\n}: SegmentedControlItemProps) {\n const context = React.useContext(SegmentedControlContext);\n if (!context) throw new Error('SegmentedControlItem must be used inside a SegmentedControl');\n const { iconOnly, registerItem, unregisterItem } = context;\n const itemRef = mergeRefs<HTMLElement>(ref, element => {\n if (element) registerItem(value, element);\n return () => unregisterItem(value);\n });\n\n return (\n <RadioPrimitive.Root\n {...props}\n ref={itemRef}\n value={value}\n disabled={disabled}\n data-slot=\"segmented-control-item\"\n className={cn(\n 'relative inline-flex cursor-pointer items-center justify-center gap-1.5 rounded-full text-label whitespace-nowrap select-none',\n iconOnly ? 'aspect-square' : 'px-3',\n // A whole disabled group is dimmed on the track; a single disabled item dims itself.\n disabled && 'opacity-50',\n '[&_svg]:size-3.5 [&_svg]:shrink-0',\n 'text-muted-foreground hover:text-foreground data-[checked]:text-foreground',\n 'focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-border-focus',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:hover:text-muted-foreground',\n controlStateColorTransition,\n className,\n )}\n >\n {children}\n </RadioPrimitive.Root>\n );\n}\n"],"names":["React","jsx","jsxs","RadioGroupPrimitive","cn","raisedSurfaceStyle","controlHeight","mergeRefs","RadioPrimitive","controlStateColorTransition"],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Radio } from '@base-ui/react/radio';
3
+ import { RadioGroup } from '@base-ui/react/radio-group';
4
+ import * as React from 'react';
5
+ import { controlHeight } from './primitives/control-size.es.js';
6
+ import { raisedSurfaceStyle } from './primitives/raised-surface.es.js';
7
+ import { controlStateColorTransition } from './primitives/transitions.es.js';
8
+ import { m as mergeRefs } from './merge-refs-DA1xt2OQ.js';
9
+ import { c as cn } from './cn-65Adrsfj.js';
10
+
11
+ const SegmentedControlContext = React.createContext(void 0);
12
+ function SegmentedControl({
13
+ value,
14
+ onValueChange,
15
+ "aria-label": ariaLabel,
16
+ size = "md",
17
+ iconOnly = false,
18
+ className,
19
+ children,
20
+ ...props
21
+ }) {
22
+ const itemRefs = React.useRef(/* @__PURE__ */ new Map());
23
+ const thumbRef = React.useRef(null);
24
+ const context = {
25
+ iconOnly,
26
+ registerItem: (itemValue, element) => itemRefs.current.set(itemValue, element),
27
+ unregisterItem: (itemValue) => itemRefs.current.delete(itemValue)
28
+ };
29
+ const isItemValue = (next) => typeof next === "string" && itemRefs.current.has(next);
30
+ React.useLayoutEffect(() => {
31
+ const thumb = thumbRef.current;
32
+ const item = itemRefs.current.get(value);
33
+ if (!thumb) return;
34
+ if (!item) {
35
+ thumb.hidden = true;
36
+ return;
37
+ }
38
+ const measure = () => {
39
+ thumb.style.width = `${item.offsetWidth}px`;
40
+ thumb.style.transform = `translateX(${item.offsetLeft}px)`;
41
+ };
42
+ measure();
43
+ let frame;
44
+ if (thumb.hidden) {
45
+ thumb.hidden = false;
46
+ frame = requestAnimationFrame(() => thumb.setAttribute("data-ready", ""));
47
+ }
48
+ const observer = typeof ResizeObserver === "undefined" ? void 0 : new ResizeObserver(measure);
49
+ itemRefs.current.forEach((element) => observer?.observe(element));
50
+ return () => {
51
+ if (frame !== void 0) cancelAnimationFrame(frame);
52
+ observer?.disconnect();
53
+ };
54
+ }, [value, children]);
55
+ return /* @__PURE__ */ jsx(SegmentedControlContext.Provider, { value: context, children: /* @__PURE__ */ jsxs(
56
+ RadioGroup,
57
+ {
58
+ ...props,
59
+ value,
60
+ onValueChange: (next) => {
61
+ if (isItemValue(next)) onValueChange(next);
62
+ },
63
+ "aria-label": ariaLabel,
64
+ "data-slot": "segmented-control",
65
+ "data-size": size,
66
+ className: cn(
67
+ raisedSurfaceStyle,
68
+ "relative inline-flex w-fit shrink-0 items-stretch rounded-full p-0.5",
69
+ // Circular icon items have no padding of their own to keep them apart.
70
+ iconOnly && "gap-0.5",
71
+ controlHeight[size],
72
+ "data-[disabled]:opacity-50",
73
+ className
74
+ ),
75
+ children: [
76
+ /* @__PURE__ */ jsx(
77
+ "span",
78
+ {
79
+ ref: thumbRef,
80
+ hidden: true,
81
+ "aria-hidden": "true",
82
+ "data-slot": "segmented-control-thumb",
83
+ className: cn(
84
+ "pointer-events-none absolute inset-y-0.5 left-0 rounded-full bg-fill-hover ring-1 ring-border ring-inset",
85
+ "motion-safe:data-[ready]:transition-[transform,width] motion-safe:data-[ready]:duration-normal motion-safe:data-[ready]:ease-out-custom"
86
+ )
87
+ }
88
+ ),
89
+ children
90
+ ]
91
+ }
92
+ ) });
93
+ }
94
+ function SegmentedControlItem({
95
+ value,
96
+ disabled,
97
+ className,
98
+ children,
99
+ ref,
100
+ ...props
101
+ }) {
102
+ const context = React.useContext(SegmentedControlContext);
103
+ if (!context) throw new Error("SegmentedControlItem must be used inside a SegmentedControl");
104
+ const { iconOnly, registerItem, unregisterItem } = context;
105
+ const itemRef = mergeRefs(ref, (element) => {
106
+ if (element) registerItem(value, element);
107
+ return () => unregisterItem(value);
108
+ });
109
+ return /* @__PURE__ */ jsx(
110
+ Radio.Root,
111
+ {
112
+ ...props,
113
+ ref: itemRef,
114
+ value,
115
+ disabled,
116
+ "data-slot": "segmented-control-item",
117
+ className: cn(
118
+ "relative inline-flex cursor-pointer items-center justify-center gap-1.5 rounded-full text-label whitespace-nowrap select-none",
119
+ iconOnly ? "aspect-square" : "px-3",
120
+ // A whole disabled group is dimmed on the track; a single disabled item dims itself.
121
+ disabled && "opacity-50",
122
+ "[&_svg]:size-3.5 [&_svg]:shrink-0",
123
+ "text-muted-foreground hover:text-foreground data-[checked]:text-foreground",
124
+ "focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-border-focus",
125
+ "data-[disabled]:cursor-not-allowed data-[disabled]:hover:text-muted-foreground",
126
+ controlStateColorTransition,
127
+ className
128
+ ),
129
+ children
130
+ }
131
+ );
132
+ }
133
+
134
+ export { SegmentedControl as S, SegmentedControlItem as a };
135
+ //# sourceMappingURL=segmented-control-BxeiypPR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segmented-control-BxeiypPR.js","sources":["../src/ds/components/SegmentedControl/segmented-control.tsx"],"sourcesContent":["import { Radio as RadioPrimitive } from '@base-ui/react/radio';\nimport { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group';\nimport * as React from 'react';\n\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { controlHeight } from '@/ds/primitives/control-size';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { mergeRefs } from '@/lib/merge-refs';\nimport { cn } from '@/lib/utils';\n\ntype SegmentedControlContextValue = {\n iconOnly: boolean;\n registerItem: (value: string, element: HTMLElement) => void;\n unregisterItem: (value: string) => void;\n};\n\nconst SegmentedControlContext = React.createContext<SegmentedControlContextValue | undefined>(undefined);\n\ntype RadioGroupPassthroughProps = Omit<\n RadioGroupPrimitive.Props,\n 'value' | 'defaultValue' | 'onValueChange' | 'onChange' | 'className' | 'children' | 'aria-label'\n>;\n\nexport type SegmentedControlProps<T extends string = string> = RadioGroupPassthroughProps & {\n value: T;\n onValueChange: (value: T) => void;\n /** Accessible name of the group. */\n 'aria-label': string;\n /** The track's outer height matches the control rung, so it lines up with a Button or Select in the same row. */\n size?: ControlSize;\n /** Every item is a circle holding only an icon; each item then needs its own `aria-label`. */\n iconOnly?: boolean;\n className?: string;\n children: React.ReactNode;\n};\n\n/**\n * A single choice between a few short options, all visible at once. A radio group underneath:\n * one tab stop, arrow keys move the selection. The selected item is marked by a thumb that\n * slides between items, so items keep their natural width.\n *\n * ```tsx\n * <SegmentedControl aria-label=\"Permission\" value={policy} onValueChange={setPolicy}>\n * <SegmentedControlItem value=\"allow\">Allow</SegmentedControlItem>\n * <SegmentedControlItem value=\"ask\">Ask</SegmentedControlItem>\n * </SegmentedControl>\n * ```\n */\nexport function SegmentedControl<T extends string = string>({\n value,\n onValueChange,\n 'aria-label': ariaLabel,\n size = 'md',\n iconOnly = false,\n className,\n children,\n ...props\n}: SegmentedControlProps<T>) {\n const itemRefs = React.useRef(new Map<string, HTMLElement>());\n const thumbRef = React.useRef<HTMLSpanElement>(null);\n\n const context: SegmentedControlContextValue = {\n iconOnly,\n registerItem: (itemValue, element) => itemRefs.current.set(itemValue, element),\n unregisterItem: itemValue => itemRefs.current.delete(itemValue),\n };\n\n // Base UI reports the chosen value as `unknown`; accept only a value one of our items carries.\n const isItemValue = (next: unknown): next is T => typeof next === 'string' && itemRefs.current.has(next);\n\n // Measuring is layout work, so the thumb is positioned straight on the DOM instead of through\n // state: no extra render, and it is in place before paint.\n React.useLayoutEffect(() => {\n const thumb = thumbRef.current;\n const item = itemRefs.current.get(value);\n if (!thumb) return;\n if (!item) {\n thumb.hidden = true;\n return;\n }\n const measure = () => {\n thumb.style.width = `${item.offsetWidth}px`;\n thumb.style.transform = `translateX(${item.offsetLeft}px)`;\n };\n measure();\n let frame: number | undefined;\n if (thumb.hidden) {\n // The first placement snaps; transitions switch on after it has painted.\n thumb.hidden = false;\n frame = requestAnimationFrame(() => thumb.setAttribute('data-ready', ''));\n }\n // Labels reflow when fonts load or the text changes; a sibling's resize moves this item too.\n const observer = typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(measure);\n itemRefs.current.forEach(element => observer?.observe(element));\n return () => {\n if (frame !== undefined) cancelAnimationFrame(frame);\n observer?.disconnect();\n };\n }, [value, children]);\n\n return (\n <SegmentedControlContext.Provider value={context}>\n <RadioGroupPrimitive\n {...props}\n value={value}\n onValueChange={next => {\n if (isItemValue(next)) onValueChange(next);\n }}\n aria-label={ariaLabel}\n data-slot=\"segmented-control\"\n data-size={size}\n className={cn(\n raisedSurfaceStyle,\n 'relative inline-flex w-fit shrink-0 items-stretch rounded-full p-0.5',\n // Circular icon items have no padding of their own to keep them apart.\n iconOnly && 'gap-0.5',\n controlHeight[size],\n 'data-[disabled]:opacity-50',\n className,\n )}\n >\n <span\n ref={thumbRef}\n hidden\n aria-hidden=\"true\"\n data-slot=\"segmented-control-thumb\"\n className={cn(\n 'pointer-events-none absolute inset-y-0.5 left-0 rounded-full bg-fill-hover ring-1 ring-border ring-inset',\n 'motion-safe:data-[ready]:transition-[transform,width] motion-safe:data-[ready]:duration-normal motion-safe:data-[ready]:ease-out-custom',\n )}\n />\n {children}\n </RadioGroupPrimitive>\n </SegmentedControlContext.Provider>\n );\n}\n\nexport type SegmentedControlItemProps = Omit<RadioPrimitive.Root.Props, 'className' | 'value' | 'children'> & {\n value: string;\n /** Text, an icon and text, or only an icon when the control is `iconOnly`. */\n children: React.ReactNode;\n className?: string;\n};\n\nexport function SegmentedControlItem({\n value,\n disabled,\n className,\n children,\n ref,\n ...props\n}: SegmentedControlItemProps) {\n const context = React.useContext(SegmentedControlContext);\n if (!context) throw new Error('SegmentedControlItem must be used inside a SegmentedControl');\n const { iconOnly, registerItem, unregisterItem } = context;\n const itemRef = mergeRefs<HTMLElement>(ref, element => {\n if (element) registerItem(value, element);\n return () => unregisterItem(value);\n });\n\n return (\n <RadioPrimitive.Root\n {...props}\n ref={itemRef}\n value={value}\n disabled={disabled}\n data-slot=\"segmented-control-item\"\n className={cn(\n 'relative inline-flex cursor-pointer items-center justify-center gap-1.5 rounded-full text-label whitespace-nowrap select-none',\n iconOnly ? 'aspect-square' : 'px-3',\n // A whole disabled group is dimmed on the track; a single disabled item dims itself.\n disabled && 'opacity-50',\n '[&_svg]:size-3.5 [&_svg]:shrink-0',\n 'text-muted-foreground hover:text-foreground data-[checked]:text-foreground',\n 'focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-border-focus',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:hover:text-muted-foreground',\n controlStateColorTransition,\n className,\n )}\n >\n {children}\n </RadioPrimitive.Root>\n );\n}\n"],"names":["RadioGroupPrimitive","RadioPrimitive"],"mappings":"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"}
@@ -4,7 +4,7 @@ const jsxRuntime = require('react/jsx-runtime');
4
4
  const select = require('@base-ui/react/select');
5
5
  const lucideReact = require('lucide-react');
6
6
  const React = require('react');
7
- const Button = require('./Button-BnmR2HRc.cjs');
7
+ const Button = require('./Button-CXhSUBxN.cjs');
8
8
  const primitives_controlSize = require('./primitives/control-size.cjs.js');
9
9
  const primitives_floating = require('./primitives/floating.cjs.js');
10
10
  const primitives_fluidMenu = require('./primitives/fluid-menu.cjs.js');
@@ -161,4 +161,4 @@ exports.SelectGroup = SelectGroup;
161
161
  exports.SelectItem = SelectItem;
162
162
  exports.SelectTrigger = SelectTrigger;
163
163
  exports.SelectValue = SelectValue;
164
- //# sourceMappingURL=select-C0ZGSJYa.cjs.map
164
+ //# sourceMappingURL=select-DBY9LQFQ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-C0ZGSJYa.cjs","sources":["../src/ds/components/Select/select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from '@base-ui/react/select';\nimport type { SelectPopupProps, SelectPositionerProps } from '@base-ui/react/select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport * as React from 'react';\n\nimport { buttonVariants } from '../Button/Button';\nimport type { TextButtonSize } from '../Button/Button';\nimport { controlTriggerOpenState } from '@/ds/primitives/control-size';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { fieldTriggerStyle } from '@/ds/primitives/form-element';\nimport { menuItemCheckClass, menuItemClass, menuPopupClass, menuPositionerClass } from '@/ds/primitives/menu-item';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n/**\n * Select migrated from `@radix-ui/react-select` to Base UI (`@base-ui/react/select`).\n *\n * The public API (`Select`, `SelectGroup`, `SelectValue`, `SelectTrigger`,\n * `SelectContent`, `SelectItem`) is intentionally kept stable so existing\n * consumers do not need changes.\n *\n * Notable behavioral differences vs. Radix that consumers should be aware of:\n * - `onValueChange` now receives a second `eventDetails` argument. Existing\n * handlers typed as `(value: string) => void` keep working (extra arg ignored).\n * - The dropdown no longer overlaps the trigger by default\n * (`alignItemWithTrigger={false}`), matching the previous Radix `popper`\n * positioning behavior.\n *\n * Implementation note: unlike Radix, Base UI's `Select.Value` can only resolve\n * a selected value to its label once the popup has mounted (it reads labels\n * from rendered items). To preserve the Radix behavior where the trigger shows\n * the selected label even while closed, `Select` auto-derives an `items` map\n * from the `SelectItem`s declared inside `SelectContent` and passes it to\n * `Select.Root`. Consumers can still pass an explicit `items` prop to override.\n */\ntype SelectItemNode = React.ReactElement<{ value: unknown; children?: React.ReactNode }>;\n\nfunction isSelectItem(node: React.ReactNode): node is SelectItemNode {\n return React.isValidElement(node) && (node.type as { displayName?: string })?.displayName === 'SelectItem';\n}\n\n/** Recursively collect `{ value, label }` pairs from declared `SelectItem`s. */\nfunction collectItems(children: React.ReactNode, acc: Array<{ value: unknown; label: React.ReactNode }>): void {\n React.Children.forEach(children, child => {\n if (!React.isValidElement(child)) return;\n if (isSelectItem(child)) {\n acc.push({ value: child.props.value, label: child.props.children });\n return;\n }\n const nested = (child.props as { children?: React.ReactNode })?.children;\n if (nested != null) collectItems(nested, acc);\n });\n}\n\ntype SelectRootProps<Value> = SelectPrimitive.Root.Props<Value, false>;\ntype SelectChangeDetails = Parameters<NonNullable<SelectRootProps<unknown>['onValueChange']>>[1];\n\n/**\n * `onValueChange` is intentionally narrowed to a non-null value: these selects\n * always hold a value once changed, which keeps existing `(value) => void`\n * consumer handlers valid (Base UI's own callback type is `Value | null`).\n */\ntype SelectProps<Value = string> = Omit<SelectRootProps<Value>, 'onValueChange'> & {\n onValueChange?: (value: Value, eventDetails: SelectChangeDetails) => void;\n};\n\nfunction Select<Value = string>({ children, items, onValueChange, ...props }: SelectProps<Value>) {\n const derivedItems = React.useMemo(() => {\n if (items != null) return items;\n const acc: Array<{ value: unknown; label: React.ReactNode }> = [];\n collectItems(children, acc);\n return acc.length > 0 ? acc : undefined;\n }, [items, children]);\n\n return (\n <SelectPrimitive.Root\n items={derivedItems as SelectRootProps<Value>['items']}\n onValueChange={onValueChange ? (value, eventDetails) => onValueChange(value as Value, eventDetails) : undefined}\n {...props}\n >\n {children}\n </SelectPrimitive.Root>\n );\n}\nSelect.displayName = 'Select';\n\nconst SelectGroup = SelectPrimitive.Group;\n\nexport type SelectValueProps = Omit<SelectPrimitive.Value.Props, 'className'> & {\n className?: string;\n};\n\n/**\n * Displays the selected value. Radix's `Select.Value` took a `placeholder`\n * prop and rendered the selected item's text automatically; Base UI's\n * `Select.Value` behaves the same way (renders the value, falls back to\n * `placeholder` when nothing is selected), so this is a thin passthrough.\n */\nconst SelectValue = React.forwardRef<HTMLSpanElement, SelectValueProps>(({ className, ...props }, ref) => (\n <SelectPrimitive.Value ref={ref} className={cn('truncate', className)} {...props} />\n));\nSelectValue.displayName = 'SelectValue';\n\n/**\n * A select is a form field, so it reuses the Button's size/shape recipe with\n * these looks: `default` (the Input's overlay surface — the default here too,\n * so a select sits next to an Input as the same kind of thing) and `ghost`\n * (borderless, for dense toolbars/inline pickers). The high-emphasis `primary` look is the only one intentionally NOT\n * offered (a field is not a call-to-action).\n */\nexport type SelectTriggerVariant = 'default' | 'ghost';\ntype SelectTriggerLegacyVariant = 'primary';\n\nexport type SelectTriggerProps = Omit<SelectPrimitive.Trigger.Props, 'className'> & {\n className?: string;\n size?: TextButtonSize;\n variant?: SelectTriggerVariant | SelectTriggerLegacyVariant;\n};\n\nfunction normalizeSelectTriggerVariant(\n variant: SelectTriggerVariant | SelectTriggerLegacyVariant,\n): SelectTriggerVariant {\n return variant === 'primary' ? 'default' : variant;\n}\n\nconst SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, children, size = 'md', variant = 'default', ...props }, ref) => {\n const visualVariant = normalizeSelectTriggerVariant(variant);\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n // A select = a button + a trailing chevron: reuse the Button recipe\n // (variant colors, size = height/text/padding/radius, unified border\n // focus, disabled) and layer only the select-specific extras.\n className={cn(\n buttonVariants({ variant: visualVariant, size }),\n visualVariant === 'default' && fieldTriggerStyle,\n // Fill the field and push the value left / chevron right (Button's\n // base centers its content with `justify-center`).\n 'justify-between text-body-sm',\n // Read as \"active\" while the menu is open, per variant (see map above).\n controlTriggerOpenState[visualVariant],\n 'data-[placeholder]:text-muted-foreground',\n 'aria-invalid:border-destructive-indicator aria-invalid:focus-visible:border-destructive-indicator',\n '[&>span]:truncate',\n className,\n )}\n {...props}\n >\n {children}\n {/* `SelectPrimitive.Icon` renders the provided element in place of its\n default `<span>`, so the chevron would land as a *direct* `<svg>`\n child of the trigger — where Button's `TEXT_MODE_ADORNMENTS`\n `[&>svg]` rules (negative `mx`, forced 50% opacity, 1.1em sizing)\n would distort and mis-position it. Wrapping it in a `<span>` keeps\n the svg one level deep so those rules can't reach it, leaving the\n chevron pinned at the right edge at its intended size and color. */}\n <SelectPrimitive.Icon\n render={\n <span className=\"flex shrink-0 items-center\">\n <ChevronDown className={cn('size-4 text-muted-foreground', transitions.colors)} />\n </span>\n }\n />\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'SelectTrigger';\n\ntype SelectContentPositionerProps = Omit<SelectPositionerProps, keyof SelectPopupProps>;\n\nexport type SelectContentProps = Omit<SelectPopupProps, 'className'> &\n SelectContentPositionerProps & {\n className?: string;\n /**\n * Kept for API compatibility with the previous Radix API. Radix supported\n * `position=\"popper\" | \"item-aligned\"`; Base UI always uses popper-style\n * positioning so this prop is accepted but has no effect.\n */\n position?: 'popper' | 'item-aligned';\n /** Optional portal container, forwarded to `Select.Portal`. */\n container?: HTMLElement | null;\n };\n\nconst SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n (\n {\n className,\n children,\n position: _position,\n container,\n side = 'bottom',\n align = 'start',\n sideOffset = 4,\n alignItemWithTrigger = false,\n anchor,\n positionMethod = FLOATING_POSITION_METHOD,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n ...props\n },\n ref,\n ) => {\n // Default to the nearest SideDialog/Drawer popup so the dropdown stays\n // interactive inside a modal drawer; an explicit `container` still wins.\n const resolvedContainer = usePortalContainer(container);\n const menu = useFluidMenu<HTMLDivElement>();\n const positionerProps: SelectContentPositionerProps = {\n side,\n align,\n sideOffset,\n alignItemWithTrigger,\n anchor,\n positionMethod,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n };\n\n return (\n <SelectPrimitive.Portal container={resolvedContainer}>\n <SelectPrimitive.Positioner className={menuPositionerClass} {...positionerProps}>\n <SelectPrimitive.Popup ref={ref} className={cn(menuPopupClass, className)} {...props}>\n <SelectPrimitive.List className={menu.containerClassName} {...menu.getContainerProps({})}>\n <FluidMenuItems menu={menu}>{children}</FluidMenuItems>\n </SelectPrimitive.List>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'SelectContent';\n\nexport type SelectItemProps = Omit<SelectPrimitive.Item.Props, 'className'> & {\n className?: string;\n};\n\nconst SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item ref={useFluidMenuItemRef(ref)} className={cn(menuItemClass, className)} {...props}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator className={menuItemCheckClass}>\n <Check />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = 'SelectItem';\n\nexport { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem };\n"],"names":["React","jsx","SelectPrimitive","cn","jsxs","buttonVariants","fieldTriggerStyle","controlTriggerOpenState","ChevronDown","transitions","FLOATING_POSITION_METHOD","usePortalContainer","useFluidMenu","menuPositionerClass","menuPopupClass","FluidMenuItems","useFluidMenuItemRef","menuItemClass","menuItemCheckClass","Check"],"mappings":"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"}
1
+ {"version":3,"file":"select-DBY9LQFQ.cjs","sources":["../src/ds/components/Select/select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from '@base-ui/react/select';\nimport type { SelectPopupProps, SelectPositionerProps } from '@base-ui/react/select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport * as React from 'react';\n\nimport { buttonVariants } from '../Button/Button';\nimport type { TextButtonSize } from '../Button/Button';\nimport { controlTriggerOpenState } from '@/ds/primitives/control-size';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { fieldTriggerStyle } from '@/ds/primitives/form-element';\nimport { menuItemCheckClass, menuItemClass, menuPopupClass, menuPositionerClass } from '@/ds/primitives/menu-item';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n/**\n * Select migrated from `@radix-ui/react-select` to Base UI (`@base-ui/react/select`).\n *\n * The public API (`Select`, `SelectGroup`, `SelectValue`, `SelectTrigger`,\n * `SelectContent`, `SelectItem`) is intentionally kept stable so existing\n * consumers do not need changes.\n *\n * Notable behavioral differences vs. Radix that consumers should be aware of:\n * - `onValueChange` now receives a second `eventDetails` argument. Existing\n * handlers typed as `(value: string) => void` keep working (extra arg ignored).\n * - The dropdown no longer overlaps the trigger by default\n * (`alignItemWithTrigger={false}`), matching the previous Radix `popper`\n * positioning behavior.\n *\n * Implementation note: unlike Radix, Base UI's `Select.Value` can only resolve\n * a selected value to its label once the popup has mounted (it reads labels\n * from rendered items). To preserve the Radix behavior where the trigger shows\n * the selected label even while closed, `Select` auto-derives an `items` map\n * from the `SelectItem`s declared inside `SelectContent` and passes it to\n * `Select.Root`. Consumers can still pass an explicit `items` prop to override.\n */\ntype SelectItemNode = React.ReactElement<{ value: unknown; children?: React.ReactNode }>;\n\nfunction isSelectItem(node: React.ReactNode): node is SelectItemNode {\n return React.isValidElement(node) && (node.type as { displayName?: string })?.displayName === 'SelectItem';\n}\n\n/** Recursively collect `{ value, label }` pairs from declared `SelectItem`s. */\nfunction collectItems(children: React.ReactNode, acc: Array<{ value: unknown; label: React.ReactNode }>): void {\n React.Children.forEach(children, child => {\n if (!React.isValidElement(child)) return;\n if (isSelectItem(child)) {\n acc.push({ value: child.props.value, label: child.props.children });\n return;\n }\n const nested = (child.props as { children?: React.ReactNode })?.children;\n if (nested != null) collectItems(nested, acc);\n });\n}\n\ntype SelectRootProps<Value> = SelectPrimitive.Root.Props<Value, false>;\ntype SelectChangeDetails = Parameters<NonNullable<SelectRootProps<unknown>['onValueChange']>>[1];\n\n/**\n * `onValueChange` is intentionally narrowed to a non-null value: these selects\n * always hold a value once changed, which keeps existing `(value) => void`\n * consumer handlers valid (Base UI's own callback type is `Value | null`).\n */\ntype SelectProps<Value = string> = Omit<SelectRootProps<Value>, 'onValueChange'> & {\n onValueChange?: (value: Value, eventDetails: SelectChangeDetails) => void;\n};\n\nfunction Select<Value = string>({ children, items, onValueChange, ...props }: SelectProps<Value>) {\n const derivedItems = React.useMemo(() => {\n if (items != null) return items;\n const acc: Array<{ value: unknown; label: React.ReactNode }> = [];\n collectItems(children, acc);\n return acc.length > 0 ? acc : undefined;\n }, [items, children]);\n\n return (\n <SelectPrimitive.Root\n items={derivedItems as SelectRootProps<Value>['items']}\n onValueChange={onValueChange ? (value, eventDetails) => onValueChange(value as Value, eventDetails) : undefined}\n {...props}\n >\n {children}\n </SelectPrimitive.Root>\n );\n}\nSelect.displayName = 'Select';\n\nconst SelectGroup = SelectPrimitive.Group;\n\nexport type SelectValueProps = Omit<SelectPrimitive.Value.Props, 'className'> & {\n className?: string;\n};\n\n/**\n * Displays the selected value. Radix's `Select.Value` took a `placeholder`\n * prop and rendered the selected item's text automatically; Base UI's\n * `Select.Value` behaves the same way (renders the value, falls back to\n * `placeholder` when nothing is selected), so this is a thin passthrough.\n */\nconst SelectValue = React.forwardRef<HTMLSpanElement, SelectValueProps>(({ className, ...props }, ref) => (\n <SelectPrimitive.Value ref={ref} className={cn('truncate', className)} {...props} />\n));\nSelectValue.displayName = 'SelectValue';\n\n/**\n * A select is a form field, so it reuses the Button's size/shape recipe with\n * these looks: `default` (the Input's overlay surface — the default here too,\n * so a select sits next to an Input as the same kind of thing) and `ghost`\n * (borderless, for dense toolbars/inline pickers). The high-emphasis `primary` look is the only one intentionally NOT\n * offered (a field is not a call-to-action).\n */\nexport type SelectTriggerVariant = 'default' | 'ghost';\ntype SelectTriggerLegacyVariant = 'primary';\n\nexport type SelectTriggerProps = Omit<SelectPrimitive.Trigger.Props, 'className'> & {\n className?: string;\n size?: TextButtonSize;\n variant?: SelectTriggerVariant | SelectTriggerLegacyVariant;\n};\n\nfunction normalizeSelectTriggerVariant(\n variant: SelectTriggerVariant | SelectTriggerLegacyVariant,\n): SelectTriggerVariant {\n return variant === 'primary' ? 'default' : variant;\n}\n\nconst SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, children, size = 'md', variant = 'default', ...props }, ref) => {\n const visualVariant = normalizeSelectTriggerVariant(variant);\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n // A select = a button + a trailing chevron: reuse the Button recipe\n // (variant colors, size = height/text/padding/radius, unified border\n // focus, disabled) and layer only the select-specific extras.\n className={cn(\n buttonVariants({ variant: visualVariant, size }),\n visualVariant === 'default' && fieldTriggerStyle,\n // Fill the field and push the value left / chevron right (Button's\n // base centers its content with `justify-center`).\n 'justify-between text-body-sm',\n // Read as \"active\" while the menu is open, per variant (see map above).\n controlTriggerOpenState[visualVariant],\n 'data-[placeholder]:text-muted-foreground',\n 'aria-invalid:border-destructive-indicator aria-invalid:focus-visible:border-destructive-indicator',\n '[&>span]:truncate',\n className,\n )}\n {...props}\n >\n {children}\n {/* `SelectPrimitive.Icon` renders the provided element in place of its\n default `<span>`, so the chevron would land as a *direct* `<svg>`\n child of the trigger — where Button's `TEXT_MODE_ADORNMENTS`\n `[&>svg]` rules (negative `mx`, forced 50% opacity, 1.1em sizing)\n would distort and mis-position it. Wrapping it in a `<span>` keeps\n the svg one level deep so those rules can't reach it, leaving the\n chevron pinned at the right edge at its intended size and color. */}\n <SelectPrimitive.Icon\n render={\n <span className=\"flex shrink-0 items-center\">\n <ChevronDown className={cn('size-4 text-muted-foreground', transitions.colors)} />\n </span>\n }\n />\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'SelectTrigger';\n\ntype SelectContentPositionerProps = Omit<SelectPositionerProps, keyof SelectPopupProps>;\n\nexport type SelectContentProps = Omit<SelectPopupProps, 'className'> &\n SelectContentPositionerProps & {\n className?: string;\n /**\n * Kept for API compatibility with the previous Radix API. Radix supported\n * `position=\"popper\" | \"item-aligned\"`; Base UI always uses popper-style\n * positioning so this prop is accepted but has no effect.\n */\n position?: 'popper' | 'item-aligned';\n /** Optional portal container, forwarded to `Select.Portal`. */\n container?: HTMLElement | null;\n };\n\nconst SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n (\n {\n className,\n children,\n position: _position,\n container,\n side = 'bottom',\n align = 'start',\n sideOffset = 4,\n alignItemWithTrigger = false,\n anchor,\n positionMethod = FLOATING_POSITION_METHOD,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n ...props\n },\n ref,\n ) => {\n // Default to the nearest SideDialog/Drawer popup so the dropdown stays\n // interactive inside a modal drawer; an explicit `container` still wins.\n const resolvedContainer = usePortalContainer(container);\n const menu = useFluidMenu<HTMLDivElement>();\n const positionerProps: SelectContentPositionerProps = {\n side,\n align,\n sideOffset,\n alignItemWithTrigger,\n anchor,\n positionMethod,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n };\n\n return (\n <SelectPrimitive.Portal container={resolvedContainer}>\n <SelectPrimitive.Positioner className={menuPositionerClass} {...positionerProps}>\n <SelectPrimitive.Popup ref={ref} className={cn(menuPopupClass, className)} {...props}>\n <SelectPrimitive.List className={menu.containerClassName} {...menu.getContainerProps({})}>\n <FluidMenuItems menu={menu}>{children}</FluidMenuItems>\n </SelectPrimitive.List>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'SelectContent';\n\nexport type SelectItemProps = Omit<SelectPrimitive.Item.Props, 'className'> & {\n className?: string;\n};\n\nconst SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item ref={useFluidMenuItemRef(ref)} className={cn(menuItemClass, className)} {...props}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator className={menuItemCheckClass}>\n <Check />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = 'SelectItem';\n\nexport { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem };\n"],"names":["React","jsx","SelectPrimitive","cn","jsxs","buttonVariants","fieldTriggerStyle","controlTriggerOpenState","ChevronDown","transitions","FLOATING_POSITION_METHOD","usePortalContainer","useFluidMenu","menuPositionerClass","menuPopupClass","FluidMenuItems","useFluidMenuItemRef","menuItemClass","menuItemCheckClass","Check"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { Select as Select$1 } from '@base-ui/react/select';
3
3
  import { ChevronDown, Check } from 'lucide-react';
4
4
  import * as React from 'react';
5
- import { b as buttonVariants } from './Button-C6eUqcPI.js';
5
+ import { b as buttonVariants } from './Button-D43ghVKt.js';
6
6
  import { controlTriggerOpenState } from './primitives/control-size.es.js';
7
7
  import { FLOATING_POSITION_METHOD } from './primitives/floating.es.js';
8
8
  import { useFluidMenu, FluidMenuItems, useFluidMenuItemRef } from './primitives/fluid-menu.es.js';
@@ -135,4 +135,4 @@ const SelectItem = React.forwardRef(({ className, children, ...props }, ref) =>
135
135
  SelectItem.displayName = "SelectItem";
136
136
 
137
137
  export { Select as S, SelectContent as a, SelectGroup as b, SelectItem as c, SelectTrigger as d, SelectValue as e };
138
- //# sourceMappingURL=select-ch8imm15.js.map
138
+ //# sourceMappingURL=select-DZeNf-kI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-ch8imm15.js","sources":["../src/ds/components/Select/select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from '@base-ui/react/select';\nimport type { SelectPopupProps, SelectPositionerProps } from '@base-ui/react/select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport * as React from 'react';\n\nimport { buttonVariants } from '../Button/Button';\nimport type { TextButtonSize } from '../Button/Button';\nimport { controlTriggerOpenState } from '@/ds/primitives/control-size';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { fieldTriggerStyle } from '@/ds/primitives/form-element';\nimport { menuItemCheckClass, menuItemClass, menuPopupClass, menuPositionerClass } from '@/ds/primitives/menu-item';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n/**\n * Select migrated from `@radix-ui/react-select` to Base UI (`@base-ui/react/select`).\n *\n * The public API (`Select`, `SelectGroup`, `SelectValue`, `SelectTrigger`,\n * `SelectContent`, `SelectItem`) is intentionally kept stable so existing\n * consumers do not need changes.\n *\n * Notable behavioral differences vs. Radix that consumers should be aware of:\n * - `onValueChange` now receives a second `eventDetails` argument. Existing\n * handlers typed as `(value: string) => void` keep working (extra arg ignored).\n * - The dropdown no longer overlaps the trigger by default\n * (`alignItemWithTrigger={false}`), matching the previous Radix `popper`\n * positioning behavior.\n *\n * Implementation note: unlike Radix, Base UI's `Select.Value` can only resolve\n * a selected value to its label once the popup has mounted (it reads labels\n * from rendered items). To preserve the Radix behavior where the trigger shows\n * the selected label even while closed, `Select` auto-derives an `items` map\n * from the `SelectItem`s declared inside `SelectContent` and passes it to\n * `Select.Root`. Consumers can still pass an explicit `items` prop to override.\n */\ntype SelectItemNode = React.ReactElement<{ value: unknown; children?: React.ReactNode }>;\n\nfunction isSelectItem(node: React.ReactNode): node is SelectItemNode {\n return React.isValidElement(node) && (node.type as { displayName?: string })?.displayName === 'SelectItem';\n}\n\n/** Recursively collect `{ value, label }` pairs from declared `SelectItem`s. */\nfunction collectItems(children: React.ReactNode, acc: Array<{ value: unknown; label: React.ReactNode }>): void {\n React.Children.forEach(children, child => {\n if (!React.isValidElement(child)) return;\n if (isSelectItem(child)) {\n acc.push({ value: child.props.value, label: child.props.children });\n return;\n }\n const nested = (child.props as { children?: React.ReactNode })?.children;\n if (nested != null) collectItems(nested, acc);\n });\n}\n\ntype SelectRootProps<Value> = SelectPrimitive.Root.Props<Value, false>;\ntype SelectChangeDetails = Parameters<NonNullable<SelectRootProps<unknown>['onValueChange']>>[1];\n\n/**\n * `onValueChange` is intentionally narrowed to a non-null value: these selects\n * always hold a value once changed, which keeps existing `(value) => void`\n * consumer handlers valid (Base UI's own callback type is `Value | null`).\n */\ntype SelectProps<Value = string> = Omit<SelectRootProps<Value>, 'onValueChange'> & {\n onValueChange?: (value: Value, eventDetails: SelectChangeDetails) => void;\n};\n\nfunction Select<Value = string>({ children, items, onValueChange, ...props }: SelectProps<Value>) {\n const derivedItems = React.useMemo(() => {\n if (items != null) return items;\n const acc: Array<{ value: unknown; label: React.ReactNode }> = [];\n collectItems(children, acc);\n return acc.length > 0 ? acc : undefined;\n }, [items, children]);\n\n return (\n <SelectPrimitive.Root\n items={derivedItems as SelectRootProps<Value>['items']}\n onValueChange={onValueChange ? (value, eventDetails) => onValueChange(value as Value, eventDetails) : undefined}\n {...props}\n >\n {children}\n </SelectPrimitive.Root>\n );\n}\nSelect.displayName = 'Select';\n\nconst SelectGroup = SelectPrimitive.Group;\n\nexport type SelectValueProps = Omit<SelectPrimitive.Value.Props, 'className'> & {\n className?: string;\n};\n\n/**\n * Displays the selected value. Radix's `Select.Value` took a `placeholder`\n * prop and rendered the selected item's text automatically; Base UI's\n * `Select.Value` behaves the same way (renders the value, falls back to\n * `placeholder` when nothing is selected), so this is a thin passthrough.\n */\nconst SelectValue = React.forwardRef<HTMLSpanElement, SelectValueProps>(({ className, ...props }, ref) => (\n <SelectPrimitive.Value ref={ref} className={cn('truncate', className)} {...props} />\n));\nSelectValue.displayName = 'SelectValue';\n\n/**\n * A select is a form field, so it reuses the Button's size/shape recipe with\n * these looks: `default` (the Input's overlay surface — the default here too,\n * so a select sits next to an Input as the same kind of thing) and `ghost`\n * (borderless, for dense toolbars/inline pickers). The high-emphasis `primary` look is the only one intentionally NOT\n * offered (a field is not a call-to-action).\n */\nexport type SelectTriggerVariant = 'default' | 'ghost';\ntype SelectTriggerLegacyVariant = 'primary';\n\nexport type SelectTriggerProps = Omit<SelectPrimitive.Trigger.Props, 'className'> & {\n className?: string;\n size?: TextButtonSize;\n variant?: SelectTriggerVariant | SelectTriggerLegacyVariant;\n};\n\nfunction normalizeSelectTriggerVariant(\n variant: SelectTriggerVariant | SelectTriggerLegacyVariant,\n): SelectTriggerVariant {\n return variant === 'primary' ? 'default' : variant;\n}\n\nconst SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, children, size = 'md', variant = 'default', ...props }, ref) => {\n const visualVariant = normalizeSelectTriggerVariant(variant);\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n // A select = a button + a trailing chevron: reuse the Button recipe\n // (variant colors, size = height/text/padding/radius, unified border\n // focus, disabled) and layer only the select-specific extras.\n className={cn(\n buttonVariants({ variant: visualVariant, size }),\n visualVariant === 'default' && fieldTriggerStyle,\n // Fill the field and push the value left / chevron right (Button's\n // base centers its content with `justify-center`).\n 'justify-between text-body-sm',\n // Read as \"active\" while the menu is open, per variant (see map above).\n controlTriggerOpenState[visualVariant],\n 'data-[placeholder]:text-muted-foreground',\n 'aria-invalid:border-destructive-indicator aria-invalid:focus-visible:border-destructive-indicator',\n '[&>span]:truncate',\n className,\n )}\n {...props}\n >\n {children}\n {/* `SelectPrimitive.Icon` renders the provided element in place of its\n default `<span>`, so the chevron would land as a *direct* `<svg>`\n child of the trigger — where Button's `TEXT_MODE_ADORNMENTS`\n `[&>svg]` rules (negative `mx`, forced 50% opacity, 1.1em sizing)\n would distort and mis-position it. Wrapping it in a `<span>` keeps\n the svg one level deep so those rules can't reach it, leaving the\n chevron pinned at the right edge at its intended size and color. */}\n <SelectPrimitive.Icon\n render={\n <span className=\"flex shrink-0 items-center\">\n <ChevronDown className={cn('size-4 text-muted-foreground', transitions.colors)} />\n </span>\n }\n />\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'SelectTrigger';\n\ntype SelectContentPositionerProps = Omit<SelectPositionerProps, keyof SelectPopupProps>;\n\nexport type SelectContentProps = Omit<SelectPopupProps, 'className'> &\n SelectContentPositionerProps & {\n className?: string;\n /**\n * Kept for API compatibility with the previous Radix API. Radix supported\n * `position=\"popper\" | \"item-aligned\"`; Base UI always uses popper-style\n * positioning so this prop is accepted but has no effect.\n */\n position?: 'popper' | 'item-aligned';\n /** Optional portal container, forwarded to `Select.Portal`. */\n container?: HTMLElement | null;\n };\n\nconst SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n (\n {\n className,\n children,\n position: _position,\n container,\n side = 'bottom',\n align = 'start',\n sideOffset = 4,\n alignItemWithTrigger = false,\n anchor,\n positionMethod = FLOATING_POSITION_METHOD,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n ...props\n },\n ref,\n ) => {\n // Default to the nearest SideDialog/Drawer popup so the dropdown stays\n // interactive inside a modal drawer; an explicit `container` still wins.\n const resolvedContainer = usePortalContainer(container);\n const menu = useFluidMenu<HTMLDivElement>();\n const positionerProps: SelectContentPositionerProps = {\n side,\n align,\n sideOffset,\n alignItemWithTrigger,\n anchor,\n positionMethod,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n };\n\n return (\n <SelectPrimitive.Portal container={resolvedContainer}>\n <SelectPrimitive.Positioner className={menuPositionerClass} {...positionerProps}>\n <SelectPrimitive.Popup ref={ref} className={cn(menuPopupClass, className)} {...props}>\n <SelectPrimitive.List className={menu.containerClassName} {...menu.getContainerProps({})}>\n <FluidMenuItems menu={menu}>{children}</FluidMenuItems>\n </SelectPrimitive.List>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'SelectContent';\n\nexport type SelectItemProps = Omit<SelectPrimitive.Item.Props, 'className'> & {\n className?: string;\n};\n\nconst SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item ref={useFluidMenuItemRef(ref)} className={cn(menuItemClass, className)} {...props}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator className={menuItemCheckClass}>\n <Check />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = 'SelectItem';\n\nexport { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem };\n"],"names":["SelectPrimitive"],"mappings":"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"}
1
+ {"version":3,"file":"select-DZeNf-kI.js","sources":["../src/ds/components/Select/select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from '@base-ui/react/select';\nimport type { SelectPopupProps, SelectPositionerProps } from '@base-ui/react/select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport * as React from 'react';\n\nimport { buttonVariants } from '../Button/Button';\nimport type { TextButtonSize } from '../Button/Button';\nimport { controlTriggerOpenState } from '@/ds/primitives/control-size';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { fieldTriggerStyle } from '@/ds/primitives/form-element';\nimport { menuItemCheckClass, menuItemClass, menuPopupClass, menuPositionerClass } from '@/ds/primitives/menu-item';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n/**\n * Select migrated from `@radix-ui/react-select` to Base UI (`@base-ui/react/select`).\n *\n * The public API (`Select`, `SelectGroup`, `SelectValue`, `SelectTrigger`,\n * `SelectContent`, `SelectItem`) is intentionally kept stable so existing\n * consumers do not need changes.\n *\n * Notable behavioral differences vs. Radix that consumers should be aware of:\n * - `onValueChange` now receives a second `eventDetails` argument. Existing\n * handlers typed as `(value: string) => void` keep working (extra arg ignored).\n * - The dropdown no longer overlaps the trigger by default\n * (`alignItemWithTrigger={false}`), matching the previous Radix `popper`\n * positioning behavior.\n *\n * Implementation note: unlike Radix, Base UI's `Select.Value` can only resolve\n * a selected value to its label once the popup has mounted (it reads labels\n * from rendered items). To preserve the Radix behavior where the trigger shows\n * the selected label even while closed, `Select` auto-derives an `items` map\n * from the `SelectItem`s declared inside `SelectContent` and passes it to\n * `Select.Root`. Consumers can still pass an explicit `items` prop to override.\n */\ntype SelectItemNode = React.ReactElement<{ value: unknown; children?: React.ReactNode }>;\n\nfunction isSelectItem(node: React.ReactNode): node is SelectItemNode {\n return React.isValidElement(node) && (node.type as { displayName?: string })?.displayName === 'SelectItem';\n}\n\n/** Recursively collect `{ value, label }` pairs from declared `SelectItem`s. */\nfunction collectItems(children: React.ReactNode, acc: Array<{ value: unknown; label: React.ReactNode }>): void {\n React.Children.forEach(children, child => {\n if (!React.isValidElement(child)) return;\n if (isSelectItem(child)) {\n acc.push({ value: child.props.value, label: child.props.children });\n return;\n }\n const nested = (child.props as { children?: React.ReactNode })?.children;\n if (nested != null) collectItems(nested, acc);\n });\n}\n\ntype SelectRootProps<Value> = SelectPrimitive.Root.Props<Value, false>;\ntype SelectChangeDetails = Parameters<NonNullable<SelectRootProps<unknown>['onValueChange']>>[1];\n\n/**\n * `onValueChange` is intentionally narrowed to a non-null value: these selects\n * always hold a value once changed, which keeps existing `(value) => void`\n * consumer handlers valid (Base UI's own callback type is `Value | null`).\n */\ntype SelectProps<Value = string> = Omit<SelectRootProps<Value>, 'onValueChange'> & {\n onValueChange?: (value: Value, eventDetails: SelectChangeDetails) => void;\n};\n\nfunction Select<Value = string>({ children, items, onValueChange, ...props }: SelectProps<Value>) {\n const derivedItems = React.useMemo(() => {\n if (items != null) return items;\n const acc: Array<{ value: unknown; label: React.ReactNode }> = [];\n collectItems(children, acc);\n return acc.length > 0 ? acc : undefined;\n }, [items, children]);\n\n return (\n <SelectPrimitive.Root\n items={derivedItems as SelectRootProps<Value>['items']}\n onValueChange={onValueChange ? (value, eventDetails) => onValueChange(value as Value, eventDetails) : undefined}\n {...props}\n >\n {children}\n </SelectPrimitive.Root>\n );\n}\nSelect.displayName = 'Select';\n\nconst SelectGroup = SelectPrimitive.Group;\n\nexport type SelectValueProps = Omit<SelectPrimitive.Value.Props, 'className'> & {\n className?: string;\n};\n\n/**\n * Displays the selected value. Radix's `Select.Value` took a `placeholder`\n * prop and rendered the selected item's text automatically; Base UI's\n * `Select.Value` behaves the same way (renders the value, falls back to\n * `placeholder` when nothing is selected), so this is a thin passthrough.\n */\nconst SelectValue = React.forwardRef<HTMLSpanElement, SelectValueProps>(({ className, ...props }, ref) => (\n <SelectPrimitive.Value ref={ref} className={cn('truncate', className)} {...props} />\n));\nSelectValue.displayName = 'SelectValue';\n\n/**\n * A select is a form field, so it reuses the Button's size/shape recipe with\n * these looks: `default` (the Input's overlay surface — the default here too,\n * so a select sits next to an Input as the same kind of thing) and `ghost`\n * (borderless, for dense toolbars/inline pickers). The high-emphasis `primary` look is the only one intentionally NOT\n * offered (a field is not a call-to-action).\n */\nexport type SelectTriggerVariant = 'default' | 'ghost';\ntype SelectTriggerLegacyVariant = 'primary';\n\nexport type SelectTriggerProps = Omit<SelectPrimitive.Trigger.Props, 'className'> & {\n className?: string;\n size?: TextButtonSize;\n variant?: SelectTriggerVariant | SelectTriggerLegacyVariant;\n};\n\nfunction normalizeSelectTriggerVariant(\n variant: SelectTriggerVariant | SelectTriggerLegacyVariant,\n): SelectTriggerVariant {\n return variant === 'primary' ? 'default' : variant;\n}\n\nconst SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, children, size = 'md', variant = 'default', ...props }, ref) => {\n const visualVariant = normalizeSelectTriggerVariant(variant);\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n // A select = a button + a trailing chevron: reuse the Button recipe\n // (variant colors, size = height/text/padding/radius, unified border\n // focus, disabled) and layer only the select-specific extras.\n className={cn(\n buttonVariants({ variant: visualVariant, size }),\n visualVariant === 'default' && fieldTriggerStyle,\n // Fill the field and push the value left / chevron right (Button's\n // base centers its content with `justify-center`).\n 'justify-between text-body-sm',\n // Read as \"active\" while the menu is open, per variant (see map above).\n controlTriggerOpenState[visualVariant],\n 'data-[placeholder]:text-muted-foreground',\n 'aria-invalid:border-destructive-indicator aria-invalid:focus-visible:border-destructive-indicator',\n '[&>span]:truncate',\n className,\n )}\n {...props}\n >\n {children}\n {/* `SelectPrimitive.Icon` renders the provided element in place of its\n default `<span>`, so the chevron would land as a *direct* `<svg>`\n child of the trigger — where Button's `TEXT_MODE_ADORNMENTS`\n `[&>svg]` rules (negative `mx`, forced 50% opacity, 1.1em sizing)\n would distort and mis-position it. Wrapping it in a `<span>` keeps\n the svg one level deep so those rules can't reach it, leaving the\n chevron pinned at the right edge at its intended size and color. */}\n <SelectPrimitive.Icon\n render={\n <span className=\"flex shrink-0 items-center\">\n <ChevronDown className={cn('size-4 text-muted-foreground', transitions.colors)} />\n </span>\n }\n />\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'SelectTrigger';\n\ntype SelectContentPositionerProps = Omit<SelectPositionerProps, keyof SelectPopupProps>;\n\nexport type SelectContentProps = Omit<SelectPopupProps, 'className'> &\n SelectContentPositionerProps & {\n className?: string;\n /**\n * Kept for API compatibility with the previous Radix API. Radix supported\n * `position=\"popper\" | \"item-aligned\"`; Base UI always uses popper-style\n * positioning so this prop is accepted but has no effect.\n */\n position?: 'popper' | 'item-aligned';\n /** Optional portal container, forwarded to `Select.Portal`. */\n container?: HTMLElement | null;\n };\n\nconst SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n (\n {\n className,\n children,\n position: _position,\n container,\n side = 'bottom',\n align = 'start',\n sideOffset = 4,\n alignItemWithTrigger = false,\n anchor,\n positionMethod = FLOATING_POSITION_METHOD,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n ...props\n },\n ref,\n ) => {\n // Default to the nearest SideDialog/Drawer popup so the dropdown stays\n // interactive inside a modal drawer; an explicit `container` still wins.\n const resolvedContainer = usePortalContainer(container);\n const menu = useFluidMenu<HTMLDivElement>();\n const positionerProps: SelectContentPositionerProps = {\n side,\n align,\n sideOffset,\n alignItemWithTrigger,\n anchor,\n positionMethod,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n };\n\n return (\n <SelectPrimitive.Portal container={resolvedContainer}>\n <SelectPrimitive.Positioner className={menuPositionerClass} {...positionerProps}>\n <SelectPrimitive.Popup ref={ref} className={cn(menuPopupClass, className)} {...props}>\n <SelectPrimitive.List className={menu.containerClassName} {...menu.getContainerProps({})}>\n <FluidMenuItems menu={menu}>{children}</FluidMenuItems>\n </SelectPrimitive.List>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'SelectContent';\n\nexport type SelectItemProps = Omit<SelectPrimitive.Item.Props, 'className'> & {\n className?: string;\n};\n\nconst SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item ref={useFluidMenuItemRef(ref)} className={cn(menuItemClass, className)} {...props}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator className={menuItemCheckClass}>\n <Check />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = 'SelectItem';\n\nexport { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem };\n"],"names":["SelectPrimitive"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { F as FieldBlock } from './field-block-DpejZ6U6.js';
2
+ import { F as FieldBlock } from './field-block--PeppIRb.js';
3
3
  import { f as fieldErrorId } from './field-error-id-D3yg1nBh.js';
4
- import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from './select-ch8imm15.js';
4
+ import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from './select-DZeNf-kI.js';
5
5
  import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
6
6
 
7
7
  function SelectFieldBlock({
@@ -56,4 +56,4 @@ function SelectFieldBlock({
56
56
  }
57
57
 
58
58
  export { SelectFieldBlock as S };
59
- //# sourceMappingURL=select-field-block-_ZUzUs7l.js.map
59
+ //# sourceMappingURL=select-field-block-C_x9wNpU.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-field-block-_ZUzUs7l.js","sources":["../src/ds/components/FormFieldBlocks/fields/select-field-block.tsx"],"sourcesContent":["import type { SelectTriggerProps } from '../../Select/select';\nimport { FieldBlock } from '../block/field-block';\nimport type { FieldBlockErrorMsgProps } from '../block/field-block-error-msg';\nimport type { FieldBlockHelpTextProps } from '../block/field-block-help-text';\nimport type { FieldBlockLabelProps } from '../block/field-block-label';\nimport type { FieldBlockLayoutProps } from '../block/field-block-layout';\nimport { fieldErrorId } from '../block/field-error-id';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\n\nexport type SelectFieldBlockProps = Pick<FieldBlockLayoutProps, 'layout' | 'labelColumnWidth'> &\n Pick<FieldBlockLabelProps, 'name' | 'required'> & {\n testId?: string;\n label?: string | null;\n labelIsHidden?: boolean;\n labelSize?: FieldBlockLabelProps['size'];\n disabled?: boolean;\n value?: string;\n options: { value: string; label: string }[];\n placeholder?: string;\n onValueChange: (value: string) => void;\n helpText?: FieldBlockHelpTextProps['children'];\n errorMsg?: FieldBlockErrorMsgProps['children'];\n error?: boolean;\n className?: string;\n size?: SelectTriggerProps['size'];\n };\n\nexport function SelectFieldBlock({\n name,\n helpText,\n errorMsg,\n required = false,\n disabled = false,\n size = 'md',\n value,\n label,\n labelIsHidden = false,\n layout = 'vertical',\n labelColumnWidth,\n options,\n placeholder = 'Select an option',\n onValueChange,\n className,\n}: SelectFieldBlockProps) {\n return (\n <FieldBlock.Layout layout={layout} labelColumnWidth={labelColumnWidth} className={className}>\n {layout === 'horizontal' ? (\n <FieldBlock.Column>\n <FieldBlock.Label name={name} required={required} disabled={disabled}>\n {labelIsHidden ? <VisuallyHidden>{label}</VisuallyHidden> : label}\n </FieldBlock.Label>\n </FieldBlock.Column>\n ) : null}\n <FieldBlock.Column>\n {layout === 'vertical' && label && !labelIsHidden ? (\n <FieldBlock.Label name={name} required={required} disabled={disabled}>\n {label}\n </FieldBlock.Label>\n ) : null}\n <FieldBlock.Column className=\"gap-1\">\n <Select\n aria-label={labelIsHidden ? label : undefined}\n name={name}\n value={value}\n onValueChange={onValueChange}\n disabled={disabled}\n >\n <SelectTrigger\n id={`input-${name}`}\n size={size}\n aria-invalid={errorMsg ? true : undefined}\n aria-describedby={errorMsg ? fieldErrorId(name) : undefined}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {options.map(option => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {helpText || errorMsg ? <FieldBlock.Message name={name} helpText={helpText} errorMsg={errorMsg} /> : null}\n </FieldBlock.Column>\n </FieldBlock.Column>\n </FieldBlock.Layout>\n );\n}\n"],"names":[],"mappings":";;;;;;AA4BO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,IAAA,GAAO,IAAA;AAAA,EACP,KAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,MAAA,GAAS,UAAA;AAAA,EACT,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA,GAAc,kBAAA;AAAA,EACd,aAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,4BACG,UAAA,CAAW,MAAA,EAAX,EAAkB,MAAA,EAAgB,kBAAoC,SAAA,EACpE,QAAA,EAAA;AAAA,IAAA,MAAA,KAAW,+BACV,GAAA,CAAC,UAAA,CAAW,QAAX,EACC,QAAA,kBAAA,GAAA,CAAC,WAAW,KAAA,EAAX,EAAiB,MAAY,QAAA,EAAoB,QAAA,EAC/C,0CAAgB,GAAA,CAAC,cAAA,EAAA,EAAgB,iBAAM,CAAA,GAAoB,KAAA,EAC9D,GACF,CAAA,GACE,IAAA;AAAA,oBACJ,IAAA,CAAC,UAAA,CAAW,MAAA,EAAX,EACE,QAAA,EAAA;AAAA,MAAA,MAAA,KAAW,UAAA,IAAc,KAAA,IAAS,CAAC,aAAA,mBAClC,GAAA,CAAC,UAAA,CAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAAoB,QAAA,EAC/C,QAAA,EAAA,KAAA,EACH,CAAA,GACE,IAAA;AAAA,sBACJ,IAAA,CAAC,UAAA,CAAW,MAAA,EAAX,EAAkB,WAAU,OAAA,EAC3B,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAY,gBAAgB,KAAA,GAAQ,MAAA;AAAA,YACpC,IAAA;AAAA,YACA,KAAA;AAAA,YACA,aAAA;AAAA,YACA,QAAA;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA;AAAA,gBAAC,aAAA;AAAA,gBAAA;AAAA,kBACC,EAAA,EAAI,SAAS,IAAI,CAAA,CAAA;AAAA,kBACjB,IAAA;AAAA,kBACA,cAAA,EAAc,WAAW,IAAA,GAAO,MAAA;AAAA,kBAChC,kBAAA,EAAkB,QAAA,GAAW,YAAA,CAAa,IAAI,CAAA,GAAI,MAAA;AAAA,kBAElD,QAAA,kBAAA,GAAA,CAAC,eAAY,WAAA,EAA0B;AAAA;AAAA,eACzC;AAAA,8BACA,GAAA,CAAC,aAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,4BACX,GAAA,CAAC,UAAA,EAAA,EAA8B,KAAA,EAAO,MAAA,CAAO,OAC1C,QAAA,EAAA,MAAA,CAAO,KAAA,EAAA,EADO,MAAA,CAAO,KAExB,CACD,CAAA,EACH;AAAA;AAAA;AAAA,SACF;AAAA,QACC,QAAA,IAAY,2BAAW,GAAA,CAAC,UAAA,CAAW,SAAX,EAAmB,IAAA,EAAY,QAAA,EAAoB,QAAA,EAAoB,CAAA,GAAK;AAAA,OAAA,EACvG;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"select-field-block-C_x9wNpU.js","sources":["../src/ds/components/FormFieldBlocks/fields/select-field-block.tsx"],"sourcesContent":["import type { SelectTriggerProps } from '../../Select/select';\nimport { FieldBlock } from '../block/field-block';\nimport type { FieldBlockErrorMsgProps } from '../block/field-block-error-msg';\nimport type { FieldBlockHelpTextProps } from '../block/field-block-help-text';\nimport type { FieldBlockLabelProps } from '../block/field-block-label';\nimport type { FieldBlockLayoutProps } from '../block/field-block-layout';\nimport { fieldErrorId } from '../block/field-error-id';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\n\nexport type SelectFieldBlockProps = Pick<FieldBlockLayoutProps, 'layout' | 'labelColumnWidth'> &\n Pick<FieldBlockLabelProps, 'name' | 'required'> & {\n testId?: string;\n label?: string | null;\n labelIsHidden?: boolean;\n labelSize?: FieldBlockLabelProps['size'];\n disabled?: boolean;\n value?: string;\n options: { value: string; label: string }[];\n placeholder?: string;\n onValueChange: (value: string) => void;\n helpText?: FieldBlockHelpTextProps['children'];\n errorMsg?: FieldBlockErrorMsgProps['children'];\n error?: boolean;\n className?: string;\n size?: SelectTriggerProps['size'];\n };\n\nexport function SelectFieldBlock({\n name,\n helpText,\n errorMsg,\n required = false,\n disabled = false,\n size = 'md',\n value,\n label,\n labelIsHidden = false,\n layout = 'vertical',\n labelColumnWidth,\n options,\n placeholder = 'Select an option',\n onValueChange,\n className,\n}: SelectFieldBlockProps) {\n return (\n <FieldBlock.Layout layout={layout} labelColumnWidth={labelColumnWidth} className={className}>\n {layout === 'horizontal' ? (\n <FieldBlock.Column>\n <FieldBlock.Label name={name} required={required} disabled={disabled}>\n {labelIsHidden ? <VisuallyHidden>{label}</VisuallyHidden> : label}\n </FieldBlock.Label>\n </FieldBlock.Column>\n ) : null}\n <FieldBlock.Column>\n {layout === 'vertical' && label && !labelIsHidden ? (\n <FieldBlock.Label name={name} required={required} disabled={disabled}>\n {label}\n </FieldBlock.Label>\n ) : null}\n <FieldBlock.Column className=\"gap-1\">\n <Select\n aria-label={labelIsHidden ? label : undefined}\n name={name}\n value={value}\n onValueChange={onValueChange}\n disabled={disabled}\n >\n <SelectTrigger\n id={`input-${name}`}\n size={size}\n aria-invalid={errorMsg ? true : undefined}\n aria-describedby={errorMsg ? fieldErrorId(name) : undefined}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {options.map(option => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {helpText || errorMsg ? <FieldBlock.Message name={name} helpText={helpText} errorMsg={errorMsg} /> : null}\n </FieldBlock.Column>\n </FieldBlock.Column>\n </FieldBlock.Layout>\n );\n}\n"],"names":[],"mappings":";;;;;;AA4BO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,IAAA,GAAO,IAAA;AAAA,EACP,KAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,MAAA,GAAS,UAAA;AAAA,EACT,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA,GAAc,kBAAA;AAAA,EACd,aAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,4BACG,UAAA,CAAW,MAAA,EAAX,EAAkB,MAAA,EAAgB,kBAAoC,SAAA,EACpE,QAAA,EAAA;AAAA,IAAA,MAAA,KAAW,+BACV,GAAA,CAAC,UAAA,CAAW,QAAX,EACC,QAAA,kBAAA,GAAA,CAAC,WAAW,KAAA,EAAX,EAAiB,MAAY,QAAA,EAAoB,QAAA,EAC/C,0CAAgB,GAAA,CAAC,cAAA,EAAA,EAAgB,iBAAM,CAAA,GAAoB,KAAA,EAC9D,GACF,CAAA,GACE,IAAA;AAAA,oBACJ,IAAA,CAAC,UAAA,CAAW,MAAA,EAAX,EACE,QAAA,EAAA;AAAA,MAAA,MAAA,KAAW,UAAA,IAAc,KAAA,IAAS,CAAC,aAAA,mBAClC,GAAA,CAAC,UAAA,CAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAAoB,QAAA,EAC/C,QAAA,EAAA,KAAA,EACH,CAAA,GACE,IAAA;AAAA,sBACJ,IAAA,CAAC,UAAA,CAAW,MAAA,EAAX,EAAkB,WAAU,OAAA,EAC3B,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAY,gBAAgB,KAAA,GAAQ,MAAA;AAAA,YACpC,IAAA;AAAA,YACA,KAAA;AAAA,YACA,aAAA;AAAA,YACA,QAAA;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA;AAAA,gBAAC,aAAA;AAAA,gBAAA;AAAA,kBACC,EAAA,EAAI,SAAS,IAAI,CAAA,CAAA;AAAA,kBACjB,IAAA;AAAA,kBACA,cAAA,EAAc,WAAW,IAAA,GAAO,MAAA;AAAA,kBAChC,kBAAA,EAAkB,QAAA,GAAW,YAAA,CAAa,IAAI,CAAA,GAAI,MAAA;AAAA,kBAElD,QAAA,kBAAA,GAAA,CAAC,eAAY,WAAA,EAA0B;AAAA;AAAA,eACzC;AAAA,8BACA,GAAA,CAAC,aAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,4BACX,GAAA,CAAC,UAAA,EAAA,EAA8B,KAAA,EAAO,MAAA,CAAO,OAC1C,QAAA,EAAA,MAAA,CAAO,KAAA,EAAA,EADO,MAAA,CAAO,KAExB,CACD,CAAA,EACH;AAAA;AAAA;AAAA,SACF;AAAA,QACC,QAAA,IAAY,2BAAW,GAAA,CAAC,UAAA,CAAW,SAAX,EAAmB,IAAA,EAAY,QAAA,EAAoB,QAAA,EAAoB,CAAA,GAAK;AAAA,OAAA,EACvG;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
- const fieldBlock = require('./field-block-BIDi9Bvc.cjs');
4
+ const fieldBlock = require('./field-block-DtaPqBa3.cjs');
5
5
  const fieldErrorId = require('./field-error-id-B3Z2Zu5y.cjs');
6
- const select = require('./select-C0ZGSJYa.cjs');
6
+ const select = require('./select-DBY9LQFQ.cjs');
7
7
  const reactVisuallyHidden = require('@radix-ui/react-visually-hidden');
8
8
 
9
9
  function SelectFieldBlock({
@@ -58,4 +58,4 @@ function SelectFieldBlock({
58
58
  }
59
59
 
60
60
  exports.SelectFieldBlock = SelectFieldBlock;
61
- //# sourceMappingURL=select-field-block-Dy_N3tWv.cjs.map
61
+ //# sourceMappingURL=select-field-block-D8AMzoQT.cjs.map