@wildo-ai/presets-components 1.1.4 → 1.1.5

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 (705) hide show
  1. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  2. package/dist/esm/components/actions/action-bar.js +61 -7
  3. package/dist/esm/components/actions/action-bar.js.map +1 -1
  4. package/dist/esm/components/actions/action-bar.labels.d.ts.map +1 -1
  5. package/dist/esm/components/actions/action-button.d.ts.map +1 -1
  6. package/dist/esm/components/actions/action-button.js +3 -3
  7. package/dist/esm/components/actions/action-button.js.map +1 -1
  8. package/dist/esm/components/actions/action-button.labels.d.ts.map +1 -1
  9. package/dist/esm/components/actions/button-group.d.ts.map +1 -1
  10. package/dist/esm/components/actions/button.d.ts.map +1 -1
  11. package/dist/esm/components/actions/button.js +62 -3
  12. package/dist/esm/components/actions/button.js.map +1 -1
  13. package/dist/esm/components/actions/button.labels.d.ts.map +1 -1
  14. package/dist/esm/components/ai-elements/artifacts/artifact-browser.d.ts.map +1 -1
  15. package/dist/esm/components/ai-elements/artifacts/artifact.d.ts.map +1 -1
  16. package/dist/esm/components/ai-elements/artifacts/artifact.labels.d.ts.map +1 -1
  17. package/dist/esm/components/ai-elements/artifacts/code-block.d.ts.map +1 -1
  18. package/dist/esm/components/ai-elements/artifacts/code-block.js +1 -1
  19. package/dist/esm/components/ai-elements/artifacts/code-block.js.map +1 -1
  20. package/dist/esm/components/ai-elements/artifacts/code-block.labels.d.ts.map +1 -1
  21. package/dist/esm/components/ai-elements/artifacts/diff-block.d.ts +4 -0
  22. package/dist/esm/components/ai-elements/artifacts/diff-block.d.ts.map +1 -0
  23. package/dist/esm/components/ai-elements/artifacts/diff-block.js +165 -0
  24. package/dist/esm/components/ai-elements/artifacts/diff-block.js.map +1 -0
  25. package/dist/esm/components/ai-elements/artifacts/diff-block.labels.d.ts +3 -0
  26. package/dist/esm/components/ai-elements/artifacts/diff-block.labels.d.ts.map +1 -0
  27. package/dist/esm/components/ai-elements/artifacts/diff-block.labels.js +63 -0
  28. package/dist/esm/components/ai-elements/artifacts/diff-block.labels.js.map +1 -0
  29. package/dist/esm/components/ai-elements/artifacts/image.d.ts.map +1 -1
  30. package/dist/esm/components/ai-elements/artifacts/image.labels.d.ts.map +1 -1
  31. package/dist/esm/components/ai-elements/artifacts/shiki-highlighter-runtime.d.ts.map +1 -1
  32. package/dist/esm/components/ai-elements/artifacts/shiki-highlighter.lazy.d.ts.map +1 -1
  33. package/dist/esm/components/ai-elements/artifacts/web-preview.d.ts.map +1 -1
  34. package/dist/esm/components/ai-elements/artifacts/web-preview.labels.d.ts.map +1 -1
  35. package/dist/esm/components/ai-elements/chat/conversation.d.ts.map +1 -1
  36. package/dist/esm/components/ai-elements/chat/conversation.labels.d.ts.map +1 -1
  37. package/dist/esm/components/ai-elements/chat/message.d.ts.map +1 -1
  38. package/dist/esm/components/ai-elements/chat/message.labels.d.ts.map +1 -1
  39. package/dist/esm/components/ai-elements/chat/prompt-input.d.ts.map +1 -1
  40. package/dist/esm/components/ai-elements/chat/prompt-input.labels.d.ts.map +1 -1
  41. package/dist/esm/components/ai-elements/chat/sources.d.ts.map +1 -1
  42. package/dist/esm/components/ai-elements/chat/sources.labels.d.ts.map +1 -1
  43. package/dist/esm/components/ai-elements/chat/suggestion.d.ts.map +1 -1
  44. package/dist/esm/components/ai-elements/chat/suggestion.labels.d.ts.map +1 -1
  45. package/dist/esm/components/ai-elements/decision/approval-argument-fields.d.ts +68 -0
  46. package/dist/esm/components/ai-elements/decision/approval-argument-fields.d.ts.map +1 -0
  47. package/dist/esm/components/ai-elements/decision/approval-argument-fields.js +208 -0
  48. package/dist/esm/components/ai-elements/decision/approval-argument-fields.js.map +1 -0
  49. package/dist/esm/components/ai-elements/decision/approval.d.ts +17 -5
  50. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  51. package/dist/esm/components/ai-elements/decision/approval.js +49 -7
  52. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  53. package/dist/esm/components/ai-elements/decision/decision-request.d.ts.map +1 -1
  54. package/dist/esm/components/ai-elements/decision/decision-request.labels.d.ts.map +1 -1
  55. package/dist/esm/components/ai-elements/execution/confirmation.d.ts.map +1 -1
  56. package/dist/esm/components/ai-elements/execution/confirmation.labels.d.ts.map +1 -1
  57. package/dist/esm/components/ai-elements/execution/queue.d.ts.map +1 -1
  58. package/dist/esm/components/ai-elements/execution/queue.labels.d.ts.map +1 -1
  59. package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -1
  60. package/dist/esm/components/ai-elements/execution/task.js +1 -1
  61. package/dist/esm/components/ai-elements/execution/task.js.map +1 -1
  62. package/dist/esm/components/ai-elements/execution/task.labels.d.ts.map +1 -1
  63. package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
  64. package/dist/esm/components/ai-elements/execution/tool.js +8 -1
  65. package/dist/esm/components/ai-elements/execution/tool.js.map +1 -1
  66. package/dist/esm/components/ai-elements/execution/tool.labels.d.ts.map +1 -1
  67. package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
  68. package/dist/esm/components/ai-elements/graph/canvas.labels.d.ts.map +1 -1
  69. package/dist/esm/components/ai-elements/graph/connection.d.ts.map +1 -1
  70. package/dist/esm/components/ai-elements/graph/connection.labels.d.ts.map +1 -1
  71. package/dist/esm/components/ai-elements/graph/controls.d.ts.map +1 -1
  72. package/dist/esm/components/ai-elements/graph/controls.labels.d.ts.map +1 -1
  73. package/dist/esm/components/ai-elements/graph/edge.d.ts.map +1 -1
  74. package/dist/esm/components/ai-elements/graph/edge.labels.d.ts.map +1 -1
  75. package/dist/esm/components/ai-elements/graph/graph-runtime.d.ts.map +1 -1
  76. package/dist/esm/components/ai-elements/graph/graph.lazy.d.ts.map +1 -1
  77. package/dist/esm/components/ai-elements/graph/graph.lazy.js +15 -15
  78. package/dist/esm/components/ai-elements/graph/graph.lazy.js.map +1 -1
  79. package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
  80. package/dist/esm/components/ai-elements/graph/node.labels.d.ts.map +1 -1
  81. package/dist/esm/components/ai-elements/graph/panel.d.ts.map +1 -1
  82. package/dist/esm/components/ai-elements/graph/panel.labels.d.ts.map +1 -1
  83. package/dist/esm/components/ai-elements/graph/toolbar.d.ts.map +1 -1
  84. package/dist/esm/components/ai-elements/graph/toolbar.labels.d.ts.map +1 -1
  85. package/dist/esm/components/ai-elements/meta/agent.d.ts +0 -1
  86. package/dist/esm/components/ai-elements/meta/agent.d.ts.map +1 -1
  87. package/dist/esm/components/ai-elements/meta/agent.js +23 -18
  88. package/dist/esm/components/ai-elements/meta/agent.js.map +1 -1
  89. package/dist/esm/components/ai-elements/meta/context.d.ts.map +1 -1
  90. package/dist/esm/components/ai-elements/meta/context.labels.d.ts.map +1 -1
  91. package/dist/esm/components/ai-elements/meta/context.lazy.d.ts.map +1 -1
  92. package/dist/esm/components/ai-elements/meta/context.lazy.js +13 -11
  93. package/dist/esm/components/ai-elements/meta/context.lazy.js.map +1 -1
  94. package/dist/esm/components/ai-elements/meta/model-selector.d.ts.map +1 -1
  95. package/dist/esm/components/ai-elements/meta/model-selector.labels.d.ts.map +1 -1
  96. package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts.map +1 -1
  97. package/dist/esm/components/ai-elements/meta/open-in-chat.labels.d.ts.map +1 -1
  98. package/dist/esm/components/ai-elements/shared/loader.d.ts.map +1 -1
  99. package/dist/esm/components/ai-elements/shared/loader.labels.d.ts.map +1 -1
  100. package/dist/esm/components/ai-elements/shared/shimmer.d.ts.map +1 -1
  101. package/dist/esm/components/ai-elements/shared/shimmer.labels.d.ts.map +1 -1
  102. package/dist/esm/components/ai-elements/stream/execution-stream.d.ts.map +1 -1
  103. package/dist/esm/components/ai-elements/stream/execution-stream.labels.d.ts.map +1 -1
  104. package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts +6 -0
  105. package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts.map +1 -1
  106. package/dist/esm/components/ai-elements/trace/chain-of-thought.js +13 -1
  107. package/dist/esm/components/ai-elements/trace/chain-of-thought.js.map +1 -1
  108. package/dist/esm/components/ai-elements/trace/chain-of-thought.labels.d.ts.map +1 -1
  109. package/dist/esm/components/ai-elements/trace/checkpoint.d.ts.map +1 -1
  110. package/dist/esm/components/ai-elements/trace/checkpoint.labels.d.ts.map +1 -1
  111. package/dist/esm/components/ai-elements/trace/inline-citation.d.ts.map +1 -1
  112. package/dist/esm/components/ai-elements/trace/inline-citation.labels.d.ts.map +1 -1
  113. package/dist/esm/components/ai-elements/trace/plan.d.ts.map +1 -1
  114. package/dist/esm/components/ai-elements/trace/plan.labels.d.ts.map +1 -1
  115. package/dist/esm/components/ai-elements/trace/reasoning.d.ts.map +1 -1
  116. package/dist/esm/components/ai-elements/trace/reasoning.labels.d.ts.map +1 -1
  117. package/dist/esm/components/app/app-layout-consent-gate.d.ts +23 -0
  118. package/dist/esm/components/app/app-layout-consent-gate.d.ts.map +1 -0
  119. package/dist/esm/components/app/app-layout-consent-gate.js +133 -0
  120. package/dist/esm/components/app/app-layout-consent-gate.js.map +1 -0
  121. package/dist/esm/components/app/app-layout-document-acceptance-gate.d.ts +19 -0
  122. package/dist/esm/components/app/app-layout-document-acceptance-gate.d.ts.map +1 -0
  123. package/dist/esm/components/app/app-layout-document-acceptance-gate.js +56 -0
  124. package/dist/esm/components/app/app-layout-document-acceptance-gate.js.map +1 -0
  125. package/dist/esm/components/app/app-layout-main-container.d.ts.map +1 -1
  126. package/dist/esm/components/app/app-layout-main-container.labels.d.ts.map +1 -1
  127. package/dist/esm/components/app/app-layout-main-container.labels.js +21 -0
  128. package/dist/esm/components/app/app-layout-main-container.labels.js.map +1 -1
  129. package/dist/esm/components/app/public-layout-main-container.d.ts +1 -1
  130. package/dist/esm/components/app/public-layout-main-container.d.ts.map +1 -1
  131. package/dist/esm/components/app/public-layout-main-container.js +9 -8
  132. package/dist/esm/components/app/public-layout-main-container.js.map +1 -1
  133. package/dist/esm/components/app/public-layout-main-container.labels.d.ts.map +1 -1
  134. package/dist/esm/components/app/public-layout-terms.d.ts +46 -0
  135. package/dist/esm/components/app/public-layout-terms.d.ts.map +1 -0
  136. package/dist/esm/components/app/public-layout-terms.js +137 -0
  137. package/dist/esm/components/app/public-layout-terms.js.map +1 -0
  138. package/dist/esm/components/billing/billing-format.utils.d.ts.map +1 -1
  139. package/dist/esm/components/billing/billing-invoice-history.d.ts +1 -1
  140. package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -1
  141. package/dist/esm/components/billing/billing-invoice-history.js +3 -1
  142. package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
  143. package/dist/esm/components/billing/billing-invoice-history.labels.d.ts.map +1 -1
  144. package/dist/esm/components/billing/billing-invoice-history.labels.js +1 -0
  145. package/dist/esm/components/billing/billing-invoice-history.labels.js.map +1 -1
  146. package/dist/esm/components/billing/billing-plan-change-preview.d.ts +5 -0
  147. package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +1 -0
  148. package/dist/esm/components/billing/billing-plan-change-preview.js +22 -0
  149. package/dist/esm/components/billing/billing-plan-change-preview.js.map +1 -0
  150. package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts +3 -0
  151. package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts.map +1 -0
  152. package/dist/esm/components/billing/billing-plan-change-preview.labels.js +19 -0
  153. package/dist/esm/components/billing/billing-plan-change-preview.labels.js.map +1 -0
  154. package/dist/esm/components/billing/billing-portal-link.d.ts +1 -1
  155. package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -1
  156. package/dist/esm/components/billing/billing-portal-link.js +3 -1
  157. package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
  158. package/dist/esm/components/billing/billing-portal-link.labels.d.ts.map +1 -1
  159. package/dist/esm/components/billing/billing-portal-link.labels.js +1 -0
  160. package/dist/esm/components/billing/billing-portal-link.labels.js.map +1 -1
  161. package/dist/esm/components/billing/billing-pricing-table.d.ts +1 -1
  162. package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
  163. package/dist/esm/components/billing/billing-pricing-table.js +4 -2
  164. package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
  165. package/dist/esm/components/billing/billing-pricing-table.labels.d.ts.map +1 -1
  166. package/dist/esm/components/billing/billing-pricing-table.labels.js +1 -0
  167. package/dist/esm/components/billing/billing-pricing-table.labels.js.map +1 -1
  168. package/dist/esm/components/billing/billing-subscription-status.d.ts +1 -1
  169. package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -1
  170. package/dist/esm/components/billing/billing-subscription-status.js +3 -1
  171. package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
  172. package/dist/esm/components/billing/billing-subscription-status.labels.d.ts.map +1 -1
  173. package/dist/esm/components/billing/billing-subscription-status.labels.js +1 -0
  174. package/dist/esm/components/billing/billing-subscription-status.labels.js.map +1 -1
  175. package/dist/esm/components/billing/billing-usage-dashboard.d.ts +1 -1
  176. package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
  177. package/dist/esm/components/billing/billing-usage-dashboard.js +4 -4
  178. package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
  179. package/dist/esm/components/billing/billing-usage-dashboard.labels.d.ts.map +1 -1
  180. package/dist/esm/components/billing/billing-usage-dashboard.labels.js +2 -0
  181. package/dist/esm/components/billing/billing-usage-dashboard.labels.js.map +1 -1
  182. package/dist/esm/components/data-display/avatar.d.ts.map +1 -1
  183. package/dist/esm/components/data-display/avatar.labels.d.ts.map +1 -1
  184. package/dist/esm/components/data-display/badge.d.ts.map +1 -1
  185. package/dist/esm/components/data-display/badge.js +16 -15
  186. package/dist/esm/components/data-display/badge.js.map +1 -1
  187. package/dist/esm/components/data-display/badge.labels.d.ts.map +1 -1
  188. package/dist/esm/components/data-display/description-list.d.ts +2 -1
  189. package/dist/esm/components/data-display/description-list.d.ts.map +1 -1
  190. package/dist/esm/components/data-display/description-list.js +24 -8
  191. package/dist/esm/components/data-display/description-list.js.map +1 -1
  192. package/dist/esm/components/data-display/description-list.labels.d.ts.map +1 -1
  193. package/dist/esm/components/data-display/duration.d.ts +15 -0
  194. package/dist/esm/components/data-display/duration.d.ts.map +1 -0
  195. package/dist/esm/components/data-display/duration.js +50 -0
  196. package/dist/esm/components/data-display/duration.js.map +1 -0
  197. package/dist/esm/components/data-display/duration.labels.d.ts +15 -0
  198. package/dist/esm/components/data-display/duration.labels.d.ts.map +1 -0
  199. package/dist/esm/components/data-display/duration.labels.js +35 -0
  200. package/dist/esm/components/data-display/duration.labels.js.map +1 -0
  201. package/dist/esm/components/data-display/formatters/display-field-address.d.ts +21 -0
  202. package/dist/esm/components/data-display/formatters/display-field-address.d.ts.map +1 -0
  203. package/dist/esm/components/data-display/formatters/display-field-address.js +75 -0
  204. package/dist/esm/components/data-display/formatters/display-field-address.js.map +1 -0
  205. package/dist/esm/components/data-display/formatters/display-field-address.labels.d.ts +3 -0
  206. package/dist/esm/components/data-display/formatters/display-field-address.labels.d.ts.map +1 -0
  207. package/dist/esm/components/data-display/formatters/display-field-address.labels.js +13 -0
  208. package/dist/esm/components/data-display/formatters/display-field-address.labels.js.map +1 -0
  209. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.d.ts.map +1 -1
  210. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js +6 -2
  211. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js.map +1 -1
  212. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.labels.d.ts.map +1 -1
  213. package/dist/esm/components/data-display/formatters/display-field-boolean.d.ts.map +1 -1
  214. package/dist/esm/components/data-display/formatters/display-field-boolean.js +2 -2
  215. package/dist/esm/components/data-display/formatters/display-field-boolean.js.map +1 -1
  216. package/dist/esm/components/data-display/formatters/display-field-boolean.labels.d.ts.map +1 -1
  217. package/dist/esm/components/data-display/formatters/display-field-code.d.ts.map +1 -1
  218. package/dist/esm/components/data-display/formatters/display-field-code.js +2 -2
  219. package/dist/esm/components/data-display/formatters/display-field-code.js.map +1 -1
  220. package/dist/esm/components/data-display/formatters/display-field-code.labels.d.ts.map +1 -1
  221. package/dist/esm/components/data-display/formatters/display-field-date.d.ts +3 -3
  222. package/dist/esm/components/data-display/formatters/display-field-date.d.ts.map +1 -1
  223. package/dist/esm/components/data-display/formatters/display-field-date.js +17 -4
  224. package/dist/esm/components/data-display/formatters/display-field-date.js.map +1 -1
  225. package/dist/esm/components/data-display/formatters/display-field-date.labels.d.ts.map +1 -1
  226. package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts +3 -3
  227. package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts.map +1 -1
  228. package/dist/esm/components/data-display/formatters/display-field-datetime.js +17 -4
  229. package/dist/esm/components/data-display/formatters/display-field-datetime.js.map +1 -1
  230. package/dist/esm/components/data-display/formatters/display-field-datetime.labels.d.ts.map +1 -1
  231. package/dist/esm/components/data-display/formatters/display-field-duration.d.ts.map +1 -1
  232. package/dist/esm/components/data-display/formatters/display-field-duration.labels.d.ts.map +1 -1
  233. package/dist/esm/components/data-display/formatters/display-field-enum.d.ts.map +1 -1
  234. package/dist/esm/components/data-display/formatters/display-field-enum.js +12 -8
  235. package/dist/esm/components/data-display/formatters/display-field-enum.js.map +1 -1
  236. package/dist/esm/components/data-display/formatters/display-field-enum.labels.d.ts.map +1 -1
  237. package/dist/esm/components/data-display/formatters/display-field-file-audio.d.ts.map +1 -1
  238. package/dist/esm/components/data-display/formatters/display-field-file-audio.js +2 -1
  239. package/dist/esm/components/data-display/formatters/display-field-file-audio.js.map +1 -1
  240. package/dist/esm/components/data-display/formatters/display-field-file-audio.labels.d.ts.map +1 -1
  241. package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts +4 -1
  242. package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts.map +1 -1
  243. package/dist/esm/components/data-display/formatters/display-field-file-document.js +18 -5
  244. package/dist/esm/components/data-display/formatters/display-field-file-document.js.map +1 -1
  245. package/dist/esm/components/data-display/formatters/display-field-file-document.labels.d.ts.map +1 -1
  246. package/dist/esm/components/data-display/formatters/display-field-file-document.labels.js +20 -0
  247. package/dist/esm/components/data-display/formatters/display-field-file-document.labels.js.map +1 -1
  248. package/dist/esm/components/data-display/formatters/display-field-file-gallery.d.ts.map +1 -1
  249. package/dist/esm/components/data-display/formatters/display-field-file-gallery.labels.d.ts.map +1 -1
  250. package/dist/esm/components/data-display/formatters/display-field-file-image.d.ts.map +1 -1
  251. package/dist/esm/components/data-display/formatters/display-field-file-image.js +3 -1
  252. package/dist/esm/components/data-display/formatters/display-field-file-image.js.map +1 -1
  253. package/dist/esm/components/data-display/formatters/display-field-file-image.labels.d.ts.map +1 -1
  254. package/dist/esm/components/data-display/formatters/display-field-file-video.d.ts.map +1 -1
  255. package/dist/esm/components/data-display/formatters/display-field-file-video.labels.d.ts.map +1 -1
  256. package/dist/esm/components/data-display/formatters/display-field-file.d.ts.map +1 -1
  257. package/dist/esm/components/data-display/formatters/display-field-file.js +2 -2
  258. package/dist/esm/components/data-display/formatters/display-field-file.js.map +1 -1
  259. package/dist/esm/components/data-display/formatters/display-field-file.labels.d.ts.map +1 -1
  260. package/dist/esm/components/data-display/formatters/display-field-file.labels.js +1 -0
  261. package/dist/esm/components/data-display/formatters/display-field-file.labels.js.map +1 -1
  262. package/dist/esm/components/data-display/formatters/display-field-format.utils.d.ts.map +1 -1
  263. package/dist/esm/components/data-display/formatters/display-field-i18n.utils.d.ts.map +1 -1
  264. package/dist/esm/components/data-display/formatters/display-field-money.d.ts.map +1 -1
  265. package/dist/esm/components/data-display/formatters/display-field-money.labels.d.ts.map +1 -1
  266. package/dist/esm/components/data-display/formatters/display-field-number.d.ts.map +1 -1
  267. package/dist/esm/components/data-display/formatters/display-field-number.js +2 -2
  268. package/dist/esm/components/data-display/formatters/display-field-number.js.map +1 -1
  269. package/dist/esm/components/data-display/formatters/display-field-number.labels.d.ts.map +1 -1
  270. package/dist/esm/components/data-display/formatters/display-field-phone.d.ts.map +1 -1
  271. package/dist/esm/components/data-display/formatters/display-field-phone.labels.d.ts.map +1 -1
  272. package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.d.ts.map +1 -1
  273. package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.labels.d.ts.map +1 -1
  274. package/dist/esm/components/data-display/formatters/display-field-range-date.d.ts.map +1 -1
  275. package/dist/esm/components/data-display/formatters/display-field-range-date.labels.d.ts.map +1 -1
  276. package/dist/esm/components/data-display/formatters/display-field-range-datetime.d.ts.map +1 -1
  277. package/dist/esm/components/data-display/formatters/display-field-range-datetime.labels.d.ts.map +1 -1
  278. package/dist/esm/components/data-display/formatters/display-field-range-money.d.ts.map +1 -1
  279. package/dist/esm/components/data-display/formatters/display-field-range-money.labels.d.ts.map +1 -1
  280. package/dist/esm/components/data-display/formatters/display-field-range-number.d.ts.map +1 -1
  281. package/dist/esm/components/data-display/formatters/display-field-range-number.labels.d.ts.map +1 -1
  282. package/dist/esm/components/data-display/formatters/display-field-range-time.d.ts.map +1 -1
  283. package/dist/esm/components/data-display/formatters/display-field-range-time.labels.d.ts.map +1 -1
  284. package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -1
  285. package/dist/esm/components/data-display/formatters/display-field-string.js +82 -7
  286. package/dist/esm/components/data-display/formatters/display-field-string.js.map +1 -1
  287. package/dist/esm/components/data-display/formatters/display-field-string.labels.d.ts.map +1 -1
  288. package/dist/esm/components/data-display/formatters/display-field-time.d.ts.map +1 -1
  289. package/dist/esm/components/data-display/formatters/display-field-time.labels.d.ts.map +1 -1
  290. package/dist/esm/components/data-display/identifier.d.ts +19 -0
  291. package/dist/esm/components/data-display/identifier.d.ts.map +1 -0
  292. package/dist/esm/components/data-display/identifier.js +21 -0
  293. package/dist/esm/components/data-display/identifier.js.map +1 -0
  294. package/dist/esm/components/data-display/kbd.d.ts +17 -0
  295. package/dist/esm/components/data-display/kbd.d.ts.map +1 -0
  296. package/dist/esm/components/data-display/kbd.js +18 -0
  297. package/dist/esm/components/data-display/kbd.js.map +1 -0
  298. package/dist/esm/components/data-display/markdown-content.d.ts.map +1 -1
  299. package/dist/esm/components/data-display/markdown-stream-runtime.d.ts.map +1 -1
  300. package/dist/esm/components/data-display/markdown-stream.lazy.d.ts.map +1 -1
  301. package/dist/esm/components/data-display/markdown-stream.lazy.js +13 -2
  302. package/dist/esm/components/data-display/markdown-stream.lazy.js.map +1 -1
  303. package/dist/esm/components/data-display/notification-indicator.d.ts.map +1 -1
  304. package/dist/esm/components/data-display/notification-indicator.js +3 -11
  305. package/dist/esm/components/data-display/notification-indicator.js.map +1 -1
  306. package/dist/esm/components/data-display/notification-indicator.labels.d.ts.map +1 -1
  307. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.d.ts +63 -0
  308. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.d.ts.map +1 -0
  309. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.js +75 -0
  310. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.js.map +1 -0
  311. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.d.ts +32 -0
  312. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.d.ts.map +1 -0
  313. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.js +36 -0
  314. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.js.map +1 -0
  315. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.d.ts +46 -6
  316. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  317. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.js +70 -46
  318. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.js.map +1 -1
  319. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.d.ts +12 -2
  320. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.d.ts.map +1 -1
  321. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.js +3 -2
  322. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.js.map +1 -1
  323. package/dist/esm/components/data-display/timeline.d.ts +3 -0
  324. package/dist/esm/components/data-display/timeline.d.ts.map +1 -0
  325. package/dist/esm/components/data-display/timeline.js +92 -0
  326. package/dist/esm/components/data-display/timeline.js.map +1 -0
  327. package/dist/esm/components/feedback/celebration-overlay.d.ts +13 -4
  328. package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -1
  329. package/dist/esm/components/feedback/celebration-overlay.js +146 -22
  330. package/dist/esm/components/feedback/celebration-overlay.js.map +1 -1
  331. package/dist/esm/components/feedback/celebration-overlay.labels.d.ts.map +1 -1
  332. package/dist/esm/components/feedback/danger-zone.d.ts.map +1 -1
  333. package/dist/esm/components/feedback/danger-zone.labels.d.ts.map +1 -1
  334. package/dist/esm/components/feedback/empty-state.d.ts.map +1 -1
  335. package/dist/esm/components/feedback/empty-state.js.map +1 -1
  336. package/dist/esm/components/feedback/empty-state.labels.d.ts.map +1 -1
  337. package/dist/esm/components/feedback/error-display.d.ts.map +1 -1
  338. package/dist/esm/components/feedback/error-display.labels.d.ts.map +1 -1
  339. package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
  340. package/dist/esm/components/feedback/features/feature-limit-indicator.labels.d.ts.map +1 -1
  341. package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.map +1 -1
  342. package/dist/esm/components/feedback/features/feature-lock-badge.labels.d.ts.map +1 -1
  343. package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts.map +1 -1
  344. package/dist/esm/components/feedback/features/feature-unavailable-dialog.labels.d.ts.map +1 -1
  345. package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts.map +1 -1
  346. package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -1
  347. package/dist/esm/components/feedback/features/feature-unavailable-prompt.labels.d.ts.map +1 -1
  348. package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -1
  349. package/dist/esm/components/feedback/loading-overlay.labels.d.ts.map +1 -1
  350. package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -1
  351. package/dist/esm/components/feedback/loading-spinner.labels.d.ts.map +1 -1
  352. package/dist/esm/components/feedback/notification-center.d.ts.map +1 -1
  353. package/dist/esm/components/feedback/notification-center.js +5 -5
  354. package/dist/esm/components/feedback/notification-center.js.map +1 -1
  355. package/dist/esm/components/feedback/operations-confirm-critical.d.ts +1 -1
  356. package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
  357. package/dist/esm/components/feedback/operations-confirm-critical.js +9 -7
  358. package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
  359. package/dist/esm/components/feedback/operations-confirm-critical.labels.d.ts.map +1 -1
  360. package/dist/esm/components/feedback/progress.d.ts.map +1 -1
  361. package/dist/esm/components/feedback/progress.labels.d.ts.map +1 -1
  362. package/dist/esm/components/feedback/skeleton.d.ts.map +1 -1
  363. package/dist/esm/components/feedback/skeleton.labels.d.ts.map +1 -1
  364. package/dist/esm/components/feedback/toast.d.ts.map +1 -1
  365. package/dist/esm/components/feedback/toast.labels.d.ts.map +1 -1
  366. package/dist/esm/components/form/autosave-indicator.d.ts.map +1 -1
  367. package/dist/esm/components/form/autosave-indicator.labels.d.ts.map +1 -1
  368. package/dist/esm/components/form/chromes/field.d.ts.map +1 -1
  369. package/dist/esm/components/form/chromes/field.js +11 -3
  370. package/dist/esm/components/form/chromes/field.js.map +1 -1
  371. package/dist/esm/components/form/chromes/field.labels.d.ts.map +1 -1
  372. package/dist/esm/components/form/chromes/form-primitive.d.ts.map +1 -1
  373. package/dist/esm/components/form/chromes/form-primitive.labels.d.ts.map +1 -1
  374. package/dist/esm/components/form/chromes/form-primitive.labels.js +28 -0
  375. package/dist/esm/components/form/chromes/form-primitive.labels.js.map +1 -1
  376. package/dist/esm/components/form/combobox.d.ts.map +1 -1
  377. package/dist/esm/components/form/combobox.js +4 -3
  378. package/dist/esm/components/form/combobox.js.map +1 -1
  379. package/dist/esm/components/form/combobox.labels.d.ts.map +1 -1
  380. package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -1
  381. package/dist/esm/components/form/controls/boolean/checkbox.js +2 -2
  382. package/dist/esm/components/form/controls/boolean/checkbox.js.map +1 -1
  383. package/dist/esm/components/form/controls/boolean/checkbox.labels.d.ts.map +1 -1
  384. package/dist/esm/components/form/controls/boolean/switch.d.ts.map +1 -1
  385. package/dist/esm/components/form/controls/boolean/switch.labels.d.ts.map +1 -1
  386. package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts.map +1 -1
  387. package/dist/esm/components/form/controls/boolean/toggle-group-boolean.labels.d.ts.map +1 -1
  388. package/dist/esm/components/form/controls/boolean/toggle.d.ts.map +1 -1
  389. package/dist/esm/components/form/controls/boolean/toggle.labels.d.ts.map +1 -1
  390. package/dist/esm/components/form/controls/code-editor/cm6-editor-appearance.d.ts.map +1 -1
  391. package/dist/esm/components/form/controls/code-editor/cm6-editor.d.ts.map +1 -1
  392. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.d.ts.map +1 -1
  393. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.js +11 -2
  394. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.js.map +1 -1
  395. package/dist/esm/components/form/controls/code-editor/form-field-code.d.ts.map +1 -1
  396. package/dist/esm/components/form/controls/code-editor/markdown-editor.d.ts.map +1 -1
  397. package/dist/esm/components/form/controls/date-time/calendar.d.ts.map +1 -1
  398. package/dist/esm/components/form/controls/date-time/calendar.labels.d.ts.map +1 -1
  399. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
  400. package/dist/esm/components/form/controls/date-time/date-range-picker.labels.d.ts.map +1 -1
  401. package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
  402. package/dist/esm/components/form/controls/date-time/datepicker.labels.d.ts.map +1 -1
  403. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
  404. package/dist/esm/components/form/controls/date-time/datetime-picker.labels.d.ts.map +1 -1
  405. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
  406. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.d.ts.map +1 -1
  407. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.js +11 -2
  408. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.js.map +1 -1
  409. package/dist/esm/components/form/controls/date-time/time-picker.d.ts.map +1 -1
  410. package/dist/esm/components/form/controls/date-time/time-picker.labels.d.ts.map +1 -1
  411. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
  412. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.d.ts.map +1 -1
  413. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.js +11 -2
  414. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.js.map +1 -1
  415. package/dist/esm/components/form/controls/enum/radio.d.ts +1 -1
  416. package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
  417. package/dist/esm/components/form/controls/enum/radio.js +13 -12
  418. package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
  419. package/dist/esm/components/form/controls/enum/radio.labels.d.ts.map +1 -1
  420. package/dist/esm/components/form/controls/enum/select-multiple.d.ts.map +1 -1
  421. package/dist/esm/components/form/controls/enum/select-multiple.js +5 -3
  422. package/dist/esm/components/form/controls/enum/select-multiple.js.map +1 -1
  423. package/dist/esm/components/form/controls/enum/select-multiple.labels.d.ts.map +1 -1
  424. package/dist/esm/components/form/controls/enum/select.d.ts.map +1 -1
  425. package/dist/esm/components/form/controls/enum/select.labels.d.ts.map +1 -1
  426. package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
  427. package/dist/esm/components/form/controls/enum/toggle-group.js +96 -5
  428. package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
  429. package/dist/esm/components/form/controls/enum/toggle-group.labels.d.ts.map +1 -1
  430. package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -1
  431. package/dist/esm/components/form/controls/file/file-upload.labels.d.ts.map +1 -1
  432. package/dist/esm/components/form/controls/file/image-crop.d.ts.map +1 -1
  433. package/dist/esm/components/form/controls/file/image-crop.labels.d.ts.map +1 -1
  434. package/dist/esm/components/form/controls/file/providers/dropbox-picker.d.ts +44 -0
  435. package/dist/esm/components/form/controls/file/providers/dropbox-picker.d.ts.map +1 -0
  436. package/dist/esm/components/form/controls/file/providers/dropbox-picker.js +137 -0
  437. package/dist/esm/components/form/controls/file/providers/dropbox-picker.js.map +1 -0
  438. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.d.ts +22 -0
  439. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.d.ts.map +1 -0
  440. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.js +27 -0
  441. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.js.map +1 -0
  442. package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts +3 -1
  443. package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts.map +1 -1
  444. package/dist/esm/components/form/controls/file/providers/google-drive-picker.js +3 -1
  445. package/dist/esm/components/form/controls/file/providers/google-drive-picker.js.map +1 -1
  446. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts +6 -0
  447. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts.map +1 -1
  448. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js +8 -1
  449. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js.map +1 -1
  450. package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts +6 -2
  451. package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts.map +1 -1
  452. package/dist/esm/components/form/controls/file/providers/onedrive-picker.js +6 -2
  453. package/dist/esm/components/form/controls/file/providers/onedrive-picker.js.map +1 -1
  454. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts +6 -0
  455. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts.map +1 -1
  456. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js +8 -1
  457. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js.map +1 -1
  458. package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
  459. package/dist/esm/components/form/controls/input-group.labels.d.ts.map +1 -1
  460. package/dist/esm/components/form/controls/input.d.ts.map +1 -1
  461. package/dist/esm/components/form/controls/input.labels.d.ts.map +1 -1
  462. package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
  463. package/dist/esm/components/form/controls/number/slider.labels.d.ts.map +1 -1
  464. package/dist/esm/components/form/controls/number/slider.labels.js +9 -2
  465. package/dist/esm/components/form/controls/number/slider.labels.js.map +1 -1
  466. package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -1
  467. package/dist/esm/components/form/controls/string/color-input.labels.d.ts.map +1 -1
  468. package/dist/esm/components/form/controls/string/color-picker-surface.d.ts.map +1 -1
  469. package/dist/esm/components/form/controls/string/color-picker-surface.js.map +1 -1
  470. package/dist/esm/components/form/controls/string/inline-edit-text.d.ts.map +1 -1
  471. package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -1
  472. package/dist/esm/components/form/controls/string/input-otp.labels.d.ts.map +1 -1
  473. package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
  474. package/dist/esm/components/form/controls/string/password-input.labels.d.ts.map +1 -1
  475. package/dist/esm/components/form/controls/string/password-input.labels.js +9 -2
  476. package/dist/esm/components/form/controls/string/password-input.labels.js.map +1 -1
  477. package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
  478. package/dist/esm/components/form/controls/string/textarea.labels.d.ts.map +1 -1
  479. package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -1
  480. package/dist/esm/components/layout/aspect-ratio.labels.d.ts.map +1 -1
  481. package/dist/esm/components/layout/carousel.d.ts.map +1 -1
  482. package/dist/esm/components/layout/carousel.labels.d.ts.map +1 -1
  483. package/dist/esm/components/layout/divider.d.ts.map +1 -1
  484. package/dist/esm/components/layout/divider.labels.d.ts.map +1 -1
  485. package/dist/esm/components/layout/resizable.d.ts.map +1 -1
  486. package/dist/esm/components/layout/resizable.labels.d.ts.map +1 -1
  487. package/dist/esm/components/layout/scroll-area.d.ts.map +1 -1
  488. package/dist/esm/components/layout/scroll-area.labels.d.ts.map +1 -1
  489. package/dist/esm/components/layout/separator.d.ts.map +1 -1
  490. package/dist/esm/components/layout/separator.labels.d.ts.map +1 -1
  491. package/dist/esm/components/navigation/app-level/activity-bar.d.ts.map +1 -1
  492. package/dist/esm/components/navigation/app-level/activity-bar.labels.d.ts.map +1 -1
  493. package/dist/esm/components/navigation/app-level/command-menu.d.ts.map +1 -1
  494. package/dist/esm/components/navigation/app-level/command-menu.js +2 -2
  495. package/dist/esm/components/navigation/app-level/command-menu.js.map +1 -1
  496. package/dist/esm/components/navigation/app-level/command-menu.labels.d.ts.map +1 -1
  497. package/dist/esm/components/navigation/app-level/control-panel.d.ts.map +1 -1
  498. package/dist/esm/components/navigation/app-level/control-panel.labels.d.ts.map +1 -1
  499. package/dist/esm/components/navigation/app-level/menu-user-org.d.ts.map +1 -1
  500. package/dist/esm/components/navigation/app-level/menu-user-org.labels.d.ts.map +1 -1
  501. package/dist/esm/components/navigation/app-level/menubar.d.ts.map +1 -1
  502. package/dist/esm/components/navigation/app-level/menubar.js +35 -13
  503. package/dist/esm/components/navigation/app-level/menubar.js.map +1 -1
  504. package/dist/esm/components/navigation/app-level/menubar.labels.d.ts.map +1 -1
  505. package/dist/esm/components/navigation/app-level/navigation-back.d.ts.map +1 -1
  506. package/dist/esm/components/navigation/app-level/navigation-back.js +10 -2
  507. package/dist/esm/components/navigation/app-level/navigation-back.js.map +1 -1
  508. package/dist/esm/components/navigation/app-level/navigation-back.labels.d.ts.map +1 -1
  509. package/dist/esm/components/navigation/app-level/notification-center.d.ts.map +1 -1
  510. package/dist/esm/components/navigation/app-level/notification-center.js.map +1 -1
  511. package/dist/esm/components/navigation/app-level/notification-center.labels.d.ts.map +1 -1
  512. package/dist/esm/components/navigation/app-level/notification-center.labels.js +15 -0
  513. package/dist/esm/components/navigation/app-level/notification-center.labels.js.map +1 -1
  514. package/dist/esm/components/navigation/app-level/quick-action-button.d.ts.map +1 -1
  515. package/dist/esm/components/navigation/app-level/quick-action-button.labels.d.ts.map +1 -1
  516. package/dist/esm/components/navigation/app-level/quick-action-button.labels.js +4 -0
  517. package/dist/esm/components/navigation/app-level/quick-action-button.labels.js.map +1 -1
  518. package/dist/esm/components/navigation/app-level/quick-switcher.d.ts.map +1 -1
  519. package/dist/esm/components/navigation/app-level/quick-switcher.labels.d.ts.map +1 -1
  520. package/dist/esm/components/navigation/app-level/sidebar.d.ts.map +1 -1
  521. package/dist/esm/components/navigation/app-level/sidebar.js +38 -22
  522. package/dist/esm/components/navigation/app-level/sidebar.js.map +1 -1
  523. package/dist/esm/components/navigation/app-level/sidebar.labels.d.ts.map +1 -1
  524. package/dist/esm/components/navigation/app-level/sidebar.labels.js +1 -0
  525. package/dist/esm/components/navigation/app-level/sidebar.labels.js.map +1 -1
  526. package/dist/esm/components/navigation/app-level/status-bar.d.ts.map +1 -1
  527. package/dist/esm/components/navigation/app-level/status-bar.labels.d.ts.map +1 -1
  528. package/dist/esm/components/navigation/app-level/toolbar.d.ts.map +1 -1
  529. package/dist/esm/components/navigation/app-level/toolbar.labels.d.ts.map +1 -1
  530. package/dist/esm/components/navigation/app-level/utility-panel.d.ts.map +1 -1
  531. package/dist/esm/components/navigation/app-level/utility-panel.js +23 -5
  532. package/dist/esm/components/navigation/app-level/utility-panel.js.map +1 -1
  533. package/dist/esm/components/navigation/app-level/utility-panel.labels.d.ts.map +1 -1
  534. package/dist/esm/components/navigation/app-level/utility-panel.labels.js.map +1 -1
  535. package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -1
  536. package/dist/esm/components/navigation/breadcrumb.labels.d.ts.map +1 -1
  537. package/dist/esm/components/navigation/command.d.ts.map +1 -1
  538. package/dist/esm/components/navigation/command.js +2 -2
  539. package/dist/esm/components/navigation/command.js.map +1 -1
  540. package/dist/esm/components/navigation/command.labels.d.ts.map +1 -1
  541. package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -1
  542. package/dist/esm/components/navigation/menu-bar.labels.d.ts.map +1 -1
  543. package/dist/esm/components/navigation/navbar.d.ts.map +1 -1
  544. package/dist/esm/components/navigation/navbar.labels.d.ts.map +1 -1
  545. package/dist/esm/components/navigation/sidebar.d.ts.map +1 -1
  546. package/dist/esm/components/navigation/sidebar.labels.d.ts.map +1 -1
  547. package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -1
  548. package/dist/esm/components/overlays/containers/alert-dialog.js +11 -1
  549. package/dist/esm/components/overlays/containers/alert-dialog.js.map +1 -1
  550. package/dist/esm/components/overlays/containers/alert-dialog.labels.d.ts.map +1 -1
  551. package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -1
  552. package/dist/esm/components/overlays/containers/alert.labels.d.ts.map +1 -1
  553. package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -1
  554. package/dist/esm/components/overlays/containers/dialog.js +11 -1
  555. package/dist/esm/components/overlays/containers/dialog.js.map +1 -1
  556. package/dist/esm/components/overlays/containers/dialog.labels.d.ts.map +1 -1
  557. package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -1
  558. package/dist/esm/components/overlays/containers/drawer.labels.d.ts.map +1 -1
  559. package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -1
  560. package/dist/esm/components/overlays/containers/sheet.labels.d.ts.map +1 -1
  561. package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -1
  562. package/dist/esm/components/overlays/floating/context-menu.labels.d.ts.map +1 -1
  563. package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -1
  564. package/dist/esm/components/overlays/floating/dropdown-menu.labels.d.ts.map +1 -1
  565. package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -1
  566. package/dist/esm/components/overlays/floating/hover-card.labels.d.ts.map +1 -1
  567. package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -1
  568. package/dist/esm/components/overlays/floating/popover.labels.d.ts.map +1 -1
  569. package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -1
  570. package/dist/esm/components/overlays/floating/tooltip.labels.d.ts.map +1 -1
  571. package/dist/esm/components/sections/accordion.d.ts.map +1 -1
  572. package/dist/esm/components/sections/accordion.labels.d.ts.map +1 -1
  573. package/dist/esm/components/sections/card.d.ts.map +1 -1
  574. package/dist/esm/components/sections/card.js +71 -6
  575. package/dist/esm/components/sections/card.js.map +1 -1
  576. package/dist/esm/components/sections/card.labels.d.ts.map +1 -1
  577. package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
  578. package/dist/esm/components/sections/collapsible.labels.d.ts.map +1 -1
  579. package/dist/esm/components/sections/content-section.d.ts.map +1 -1
  580. package/dist/esm/components/sections/content-section.js +36 -6
  581. package/dist/esm/components/sections/content-section.js.map +1 -1
  582. package/dist/esm/components/sections/disclosure-nesting.d.ts.map +1 -1
  583. package/dist/esm/components/sections/option-gesture.d.ts +15 -0
  584. package/dist/esm/components/sections/option-gesture.d.ts.map +1 -0
  585. package/dist/esm/components/sections/option-gesture.js +66 -0
  586. package/dist/esm/components/sections/option-gesture.js.map +1 -0
  587. package/dist/esm/components/sections/pagination.d.ts.map +1 -1
  588. package/dist/esm/components/sections/pagination.labels.d.ts.map +1 -1
  589. package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -1
  590. package/dist/esm/components/sections/stacked-layout.labels.d.ts.map +1 -1
  591. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  592. package/dist/esm/components/sections/stepper.labels.d.ts.map +1 -1
  593. package/dist/esm/components/sections/table.d.ts.map +1 -1
  594. package/dist/esm/components/sections/table.labels.d.ts.map +1 -1
  595. package/dist/esm/components/sections/tabs.d.ts.map +1 -1
  596. package/dist/esm/components/sections/tabs.js +60 -15
  597. package/dist/esm/components/sections/tabs.js.map +1 -1
  598. package/dist/esm/components/sections/tabs.labels.d.ts.map +1 -1
  599. package/dist/esm/components/typography/heading.d.ts.map +1 -1
  600. package/dist/esm/components/typography/heading.labels.d.ts.map +1 -1
  601. package/dist/esm/components/typography/label.d.ts.map +1 -1
  602. package/dist/esm/components/typography/label.labels.d.ts.map +1 -1
  603. package/dist/esm/components/typography/link.d.ts.map +1 -1
  604. package/dist/esm/components/typography/link.js +9 -3
  605. package/dist/esm/components/typography/link.js.map +1 -1
  606. package/dist/esm/components/typography/link.labels.d.ts.map +1 -1
  607. package/dist/esm/components/typography/text.d.ts +1 -1
  608. package/dist/esm/components/typography/text.d.ts.map +1 -1
  609. package/dist/esm/components/typography/text.js +3 -2
  610. package/dist/esm/components/typography/text.js.map +1 -1
  611. package/dist/esm/components/typography/text.labels.d.ts.map +1 -1
  612. package/dist/esm/components/typography/truncated-text.d.ts.map +1 -1
  613. package/dist/esm/config/billing-shell.presets.d.ts.map +1 -1
  614. package/dist/esm/config/index.d.ts.map +1 -1
  615. package/dist/esm/config/preset-design-system.d.ts.map +1 -1
  616. package/dist/esm/config/preset-design-system.js +37 -60
  617. package/dist/esm/config/preset-design-system.js.map +1 -1
  618. package/dist/esm/config/preset-error-pages.d.ts.map +1 -1
  619. package/dist/esm/config/preset-kits.d.ts.map +1 -1
  620. package/dist/esm/config/preset-navigation.d.ts.map +1 -1
  621. package/dist/esm/config/preset-navigation.js +0 -5
  622. package/dist/esm/config/preset-navigation.js.map +1 -1
  623. package/dist/esm/config/preset-resources.d.ts.map +1 -1
  624. package/dist/esm/config/preset-shell.d.ts.map +1 -1
  625. package/dist/esm/config/preset-utils.d.ts.map +1 -1
  626. package/dist/esm/config/presets.d.ts.map +1 -1
  627. package/dist/esm/config/resources/application.resource-presets.d.ts +2 -0
  628. package/dist/esm/config/resources/application.resource-presets.d.ts.map +1 -1
  629. package/dist/esm/config/resources/application.resource-presets.js +163 -7
  630. package/dist/esm/config/resources/application.resource-presets.js.map +1 -1
  631. package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -1
  632. package/dist/esm/config/resources/billing.resource-presets.js +1 -0
  633. package/dist/esm/config/resources/billing.resource-presets.js.map +1 -1
  634. package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -1
  635. package/dist/esm/config/resources/guidance.resource-presets.js +21 -5
  636. package/dist/esm/config/resources/guidance.resource-presets.js.map +1 -1
  637. package/dist/esm/config/resources/identity.resource-presets.d.ts.map +1 -1
  638. package/dist/esm/config/resources/identity.resource-presets.js +25 -3
  639. package/dist/esm/config/resources/identity.resource-presets.js.map +1 -1
  640. package/dist/esm/config/resources/index.d.ts.map +1 -1
  641. package/dist/esm/config/resources/index.js.map +1 -1
  642. package/dist/esm/config/resources/organizations.resource-presets.d.ts.map +1 -1
  643. package/dist/esm/config/resources/organizations.resource-presets.js +90 -12
  644. package/dist/esm/config/resources/organizations.resource-presets.js.map +1 -1
  645. package/dist/esm/config/resources/resource.config.utils.d.ts.map +1 -1
  646. package/dist/esm/config/resources/security.resource-presets.d.ts +8 -2
  647. package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -1
  648. package/dist/esm/config/resources/security.resource-presets.js +185 -29
  649. package/dist/esm/config/resources/security.resource-presets.js.map +1 -1
  650. package/dist/esm/config/resources/webhooks.resource-presets.d.ts.map +1 -1
  651. package/dist/esm/config/resources/webhooks.resource-presets.js +27 -2
  652. package/dist/esm/config/resources/webhooks.resource-presets.js.map +1 -1
  653. package/dist/esm/index.d.ts +6 -1
  654. package/dist/esm/index.d.ts.map +1 -1
  655. package/dist/esm/index.js +6 -1
  656. package/dist/esm/index.js.map +1 -1
  657. package/dist/esm/lottie/lottie.content.definitions.d.ts.map +1 -1
  658. package/dist/esm/lottie/lottie.definitions.d.ts.map +1 -1
  659. package/dist/esm/mermaid-stub.d.ts.map +1 -1
  660. package/dist/esm/registration/register-common-enums.d.ts.map +1 -1
  661. package/dist/esm/registration/register-common-enums.js +48 -34
  662. package/dist/esm/registration/register-common-enums.js.map +1 -1
  663. package/dist/esm/registration/register-default-animations.d.ts.map +1 -1
  664. package/dist/esm/registration/register-default-icons.d.ts.map +1 -1
  665. package/dist/esm/registration/register-default-icons.js +3 -1
  666. package/dist/esm/registration/register-default-icons.js.map +1 -1
  667. package/dist/esm/registration/register-default-presets.d.ts.map +1 -1
  668. package/dist/esm/registration/register-default-presets.js +32 -4
  669. package/dist/esm/registration/register-default-presets.js.map +1 -1
  670. package/dist/esm/registration/register-provider-components.d.ts.map +1 -1
  671. package/dist/esm/registration/register-provider-components.js +5 -0
  672. package/dist/esm/registration/register-provider-components.js.map +1 -1
  673. package/dist/esm/shiki-subset.d.ts +11 -3
  674. package/dist/esm/shiki-subset.d.ts.map +1 -1
  675. package/dist/esm/shiki-subset.js +10 -2
  676. package/dist/esm/shiki-subset.js.map +1 -1
  677. package/dist/esm/theme-exports.d.ts.map +1 -1
  678. package/dist/esm/themes/cozy.theme.d.ts.map +1 -1
  679. package/dist/esm/themes/cozy.theme.js +19 -5
  680. package/dist/esm/themes/cozy.theme.js.map +1 -1
  681. package/dist/esm/themes/dense.theme.d.ts.map +1 -1
  682. package/dist/esm/themes/dense.theme.js +56 -10
  683. package/dist/esm/themes/dense.theme.js.map +1 -1
  684. package/dist/esm/themes/editorial.theme.d.ts.map +1 -1
  685. package/dist/esm/themes/editorial.theme.js +19 -5
  686. package/dist/esm/themes/editorial.theme.js.map +1 -1
  687. package/dist/esm/themes/glass.theme.d.ts.map +1 -1
  688. package/dist/esm/themes/glass.theme.js +5 -1
  689. package/dist/esm/themes/glass.theme.js.map +1 -1
  690. package/dist/esm/themes/neo-brutalist.theme.d.ts.map +1 -1
  691. package/dist/esm/themes/neo-brutalist.theme.js +9 -2
  692. package/dist/esm/themes/neo-brutalist.theme.js.map +1 -1
  693. package/dist/esm/themes/terminal.theme.d.ts.map +1 -1
  694. package/dist/esm/themes/terminal.theme.js +19 -5
  695. package/dist/esm/themes/terminal.theme.js.map +1 -1
  696. package/dist/esm/themes/trading.theme.d.ts.map +1 -1
  697. package/dist/esm/themes/trading.theme.js +22 -6
  698. package/dist/esm/themes/trading.theme.js.map +1 -1
  699. package/dist/tsconfig.build.tsbuildinfo +1 -1
  700. package/package.json +29 -45
  701. package/dist/esm/.native.tsbuildinfo +0 -1
  702. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts +0 -16
  703. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +0 -1
  704. package/dist/esm/components/form/controls/form-field-checkbox-group.js +0 -143
  705. package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"approval.js","sourceRoot":"","sources":["../../../../../src/components/ai-elements/decision/approval.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n Alert,\n AlertDescription,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n Badge,\n Button,\n ButtonVariants_Variant,\n ScrollArea,\n TextareaRoot,\n cn,\n useI18n,\n Surface,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { FrontendComponentType, ButtonSize, SurfaceVariant } from \"@wildo-ai/presets-components-models\";\nimport type { ComponentProps } from \"react\";\n\nconst CT: FrontendComponentType = FrontendComponentType.LOW_LEVEL_AI_APPROVAL;\n\n//===============================================================\n// Human-in-the-Loop Approval Components\n//\n// BACKEND DEPENDENCIES:\n// - FlowsActorsContext.respondToApproval() — implemented (WebSocket emit)\n// - WebSocket event: FLOWS_ACTORS_APPROVAL_REQUEST — implemented\n// - FlowsActorsExecution.pendingApproval — schema ready:\n// { approvalId, actionDescription, riskLevel, expiresAt?, requiredRoles? }\n//\n// Components render approval UI from props. Wire to context via\n// the saas-frontend-lib wrapper (flows-actors/approval.tsx).\n//===============================================================\n\n//===============================================================\n// useCountdown — shared countdown hook\n//===============================================================\n\nfunction useCountdown(expiresAt: Date | undefined): { remaining: string | null; isExpired: boolean } {\n const [now, setNow] = React.useState(() => Date.now());\n\n React.useEffect(() => {\n if (!expiresAt) return;\n const id = setInterval(() => setNow(Date.now()), 1_000);\n return () => clearInterval(id);\n }, [expiresAt]);\n\n if (!expiresAt) return { remaining: null, isExpired: false };\n\n const diff = expiresAt.getTime() - now;\n if (diff <= 0) return { remaining: null, isExpired: true };\n\n const totalSeconds = Math.floor(diff / 1_000);\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds % 60;\n const remaining = minutes > 0\n ? `${minutes}m ${String(seconds).padStart(2, \"0\")}s`\n : `${seconds}s`;\n\n return { remaining, isExpired: false };\n}\n\n//===============================================================\n// AI_ApprovalRequest\n//===============================================================\n\nexport type AI_ApprovalRequestProps = ComponentProps<typeof Alert> & {\n approvalId: string;\n actionDescription: string;\n /**\n * OPTIONAL, because nothing populates it. A risk level exists only on\n * `WS_FlowsActorsApprovalRequestPayload`, a payload no code emits; the announcement a paused turn\n * really sends carries a tool name and its arguments and no risk claim (#528). Absent means the\n * badge is not rendered — a default here would show a severity nobody declared.\n */\n riskLevel?: \"low\" | \"medium\" | \"high\" | \"critical\";\n executionId: string;\n systemRef?: string;\n expiresAt?: Date;\n requiredRoles?: string[];\n /**\n * The gated tool call, and the arguments proposed for it.\n *\n * `toolName` is an IDENTIFIER, rendered as authored — it is the thing the agent asked to run,\n * and humanizing it here would invent display text no i18n tree owns.\n * `executionContext` carries the arguments (#455).\n */\n toolName?: string;\n executionContext?: Record<string, unknown>;\n /**\n * Offer the approver an EDITOR over the proposed arguments (#566).\n *\n * Off by default, and it is not a styling preference: turning it on changes what an approval MEANS\n * — the approver stops assenting to the agent's call and starts authoring one. A surface that\n * shows the editor must be wired to a decision path that carries the result, or it collects a\n * change and drops it, which is the failure #537 refused to ship.\n *\n * v1 is a RAW JSON editor rather than a generated form. The tool's `inputSchema` is not\n * transported to the browser yet, and the server's validation — not the browser's — is the\n * control, so a textarea the server refuses with a readable message is a complete and honest\n * first version. The generated form is its own issue.\n */\n allowArgumentModification?: boolean;\n /**\n * `modifiedToolArgs` is present only when the approver EDITED the arguments. Absent means \"run the\n * call as proposed\", which is what every approval meant before this parameter existed.\n */\n onApprove?: (approvalId: string, comment?: string, modifiedToolArgs?: Record<string, unknown>) => void;\n onDeny?: (approvalId: string, comment?: string) => void;\n onEscalate?: (approvalId: string, comment?: string) => void;\n isProcessing?: boolean;\n createdAt?: Date;\n};\n\nexport const AI_ApprovalRequest = ({\n approvalId,\n actionDescription,\n riskLevel,\n executionId,\n systemRef,\n expiresAt,\n requiredRoles,\n toolName,\n executionContext,\n allowArgumentModification,\n onApprove,\n onDeny,\n onEscalate,\n isProcessing,\n createdAt,\n className,\n ...props\n}: AI_ApprovalRequestProps): React.JSX.Element | null => {\n const { tComponent, isReady } = useI18n({ component: CT });\n const { remaining, isExpired } = useCountdown(expiresAt);\n const variant = riskLevel === \"critical\" || riskLevel === \"high\" ? \"destructive\" : \"default\";\n\n /*\n * The argument editor's state (#566).\n *\n * `draft` is `null` while the approver is reading rather than editing — distinct from an empty\n * string, which is a draft they have cleared. Opening the editor seeds it from the PROPOSED\n * arguments, so the starting point is the call the agent asked for and an approver changes one\n * value rather than retyping the object.\n */\n const [draft, setDraft] = React.useState<string | null>(null);\n const parsedDraft = React.useMemo(() => {\n if (draft === null) return { value: undefined, invalid: false };\n try {\n const value = JSON.parse(draft) as unknown;\n // An array or a scalar is valid JSON and cannot be a tool's arguments. Refusing it HERE spares\n // the round trip; the server refuses it too, which is what actually protects the call.\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) return { value: undefined, invalid: true };\n return { value: value as Record<string, unknown>, invalid: false };\n } catch {\n return { value: undefined, invalid: true };\n }\n }, [draft]);\n\n if (!isReady) return null;\n\n return (\n <Alert variant={variant} className={cn(\"flex flex-col gap-card-sm\", className)} {...props}>\n <div className=\"flex items-center justify-between gap-element\">\n <div className=\"flex items-center gap-element\">\n {riskLevel && (\n <Badge\n variant={riskLevel === \"critical\" || riskLevel === \"high\" ? \"destructive\" : \"outline\"}\n className=\"text-2xs\"\n >\n {tComponent(CT, `risk${riskLevel.charAt(0).toUpperCase()}${riskLevel.slice(1)}` as any)}\n </Badge>\n )}\n {systemRef && (\n <span className=\"text-2xs text-muted-foreground\">{systemRef}</span>\n )}\n </div>\n\n {/* Countdown / Expired indicator */}\n {remaining && (\n <Badge variant=\"secondary\" className=\"text-2xs tabular-nums\">\n {tComponent(CT, \"expiresCountdown\", { time: remaining })}\n </Badge>\n )}\n {isExpired && (\n <Badge variant=\"destructive\" className=\"text-2xs\">\n {tComponent(CT, \"expired\")}\n </Badge>\n )}\n </div>\n\n <AlertDescription className=\"text-sm\">\n {actionDescription}\n </AlertDescription>\n\n {/* Required roles display */}\n {requiredRoles && requiredRoles.length > 0 && (\n <div className=\"flex items-center gap-element\">\n <span className=\"text-2xs text-muted-foreground\">{tComponent(CT, \"requiredRoles\")}:</span>\n <div className=\"flex gap-1\">\n {requiredRoles.map((role) => (\n <Badge key={role} variant=\"outline\" className=\"text-2xs\">\n {role}\n </Badge>\n ))}\n </div>\n </div>\n )}\n\n {/* The gated tool call — WHAT the approver is being asked to authorize (#455). */}\n {toolName !== undefined && (\n <div className=\"flex items-center gap-element\">\n <span className=\"text-2xs text-muted-foreground\">{tComponent(CT, \"toolCall\")}:</span>\n {/*\n * Rendered as authored. A tool name is an IDENTIFIER the agent runtime owns, and turning\n * `renameTodo` into \"Rename Todo\" would invent display text no i18n tree can correct —\n * the exact fallback `display-text-comes-from-i18n.md` retired. The approver is better\n * served by the name the system will actually run.\n */}\n <code className=\"rounded bg-muted px-1 py-0.5 text-2xs font-mono\">{toolName}</code>\n </div>\n )}\n\n {/*\n * The proposed ARGUMENTS, one row per key, expanded by default.\n *\n * This was a collapsed `JSON.stringify` in a `<pre>`. Two things were wrong with that and only\n * the second is cosmetic: a blob is not readable at approval speed, and COLLAPSED-BY-DEFAULT\n * hides the very thing being approved — an approver who never opens it is signing an unread\n * document, which is how an approval prompt stops being read at all.\n *\n * Keys render VERBATIM. They are the tool's own parameter names, they carry no i18n entry, and\n * humanizing them is forbidden for the same reason as the tool name. A value that is not a\n * primitive is serialized, because a nested object has no honest one-line form — and that\n * narrow case is the only place a JSON fragment survives.\n */}\n {executionContext && Object.keys(executionContext).length > 0 && (\n <div className=\"flex flex-col gap-element\">\n <div className=\"flex items-center justify-between gap-element\">\n <span className=\"text-2xs text-muted-foreground\">{tComponent(CT, \"toolArguments\")}:</span>\n {/*\n * The door to approve-with-modifications (#566), rendered only when the surface's owner\n * declared it. An approver who edits these is AUTHORING a call the agent never\n * proposed, so it is opt-in per surface rather than always present.\n */}\n {allowArgumentModification && (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.GHOST}\n size={ButtonSize.SM}\n disabled={isProcessing || isExpired}\n onClick={() => setDraft(draft === null ? JSON.stringify(executionContext, null, 2) : null)}\n >\n {tComponent(CT, draft === null ? \"editArguments\" : \"discardArgumentEdits\")}\n </Button>\n )}\n </div>\n {draft === null ? (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <dl className=\"grid grid-cols-[auto_1fr] gap-x-element gap-y-0.5 rounded-md bg-muted p-2 text-2xs\">\n {Object.entries(executionContext).map(([key, value]) => (\n <React.Fragment key={key}>\n <dt className=\"font-mono text-muted-foreground\">{key}</dt>\n <dd className=\"min-w-0 break-words font-mono\">\n {typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\"\n ? String(value)\n : JSON.stringify(value)}\n </dd>\n </React.Fragment>\n ))}\n </dl>\n </Surface>\n ) : (\n <>\n <TextareaRoot\n rows={Math.min(12, Object.keys(executionContext).length + 3)}\n value={draft}\n onChange={(e) => setDraft(e.target.value)}\n className=\"font-mono text-2xs\"\n disabled={isProcessing || isExpired}\n aria-invalid={parsedDraft.invalid || undefined}\n aria-label={tComponent(CT, \"editArguments\")}\n />\n {/*\n * Local JSON validity only. Whether these arguments SUIT the tool is the server's\n * question — it holds the tool's `inputSchema`, refuses an edit that violates it, and\n * leaves the approval pending with a message naming the offending argument. Judging\n * that here would be a second, weaker copy of the control.\n */}\n {parsedDraft.invalid && (\n <span className=\"text-2xs text-destructive\">{tComponent(CT, \"argumentsNotValidJson\")}</span>\n )}\n </>\n )}\n </div>\n )}\n\n <AI_ApprovalActions\n approvalId={approvalId}\n riskLevel={riskLevel}\n onApprove={onApprove}\n onDeny={onDeny}\n onEscalate={onEscalate}\n isProcessing={isProcessing}\n // Approving with unparseable text would send nothing and silently run the model's own\n // arguments — a change collected and dropped, which is the one outcome this feature exists\n // to prevent. The button is unavailable until the draft is an object.\n disabled={isExpired || parsedDraft.invalid}\n modifiedToolArgs={parsedDraft.value}\n />\n </Alert>\n );\n};\n\n//===============================================================\n// AI_ApprovalActions\n//===============================================================\n\nexport type AI_ApprovalActionsProps = ComponentProps<\"div\"> & {\n approvalId: string;\n riskLevel?: \"low\" | \"medium\" | \"high\" | \"critical\";\n /** Present only while the approver has the argument editor open with a parseable draft (#566). */\n modifiedToolArgs?: Record<string, unknown>;\n onApprove?: (approvalId: string, comment?: string, modifiedToolArgs?: Record<string, unknown>) => void;\n onDeny?: (approvalId: string, comment?: string) => void;\n onEscalate?: (approvalId: string, comment?: string) => void;\n isProcessing?: boolean;\n disabled?: boolean;\n};\n\nexport const AI_ApprovalActions = ({\n approvalId,\n riskLevel,\n modifiedToolArgs,\n onApprove,\n onDeny,\n onEscalate,\n isProcessing,\n disabled,\n className,\n ...props\n}: AI_ApprovalActionsProps): React.JSX.Element | null => {\n const { tComponent, isReady } = useI18n({ component: CT });\n const [comment, setComment] = React.useState(\"\");\n const isHighRisk = riskLevel === \"high\" || riskLevel === \"critical\";\n const actionsDisabled = isProcessing || disabled;\n\n if (!isReady) return null;\n\n const approveButton = (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.DEFAULT}\n size={ButtonSize.SM}\n disabled={actionsDisabled}\n onClick={isHighRisk ? undefined : () => onApprove?.(approvalId, comment || undefined, modifiedToolArgs)}\n >\n {isProcessing ? tComponent(CT, \"processing\") : tComponent(CT, \"approve\")}\n </Button>\n );\n\n return (\n <div className={cn(\"flex flex-col gap-2\", className)} {...props}>\n {/* Comment textarea */}\n <TextareaRoot\n rows={2}\n value={comment}\n onChange={(e) => setComment(e.target.value)}\n placeholder={tComponent(CT, \"commentPlaceholder\")}\n className=\"text-xs\"\n disabled={actionsDisabled}\n />\n\n <div className=\"flex items-center gap-element\">\n {/* Approve — with confirmation dialog for high/critical risk */}\n {isHighRisk ? (\n <AlertDialog>\n <AlertDialogTrigger asChild>\n {approveButton}\n </AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{tComponent(CT, \"confirmTitle\")}</AlertDialogTitle>\n <AlertDialogDescription>{tComponent(CT, \"confirmDescription\")}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>{tComponent(CT, \"confirmCancel\")}</AlertDialogCancel>\n <AlertDialogAction onClick={() => onApprove?.(approvalId, comment || undefined, modifiedToolArgs)}>\n {tComponent(CT, \"confirmProceed\")}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n ) : (\n approveButton\n )}\n\n {/* Deny */}\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.OUTLINE}\n size={ButtonSize.SM}\n disabled={actionsDisabled}\n onClick={() => onDeny?.(approvalId, comment || undefined)}\n >\n {tComponent(CT, \"deny\")}\n </Button>\n\n {/* Escalate (optional) */}\n {onEscalate && (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.SECONDARY}\n size={ButtonSize.SM}\n disabled={actionsDisabled}\n onClick={() => onEscalate?.(approvalId, comment || undefined)}\n >\n {tComponent(CT, \"escalate\")}\n </Button>\n )}\n </div>\n </div>\n );\n};\n\n//===============================================================\n// AI_ApprovalQueue\n//===============================================================\n\nconst RISK_ORDER: Record<string, number> = { critical: 0, high: 1, medium: 2, low: 3 };\n\nexport type AI_ApprovalQueueItem = {\n approvalId: string;\n executionId: string;\n systemRef: string;\n actionDescription: string;\n /** OPTIONAL for the same reason as on a single request — nothing populates it (#528). */\n riskLevel?: \"low\" | \"medium\" | \"high\" | \"critical\";\n expiresAt?: Date;\n requiredRoles?: string[];\n executionContext?: Record<string, unknown>;\n createdAt?: Date;\n};\n\nexport type AI_ApprovalQueueProps = ComponentProps<\"div\"> & {\n items: AI_ApprovalQueueItem[];\n onApprove?: (approvalId: string, comment?: string) => void;\n onDeny?: (approvalId: string, comment?: string) => void;\n onEscalate?: (approvalId: string, comment?: string) => void;\n processingIds?: Set<string>;\n filter?: string;\n onFilterChange?: (filter: string) => void;\n};\n\nfunction useRelativeTimeFormatter(): (date: Date) => string {\n const { tComponent } = useI18n({ component: CT });\n return React.useCallback((date: Date): string => {\n const seconds = Math.floor((Date.now() - date.getTime()) / 1_000);\n if (seconds < 60) return tComponent(CT, \"timeAgoSeconds\", { count: String(seconds) });\n const minutes = Math.floor(seconds / 60);\n if (minutes < 60) return tComponent(CT, \"timeAgoMinutes\", { count: String(minutes) });\n const hours = Math.floor(minutes / 60);\n return tComponent(CT, \"timeAgoHours\", { count: String(hours) });\n }, [tComponent]);\n}\n\nexport const AI_ApprovalQueue = ({\n items,\n onApprove,\n onDeny,\n onEscalate,\n processingIds,\n filter,\n onFilterChange,\n className,\n ...props\n}: AI_ApprovalQueueProps): React.JSX.Element | null => {\n const { tComponent, isReady } = useI18n({ component: CT });\n const formatRelativeTime = useRelativeTimeFormatter();\n const [sortByRisk, setSortByRisk] = React.useState(true);\n const [internalFilter, setInternalFilter] = React.useState(\"\");\n\n const activeFilter = filter ?? internalFilter;\n\n const filtered = React.useMemo(() => {\n let result = items;\n if (activeFilter) {\n const q = activeFilter.toLowerCase();\n result = result.filter((i) =>\n i.systemRef.toLowerCase().includes(q) ||\n i.actionDescription.toLowerCase().includes(q) ||\n i.executionId.toLowerCase().includes(q)\n );\n }\n if (sortByRisk) {\n result = [...result].sort((a, b) =>\n (RISK_ORDER[a.riskLevel] ?? 4) - (RISK_ORDER[b.riskLevel] ?? 4)\n );\n }\n return result;\n }, [items, activeFilter, sortByRisk]);\n\n if (!isReady) return null;\n\n return (\n <div className={cn(\"flex flex-col gap-card\", className)} {...props}>\n <div className=\"flex items-center justify-between gap-element\">\n <div className=\"flex items-center gap-element\">\n <h3 className=\"text-sm font-semibold\">\n {tComponent(CT, \"queueTitle\")}\n </h3>\n <Badge variant=\"secondary\">{items.length}</Badge>\n </div>\n\n <Button\n type=\"button\"\n variant={sortByRisk ? ButtonVariants_Variant.SECONDARY : ButtonVariants_Variant.GHOST}\n size={ButtonSize.SM}\n className=\"h-6 text-2xs\"\n onClick={() => setSortByRisk(!sortByRisk)}\n >\n {tComponent(CT, \"queueSortRisk\")}\n </Button>\n </div>\n\n {items.length === 0 ? (\n <p className=\"py-card text-center text-sm text-muted-foreground\">\n {tComponent(CT, \"queueEmpty\")}\n </p>\n ) : (\n <ScrollArea className=\"max-h-96\">\n <div className=\"flex flex-col gap-card-sm\">\n {filtered.map((item) => (\n <div key={item.approvalId} className=\"relative\">\n {item.createdAt && (\n <span className=\"absolute end-2 top-2 text-2xs text-muted-foreground\">\n {formatRelativeTime(item.createdAt)}\n </span>\n )}\n <AI_ApprovalRequest\n approvalId={item.approvalId}\n executionId={item.executionId}\n systemRef={item.systemRef}\n actionDescription={item.actionDescription}\n riskLevel={item.riskLevel}\n expiresAt={item.expiresAt}\n requiredRoles={item.requiredRoles}\n executionContext={item.executionContext}\n createdAt={item.createdAt}\n onApprove={onApprove}\n onDeny={onDeny}\n onEscalate={onEscalate}\n isProcessing={processingIds?.has(item.approvalId)}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"approval.js","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/decision/approval.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n Alert,\n AlertDescription,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n Badge,\n Button,\n ButtonVariants_Variant,\n ScrollArea,\n TextareaRoot,\n cn,\n useI18n,\n Surface,\n} from '@wildo-ai/saas-frontend-lib';\nimport type { SerializableZodSchema } from '@wildo-ai/zod-decorators';\n\nimport { FrontendComponentType, ButtonSize, SurfaceVariant } from \"@wildo-ai/presets-components-models\";\nimport { ApprovalArgumentEditorMode, ApprovalArgumentFields, fieldsEditableArgumentsSchema } from \"./approval-argument-fields\";\nimport type { ComponentProps } from \"react\";\n\nconst CT: FrontendComponentType = FrontendComponentType.LOW_LEVEL_AI_APPROVAL;\n\n//===============================================================\n// Human-in-the-Loop Approval Components\n//\n// BACKEND DEPENDENCIES:\n// - FlowsActorsContext.respondToApproval() — implemented (WebSocket emit)\n// - WebSocket event: FLOWS_ACTORS_APPROVAL_REQUEST — implemented\n// - FlowsActorsExecution.pendingApproval — schema ready:\n// { approvalId, actionDescription, riskLevel, expiresAt?, requiredRoles? }\n//\n// Components render approval UI from props. Wire to context via\n// the saas-frontend-lib wrapper (flows-actors/approval.tsx).\n//===============================================================\n\n//===============================================================\n// useCountdown — shared countdown hook\n//===============================================================\n\nfunction useCountdown(expiresAt: Date | undefined): { remaining: string | null; isExpired: boolean } {\n const [now, setNow] = React.useState(() => Date.now());\n\n React.useEffect(() => {\n if (!expiresAt) return;\n const id = setInterval(() => setNow(Date.now()), 1_000);\n return () => clearInterval(id);\n }, [expiresAt]);\n\n if (!expiresAt) return { remaining: null, isExpired: false };\n\n const diff = expiresAt.getTime() - now;\n if (diff <= 0) return { remaining: null, isExpired: true };\n\n const totalSeconds = Math.floor(diff / 1_000);\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds % 60;\n const remaining = minutes > 0\n ? `${minutes}m ${String(seconds).padStart(2, \"0\")}s`\n : `${seconds}s`;\n\n return { remaining, isExpired: false };\n}\n\n//===============================================================\n// AI_ApprovalRequest\n//===============================================================\n\nexport type AI_ApprovalRequestProps = ComponentProps<typeof Alert> & {\n approvalId: string;\n actionDescription: string;\n /**\n * OPTIONAL, because nothing populates it. A risk level exists only on\n * `WS_FlowsActorsApprovalRequestPayload`, a payload no code emits; the announcement a paused turn\n * really sends carries a tool name and its arguments and no risk claim (#528). Absent means the\n * badge is not rendered — a default here would show a severity nobody declared.\n */\n riskLevel?: \"low\" | \"medium\" | \"high\" | \"critical\";\n executionId: string;\n systemRef?: string;\n expiresAt?: Date;\n requiredRoles?: string[];\n /**\n * The gated tool call, and the arguments proposed for it.\n *\n * `toolName` is an IDENTIFIER, rendered as authored — it is the thing the agent asked to run,\n * and humanizing it here would invent display text no i18n tree owns.\n * `executionContext` carries the arguments (#455).\n */\n toolName?: string;\n executionContext?: Record<string, unknown>;\n /**\n * Offer the approver an EDITOR over the proposed arguments (#566).\n *\n * Off by default, and it is not a styling preference: turning it on changes what an approval MEANS\n * — the approver stops assenting to the agent's call and starts authoring one. A surface that\n * shows the editor must be wired to a decision path that carries the result, or it collects a\n * change and drops it, which is the failure #537 refused to ship.\n *\n * The editor offers the tool's FIELDS when `argumentsSchema` describes a shape they can express\n * (#587), and raw JSON otherwise; the raw editor stays one click away in both cases. Neither is the\n * control: the server re-validates the edit against the tool's live schema and refuses a violation\n * with a readable message, which is why a field editor that drops refinements is still honest.\n */\n allowArgumentModification?: boolean;\n /** The gated tool's input-schema descriptor (#587). Absent, or a shape fields cannot express, means raw JSON. */\n argumentsSchema?: SerializableZodSchema;\n /**\n * Why the last submitted edit was refused (#587), as LOCALIZED text. The approval is still pending: the\n * editor reopens on the refused arguments and shows this reason beside them. The engine wrapper renders it\n * from the approval's own labels, one per refusal reason, naming the tool and the offending arguments\n * (#1186) — a direct consumer must pass words the reader can read, never a server's sentence.\n */\n argumentModificationError?: string;\n /** What the approver submitted when that edit was refused (#587) — the reopened editor starts from it. */\n rejectedArguments?: Record<string, unknown>;\n /**\n * `modifiedToolArgs` is present only when the approver EDITED the arguments. Absent means \"run the\n * call as proposed\", which is what every approval meant before this parameter existed.\n */\n onApprove?: (approvalId: string, comment?: string, modifiedToolArgs?: Record<string, unknown>) => void;\n onDeny?: (approvalId: string, comment?: string) => void;\n onEscalate?: (approvalId: string, comment?: string) => void;\n isProcessing?: boolean;\n createdAt?: Date;\n};\n\nexport const AI_ApprovalRequest = ({\n approvalId,\n actionDescription,\n riskLevel,\n executionId,\n systemRef,\n expiresAt,\n requiredRoles,\n toolName,\n executionContext,\n allowArgumentModification,\n argumentsSchema,\n argumentModificationError,\n rejectedArguments,\n onApprove,\n onDeny,\n onEscalate,\n isProcessing,\n createdAt,\n className,\n ...props\n}: AI_ApprovalRequestProps): React.JSX.Element | null => {\n const { tComponent, isReady } = useI18n({ component: CT });\n const { remaining, isExpired } = useCountdown(expiresAt);\n const variant = riskLevel === \"critical\" || riskLevel === \"high\" ? \"destructive\" : \"default\";\n\n /*\n * The argument editor's state (#566).\n *\n * `draft` is `null` while the approver is reading rather than editing — distinct from an empty\n * string, which is a draft they have cleared. Opening the editor seeds it from the PROPOSED\n * arguments, so the starting point is the call the agent asked for and an approver changes one\n * value rather than retyping the object.\n */\n const fieldsSchema = React.useMemo(() => fieldsEditableArgumentsSchema(argumentsSchema), [argumentsSchema]);\n /*\n * A refused edit reopens on what the approver SUBMITTED (#587). The request unmounted while its\n * decision was in flight, so without this the approver would land back on the model's proposal and\n * lose the change the server has just explained.\n */\n const reopenedOn = argumentModificationError !== undefined ? (rejectedArguments ?? executionContext) : undefined;\n const [editorMode, setEditorMode] = React.useState<ApprovalArgumentEditorMode | null>(() =>\n reopenedOn === undefined ? null : fieldsSchema ? ApprovalArgumentEditorMode.FIELDS : ApprovalArgumentEditorMode.JSON,\n );\n // The value the field editor (re)mounts on — replaced when the approver switches back from JSON.\n const [fieldsSeed, setFieldsSeed] = React.useState<Record<string, unknown>>(() => reopenedOn ?? executionContext ?? {});\n const [fieldsEdit, setFieldsEdit] = React.useState<{ value: Record<string, unknown> | undefined; invalid: boolean }>({\n value: undefined,\n invalid: false,\n });\n const handleFieldsChange = React.useCallback(\n (next: { value: Record<string, unknown> | undefined; invalid: boolean }) => setFieldsEdit(next),\n [],\n );\n const [draft, setDraft] = React.useState<string>(() => JSON.stringify(reopenedOn ?? executionContext ?? {}, null, 2));\n const parsedDraft = React.useMemo(() => {\n try {\n const value = JSON.parse(draft) as unknown;\n // An array or a scalar is valid JSON and cannot be a tool's arguments. Refusing it HERE spares\n // the round trip; the server refuses it too, which is what actually protects the call.\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) return { value: undefined, invalid: true };\n return { value: value as Record<string, unknown>, invalid: false };\n } catch {\n return { value: undefined, invalid: true };\n }\n }, [draft]);\n\n if (!isReady) return null;\n\n return (\n <Alert variant={variant} className={cn(\"flex flex-col gap-card-sm\", className)} {...props}>\n <div className=\"flex items-center justify-between gap-element\">\n <div className=\"flex items-center gap-element\">\n {riskLevel && (\n <Badge\n variant={riskLevel === \"critical\" || riskLevel === \"high\" ? \"destructive\" : \"outline\"}\n className=\"text-2xs\"\n >\n {tComponent(CT, `risk${riskLevel.charAt(0).toUpperCase()}${riskLevel.slice(1)}` as any)}\n </Badge>\n )}\n {systemRef && (\n <span className=\"text-2xs text-muted-foreground\">{systemRef}</span>\n )}\n </div>\n\n {/* Countdown / Expired indicator */}\n {remaining && (\n <Badge variant=\"secondary\" className=\"text-2xs tabular-nums\">\n {tComponent(CT, \"expiresCountdown\", { time: remaining })}\n </Badge>\n )}\n {isExpired && (\n <Badge variant=\"destructive\" className=\"text-2xs\">\n {tComponent(CT, \"expired\")}\n </Badge>\n )}\n </div>\n\n <AlertDescription className=\"text-sm\">\n {actionDescription}\n </AlertDescription>\n\n {/* Required roles display */}\n {requiredRoles && requiredRoles.length > 0 && (\n <div className=\"flex items-center gap-element\">\n <span className=\"text-2xs text-muted-foreground\">{tComponent(CT, \"requiredRoles\")}:</span>\n <div className=\"flex gap-1\">\n {requiredRoles.map((role) => (\n <Badge key={role} variant=\"outline\" className=\"text-2xs\">\n {role}\n </Badge>\n ))}\n </div>\n </div>\n )}\n\n {/* The gated tool call — WHAT the approver is being asked to authorize (#455). */}\n {toolName !== undefined && (\n <div className=\"flex items-center gap-element\">\n <span className=\"text-2xs text-muted-foreground\">{tComponent(CT, \"toolCall\")}:</span>\n {/*\n * Rendered as authored. A tool name is an IDENTIFIER the agent runtime owns, and turning\n * `renameTodo` into \"Rename Todo\" would invent display text no i18n tree can correct —\n * the exact fallback `display-text-comes-from-i18n.md` retired. The approver is better\n * served by the name the system will actually run.\n */}\n <code className=\"rounded bg-muted px-1 py-0.5 text-2xs font-mono\">{toolName}</code>\n </div>\n )}\n\n {/*\n * The proposed ARGUMENTS, one row per key, expanded by default.\n *\n * This was a collapsed `JSON.stringify` in a `<pre>`. Two things were wrong with that and only\n * the second is cosmetic: a blob is not readable at approval speed, and COLLAPSED-BY-DEFAULT\n * hides the very thing being approved — an approver who never opens it is signing an unread\n * document, which is how an approval prompt stops being read at all.\n *\n * Keys render VERBATIM. They are the tool's own parameter names, they carry no i18n entry, and\n * humanizing them is forbidden for the same reason as the tool name. A value that is not a\n * primitive is serialized, because a nested object has no honest one-line form — and that\n * narrow case is the only place a JSON fragment survives.\n */}\n {executionContext && Object.keys(executionContext).length > 0 && (\n <div className=\"flex flex-col gap-element\">\n <div className=\"flex items-center justify-between gap-element\">\n <span className=\"text-2xs text-muted-foreground\">{tComponent(CT, \"toolArguments\")}:</span>\n {/*\n * The door to approve-with-modifications (#566), rendered only when the surface's owner\n * declared it. An approver who edits these is AUTHORING a call the agent never\n * proposed, so it is opt-in per surface rather than always present.\n */}\n {allowArgumentModification && (\n <div className=\"flex items-center gap-1\">\n {/*\n * Fields ⇄ JSON (#587). Offered only when the descriptor can be expressed as fields, and\n * JSON → fields only from a draft that parses, so switching never discards an edit.\n */}\n {editorMode !== null && fieldsSchema && (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.GHOST}\n size={ButtonSize.SM}\n disabled={isProcessing || isExpired || (editorMode === ApprovalArgumentEditorMode.JSON && parsedDraft.invalid)}\n onClick={() => {\n if (editorMode === ApprovalArgumentEditorMode.FIELDS) {\n setDraft(JSON.stringify(fieldsEdit.value ?? fieldsSeed, null, 2));\n setEditorMode(ApprovalArgumentEditorMode.JSON);\n } else if (parsedDraft.value) {\n setFieldsSeed(parsedDraft.value);\n setEditorMode(ApprovalArgumentEditorMode.FIELDS);\n }\n }}\n >\n {tComponent(CT, editorMode === ApprovalArgumentEditorMode.FIELDS ? \"editArgumentsAsJson\" : \"editArgumentsAsFields\")}\n </Button>\n )}\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.GHOST}\n size={ButtonSize.SM}\n disabled={isProcessing || isExpired}\n onClick={() => {\n if (editorMode !== null) {\n setEditorMode(null);\n return;\n }\n // Opening always starts from the call the agent PROPOSED.\n const proposed = executionContext ?? {};\n setFieldsSeed(proposed);\n setDraft(JSON.stringify(proposed, null, 2));\n setEditorMode(fieldsSchema ? ApprovalArgumentEditorMode.FIELDS : ApprovalArgumentEditorMode.JSON);\n }}\n >\n {tComponent(CT, editorMode === null ? \"editArguments\" : \"discardArgumentEdits\")}\n </Button>\n </div>\n )}\n </div>\n {/*\n * Why the last submitted edit was refused (#587). The words are the approval's own labels,\n * resolved by the wrapper per refusal reason with the offending arguments named (#1186); the\n * server's sentence no longer reaches this card. The approval is still pending while it shows.\n */}\n {argumentModificationError !== undefined && editorMode !== null && (\n <span className=\"text-2xs text-destructive\">\n {tComponent(CT, \"argumentModificationRefused\")}: {argumentModificationError}\n </span>\n )}\n {editorMode === null ? (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <dl className=\"grid grid-cols-[auto_1fr] gap-x-element gap-y-0.5 rounded-md bg-muted p-2 text-2xs\">\n {Object.entries(executionContext).map(([key, value]) => (\n <React.Fragment key={key}>\n <dt className=\"font-mono text-muted-foreground\">{key}</dt>\n <dd className=\"min-w-0 break-words font-mono\">\n {typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\"\n ? String(value)\n : JSON.stringify(value)}\n </dd>\n </React.Fragment>\n ))}\n </dl>\n </Surface>\n ) : editorMode === ApprovalArgumentEditorMode.FIELDS && fieldsSchema ? (\n <ApprovalArgumentFields\n schema={fieldsSchema}\n initialValue={fieldsSeed}\n disabled={isProcessing || isExpired}\n invalidJsonMessage={tComponent(CT, \"argumentValueNotValidJson\")}\n onChange={handleFieldsChange}\n />\n ) : (\n <>\n <TextareaRoot\n rows={Math.min(12, Object.keys(executionContext).length + 3)}\n value={draft}\n onChange={(e) => setDraft(e.target.value)}\n className=\"font-mono text-2xs\"\n disabled={isProcessing || isExpired}\n aria-invalid={parsedDraft.invalid || undefined}\n aria-label={tComponent(CT, \"editArguments\")}\n />\n {/*\n * Local JSON validity only. Whether these arguments SUIT the tool is the server's\n * question — it holds the tool's `inputSchema`, refuses an edit that violates it, and\n * leaves the approval pending with a message naming the offending argument. Judging\n * that here would be a second, weaker copy of the control.\n */}\n {parsedDraft.invalid && (\n <span className=\"text-2xs text-destructive\">{tComponent(CT, \"argumentsNotValidJson\")}</span>\n )}\n </>\n )}\n </div>\n )}\n\n <AI_ApprovalActions\n approvalId={approvalId}\n riskLevel={riskLevel}\n onApprove={onApprove}\n onDeny={onDeny}\n onEscalate={onEscalate}\n isProcessing={isProcessing}\n // Approving with unparseable text would send nothing and silently run the model's own\n // arguments — a change collected and dropped, which is the one outcome this feature exists\n // to prevent. The button is unavailable until the draft is an object.\n disabled={\n isExpired\n || (editorMode === ApprovalArgumentEditorMode.FIELDS && fieldsEdit.invalid)\n || (editorMode === ApprovalArgumentEditorMode.JSON && parsedDraft.invalid)\n }\n // Whatever the approver is authoring in — and `undefined` whenever the editor is closed, which is\n // what \"run the call as proposed\" means on the wire.\n modifiedToolArgs={\n editorMode === ApprovalArgumentEditorMode.FIELDS\n ? fieldsEdit.value\n : editorMode === ApprovalArgumentEditorMode.JSON\n ? parsedDraft.value\n : undefined\n }\n />\n </Alert>\n );\n};\n\n//===============================================================\n// AI_ApprovalActions\n//===============================================================\n\nexport type AI_ApprovalActionsProps = ComponentProps<\"div\"> & {\n approvalId: string;\n riskLevel?: \"low\" | \"medium\" | \"high\" | \"critical\";\n /** Present only while the approver has the argument editor open with a parseable draft (#566). */\n modifiedToolArgs?: Record<string, unknown>;\n onApprove?: (approvalId: string, comment?: string, modifiedToolArgs?: Record<string, unknown>) => void;\n onDeny?: (approvalId: string, comment?: string) => void;\n onEscalate?: (approvalId: string, comment?: string) => void;\n isProcessing?: boolean;\n disabled?: boolean;\n};\n\nexport const AI_ApprovalActions = ({\n approvalId,\n riskLevel,\n modifiedToolArgs,\n onApprove,\n onDeny,\n onEscalate,\n isProcessing,\n disabled,\n className,\n ...props\n}: AI_ApprovalActionsProps): React.JSX.Element | null => {\n const { tComponent, isReady } = useI18n({ component: CT });\n const [comment, setComment] = React.useState(\"\");\n const isHighRisk = riskLevel === \"high\" || riskLevel === \"critical\";\n const actionsDisabled = isProcessing || disabled;\n\n if (!isReady) return null;\n\n const approveButton = (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.DEFAULT}\n size={ButtonSize.SM}\n disabled={actionsDisabled}\n onClick={isHighRisk ? undefined : () => onApprove?.(approvalId, comment || undefined, modifiedToolArgs)}\n >\n {isProcessing ? tComponent(CT, \"processing\") : tComponent(CT, \"approve\")}\n </Button>\n );\n\n return (\n <div className={cn(\"flex flex-col gap-2\", className)} {...props}>\n {/* Comment textarea */}\n <TextareaRoot\n rows={2}\n value={comment}\n onChange={(e) => setComment(e.target.value)}\n placeholder={tComponent(CT, \"commentPlaceholder\")}\n className=\"text-xs\"\n disabled={actionsDisabled}\n />\n\n <div className=\"flex items-center gap-element\">\n {/* Approve — with confirmation dialog for high/critical risk */}\n {isHighRisk ? (\n <AlertDialog>\n <AlertDialogTrigger asChild>\n {approveButton}\n </AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{tComponent(CT, \"confirmTitle\")}</AlertDialogTitle>\n <AlertDialogDescription>{tComponent(CT, \"confirmDescription\")}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>{tComponent(CT, \"confirmCancel\")}</AlertDialogCancel>\n <AlertDialogAction onClick={() => onApprove?.(approvalId, comment || undefined, modifiedToolArgs)}>\n {tComponent(CT, \"confirmProceed\")}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n ) : (\n approveButton\n )}\n\n {/* Deny */}\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.OUTLINE}\n size={ButtonSize.SM}\n disabled={actionsDisabled}\n onClick={() => onDeny?.(approvalId, comment || undefined)}\n >\n {tComponent(CT, \"deny\")}\n </Button>\n\n {/* Escalate (optional) */}\n {onEscalate && (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.SECONDARY}\n size={ButtonSize.SM}\n disabled={actionsDisabled}\n onClick={() => onEscalate?.(approvalId, comment || undefined)}\n >\n {tComponent(CT, \"escalate\")}\n </Button>\n )}\n </div>\n </div>\n );\n};\n\n//===============================================================\n// AI_ApprovalQueue\n//===============================================================\n\nconst RISK_ORDER: Record<string, number> = { critical: 0, high: 1, medium: 2, low: 3 };\n\nexport type AI_ApprovalQueueItem = {\n approvalId: string;\n executionId: string;\n systemRef: string;\n actionDescription: string;\n /** OPTIONAL for the same reason as on a single request — nothing populates it (#528). */\n riskLevel?: \"low\" | \"medium\" | \"high\" | \"critical\";\n expiresAt?: Date;\n requiredRoles?: string[];\n executionContext?: Record<string, unknown>;\n createdAt?: Date;\n};\n\nexport type AI_ApprovalQueueProps = ComponentProps<\"div\"> & {\n items: AI_ApprovalQueueItem[];\n onApprove?: (approvalId: string, comment?: string) => void;\n onDeny?: (approvalId: string, comment?: string) => void;\n onEscalate?: (approvalId: string, comment?: string) => void;\n processingIds?: Set<string>;\n filter?: string;\n onFilterChange?: (filter: string) => void;\n};\n\nfunction useRelativeTimeFormatter(): (date: Date) => string {\n const { tComponent } = useI18n({ component: CT });\n return React.useCallback((date: Date): string => {\n const seconds = Math.floor((Date.now() - date.getTime()) / 1_000);\n if (seconds < 60) return tComponent(CT, \"timeAgoSeconds\", { count: String(seconds) });\n const minutes = Math.floor(seconds / 60);\n if (minutes < 60) return tComponent(CT, \"timeAgoMinutes\", { count: String(minutes) });\n const hours = Math.floor(minutes / 60);\n return tComponent(CT, \"timeAgoHours\", { count: String(hours) });\n }, [tComponent]);\n}\n\nexport const AI_ApprovalQueue = ({\n items,\n onApprove,\n onDeny,\n onEscalate,\n processingIds,\n filter,\n onFilterChange,\n className,\n ...props\n}: AI_ApprovalQueueProps): React.JSX.Element | null => {\n const { tComponent, isReady } = useI18n({ component: CT });\n const formatRelativeTime = useRelativeTimeFormatter();\n const [sortByRisk, setSortByRisk] = React.useState(true);\n const [internalFilter, setInternalFilter] = React.useState(\"\");\n\n const activeFilter = filter ?? internalFilter;\n\n const filtered = React.useMemo(() => {\n let result = items;\n if (activeFilter) {\n const q = activeFilter.toLowerCase();\n result = result.filter((i) =>\n i.systemRef.toLowerCase().includes(q) ||\n i.actionDescription.toLowerCase().includes(q) ||\n i.executionId.toLowerCase().includes(q)\n );\n }\n if (sortByRisk) {\n result = [...result].sort((a, b) =>\n (RISK_ORDER[a.riskLevel] ?? 4) - (RISK_ORDER[b.riskLevel] ?? 4)\n );\n }\n return result;\n }, [items, activeFilter, sortByRisk]);\n\n if (!isReady) return null;\n\n return (\n <div className={cn(\"flex flex-col gap-card\", className)} {...props}>\n <div className=\"flex items-center justify-between gap-element\">\n <div className=\"flex items-center gap-element\">\n <h3 className=\"text-sm font-semibold\">\n {tComponent(CT, \"queueTitle\")}\n </h3>\n <Badge variant=\"secondary\">{items.length}</Badge>\n </div>\n\n <Button\n type=\"button\"\n variant={sortByRisk ? ButtonVariants_Variant.SECONDARY : ButtonVariants_Variant.GHOST}\n size={ButtonSize.SM}\n className=\"h-6 text-2xs\"\n onClick={() => setSortByRisk(!sortByRisk)}\n >\n {tComponent(CT, \"queueSortRisk\")}\n </Button>\n </div>\n\n {items.length === 0 ? (\n <p className=\"py-card text-center text-sm text-muted-foreground\">\n {tComponent(CT, \"queueEmpty\")}\n </p>\n ) : (\n <ScrollArea className=\"max-h-96\">\n <div className=\"flex flex-col gap-card-sm\">\n {filtered.map((item) => (\n <div key={item.approvalId} className=\"relative\">\n {item.createdAt && (\n <span className=\"absolute end-2 top-2 text-2xs text-muted-foreground\">\n {formatRelativeTime(item.createdAt)}\n </span>\n )}\n <AI_ApprovalRequest\n approvalId={item.approvalId}\n executionId={item.executionId}\n systemRef={item.systemRef}\n actionDescription={item.actionDescription}\n riskLevel={item.riskLevel}\n expiresAt={item.expiresAt}\n requiredRoles={item.requiredRoles}\n executionContext={item.executionContext}\n createdAt={item.createdAt}\n onApprove={onApprove}\n onDeny={onDeny}\n onEscalate={onEscalate}\n isProcessing={processingIds?.has(item.approvalId)}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n </div>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"decision-request.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/decision/decision-request.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,IAAI,EAaL,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAmD5C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,UAAU,CAAC,GAAG;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,oHAWhC,uBAAuB,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IA2JhD,CAAC;AAMF,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,UAAU,CAAC,GAAG;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,mGAUlC,yBAAyB,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IA4GlD,CAAC"}
1
+ {"version":3,"file":"decision-request.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/decision/decision-request.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,IAAI,EAaL,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAmD5C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,UAAU,CAAC,GAAG;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,oHAWhC,uBAAuB,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IA2JhD,CAAC;AAMF,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,UAAU,CAAC,GAAG;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,mGAUlC,yBAAyB,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IA4GlD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"decision-request.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/decision/decision-request.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAwDzD,CAAC"}
1
+ {"version":3,"file":"decision-request.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/decision/decision-request.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAwDzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/execution/confirmation.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAGV,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AAsBrC,eAAO,MAAM,eAAe,GAAI,0CAK7B,oBAAoB,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAU7C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,yBAGlC,yBAAyB,KAAG,KAAK,CAAC,GAAG,CAAC,OAExC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,cAAc,2BAA2B,KAAG,KAAK,CAAC,SASxF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,eAErC,4BAA4B,KAAG,KAAK,CAAC,SAcvC,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,eAErC,4BAA4B,KAAG,KAAK,CAAC,SAcvC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,yBAGpC,2BAA2B,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAcpD,CAAC;AAKF,eAAO,MAAM,qBAAqB,GAAI,OAAO,0BAA0B,KAAG,KAAK,CAAC,GAAG,CAAC,OAEnF,CAAC"}
1
+ {"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/confirmation.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAGV,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AAsBrC,eAAO,MAAM,eAAe,GAAI,0CAK7B,oBAAoB,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAU7C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,yBAGlC,yBAAyB,KAAG,KAAK,CAAC,GAAG,CAAC,OAExC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,cAAc,2BAA2B,KAAG,KAAK,CAAC,SASxF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,eAErC,4BAA4B,KAAG,KAAK,CAAC,SAcvC,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,eAErC,4BAA4B,KAAG,KAAK,CAAC,SAcvC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,yBAGpC,2BAA2B,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAcpD,CAAC;AAKF,eAAO,MAAM,qBAAqB,GAAI,OAAO,0BAA0B,KAAG,KAAK,CAAC,GAAG,CAAC,OAEnF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"confirmation.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/execution/confirmation.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM1I,eAAO,MAAM,4BAA4B,EAAE,mBAAmB,EAW7D,CAAC"}
1
+ {"version":3,"file":"confirmation.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/confirmation.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM1I,eAAO,MAAM,4BAA4B,EAAE,mBAAmB,EAW7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/execution/queue.tsx"],"names":[],"mappings":"AAGA,OAAO,EAaL,gBAAgB,EAmBjB,MAAM,6BAA6B,CAAC;AAqTrC,eAAO,MAAM,QAAQ,kBAiBnB,CAAC"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/queue.tsx"],"names":[],"mappings":"AAGA,OAAO,EAaL,gBAAgB,EAmBjB,MAAM,6BAA6B,CAAC;AAqTrC,eAAO,MAAM,QAAQ,kBAiBnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"queue.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/execution/queue.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,qBAAqB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"queue.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/queue.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,qBAAqB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/execution/task.tsx"],"names":[],"mappings":"AAGA,OAAO,EAeL,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAiGrC,eAAO,MAAM,OAAO,iBAKlB,CAAC"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/task.tsx"],"names":[],"mappings":"AAGA,OAAO,EAeL,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAwGrC,eAAO,MAAM,OAAO,iBAKlB,CAAC"}
@@ -13,7 +13,7 @@ const AI_TaskTrigger = ({ children, className, title, ...props }) => {
13
13
  const { renderIcon } = useIconRegistry();
14
14
  const { getRecipe } = useUI();
15
15
  const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
16
- return (_jsx(CollapsibleTrigger, { asChild: true, className: cn("group", className), ...props, children: children ?? (_jsxs("div", { className: cn("flex w-full cursor-pointer items-center gap-element transition-colors hover:text-foreground", descRecipe.base), children: [renderIcon(StandardIconReference.SEARCH, { className: "size-4" }), _jsx("p", { className: "text-sm", children: title }), renderIcon(StandardIconReference.CHEVRON_DOWN, { className: "size-4 transition-transform group-data-[state=open]:rotate-180" })] })) }));
16
+ return (_jsx(CollapsibleTrigger, { asChild: true, className: cn("group", className), ...props, children: children ?? (_jsxs("div", { className: cn("flex w-full min-w-0 cursor-pointer items-center gap-element transition-colors hover:text-foreground", descRecipe.base), children: [renderIcon(StandardIconReference.SEARCH, { className: "size-4 shrink-0" }), _jsx("p", { className: "min-w-0 flex-1 break-words text-sm", children: title }), renderIcon(StandardIconReference.CHEVRON_DOWN, { className: "size-4 transition-transform group-data-[state=open]:rotate-180" })] })) }));
17
17
  };
18
18
  /** The themed nesting guide for the task's revealed items — a hook because a recipe is runtime theme state. */
19
19
  function useTaskNestingGuide() {
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/task.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n AI_TaskProps,\n AI_TaskTriggerProps,\n AI_TaskContentProps,\n AI_TaskItemProps,\n AI_TaskItemFileProps,\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n cn,\n useIconRegistry,\n StandardIconReference,\n useUI,\n createCompoundPreset,\n Surface,\n AI_TaskCompound,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { DividerVariant, FrontendComponentType, SurfaceVariant, TypographyVariant, UIBehavior } from \"@wildo-ai/presets-components-models\";\n\nconst AI_TaskItemFile = ({\n children,\n className,\n ...props\n}: AI_TaskItemFileProps): React.JSX.Element => (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div\n className={cn(\n \"inline-flex items-center gap-item-xs rounded-md border bg-secondary px-1.5 py-0.5 text-foreground text-xs\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </Surface>\n);\n\nconst AI_TaskItem = ({ children, className, ...props }: AI_TaskItemProps): React.JSX.Element => {\n const { getRecipe } = useUI();\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n return (\n <div className={cn(descRecipe.base, className)} {...props}>\n {children}\n </div>\n );\n};\n\nconst AI_TaskRoot = ({\n defaultOpen = true,\n className,\n ...props\n}: AI_TaskProps): React.JSX.Element => (\n <Collapsible className={cn(className)} defaultOpen={defaultOpen} {...props} />\n);\n\nconst AI_TaskTrigger = ({\n children,\n className,\n title,\n ...props\n}: AI_TaskTriggerProps): React.JSX.Element => {\n const { renderIcon } = useIconRegistry();\n const { getRecipe } = useUI();\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n return (\n <CollapsibleTrigger asChild className={cn(\"group\", className)} {...props}>\n {children ?? (\n <div className={cn(\"flex w-full cursor-pointer items-center gap-element transition-colors hover:text-foreground\", descRecipe.base)}>\n {renderIcon(StandardIconReference.SEARCH, { className: \"size-4\" })}\n <p className=\"text-sm\">{title}</p>\n {renderIcon(StandardIconReference.CHEVRON_DOWN, { className: \"size-4 transition-transform group-data-[state=open]:rotate-180\" })}\n </div>\n )}\n </CollapsibleTrigger>\n );\n};\n\n\n/** The themed nesting guide for the task's revealed items — a hook because a recipe is runtime theme state. */\nfunction useTaskNestingGuide(): string | undefined {\n const { getRecipe } = useUI()\n return getRecipe(UIBehavior.DIVIDER, DividerVariant.NESTING_GUIDE).base\n}\n\nconst AI_TaskContent = ({\n children,\n className,\n ...props\n}: AI_TaskContentProps): React.JSX.Element => {\n const nestingGuide = useTaskNestingGuide()\n return (\n <CollapsibleContent\n className={cn(\n \"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in\",\n className\n )}\n {...props}\n >\n {/*\n * The nested-items guide comes from the theme (`DIVIDER` / `NESTING_GUIDE`) rather than the\n * hand-rolled `border-muted border-s-2` it used to be — one meaning, one recipe, restylable per\n * theme. The `ps-card` indent is this component's own structural choice and stays.\n */}\n <div className={cn(nestingGuide, \"mt-field space-y-item ps-card\")}>\n {children}\n </div>\n </CollapsibleContent>\n )\n};\n\nexport const AI_Task = createCompoundPreset<AI_TaskCompound>(AI_TaskRoot, {\n Trigger: AI_TaskTrigger,\n Content: AI_TaskContent,\n Item: AI_TaskItem,\n ItemFile: AI_TaskItemFile,\n});\n"]}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/task.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n AI_TaskProps,\n AI_TaskTriggerProps,\n AI_TaskContentProps,\n AI_TaskItemProps,\n AI_TaskItemFileProps,\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n cn,\n useIconRegistry,\n StandardIconReference,\n useUI,\n createCompoundPreset,\n Surface,\n AI_TaskCompound,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { DividerVariant, FrontendComponentType, SurfaceVariant, TypographyVariant, UIBehavior } from \"@wildo-ai/presets-components-models\";\n\nconst AI_TaskItemFile = ({\n children,\n className,\n ...props\n}: AI_TaskItemFileProps): React.JSX.Element => (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div\n className={cn(\n \"inline-flex items-center gap-item-xs rounded-md border bg-secondary px-1.5 py-0.5 text-foreground text-xs\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </Surface>\n);\n\nconst AI_TaskItem = ({ children, className, ...props }: AI_TaskItemProps): React.JSX.Element => {\n const { getRecipe } = useUI();\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n return (\n <div className={cn(descRecipe.base, className)} {...props}>\n {children}\n </div>\n );\n};\n\nconst AI_TaskRoot = ({\n defaultOpen = true,\n className,\n ...props\n}: AI_TaskProps): React.JSX.Element => (\n <Collapsible className={cn(className)} defaultOpen={defaultOpen} {...props} />\n);\n\nconst AI_TaskTrigger = ({\n children,\n className,\n title,\n ...props\n}: AI_TaskTriggerProps): React.JSX.Element => {\n const { renderIcon } = useIconRegistry();\n const { getRecipe } = useUI();\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n return (\n <CollapsibleTrigger asChild className={cn(\"group\", className)} {...props}>\n {children ?? (\n <div className={cn(\"flex w-full min-w-0 cursor-pointer items-center gap-element transition-colors hover:text-foreground\", descRecipe.base)}>\n {renderIcon(StandardIconReference.SEARCH, { className: \"size-4 shrink-0\" })}\n {/*\n * `min-w-0` + `break-words`, so a title longer than the trigger WRAPS inside it. Without them\n * the paragraph kept its content width and overflowed the trigger into whatever sat beside\n * it — measured on the creation board's split (2026-09-20), where a run's write entry drew\n * its \"playbook\" and \"trace\" links over the playbook ref, and a click on the row landed on\n * the link instead of the row.\n */}\n <p className=\"min-w-0 flex-1 break-words text-sm\">{title}</p>\n {renderIcon(StandardIconReference.CHEVRON_DOWN, { className: \"size-4 transition-transform group-data-[state=open]:rotate-180\" })}\n </div>\n )}\n </CollapsibleTrigger>\n );\n};\n\n\n/** The themed nesting guide for the task's revealed items — a hook because a recipe is runtime theme state. */\nfunction useTaskNestingGuide(): string | undefined {\n const { getRecipe } = useUI()\n return getRecipe(UIBehavior.DIVIDER, DividerVariant.NESTING_GUIDE).base\n}\n\nconst AI_TaskContent = ({\n children,\n className,\n ...props\n}: AI_TaskContentProps): React.JSX.Element => {\n const nestingGuide = useTaskNestingGuide()\n return (\n <CollapsibleContent\n className={cn(\n \"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in\",\n className\n )}\n {...props}\n >\n {/*\n * The nested-items guide comes from the theme (`DIVIDER` / `NESTING_GUIDE`) rather than the\n * hand-rolled `border-muted border-s-2` it used to be — one meaning, one recipe, restylable per\n * theme. The `ps-card` indent is this component's own structural choice and stays.\n */}\n <div className={cn(nestingGuide, \"mt-field space-y-item ps-card\")}>\n {children}\n </div>\n </CollapsibleContent>\n )\n};\n\nexport const AI_Task = createCompoundPreset<AI_TaskCompound>(AI_TaskRoot, {\n Trigger: AI_TaskTrigger,\n Content: AI_TaskContent,\n Item: AI_TaskItem,\n ItemFile: AI_TaskItemFile,\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"task.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/execution/task.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"task.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/task.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/execution/tool.tsx"],"names":[],"mappings":"AAGA,OAAO,EAmBL,eAAe,EAChB,MAAM,6BAA6B,CAAC;AA6KrC,eAAO,MAAM,OAAO,iBAKlB,CAAC"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/tool.tsx"],"names":[],"mappings":"AAGA,OAAO,EAmBL,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAmLrC,eAAO,MAAM,OAAO,iBAKlB,CAAC"}
@@ -45,7 +45,14 @@ const AI_ToolHeader = ({ className, title, type, state, ...props }) => {
45
45
  const { renderIcon } = useIconRegistry();
46
46
  const { getRecipe } = useUI();
47
47
  const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
48
- return (_jsxs(CollapsibleTrigger, { className: cn("flex w-full items-center justify-between gap-field p-card-sm", className), ...props, children: [_jsxs("div", { className: "flex items-center gap-element", children: [renderIcon(StandardIconReference.WRENCH, { className: cn("size-4", descRecipe.base) }), _jsx("span", { className: "font-medium text-sm", children: title ?? type.split("-").slice(1).join("-") }), _jsx(StatusBadge, { status: state })] }), renderIcon(StandardIconReference.CHEVRON_DOWN, { className: cn("size-4 transition-transform group-data-[state=open]:rotate-180", descRecipe.base) })] }));
48
+ return (_jsxs(CollapsibleTrigger, { className: cn(
49
+ /*
50
+ * `text-left`: the trigger is a `<button>`, whose user-agent default centres text, and a
51
+ * tool title that wraps — a shell command of several lines — centred every line. Read as a
52
+ * heading, a title starts at the left like the rest of the conversation. `min-w-0` on the
53
+ * title span lets that long command wrap inside the row instead of widening it.
54
+ */
55
+ "flex w-full items-center justify-between gap-field p-card-sm text-left", className), ...props, children: [_jsxs("div", { className: "flex min-w-0 items-center gap-element", children: [renderIcon(StandardIconReference.WRENCH, { className: cn("size-4 shrink-0", descRecipe.base) }), _jsx("span", { className: "min-w-0 font-medium text-sm", children: title ?? type.split("-").slice(1).join("-") }), _jsx(StatusBadge, { status: state })] }), renderIcon(StandardIconReference.CHEVRON_DOWN, { className: cn("size-4 transition-transform group-data-[state=open]:rotate-180", descRecipe.base) })] }));
49
56
  };
50
57
  const AI_ToolContent = ({ className, ...props }) => (_jsx(CollapsibleContent, { className: cn("data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in", className), ...props }));
51
58
  const AI_ToolInput = ({ className, input, ...props }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/tool.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n AI_ToolProps,\n AI_ToolHeaderProps,\n AI_ToolContentProps,\n AI_ToolInputProps,\n AI_ToolOutputProps,\n AI_ToolUIPartState,\n Badge,\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n AI_CodeBlock,\n cn,\n useUI,\n useI18n,\n useIconRegistry,\n StandardIconReference,\n createCompoundPreset,\n Surface,\n AI_ToolCompound,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { FrontendComponentType, SurfaceVariant, TypographyVariant, UIBehavior } from \"@wildo-ai/presets-components-models\";\nimport type { ReactNode } from \"react\";\nimport { isValidElement } from \"react\";\n\nconst AI_ToolRoot = ({ className, ...props }: AI_ToolProps): React.JSX.Element => (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <Collapsible\n className={cn(\"not-prose mb-field w-full rounded-md border\", className)}\n {...props}\n />\n </Surface>\n);\n\nconst StatusBadge = ({ status }: { status: AI_ToolUIPartState }): React.JSX.Element | null => {\n const { renderIcon } = useIconRegistry();\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION });\n\n if (!isReady) return null;\n\n const labels: Record<AI_ToolUIPartState, string> = {\n \"input-streaming\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusPending'),\n \"input-available\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusRunning'),\n \"approval-requested\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusAwaitingApproval'),\n \"approval-responded\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusResponded'),\n \"output-available\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusCompleted'),\n \"output-error\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusError'),\n \"output-denied\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusDenied'),\n };\n\n const getIcon = (status: AI_ToolUIPartState): React.ReactNode => {\n switch (status) {\n case \"input-streaming\":\n return renderIcon(StandardIconReference.CIRCLE, { className: \"size-4\" });\n case \"input-available\":\n return renderIcon(StandardIconReference.CLOCK, { className: \"size-4 animate-pulse\" });\n case \"approval-requested\":\n return renderIcon(StandardIconReference.CLOCK, { className: \"size-4 text-warning\" });\n case \"approval-responded\":\n return renderIcon(StandardIconReference.CHECK_CIRCLE, { className: \"size-4 text-info\" });\n case \"output-available\":\n return renderIcon(StandardIconReference.CHECK_CIRCLE, { className: \"size-4 text-success\" });\n case \"output-error\":\n return renderIcon(StandardIconReference.X_CIRCLE, { className: \"size-4 text-destructive\" });\n case \"output-denied\":\n return renderIcon(StandardIconReference.X_CIRCLE, { className: \"size-4 text-warning\" });\n }\n };\n\n return (\n <Badge {...({\n className: \"gap-item-xs rounded-full text-xs\",\n variant: \"secondary\" as const,\n } as React.ComponentProps<typeof Badge>)}>\n {getIcon(status)}\n {labels[status]}\n </Badge>\n );\n};\n\nconst AI_ToolHeader = ({\n className,\n title,\n type,\n state,\n ...props\n}: AI_ToolHeaderProps): React.JSX.Element => {\n const { renderIcon } = useIconRegistry();\n const { getRecipe } = useUI();\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n return (\n <CollapsibleTrigger\n className={cn(\n \"flex w-full items-center justify-between gap-field p-card-sm\",\n className\n )}\n {...props}\n >\n <div className=\"flex items-center gap-element\">\n {renderIcon(StandardIconReference.WRENCH, { className: cn(\"size-4\", descRecipe.base) })}\n <span className=\"font-medium text-sm\">\n {title ?? type.split(\"-\").slice(1).join(\"-\")}\n </span>\n <StatusBadge status={state} />\n </div>\n {renderIcon(StandardIconReference.CHEVRON_DOWN, { className: cn(\"size-4 transition-transform group-data-[state=open]:rotate-180\", descRecipe.base) })}\n </CollapsibleTrigger>\n );\n};\n\nconst AI_ToolContent = ({ className, ...props }: AI_ToolContentProps): React.JSX.Element => (\n <CollapsibleContent\n className={cn(\n \"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in\",\n className\n )}\n {...props}\n />\n);\n\nconst AI_ToolInput = ({ className, input, ...props }: AI_ToolInputProps): React.JSX.Element | null => {\n const { getRecipe } = useUI();\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION });\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n const insetRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.INSET);\n\n if (!isReady) return null;\n\n return (\n <div className={cn(\"space-y-item overflow-hidden p-card\", className)} {...props}>\n <h4 className={cn(\"font-medium text-xs uppercase tracking-wide\", descRecipe.base)}>\n {tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'parameters')}\n </h4>\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div className={cn(\"rounded-md\", insetRecipe.base)}>\n <AI_CodeBlock code={JSON.stringify(input, null, 2)} language=\"json\" />\n </div>\n </Surface>\n </div>\n );\n};\n\nconst AI_ToolOutput = ({\n className,\n output,\n errorText,\n ...props\n}: AI_ToolOutputProps): React.JSX.Element | null => {\n const { getRecipe } = useUI();\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION });\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n const insetRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.INSET);\n\n if (!isReady) return null;\n\n if (!(output || errorText)) {\n return null;\n }\n\n let Output: React.JSX.Element = <div>{output as ReactNode}</div>;\n\n if (typeof output === \"object\" && !isValidElement(output)) {\n Output = (\n <AI_CodeBlock code={JSON.stringify(output, null, 2)} language=\"json\" />\n );\n } else if (typeof output === \"string\") {\n Output = <AI_CodeBlock code={output} language=\"json\" />;\n }\n\n return (\n <div className={cn(\"space-y-item p-card\", className)} {...props}>\n <h4 className={cn(\"font-medium text-xs uppercase tracking-wide\", descRecipe.base)}>\n {errorText ? tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'error') : tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'result')}\n </h4>\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div\n className={cn(\n \"overflow-x-auto rounded-md text-xs [&_table]:w-full\",\n errorText\n ? \"bg-destructive/10 text-destructive\"\n : cn(insetRecipe.base, \"text-foreground\")\n )}\n >\n {errorText && <div>{errorText}</div>}\n {Output}\n </div>\n </Surface>\n </div>\n );\n};\n\nexport const AI_Tool = createCompoundPreset<AI_ToolCompound>(AI_ToolRoot, {\n Header: AI_ToolHeader,\n Content: AI_ToolContent,\n Input: AI_ToolInput,\n Output: AI_ToolOutput,\n});\n"]}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/tool.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n AI_ToolProps,\n AI_ToolHeaderProps,\n AI_ToolContentProps,\n AI_ToolInputProps,\n AI_ToolOutputProps,\n AI_ToolUIPartState,\n Badge,\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n AI_CodeBlock,\n cn,\n useUI,\n useI18n,\n useIconRegistry,\n StandardIconReference,\n createCompoundPreset,\n Surface,\n AI_ToolCompound,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { FrontendComponentType, SurfaceVariant, TypographyVariant, UIBehavior } from \"@wildo-ai/presets-components-models\";\nimport type { ReactNode } from \"react\";\nimport { isValidElement } from \"react\";\n\nconst AI_ToolRoot = ({ className, ...props }: AI_ToolProps): React.JSX.Element => (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <Collapsible\n className={cn(\"not-prose mb-field w-full rounded-md border\", className)}\n {...props}\n />\n </Surface>\n);\n\nconst StatusBadge = ({ status }: { status: AI_ToolUIPartState }): React.JSX.Element | null => {\n const { renderIcon } = useIconRegistry();\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION });\n\n if (!isReady) return null;\n\n const labels: Record<AI_ToolUIPartState, string> = {\n \"input-streaming\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusPending'),\n \"input-available\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusRunning'),\n \"approval-requested\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusAwaitingApproval'),\n \"approval-responded\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusResponded'),\n \"output-available\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusCompleted'),\n \"output-error\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusError'),\n \"output-denied\": tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'statusDenied'),\n };\n\n const getIcon = (status: AI_ToolUIPartState): React.ReactNode => {\n switch (status) {\n case \"input-streaming\":\n return renderIcon(StandardIconReference.CIRCLE, { className: \"size-4\" });\n case \"input-available\":\n return renderIcon(StandardIconReference.CLOCK, { className: \"size-4 animate-pulse\" });\n case \"approval-requested\":\n return renderIcon(StandardIconReference.CLOCK, { className: \"size-4 text-warning\" });\n case \"approval-responded\":\n return renderIcon(StandardIconReference.CHECK_CIRCLE, { className: \"size-4 text-info\" });\n case \"output-available\":\n return renderIcon(StandardIconReference.CHECK_CIRCLE, { className: \"size-4 text-success\" });\n case \"output-error\":\n return renderIcon(StandardIconReference.X_CIRCLE, { className: \"size-4 text-destructive\" });\n case \"output-denied\":\n return renderIcon(StandardIconReference.X_CIRCLE, { className: \"size-4 text-warning\" });\n }\n };\n\n return (\n <Badge {...({\n className: \"gap-item-xs rounded-full text-xs\",\n variant: \"secondary\" as const,\n } as React.ComponentProps<typeof Badge>)}>\n {getIcon(status)}\n {labels[status]}\n </Badge>\n );\n};\n\nconst AI_ToolHeader = ({\n className,\n title,\n type,\n state,\n ...props\n}: AI_ToolHeaderProps): React.JSX.Element => {\n const { renderIcon } = useIconRegistry();\n const { getRecipe } = useUI();\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n return (\n <CollapsibleTrigger\n className={cn(\n /*\n * `text-left`: the trigger is a `<button>`, whose user-agent default centres text, and a\n * tool title that wraps — a shell command of several lines — centred every line. Read as a\n * heading, a title starts at the left like the rest of the conversation. `min-w-0` on the\n * title span lets that long command wrap inside the row instead of widening it.\n */\n \"flex w-full items-center justify-between gap-field p-card-sm text-left\",\n className\n )}\n {...props}\n >\n <div className=\"flex min-w-0 items-center gap-element\">\n {renderIcon(StandardIconReference.WRENCH, { className: cn(\"size-4 shrink-0\", descRecipe.base) })}\n <span className=\"min-w-0 font-medium text-sm\">\n {title ?? type.split(\"-\").slice(1).join(\"-\")}\n </span>\n <StatusBadge status={state} />\n </div>\n {renderIcon(StandardIconReference.CHEVRON_DOWN, { className: cn(\"size-4 transition-transform group-data-[state=open]:rotate-180\", descRecipe.base) })}\n </CollapsibleTrigger>\n );\n};\n\nconst AI_ToolContent = ({ className, ...props }: AI_ToolContentProps): React.JSX.Element => (\n <CollapsibleContent\n className={cn(\n \"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in\",\n className\n )}\n {...props}\n />\n);\n\nconst AI_ToolInput = ({ className, input, ...props }: AI_ToolInputProps): React.JSX.Element | null => {\n const { getRecipe } = useUI();\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION });\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n const insetRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.INSET);\n\n if (!isReady) return null;\n\n return (\n <div className={cn(\"space-y-item overflow-hidden p-card\", className)} {...props}>\n <h4 className={cn(\"font-medium text-xs uppercase tracking-wide\", descRecipe.base)}>\n {tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'parameters')}\n </h4>\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div className={cn(\"rounded-md\", insetRecipe.base)}>\n <AI_CodeBlock code={JSON.stringify(input, null, 2)} language=\"json\" />\n </div>\n </Surface>\n </div>\n );\n};\n\nconst AI_ToolOutput = ({\n className,\n output,\n errorText,\n ...props\n}: AI_ToolOutputProps): React.JSX.Element | null => {\n const { getRecipe } = useUI();\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION });\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n const insetRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.INSET);\n\n if (!isReady) return null;\n\n if (!(output || errorText)) {\n return null;\n }\n\n let Output: React.JSX.Element = <div>{output as ReactNode}</div>;\n\n if (typeof output === \"object\" && !isValidElement(output)) {\n Output = (\n <AI_CodeBlock code={JSON.stringify(output, null, 2)} language=\"json\" />\n );\n } else if (typeof output === \"string\") {\n Output = <AI_CodeBlock code={output} language=\"json\" />;\n }\n\n return (\n <div className={cn(\"space-y-item p-card\", className)} {...props}>\n <h4 className={cn(\"font-medium text-xs uppercase tracking-wide\", descRecipe.base)}>\n {errorText ? tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'error') : tComponent(FrontendComponentType.LOW_LEVEL_AI_CONFIRMATION, 'result')}\n </h4>\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div\n className={cn(\n \"overflow-x-auto rounded-md text-xs [&_table]:w-full\",\n errorText\n ? \"bg-destructive/10 text-destructive\"\n : cn(insetRecipe.base, \"text-foreground\")\n )}\n >\n {errorText && <div>{errorText}</div>}\n {Output}\n </div>\n </Surface>\n </div>\n );\n};\n\nexport const AI_Tool = createCompoundPreset<AI_ToolCompound>(AI_ToolRoot, {\n Header: AI_ToolHeader,\n Content: AI_ToolContent,\n Input: AI_ToolInput,\n Output: AI_ToolOutput,\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tool.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/execution/tool.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"tool.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/execution/tool.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/graph/canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,8BAA8B,CAAC;AAGtC,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,wBAAwB,cAAc,KAAG,KAAK,CAAC,GAAG,CAAC,OAa5E,CAAC"}
1
+ {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/graph/canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,8BAA8B,CAAC;AAGtC,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,wBAAwB,cAAc,KAAG,KAAK,CAAC,GAAG,CAAC,OAa5E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/graph/canvas.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"canvas.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/graph/canvas.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/graph/connection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAK7D,eAAO,MAAM,aAAa,EAAE,uBAuB3B,CAAC"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/graph/connection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAK7D,eAAO,MAAM,aAAa,EAAE,uBAuB3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/graph/connection.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"connection.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/graph/connection.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/graph/controls.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAExE,eAAO,MAAM,WAAW,GAAI,yBAAyB,gBAAgB,KAAG,KAAK,CAAC,GAAG,CAAC,OAiBjF,CAAC"}
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/graph/controls.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAExE,eAAO,MAAM,WAAW,GAAI,yBAAyB,gBAAgB,KAAG,KAAK,CAAC,GAAG,CAAC,OAiBjF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"controls.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/graph/controls.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"controls.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/graph/controls.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/graph/edge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,KAAK,SAAS,EAOf,MAAM,eAAe,CAAC;AAGvB,QAAA,MAAM,SAAS,GAAI,6EAQhB,SAAS,KAAG,KAAK,CAAC,GAAG,CAAC,OAoBxB,CAAC;AAwEF,QAAA,MAAM,QAAQ,GAAI,0CAA0C,SAAS,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IA8B3F,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,OAAO,SAAqB,CAAC;AAGnD,eAAO,MAAM,iBAAiB,EAAE,OAAO,SAAqB,CAAC;AAC7D,eAAO,MAAM,gBAAgB,EAAE,OAAO,QAAmB,CAAC;AAG1D,eAAO,MAAM,eAAe,EAAE;IAC5B,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,QAAQ,EAAE,OAAO,QAAQ,CAAC;CAI3B,CAAC"}
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/graph/edge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,KAAK,SAAS,EAOf,MAAM,eAAe,CAAC;AAGvB,QAAA,MAAM,SAAS,GAAI,6EAQhB,SAAS,KAAG,KAAK,CAAC,GAAG,CAAC,OAoBxB,CAAC;AAwEF,QAAA,MAAM,QAAQ,GAAI,0CAA0C,SAAS,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IA8B3F,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,OAAO,SAAqB,CAAC;AAGnD,eAAO,MAAM,iBAAiB,EAAE,OAAO,SAAqB,CAAC;AAC7D,eAAO,MAAM,gBAAgB,EAAE,OAAO,QAAmB,CAAC;AAG1D,eAAO,MAAM,eAAe,EAAE;IAC5B,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,QAAQ,EAAE,OAAO,QAAQ,CAAC;CAI3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"edge.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/graph/edge.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"edge.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/graph/edge.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/graph/graph-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"graph-runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/graph/graph-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph.lazy.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/graph/graph.lazy.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.lazy.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/graph/graph.lazy.tsx"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
44
44
  * whole payload back into the entry chunk — enforced by `pnpm check:lazy-boundaries`.
45
45
  */
46
46
  import * as React from "react";
47
- import { Skeleton } from "@wildo-ai/saas-frontend-lib";
47
+ import { LazyDoorErrorBoundary, LazyDoorUnavailableFrame, Skeleton } from "@wildo-ai/saas-frontend-lib";
48
48
  /**
49
49
  * One `React.lazy` per exported symbol, every one of them resolving the SAME `./graph-runtime`
50
50
  * module. The module promise is created once by the ESM loader and reused, so the fifteen
@@ -66,14 +66,14 @@ const LazyPanel = React.lazy(() => import("./graph-runtime.js").then((m) => ({ d
66
66
  const LazyToolbar = React.lazy(() => import("./graph-runtime.js").then((m) => ({ default: m.AI_Toolbar })));
67
67
  // ─── Canvas ───────────────────────────────────────────────────────────────────
68
68
  /** The graph surface. Reserves a full-height block while the graph chunk loads. */
69
- export const AI_Canvas = ({ ...props }) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "size-full min-h-64" }), children: _jsx(LazyCanvas, { ...props }) }));
69
+ export const AI_Canvas = ({ ...props }) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_Canvas", fallback: _jsx(LazyDoorUnavailableFrame, { className: "size-full min-h-64" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "size-full min-h-64" }), children: _jsx(LazyCanvas, { ...props }) }) }));
70
70
  // ─── SVG-context children (fallback `null` — see the module header) ───────────
71
71
  /** Connection line drawn while dragging an edge. Renders inside the canvas `<svg>`. */
72
- export const AI_Connection = (props) => (_jsx(React.Suspense, { fallback: null, children: _jsx(LazyConnection, { ...props }) }));
72
+ export const AI_Connection = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_Connection", fallback: null, children: _jsx(React.Suspense, { fallback: null, children: _jsx(LazyConnection, { ...props }) }) }));
73
73
  /** Dashed placeholder edge. Renders inside the canvas `<svg>`. */
74
- export const AI_Edge_Temporary = (props) => (_jsx(React.Suspense, { fallback: null, children: _jsx(LazyEdgeTemporary, { ...props }) }));
74
+ export const AI_Edge_Temporary = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_Edge_Temporary", fallback: null, children: _jsx(React.Suspense, { fallback: null, children: _jsx(LazyEdgeTemporary, { ...props }) }) }));
75
75
  /** Bezier edge with a travelling marker. Renders inside the canvas `<svg>`. */
76
- export const AI_Edge_Animated = (props) => (_jsx(React.Suspense, { fallback: null, children: _jsx(LazyEdgeAnimated, { ...props }) }));
76
+ export const AI_Edge_Animated = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_Edge_Animated", fallback: null, children: _jsx(React.Suspense, { fallback: null, children: _jsx(LazyEdgeAnimated, { ...props }) }) }));
77
77
  /** Default edge — the temporary variant, preserving the pre-boundary export shape. */
78
78
  export const AI_Edge = AI_Edge_Temporary;
79
79
  /** Variant map, preserving the pre-boundary export shape for `edgeTypes` registration. */
@@ -86,24 +86,24 @@ export const AI_EdgeVariants = {
86
86
  * Zoom / fit controls. This is the door most likely to suspend FIRST: hosts embed it inside their
87
87
  * own `ReactFlow` rather than inside `AI_Canvas`, so it can be the component that pulls the chunk.
88
88
  */
89
- export const AI_Controls = (props) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-24 w-8 rounded-md" }), children: _jsx(LazyControls, { ...props }) }));
89
+ export const AI_Controls = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_Controls", fallback: _jsx(LazyDoorUnavailableFrame, { className: "h-24 w-8 rounded-md" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-24 w-8 rounded-md" }), children: _jsx(LazyControls, { ...props }) }) }));
90
90
  /** Floating panel anchored to a canvas corner. */
91
- export const AI_Panel = (props) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "m-field h-8 w-24 rounded-md" }), children: _jsx(LazyPanel, { ...props }) }));
91
+ export const AI_Panel = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_Panel", fallback: _jsx(LazyDoorUnavailableFrame, { className: "m-field h-8 w-24 rounded-md" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "m-field h-8 w-24 rounded-md" }), children: _jsx(LazyPanel, { ...props }) }) }));
92
92
  /** Node-anchored toolbar. */
93
- export const AI_Toolbar = (props) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-8 w-24 rounded-sm" }), children: _jsx(LazyToolbar, { ...props }) }));
93
+ export const AI_Toolbar = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_Toolbar", fallback: _jsx(LazyDoorUnavailableFrame, { className: "h-8 w-24 rounded-sm" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-8 w-24 rounded-sm" }), children: _jsx(LazyToolbar, { ...props }) }) }));
94
94
  // ─── Node family ──────────────────────────────────────────────────────────────
95
95
  /** Graph node card, with source/target handles. */
96
- export const AI_Node = (props) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-24 w-sm rounded-md" }), children: _jsx(LazyNode, { ...props }) }));
96
+ export const AI_Node = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_Node", fallback: _jsx(LazyDoorUnavailableFrame, { className: "h-24 w-sm rounded-md" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-24 w-sm rounded-md" }), children: _jsx(LazyNode, { ...props }) }) }));
97
97
  /** Node card header. */
98
- export const AI_NodeHeader = (props) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-10 w-full rounded-t-md" }), children: _jsx(LazyNodeHeader, { ...props }) }));
98
+ export const AI_NodeHeader = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_NodeHeader", fallback: _jsx(LazyDoorUnavailableFrame, { className: "h-10 w-full rounded-t-md" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-10 w-full rounded-t-md" }), children: _jsx(LazyNodeHeader, { ...props }) }) }));
99
99
  /** Node card title. */
100
- export const AI_NodeTitle = (props) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-4 w-32" }), children: _jsx(LazyNodeTitle, { ...props }) }));
100
+ export const AI_NodeTitle = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_NodeTitle", fallback: _jsx(LazyDoorUnavailableFrame, { className: "h-4 w-32" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-4 w-32" }), children: _jsx(LazyNodeTitle, { ...props }) }) }));
101
101
  /** Node card description. */
102
- export const AI_NodeDescription = (props) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-3 w-40" }), children: _jsx(LazyNodeDescription, { ...props }) }));
102
+ export const AI_NodeDescription = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_NodeDescription", fallback: _jsx(LazyDoorUnavailableFrame, { className: "h-3 w-40" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-3 w-40" }), children: _jsx(LazyNodeDescription, { ...props }) }) }));
103
103
  /** Node card action slot. */
104
- export const AI_NodeAction = (props) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-6 w-6 rounded-sm" }), children: _jsx(LazyNodeAction, { ...props }) }));
104
+ export const AI_NodeAction = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_NodeAction", fallback: _jsx(LazyDoorUnavailableFrame, { className: "h-6 w-6 rounded-sm" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-6 w-6 rounded-sm" }), children: _jsx(LazyNodeAction, { ...props }) }) }));
105
105
  /** Node card body. */
106
- export const AI_NodeContent = (props) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-12 w-full" }), children: _jsx(LazyNodeContent, { ...props }) }));
106
+ export const AI_NodeContent = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_NodeContent", fallback: _jsx(LazyDoorUnavailableFrame, { className: "h-12 w-full" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-12 w-full" }), children: _jsx(LazyNodeContent, { ...props }) }) }));
107
107
  /** Node card footer. */
108
- export const AI_NodeFooter = (props) => (_jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-8 w-full rounded-b-md" }), children: _jsx(LazyNodeFooter, { ...props }) }));
108
+ export const AI_NodeFooter = (props) => (_jsx(LazyDoorErrorBoundary, { doorName: "AI_NodeFooter", fallback: _jsx(LazyDoorUnavailableFrame, { className: "h-8 w-full rounded-b-md" }), children: _jsx(React.Suspense, { fallback: _jsx(Skeleton, { "aria-hidden": "true", className: "h-8 w-full rounded-b-md" }), children: _jsx(LazyNodeFooter, { ...props }) }) }));
109
109
  //# sourceMappingURL=graph.lazy.js.map