@mastra/playground-ui 61.0.0-alpha.4 → 61.0.0-alpha.6

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 (298) hide show
  1. package/dist/{alert-dialog-CzRo39mH.js → alert-dialog-DBLWYiU1.js} +2 -2
  2. package/dist/{alert-dialog-CzRo39mH.js.map → alert-dialog-DBLWYiU1.js.map} +1 -1
  3. package/dist/{alert-dialog-DC-Fapxf.cjs → alert-dialog-DhG32okh.cjs} +2 -2
  4. package/dist/{alert-dialog-DC-Fapxf.cjs.map → alert-dialog-DhG32okh.cjs.map} +1 -1
  5. package/dist/{ask-user-BF4oruLl.js → ask-user-CqCUiZRR.js} +2 -2
  6. package/dist/{ask-user-BF4oruLl.js.map → ask-user-CqCUiZRR.js.map} +1 -1
  7. package/dist/{ask-user-BkfO8oNm.cjs → ask-user-DBb0lUh2.cjs} +2 -2
  8. package/dist/{ask-user-BkfO8oNm.cjs.map → ask-user-DBb0lUh2.cjs.map} +1 -1
  9. package/dist/{checkbox-BafbfFcE.cjs → checkbox-Bkobte27.cjs} +3 -3
  10. package/dist/{checkbox-BafbfFcE.cjs.map → checkbox-Bkobte27.cjs.map} +1 -1
  11. package/dist/{checkbox-DyZhbQo9.js → checkbox-DcNIsz5L.js} +3 -3
  12. package/dist/{checkbox-DyZhbQo9.js.map → checkbox-DcNIsz5L.js.map} +1 -1
  13. package/dist/{combobox-DPpiBLWV.cjs → combobox-BaVFPQ6X.cjs} +2 -2
  14. package/dist/{combobox-DPpiBLWV.cjs.map → combobox-BaVFPQ6X.cjs.map} +1 -1
  15. package/dist/{combobox-DoJgbq9N.js → combobox-NPw0vrSa.js} +2 -2
  16. package/dist/{combobox-DoJgbq9N.js.map → combobox-NPw0vrSa.js.map} +1 -1
  17. package/dist/{command-DD3WIrQX.cjs → command-D9tAe7E8.cjs} +54 -8
  18. package/dist/command-D9tAe7E8.cjs.map +1 -0
  19. package/dist/{command-CXPbrw66.js → command-DEG5XcoY.js} +56 -10
  20. package/dist/command-DEG5XcoY.js.map +1 -0
  21. package/dist/components/AlertDialog.cjs.js +1 -1
  22. package/dist/components/AlertDialog.es.js +1 -1
  23. package/dist/components/Checkbox.cjs.js +1 -1
  24. package/dist/components/Checkbox.es.js +1 -1
  25. package/dist/components/Combobox.cjs.js +1 -1
  26. package/dist/components/Combobox.es.js +1 -1
  27. package/dist/components/Command.cjs.js +1 -1
  28. package/dist/components/Command.es.js +1 -1
  29. package/dist/components/CommandPalette.cjs.js +2 -2
  30. package/dist/components/CommandPalette.es.js +2 -2
  31. package/dist/components/Composer.cjs.js +2 -2
  32. package/dist/components/Composer.es.js +2 -2
  33. package/dist/components/DataCodeSection.cjs.js +1 -1
  34. package/dist/components/DataCodeSection.es.js +1 -1
  35. package/dist/components/DataList.cjs.js +5 -5
  36. package/dist/components/DataList.es.js +5 -5
  37. package/dist/components/DataPanel.cjs.js +1 -1
  38. package/dist/components/DataPanel.es.js +1 -1
  39. package/dist/components/Dialog.cjs.js +2 -2
  40. package/dist/components/Dialog.es.js +2 -2
  41. package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
  42. package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
  43. package/dist/components/HorizontalBars.cjs.js +1 -1
  44. package/dist/components/HorizontalBars.es.js +1 -1
  45. package/dist/components/JSONSchemaForm.cjs.js +1 -1
  46. package/dist/components/JSONSchemaForm.es.js +1 -1
  47. package/dist/components/LogsDataList.cjs.js +2 -2
  48. package/dist/components/LogsDataList.es.js +2 -2
  49. package/dist/components/MainSidebar.cjs.js +1 -1
  50. package/dist/components/MainSidebar.es.js +2 -2
  51. package/dist/components/PropertyFilter.cjs.js +1 -1
  52. package/dist/components/PropertyFilter.es.js +1 -1
  53. package/dist/components/ScrollArea.cjs.js +1 -1
  54. package/dist/components/ScrollArea.es.js +1 -1
  55. package/dist/components/Switch.cjs.js +1 -1
  56. package/dist/components/Switch.es.js +1 -1
  57. package/dist/components/ThreadRail.cjs.js +1 -1
  58. package/dist/components/ThreadRail.es.js +1 -1
  59. package/dist/components/Workflow.cjs.js +3 -3
  60. package/dist/components/Workflow.es.js +3 -3
  61. package/dist/components/ai/ask-user.cjs.js +1 -1
  62. package/dist/components/ai/ask-user.es.js +1 -1
  63. package/dist/components/ai/task-list.cjs.js +1 -1
  64. package/dist/components/ai/task-list.es.js +1 -1
  65. package/dist/components/ai/tool-call.cjs.js +1 -1
  66. package/dist/components/ai/tool-call.es.js +1 -1
  67. package/dist/{composer-B_yUWdcW.js → composer-BQW7YiFa.js} +2 -2
  68. package/dist/{composer-B_yUWdcW.js.map → composer-BQW7YiFa.js.map} +1 -1
  69. package/dist/{composer-Bf2poiID.cjs → composer-CEVeHTRs.cjs} +2 -2
  70. package/dist/{composer-Bf2poiID.cjs.map → composer-CEVeHTRs.cjs.map} +1 -1
  71. package/dist/{data-code-section-t4FroAMJ.cjs → data-code-section-B5kljGaH.cjs} +2 -2
  72. package/dist/{data-code-section-t4FroAMJ.cjs.map → data-code-section-B5kljGaH.cjs.map} +1 -1
  73. package/dist/{data-code-section-BD4VWvPd.js → data-code-section-CW9TU70O.js} +2 -2
  74. package/dist/{data-code-section-BD4VWvPd.js.map → data-code-section-CW9TU70O.js.map} +1 -1
  75. package/dist/{data-list-DYW9FuYo.js → data-list-BHtjZ528.js} +3 -3
  76. package/dist/{data-list-DYW9FuYo.js.map → data-list-BHtjZ528.js.map} +1 -1
  77. package/dist/{data-list-acjJVSpL.cjs → data-list-TouUI4pb.cjs} +3 -3
  78. package/dist/{data-list-acjJVSpL.cjs.map → data-list-TouUI4pb.cjs.map} +1 -1
  79. package/dist/{data-list-skeleton-BxcJ34hQ.cjs → data-list-skeleton-BqihjHu8.cjs} +2 -2
  80. package/dist/{data-list-skeleton-BxcJ34hQ.cjs.map → data-list-skeleton-BqihjHu8.cjs.map} +1 -1
  81. package/dist/{data-list-skeleton-CXvrEdMG.js → data-list-skeleton-H8Zpph6_.js} +2 -2
  82. package/dist/{data-list-skeleton-CXvrEdMG.js.map → data-list-skeleton-H8Zpph6_.js.map} +1 -1
  83. package/dist/{data-list-spacer-CXzddj-5.cjs → data-list-spacer-CtooAPJP.cjs} +2 -2
  84. package/dist/{data-list-spacer-CXzddj-5.cjs.map → data-list-spacer-CtooAPJP.cjs.map} +1 -1
  85. package/dist/{data-list-spacer-CZa36ohy.js → data-list-spacer-D7UBH1uv.js} +2 -2
  86. package/dist/{data-list-spacer-CZa36ohy.js.map → data-list-spacer-D7UBH1uv.js.map} +1 -1
  87. package/dist/{data-list-top-DJzwLjZj.cjs → data-list-top-BFssu4VI.cjs} +3 -3
  88. package/dist/{data-list-top-DJzwLjZj.cjs.map → data-list-top-BFssu4VI.cjs.map} +1 -1
  89. package/dist/{data-list-top-D7UxgRNq.js → data-list-top-D10jfsQH.js} +3 -3
  90. package/dist/{data-list-top-D7UxgRNq.js.map → data-list-top-D10jfsQH.js.map} +1 -1
  91. package/dist/{data-panel-C638OC-m.js → data-panel-B5flRCQM.js} +2 -2
  92. package/dist/{data-panel-C638OC-m.js.map → data-panel-B5flRCQM.js.map} +1 -1
  93. package/dist/{data-panel-HSJNrZhx.cjs → data-panel-Ckjs7Kwo.cjs} +2 -2
  94. package/dist/{data-panel-HSJNrZhx.cjs.map → data-panel-Ckjs7Kwo.cjs.map} +1 -1
  95. package/dist/{dialog-Dt5kASkl.js → dialog-DhtPcWY-.js} +5 -4
  96. package/dist/dialog-DhtPcWY-.js.map +1 -0
  97. package/dist/{dialog-action-C3Tc7ZKI.cjs → dialog-action-7HmywY8w.cjs} +2 -2
  98. package/dist/{dialog-action-C3Tc7ZKI.cjs.map → dialog-action-7HmywY8w.cjs.map} +1 -1
  99. package/dist/{dialog-action-CB3h9Z2J.js → dialog-action-BtbY5o2b.js} +2 -2
  100. package/dist/{dialog-action-CB3h9Z2J.js.map → dialog-action-BtbY5o2b.js.map} +1 -1
  101. package/dist/{dialog-d_AK1NQD.cjs → dialog-c2AhB8HM.cjs} +5 -4
  102. package/dist/dialog-c2AhB8HM.cjs.map +1 -0
  103. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +1 -1
  104. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +1 -1
  105. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
  106. package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
  107. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  108. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  109. package/dist/domains/chat/messages/dataset-save-action.cjs.js +2 -2
  110. package/dist/domains/chat/messages/dataset-save-action.es.js +2 -2
  111. package/dist/domains/chat/messages/message-row.cjs.js +1 -1
  112. package/dist/domains/chat/messages/message-row.es.js +1 -1
  113. package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
  114. package/dist/domains/chat/messages/skill-message.es.js +1 -1
  115. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  116. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  117. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
  118. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +1 -1
  119. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +0 -1
  120. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  121. package/dist/domains/chat/tools/badges/workflow-badge.es.js +0 -1
  122. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  123. package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
  124. package/dist/domains/logs/components/log-data-panel.es.js +1 -1
  125. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  126. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  127. package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
  128. package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
  129. package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
  130. package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
  131. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
  132. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
  133. package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
  134. package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
  135. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +1 -1
  136. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +1 -1
  137. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +1 -1
  138. package/dist/domains/metrics/components/traces-volume-card-view.es.js +1 -1
  139. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  140. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  141. package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
  142. package/dist/domains/scores/components/span-scoring.es.js +3 -3
  143. package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -1
  144. package/dist/domains/scores/components/trace-scores-tab.es.js +1 -1
  145. package/dist/domains/traces/components/feedback-thread.cjs.js +1 -1
  146. package/dist/domains/traces/components/feedback-thread.es.js +1 -1
  147. package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
  148. package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
  149. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +1 -1
  150. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js.map +1 -1
  151. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +1 -1
  152. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js.map +1 -1
  153. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  154. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  155. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  156. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  157. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +0 -1
  158. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  159. package/dist/domains/traces/components/thread-view-by-trace.es.js +0 -1
  160. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  161. package/dist/domains/traces/components/trace-columns-menu.cjs.js +3 -3
  162. package/dist/domains/traces/components/trace-columns-menu.es.js +3 -3
  163. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +1 -1
  164. package/dist/domains/traces/components/trace-data-panel-view.es.js +1 -1
  165. package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -2
  166. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  167. package/dist/domains/traces/components/trace-data-panel.es.js +1 -2
  168. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  169. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  170. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  171. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  172. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  173. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  174. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  175. package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
  176. package/dist/domains/traces/components/traces-list-view.es.js +3 -3
  177. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -1
  178. package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -1
  179. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  180. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  181. package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
  182. package/dist/domains/workflows/components/workflow-information.es.js +1 -1
  183. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
  184. package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
  185. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  186. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  187. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  188. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  189. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  190. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  191. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  192. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  193. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  194. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  195. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  196. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  197. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
  198. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
  199. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  200. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  201. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  202. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  203. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
  204. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +1 -1
  205. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +2 -2
  206. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
  207. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +1 -1
  208. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +1 -1
  209. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
  210. package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
  211. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +3 -3
  212. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +3 -3
  213. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +1 -1
  214. package/dist/domains/workspace/components/workspace-create-directory.es.js +1 -1
  215. package/dist/domains/workspace/components/workspace-parts.cjs.js +1 -1
  216. package/dist/domains/workspace/components/workspace-parts.es.js +1 -1
  217. package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
  218. package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
  219. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  220. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  221. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  222. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  223. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -1
  224. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -1
  225. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
  226. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
  227. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
  228. package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
  229. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  230. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  231. package/dist/{horizontal-bars-D-rFCRbH.cjs → horizontal-bars-BdQnhZ5Y.cjs} +2 -2
  232. package/dist/{horizontal-bars-D-rFCRbH.cjs.map → horizontal-bars-BdQnhZ5Y.cjs.map} +1 -1
  233. package/dist/{horizontal-bars-BL-GHeFh.js → horizontal-bars-DHX7208F.js} +2 -2
  234. package/dist/{horizontal-bars-BL-GHeFh.js.map → horizontal-bars-DHX7208F.js.map} +1 -1
  235. package/dist/layout/tabbed-container.cjs.js +2 -2
  236. package/dist/layout/tabbed-container.es.js +2 -2
  237. package/dist/lib/form/components/boolean-field.cjs.js +1 -1
  238. package/dist/lib/form/components/boolean-field.es.js +1 -1
  239. package/dist/{logs-data-list-CWJxi9Qf.js → logs-data-list-CdLNnsJm.js} +3 -3
  240. package/dist/{logs-data-list-CWJxi9Qf.js.map → logs-data-list-CdLNnsJm.js.map} +1 -1
  241. package/dist/{logs-data-list-D0cymqxR.cjs → logs-data-list-MakOZmBm.cjs} +3 -3
  242. package/dist/{logs-data-list-D0cymqxR.cjs.map → logs-data-list-MakOZmBm.cjs.map} +1 -1
  243. package/dist/{main-sidebar-link-active-MpwV6dGL.cjs → main-sidebar-link-active-C9P_WBus.cjs} +2 -2
  244. package/dist/{main-sidebar-link-active-MpwV6dGL.cjs.map → main-sidebar-link-active-C9P_WBus.cjs.map} +1 -1
  245. package/dist/{main-sidebar-link-active-BW025pfN.js → main-sidebar-link-active-JtKNF9hx.js} +2 -2
  246. package/dist/{main-sidebar-link-active-BW025pfN.js.map → main-sidebar-link-active-JtKNF9hx.js.map} +1 -1
  247. package/dist/new/sidebar.cjs.js +3 -3
  248. package/dist/new/sidebar.cjs.js.map +1 -1
  249. package/dist/new/sidebar.es.js +4 -4
  250. package/dist/new/sidebar.es.js.map +1 -1
  251. package/dist/primitives/transitions.cjs.js +2 -0
  252. package/dist/primitives/transitions.cjs.js.map +1 -1
  253. package/dist/primitives/transitions.es.js +2 -1
  254. package/dist/primitives/transitions.es.js.map +1 -1
  255. package/dist/{scroll-area-Ds-fJn5M.js → scroll-area-CfoN8Hpp.js} +2 -1
  256. package/dist/{scroll-area-Ds-fJn5M.js.map → scroll-area-CfoN8Hpp.js.map} +1 -1
  257. package/dist/{scroll-area-CEuf7Omb.cjs → scroll-area-gN-e805H.cjs} +2 -1
  258. package/dist/{scroll-area-CEuf7Omb.cjs.map → scroll-area-gN-e805H.cjs.map} +1 -1
  259. package/dist/src/ds/components/Command/command.d.ts +9 -2
  260. package/dist/src/ds/components/Command/command.stories.d.ts +3 -0
  261. package/dist/src/ds/components/Dialog/dialog.d.ts +2 -1
  262. package/dist/src/ds/primitives/transitions.d.ts +1 -0
  263. package/dist/style.css +73 -22
  264. package/dist/{switch-Dwvg61n9.cjs → switch-BlE5ReVZ.cjs} +2 -2
  265. package/dist/{switch-Dwvg61n9.cjs.map → switch-BlE5ReVZ.cjs.map} +1 -1
  266. package/dist/{switch-plHXs9HV.js → switch-MZ1oHrmp.js} +2 -2
  267. package/dist/{switch-plHXs9HV.js.map → switch-MZ1oHrmp.js.map} +1 -1
  268. package/dist/{tool-call-group-UoMplOy2.js → tool-call-group-DKCarGYB.js} +2 -2
  269. package/dist/{tool-call-group-UoMplOy2.js.map → tool-call-group-DKCarGYB.js.map} +1 -1
  270. package/dist/{tool-call-group-CALHT0zr.cjs → tool-call-group-GBF6eQAK.cjs} +2 -2
  271. package/dist/{tool-call-group-CALHT0zr.cjs.map → tool-call-group-GBF6eQAK.cjs.map} +1 -1
  272. package/dist/{traces-data-list-CMhd7o-G.js → traces-data-list-BeWQiNT2.js} +4 -4
  273. package/dist/{traces-data-list-CMhd7o-G.js.map → traces-data-list-BeWQiNT2.js.map} +1 -1
  274. package/dist/{traces-data-list-CA7ZJ42U.cjs → traces-data-list-DDG1BY5u.cjs} +4 -4
  275. package/dist/{traces-data-list-CA7ZJ42U.cjs.map → traces-data-list-DDG1BY5u.cjs.map} +1 -1
  276. package/dist/{use-workflow-graph-runtime-BDQG0x6S.js → use-workflow-graph-runtime-BF_NZEkj.js} +2 -2
  277. package/dist/{use-workflow-graph-runtime-BDQG0x6S.js.map → use-workflow-graph-runtime-BF_NZEkj.js.map} +1 -1
  278. package/dist/{use-workflow-graph-runtime-C94sK_3_.cjs → use-workflow-graph-runtime-r_OOpvSo.cjs} +2 -2
  279. package/dist/{use-workflow-graph-runtime-C94sK_3_.cjs.map → use-workflow-graph-runtime-r_OOpvSo.cjs.map} +1 -1
  280. package/dist/{workflow-condition-card-BrKjwx6R.js → workflow-condition-card-BCSYogql.js} +2 -2
  281. package/dist/workflow-condition-card-BCSYogql.js.map +1 -0
  282. package/dist/{workflow-condition-card-BTgxBimk.cjs → workflow-condition-card-Dlo2PaKV.cjs} +2 -2
  283. package/dist/workflow-condition-card-Dlo2PaKV.cjs.map +1 -0
  284. package/dist/{workflow-data-edge-view-JmkSlDp1.js → workflow-data-edge-view-B9uz58wL.js} +2 -2
  285. package/dist/{workflow-data-edge-view-JmkSlDp1.js.map → workflow-data-edge-view-B9uz58wL.js.map} +1 -1
  286. package/dist/{workflow-data-edge-view-aNTgHQUk.cjs → workflow-data-edge-view-CjbBulHe.cjs} +2 -2
  287. package/dist/{workflow-data-edge-view-aNTgHQUk.cjs.map → workflow-data-edge-view-CjbBulHe.cjs.map} +1 -1
  288. package/dist/{workflow-edge-data-button-B7bM7UqW.js → workflow-edge-data-button-BTynlndD.js} +2 -2
  289. package/dist/{workflow-edge-data-button-B7bM7UqW.js.map → workflow-edge-data-button-BTynlndD.js.map} +1 -1
  290. package/dist/{workflow-edge-data-button-CHoNrfef.cjs → workflow-edge-data-button-DQAzBPfm.cjs} +2 -2
  291. package/dist/{workflow-edge-data-button-CHoNrfef.cjs.map → workflow-edge-data-button-DQAzBPfm.cjs.map} +1 -1
  292. package/package.json +10 -10
  293. package/dist/command-CXPbrw66.js.map +0 -1
  294. package/dist/command-DD3WIrQX.cjs.map +0 -1
  295. package/dist/dialog-Dt5kASkl.js.map +0 -1
  296. package/dist/dialog-d_AK1NQD.cjs.map +0 -1
  297. package/dist/workflow-condition-card-BTgxBimk.cjs.map +0 -1
  298. package/dist/workflow-condition-card-BrKjwx6R.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { AlertDialog as AlertDialog$1 } from '@base-ui/react/alert-dialog';
3
3
  import { B as Button } from './Button-D43ghVKt.js';
4
- import { n as DialogContext, g as DialogHeader, f as DialogFooter, a as DialogBody, j as DialogTitle, e as DialogDescription, b as DialogCancel, i as DialogPortal, h as DialogOverlay, o as dialogContentSizeClasses, p as dialogPopupClassName, l as dialogActionSizeClasses, m as dialogActionLayoutClasses } from './dialog-Dt5kASkl.js';
4
+ import { n as DialogContext, g as DialogHeader, f as DialogFooter, a as DialogBody, j as DialogTitle, e as DialogDescription, b as DialogCancel, i as DialogPortal, h as DialogOverlay, o as dialogContentSizeClasses, p as dialogPopupClassName, l as dialogActionSizeClasses, m as dialogActionLayoutClasses } from './dialog-DhtPcWY-.js';
5
5
  import { c as cn } from './cn-65Adrsfj.js';
6
6
 
7
7
  const alertDialogContext = { intent: "default", pending: false };
@@ -50,4 +50,4 @@ AlertDialog.Action = AlertDialogAction;
50
50
  AlertDialog.Cancel = DialogCancel;
51
51
 
52
52
  export { AlertDialog as A };
53
- //# sourceMappingURL=alert-dialog-CzRo39mH.js.map
53
+ //# sourceMappingURL=alert-dialog-DBLWYiU1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-CzRo39mH.js","sources":["../src/ds/components/AlertDialog/alert-dialog.tsx"],"sourcesContent":["import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';\n\nimport { Button } from '@/ds/components/Button';\nimport {\n DialogBody,\n DialogCancel,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport {\n DialogContext,\n dialogActionLayoutClasses,\n dialogActionSizeClasses,\n} from '@/ds/components/Dialog/dialog-context';\nimport type { DialogContextValue } from '@/ds/components/Dialog/dialog-context';\nimport { dialogContentSizeClasses, dialogPopupClassName } from '@/ds/components/Dialog/dialog-shell';\nimport type { DialogSize } from '@/ds/components/Dialog/dialog-shell';\nimport { cn } from '@/lib/utils';\n\nconst alertDialogContext: DialogContextValue = { intent: 'default', pending: false };\n\nfunction AlertDialog(props: AlertDialogPrimitive.Root.Props) {\n return (\n <DialogContext.Provider value={alertDialogContext}>\n <AlertDialogPrimitive.Root {...props} />\n </DialogContext.Provider>\n );\n}\n\ntype AlertDialogContentProps = Omit<AlertDialogPrimitive.Popup.Props, 'className'> & {\n className?: string;\n size?: DialogSize;\n};\n\nfunction AlertDialogContent({ className, size = 'sm', ...props }: AlertDialogContentProps) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(dialogPopupClassName, dialogContentSizeClasses[size], className)}\n {...props}\n />\n </DialogPortal>\n );\n}\n\nfunction AlertDialogAction({ children, ...props }: AlertDialogPrimitive.Close.Props) {\n return (\n <AlertDialogPrimitive.Close\n render={\n <Button\n variant=\"primary\"\n size=\"md\"\n className={cn(dialogActionLayoutClasses, dialogActionSizeClasses.md)}\n children={children}\n />\n }\n {...props}\n />\n );\n}\n\nAlertDialog.Trigger = AlertDialogPrimitive.Trigger;\nAlertDialog.Content = AlertDialogContent;\nAlertDialog.Header = DialogHeader;\nAlertDialog.Footer = DialogFooter;\nAlertDialog.Body = DialogBody;\nAlertDialog.Title = DialogTitle;\nAlertDialog.Description = DialogDescription;\nAlertDialog.Action = AlertDialogAction;\nAlertDialog.Cancel = DialogCancel;\n\nexport { AlertDialog };\n"],"names":["AlertDialogPrimitive"],"mappings":";;;;;;AAuBA,MAAM,kBAAA,GAAyC,EAAE,MAAA,EAAQ,SAAA,EAAW,SAAS,KAAA,EAAM;AAEnF,SAAS,YAAY,KAAA,EAAwC;AAC3D,EAAA,uBACE,GAAA,CAAC,aAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,kBAAA,EAC7B,QAAA,kBAAA,GAAA,CAACA,aAAA,CAAqB,IAAA,EAArB,EAA2B,GAAG,KAAA,EAAO,CAAA,EACxC,CAAA;AAEJ;AAOA,SAAS,mBAAmB,EAAE,SAAA,EAAW,OAAO,IAAA,EAAM,GAAG,OAAM,EAA4B;AACzF,EAAA,4BACG,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,CAAA;AAAA,oBACf,GAAA;AAAA,MAACA,aAAA,CAAqB,KAAA;AAAA,MAArB;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,WAAW,EAAA,CAAG,oBAAA,EAAsB,wBAAA,CAAyB,IAAI,GAAG,SAAS,CAAA;AAAA,QAC5E,GAAG;AAAA;AAAA;AACN,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,iBAAA,CAAkB,EAAE,QAAA,EAAU,GAAG,OAAM,EAAqC;AACnF,EAAA,uBACE,GAAA;AAAA,IAACA,aAAA,CAAqB,KAAA;AAAA,IAArB;AAAA,MACC,MAAA,kBACE,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAK,IAAA;AAAA,UACL,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,uBAAA,CAAwB,EAAE,CAAA;AAAA,UACnE;AAAA;AAAA,OACF;AAAA,MAED,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,WAAA,CAAY,UAAUA,aAAA,CAAqB,OAAA;AAC3C,WAAA,CAAY,OAAA,GAAU,kBAAA;AACtB,WAAA,CAAY,MAAA,GAAS,YAAA;AACrB,WAAA,CAAY,MAAA,GAAS,YAAA;AACrB,WAAA,CAAY,IAAA,GAAO,UAAA;AACnB,WAAA,CAAY,KAAA,GAAQ,WAAA;AACpB,WAAA,CAAY,WAAA,GAAc,iBAAA;AAC1B,WAAA,CAAY,MAAA,GAAS,iBAAA;AACrB,WAAA,CAAY,MAAA,GAAS,YAAA;;;;"}
1
+ {"version":3,"file":"alert-dialog-DBLWYiU1.js","sources":["../src/ds/components/AlertDialog/alert-dialog.tsx"],"sourcesContent":["import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';\n\nimport { Button } from '@/ds/components/Button';\nimport {\n DialogBody,\n DialogCancel,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport {\n DialogContext,\n dialogActionLayoutClasses,\n dialogActionSizeClasses,\n} from '@/ds/components/Dialog/dialog-context';\nimport type { DialogContextValue } from '@/ds/components/Dialog/dialog-context';\nimport { dialogContentSizeClasses, dialogPopupClassName } from '@/ds/components/Dialog/dialog-shell';\nimport type { DialogSize } from '@/ds/components/Dialog/dialog-shell';\nimport { cn } from '@/lib/utils';\n\nconst alertDialogContext: DialogContextValue = { intent: 'default', pending: false };\n\nfunction AlertDialog(props: AlertDialogPrimitive.Root.Props) {\n return (\n <DialogContext.Provider value={alertDialogContext}>\n <AlertDialogPrimitive.Root {...props} />\n </DialogContext.Provider>\n );\n}\n\ntype AlertDialogContentProps = Omit<AlertDialogPrimitive.Popup.Props, 'className'> & {\n className?: string;\n size?: DialogSize;\n};\n\nfunction AlertDialogContent({ className, size = 'sm', ...props }: AlertDialogContentProps) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(dialogPopupClassName, dialogContentSizeClasses[size], className)}\n {...props}\n />\n </DialogPortal>\n );\n}\n\nfunction AlertDialogAction({ children, ...props }: AlertDialogPrimitive.Close.Props) {\n return (\n <AlertDialogPrimitive.Close\n render={\n <Button\n variant=\"primary\"\n size=\"md\"\n className={cn(dialogActionLayoutClasses, dialogActionSizeClasses.md)}\n children={children}\n />\n }\n {...props}\n />\n );\n}\n\nAlertDialog.Trigger = AlertDialogPrimitive.Trigger;\nAlertDialog.Content = AlertDialogContent;\nAlertDialog.Header = DialogHeader;\nAlertDialog.Footer = DialogFooter;\nAlertDialog.Body = DialogBody;\nAlertDialog.Title = DialogTitle;\nAlertDialog.Description = DialogDescription;\nAlertDialog.Action = AlertDialogAction;\nAlertDialog.Cancel = DialogCancel;\n\nexport { AlertDialog };\n"],"names":["AlertDialogPrimitive"],"mappings":";;;;;;AAuBA,MAAM,kBAAA,GAAyC,EAAE,MAAA,EAAQ,SAAA,EAAW,SAAS,KAAA,EAAM;AAEnF,SAAS,YAAY,KAAA,EAAwC;AAC3D,EAAA,uBACE,GAAA,CAAC,aAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,kBAAA,EAC7B,QAAA,kBAAA,GAAA,CAACA,aAAA,CAAqB,IAAA,EAArB,EAA2B,GAAG,KAAA,EAAO,CAAA,EACxC,CAAA;AAEJ;AAOA,SAAS,mBAAmB,EAAE,SAAA,EAAW,OAAO,IAAA,EAAM,GAAG,OAAM,EAA4B;AACzF,EAAA,4BACG,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,CAAA;AAAA,oBACf,GAAA;AAAA,MAACA,aAAA,CAAqB,KAAA;AAAA,MAArB;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,WAAW,EAAA,CAAG,oBAAA,EAAsB,wBAAA,CAAyB,IAAI,GAAG,SAAS,CAAA;AAAA,QAC5E,GAAG;AAAA;AAAA;AACN,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,iBAAA,CAAkB,EAAE,QAAA,EAAU,GAAG,OAAM,EAAqC;AACnF,EAAA,uBACE,GAAA;AAAA,IAACA,aAAA,CAAqB,KAAA;AAAA,IAArB;AAAA,MACC,MAAA,kBACE,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAK,IAAA;AAAA,UACL,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,uBAAA,CAAwB,EAAE,CAAA;AAAA,UACnE;AAAA;AAAA,OACF;AAAA,MAED,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,WAAA,CAAY,UAAUA,aAAA,CAAqB,OAAA;AAC3C,WAAA,CAAY,OAAA,GAAU,kBAAA;AACtB,WAAA,CAAY,MAAA,GAAS,YAAA;AACrB,WAAA,CAAY,MAAA,GAAS,YAAA;AACrB,WAAA,CAAY,IAAA,GAAO,UAAA;AACnB,WAAA,CAAY,KAAA,GAAQ,WAAA;AACpB,WAAA,CAAY,WAAA,GAAc,iBAAA;AAC1B,WAAA,CAAY,MAAA,GAAS,iBAAA;AACrB,WAAA,CAAY,MAAA,GAAS,YAAA;;;;"}
@@ -3,7 +3,7 @@
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const alertDialog = require('@base-ui/react/alert-dialog');
5
5
  const Button = require('./Button-CXhSUBxN.cjs');
6
- const dialog = require('./dialog-d_AK1NQD.cjs');
6
+ const dialog = require('./dialog-c2AhB8HM.cjs');
7
7
  const utils_cn = require('./cn-DG0X1KEP.cjs');
8
8
 
9
9
  const alertDialogContext = { intent: "default", pending: false };
@@ -52,4 +52,4 @@ AlertDialog.Action = AlertDialogAction;
52
52
  AlertDialog.Cancel = dialog.DialogCancel;
53
53
 
54
54
  exports.AlertDialog = AlertDialog;
55
- //# sourceMappingURL=alert-dialog-DC-Fapxf.cjs.map
55
+ //# sourceMappingURL=alert-dialog-DhG32okh.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-DC-Fapxf.cjs","sources":["../src/ds/components/AlertDialog/alert-dialog.tsx"],"sourcesContent":["import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';\n\nimport { Button } from '@/ds/components/Button';\nimport {\n DialogBody,\n DialogCancel,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport {\n DialogContext,\n dialogActionLayoutClasses,\n dialogActionSizeClasses,\n} from '@/ds/components/Dialog/dialog-context';\nimport type { DialogContextValue } from '@/ds/components/Dialog/dialog-context';\nimport { dialogContentSizeClasses, dialogPopupClassName } from '@/ds/components/Dialog/dialog-shell';\nimport type { DialogSize } from '@/ds/components/Dialog/dialog-shell';\nimport { cn } from '@/lib/utils';\n\nconst alertDialogContext: DialogContextValue = { intent: 'default', pending: false };\n\nfunction AlertDialog(props: AlertDialogPrimitive.Root.Props) {\n return (\n <DialogContext.Provider value={alertDialogContext}>\n <AlertDialogPrimitive.Root {...props} />\n </DialogContext.Provider>\n );\n}\n\ntype AlertDialogContentProps = Omit<AlertDialogPrimitive.Popup.Props, 'className'> & {\n className?: string;\n size?: DialogSize;\n};\n\nfunction AlertDialogContent({ className, size = 'sm', ...props }: AlertDialogContentProps) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(dialogPopupClassName, dialogContentSizeClasses[size], className)}\n {...props}\n />\n </DialogPortal>\n );\n}\n\nfunction AlertDialogAction({ children, ...props }: AlertDialogPrimitive.Close.Props) {\n return (\n <AlertDialogPrimitive.Close\n render={\n <Button\n variant=\"primary\"\n size=\"md\"\n className={cn(dialogActionLayoutClasses, dialogActionSizeClasses.md)}\n children={children}\n />\n }\n {...props}\n />\n );\n}\n\nAlertDialog.Trigger = AlertDialogPrimitive.Trigger;\nAlertDialog.Content = AlertDialogContent;\nAlertDialog.Header = DialogHeader;\nAlertDialog.Footer = DialogFooter;\nAlertDialog.Body = DialogBody;\nAlertDialog.Title = DialogTitle;\nAlertDialog.Description = DialogDescription;\nAlertDialog.Action = AlertDialogAction;\nAlertDialog.Cancel = DialogCancel;\n\nexport { AlertDialog };\n"],"names":["jsx","DialogContext","AlertDialogPrimitive","DialogPortal","DialogOverlay","cn","dialogPopupClassName","dialogContentSizeClasses","Button","dialogActionLayoutClasses","dialogActionSizeClasses","DialogHeader","DialogFooter","DialogBody","DialogTitle","DialogDescription","DialogCancel"],"mappings":";;;;;;;;AAuBA,MAAM,kBAAA,GAAyC,EAAE,MAAA,EAAQ,SAAA,EAAW,SAAS,KAAA,EAAM;AAEnF,SAAS,YAAY,KAAA,EAAwC;AAC3D,EAAA,uBACEA,cAAA,CAACC,oBAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,kBAAA,EAC7B,QAAA,kBAAAD,cAAA,CAACE,uBAAA,CAAqB,IAAA,EAArB,EAA2B,GAAG,KAAA,EAAO,CAAA,EACxC,CAAA;AAEJ;AAOA,SAAS,mBAAmB,EAAE,SAAA,EAAW,OAAO,IAAA,EAAM,GAAG,OAAM,EAA4B;AACzF,EAAA,uCACGC,mBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAH,cAAA,CAACI,oBAAA,EAAA,EAAc,CAAA;AAAA,oBACfJ,cAAA;AAAA,MAACE,uBAAA,CAAqB,KAAA;AAAA,MAArB;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,WAAWG,WAAA,CAAGC,2BAAA,EAAsBC,+BAAA,CAAyB,IAAI,GAAG,SAAS,CAAA;AAAA,QAC5E,GAAG;AAAA;AAAA;AACN,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,iBAAA,CAAkB,EAAE,QAAA,EAAU,GAAG,OAAM,EAAqC;AACnF,EAAA,uBACEP,cAAA;AAAA,IAACE,uBAAA,CAAqB,KAAA;AAAA,IAArB;AAAA,MACC,MAAA,kBACEF,cAAA;AAAA,QAACQ,aAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAK,IAAA;AAAA,UACL,SAAA,EAAWH,WAAA,CAAGI,gCAAA,EAA2BC,8BAAA,CAAwB,EAAE,CAAA;AAAA,UACnE;AAAA;AAAA,OACF;AAAA,MAED,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,WAAA,CAAY,UAAUR,uBAAA,CAAqB,OAAA;AAC3C,WAAA,CAAY,OAAA,GAAU,kBAAA;AACtB,WAAA,CAAY,MAAA,GAASS,mBAAA;AACrB,WAAA,CAAY,MAAA,GAASC,mBAAA;AACrB,WAAA,CAAY,IAAA,GAAOC,iBAAA;AACnB,WAAA,CAAY,KAAA,GAAQC,kBAAA;AACpB,WAAA,CAAY,WAAA,GAAcC,wBAAA;AAC1B,WAAA,CAAY,MAAA,GAAS,iBAAA;AACrB,WAAA,CAAY,MAAA,GAASC,mBAAA;;;;"}
1
+ {"version":3,"file":"alert-dialog-DhG32okh.cjs","sources":["../src/ds/components/AlertDialog/alert-dialog.tsx"],"sourcesContent":["import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';\n\nimport { Button } from '@/ds/components/Button';\nimport {\n DialogBody,\n DialogCancel,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport {\n DialogContext,\n dialogActionLayoutClasses,\n dialogActionSizeClasses,\n} from '@/ds/components/Dialog/dialog-context';\nimport type { DialogContextValue } from '@/ds/components/Dialog/dialog-context';\nimport { dialogContentSizeClasses, dialogPopupClassName } from '@/ds/components/Dialog/dialog-shell';\nimport type { DialogSize } from '@/ds/components/Dialog/dialog-shell';\nimport { cn } from '@/lib/utils';\n\nconst alertDialogContext: DialogContextValue = { intent: 'default', pending: false };\n\nfunction AlertDialog(props: AlertDialogPrimitive.Root.Props) {\n return (\n <DialogContext.Provider value={alertDialogContext}>\n <AlertDialogPrimitive.Root {...props} />\n </DialogContext.Provider>\n );\n}\n\ntype AlertDialogContentProps = Omit<AlertDialogPrimitive.Popup.Props, 'className'> & {\n className?: string;\n size?: DialogSize;\n};\n\nfunction AlertDialogContent({ className, size = 'sm', ...props }: AlertDialogContentProps) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(dialogPopupClassName, dialogContentSizeClasses[size], className)}\n {...props}\n />\n </DialogPortal>\n );\n}\n\nfunction AlertDialogAction({ children, ...props }: AlertDialogPrimitive.Close.Props) {\n return (\n <AlertDialogPrimitive.Close\n render={\n <Button\n variant=\"primary\"\n size=\"md\"\n className={cn(dialogActionLayoutClasses, dialogActionSizeClasses.md)}\n children={children}\n />\n }\n {...props}\n />\n );\n}\n\nAlertDialog.Trigger = AlertDialogPrimitive.Trigger;\nAlertDialog.Content = AlertDialogContent;\nAlertDialog.Header = DialogHeader;\nAlertDialog.Footer = DialogFooter;\nAlertDialog.Body = DialogBody;\nAlertDialog.Title = DialogTitle;\nAlertDialog.Description = DialogDescription;\nAlertDialog.Action = AlertDialogAction;\nAlertDialog.Cancel = DialogCancel;\n\nexport { AlertDialog };\n"],"names":["jsx","DialogContext","AlertDialogPrimitive","DialogPortal","DialogOverlay","cn","dialogPopupClassName","dialogContentSizeClasses","Button","dialogActionLayoutClasses","dialogActionSizeClasses","DialogHeader","DialogFooter","DialogBody","DialogTitle","DialogDescription","DialogCancel"],"mappings":";;;;;;;;AAuBA,MAAM,kBAAA,GAAyC,EAAE,MAAA,EAAQ,SAAA,EAAW,SAAS,KAAA,EAAM;AAEnF,SAAS,YAAY,KAAA,EAAwC;AAC3D,EAAA,uBACEA,cAAA,CAACC,oBAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,kBAAA,EAC7B,QAAA,kBAAAD,cAAA,CAACE,uBAAA,CAAqB,IAAA,EAArB,EAA2B,GAAG,KAAA,EAAO,CAAA,EACxC,CAAA;AAEJ;AAOA,SAAS,mBAAmB,EAAE,SAAA,EAAW,OAAO,IAAA,EAAM,GAAG,OAAM,EAA4B;AACzF,EAAA,uCACGC,mBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAH,cAAA,CAACI,oBAAA,EAAA,EAAc,CAAA;AAAA,oBACfJ,cAAA;AAAA,MAACE,uBAAA,CAAqB,KAAA;AAAA,MAArB;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,WAAWG,WAAA,CAAGC,2BAAA,EAAsBC,+BAAA,CAAyB,IAAI,GAAG,SAAS,CAAA;AAAA,QAC5E,GAAG;AAAA;AAAA;AACN,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,iBAAA,CAAkB,EAAE,QAAA,EAAU,GAAG,OAAM,EAAqC;AACnF,EAAA,uBACEP,cAAA;AAAA,IAACE,uBAAA,CAAqB,KAAA;AAAA,IAArB;AAAA,MACC,MAAA,kBACEF,cAAA;AAAA,QAACQ,aAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAK,IAAA;AAAA,UACL,SAAA,EAAWH,WAAA,CAAGI,gCAAA,EAA2BC,8BAAA,CAAwB,EAAE,CAAA;AAAA,UACnE;AAAA;AAAA,OACF;AAAA,MAED,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,WAAA,CAAY,UAAUR,uBAAA,CAAqB,OAAA;AAC3C,WAAA,CAAY,OAAA,GAAU,kBAAA;AACtB,WAAA,CAAY,MAAA,GAASS,mBAAA;AACrB,WAAA,CAAY,MAAA,GAASC,mBAAA;AACrB,WAAA,CAAY,IAAA,GAAOC,iBAAA;AACnB,WAAA,CAAY,KAAA,GAAQC,kBAAA;AACpB,WAAA,CAAY,WAAA,GAAcC,wBAAA;AAC1B,WAAA,CAAY,MAAA,GAAS,iBAAA;AACrB,WAAA,CAAY,MAAA,GAASC,mBAAA;;;;"}
@@ -3,7 +3,7 @@ import { MessageCircleQuestion, Check } from 'lucide-react';
3
3
  import { useState } from 'react';
4
4
  import { B as Badge } from './Badge-DId-8rYY.js';
5
5
  import { B as Button } from './Button-D43ghVKt.js';
6
- import { C as Checkbox } from './checkbox-DyZhbQo9.js';
6
+ import { C as Checkbox } from './checkbox-DcNIsz5L.js';
7
7
  import { F as Field, e as FieldLabel, f as Fieldset, g as FieldsetLegend, d as FieldItem } from './field-BiMIiq2Y.js';
8
8
  import './field-control-aria-DB6y41tQ.js';
9
9
  import { I as Input } from './input-D5_B67_r.js';
@@ -212,4 +212,4 @@ const AskUser = ({ payload, ...props }) => {
212
212
  };
213
213
 
214
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 };
215
- //# sourceMappingURL=ask-user-BF4oruLl.js.map
215
+ //# sourceMappingURL=ask-user-CqCUiZRR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ask-user-BF4oruLl.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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"}
1
+ {"version":3,"file":"ask-user-CqCUiZRR.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,7 +5,7 @@ const lucideReact = require('lucide-react');
5
5
  const React = require('react');
6
6
  const Badge = require('./Badge-DB59RxT5.cjs');
7
7
  const Button = require('./Button-CXhSUBxN.cjs');
8
- const checkbox = require('./checkbox-BafbfFcE.cjs');
8
+ const checkbox = require('./checkbox-Bkobte27.cjs');
9
9
  const field = require('./field-BkeKcz_6.cjs');
10
10
  require('./field-control-aria-WzMGs0A4.cjs');
11
11
  const input = require('./input-D0UPyj6A.cjs');
@@ -222,4 +222,4 @@ exports.AskUserOutput = AskUserOutput;
222
222
  exports.AskUserPending = AskUserPending;
223
223
  exports.AskUserQuestion = AskUserQuestion;
224
224
  exports.AskUserSubmit = AskUserSubmit;
225
- //# sourceMappingURL=ask-user-BkfO8oNm.cjs.map
225
+ //# sourceMappingURL=ask-user-DBb0lUh2.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ask-user-BkfO8oNm.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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"}
1
+ {"version":3,"file":"ask-user-DBb0lUh2.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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"}
@@ -75,7 +75,7 @@ function CheckboxIndicatorIcon() {
75
75
  lucideReact.Check,
76
76
  {
77
77
  className: utils_cn.cn(
78
- "size-3 scale-95 stroke-[3.25] transition-[stroke-dashoffset,transform] duration-200 ease-out-custom",
78
+ "stroke-3.25 size-3 scale-95 transition-[stroke-dashoffset,transform] duration-200 ease-out-custom",
79
79
  // Lucide's check path is ~22.6 units long. Use a longer dash so the
80
80
  // final checked mark is never clipped.
81
81
  "[stroke-dasharray:28] [stroke-dashoffset:28]",
@@ -89,7 +89,7 @@ function CheckboxIndicatorIcon() {
89
89
  lucideReact.Minus,
90
90
  {
91
91
  className: utils_cn.cn(
92
- "hidden size-3 scale-95 stroke-[3.25] transition-transform duration-200 ease-out-custom",
92
+ "stroke-3.25 hidden size-3 scale-95 transition-transform duration-200 ease-out-custom",
93
93
  "group-data-[indeterminate]/checkbox-indicator:block",
94
94
  "group-data-[indeterminate]/checkbox-indicator:scale-100"
95
95
  )
@@ -99,4 +99,4 @@ function CheckboxIndicatorIcon() {
99
99
  }
100
100
 
101
101
  exports.Checkbox = Checkbox;
102
- //# sourceMappingURL=checkbox-BafbfFcE.cjs.map
102
+ //# sourceMappingURL=checkbox-Bkobte27.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-BafbfFcE.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 'size-3 scale-95 stroke-[3.25] 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 'hidden size-3 scale-95 stroke-[3.25] 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,qGAAA;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,wFAAA;AAAA,UACA,qDAAA;AAAA,UACA;AAAA;AACF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
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;;;;"}
@@ -54,7 +54,7 @@ function CheckboxIndicatorIcon() {
54
54
  Check,
55
55
  {
56
56
  className: cn(
57
- "size-3 scale-95 stroke-[3.25] transition-[stroke-dashoffset,transform] duration-200 ease-out-custom",
57
+ "stroke-3.25 size-3 scale-95 transition-[stroke-dashoffset,transform] duration-200 ease-out-custom",
58
58
  // Lucide's check path is ~22.6 units long. Use a longer dash so the
59
59
  // final checked mark is never clipped.
60
60
  "[stroke-dasharray:28] [stroke-dashoffset:28]",
@@ -68,7 +68,7 @@ function CheckboxIndicatorIcon() {
68
68
  Minus,
69
69
  {
70
70
  className: cn(
71
- "hidden size-3 scale-95 stroke-[3.25] transition-transform duration-200 ease-out-custom",
71
+ "stroke-3.25 hidden size-3 scale-95 transition-transform duration-200 ease-out-custom",
72
72
  "group-data-[indeterminate]/checkbox-indicator:block",
73
73
  "group-data-[indeterminate]/checkbox-indicator:scale-100"
74
74
  )
@@ -78,4 +78,4 @@ function CheckboxIndicatorIcon() {
78
78
  }
79
79
 
80
80
  export { Checkbox as C };
81
- //# sourceMappingURL=checkbox-DyZhbQo9.js.map
81
+ //# sourceMappingURL=checkbox-DcNIsz5L.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-DyZhbQo9.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 'size-3 scale-95 stroke-[3.25] 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 'hidden size-3 scale-95 stroke-[3.25] 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,qGAAA;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,wFAAA;AAAA,UACA,qDAAA;AAAA,UACA;AAAA;AACF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
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;;;;"}
@@ -8,7 +8,7 @@ const comboboxStyles = require('./combobox-styles-zdW4cHSq.cjs');
8
8
  const Button = require('./Button-CXhSUBxN.cjs');
9
9
  const fieldControlAria = require('./field-control-aria-WzMGs0A4.cjs');
10
10
  const fieldErrorId = require('./field-error-id-4xiCVBJ_.cjs');
11
- const scrollArea = require('./scroll-area-CEuf7Omb.cjs');
11
+ const scrollArea = require('./scroll-area-gN-e805H.cjs');
12
12
  const primitives_floating = require('./primitives/floating.cjs.js');
13
13
  const primitives_fluidMenu = require('./primitives/fluid-menu.cjs.js');
14
14
  const primitives_formElement = require('./primitives/form-element.cjs.js');
@@ -211,4 +211,4 @@ function Combobox(props) {
211
211
  }
212
212
 
213
213
  exports.Combobox = Combobox;
214
- //# sourceMappingURL=combobox-DPpiBLWV.cjs.map
214
+ //# sourceMappingURL=combobox-BaVFPQ6X.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox-DPpiBLWV.cjs","sources":["../src/ds/components/Combobox/combobox.tsx"],"sourcesContent":["import { Combobox as BaseCombobox } from '@base-ui/react/combobox';\nimport { Check, ChevronsUpDown, Search, X } from 'lucide-react';\nimport * as React from 'react';\nimport { comboboxItemClass, comboboxStyles, comboboxTriggerClass } from './combobox-styles';\nimport type { ComboboxVariant } from './combobox-styles';\nimport { Button, isIconButtonSize } from '@/ds/components/Button/Button';\nimport type { ButtonSize } from '@/ds/components/Button/Button';\nimport { keepOwnAccessibleName, useFieldAriaIds } from '@/ds/components/Field/field-control-aria';\nimport { FieldBlock } from '@/ds/components/FormFieldBlocks/block/field-block';\nimport { fieldErrorId } from '@/ds/components/FormFieldBlocks/block/field-error-id';\nimport { ScrollArea, ScrollAreaViewport } from '@/ds/components/ScrollArea';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { deprecatedErrorAria } from '@/ds/primitives/form-element';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { cn } from '@/lib/utils';\n\nexport type { ComboboxVariant } from './combobox-styles';\n\nexport type ComboboxOption = {\n label: string;\n value: string;\n description?: string;\n displayLabel?: React.ReactNode;\n start?: React.ReactNode;\n end?: React.ReactNode;\n};\n\ntype ComboboxSharedProps = {\n options: ComboboxOption[];\n placeholder?: React.ReactNode;\n searchPlaceholder?: string;\n emptyText?: string;\n className?: string;\n disabled?: boolean;\n variant?: ComboboxVariant;\n /** Icon sizes (`icon-*`) render a chevron-only trigger; pass `aria-label` to name it. */\n size?: ButtonSize;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n container?: HTMLElement | ShadowRoot | null | React.RefObject<HTMLElement | ShadowRoot | null>;\n id?: string;\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n /** Which edge of the trigger the popup lines up with. `end` opens it leftwards (e.g. an icon trigger at the end of a row). */\n align?: 'start' | 'center' | 'end';\n showChevron?: boolean;\n iconOnlyValue?: boolean;\n allowCustomValue?: boolean;\n /** Called with the search input text as it changes (and with `''` after a single-mode selection resets it). */\n onInputValueChange?: (value: string) => void;\n /** @deprecated Wrap the combobox in `<Field invalid>` with a `FieldError`. */\n error?: string;\n /** @deprecated Only keyed the `error` message id; a `Field` links its error without one. */\n name?: string;\n};\n\nexport type ComboboxSingleProps = ComboboxSharedProps & {\n multiple?: false;\n value?: string;\n onValueChange?: (value: string) => void;\n};\n\nexport type ComboboxMultipleProps = ComboboxSharedProps & {\n multiple: true;\n value?: readonly string[];\n onValueChange?: (value: string[]) => void;\n clearLabel?: string;\n};\n\nexport type ComboboxProps = ComboboxSingleProps | ComboboxMultipleProps;\n\nconst EMPTY_VALUES: string[] = [];\nconst EMPTY_OPTIONS: ComboboxOption[] = [];\n\nfunction isMultipleCombobox(props: ComboboxProps): props is ComboboxMultipleProps {\n return props.multiple === true;\n}\n\nconst ComboboxItem = React.forwardRef<HTMLDivElement, BaseCombobox.Item.Props>((props, ref) => (\n <BaseCombobox.Item ref={useFluidMenuItemRef(ref)} {...props} />\n));\nComboboxItem.displayName = 'ComboboxItem';\n\nfunction ComboboxOptionText({ option }: { option: ComboboxOption }) {\n return (\n <span className={comboboxStyles.optionText}>\n <span className={comboboxStyles.optionLabel}>{option.label}</span>\n {option.description && <span className={comboboxStyles.optionDescription}>{option.description}</span>}\n </span>\n );\n}\n\nexport function Combobox(props: ComboboxProps) {\n const {\n options,\n placeholder = isMultipleCombobox(props) ? 'Select options...' : 'Select option...',\n searchPlaceholder = 'Search...',\n emptyText = 'No option found.',\n className,\n disabled = false,\n variant = 'default',\n size = 'md',\n open,\n onOpenChange,\n container,\n id,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n align = 'start',\n showChevron = true,\n iconOnlyValue = false,\n allowCustomValue = false,\n onInputValueChange,\n error,\n name,\n } = props;\n const multiple = isMultipleCombobox(props);\n const clearLabel = multiple ? props.clearLabel : undefined;\n const field = useFieldAriaIds();\n const generatedName = React.useId();\n const errorName = name ?? generatedName;\n const describedBy =\n [ariaDescribedBy, error ? fieldErrorId(errorName) : undefined].filter(Boolean).join(' ') || undefined;\n const [inputValue, setInputValue] = React.useState('');\n const customValue = inputValue.trim();\n const customOption =\n !multiple && allowCustomValue && customValue && !options.some(option => option.value === customValue)\n ? { label: `Use “${customValue}”`, value: customValue }\n : undefined;\n const displayedOptions = customOption ? [customOption, ...options] : options;\n const selectedValues = multiple ? (props.value ?? EMPTY_VALUES) : EMPTY_VALUES;\n const selectedValueSet = React.useMemo(() => new Set(selectedValues), [selectedValues]);\n const selectedOption = multiple ? null : (options.find(option => option.value === props.value) ?? null);\n const selectedOptions = multiple ? options.filter(option => selectedValueSet.has(option.value)) : EMPTY_OPTIONS;\n const triggerText = selectedOptions.length === 0 ? placeholder : `${selectedOptions.length} selected`;\n const clearSelection = () => {\n if (isMultipleCombobox(props)) props.onValueChange?.([]);\n };\n // Default to the nearest SideDialog/Drawer popup so the list stays\n // interactive inside a modal drawer; an explicit `container` still wins.\n const resolvedContainer = usePortalContainer(container);\n const menu = useFluidMenu<HTMLDivElement>();\n const iconOnly = isIconButtonSize(size);\n\n const comboboxContent = (\n <>\n <BaseCombobox.Trigger\n id={id}\n aria-label={ariaLabel ?? (id || field ? undefined : multiple ? 'Select options' : 'Select option')}\n {...keepOwnAccessibleName({ 'aria-label': ariaLabel })}\n {...deprecatedErrorAria(Boolean(error))}\n aria-describedby={describedBy}\n data-shape={iconOnly ? 'icon' : undefined}\n className={comboboxTriggerClass({\n variant,\n size,\n className: cn(iconOnlyValue && 'w-auto px-2.5', className),\n })}\n >\n {iconOnly ? (\n <span className=\"sr-only\">{multiple ? triggerText : <BaseCombobox.Value placeholder={placeholder} />}</span>\n ) : multiple ? (\n <span className={cn('truncate', selectedOptions.length === 0 && comboboxStyles.placeholder)}>\n {triggerText}\n </span>\n ) : (\n // Keep truncation off the outer wrapper so start adornments are not clipped.\n <span className={cn('flex min-w-0 flex-1 items-center', iconOnlyValue ? 'justify-center' : 'gap-2')}>\n {selectedOption?.start}\n <span className=\"truncate\">\n {selectedOption?.displayLabel ?? <BaseCombobox.Value placeholder={placeholder} />}\n </span>\n </span>\n )}\n {/* Wrap the chevron in a `<span>` so the svg is one level deep and\n escapes Button's `[&>svg]` adornments — mirrors Select's chevron wrap. */}\n {showChevron ? (\n <span className=\"flex shrink-0 items-center\">\n <ChevronsUpDown className={cn(comboboxStyles.chevron, (iconOnly || iconOnlyValue) && 'ml-0')} />\n </span>\n ) : null}\n </BaseCombobox.Trigger>\n\n <BaseCombobox.Portal container={resolvedContainer}>\n <BaseCombobox.Positioner\n align={align}\n sideOffset={4}\n positionMethod={FLOATING_POSITION_METHOD}\n className={comboboxStyles.positioner}\n >\n <BaseCombobox.Popup className={comboboxStyles.popup}>\n <div className={comboboxStyles.searchContainer}>\n <Search className={comboboxStyles.searchIcon} />\n <BaseCombobox.Input className={comboboxStyles.searchInput} placeholder={searchPlaceholder} />\n </div>\n <BaseCombobox.Empty className={comboboxStyles.empty}>{emptyText}</BaseCombobox.Empty>\n <ScrollArea maxHeight=\"var(--spacing-dropdown)\">\n <ScrollAreaViewport className=\"scroll-py-8\">\n <div className={menu.containerClassName} {...menu.getContainerProps({})}>\n <FluidMenuItems menu={menu}>\n <BaseCombobox.List className={comboboxStyles.list}>\n {(option: ComboboxOption) => {\n const isSelected = selectedValueSet.has(option.value);\n\n return (\n <ComboboxItem key={option.value} value={option} className={comboboxItemClass({ multiple })}>\n {multiple ? (\n <>\n {option.start}\n <ComboboxOptionText option={option} />\n <span className={comboboxStyles.itemRightSlot}>\n {option.end ? <div className={comboboxStyles.optionEnd}>{option.end}</div> : null}\n <span className={comboboxStyles.checkContainer}>\n {isSelected ? <Check className={comboboxStyles.checkIcon} /> : null}\n </span>\n </span>\n </>\n ) : (\n <>\n {option.start}\n <ComboboxOptionText option={option} />\n <span className={comboboxStyles.itemRightSlot}>\n {option.end ? <div className={comboboxStyles.optionEnd}>{option.end}</div> : null}\n <span className={comboboxStyles.checkContainer}>\n <BaseCombobox.ItemIndicator>\n <Check className={comboboxStyles.checkIcon} />\n </BaseCombobox.ItemIndicator>\n </span>\n </span>\n </>\n )}\n </ComboboxItem>\n );\n }}\n </BaseCombobox.List>\n </FluidMenuItems>\n </div>\n </ScrollAreaViewport>\n </ScrollArea>\n {selectedValues.length > 0 && clearLabel ? (\n <div className={cn('border-t', 'border-border', 'p-1')}>\n <Button\n type=\"button\"\n variant=\"destructive-ghost\"\n size=\"sm\"\n className=\"w-full justify-start\"\n onClick={clearSelection}\n icon={<X />}\n >\n {clearLabel}\n </Button>\n </div>\n ) : null}\n </BaseCombobox.Popup>\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n </>\n );\n\n const root = multiple ? (\n <BaseCombobox.Root\n multiple\n autoHighlight\n items={displayedOptions}\n value={selectedOptions}\n onValueChange={items => props.onValueChange?.((items ?? []).map(item => item.value))}\n disabled={disabled}\n open={open}\n onOpenChange={onOpenChange}\n >\n {comboboxContent}\n </BaseCombobox.Root>\n ) : (\n <BaseCombobox.Root\n autoHighlight\n items={displayedOptions}\n value={selectedOption}\n inputValue={inputValue}\n onInputValueChange={value => {\n setInputValue(value);\n onInputValueChange?.(value);\n }}\n onValueChange={item => {\n if (item) {\n props.onValueChange?.(item.value);\n setInputValue('');\n onInputValueChange?.('');\n }\n }}\n disabled={disabled}\n open={open}\n onOpenChange={onOpenChange}\n >\n {comboboxContent}\n </BaseCombobox.Root>\n );\n\n if (!error) return root;\n\n return (\n <div className={comboboxStyles.root}>\n {root}\n <FieldBlock.ErrorMsg name={errorName}>{error}</FieldBlock.ErrorMsg>\n </div>\n );\n}\n"],"names":["React","jsx","BaseCombobox","useFluidMenuItemRef","jsxs","comboboxStyles","useFieldAriaIds","fieldErrorId","usePortalContainer","useFluidMenu","isIconButtonSize","Fragment","keepOwnAccessibleName","deprecatedErrorAria","comboboxTriggerClass","cn","ChevronsUpDown","FLOATING_POSITION_METHOD","Search","ScrollArea","ScrollAreaViewport","FluidMenuItems","comboboxItemClass","Check","Button","X","FieldBlock"],"mappings":"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"}
1
+ {"version":3,"file":"combobox-BaVFPQ6X.cjs","sources":["../src/ds/components/Combobox/combobox.tsx"],"sourcesContent":["import { Combobox as BaseCombobox } from '@base-ui/react/combobox';\nimport { Check, ChevronsUpDown, Search, X } from 'lucide-react';\nimport * as React from 'react';\nimport { comboboxItemClass, comboboxStyles, comboboxTriggerClass } from './combobox-styles';\nimport type { ComboboxVariant } from './combobox-styles';\nimport { Button, isIconButtonSize } from '@/ds/components/Button/Button';\nimport type { ButtonSize } from '@/ds/components/Button/Button';\nimport { keepOwnAccessibleName, useFieldAriaIds } from '@/ds/components/Field/field-control-aria';\nimport { FieldBlock } from '@/ds/components/FormFieldBlocks/block/field-block';\nimport { fieldErrorId } from '@/ds/components/FormFieldBlocks/block/field-error-id';\nimport { ScrollArea, ScrollAreaViewport } from '@/ds/components/ScrollArea';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { deprecatedErrorAria } from '@/ds/primitives/form-element';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { cn } from '@/lib/utils';\n\nexport type { ComboboxVariant } from './combobox-styles';\n\nexport type ComboboxOption = {\n label: string;\n value: string;\n description?: string;\n displayLabel?: React.ReactNode;\n start?: React.ReactNode;\n end?: React.ReactNode;\n};\n\ntype ComboboxSharedProps = {\n options: ComboboxOption[];\n placeholder?: React.ReactNode;\n searchPlaceholder?: string;\n emptyText?: string;\n className?: string;\n disabled?: boolean;\n variant?: ComboboxVariant;\n /** Icon sizes (`icon-*`) render a chevron-only trigger; pass `aria-label` to name it. */\n size?: ButtonSize;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n container?: HTMLElement | ShadowRoot | null | React.RefObject<HTMLElement | ShadowRoot | null>;\n id?: string;\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n /** Which edge of the trigger the popup lines up with. `end` opens it leftwards (e.g. an icon trigger at the end of a row). */\n align?: 'start' | 'center' | 'end';\n showChevron?: boolean;\n iconOnlyValue?: boolean;\n allowCustomValue?: boolean;\n /** Called with the search input text as it changes (and with `''` after a single-mode selection resets it). */\n onInputValueChange?: (value: string) => void;\n /** @deprecated Wrap the combobox in `<Field invalid>` with a `FieldError`. */\n error?: string;\n /** @deprecated Only keyed the `error` message id; a `Field` links its error without one. */\n name?: string;\n};\n\nexport type ComboboxSingleProps = ComboboxSharedProps & {\n multiple?: false;\n value?: string;\n onValueChange?: (value: string) => void;\n};\n\nexport type ComboboxMultipleProps = ComboboxSharedProps & {\n multiple: true;\n value?: readonly string[];\n onValueChange?: (value: string[]) => void;\n clearLabel?: string;\n};\n\nexport type ComboboxProps = ComboboxSingleProps | ComboboxMultipleProps;\n\nconst EMPTY_VALUES: string[] = [];\nconst EMPTY_OPTIONS: ComboboxOption[] = [];\n\nfunction isMultipleCombobox(props: ComboboxProps): props is ComboboxMultipleProps {\n return props.multiple === true;\n}\n\nconst ComboboxItem = React.forwardRef<HTMLDivElement, BaseCombobox.Item.Props>((props, ref) => (\n <BaseCombobox.Item ref={useFluidMenuItemRef(ref)} {...props} />\n));\nComboboxItem.displayName = 'ComboboxItem';\n\nfunction ComboboxOptionText({ option }: { option: ComboboxOption }) {\n return (\n <span className={comboboxStyles.optionText}>\n <span className={comboboxStyles.optionLabel}>{option.label}</span>\n {option.description && <span className={comboboxStyles.optionDescription}>{option.description}</span>}\n </span>\n );\n}\n\nexport function Combobox(props: ComboboxProps) {\n const {\n options,\n placeholder = isMultipleCombobox(props) ? 'Select options...' : 'Select option...',\n searchPlaceholder = 'Search...',\n emptyText = 'No option found.',\n className,\n disabled = false,\n variant = 'default',\n size = 'md',\n open,\n onOpenChange,\n container,\n id,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n align = 'start',\n showChevron = true,\n iconOnlyValue = false,\n allowCustomValue = false,\n onInputValueChange,\n error,\n name,\n } = props;\n const multiple = isMultipleCombobox(props);\n const clearLabel = multiple ? props.clearLabel : undefined;\n const field = useFieldAriaIds();\n const generatedName = React.useId();\n const errorName = name ?? generatedName;\n const describedBy =\n [ariaDescribedBy, error ? fieldErrorId(errorName) : undefined].filter(Boolean).join(' ') || undefined;\n const [inputValue, setInputValue] = React.useState('');\n const customValue = inputValue.trim();\n const customOption =\n !multiple && allowCustomValue && customValue && !options.some(option => option.value === customValue)\n ? { label: `Use “${customValue}”`, value: customValue }\n : undefined;\n const displayedOptions = customOption ? [customOption, ...options] : options;\n const selectedValues = multiple ? (props.value ?? EMPTY_VALUES) : EMPTY_VALUES;\n const selectedValueSet = React.useMemo(() => new Set(selectedValues), [selectedValues]);\n const selectedOption = multiple ? null : (options.find(option => option.value === props.value) ?? null);\n const selectedOptions = multiple ? options.filter(option => selectedValueSet.has(option.value)) : EMPTY_OPTIONS;\n const triggerText = selectedOptions.length === 0 ? placeholder : `${selectedOptions.length} selected`;\n const clearSelection = () => {\n if (isMultipleCombobox(props)) props.onValueChange?.([]);\n };\n // Default to the nearest SideDialog/Drawer popup so the list stays\n // interactive inside a modal drawer; an explicit `container` still wins.\n const resolvedContainer = usePortalContainer(container);\n const menu = useFluidMenu<HTMLDivElement>();\n const iconOnly = isIconButtonSize(size);\n\n const comboboxContent = (\n <>\n <BaseCombobox.Trigger\n id={id}\n aria-label={ariaLabel ?? (id || field ? undefined : multiple ? 'Select options' : 'Select option')}\n {...keepOwnAccessibleName({ 'aria-label': ariaLabel })}\n {...deprecatedErrorAria(Boolean(error))}\n aria-describedby={describedBy}\n data-shape={iconOnly ? 'icon' : undefined}\n className={comboboxTriggerClass({\n variant,\n size,\n className: cn(iconOnlyValue && 'w-auto px-2.5', className),\n })}\n >\n {iconOnly ? (\n <span className=\"sr-only\">{multiple ? triggerText : <BaseCombobox.Value placeholder={placeholder} />}</span>\n ) : multiple ? (\n <span className={cn('truncate', selectedOptions.length === 0 && comboboxStyles.placeholder)}>\n {triggerText}\n </span>\n ) : (\n // Keep truncation off the outer wrapper so start adornments are not clipped.\n <span className={cn('flex min-w-0 flex-1 items-center', iconOnlyValue ? 'justify-center' : 'gap-2')}>\n {selectedOption?.start}\n <span className=\"truncate\">\n {selectedOption?.displayLabel ?? <BaseCombobox.Value placeholder={placeholder} />}\n </span>\n </span>\n )}\n {/* Wrap the chevron in a `<span>` so the svg is one level deep and\n escapes Button's `[&>svg]` adornments — mirrors Select's chevron wrap. */}\n {showChevron ? (\n <span className=\"flex shrink-0 items-center\">\n <ChevronsUpDown className={cn(comboboxStyles.chevron, (iconOnly || iconOnlyValue) && 'ml-0')} />\n </span>\n ) : null}\n </BaseCombobox.Trigger>\n\n <BaseCombobox.Portal container={resolvedContainer}>\n <BaseCombobox.Positioner\n align={align}\n sideOffset={4}\n positionMethod={FLOATING_POSITION_METHOD}\n className={comboboxStyles.positioner}\n >\n <BaseCombobox.Popup className={comboboxStyles.popup}>\n <div className={comboboxStyles.searchContainer}>\n <Search className={comboboxStyles.searchIcon} />\n <BaseCombobox.Input className={comboboxStyles.searchInput} placeholder={searchPlaceholder} />\n </div>\n <BaseCombobox.Empty className={comboboxStyles.empty}>{emptyText}</BaseCombobox.Empty>\n <ScrollArea maxHeight=\"var(--spacing-dropdown)\">\n <ScrollAreaViewport className=\"scroll-py-8\">\n <div className={menu.containerClassName} {...menu.getContainerProps({})}>\n <FluidMenuItems menu={menu}>\n <BaseCombobox.List className={comboboxStyles.list}>\n {(option: ComboboxOption) => {\n const isSelected = selectedValueSet.has(option.value);\n\n return (\n <ComboboxItem key={option.value} value={option} className={comboboxItemClass({ multiple })}>\n {multiple ? (\n <>\n {option.start}\n <ComboboxOptionText option={option} />\n <span className={comboboxStyles.itemRightSlot}>\n {option.end ? <div className={comboboxStyles.optionEnd}>{option.end}</div> : null}\n <span className={comboboxStyles.checkContainer}>\n {isSelected ? <Check className={comboboxStyles.checkIcon} /> : null}\n </span>\n </span>\n </>\n ) : (\n <>\n {option.start}\n <ComboboxOptionText option={option} />\n <span className={comboboxStyles.itemRightSlot}>\n {option.end ? <div className={comboboxStyles.optionEnd}>{option.end}</div> : null}\n <span className={comboboxStyles.checkContainer}>\n <BaseCombobox.ItemIndicator>\n <Check className={comboboxStyles.checkIcon} />\n </BaseCombobox.ItemIndicator>\n </span>\n </span>\n </>\n )}\n </ComboboxItem>\n );\n }}\n </BaseCombobox.List>\n </FluidMenuItems>\n </div>\n </ScrollAreaViewport>\n </ScrollArea>\n {selectedValues.length > 0 && clearLabel ? (\n <div className={cn('border-t', 'border-border', 'p-1')}>\n <Button\n type=\"button\"\n variant=\"destructive-ghost\"\n size=\"sm\"\n className=\"w-full justify-start\"\n onClick={clearSelection}\n icon={<X />}\n >\n {clearLabel}\n </Button>\n </div>\n ) : null}\n </BaseCombobox.Popup>\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n </>\n );\n\n const root = multiple ? (\n <BaseCombobox.Root\n multiple\n autoHighlight\n items={displayedOptions}\n value={selectedOptions}\n onValueChange={items => props.onValueChange?.((items ?? []).map(item => item.value))}\n disabled={disabled}\n open={open}\n onOpenChange={onOpenChange}\n >\n {comboboxContent}\n </BaseCombobox.Root>\n ) : (\n <BaseCombobox.Root\n autoHighlight\n items={displayedOptions}\n value={selectedOption}\n inputValue={inputValue}\n onInputValueChange={value => {\n setInputValue(value);\n onInputValueChange?.(value);\n }}\n onValueChange={item => {\n if (item) {\n props.onValueChange?.(item.value);\n setInputValue('');\n onInputValueChange?.('');\n }\n }}\n disabled={disabled}\n open={open}\n onOpenChange={onOpenChange}\n >\n {comboboxContent}\n </BaseCombobox.Root>\n );\n\n if (!error) return root;\n\n return (\n <div className={comboboxStyles.root}>\n {root}\n <FieldBlock.ErrorMsg name={errorName}>{error}</FieldBlock.ErrorMsg>\n </div>\n );\n}\n"],"names":["React","jsx","BaseCombobox","useFluidMenuItemRef","jsxs","comboboxStyles","useFieldAriaIds","fieldErrorId","usePortalContainer","useFluidMenu","isIconButtonSize","Fragment","keepOwnAccessibleName","deprecatedErrorAria","comboboxTriggerClass","cn","ChevronsUpDown","FLOATING_POSITION_METHOD","Search","ScrollArea","ScrollAreaViewport","FluidMenuItems","comboboxItemClass","Check","Button","X","FieldBlock"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { c as comboboxStyles, a as comboboxTriggerClass, b as comboboxItemClass
6
6
  import { i as isIconButtonSize, B as Button } from './Button-D43ghVKt.js';
7
7
  import { a as useFieldAriaIds, k as keepOwnAccessibleName } from './field-control-aria-DB6y41tQ.js';
8
8
  import { F as FieldBlock, f as fieldErrorId } from './field-error-id-CSvLKtJE.js';
9
- import { S as ScrollArea, a as ScrollAreaViewport } from './scroll-area-Ds-fJn5M.js';
9
+ import { S as ScrollArea, a as ScrollAreaViewport } from './scroll-area-CfoN8Hpp.js';
10
10
  import { FLOATING_POSITION_METHOD } from './primitives/floating.es.js';
11
11
  import { useFluidMenu, FluidMenuItems, useFluidMenuItemRef } from './primitives/fluid-menu.es.js';
12
12
  import { deprecatedErrorAria } from './primitives/form-element.es.js';
@@ -190,4 +190,4 @@ function Combobox(props) {
190
190
  }
191
191
 
192
192
  export { Combobox as C };
193
- //# sourceMappingURL=combobox-DoJgbq9N.js.map
193
+ //# sourceMappingURL=combobox-NPw0vrSa.js.map