@mastra/playground-ui 60.1.0-alpha.1 → 60.2.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 (741) hide show
  1. package/dist/{ask-user-Dlz2346n.js → ask-user-DE8TaPhb.js} +62 -53
  2. package/dist/ask-user-DE8TaPhb.js.map +1 -0
  3. package/dist/{ask-user-CXu4b7Jw.cjs → ask-user-XYY0fUoI.cjs} +61 -52
  4. package/dist/ask-user-XYY0fUoI.cjs.map +1 -0
  5. package/dist/{checkbox-CI8JtZKS.cjs → checkbox-Bkobte27.cjs} +3 -1
  6. package/dist/checkbox-Bkobte27.cjs.map +1 -0
  7. package/dist/{checkbox-CQedzgsi.js → checkbox-DcNIsz5L.js} +3 -1
  8. package/dist/checkbox-DcNIsz5L.js.map +1 -0
  9. package/dist/{code-block-DY5KsTGY.js → code-block-Bnz7Pq0Q.js} +3 -3
  10. package/dist/code-block-Bnz7Pq0Q.js.map +1 -0
  11. package/dist/{code-block-BzoMjjtf.cjs → code-block-C3DbSINk.cjs} +3 -3
  12. package/dist/code-block-C3DbSINk.cjs.map +1 -0
  13. package/dist/{code-editor-B_wPmKPf.cjs → code-editor-Btr1qm_5.cjs} +26 -6
  14. package/dist/code-editor-Btr1qm_5.cjs.map +1 -0
  15. package/dist/{code-editor-28chVxHw.js → code-editor-DzhYz1fH.js} +26 -6
  16. package/dist/code-editor-DzhYz1fH.js.map +1 -0
  17. package/dist/{combobox-B15qTrWO.js → combobox-DKFPbNMB.js} +13 -11
  18. package/dist/combobox-DKFPbNMB.js.map +1 -0
  19. package/dist/{combobox-DJ0c4o4S.cjs → combobox-RzEkcOuu.cjs} +14 -12
  20. package/dist/combobox-RzEkcOuu.cjs.map +1 -0
  21. package/dist/{combobox-styles-C2MEEpaG.js → combobox-styles-mbcWlNZQ.js} +6 -7
  22. package/dist/combobox-styles-mbcWlNZQ.js.map +1 -0
  23. package/dist/{combobox-styles-DLflBH-G.cjs → combobox-styles-qL3FSgmU.cjs} +5 -6
  24. package/dist/combobox-styles-qL3FSgmU.cjs.map +1 -0
  25. package/dist/components/Checkbox.cjs.js +1 -1
  26. package/dist/components/Checkbox.es.js +1 -1
  27. package/dist/components/CodeBlock.cjs.js +1 -1
  28. package/dist/components/CodeBlock.es.js +1 -1
  29. package/dist/components/CodeEditor.cjs.js +1 -1
  30. package/dist/components/CodeEditor.es.js +1 -1
  31. package/dist/components/Combobox.cjs.js +2 -2
  32. package/dist/components/Combobox.es.js +2 -2
  33. package/dist/components/Comment.cjs.js +7 -9
  34. package/dist/components/Comment.cjs.js.map +1 -1
  35. package/dist/components/Comment.es.js +8 -10
  36. package/dist/components/Comment.es.js.map +1 -1
  37. package/dist/components/DataCodeSection.cjs.js +1 -1
  38. package/dist/components/DataCodeSection.es.js +1 -1
  39. package/dist/components/DataList.cjs.js +5 -5
  40. package/dist/components/DataList.es.js +5 -5
  41. package/dist/components/DataPanel.cjs.js +1 -1
  42. package/dist/components/DataPanel.es.js +1 -1
  43. package/dist/components/DateTimePicker.cjs.js +9 -14
  44. package/dist/components/DateTimePicker.cjs.js.map +1 -1
  45. package/dist/components/DateTimePicker.es.js +9 -14
  46. package/dist/components/DateTimePicker.es.js.map +1 -1
  47. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  48. package/dist/components/DateTimeRangePicker.es.js +1 -1
  49. package/dist/components/EnvironmentVariablesEditor.cjs.js +12 -22
  50. package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
  51. package/dist/components/EnvironmentVariablesEditor.es.js +12 -22
  52. package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
  53. package/dist/components/Field.cjs.js +19 -0
  54. package/dist/components/Field.cjs.js.map +1 -0
  55. package/dist/components/Field.d.ts +2 -0
  56. package/dist/components/Field.es.js +3 -0
  57. package/dist/components/Field.es.js.map +1 -0
  58. package/dist/components/FilterBar.cjs.js +2 -2
  59. package/dist/components/FilterBar.es.js +3 -3
  60. package/dist/components/Form.cjs.js +10 -0
  61. package/dist/components/Form.cjs.js.map +1 -0
  62. package/dist/components/Form.d.ts +2 -0
  63. package/dist/components/Form.es.js +2 -0
  64. package/dist/components/Form.es.js.map +1 -0
  65. package/dist/components/FormFieldBlocks.cjs.js +270 -11
  66. package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
  67. package/dist/components/FormFieldBlocks.es.js +267 -8
  68. package/dist/components/FormFieldBlocks.es.js.map +1 -1
  69. package/dist/components/Input.cjs.js +1 -1
  70. package/dist/components/Input.es.js +1 -1
  71. package/dist/components/InputGroup.cjs.js +1 -1
  72. package/dist/components/InputGroup.es.js +1 -1
  73. package/dist/components/JSONSchemaForm.cjs.js +51 -52
  74. package/dist/components/JSONSchemaForm.cjs.js.map +1 -1
  75. package/dist/components/JSONSchemaForm.es.js +44 -45
  76. package/dist/components/JSONSchemaForm.es.js.map +1 -1
  77. package/dist/components/Label.cjs.js +33 -2
  78. package/dist/components/Label.cjs.js.map +1 -1
  79. package/dist/components/Label.es.js +17 -1
  80. package/dist/components/Label.es.js.map +1 -1
  81. package/dist/components/ListSearch.cjs.js +1 -1
  82. package/dist/components/ListSearch.es.js +1 -1
  83. package/dist/components/LogsDataList.cjs.js +2 -4
  84. package/dist/components/LogsDataList.cjs.js.map +1 -1
  85. package/dist/components/LogsDataList.es.js +2 -4
  86. package/dist/components/LogsDataList.es.js.map +1 -1
  87. package/dist/components/MainSidebar.cjs.js +11 -125
  88. package/dist/components/MainSidebar.cjs.js.map +1 -1
  89. package/dist/components/MainSidebar.es.js +1 -120
  90. package/dist/components/MainSidebar.es.js.map +1 -1
  91. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  92. package/dist/components/MarkdownRenderer.es.js +1 -1
  93. package/dist/components/PropertyFilter.cjs.js +24 -21
  94. package/dist/components/PropertyFilter.cjs.js.map +1 -1
  95. package/dist/components/PropertyFilter.es.js +25 -22
  96. package/dist/components/PropertyFilter.es.js.map +1 -1
  97. package/dist/components/RadioGroup.cjs.js +1 -1
  98. package/dist/components/RadioGroup.es.js +1 -1
  99. package/dist/components/RuleBuilder.cjs.js +2 -2
  100. package/dist/components/RuleBuilder.es.js +2 -2
  101. package/dist/components/SearchInput.cjs.js +10 -0
  102. package/dist/components/SearchInput.cjs.js.map +1 -0
  103. package/dist/components/SearchInput.d.ts +2 -0
  104. package/dist/components/SearchInput.es.js +2 -0
  105. package/dist/components/SearchInput.es.js.map +1 -0
  106. package/dist/components/Section.cjs.js +1 -1
  107. package/dist/components/Section.es.js +1 -1
  108. package/dist/components/SegmentedControl.cjs.js +1 -1
  109. package/dist/components/SegmentedControl.es.js +1 -1
  110. package/dist/components/Select.cjs.js +1 -1
  111. package/dist/components/Select.es.js +1 -1
  112. package/dist/components/SideDialog.cjs.js +1 -1
  113. package/dist/components/SideDialog.es.js +1 -1
  114. package/dist/components/Switch.cjs.js +1 -1
  115. package/dist/components/Switch.es.js +1 -1
  116. package/dist/components/Textarea.cjs.js +1 -1
  117. package/dist/components/Textarea.es.js +1 -1
  118. package/dist/components/ThemeToggle.cjs.js +1 -1
  119. package/dist/components/ThemeToggle.es.js +1 -1
  120. package/dist/components/Workflow.cjs.js +3 -3
  121. package/dist/components/Workflow.es.js +3 -3
  122. package/dist/components/ai/activity.cjs.js +1 -1
  123. package/dist/components/ai/activity.es.js +1 -1
  124. package/dist/components/ai/ask-user.cjs.js +1 -1
  125. package/dist/components/ai/ask-user.es.js +1 -1
  126. package/dist/components/ai/plan.cjs.js +1 -1
  127. package/dist/components/ai/plan.es.js +1 -1
  128. package/dist/components/ai/tool-call.cjs.js +1 -1
  129. package/dist/components/ai/tool-call.es.js +1 -1
  130. package/dist/{custom-auto-form-field-yEMBGXu-.js → custom-auto-form-field-BvEhSH73.js} +2 -6
  131. package/dist/custom-auto-form-field-BvEhSH73.js.map +1 -0
  132. package/dist/{custom-auto-form-field-Brfb-0Te.cjs → custom-auto-form-field-DVse5pih.cjs} +2 -6
  133. package/dist/custom-auto-form-field-DVse5pih.cjs.map +1 -0
  134. package/dist/{data-code-section-It6myyvZ.js → data-code-section-DFxE6ckH.js} +22 -19
  135. package/dist/data-code-section-DFxE6ckH.js.map +1 -0
  136. package/dist/{data-code-section-DWBfkrmO.cjs → data-code-section-Ds79F6W-.cjs} +21 -18
  137. package/dist/data-code-section-Ds79F6W-.cjs.map +1 -0
  138. package/dist/{data-list-Y42KyuI1.cjs → data-list-Bqf-fhMx.cjs} +3 -3
  139. package/dist/{data-list-Y42KyuI1.cjs.map → data-list-Bqf-fhMx.cjs.map} +1 -1
  140. package/dist/{data-list-CyeD_u-6.js → data-list-CEIYm7FY.js} +3 -3
  141. package/dist/{data-list-CyeD_u-6.js.map → data-list-CEIYm7FY.js.map} +1 -1
  142. package/dist/{data-list-skeleton-Bk9LI0J0.js → data-list-skeleton-CeyLefM5.js} +2 -2
  143. package/dist/{data-list-skeleton-Bk9LI0J0.js.map → data-list-skeleton-CeyLefM5.js.map} +1 -1
  144. package/dist/{data-list-skeleton-BXPfL0s7.cjs → data-list-skeleton-DuqQkzwC.cjs} +2 -2
  145. package/dist/{data-list-skeleton-BXPfL0s7.cjs.map → data-list-skeleton-DuqQkzwC.cjs.map} +1 -1
  146. package/dist/{data-list-spacer-C8z32twc.js → data-list-spacer-BH2DjRdk.js} +2 -2
  147. package/dist/{data-list-spacer-C8z32twc.js.map → data-list-spacer-BH2DjRdk.js.map} +1 -1
  148. package/dist/{data-list-spacer-BSg2hCx7.cjs → data-list-spacer-DFvaAEqo.cjs} +2 -2
  149. package/dist/{data-list-spacer-BSg2hCx7.cjs.map → data-list-spacer-DFvaAEqo.cjs.map} +1 -1
  150. package/dist/{data-list-top-C-pLBax7.cjs → data-list-top-CvD3KI8R.cjs} +2 -2
  151. package/dist/{data-list-top-C-pLBax7.cjs.map → data-list-top-CvD3KI8R.cjs.map} +1 -1
  152. package/dist/{data-list-top-DheFgb0M.js → data-list-top-CxUWL8gh.js} +2 -2
  153. package/dist/{data-list-top-DheFgb0M.js.map → data-list-top-CxUWL8gh.js.map} +1 -1
  154. package/dist/{data-panel-DuLf5j8S.js → data-panel-CbomKGJt.js} +2 -2
  155. package/dist/{data-panel-DuLf5j8S.js.map → data-panel-CbomKGJt.js.map} +1 -1
  156. package/dist/{data-panel-D7Qk4iwZ.cjs → data-panel-o-QLWuFV.cjs} +2 -2
  157. package/dist/{data-panel-D7Qk4iwZ.cjs.map → data-panel-o-QLWuFV.cjs.map} +1 -1
  158. package/dist/{date-time-range-picker-BDylIIzt.js → date-time-range-picker-B1zYIQTC.js} +56 -55
  159. package/dist/date-time-range-picker-B1zYIQTC.js.map +1 -0
  160. package/dist/{date-time-range-picker-UheN070q.cjs → date-time-range-picker-Bb-CGVEL.cjs} +56 -55
  161. package/dist/date-time-range-picker-Bb-CGVEL.cjs.map +1 -0
  162. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  163. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  164. package/dist/domains/chat/messages/dataset-save-action.cjs.js +11 -10
  165. package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
  166. package/dist/domains/chat/messages/dataset-save-action.es.js +11 -10
  167. package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
  168. package/dist/domains/chat/messages/message-row.cjs.js +1 -1
  169. package/dist/domains/chat/messages/message-row.es.js +1 -1
  170. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  171. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  172. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  173. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  174. package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
  175. package/dist/domains/chat/messages/skill-message.es.js +1 -1
  176. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  177. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  178. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +2 -2
  179. package/dist/domains/chat/tools/badges/agent-badge.es.js +2 -2
  180. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  181. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  182. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
  183. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +1 -1
  184. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
  185. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
  186. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
  187. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
  188. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
  189. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
  190. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  191. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  192. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +2 -2
  193. package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
  194. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +4 -4
  195. package/dist/domains/chat/tools/badges/workflow-badge.es.js +4 -4
  196. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  197. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  198. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  199. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  200. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +18 -16
  201. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js.map +1 -1
  202. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +18 -16
  203. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js.map +1 -1
  204. package/dist/domains/feedback/utils/feedback-refetch-interval.cjs.js +1 -1
  205. package/dist/domains/feedback/utils/feedback-refetch-interval.cjs.js.map +1 -1
  206. package/dist/domains/feedback/utils/feedback-refetch-interval.es.js +1 -1
  207. package/dist/domains/feedback/utils/feedback-refetch-interval.es.js.map +1 -1
  208. package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
  209. package/dist/domains/logs/components/log-data-panel.es.js +1 -1
  210. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  211. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  212. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  213. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  214. package/dist/domains/memory/components/observation-detail-view.cjs.js +5 -3
  215. package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
  216. package/dist/domains/memory/components/observation-detail-view.es.js +5 -3
  217. package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
  218. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  219. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  220. package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
  221. package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
  222. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
  223. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
  224. package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
  225. package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
  226. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +16 -15
  227. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js.map +1 -1
  228. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +16 -15
  229. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js.map +1 -1
  230. package/dist/domains/request-context/components/request-context-label.cjs.js +4 -3
  231. package/dist/domains/request-context/components/request-context-label.cjs.js.map +1 -1
  232. package/dist/domains/request-context/components/request-context-label.es.js +4 -3
  233. package/dist/domains/request-context/components/request-context-label.es.js.map +1 -1
  234. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  235. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  236. package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
  237. package/dist/domains/scores/components/span-scoring.es.js +1 -1
  238. package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -2
  239. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  240. package/dist/domains/scores/components/trace-scores-tab.es.js +1 -2
  241. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  242. package/dist/domains/scores/hooks/use-scorers.cjs.js +1 -1
  243. package/dist/domains/scores/hooks/use-scorers.cjs.js.map +1 -1
  244. package/dist/domains/scores/hooks/use-scorers.es.js +1 -1
  245. package/dist/domains/scores/hooks/use-scorers.es.js.map +1 -1
  246. package/dist/domains/scores/hooks/use-trace-span-scores.cjs.js +1 -1
  247. package/dist/domains/scores/hooks/use-trace-span-scores.cjs.js.map +1 -1
  248. package/dist/domains/scores/hooks/use-trace-span-scores.es.js +1 -1
  249. package/dist/domains/scores/hooks/use-trace-span-scores.es.js.map +1 -1
  250. package/dist/domains/traces/components/feedback-thread.cjs.js +1 -1
  251. package/dist/domains/traces/components/feedback-thread.es.js +1 -1
  252. package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
  253. package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
  254. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  255. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  256. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  257. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  258. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  259. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  260. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  261. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  262. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  263. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  264. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  265. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  266. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  267. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  268. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
  269. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
  270. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  271. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  272. package/dist/domains/traces/components/thread-trace/thread-trace-context.cjs.js.map +1 -1
  273. package/dist/domains/traces/components/thread-trace/thread-trace-context.es.js.map +1 -1
  274. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  275. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  276. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +7 -8
  277. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js.map +1 -1
  278. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +7 -8
  279. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js.map +1 -1
  280. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
  281. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
  282. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +23 -16
  283. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js.map +1 -1
  284. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +23 -16
  285. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js.map +1 -1
  286. package/dist/domains/traces/components/thread-trace/thread-trace-row-context.cjs.js.map +1 -1
  287. package/dist/domains/traces/components/thread-trace/thread-trace-row-context.es.js.map +1 -1
  288. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +3 -9
  289. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js.map +1 -1
  290. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +3 -9
  291. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js.map +1 -1
  292. package/dist/domains/traces/components/thread-trace.cjs.js +0 -2
  293. package/dist/domains/traces/components/thread-trace.cjs.js.map +1 -1
  294. package/dist/domains/traces/components/thread-trace.es.js +0 -2
  295. package/dist/domains/traces/components/thread-trace.es.js.map +1 -1
  296. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +20 -54
  297. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  298. package/dist/domains/traces/components/thread-view-by-trace.es.js +21 -55
  299. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  300. package/dist/domains/traces/components/trace-columns-menu.cjs.js +10 -11
  301. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  302. package/dist/domains/traces/components/trace-columns-menu.es.js +10 -11
  303. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  304. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +5 -9
  305. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  306. package/dist/domains/traces/components/trace-data-panel-view.es.js +6 -10
  307. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  308. package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -2
  309. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  310. package/dist/domains/traces/components/trace-data-panel.es.js +1 -2
  311. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  312. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  313. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  314. package/dist/domains/traces/components/trace-span-panel.cjs.js +0 -1
  315. package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
  316. package/dist/domains/traces/components/trace-span-panel.es.js +0 -1
  317. package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
  318. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  319. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  320. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -3
  321. package/dist/domains/traces/components/trace-thread-panel.cjs.js.map +1 -1
  322. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -3
  323. package/dist/domains/traces/components/trace-thread-panel.es.js.map +1 -1
  324. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  325. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  326. package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
  327. package/dist/domains/traces/components/traces-list-view.es.js +3 -3
  328. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -3
  329. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  330. package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -3
  331. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  332. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +2 -0
  333. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js.map +1 -1
  334. package/dist/domains/traces/hooks/use-traces-list-source.es.js +2 -0
  335. package/dist/domains/traces/hooks/use-traces-list-source.es.js.map +1 -1
  336. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  337. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  338. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
  339. package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
  340. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  341. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  342. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  343. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  344. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +1 -1
  345. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +1 -1
  346. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +7 -14
  347. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js.map +1 -1
  348. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +7 -14
  349. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js.map +1 -1
  350. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +39 -42
  351. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -1
  352. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +40 -43
  353. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -1
  354. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +1 -1
  355. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
  356. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  357. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  358. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  359. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  360. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +8 -16
  361. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js.map +1 -1
  362. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +9 -17
  363. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js.map +1 -1
  364. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +1 -1
  365. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +1 -1
  366. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +1 -1
  367. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
  368. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +2 -1
  369. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
  370. package/dist/domains/workflows/workflow/workflow-input-data.es.js +2 -1
  371. package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
  372. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
  373. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +1 -1
  374. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +2 -2
  375. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
  376. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +1 -1
  377. package/dist/domains/workflows/workflow/workflow-run-data.es.js +1 -1
  378. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  379. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  380. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +1 -1
  381. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +1 -1
  382. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +1 -1
  383. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
  384. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +8 -21
  385. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js.map +1 -1
  386. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +9 -22
  387. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js.map +1 -1
  388. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
  389. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  390. package/dist/ee/signals/components/entity-index-list.es.js +1 -3
  391. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  392. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +3 -4
  393. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  394. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +3 -4
  395. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  396. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +62 -68
  397. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js.map +1 -1
  398. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +62 -68
  399. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -1
  400. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
  401. package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
  402. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +13 -16
  403. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js.map +1 -1
  404. package/dist/ee/topics/components/topic-trace-summary-list.es.js +14 -17
  405. package/dist/ee/topics/components/topic-trace-summary-list.es.js.map +1 -1
  406. package/dist/field-BtvEQ68O.js +170 -0
  407. package/dist/field-BtvEQ68O.js.map +1 -0
  408. package/dist/field-control-aria-DB6y41tQ.js +26 -0
  409. package/dist/field-control-aria-DB6y41tQ.js.map +1 -0
  410. package/dist/field-control-aria-WzMGs0A4.cjs +31 -0
  411. package/dist/field-control-aria-WzMGs0A4.cjs.map +1 -0
  412. package/dist/{field-block-DtaPqBa3.cjs → field-error-id-4DYu4KZ2.cjs} +24 -4
  413. package/dist/field-error-id-4DYu4KZ2.cjs.map +1 -0
  414. package/dist/{field-block--PeppIRb.js → field-error-id-BSQLcfHo.js} +22 -3
  415. package/dist/field-error-id-BSQLcfHo.js.map +1 -0
  416. package/dist/field-ip9xiOVa.cjs +198 -0
  417. package/dist/field-ip9xiOVa.cjs.map +1 -0
  418. package/dist/{filter-bar-chip-CBlHsz4A.cjs → filter-bar-chip-BsWm7SQr.cjs} +2 -2
  419. package/dist/{filter-bar-chip-CBlHsz4A.cjs.map → filter-bar-chip-BsWm7SQr.cjs.map} +1 -1
  420. package/dist/{filter-bar-chip-DFOtEvpW.js → filter-bar-chip-Dmboyu1t.js} +2 -2
  421. package/dist/{filter-bar-chip-DFOtEvpW.js.map → filter-bar-chip-Dmboyu1t.js.map} +1 -1
  422. package/dist/form-ChOlos7g.cjs +12 -0
  423. package/dist/form-ChOlos7g.cjs.map +1 -0
  424. package/dist/form-uj2xap-j.js +10 -0
  425. package/dist/form-uj2xap-j.js.map +1 -0
  426. package/dist/{input-bd223EJW.cjs → input-D0UPyj6A.cjs} +16 -45
  427. package/dist/input-D0UPyj6A.cjs.map +1 -0
  428. package/dist/{input-CHghVv3k.js → input-D5_B67_r.js} +17 -27
  429. package/dist/input-D5_B67_r.js.map +1 -0
  430. package/dist/{input-group-BRhBfeHC.cjs → input-group-BgCXLSRV.cjs} +77 -96
  431. package/dist/input-group-BgCXLSRV.cjs.map +1 -0
  432. package/dist/{input-group-0G9ZX_cM.js → input-group-wzirc-1k.js} +78 -97
  433. package/dist/input-group-wzirc-1k.js.map +1 -0
  434. package/dist/keyboard/keyboard-dispatcher.cjs.js +2 -0
  435. package/dist/keyboard/keyboard-dispatcher.cjs.js.map +1 -1
  436. package/dist/keyboard/keyboard-dispatcher.es.js +2 -0
  437. package/dist/keyboard/keyboard-dispatcher.es.js.map +1 -1
  438. package/dist/keyboard/use-keydown.cjs.js +7 -1
  439. package/dist/keyboard/use-keydown.cjs.js.map +1 -1
  440. package/dist/keyboard/use-keydown.es.js +7 -1
  441. package/dist/keyboard/use-keydown.es.js.map +1 -1
  442. package/dist/layout/tabbed-container.cjs.js +3 -3
  443. package/dist/layout/tabbed-container.es.js +3 -3
  444. package/dist/lib/form/components/boolean-field.cjs.js +6 -6
  445. package/dist/lib/form/components/boolean-field.cjs.js.map +1 -1
  446. package/dist/lib/form/components/boolean-field.es.js +5 -5
  447. package/dist/lib/form/components/boolean-field.es.js.map +1 -1
  448. package/dist/lib/form/components/custom-array-field.cjs.js +1 -1
  449. package/dist/lib/form/components/custom-array-field.es.js +1 -1
  450. package/dist/lib/form/components/custom-auto-form-field.cjs.js +1 -2
  451. package/dist/lib/form/components/custom-auto-form-field.cjs.js.map +1 -1
  452. package/dist/lib/form/components/custom-auto-form-field.es.js +1 -2
  453. package/dist/lib/form/components/custom-auto-form-field.es.js.map +1 -1
  454. package/dist/lib/form/components/custom-object-field.cjs.js +1 -1
  455. package/dist/lib/form/components/custom-object-field.es.js +1 -1
  456. package/dist/lib/form/components/date-field.cjs.js +6 -3
  457. package/dist/lib/form/components/date-field.cjs.js.map +1 -1
  458. package/dist/lib/form/components/date-field.es.js +6 -3
  459. package/dist/lib/form/components/date-field.es.js.map +1 -1
  460. package/dist/lib/form/components/discriminated-union-field.cjs.js +1 -1
  461. package/dist/lib/form/components/discriminated-union-field.es.js +1 -1
  462. package/dist/lib/form/components/field-wrapper.cjs.js +30 -9
  463. package/dist/lib/form/components/field-wrapper.cjs.js.map +1 -1
  464. package/dist/lib/form/components/field-wrapper.es.js +30 -9
  465. package/dist/lib/form/components/field-wrapper.es.js.map +1 -1
  466. package/dist/lib/form/components/form.cjs.js +4 -4
  467. package/dist/lib/form/components/form.cjs.js.map +1 -1
  468. package/dist/lib/form/components/form.es.js +4 -4
  469. package/dist/lib/form/components/form.es.js.map +1 -1
  470. package/dist/lib/form/components/number-field.cjs.js +3 -4
  471. package/dist/lib/form/components/number-field.cjs.js.map +1 -1
  472. package/dist/lib/form/components/number-field.es.js +3 -4
  473. package/dist/lib/form/components/number-field.es.js.map +1 -1
  474. package/dist/lib/form/components/record-field.cjs.js +13 -2
  475. package/dist/lib/form/components/record-field.cjs.js.map +1 -1
  476. package/dist/lib/form/components/record-field.es.js +13 -2
  477. package/dist/lib/form/components/record-field.es.js.map +1 -1
  478. package/dist/lib/form/components/select-field.cjs.js +4 -19
  479. package/dist/lib/form/components/select-field.cjs.js.map +1 -1
  480. package/dist/lib/form/components/select-field.es.js +4 -19
  481. package/dist/lib/form/components/select-field.es.js.map +1 -1
  482. package/dist/lib/form/components/string-field.cjs.js +2 -4
  483. package/dist/lib/form/components/string-field.cjs.js.map +1 -1
  484. package/dist/lib/form/components/string-field.es.js +2 -4
  485. package/dist/lib/form/components/string-field.es.js.map +1 -1
  486. package/dist/lib/form/components/union-field.cjs.js +1 -1
  487. package/dist/lib/form/components/union-field.es.js +1 -1
  488. package/dist/lib/form/custom-auto-form.cjs.js +1 -1
  489. package/dist/lib/form/custom-auto-form.es.js +1 -1
  490. package/dist/lib/form/dynamic-form.cjs.js +0 -5
  491. package/dist/lib/form/dynamic-form.cjs.js.map +1 -1
  492. package/dist/lib/form/dynamic-form.es.js +0 -5
  493. package/dist/lib/form/dynamic-form.es.js.map +1 -1
  494. package/dist/{list-search-BzAIj0DB.cjs → list-search-CTGQJCh1.cjs} +14 -21
  495. package/dist/list-search-CTGQJCh1.cjs.map +1 -0
  496. package/dist/{list-search-DI1DH7vU.js → list-search-CmOCmTwL.js} +15 -22
  497. package/dist/list-search-CmOCmTwL.js.map +1 -0
  498. package/dist/{logs-data-list-CtHern11.cjs → logs-data-list-B9CAqAHD.cjs} +3 -3
  499. package/dist/{logs-data-list-CtHern11.cjs.map → logs-data-list-B9CAqAHD.cjs.map} +1 -1
  500. package/dist/{logs-data-list-ButZV-2H.js → logs-data-list-DfzdzgXB.js} +3 -3
  501. package/dist/{logs-data-list-ButZV-2H.js.map → logs-data-list-DfzdzgXB.js.map} +1 -1
  502. package/dist/{main-sidebar-link-active-buZAhlHo.js → main-sidebar-B0ivY7lW.js} +118 -6
  503. package/dist/main-sidebar-B0ivY7lW.js.map +1 -0
  504. package/dist/{main-sidebar-link-active-D8VSuJKx.cjs → main-sidebar-BWKVSRoQ.cjs} +117 -4
  505. package/dist/main-sidebar-BWKVSRoQ.cjs.map +1 -0
  506. package/dist/{markdown-renderer-CZV6neya.cjs → markdown-renderer-DPwN7Vtm.cjs} +2 -2
  507. package/dist/{markdown-renderer-CZV6neya.cjs.map → markdown-renderer-DPwN7Vtm.cjs.map} +1 -1
  508. package/dist/{markdown-renderer-Cy7Iwy1c.js → markdown-renderer-zvB6a8uj.js} +2 -2
  509. package/dist/{markdown-renderer-Cy7Iwy1c.js.map → markdown-renderer-zvB6a8uj.js.map} +1 -1
  510. package/dist/new/settings.cjs.js +2 -1
  511. package/dist/new/settings.cjs.js.map +1 -1
  512. package/dist/new/settings.es.js +1 -1
  513. package/dist/new/sidebar.cjs.js +34 -34
  514. package/dist/new/sidebar.cjs.js.map +1 -1
  515. package/dist/new/sidebar.es.js +2 -2
  516. package/dist/{plan-CvTAGIWv.js → plan-BtOryfz5.js} +2 -2
  517. package/dist/{plan-CvTAGIWv.js.map → plan-BtOryfz5.js.map} +1 -1
  518. package/dist/{plan-DsfNN3a0.cjs → plan-D8rM4i4S.cjs} +2 -2
  519. package/dist/{plan-DsfNN3a0.cjs.map → plan-D8rM4i4S.cjs.map} +1 -1
  520. package/dist/primitives/form-element.cjs.js +9 -1
  521. package/dist/primitives/form-element.cjs.js.map +1 -1
  522. package/dist/primitives/form-element.es.js +7 -2
  523. package/dist/primitives/form-element.es.js.map +1 -1
  524. package/dist/primitives/textarea-control.cjs.js +24 -0
  525. package/dist/primitives/textarea-control.cjs.js.map +1 -0
  526. package/dist/primitives/textarea-control.d.ts +2 -0
  527. package/dist/primitives/textarea-control.es.js +20 -0
  528. package/dist/primitives/textarea-control.es.js.map +1 -0
  529. package/dist/{property-filter-applied-C9verwDR.js → property-filter-applied-B_nfBryj.js} +2 -2
  530. package/dist/{property-filter-applied-C9verwDR.js.map → property-filter-applied-B_nfBryj.js.map} +1 -1
  531. package/dist/{property-filter-applied-Bp2z4KBv.cjs → property-filter-applied-CSLLo3VJ.cjs} +2 -2
  532. package/dist/{property-filter-applied-Bp2z4KBv.cjs.map → property-filter-applied-CSLLo3VJ.cjs.map} +1 -1
  533. package/dist/{radio-group-BdEPWGzi.cjs → radio-group-QV7yVrSX.cjs} +13 -2
  534. package/dist/radio-group-QV7yVrSX.cjs.map +1 -0
  535. package/dist/{radio-group-CFZXUXZ5.js → radio-group-bvm7Sqq_.js} +13 -2
  536. package/dist/radio-group-bvm7Sqq_.js.map +1 -0
  537. package/dist/{reasoning-activity-OM1-hbCV.js → reasoning-activity-6VkIbDT4.js} +2 -2
  538. package/dist/{reasoning-activity-OM1-hbCV.js.map → reasoning-activity-6VkIbDT4.js.map} +1 -1
  539. package/dist/{reasoning-activity-BVviIdMe.cjs → reasoning-activity-DaXMgyr3.cjs} +2 -2
  540. package/dist/{reasoning-activity-BVviIdMe.cjs.map → reasoning-activity-DaXMgyr3.cjs.map} +1 -1
  541. package/dist/search-input-BKXiYeed.js +48 -0
  542. package/dist/search-input-BKXiYeed.js.map +1 -0
  543. package/dist/search-input-T0orZ7Jf.cjs +50 -0
  544. package/dist/search-input-T0orZ7Jf.cjs.map +1 -0
  545. package/dist/{section-dBeXxS69.cjs → section-Byml9qxH.cjs} +2 -2
  546. package/dist/{section-dBeXxS69.cjs.map → section-Byml9qxH.cjs.map} +1 -1
  547. package/dist/{section-BfEsNViI.js → section-DTooysg2.js} +2 -2
  548. package/dist/{section-BfEsNViI.js.map → section-DTooysg2.js.map} +1 -1
  549. package/dist/{segmented-control-BxeiypPR.js → segmented-control-ClbeK8DF.js} +4 -1
  550. package/dist/segmented-control-ClbeK8DF.js.map +1 -0
  551. package/dist/{segmented-control--I3IgW21.cjs → segmented-control-DwLkp3TP.cjs} +4 -1
  552. package/dist/segmented-control-DwLkp3TP.cjs.map +1 -0
  553. package/dist/{select-DZeNf-kI.js → select--ArpXYDc.js} +6 -3
  554. package/dist/select--ArpXYDc.js.map +1 -0
  555. package/dist/{select-DBY9LQFQ.cjs → select-DJQYAVcm.cjs} +5 -2
  556. package/dist/select-DJQYAVcm.cjs.map +1 -0
  557. package/dist/{settings-row-C1JZDdz_.js → settings-row-B0jGFpVw.js} +46 -39
  558. package/dist/settings-row-B0jGFpVw.js.map +1 -0
  559. package/dist/{settings-row-C7YKfUgY.cjs → settings-row-Dt4WnnRf.cjs} +47 -39
  560. package/dist/settings-row-Dt4WnnRf.cjs.map +1 -0
  561. package/dist/{side-dialog-DCzCcZs6.js → side-dialog-DZJc85m3.js} +2 -2
  562. package/dist/{side-dialog-DCzCcZs6.js.map → side-dialog-DZJc85m3.js.map} +1 -1
  563. package/dist/{side-dialog-DFnD1498.cjs → side-dialog-lQUx6B_M.cjs} +2 -2
  564. package/dist/{side-dialog-DFnD1498.cjs.map → side-dialog-lQUx6B_M.cjs.map} +1 -1
  565. package/dist/{span-payload-primitives-DL1Kr0cu.js → span-payload-primitives-CGamdu2t.js} +2 -2
  566. package/dist/{span-payload-primitives-DL1Kr0cu.js.map → span-payload-primitives-CGamdu2t.js.map} +1 -1
  567. package/dist/{span-payload-primitives-D0mhsndj.cjs → span-payload-primitives-SkL3U9hR.cjs} +2 -2
  568. package/dist/{span-payload-primitives-D0mhsndj.cjs.map → span-payload-primitives-SkL3U9hR.cjs.map} +1 -1
  569. package/dist/src/domains/feedback/utils/feedback-refetch-interval.d.ts +2 -2
  570. package/dist/src/domains/request-context/components/request-context-label.d.ts +1 -2
  571. package/dist/src/domains/scores/hooks/use-scorers.d.ts +1 -1
  572. package/dist/src/domains/scores/hooks/use-trace-span-scores.d.ts +1 -1
  573. package/dist/src/domains/traces/components/thread-trace/index.d.ts +1 -5
  574. package/dist/src/domains/traces/components/thread-trace/thread-trace-context.d.ts +0 -2
  575. package/dist/src/domains/traces/components/thread-trace/thread-trace-root.d.ts +3 -6
  576. package/dist/src/domains/traces/components/thread-trace/thread-trace-row-context.d.ts +0 -1
  577. package/dist/src/domains/traces/components/thread-view-by-trace.d.ts +7 -6
  578. package/dist/src/domains/traces/components/trace-thread-panel.d.ts +2 -4
  579. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +3 -1
  580. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +3 -4
  581. package/dist/src/ds/components/Combobox/combobox.d.ts +4 -2
  582. package/dist/src/ds/components/Comment/comment-composer.d.ts +2 -2
  583. package/dist/src/ds/components/DateTimePicker/time-picker.d.ts +2 -1
  584. package/dist/src/ds/components/Field/field-control-aria.d.ts +30 -0
  585. package/dist/src/ds/components/Field/field.d.ts +39 -0
  586. package/dist/src/ds/components/Field/field.stories.d.ts +12 -0
  587. package/dist/src/ds/components/Field/index.d.ts +2 -0
  588. package/dist/src/ds/components/Form/form.d.ts +7 -0
  589. package/dist/src/ds/components/Form/form.stories.d.ts +7 -0
  590. package/dist/src/ds/components/Form/index.d.ts +1 -0
  591. package/dist/src/ds/components/FormFieldBlocks/block/field-block.d.ts +1 -0
  592. package/dist/src/ds/components/FormFieldBlocks/block/field-error-id.d.ts +1 -5
  593. package/dist/src/ds/components/FormFieldBlocks/fields/search-field-block.d.ts +1 -0
  594. package/dist/src/ds/components/FormFieldBlocks/fields/select-field-block.d.ts +1 -0
  595. package/dist/src/ds/components/FormFieldBlocks/fields/text-field-block.d.ts +1 -0
  596. package/dist/src/ds/components/FormFieldBlocks/fields/textarea-field-block.d.ts +1 -0
  597. package/dist/src/ds/components/FormFieldBlocks/layout/field-blocks-layout.d.ts +1 -0
  598. package/dist/src/ds/components/Input/input.d.ts +3 -10
  599. package/dist/src/ds/components/InputGroup/input-group.d.ts +15 -25
  600. package/dist/src/ds/components/JSONSchemaForm/json-schema-form-field-description.d.ts +6 -3
  601. package/dist/src/ds/components/JSONSchemaForm/json-schema-form-field-name.d.ts +6 -3
  602. package/dist/src/ds/components/JSONSchemaForm/json-schema-form-field-type.d.ts +10 -3
  603. package/dist/src/ds/components/Label/label.d.ts +1 -0
  604. package/dist/src/ds/components/ListSearch/list-search.d.ts +2 -2
  605. package/dist/src/ds/components/SearchInput/index.d.ts +1 -0
  606. package/dist/src/ds/components/SearchInput/search-input.d.ts +12 -0
  607. package/dist/src/ds/components/SearchInput/search-input.stories.d.ts +8 -0
  608. package/dist/src/ds/components/Textarea/textarea.d.ts +3 -10
  609. package/dist/src/ds/components/ai/ask-user/ask-user.d.ts +2 -1
  610. package/dist/src/ds/new/settings/index.d.ts +1 -1
  611. package/dist/src/ds/new/settings/settings-row.d.ts +11 -3
  612. package/dist/src/ds/new/settings/settings-row.stories.d.ts +321 -0
  613. package/dist/src/ds/primitives/form-element.d.ts +6 -1
  614. package/dist/src/ds/primitives/textarea-control.d.ts +3 -0
  615. package/dist/src/lib/form/components/form.d.ts +1 -1
  616. package/dist/src/lib/keyboard/keyboard-dispatcher.d.ts +2 -0
  617. package/dist/src/lib/keyboard/use-keydown.d.ts +6 -0
  618. package/dist/style.css +50 -16
  619. package/dist/{switch-Swt75_Sb.cjs → switch-BlE5ReVZ.cjs} +3 -2
  620. package/dist/switch-BlE5ReVZ.cjs.map +1 -0
  621. package/dist/{switch-88fWFfVz.js → switch-MZ1oHrmp.js} +4 -3
  622. package/dist/switch-MZ1oHrmp.js.map +1 -0
  623. package/dist/{textarea-B6wvS_CQ.js → textarea-CxPNKg2q.js} +14 -22
  624. package/dist/textarea-CxPNKg2q.js.map +1 -0
  625. package/dist/{textarea-gUBUqpol.cjs → textarea-DNV5Gs9A.cjs} +13 -40
  626. package/dist/textarea-DNV5Gs9A.cjs.map +1 -0
  627. package/dist/{time-picker-BElZALzM.js → time-picker-DRSAkFuj.js} +18 -21
  628. package/dist/time-picker-DRSAkFuj.js.map +1 -0
  629. package/dist/{time-picker-_QJdolkZ.cjs → time-picker-KE48KlpH.cjs} +18 -21
  630. package/dist/time-picker-KE48KlpH.cjs.map +1 -0
  631. package/dist/{tool-call-arguments-CQYR65FB.cjs → tool-call-arguments-BemKsB9v.cjs} +2 -2
  632. package/dist/{tool-call-arguments-CQYR65FB.cjs.map → tool-call-arguments-BemKsB9v.cjs.map} +1 -1
  633. package/dist/{tool-call-arguments-B1MghuMZ.js → tool-call-arguments-CtUKj7IB.js} +2 -2
  634. package/dist/{tool-call-arguments-B1MghuMZ.js.map → tool-call-arguments-CtUKj7IB.js.map} +1 -1
  635. package/dist/{tool-card-rxo27sve.cjs → tool-card-D9nDQgpg.cjs} +2 -2
  636. package/dist/{tool-card-rxo27sve.cjs.map → tool-card-D9nDQgpg.cjs.map} +1 -1
  637. package/dist/{tool-card-C_K5PwrK.js → tool-card-tK9zedNb.js} +2 -2
  638. package/dist/{tool-card-C_K5PwrK.js.map → tool-card-tK9zedNb.js.map} +1 -1
  639. package/dist/{traces-data-list-BsAYYJ9t.cjs → traces-data-list-Dd8vMPQK.cjs} +4 -4
  640. package/dist/{traces-data-list-BsAYYJ9t.cjs.map → traces-data-list-Dd8vMPQK.cjs.map} +1 -1
  641. package/dist/{traces-data-list-CnNpGVRN.js → traces-data-list-Fvl8mlih.js} +4 -4
  642. package/dist/{traces-data-list-CnNpGVRN.js.map → traces-data-list-Fvl8mlih.js.map} +1 -1
  643. package/dist/{use-workflow-graph-runtime-CIs2HzoP.cjs → use-workflow-graph-runtime-BNAtEa06.cjs} +2 -2
  644. package/dist/{use-workflow-graph-runtime-CIs2HzoP.cjs.map → use-workflow-graph-runtime-BNAtEa06.cjs.map} +1 -1
  645. package/dist/{use-workflow-graph-runtime-CexS1ECI.js → use-workflow-graph-runtime-JQwLwNBD.js} +2 -2
  646. package/dist/{use-workflow-graph-runtime-CexS1ECI.js.map → use-workflow-graph-runtime-JQwLwNBD.js.map} +1 -1
  647. package/dist/{workflow-code-dialog-content-BM4ZnrUr.js → workflow-code-dialog-content-3AcgitHa.js} +2 -2
  648. package/dist/{workflow-code-dialog-content-BM4ZnrUr.js.map → workflow-code-dialog-content-3AcgitHa.js.map} +1 -1
  649. package/dist/{workflow-code-dialog-content-BFm2IWDl.cjs → workflow-code-dialog-content-DyoN3850.cjs} +2 -2
  650. package/dist/{workflow-code-dialog-content-BFm2IWDl.cjs.map → workflow-code-dialog-content-DyoN3850.cjs.map} +1 -1
  651. package/dist/{workflow-data-edge-view-BpGLV-at.js → workflow-data-edge-view-C4nbA2Fa.js} +2 -2
  652. package/dist/{workflow-data-edge-view-BpGLV-at.js.map → workflow-data-edge-view-C4nbA2Fa.js.map} +1 -1
  653. package/dist/{workflow-data-edge-view-7f8O6pVW.cjs → workflow-data-edge-view-aHAZkZOH.cjs} +2 -2
  654. package/dist/{workflow-data-edge-view-7f8O6pVW.cjs.map → workflow-data-edge-view-aHAZkZOH.cjs.map} +1 -1
  655. package/dist/{workflow-edge-data-button-C6eyWbcG.js → workflow-edge-data-button-2aIkzgev.js} +2 -2
  656. package/dist/{workflow-edge-data-button-C6eyWbcG.js.map → workflow-edge-data-button-2aIkzgev.js.map} +1 -1
  657. package/dist/{workflow-edge-data-button-BOVRo4xO.cjs → workflow-edge-data-button-BFNO-TRL.cjs} +2 -2
  658. package/dist/{workflow-edge-data-button-BOVRo4xO.cjs.map → workflow-edge-data-button-BFNO-TRL.cjs.map} +1 -1
  659. package/package.json +11 -11
  660. package/dist/ask-user-CXu4b7Jw.cjs.map +0 -1
  661. package/dist/ask-user-Dlz2346n.js.map +0 -1
  662. package/dist/checkbox-CI8JtZKS.cjs.map +0 -1
  663. package/dist/checkbox-CQedzgsi.js.map +0 -1
  664. package/dist/code-block-BzoMjjtf.cjs.map +0 -1
  665. package/dist/code-block-DY5KsTGY.js.map +0 -1
  666. package/dist/code-editor-28chVxHw.js.map +0 -1
  667. package/dist/code-editor-B_wPmKPf.cjs.map +0 -1
  668. package/dist/combobox-B15qTrWO.js.map +0 -1
  669. package/dist/combobox-DJ0c4o4S.cjs.map +0 -1
  670. package/dist/combobox-styles-C2MEEpaG.js.map +0 -1
  671. package/dist/combobox-styles-DLflBH-G.cjs.map +0 -1
  672. package/dist/custom-auto-form-field-Brfb-0Te.cjs.map +0 -1
  673. package/dist/custom-auto-form-field-yEMBGXu-.js.map +0 -1
  674. package/dist/data-code-section-DWBfkrmO.cjs.map +0 -1
  675. package/dist/data-code-section-It6myyvZ.js.map +0 -1
  676. package/dist/date-time-range-picker-BDylIIzt.js.map +0 -1
  677. package/dist/date-time-range-picker-UheN070q.cjs.map +0 -1
  678. package/dist/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.cjs.js +0 -12
  679. package/dist/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.cjs.js.map +0 -1
  680. package/dist/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.d.ts +0 -2
  681. package/dist/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.es.js +0 -8
  682. package/dist/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.es.js.map +0 -1
  683. package/dist/field-block--PeppIRb.js.map +0 -1
  684. package/dist/field-block-DtaPqBa3.cjs.map +0 -1
  685. package/dist/field-block-error-msg-CkhEN6nU.cjs +0 -26
  686. package/dist/field-block-error-msg-CkhEN6nU.cjs.map +0 -1
  687. package/dist/field-block-error-msg-LXwhKzIq.js +0 -24
  688. package/dist/field-block-error-msg-LXwhKzIq.js.map +0 -1
  689. package/dist/field-error-id-B3Z2Zu5y.cjs +0 -6
  690. package/dist/field-error-id-B3Z2Zu5y.cjs.map +0 -1
  691. package/dist/field-error-id-D3yg1nBh.js +0 -4
  692. package/dist/field-error-id-D3yg1nBh.js.map +0 -1
  693. package/dist/input-CHghVv3k.js.map +0 -1
  694. package/dist/input-bd223EJW.cjs.map +0 -1
  695. package/dist/input-group-0G9ZX_cM.js.map +0 -1
  696. package/dist/input-group-BRhBfeHC.cjs.map +0 -1
  697. package/dist/label-DfAhywj_.cjs +0 -39
  698. package/dist/label-DfAhywj_.cjs.map +0 -1
  699. package/dist/label-Dxsz0dFs.js +0 -18
  700. package/dist/label-Dxsz0dFs.js.map +0 -1
  701. package/dist/list-search-BzAIj0DB.cjs.map +0 -1
  702. package/dist/list-search-DI1DH7vU.js.map +0 -1
  703. package/dist/main-sidebar-link-active-D8VSuJKx.cjs.map +0 -1
  704. package/dist/main-sidebar-link-active-buZAhlHo.js.map +0 -1
  705. package/dist/radio-group-BdEPWGzi.cjs.map +0 -1
  706. package/dist/radio-group-CFZXUXZ5.js.map +0 -1
  707. package/dist/search-field-block-BPJh5yuW.js +0 -125
  708. package/dist/search-field-block-BPJh5yuW.js.map +0 -1
  709. package/dist/search-field-block-DRa-ZNQj.cjs +0 -127
  710. package/dist/search-field-block-DRa-ZNQj.cjs.map +0 -1
  711. package/dist/segmented-control--I3IgW21.cjs.map +0 -1
  712. package/dist/segmented-control-BxeiypPR.js.map +0 -1
  713. package/dist/select-DBY9LQFQ.cjs.map +0 -1
  714. package/dist/select-DZeNf-kI.js.map +0 -1
  715. package/dist/select-field-block-C_x9wNpU.js +0 -59
  716. package/dist/select-field-block-C_x9wNpU.js.map +0 -1
  717. package/dist/select-field-block-D8AMzoQT.cjs +0 -61
  718. package/dist/select-field-block-D8AMzoQT.cjs.map +0 -1
  719. package/dist/settings-row-C1JZDdz_.js.map +0 -1
  720. package/dist/settings-row-C7YKfUgY.cjs.map +0 -1
  721. package/dist/src/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.d.ts +0 -8
  722. package/dist/src/ds/components/FormFieldBlocks/block/field-block.stories.d.ts +0 -8
  723. package/dist/src/ds/components/FormFieldBlocks/fields/search-field-block.stories.d.ts +0 -15
  724. package/dist/src/ds/components/FormFieldBlocks/fields/select-field-block.stories.d.ts +0 -15
  725. package/dist/src/ds/components/FormFieldBlocks/fields/text-field-block.stories.d.ts +0 -16
  726. package/dist/src/ds/components/FormFieldBlocks/layout/field-blocks-layout.stories.d.ts +0 -6
  727. package/dist/src/ds/components/Label/label.stories.d.ts +0 -8
  728. package/dist/switch-88fWFfVz.js.map +0 -1
  729. package/dist/switch-Swt75_Sb.cjs.map +0 -1
  730. package/dist/text-field-block-DUntfMPu.cjs +0 -58
  731. package/dist/text-field-block-DUntfMPu.cjs.map +0 -1
  732. package/dist/text-field-block-DZaGiu5D.js +0 -56
  733. package/dist/text-field-block-DZaGiu5D.js.map +0 -1
  734. package/dist/textarea-B6wvS_CQ.js.map +0 -1
  735. package/dist/textarea-field-block-BscOSlvI.js +0 -52
  736. package/dist/textarea-field-block-BscOSlvI.js.map +0 -1
  737. package/dist/textarea-field-block-CKAhmLrz.cjs +0 -54
  738. package/dist/textarea-field-block-CKAhmLrz.cjs.map +0 -1
  739. package/dist/textarea-gUBUqpol.cjs.map +0 -1
  740. package/dist/time-picker-BElZALzM.js.map +0 -1
  741. package/dist/time-picker-_QJdolkZ.cjs.map +0 -1
@@ -1,11 +1,13 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { MessageCircleQuestion, Check } from 'lucide-react';
3
- import { useId, useState } from 'react';
3
+ import { useState } from 'react';
4
4
  import { B as Badge } from './Badge-DmOqFpXW.js';
5
5
  import { B as Button } from './Button-D43ghVKt.js';
6
- import { C as Checkbox } from './checkbox-CQedzgsi.js';
7
- import { I as Input } from './input-CHghVv3k.js';
8
- import { R as RadioGroup, a as RadioGroupItem } from './radio-group-CFZXUXZ5.js';
6
+ import { C as Checkbox } from './checkbox-DcNIsz5L.js';
7
+ import { F as Field, e as FieldLabel, f as Fieldset, g as FieldsetLegend, d as FieldItem } from './field-BtvEQ68O.js';
8
+ import './field-control-aria-DB6y41tQ.js';
9
+ import { I as Input } from './input-D5_B67_r.js';
10
+ import { a as RadioGroupItem, R as RadioGroup } from './radio-group-bvm7Sqq_.js';
9
11
  import { T as Txt } from './Txt-BP1SRHmL.js';
10
12
  import { Icon } from './icons/Icon.es.js';
11
13
  import { raisedSurfaceStyle } from './primitives/raised-surface.es.js';
@@ -32,13 +34,12 @@ const AskUserOptionRow = ({
32
34
  disabled = false,
33
35
  className,
34
36
  ...props
35
- }) => /* @__PURE__ */ jsxs(
36
- "label",
37
+ }) => /* @__PURE__ */ jsx(FieldItem, { disabled, className: "contents", children: /* @__PURE__ */ jsxs(
38
+ FieldLabel,
37
39
  {
38
40
  "aria-disabled": disabled || void 0,
39
41
  className: cn(
40
- "state-layer flex items-start gap-2.5 rounded-lg bg-fill px-3 py-2",
41
- disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
42
+ "state-layer flex items-start gap-2.5 rounded-lg bg-fill px-3 py-2 data-disabled:opacity-50",
42
43
  className
43
44
  ),
44
45
  ...props,
@@ -50,7 +51,7 @@ const AskUserOptionRow = ({
50
51
  ] })
51
52
  ]
52
53
  }
53
- );
54
+ ) });
54
55
  const AskUserSubmit = ({ children = "Submit answer", ...props }) => /* @__PURE__ */ jsx(Button, { icon: /* @__PURE__ */ jsx(Check, {}), type: "button", size: "sm", variant: "primary", ...props, children });
55
56
  const AskUserPending = ({ children = "Submitting…", ...props }) => /* @__PURE__ */ jsx(Txt, { as: "span", role: "status", variant: "caption", tone: "muted", ...props, children });
56
57
  const AskUserOutput = ({ result, className, ...props }) => /* @__PURE__ */ jsxs(
@@ -79,7 +80,6 @@ const AskUserInput = ({
79
80
  footer,
80
81
  ...props
81
82
  }) => {
82
- const fieldId = useId();
83
83
  const [text, setText] = useState("");
84
84
  const [selected, setSelected] = useState([]);
85
85
  if (result || isAnswered) {
@@ -105,28 +105,29 @@ const AskUserInput = ({
105
105
  return /* @__PURE__ */ jsxs(AskUserContainer, { "data-testid": "ask-user", ...props, children: [
106
106
  /* @__PURE__ */ jsx(AskUserLabel, {}),
107
107
  /* @__PURE__ */ jsxs(AskUserBody, { children: [
108
- /* @__PURE__ */ jsx(AskUserQuestion, { as: "label", htmlFor: fieldId, className: "mb-2 block", children: payload.question }),
109
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
110
- /* @__PURE__ */ jsx(
111
- Input,
112
- {
113
- id: fieldId,
114
- value: text,
115
- onChange: (event) => setText(event.target.value),
116
- onKeyDown: handleTextKeyDown,
117
- placeholder: "Type your answer...",
118
- disabled: isSubmitting,
119
- size: "sm"
120
- }
121
- ),
122
- /* @__PURE__ */ jsx(
123
- AskUserSubmit,
124
- {
125
- className: "shrink-0 whitespace-nowrap",
126
- disabled: isSubmitting || !text.trim(),
127
- onClick: submitText
128
- }
129
- )
108
+ /* @__PURE__ */ jsxs(Field, { children: [
109
+ /* @__PURE__ */ jsx(FieldLabel, { className: "text-subheading", children: payload.question }),
110
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
111
+ /* @__PURE__ */ jsx(
112
+ Input,
113
+ {
114
+ value: text,
115
+ onChange: (event) => setText(event.target.value),
116
+ onKeyDown: handleTextKeyDown,
117
+ placeholder: "Type your answer...",
118
+ disabled: isSubmitting,
119
+ size: "sm"
120
+ }
121
+ ),
122
+ /* @__PURE__ */ jsx(
123
+ AskUserSubmit,
124
+ {
125
+ className: "shrink-0 whitespace-nowrap",
126
+ disabled: isSubmitting || !text.trim(),
127
+ onClick: submitText
128
+ }
129
+ )
130
+ ] })
130
131
  ] }),
131
132
  isSubmitting ? /* @__PURE__ */ jsx(AskUserPending, { className: "mt-2 block" }) : null,
132
133
  footer
@@ -137,8 +138,8 @@ const AskUserInput = ({
137
138
  return /* @__PURE__ */ jsxs(AskUserContainer, { "data-testid": "ask-user", ...props, children: [
138
139
  /* @__PURE__ */ jsx(AskUserLabel, {}),
139
140
  /* @__PURE__ */ jsxs(AskUserBody, { children: [
140
- /* @__PURE__ */ jsx(AskUserQuestion, { id: fieldId, children: payload.question }),
141
- isMulti ? /* @__PURE__ */ jsxs("div", { role: "group", "aria-labelledby": fieldId, className: "grid gap-2", children: [
141
+ isMulti ? /* @__PURE__ */ jsxs(Fieldset, { className: "gap-2", children: [
142
+ /* @__PURE__ */ jsx(FieldsetLegend, { className: "mb-1 text-subheading", children: payload.question }),
142
143
  options.map((option) => /* @__PURE__ */ jsx(
143
144
  AskUserOptionRow,
144
145
  {
@@ -168,27 +169,35 @@ const AskUserInput = ({
168
169
  children: "Submit answer"
169
170
  }
170
171
  )
171
- ] }) : /* @__PURE__ */ jsx(
172
- RadioGroup,
172
+ ] }) : /* @__PURE__ */ jsxs(
173
+ Fieldset,
173
174
  {
174
- "aria-labelledby": fieldId,
175
- disabled: isSubmitting,
176
- value: selected[0] ?? null,
177
- onValueChange: (value) => {
178
- const label = String(value);
179
- setSelected([label]);
180
- onSubmit(label);
181
- },
182
- children: options.map((option) => /* @__PURE__ */ jsx(
183
- AskUserOptionRow,
175
+ className: "gap-2",
176
+ render: /* @__PURE__ */ jsx(
177
+ RadioGroup,
184
178
  {
185
- label: option.label,
186
- description: option.description,
187
179
  disabled: isSubmitting,
188
- control: /* @__PURE__ */ jsx(RadioGroupItem, { className: "mt-0.5", value: option.label })
189
- },
190
- option.label
191
- ))
180
+ value: selected[0] ?? null,
181
+ onValueChange: (value) => {
182
+ const label = String(value);
183
+ setSelected([label]);
184
+ onSubmit(label);
185
+ }
186
+ }
187
+ ),
188
+ children: [
189
+ /* @__PURE__ */ jsx(FieldsetLegend, { className: "mb-1 text-subheading", children: payload.question }),
190
+ options.map((option) => /* @__PURE__ */ jsx(
191
+ AskUserOptionRow,
192
+ {
193
+ label: option.label,
194
+ description: option.description,
195
+ disabled: isSubmitting,
196
+ control: /* @__PURE__ */ jsx(RadioGroupItem, { className: "mt-0.5", value: option.label })
197
+ },
198
+ option.label
199
+ ))
200
+ ]
192
201
  }
193
202
  ),
194
203
  isSubmitting ? /* @__PURE__ */ jsx(AskUserPending, { className: "mt-3 block" }) : null,
@@ -203,4 +212,4 @@ const AskUser = ({ payload, ...props }) => {
203
212
  };
204
213
 
205
214
  export { AskUser as A, AskUserBody as a, AskUserContainer as b, AskUserLabel as c, AskUserOptionRow as d, AskUserOutput as e, AskUserPending as f, AskUserQuestion as g, AskUserSubmit as h };
206
- //# sourceMappingURL=ask-user-Dlz2346n.js.map
215
+ //# sourceMappingURL=ask-user-DE8TaPhb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-user-DE8TaPhb.js","sources":["../src/ds/components/ai/ask-user/ask-user.tsx"],"sourcesContent":["import { Check, MessageCircleQuestion } from 'lucide-react';\nimport { useState } from 'react';\nimport type { ComponentProps, KeyboardEvent, ReactNode } from 'react';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Checkbox } from '@/ds/components/Checkbox';\nimport { Field, FieldItem, FieldLabel, Fieldset, FieldsetLegend } from '@/ds/components/Field';\nimport type { FieldLabelProps } from '@/ds/components/Field';\nimport { Input } from '@/ds/components/Input';\nimport { RadioGroup, RadioGroupItem } from '@/ds/components/RadioGroup';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons/Icon';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport type AskUserSelectionMode = 'single_select' | 'multi_select';\nexport type AskUserAnswer = string | string[];\n\nexport interface AskUserOption {\n label: string;\n description?: string;\n}\n\nexport interface AskUserPayload {\n question: string;\n options?: AskUserOption[];\n selectionMode?: AskUserSelectionMode;\n}\n\nexport interface AskUserResult {\n content: string;\n isError?: boolean;\n}\n\nexport const AskUserContainer = ({ className, ...props }: ComponentProps<'div'>) => (\n <div\n data-slot=\"ask-user\"\n className={cn(raisedSurfaceStyle, 'w-full overflow-hidden rounded-xl', className)}\n {...props}\n />\n);\n\nexport const AskUserLabel = ({ children = 'Question', className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-label\" className={cn('flex min-h-10 items-center gap-2 px-4 pt-3', className)} {...props}>\n <Icon size=\"xs\" className=\"text-muted-foreground\">\n <MessageCircleQuestion />\n </Icon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {children}\n </Txt>\n </div>\n);\n\nexport const AskUserBody = ({ className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-body\" className={cn('px-4 pt-1 pb-4', className)} {...props} />\n);\n\nexport const AskUserQuestion = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"p\" variant=\"subheading\" tone=\"ink\" {...props} className={cn('mb-3', className)} />\n);\n\nexport interface AskUserOptionRowProps extends Omit<FieldLabelProps, 'children'> {\n control: ReactNode;\n label: string;\n description?: string;\n disabled?: boolean;\n}\n\nexport const AskUserOptionRow = ({\n control,\n label,\n description,\n disabled = false,\n className,\n ...props\n}: AskUserOptionRowProps) => (\n <FieldItem disabled={disabled} className=\"contents\">\n <FieldLabel\n // state-layer's wash only stops at :disabled/aria-disabled, and a <label> is neither\n aria-disabled={disabled || undefined}\n className={cn(\n 'state-layer flex items-start gap-2.5 rounded-lg bg-fill px-3 py-2 data-disabled:opacity-50',\n className,\n )}\n {...props}\n >\n {control}\n <span className=\"grid gap-0.5\">\n <Txt as=\"span\" variant=\"body\" tone=\"ink\">\n {label}\n </Txt>\n {description ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n </span>\n </FieldLabel>\n </FieldItem>\n);\n\nexport type AskUserSubmitProps = Omit<ComponentProps<typeof Button>, 'children'> & { children?: ReactNode };\n\nexport const AskUserSubmit = ({ children = 'Submit answer', ...props }: AskUserSubmitProps) => (\n <Button icon={<Check />} type=\"button\" size=\"sm\" variant=\"primary\" {...props}>\n {children}\n </Button>\n);\n\nexport const AskUserPending = ({ children = 'Submitting…', ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" role=\"status\" variant=\"caption\" tone=\"muted\" {...props}>\n {children}\n </Txt>\n);\n\nexport interface AskUserOutputProps extends ComponentProps<'div'> {\n result: AskUserResult;\n}\n\nexport const AskUserOutput = ({ result, className, ...props }: AskUserOutputProps) => (\n <div\n data-slot=\"ask-user-output\"\n role={result.isError ? 'alert' : 'status'}\n className={cn('grid gap-2 rounded-lg bg-fill p-3', className)}\n {...props}\n >\n <Badge size=\"xs\" variant={result.isError ? 'destructive' : 'success'} className=\"justify-self-start\">\n {result.isError ? 'Error' : 'Answered'}\n </Badge>\n <Txt as=\"p\" variant=\"body\" tone=\"ink\" className={cn(result.isError && 'text-destructive-foreground')}>\n {result.content}\n </Txt>\n </div>\n);\n\nexport interface AskUserProps extends Omit<ComponentProps<typeof AskUserContainer>, 'children' | 'onSubmit'> {\n payload: AskUserPayload;\n result?: AskUserResult;\n isAnswered?: boolean;\n isSubmitting?: boolean;\n onSubmit: (answer: AskUserAnswer) => void;\n footer?: ReactNode;\n}\n\nconst validOptions = (options: AskUserPayload['options']): AskUserOption[] =>\n options?.filter((option): option is AskUserOption =>\n Boolean(option && typeof option.label === 'string' && option.label),\n ) ?? [];\n\ninterface AskUserInputProps extends AskUserProps {\n options: AskUserOption[];\n}\n\nconst AskUserInput = ({\n payload,\n options,\n result,\n isAnswered = false,\n isSubmitting = false,\n onSubmit,\n footer,\n ...props\n}: AskUserInputProps) => {\n const [text, setText] = useState('');\n const [selected, setSelected] = useState<string[]>([]);\n\n if (result || isAnswered) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion>{payload.question}</AskUserQuestion>\n {result ? <AskUserOutput result={result} /> : <Badge variant=\"success\">Answered</Badge>}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const submitText = () => {\n const answer = text.trim();\n if (answer && !isSubmitting) onSubmit(answer);\n };\n\n const handleTextKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n submitText();\n }\n };\n\n if (options.length === 0) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <Field>\n <FieldLabel className=\"text-subheading\">{payload.question}</FieldLabel>\n <div className=\"flex items-center gap-2\">\n <Input\n value={text}\n onChange={event => setText(event.target.value)}\n onKeyDown={handleTextKeyDown}\n placeholder=\"Type your answer...\"\n disabled={isSubmitting}\n size=\"sm\"\n />\n <AskUserSubmit\n className=\"shrink-0 whitespace-nowrap\"\n disabled={isSubmitting || !text.trim()}\n onClick={submitText}\n />\n </div>\n </Field>\n {isSubmitting ? <AskUserPending className=\"mt-2 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const isMulti = payload.selectionMode === 'multi_select';\n\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n {isMulti ? (\n <Fieldset className=\"gap-2\">\n <FieldsetLegend className=\"mb-1 text-subheading\">{payload.question}</FieldsetLegend>\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={\n <Checkbox\n className=\"mt-0.5\"\n disabled={isSubmitting}\n checked={selected.includes(option.label)}\n onCheckedChange={() =>\n setSelected(current =>\n current.includes(option.label)\n ? current.filter(selectedLabel => selectedLabel !== option.label)\n : [...current, option.label],\n )\n }\n />\n }\n />\n ))}\n <AskUserSubmit\n className=\"mt-1 justify-self-start\"\n disabled={isSubmitting || selected.length === 0}\n onClick={() => onSubmit(selected)}\n >\n Submit answer\n </AskUserSubmit>\n </Fieldset>\n ) : (\n <Fieldset\n className=\"gap-2\"\n render={\n <RadioGroup\n disabled={isSubmitting}\n value={selected[0] ?? null}\n onValueChange={value => {\n const label = String(value);\n setSelected([label]);\n onSubmit(label);\n }}\n />\n }\n >\n <FieldsetLegend className=\"mb-1 text-subheading\">{payload.question}</FieldsetLegend>\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={<RadioGroupItem className=\"mt-0.5\" value={option.label} />}\n />\n ))}\n </Fieldset>\n )}\n {isSubmitting ? <AskUserPending className=\"mt-3 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n};\n\nexport const AskUser = ({ payload, ...props }: AskUserProps) => {\n const options = validOptions(payload.options);\n const payloadKey = JSON.stringify([payload.question, options.map(option => option.label), payload.selectionMode]);\n\n return <AskUserInput key={payloadKey} payload={payload} options={options} {...props} />;\n};\n"],"names":[],"mappings":"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"}
@@ -5,9 +5,11 @@ const lucideReact = require('lucide-react');
5
5
  const React = require('react');
6
6
  const Badge = require('./Badge-D3EctKQo.cjs');
7
7
  const Button = require('./Button-CXhSUBxN.cjs');
8
- const checkbox = require('./checkbox-CI8JtZKS.cjs');
9
- const input = require('./input-bd223EJW.cjs');
10
- const radioGroup = require('./radio-group-BdEPWGzi.cjs');
8
+ const checkbox = require('./checkbox-Bkobte27.cjs');
9
+ const field = require('./field-ip9xiOVa.cjs');
10
+ require('./field-control-aria-WzMGs0A4.cjs');
11
+ const input = require('./input-D0UPyj6A.cjs');
12
+ const radioGroup = require('./radio-group-QV7yVrSX.cjs');
11
13
  const Txt = require('./Txt-DPmEpNbp.cjs');
12
14
  const icons_Icon = require('./icons/Icon.cjs.js');
13
15
  const primitives_raisedSurface = require('./primitives/raised-surface.cjs.js');
@@ -34,13 +36,12 @@ const AskUserOptionRow = ({
34
36
  disabled = false,
35
37
  className,
36
38
  ...props
37
- }) => /* @__PURE__ */ jsxRuntime.jsxs(
38
- "label",
39
+ }) => /* @__PURE__ */ jsxRuntime.jsx(field.FieldItem, { disabled, className: "contents", children: /* @__PURE__ */ jsxRuntime.jsxs(
40
+ field.FieldLabel,
39
41
  {
40
42
  "aria-disabled": disabled || void 0,
41
43
  className: utils_cn.cn(
42
- "state-layer flex items-start gap-2.5 rounded-lg bg-fill px-3 py-2",
43
- disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
44
+ "state-layer flex items-start gap-2.5 rounded-lg bg-fill px-3 py-2 data-disabled:opacity-50",
44
45
  className
45
46
  ),
46
47
  ...props,
@@ -52,7 +53,7 @@ const AskUserOptionRow = ({
52
53
  ] })
53
54
  ]
54
55
  }
55
- );
56
+ ) });
56
57
  const AskUserSubmit = ({ children = "Submit answer", ...props }) => /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, {}), type: "button", size: "sm", variant: "primary", ...props, children });
57
58
  const AskUserPending = ({ children = "Submitting…", ...props }) => /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "span", role: "status", variant: "caption", tone: "muted", ...props, children });
58
59
  const AskUserOutput = ({ result, className, ...props }) => /* @__PURE__ */ jsxRuntime.jsxs(
@@ -81,7 +82,6 @@ const AskUserInput = ({
81
82
  footer,
82
83
  ...props
83
84
  }) => {
84
- const fieldId = React.useId();
85
85
  const [text, setText] = React.useState("");
86
86
  const [selected, setSelected] = React.useState([]);
87
87
  if (result || isAnswered) {
@@ -107,28 +107,29 @@ const AskUserInput = ({
107
107
  return /* @__PURE__ */ jsxRuntime.jsxs(AskUserContainer, { "data-testid": "ask-user", ...props, children: [
108
108
  /* @__PURE__ */ jsxRuntime.jsx(AskUserLabel, {}),
109
109
  /* @__PURE__ */ jsxRuntime.jsxs(AskUserBody, { children: [
110
- /* @__PURE__ */ jsxRuntime.jsx(AskUserQuestion, { as: "label", htmlFor: fieldId, className: "mb-2 block", children: payload.question }),
111
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
112
- /* @__PURE__ */ jsxRuntime.jsx(
113
- input.Input,
114
- {
115
- id: fieldId,
116
- value: text,
117
- onChange: (event) => setText(event.target.value),
118
- onKeyDown: handleTextKeyDown,
119
- placeholder: "Type your answer...",
120
- disabled: isSubmitting,
121
- size: "sm"
122
- }
123
- ),
124
- /* @__PURE__ */ jsxRuntime.jsx(
125
- AskUserSubmit,
126
- {
127
- className: "shrink-0 whitespace-nowrap",
128
- disabled: isSubmitting || !text.trim(),
129
- onClick: submitText
130
- }
131
- )
110
+ /* @__PURE__ */ jsxRuntime.jsxs(field.Field, { children: [
111
+ /* @__PURE__ */ jsxRuntime.jsx(field.FieldLabel, { className: "text-subheading", children: payload.question }),
112
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
113
+ /* @__PURE__ */ jsxRuntime.jsx(
114
+ input.Input,
115
+ {
116
+ value: text,
117
+ onChange: (event) => setText(event.target.value),
118
+ onKeyDown: handleTextKeyDown,
119
+ placeholder: "Type your answer...",
120
+ disabled: isSubmitting,
121
+ size: "sm"
122
+ }
123
+ ),
124
+ /* @__PURE__ */ jsxRuntime.jsx(
125
+ AskUserSubmit,
126
+ {
127
+ className: "shrink-0 whitespace-nowrap",
128
+ disabled: isSubmitting || !text.trim(),
129
+ onClick: submitText
130
+ }
131
+ )
132
+ ] })
132
133
  ] }),
133
134
  isSubmitting ? /* @__PURE__ */ jsxRuntime.jsx(AskUserPending, { className: "mt-2 block" }) : null,
134
135
  footer
@@ -139,8 +140,8 @@ const AskUserInput = ({
139
140
  return /* @__PURE__ */ jsxRuntime.jsxs(AskUserContainer, { "data-testid": "ask-user", ...props, children: [
140
141
  /* @__PURE__ */ jsxRuntime.jsx(AskUserLabel, {}),
141
142
  /* @__PURE__ */ jsxRuntime.jsxs(AskUserBody, { children: [
142
- /* @__PURE__ */ jsxRuntime.jsx(AskUserQuestion, { id: fieldId, children: payload.question }),
143
- isMulti ? /* @__PURE__ */ jsxRuntime.jsxs("div", { role: "group", "aria-labelledby": fieldId, className: "grid gap-2", children: [
143
+ isMulti ? /* @__PURE__ */ jsxRuntime.jsxs(field.Fieldset, { className: "gap-2", children: [
144
+ /* @__PURE__ */ jsxRuntime.jsx(field.FieldsetLegend, { className: "mb-1 text-subheading", children: payload.question }),
144
145
  options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
145
146
  AskUserOptionRow,
146
147
  {
@@ -170,27 +171,35 @@ const AskUserInput = ({
170
171
  children: "Submit answer"
171
172
  }
172
173
  )
173
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(
174
- radioGroup.RadioGroup,
174
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(
175
+ field.Fieldset,
175
176
  {
176
- "aria-labelledby": fieldId,
177
- disabled: isSubmitting,
178
- value: selected[0] ?? null,
179
- onValueChange: (value) => {
180
- const label = String(value);
181
- setSelected([label]);
182
- onSubmit(label);
183
- },
184
- children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
185
- AskUserOptionRow,
177
+ className: "gap-2",
178
+ render: /* @__PURE__ */ jsxRuntime.jsx(
179
+ radioGroup.RadioGroup,
186
180
  {
187
- label: option.label,
188
- description: option.description,
189
181
  disabled: isSubmitting,
190
- control: /* @__PURE__ */ jsxRuntime.jsx(radioGroup.RadioGroupItem, { className: "mt-0.5", value: option.label })
191
- },
192
- option.label
193
- ))
182
+ value: selected[0] ?? null,
183
+ onValueChange: (value) => {
184
+ const label = String(value);
185
+ setSelected([label]);
186
+ onSubmit(label);
187
+ }
188
+ }
189
+ ),
190
+ children: [
191
+ /* @__PURE__ */ jsxRuntime.jsx(field.FieldsetLegend, { className: "mb-1 text-subheading", children: payload.question }),
192
+ options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
193
+ AskUserOptionRow,
194
+ {
195
+ label: option.label,
196
+ description: option.description,
197
+ disabled: isSubmitting,
198
+ control: /* @__PURE__ */ jsxRuntime.jsx(radioGroup.RadioGroupItem, { className: "mt-0.5", value: option.label })
199
+ },
200
+ option.label
201
+ ))
202
+ ]
194
203
  }
195
204
  ),
196
205
  isSubmitting ? /* @__PURE__ */ jsxRuntime.jsx(AskUserPending, { className: "mt-3 block" }) : null,
@@ -213,4 +222,4 @@ exports.AskUserOutput = AskUserOutput;
213
222
  exports.AskUserPending = AskUserPending;
214
223
  exports.AskUserQuestion = AskUserQuestion;
215
224
  exports.AskUserSubmit = AskUserSubmit;
216
- //# sourceMappingURL=ask-user-CXu4b7Jw.cjs.map
225
+ //# sourceMappingURL=ask-user-XYY0fUoI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-user-XYY0fUoI.cjs","sources":["../src/ds/components/ai/ask-user/ask-user.tsx"],"sourcesContent":["import { Check, MessageCircleQuestion } from 'lucide-react';\nimport { useState } from 'react';\nimport type { ComponentProps, KeyboardEvent, ReactNode } from 'react';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Checkbox } from '@/ds/components/Checkbox';\nimport { Field, FieldItem, FieldLabel, Fieldset, FieldsetLegend } from '@/ds/components/Field';\nimport type { FieldLabelProps } from '@/ds/components/Field';\nimport { Input } from '@/ds/components/Input';\nimport { RadioGroup, RadioGroupItem } from '@/ds/components/RadioGroup';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons/Icon';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport type AskUserSelectionMode = 'single_select' | 'multi_select';\nexport type AskUserAnswer = string | string[];\n\nexport interface AskUserOption {\n label: string;\n description?: string;\n}\n\nexport interface AskUserPayload {\n question: string;\n options?: AskUserOption[];\n selectionMode?: AskUserSelectionMode;\n}\n\nexport interface AskUserResult {\n content: string;\n isError?: boolean;\n}\n\nexport const AskUserContainer = ({ className, ...props }: ComponentProps<'div'>) => (\n <div\n data-slot=\"ask-user\"\n className={cn(raisedSurfaceStyle, 'w-full overflow-hidden rounded-xl', className)}\n {...props}\n />\n);\n\nexport const AskUserLabel = ({ children = 'Question', className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-label\" className={cn('flex min-h-10 items-center gap-2 px-4 pt-3', className)} {...props}>\n <Icon size=\"xs\" className=\"text-muted-foreground\">\n <MessageCircleQuestion />\n </Icon>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {children}\n </Txt>\n </div>\n);\n\nexport const AskUserBody = ({ className, ...props }: ComponentProps<'div'>) => (\n <div data-slot=\"ask-user-body\" className={cn('px-4 pt-1 pb-4', className)} {...props} />\n);\n\nexport const AskUserQuestion = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"p\" variant=\"subheading\" tone=\"ink\" {...props} className={cn('mb-3', className)} />\n);\n\nexport interface AskUserOptionRowProps extends Omit<FieldLabelProps, 'children'> {\n control: ReactNode;\n label: string;\n description?: string;\n disabled?: boolean;\n}\n\nexport const AskUserOptionRow = ({\n control,\n label,\n description,\n disabled = false,\n className,\n ...props\n}: AskUserOptionRowProps) => (\n <FieldItem disabled={disabled} className=\"contents\">\n <FieldLabel\n // state-layer's wash only stops at :disabled/aria-disabled, and a <label> is neither\n aria-disabled={disabled || undefined}\n className={cn(\n 'state-layer flex items-start gap-2.5 rounded-lg bg-fill px-3 py-2 data-disabled:opacity-50',\n className,\n )}\n {...props}\n >\n {control}\n <span className=\"grid gap-0.5\">\n <Txt as=\"span\" variant=\"body\" tone=\"ink\">\n {label}\n </Txt>\n {description ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n </span>\n </FieldLabel>\n </FieldItem>\n);\n\nexport type AskUserSubmitProps = Omit<ComponentProps<typeof Button>, 'children'> & { children?: ReactNode };\n\nexport const AskUserSubmit = ({ children = 'Submit answer', ...props }: AskUserSubmitProps) => (\n <Button icon={<Check />} type=\"button\" size=\"sm\" variant=\"primary\" {...props}>\n {children}\n </Button>\n);\n\nexport const AskUserPending = ({ children = 'Submitting…', ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" role=\"status\" variant=\"caption\" tone=\"muted\" {...props}>\n {children}\n </Txt>\n);\n\nexport interface AskUserOutputProps extends ComponentProps<'div'> {\n result: AskUserResult;\n}\n\nexport const AskUserOutput = ({ result, className, ...props }: AskUserOutputProps) => (\n <div\n data-slot=\"ask-user-output\"\n role={result.isError ? 'alert' : 'status'}\n className={cn('grid gap-2 rounded-lg bg-fill p-3', className)}\n {...props}\n >\n <Badge size=\"xs\" variant={result.isError ? 'destructive' : 'success'} className=\"justify-self-start\">\n {result.isError ? 'Error' : 'Answered'}\n </Badge>\n <Txt as=\"p\" variant=\"body\" tone=\"ink\" className={cn(result.isError && 'text-destructive-foreground')}>\n {result.content}\n </Txt>\n </div>\n);\n\nexport interface AskUserProps extends Omit<ComponentProps<typeof AskUserContainer>, 'children' | 'onSubmit'> {\n payload: AskUserPayload;\n result?: AskUserResult;\n isAnswered?: boolean;\n isSubmitting?: boolean;\n onSubmit: (answer: AskUserAnswer) => void;\n footer?: ReactNode;\n}\n\nconst validOptions = (options: AskUserPayload['options']): AskUserOption[] =>\n options?.filter((option): option is AskUserOption =>\n Boolean(option && typeof option.label === 'string' && option.label),\n ) ?? [];\n\ninterface AskUserInputProps extends AskUserProps {\n options: AskUserOption[];\n}\n\nconst AskUserInput = ({\n payload,\n options,\n result,\n isAnswered = false,\n isSubmitting = false,\n onSubmit,\n footer,\n ...props\n}: AskUserInputProps) => {\n const [text, setText] = useState('');\n const [selected, setSelected] = useState<string[]>([]);\n\n if (result || isAnswered) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <AskUserQuestion>{payload.question}</AskUserQuestion>\n {result ? <AskUserOutput result={result} /> : <Badge variant=\"success\">Answered</Badge>}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const submitText = () => {\n const answer = text.trim();\n if (answer && !isSubmitting) onSubmit(answer);\n };\n\n const handleTextKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n submitText();\n }\n };\n\n if (options.length === 0) {\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n <Field>\n <FieldLabel className=\"text-subheading\">{payload.question}</FieldLabel>\n <div className=\"flex items-center gap-2\">\n <Input\n value={text}\n onChange={event => setText(event.target.value)}\n onKeyDown={handleTextKeyDown}\n placeholder=\"Type your answer...\"\n disabled={isSubmitting}\n size=\"sm\"\n />\n <AskUserSubmit\n className=\"shrink-0 whitespace-nowrap\"\n disabled={isSubmitting || !text.trim()}\n onClick={submitText}\n />\n </div>\n </Field>\n {isSubmitting ? <AskUserPending className=\"mt-2 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n }\n\n const isMulti = payload.selectionMode === 'multi_select';\n\n return (\n <AskUserContainer data-testid=\"ask-user\" {...props}>\n <AskUserLabel />\n <AskUserBody>\n {isMulti ? (\n <Fieldset className=\"gap-2\">\n <FieldsetLegend className=\"mb-1 text-subheading\">{payload.question}</FieldsetLegend>\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={\n <Checkbox\n className=\"mt-0.5\"\n disabled={isSubmitting}\n checked={selected.includes(option.label)}\n onCheckedChange={() =>\n setSelected(current =>\n current.includes(option.label)\n ? current.filter(selectedLabel => selectedLabel !== option.label)\n : [...current, option.label],\n )\n }\n />\n }\n />\n ))}\n <AskUserSubmit\n className=\"mt-1 justify-self-start\"\n disabled={isSubmitting || selected.length === 0}\n onClick={() => onSubmit(selected)}\n >\n Submit answer\n </AskUserSubmit>\n </Fieldset>\n ) : (\n <Fieldset\n className=\"gap-2\"\n render={\n <RadioGroup\n disabled={isSubmitting}\n value={selected[0] ?? null}\n onValueChange={value => {\n const label = String(value);\n setSelected([label]);\n onSubmit(label);\n }}\n />\n }\n >\n <FieldsetLegend className=\"mb-1 text-subheading\">{payload.question}</FieldsetLegend>\n {options.map(option => (\n <AskUserOptionRow\n key={option.label}\n label={option.label}\n description={option.description}\n disabled={isSubmitting}\n control={<RadioGroupItem className=\"mt-0.5\" value={option.label} />}\n />\n ))}\n </Fieldset>\n )}\n {isSubmitting ? <AskUserPending className=\"mt-3 block\" /> : null}\n {footer}\n </AskUserBody>\n </AskUserContainer>\n );\n};\n\nexport const AskUser = ({ payload, ...props }: AskUserProps) => {\n const options = validOptions(payload.options);\n const payloadKey = JSON.stringify([payload.question, options.map(option => option.label), payload.selectionMode]);\n\n return <AskUserInput key={payloadKey} payload={payload} options={options} {...props} />;\n};\n"],"names":["jsx","cn","raisedSurfaceStyle","Icon","MessageCircleQuestion","Txt","FieldItem","jsxs","FieldLabel","Button","Check","Badge","useState","Field","Input","Fieldset","FieldsetLegend","Checkbox","RadioGroup","RadioGroupItem"],"mappings":"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"}
@@ -4,6 +4,7 @@ const jsxRuntime = require('react/jsx-runtime');
4
4
  const checkbox = require('@base-ui/react/checkbox');
5
5
  const lucideReact = require('lucide-react');
6
6
  const React = require('react');
7
+ const fieldControlAria = require('./field-control-aria-WzMGs0A4.cjs');
7
8
  const primitives_selectionControl = require('./primitives/selection-control.cjs.js');
8
9
  const utils_cn = require('./cn-DG0X1KEP.cjs');
9
10
 
@@ -36,6 +37,7 @@ const Checkbox = React__namespace.forwardRef(
36
37
  checked: isCheckedIndeterminate ? false : checked,
37
38
  indeterminate: indeterminate ?? isCheckedIndeterminate,
38
39
  "data-slot": "checkbox",
40
+ render: /* @__PURE__ */ jsxRuntime.jsx("span", { ...fieldControlAria.keepOwnAccessibleName(props) }),
39
41
  className: utils_cn.cn(
40
42
  "peer rounded-[0.3125rem]",
41
43
  primitives_selectionControl.selectionControlStyle,
@@ -97,4 +99,4 @@ function CheckboxIndicatorIcon() {
97
99
  }
98
100
 
99
101
  exports.Checkbox = Checkbox;
100
- //# sourceMappingURL=checkbox-CI8JtZKS.cjs.map
102
+ //# sourceMappingURL=checkbox-Bkobte27.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-Bkobte27.cjs","sources":["../src/ds/components/Checkbox/checkbox.tsx"],"sourcesContent":["import { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';\nimport { Check, Minus } from 'lucide-react';\nimport * as React from 'react';\n\nimport { keepOwnAccessibleName } from '@/ds/components/Field/field-control-aria';\nimport { selectionControlStyle } from '@/ds/primitives/selection-control';\nimport { cn } from '@/lib/utils';\n\n/**\n * Radix-style tri-state value for the controlled `checked` prop. Base UI splits\n * this into a strict `checked` boolean plus a separate `indeterminate` boolean —\n * we keep the Radix union here so existing consumers (which pass\n * `checked=\"indeterminate\"`) keep working without changes.\n *\n * `defaultChecked` is intentionally a plain boolean: an uncontrolled checkbox\n * cannot start \"indeterminate\" and then be toggled out of it (the indeterminate\n * state is inherently controlled), so `'indeterminate'` is not allowed there.\n */\nexport type CheckedState = boolean | 'indeterminate';\n\ntype CheckboxProps = Omit<CheckboxPrimitive.Root.Props, 'className' | 'checked'> & {\n className?: string;\n checked?: CheckedState;\n};\n\nconst Checkbox = React.forwardRef<HTMLSpanElement, CheckboxProps>(\n ({ className, checked, indeterminate, ...props }, ref) => {\n // Translate the Radix `'indeterminate'` sentinel into Base UI's dedicated\n // `indeterminate` prop while leaving `checked` as a boolean.\n const isCheckedIndeterminate = checked === 'indeterminate';\n\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n checked={isCheckedIndeterminate ? false : checked}\n indeterminate={indeterminate ?? isCheckedIndeterminate}\n data-slot=\"checkbox\"\n render={<span {...keepOwnAccessibleName(props)} />}\n className={cn(\n 'peer rounded-[0.3125rem]',\n selectionControlStyle,\n // Indeterminate is checkbox-only and mirrors the checked chip.\n 'data-[indeterminate]:border-foreground data-[indeterminate]:bg-foreground data-[indeterminate]:text-background',\n 'data-[indeterminate]:hover:border-foreground/90 data-[indeterminate]:hover:bg-foreground/90',\n 'data-[indeterminate]:active:border-foreground/75 data-[indeterminate]:active:bg-foreground/75',\n 'data-[disabled]:data-[indeterminate]:border-muted-foreground data-[disabled]:data-[indeterminate]:bg-muted-foreground data-[disabled]:data-[indeterminate]:text-background',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n keepMounted\n className={cn(\n 'group/checkbox-indicator flex items-center justify-center text-current',\n 'scale-75 opacity-0 transition-[opacity,transform] duration-200 ease-out-custom',\n 'data-[checked]:scale-100 data-[checked]:opacity-100',\n 'data-[indeterminate]:scale-100 data-[indeterminate]:opacity-100',\n 'data-[starting-style]:scale-75 data-[starting-style]:opacity-0',\n 'data-[ending-style]:scale-75 data-[ending-style]:opacity-0',\n )}\n >\n <CheckboxIndicatorIcon />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n },\n);\nCheckbox.displayName = 'Checkbox';\n\n/**\n * Picks the checkmark vs. the dash based on the Indicator's data attributes.\n * The Indicator stays mounted so unchecked transitions can animate out cleanly.\n */\nfunction CheckboxIndicatorIcon() {\n return (\n <>\n <Check\n className={cn(\n 'stroke-3.25 size-3 scale-95 transition-[stroke-dashoffset,transform] duration-200 ease-out-custom',\n // Lucide's check path is ~22.6 units long. Use a longer dash so the\n // final checked mark is never clipped.\n '[stroke-dasharray:28] [stroke-dashoffset:28]',\n 'group-data-[checked]/checkbox-indicator:[stroke-dashoffset:0]',\n 'group-data-[checked]/checkbox-indicator:scale-100',\n 'group-data-[indeterminate]/checkbox-indicator:hidden',\n )}\n />\n <Minus\n className={cn(\n 'stroke-3.25 hidden size-3 scale-95 transition-transform duration-200 ease-out-custom',\n 'group-data-[indeterminate]/checkbox-indicator:block',\n 'group-data-[indeterminate]/checkbox-indicator:scale-100',\n )}\n />\n </>\n );\n}\n\nexport { Checkbox };\nexport type { CheckboxProps };\n"],"names":["React","jsx","CheckboxPrimitive","keepOwnAccessibleName","cn","selectionControlStyle","jsxs","Fragment","Check","Minus"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,WAAWA,gBAAA,CAAM,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,eAAe,GAAG,KAAA,IAAS,GAAA,KAAQ;AAGxD,IAAA,MAAM,yBAAyB,OAAA,KAAY,eAAA;AAE3C,IAAA,uBACEC,cAAA;AAAA,MAACC,iBAAA,CAAkB,IAAA;AAAA,MAAlB;AAAA,QACC,GAAA;AAAA,QACA,OAAA,EAAS,yBAAyB,KAAA,GAAQ,OAAA;AAAA,QAC1C,eAAe,aAAA,IAAiB,sBAAA;AAAA,QAChC,WAAA,EAAU,UAAA;AAAA,QACV,wBAAQD,cAAA,CAAC,MAAA,EAAA,EAAM,GAAGE,sCAAA,CAAsB,KAAK,CAAA,EAAG,CAAA;AAAA,QAChD,SAAA,EAAWC,WAAA;AAAA,UACT,0BAAA;AAAA,UACAC,iDAAA;AAAA;AAAA,UAEA,gHAAA;AAAA,UACA,6FAAA;AAAA,UACA,+FAAA;AAAA,UACA,4KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEJ,QAAA,kBAAAJ,cAAA;AAAA,UAACC,iBAAA,CAAkB,SAAA;AAAA,UAAlB;AAAA,YACC,WAAA,EAAW,IAAA;AAAA,YACX,SAAA,EAAWE,WAAA;AAAA,cACT,wEAAA;AAAA,cACA,gFAAA;AAAA,cACA,qDAAA;AAAA,cACA,iEAAA;AAAA,cACA,gEAAA;AAAA,cACA;AAAA,aACF;AAAA,YAEA,yCAAC,qBAAA,EAAA,EAAsB;AAAA;AAAA;AACzB;AAAA,KACF;AAAA,EAEJ;AACF;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAMvB,SAAS,qBAAA,GAAwB;AAC/B,EAAA,uBACEE,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAN,cAAA;AAAA,MAACO,iBAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWJ,WAAA;AAAA,UACT,mGAAA;AAAA;AAAA;AAAA,UAGA,8CAAA;AAAA,UACA,+DAAA;AAAA,UACA,mDAAA;AAAA,UACA;AAAA;AACF;AAAA,KACF;AAAA,oBACAH,cAAA;AAAA,MAACQ,iBAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWL,WAAA;AAAA,UACT,sFAAA;AAAA,UACA,qDAAA;AAAA,UACA;AAAA;AACF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -2,6 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Checkbox as Checkbox$1 } from '@base-ui/react/checkbox';
3
3
  import { Check, Minus } from 'lucide-react';
4
4
  import * as React from 'react';
5
+ import { k as keepOwnAccessibleName } from './field-control-aria-DB6y41tQ.js';
5
6
  import { selectionControlStyle } from './primitives/selection-control.es.js';
6
7
  import { c as cn } from './cn-65Adrsfj.js';
7
8
 
@@ -15,6 +16,7 @@ const Checkbox = React.forwardRef(
15
16
  checked: isCheckedIndeterminate ? false : checked,
16
17
  indeterminate: indeterminate ?? isCheckedIndeterminate,
17
18
  "data-slot": "checkbox",
19
+ render: /* @__PURE__ */ jsx("span", { ...keepOwnAccessibleName(props) }),
18
20
  className: cn(
19
21
  "peer rounded-[0.3125rem]",
20
22
  selectionControlStyle,
@@ -76,4 +78,4 @@ function CheckboxIndicatorIcon() {
76
78
  }
77
79
 
78
80
  export { Checkbox as C };
79
- //# sourceMappingURL=checkbox-CQedzgsi.js.map
81
+ //# sourceMappingURL=checkbox-DcNIsz5L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-DcNIsz5L.js","sources":["../src/ds/components/Checkbox/checkbox.tsx"],"sourcesContent":["import { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';\nimport { Check, Minus } from 'lucide-react';\nimport * as React from 'react';\n\nimport { keepOwnAccessibleName } from '@/ds/components/Field/field-control-aria';\nimport { selectionControlStyle } from '@/ds/primitives/selection-control';\nimport { cn } from '@/lib/utils';\n\n/**\n * Radix-style tri-state value for the controlled `checked` prop. Base UI splits\n * this into a strict `checked` boolean plus a separate `indeterminate` boolean —\n * we keep the Radix union here so existing consumers (which pass\n * `checked=\"indeterminate\"`) keep working without changes.\n *\n * `defaultChecked` is intentionally a plain boolean: an uncontrolled checkbox\n * cannot start \"indeterminate\" and then be toggled out of it (the indeterminate\n * state is inherently controlled), so `'indeterminate'` is not allowed there.\n */\nexport type CheckedState = boolean | 'indeterminate';\n\ntype CheckboxProps = Omit<CheckboxPrimitive.Root.Props, 'className' | 'checked'> & {\n className?: string;\n checked?: CheckedState;\n};\n\nconst Checkbox = React.forwardRef<HTMLSpanElement, CheckboxProps>(\n ({ className, checked, indeterminate, ...props }, ref) => {\n // Translate the Radix `'indeterminate'` sentinel into Base UI's dedicated\n // `indeterminate` prop while leaving `checked` as a boolean.\n const isCheckedIndeterminate = checked === 'indeterminate';\n\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n checked={isCheckedIndeterminate ? false : checked}\n indeterminate={indeterminate ?? isCheckedIndeterminate}\n data-slot=\"checkbox\"\n render={<span {...keepOwnAccessibleName(props)} />}\n className={cn(\n 'peer rounded-[0.3125rem]',\n selectionControlStyle,\n // Indeterminate is checkbox-only and mirrors the checked chip.\n 'data-[indeterminate]:border-foreground data-[indeterminate]:bg-foreground data-[indeterminate]:text-background',\n 'data-[indeterminate]:hover:border-foreground/90 data-[indeterminate]:hover:bg-foreground/90',\n 'data-[indeterminate]:active:border-foreground/75 data-[indeterminate]:active:bg-foreground/75',\n 'data-[disabled]:data-[indeterminate]:border-muted-foreground data-[disabled]:data-[indeterminate]:bg-muted-foreground data-[disabled]:data-[indeterminate]:text-background',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n keepMounted\n className={cn(\n 'group/checkbox-indicator flex items-center justify-center text-current',\n 'scale-75 opacity-0 transition-[opacity,transform] duration-200 ease-out-custom',\n 'data-[checked]:scale-100 data-[checked]:opacity-100',\n 'data-[indeterminate]:scale-100 data-[indeterminate]:opacity-100',\n 'data-[starting-style]:scale-75 data-[starting-style]:opacity-0',\n 'data-[ending-style]:scale-75 data-[ending-style]:opacity-0',\n )}\n >\n <CheckboxIndicatorIcon />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n },\n);\nCheckbox.displayName = 'Checkbox';\n\n/**\n * Picks the checkmark vs. the dash based on the Indicator's data attributes.\n * The Indicator stays mounted so unchecked transitions can animate out cleanly.\n */\nfunction CheckboxIndicatorIcon() {\n return (\n <>\n <Check\n className={cn(\n 'stroke-3.25 size-3 scale-95 transition-[stroke-dashoffset,transform] duration-200 ease-out-custom',\n // Lucide's check path is ~22.6 units long. Use a longer dash so the\n // final checked mark is never clipped.\n '[stroke-dasharray:28] [stroke-dashoffset:28]',\n 'group-data-[checked]/checkbox-indicator:[stroke-dashoffset:0]',\n 'group-data-[checked]/checkbox-indicator:scale-100',\n 'group-data-[indeterminate]/checkbox-indicator:hidden',\n )}\n />\n <Minus\n className={cn(\n 'stroke-3.25 hidden size-3 scale-95 transition-transform duration-200 ease-out-custom',\n 'group-data-[indeterminate]/checkbox-indicator:block',\n 'group-data-[indeterminate]/checkbox-indicator:scale-100',\n )}\n />\n </>\n );\n}\n\nexport { Checkbox };\nexport type { CheckboxProps };\n"],"names":["CheckboxPrimitive"],"mappings":";;;;;;;;AAyBA,MAAM,WAAW,KAAA,CAAM,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,eAAe,GAAG,KAAA,IAAS,GAAA,KAAQ;AAGxD,IAAA,MAAM,yBAAyB,OAAA,KAAY,eAAA;AAE3C,IAAA,uBACE,GAAA;AAAA,MAACA,UAAA,CAAkB,IAAA;AAAA,MAAlB;AAAA,QACC,GAAA;AAAA,QACA,OAAA,EAAS,yBAAyB,KAAA,GAAQ,OAAA;AAAA,QAC1C,eAAe,aAAA,IAAiB,sBAAA;AAAA,QAChC,WAAA,EAAU,UAAA;AAAA,QACV,wBAAQ,GAAA,CAAC,MAAA,EAAA,EAAM,GAAG,qBAAA,CAAsB,KAAK,CAAA,EAAG,CAAA;AAAA,QAChD,SAAA,EAAW,EAAA;AAAA,UACT,0BAAA;AAAA,UACA,qBAAA;AAAA;AAAA,UAEA,gHAAA;AAAA,UACA,6FAAA;AAAA,UACA,+FAAA;AAAA,UACA,4KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEJ,QAAA,kBAAA,GAAA;AAAA,UAACA,UAAA,CAAkB,SAAA;AAAA,UAAlB;AAAA,YACC,WAAA,EAAW,IAAA;AAAA,YACX,SAAA,EAAW,EAAA;AAAA,cACT,wEAAA;AAAA,cACA,gFAAA;AAAA,cACA,qDAAA;AAAA,cACA,iEAAA;AAAA,cACA,gEAAA;AAAA,cACA;AAAA,aACF;AAAA,YAEA,8BAAC,qBAAA,EAAA,EAAsB;AAAA;AAAA;AACzB;AAAA,KACF;AAAA,EAEJ;AACF;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAMvB,SAAS,qBAAA,GAAwB;AAC/B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,mGAAA;AAAA;AAAA;AAAA,UAGA,8CAAA;AAAA,UACA,+DAAA;AAAA,UACA,mDAAA;AAAA,UACA;AAAA;AACF;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,sFAAA;AAAA,UACA,qDAAA;AAAA,UACA;AAAA;AACF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { C as Code } from './code-BeWhOFT4.js';
3
3
  import { C as CopyButton } from './copy-button-DH8xtrWz.js';
4
- import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from './select-DZeNf-kI.js';
4
+ import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from './select--ArpXYDc.js';
5
5
  import { a as Tabs, T as TabList } from './tabs-root-lrZZ3KwH.js';
6
6
  import { T as Tab } from './tabs-tab-DoPSW-1s.js';
7
7
  import { transitions } from './primitives/transitions.es.js';
@@ -41,7 +41,7 @@ function CodeBlock({
41
41
  ] }) }),
42
42
  useSelect && options && /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b border-border-strong/40 px-2 py-1.5", children: [
43
43
  /* @__PURE__ */ jsxs(Select, { value: activeValue, onValueChange, children: [
44
- /* @__PURE__ */ jsx(SelectTrigger, { size: "sm", variant: "ghost", children: /* @__PURE__ */ jsx(SelectValue, {}) }),
44
+ /* @__PURE__ */ jsx(SelectTrigger, { size: "sm", variant: "ghost", className: "w-auto", children: /* @__PURE__ */ jsx(SelectValue, {}) }),
45
45
  /* @__PURE__ */ jsx(SelectContent, { children: options.map((opt) => /* @__PURE__ */ jsx(SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
46
46
  ] }),
47
47
  actions && /* @__PURE__ */ jsx("div", { className: "ml-auto flex items-center", children: actions })
@@ -83,4 +83,4 @@ function CodeBlock({
83
83
  }
84
84
 
85
85
  export { CodeBlock as C };
86
- //# sourceMappingURL=code-block-DY5KsTGY.js.map
86
+ //# sourceMappingURL=code-block-Bnz7Pq0Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block-Bnz7Pq0Q.js","sources":["../src/ds/components/CodeBlock/code-block.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Code } from '../Code/code';\nimport { CopyButton } from '../CopyButton/copy-button';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../Select/select';\nimport { TabList } from '../Tabs/tabs-list';\nimport { Tabs } from '../Tabs/tabs-root';\nimport { Tab } from '../Tabs/tabs-tab';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type CodeBlockSelector = 'select' | 'tabs';\n\nexport type CodeBlockOverflow = 'wrap' | 'scroll';\n\nexport interface CodeBlockOption {\n label: string;\n value: string;\n}\n\nexport interface CodeBlockProps {\n code: string;\n options?: CodeBlockOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n selector?: CodeBlockSelector;\n fileName?: string;\n lang?: string;\n /** `wrap` (default) breaks long lines — best for commands and snippets.\n * `scroll` preserves columns behind a horizontal scroll — best for source code. */\n overflow?: CodeBlockOverflow;\n copyMessage?: string;\n copyTooltip?: string;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function CodeBlock({\n code,\n options,\n value,\n onValueChange,\n selector = 'select',\n fileName,\n lang,\n overflow = 'wrap',\n copyMessage,\n copyTooltip,\n actions,\n className,\n}: CodeBlockProps) {\n const hasOptions = options && options.length > 0;\n const useTabs = hasOptions && selector === 'tabs';\n const useSelect = hasOptions && selector === 'select';\n const firstOption = options?.[0];\n const activeValue = value ?? firstOption?.value;\n\n return (\n <figure\n // A scrolling `pre` still reports its longest line as an intrinsic width, which\n // grows every ancestor; containment keeps the block inside the width it is given.\n className={cn(\n 'group relative flex w-full flex-col overflow-hidden rounded-2xl border border-border-strong/40 bg-background [contain:inline-size]',\n className,\n )}\n >\n {useTabs && firstOption && (\n <Tabs defaultTab={firstOption.value} value={activeValue} onValueChange={onValueChange ?? (() => {})}>\n <div className=\"flex items-stretch\">\n <div className=\"min-w-0 flex-1\">\n <TabList>\n {options.map(opt => (\n <Tab key={opt.value} value={opt.value}>\n {opt.label}\n </Tab>\n ))}\n </TabList>\n </div>\n {actions && <div className=\"flex shrink-0 items-center border-b border-border pr-2 pl-3\">{actions}</div>}\n </div>\n </Tabs>\n )}\n\n {useSelect && options && (\n <div className=\"flex items-center border-b border-border-strong/40 px-2 py-1.5\">\n <Select value={activeValue} onValueChange={onValueChange}>\n <SelectTrigger size=\"sm\" variant=\"ghost\" className=\"w-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {options.map(opt => (\n <SelectItem key={opt.value} value={opt.value}>\n {opt.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && fileName && (\n <div className=\"flex items-center border-b border-border-strong/40 px-4 py-2\">\n <figcaption className=\"font-mono text-caption text-muted-foreground\">{fileName}</figcaption>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && !fileName && actions && (\n <div className=\"flex items-center justify-end border-b border-border-strong/40 px-2 py-1.5\">{actions}</div>\n )}\n\n <div className=\"relative\">\n <Code\n code={code}\n lang={lang}\n className={cn(\n 'px-4 py-3 font-mono text-caption text-foreground',\n overflow === 'scroll' ? 'overflow-x-auto whitespace-pre' : 'break-all whitespace-pre-wrap',\n )}\n />\n <CopyButton\n content={code}\n copyMessage={copyMessage}\n tooltip={copyTooltip}\n size=\"sm\"\n className={cn(\n 'absolute top-2 right-2 opacity-100 group-focus-within:opacity-100 group-hover:opacity-100 pointer-fine:opacity-0',\n transitions.opacity,\n )}\n />\n </div>\n </figure>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const code = require('./code-B-x-9sJ1.cjs');
5
5
  const copyButton = require('./copy-button-CGkFEDHF.cjs');
6
- const select = require('./select-DBY9LQFQ.cjs');
6
+ const select = require('./select-DJQYAVcm.cjs');
7
7
  const tabsRoot = require('./tabs-root-C-ePF1y9.cjs');
8
8
  const tabsTab = require('./tabs-tab-BmIBFifi.cjs');
9
9
  const primitives_transitions = require('./primitives/transitions.cjs.js');
@@ -43,7 +43,7 @@ function CodeBlock({
43
43
  ] }) }),
44
44
  useSelect && options && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center border-b border-border-strong/40 px-2 py-1.5", children: [
45
45
  /* @__PURE__ */ jsxRuntime.jsxs(select.Select, { value: activeValue, onValueChange, children: [
46
- /* @__PURE__ */ jsxRuntime.jsx(select.SelectTrigger, { size: "sm", variant: "ghost", children: /* @__PURE__ */ jsxRuntime.jsx(select.SelectValue, {}) }),
46
+ /* @__PURE__ */ jsxRuntime.jsx(select.SelectTrigger, { size: "sm", variant: "ghost", className: "w-auto", children: /* @__PURE__ */ jsxRuntime.jsx(select.SelectValue, {}) }),
47
47
  /* @__PURE__ */ jsxRuntime.jsx(select.SelectContent, { children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(select.SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
48
48
  ] }),
49
49
  actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-auto flex items-center", children: actions })
@@ -85,4 +85,4 @@ function CodeBlock({
85
85
  }
86
86
 
87
87
  exports.CodeBlock = CodeBlock;
88
- //# sourceMappingURL=code-block-BzoMjjtf.cjs.map
88
+ //# sourceMappingURL=code-block-C3DbSINk.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block-C3DbSINk.cjs","sources":["../src/ds/components/CodeBlock/code-block.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Code } from '../Code/code';\nimport { CopyButton } from '../CopyButton/copy-button';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../Select/select';\nimport { TabList } from '../Tabs/tabs-list';\nimport { Tabs } from '../Tabs/tabs-root';\nimport { Tab } from '../Tabs/tabs-tab';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type CodeBlockSelector = 'select' | 'tabs';\n\nexport type CodeBlockOverflow = 'wrap' | 'scroll';\n\nexport interface CodeBlockOption {\n label: string;\n value: string;\n}\n\nexport interface CodeBlockProps {\n code: string;\n options?: CodeBlockOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n selector?: CodeBlockSelector;\n fileName?: string;\n lang?: string;\n /** `wrap` (default) breaks long lines — best for commands and snippets.\n * `scroll` preserves columns behind a horizontal scroll — best for source code. */\n overflow?: CodeBlockOverflow;\n copyMessage?: string;\n copyTooltip?: string;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function CodeBlock({\n code,\n options,\n value,\n onValueChange,\n selector = 'select',\n fileName,\n lang,\n overflow = 'wrap',\n copyMessage,\n copyTooltip,\n actions,\n className,\n}: CodeBlockProps) {\n const hasOptions = options && options.length > 0;\n const useTabs = hasOptions && selector === 'tabs';\n const useSelect = hasOptions && selector === 'select';\n const firstOption = options?.[0];\n const activeValue = value ?? firstOption?.value;\n\n return (\n <figure\n // A scrolling `pre` still reports its longest line as an intrinsic width, which\n // grows every ancestor; containment keeps the block inside the width it is given.\n className={cn(\n 'group relative flex w-full flex-col overflow-hidden rounded-2xl border border-border-strong/40 bg-background [contain:inline-size]',\n className,\n )}\n >\n {useTabs && firstOption && (\n <Tabs defaultTab={firstOption.value} value={activeValue} onValueChange={onValueChange ?? (() => {})}>\n <div className=\"flex items-stretch\">\n <div className=\"min-w-0 flex-1\">\n <TabList>\n {options.map(opt => (\n <Tab key={opt.value} value={opt.value}>\n {opt.label}\n </Tab>\n ))}\n </TabList>\n </div>\n {actions && <div className=\"flex shrink-0 items-center border-b border-border pr-2 pl-3\">{actions}</div>}\n </div>\n </Tabs>\n )}\n\n {useSelect && options && (\n <div className=\"flex items-center border-b border-border-strong/40 px-2 py-1.5\">\n <Select value={activeValue} onValueChange={onValueChange}>\n <SelectTrigger size=\"sm\" variant=\"ghost\" className=\"w-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {options.map(opt => (\n <SelectItem key={opt.value} value={opt.value}>\n {opt.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && fileName && (\n <div className=\"flex items-center border-b border-border-strong/40 px-4 py-2\">\n <figcaption className=\"font-mono text-caption text-muted-foreground\">{fileName}</figcaption>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && !fileName && actions && (\n <div className=\"flex items-center justify-end border-b border-border-strong/40 px-2 py-1.5\">{actions}</div>\n )}\n\n <div className=\"relative\">\n <Code\n code={code}\n lang={lang}\n className={cn(\n 'px-4 py-3 font-mono text-caption text-foreground',\n overflow === 'scroll' ? 'overflow-x-auto whitespace-pre' : 'break-all whitespace-pre-wrap',\n )}\n />\n <CopyButton\n content={code}\n copyMessage={copyMessage}\n tooltip={copyTooltip}\n size=\"sm\"\n className={cn(\n 'absolute top-2 right-2 opacity-100 group-focus-within:opacity-100 group-hover:opacity-100 pointer-fine:opacity-0',\n transitions.opacity,\n )}\n />\n </div>\n </figure>\n );\n}\n"],"names":["code","jsxs","cn","jsx","Tabs","TabList","Tab","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Code","CopyButton","transitions"],"mappings":"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"}