@wildo-ai/presets-components 1.1.3 → 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 (707) 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 +36 -4
  50. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  51. package/dist/esm/components/ai-elements/decision/approval.js +77 -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 +11 -1
  336. package/dist/esm/components/feedback/empty-state.js.map +1 -1
  337. package/dist/esm/components/feedback/empty-state.labels.d.ts.map +1 -1
  338. package/dist/esm/components/feedback/error-display.d.ts.map +1 -1
  339. package/dist/esm/components/feedback/error-display.labels.d.ts.map +1 -1
  340. package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
  341. package/dist/esm/components/feedback/features/feature-limit-indicator.labels.d.ts.map +1 -1
  342. package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.map +1 -1
  343. package/dist/esm/components/feedback/features/feature-lock-badge.labels.d.ts.map +1 -1
  344. package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts.map +1 -1
  345. package/dist/esm/components/feedback/features/feature-unavailable-dialog.labels.d.ts.map +1 -1
  346. package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts.map +1 -1
  347. package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -1
  348. package/dist/esm/components/feedback/features/feature-unavailable-prompt.labels.d.ts.map +1 -1
  349. package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -1
  350. package/dist/esm/components/feedback/loading-overlay.labels.d.ts.map +1 -1
  351. package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -1
  352. package/dist/esm/components/feedback/loading-spinner.labels.d.ts.map +1 -1
  353. package/dist/esm/components/feedback/notification-center.d.ts.map +1 -1
  354. package/dist/esm/components/feedback/notification-center.js +6 -6
  355. package/dist/esm/components/feedback/notification-center.js.map +1 -1
  356. package/dist/esm/components/feedback/operations-confirm-critical.d.ts +1 -1
  357. package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
  358. package/dist/esm/components/feedback/operations-confirm-critical.js +9 -7
  359. package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
  360. package/dist/esm/components/feedback/operations-confirm-critical.labels.d.ts.map +1 -1
  361. package/dist/esm/components/feedback/progress.d.ts.map +1 -1
  362. package/dist/esm/components/feedback/progress.labels.d.ts.map +1 -1
  363. package/dist/esm/components/feedback/skeleton.d.ts.map +1 -1
  364. package/dist/esm/components/feedback/skeleton.labels.d.ts.map +1 -1
  365. package/dist/esm/components/feedback/toast.d.ts.map +1 -1
  366. package/dist/esm/components/feedback/toast.labels.d.ts.map +1 -1
  367. package/dist/esm/components/form/autosave-indicator.d.ts.map +1 -1
  368. package/dist/esm/components/form/autosave-indicator.labels.d.ts.map +1 -1
  369. package/dist/esm/components/form/chromes/field.d.ts.map +1 -1
  370. package/dist/esm/components/form/chromes/field.js +11 -3
  371. package/dist/esm/components/form/chromes/field.js.map +1 -1
  372. package/dist/esm/components/form/chromes/field.labels.d.ts.map +1 -1
  373. package/dist/esm/components/form/chromes/form-primitive.d.ts.map +1 -1
  374. package/dist/esm/components/form/chromes/form-primitive.labels.d.ts.map +1 -1
  375. package/dist/esm/components/form/chromes/form-primitive.labels.js +28 -0
  376. package/dist/esm/components/form/chromes/form-primitive.labels.js.map +1 -1
  377. package/dist/esm/components/form/combobox.d.ts.map +1 -1
  378. package/dist/esm/components/form/combobox.js +4 -3
  379. package/dist/esm/components/form/combobox.js.map +1 -1
  380. package/dist/esm/components/form/combobox.labels.d.ts.map +1 -1
  381. package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -1
  382. package/dist/esm/components/form/controls/boolean/checkbox.js +2 -2
  383. package/dist/esm/components/form/controls/boolean/checkbox.js.map +1 -1
  384. package/dist/esm/components/form/controls/boolean/checkbox.labels.d.ts.map +1 -1
  385. package/dist/esm/components/form/controls/boolean/switch.d.ts.map +1 -1
  386. package/dist/esm/components/form/controls/boolean/switch.labels.d.ts.map +1 -1
  387. package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts.map +1 -1
  388. package/dist/esm/components/form/controls/boolean/toggle-group-boolean.labels.d.ts.map +1 -1
  389. package/dist/esm/components/form/controls/boolean/toggle.d.ts.map +1 -1
  390. package/dist/esm/components/form/controls/boolean/toggle.labels.d.ts.map +1 -1
  391. package/dist/esm/components/form/controls/code-editor/cm6-editor-appearance.d.ts.map +1 -1
  392. package/dist/esm/components/form/controls/code-editor/cm6-editor.d.ts.map +1 -1
  393. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.d.ts.map +1 -1
  394. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.js +11 -2
  395. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.js.map +1 -1
  396. package/dist/esm/components/form/controls/code-editor/form-field-code.d.ts.map +1 -1
  397. package/dist/esm/components/form/controls/code-editor/markdown-editor.d.ts.map +1 -1
  398. package/dist/esm/components/form/controls/date-time/calendar.d.ts.map +1 -1
  399. package/dist/esm/components/form/controls/date-time/calendar.labels.d.ts.map +1 -1
  400. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
  401. package/dist/esm/components/form/controls/date-time/date-range-picker.labels.d.ts.map +1 -1
  402. package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
  403. package/dist/esm/components/form/controls/date-time/datepicker.labels.d.ts.map +1 -1
  404. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
  405. package/dist/esm/components/form/controls/date-time/datetime-picker.labels.d.ts.map +1 -1
  406. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
  407. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.d.ts.map +1 -1
  408. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.js +11 -2
  409. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.js.map +1 -1
  410. package/dist/esm/components/form/controls/date-time/time-picker.d.ts.map +1 -1
  411. package/dist/esm/components/form/controls/date-time/time-picker.labels.d.ts.map +1 -1
  412. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
  413. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.d.ts.map +1 -1
  414. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.js +11 -2
  415. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.js.map +1 -1
  416. package/dist/esm/components/form/controls/enum/radio.d.ts +1 -1
  417. package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
  418. package/dist/esm/components/form/controls/enum/radio.js +13 -12
  419. package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
  420. package/dist/esm/components/form/controls/enum/radio.labels.d.ts.map +1 -1
  421. package/dist/esm/components/form/controls/enum/select-multiple.d.ts.map +1 -1
  422. package/dist/esm/components/form/controls/enum/select-multiple.js +5 -3
  423. package/dist/esm/components/form/controls/enum/select-multiple.js.map +1 -1
  424. package/dist/esm/components/form/controls/enum/select-multiple.labels.d.ts.map +1 -1
  425. package/dist/esm/components/form/controls/enum/select.d.ts.map +1 -1
  426. package/dist/esm/components/form/controls/enum/select.labels.d.ts.map +1 -1
  427. package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
  428. package/dist/esm/components/form/controls/enum/toggle-group.js +96 -5
  429. package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
  430. package/dist/esm/components/form/controls/enum/toggle-group.labels.d.ts.map +1 -1
  431. package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -1
  432. package/dist/esm/components/form/controls/file/file-upload.labels.d.ts.map +1 -1
  433. package/dist/esm/components/form/controls/file/image-crop.d.ts.map +1 -1
  434. package/dist/esm/components/form/controls/file/image-crop.labels.d.ts.map +1 -1
  435. package/dist/esm/components/form/controls/file/providers/dropbox-picker.d.ts +44 -0
  436. package/dist/esm/components/form/controls/file/providers/dropbox-picker.d.ts.map +1 -0
  437. package/dist/esm/components/form/controls/file/providers/dropbox-picker.js +137 -0
  438. package/dist/esm/components/form/controls/file/providers/dropbox-picker.js.map +1 -0
  439. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.d.ts +22 -0
  440. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.d.ts.map +1 -0
  441. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.js +27 -0
  442. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.js.map +1 -0
  443. package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts +54 -0
  444. package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts.map +1 -0
  445. package/dist/esm/components/form/controls/file/providers/google-drive-picker.js +159 -0
  446. package/dist/esm/components/form/controls/file/providers/google-drive-picker.js.map +1 -0
  447. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts +22 -0
  448. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts.map +1 -0
  449. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js +27 -0
  450. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js.map +1 -0
  451. package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts +41 -0
  452. package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts.map +1 -0
  453. package/dist/esm/components/form/controls/file/providers/onedrive-picker.js +129 -0
  454. package/dist/esm/components/form/controls/file/providers/onedrive-picker.js.map +1 -0
  455. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts +22 -0
  456. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts.map +1 -0
  457. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js +27 -0
  458. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js.map +1 -0
  459. package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
  460. package/dist/esm/components/form/controls/input-group.labels.d.ts.map +1 -1
  461. package/dist/esm/components/form/controls/input.d.ts.map +1 -1
  462. package/dist/esm/components/form/controls/input.labels.d.ts.map +1 -1
  463. package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
  464. package/dist/esm/components/form/controls/number/slider.labels.d.ts.map +1 -1
  465. package/dist/esm/components/form/controls/number/slider.labels.js +9 -2
  466. package/dist/esm/components/form/controls/number/slider.labels.js.map +1 -1
  467. package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -1
  468. package/dist/esm/components/form/controls/string/color-input.labels.d.ts.map +1 -1
  469. package/dist/esm/components/form/controls/string/color-picker-surface.d.ts.map +1 -1
  470. package/dist/esm/components/form/controls/string/color-picker-surface.js.map +1 -1
  471. package/dist/esm/components/form/controls/string/inline-edit-text.d.ts.map +1 -1
  472. package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -1
  473. package/dist/esm/components/form/controls/string/input-otp.labels.d.ts.map +1 -1
  474. package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
  475. package/dist/esm/components/form/controls/string/password-input.labels.d.ts.map +1 -1
  476. package/dist/esm/components/form/controls/string/password-input.labels.js +9 -2
  477. package/dist/esm/components/form/controls/string/password-input.labels.js.map +1 -1
  478. package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
  479. package/dist/esm/components/form/controls/string/textarea.labels.d.ts.map +1 -1
  480. package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -1
  481. package/dist/esm/components/layout/aspect-ratio.labels.d.ts.map +1 -1
  482. package/dist/esm/components/layout/carousel.d.ts.map +1 -1
  483. package/dist/esm/components/layout/carousel.labels.d.ts.map +1 -1
  484. package/dist/esm/components/layout/divider.d.ts.map +1 -1
  485. package/dist/esm/components/layout/divider.labels.d.ts.map +1 -1
  486. package/dist/esm/components/layout/resizable.d.ts.map +1 -1
  487. package/dist/esm/components/layout/resizable.labels.d.ts.map +1 -1
  488. package/dist/esm/components/layout/scroll-area.d.ts.map +1 -1
  489. package/dist/esm/components/layout/scroll-area.labels.d.ts.map +1 -1
  490. package/dist/esm/components/layout/separator.d.ts.map +1 -1
  491. package/dist/esm/components/layout/separator.labels.d.ts.map +1 -1
  492. package/dist/esm/components/navigation/app-level/activity-bar.d.ts.map +1 -1
  493. package/dist/esm/components/navigation/app-level/activity-bar.labels.d.ts.map +1 -1
  494. package/dist/esm/components/navigation/app-level/command-menu.d.ts.map +1 -1
  495. package/dist/esm/components/navigation/app-level/command-menu.js +2 -2
  496. package/dist/esm/components/navigation/app-level/command-menu.js.map +1 -1
  497. package/dist/esm/components/navigation/app-level/command-menu.labels.d.ts.map +1 -1
  498. package/dist/esm/components/navigation/app-level/control-panel.d.ts.map +1 -1
  499. package/dist/esm/components/navigation/app-level/control-panel.labels.d.ts.map +1 -1
  500. package/dist/esm/components/navigation/app-level/menu-user-org.d.ts.map +1 -1
  501. package/dist/esm/components/navigation/app-level/menu-user-org.labels.d.ts.map +1 -1
  502. package/dist/esm/components/navigation/app-level/menubar.d.ts.map +1 -1
  503. package/dist/esm/components/navigation/app-level/menubar.js +35 -13
  504. package/dist/esm/components/navigation/app-level/menubar.js.map +1 -1
  505. package/dist/esm/components/navigation/app-level/menubar.labels.d.ts.map +1 -1
  506. package/dist/esm/components/navigation/app-level/navigation-back.d.ts.map +1 -1
  507. package/dist/esm/components/navigation/app-level/navigation-back.js +10 -2
  508. package/dist/esm/components/navigation/app-level/navigation-back.js.map +1 -1
  509. package/dist/esm/components/navigation/app-level/navigation-back.labels.d.ts.map +1 -1
  510. package/dist/esm/components/navigation/app-level/notification-center.d.ts.map +1 -1
  511. package/dist/esm/components/navigation/app-level/notification-center.js.map +1 -1
  512. package/dist/esm/components/navigation/app-level/notification-center.labels.d.ts.map +1 -1
  513. package/dist/esm/components/navigation/app-level/notification-center.labels.js +15 -0
  514. package/dist/esm/components/navigation/app-level/notification-center.labels.js.map +1 -1
  515. package/dist/esm/components/navigation/app-level/quick-action-button.d.ts.map +1 -1
  516. package/dist/esm/components/navigation/app-level/quick-action-button.labels.d.ts.map +1 -1
  517. package/dist/esm/components/navigation/app-level/quick-action-button.labels.js +4 -0
  518. package/dist/esm/components/navigation/app-level/quick-action-button.labels.js.map +1 -1
  519. package/dist/esm/components/navigation/app-level/quick-switcher.d.ts.map +1 -1
  520. package/dist/esm/components/navigation/app-level/quick-switcher.labels.d.ts.map +1 -1
  521. package/dist/esm/components/navigation/app-level/sidebar.d.ts.map +1 -1
  522. package/dist/esm/components/navigation/app-level/sidebar.js +38 -22
  523. package/dist/esm/components/navigation/app-level/sidebar.js.map +1 -1
  524. package/dist/esm/components/navigation/app-level/sidebar.labels.d.ts.map +1 -1
  525. package/dist/esm/components/navigation/app-level/sidebar.labels.js +1 -0
  526. package/dist/esm/components/navigation/app-level/sidebar.labels.js.map +1 -1
  527. package/dist/esm/components/navigation/app-level/status-bar.d.ts.map +1 -1
  528. package/dist/esm/components/navigation/app-level/status-bar.labels.d.ts.map +1 -1
  529. package/dist/esm/components/navigation/app-level/toolbar.d.ts.map +1 -1
  530. package/dist/esm/components/navigation/app-level/toolbar.labels.d.ts.map +1 -1
  531. package/dist/esm/components/navigation/app-level/utility-panel.d.ts.map +1 -1
  532. package/dist/esm/components/navigation/app-level/utility-panel.js +30 -5
  533. package/dist/esm/components/navigation/app-level/utility-panel.js.map +1 -1
  534. package/dist/esm/components/navigation/app-level/utility-panel.labels.d.ts.map +1 -1
  535. package/dist/esm/components/navigation/app-level/utility-panel.labels.js.map +1 -1
  536. package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -1
  537. package/dist/esm/components/navigation/breadcrumb.labels.d.ts.map +1 -1
  538. package/dist/esm/components/navigation/command.d.ts.map +1 -1
  539. package/dist/esm/components/navigation/command.js +2 -2
  540. package/dist/esm/components/navigation/command.js.map +1 -1
  541. package/dist/esm/components/navigation/command.labels.d.ts.map +1 -1
  542. package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -1
  543. package/dist/esm/components/navigation/menu-bar.labels.d.ts.map +1 -1
  544. package/dist/esm/components/navigation/navbar.d.ts.map +1 -1
  545. package/dist/esm/components/navigation/navbar.labels.d.ts.map +1 -1
  546. package/dist/esm/components/navigation/sidebar.d.ts.map +1 -1
  547. package/dist/esm/components/navigation/sidebar.labels.d.ts.map +1 -1
  548. package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -1
  549. package/dist/esm/components/overlays/containers/alert-dialog.js +11 -1
  550. package/dist/esm/components/overlays/containers/alert-dialog.js.map +1 -1
  551. package/dist/esm/components/overlays/containers/alert-dialog.labels.d.ts.map +1 -1
  552. package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -1
  553. package/dist/esm/components/overlays/containers/alert.labels.d.ts.map +1 -1
  554. package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -1
  555. package/dist/esm/components/overlays/containers/dialog.js +11 -1
  556. package/dist/esm/components/overlays/containers/dialog.js.map +1 -1
  557. package/dist/esm/components/overlays/containers/dialog.labels.d.ts.map +1 -1
  558. package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -1
  559. package/dist/esm/components/overlays/containers/drawer.labels.d.ts.map +1 -1
  560. package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -1
  561. package/dist/esm/components/overlays/containers/sheet.labels.d.ts.map +1 -1
  562. package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -1
  563. package/dist/esm/components/overlays/floating/context-menu.labels.d.ts.map +1 -1
  564. package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -1
  565. package/dist/esm/components/overlays/floating/dropdown-menu.labels.d.ts.map +1 -1
  566. package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -1
  567. package/dist/esm/components/overlays/floating/hover-card.labels.d.ts.map +1 -1
  568. package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -1
  569. package/dist/esm/components/overlays/floating/popover.labels.d.ts.map +1 -1
  570. package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -1
  571. package/dist/esm/components/overlays/floating/tooltip.labels.d.ts.map +1 -1
  572. package/dist/esm/components/sections/accordion.d.ts.map +1 -1
  573. package/dist/esm/components/sections/accordion.labels.d.ts.map +1 -1
  574. package/dist/esm/components/sections/card.d.ts.map +1 -1
  575. package/dist/esm/components/sections/card.js +71 -6
  576. package/dist/esm/components/sections/card.js.map +1 -1
  577. package/dist/esm/components/sections/card.labels.d.ts.map +1 -1
  578. package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
  579. package/dist/esm/components/sections/collapsible.labels.d.ts.map +1 -1
  580. package/dist/esm/components/sections/content-section.d.ts.map +1 -1
  581. package/dist/esm/components/sections/content-section.js +36 -6
  582. package/dist/esm/components/sections/content-section.js.map +1 -1
  583. package/dist/esm/components/sections/disclosure-nesting.d.ts.map +1 -1
  584. package/dist/esm/components/sections/option-gesture.d.ts +15 -0
  585. package/dist/esm/components/sections/option-gesture.d.ts.map +1 -0
  586. package/dist/esm/components/sections/option-gesture.js +66 -0
  587. package/dist/esm/components/sections/option-gesture.js.map +1 -0
  588. package/dist/esm/components/sections/pagination.d.ts.map +1 -1
  589. package/dist/esm/components/sections/pagination.labels.d.ts.map +1 -1
  590. package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -1
  591. package/dist/esm/components/sections/stacked-layout.labels.d.ts.map +1 -1
  592. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  593. package/dist/esm/components/sections/stepper.labels.d.ts.map +1 -1
  594. package/dist/esm/components/sections/table.d.ts.map +1 -1
  595. package/dist/esm/components/sections/table.labels.d.ts.map +1 -1
  596. package/dist/esm/components/sections/tabs.d.ts.map +1 -1
  597. package/dist/esm/components/sections/tabs.js +64 -15
  598. package/dist/esm/components/sections/tabs.js.map +1 -1
  599. package/dist/esm/components/sections/tabs.labels.d.ts.map +1 -1
  600. package/dist/esm/components/typography/heading.d.ts.map +1 -1
  601. package/dist/esm/components/typography/heading.labels.d.ts.map +1 -1
  602. package/dist/esm/components/typography/label.d.ts.map +1 -1
  603. package/dist/esm/components/typography/label.labels.d.ts.map +1 -1
  604. package/dist/esm/components/typography/link.d.ts.map +1 -1
  605. package/dist/esm/components/typography/link.js +9 -3
  606. package/dist/esm/components/typography/link.js.map +1 -1
  607. package/dist/esm/components/typography/link.labels.d.ts.map +1 -1
  608. package/dist/esm/components/typography/text.d.ts +1 -1
  609. package/dist/esm/components/typography/text.d.ts.map +1 -1
  610. package/dist/esm/components/typography/text.js +3 -2
  611. package/dist/esm/components/typography/text.js.map +1 -1
  612. package/dist/esm/components/typography/text.labels.d.ts.map +1 -1
  613. package/dist/esm/components/typography/truncated-text.d.ts.map +1 -1
  614. package/dist/esm/config/billing-shell.presets.d.ts.map +1 -1
  615. package/dist/esm/config/index.d.ts.map +1 -1
  616. package/dist/esm/config/preset-design-system.d.ts.map +1 -1
  617. package/dist/esm/config/preset-design-system.js +37 -60
  618. package/dist/esm/config/preset-design-system.js.map +1 -1
  619. package/dist/esm/config/preset-error-pages.d.ts.map +1 -1
  620. package/dist/esm/config/preset-kits.d.ts.map +1 -1
  621. package/dist/esm/config/preset-navigation.d.ts.map +1 -1
  622. package/dist/esm/config/preset-navigation.js +0 -5
  623. package/dist/esm/config/preset-navigation.js.map +1 -1
  624. package/dist/esm/config/preset-resources.d.ts.map +1 -1
  625. package/dist/esm/config/preset-shell.d.ts.map +1 -1
  626. package/dist/esm/config/preset-utils.d.ts.map +1 -1
  627. package/dist/esm/config/presets.d.ts.map +1 -1
  628. package/dist/esm/config/resources/application.resource-presets.d.ts +2 -0
  629. package/dist/esm/config/resources/application.resource-presets.d.ts.map +1 -1
  630. package/dist/esm/config/resources/application.resource-presets.js +163 -7
  631. package/dist/esm/config/resources/application.resource-presets.js.map +1 -1
  632. package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -1
  633. package/dist/esm/config/resources/billing.resource-presets.js +1 -0
  634. package/dist/esm/config/resources/billing.resource-presets.js.map +1 -1
  635. package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -1
  636. package/dist/esm/config/resources/guidance.resource-presets.js +21 -5
  637. package/dist/esm/config/resources/guidance.resource-presets.js.map +1 -1
  638. package/dist/esm/config/resources/identity.resource-presets.d.ts.map +1 -1
  639. package/dist/esm/config/resources/identity.resource-presets.js +25 -3
  640. package/dist/esm/config/resources/identity.resource-presets.js.map +1 -1
  641. package/dist/esm/config/resources/index.d.ts.map +1 -1
  642. package/dist/esm/config/resources/index.js.map +1 -1
  643. package/dist/esm/config/resources/organizations.resource-presets.d.ts.map +1 -1
  644. package/dist/esm/config/resources/organizations.resource-presets.js +90 -12
  645. package/dist/esm/config/resources/organizations.resource-presets.js.map +1 -1
  646. package/dist/esm/config/resources/resource.config.utils.d.ts.map +1 -1
  647. package/dist/esm/config/resources/security.resource-presets.d.ts +8 -2
  648. package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -1
  649. package/dist/esm/config/resources/security.resource-presets.js +185 -29
  650. package/dist/esm/config/resources/security.resource-presets.js.map +1 -1
  651. package/dist/esm/config/resources/webhooks.resource-presets.d.ts.map +1 -1
  652. package/dist/esm/config/resources/webhooks.resource-presets.js +27 -2
  653. package/dist/esm/config/resources/webhooks.resource-presets.js.map +1 -1
  654. package/dist/esm/index.d.ts +7 -1
  655. package/dist/esm/index.d.ts.map +1 -1
  656. package/dist/esm/index.js +7 -1
  657. package/dist/esm/index.js.map +1 -1
  658. package/dist/esm/lottie/lottie.content.definitions.d.ts.map +1 -1
  659. package/dist/esm/lottie/lottie.definitions.d.ts.map +1 -1
  660. package/dist/esm/mermaid-stub.d.ts.map +1 -1
  661. package/dist/esm/registration/register-common-enums.d.ts.map +1 -1
  662. package/dist/esm/registration/register-common-enums.js +48 -34
  663. package/dist/esm/registration/register-common-enums.js.map +1 -1
  664. package/dist/esm/registration/register-default-animations.d.ts.map +1 -1
  665. package/dist/esm/registration/register-default-icons.d.ts.map +1 -1
  666. package/dist/esm/registration/register-default-icons.js +3 -1
  667. package/dist/esm/registration/register-default-icons.js.map +1 -1
  668. package/dist/esm/registration/register-default-presets.d.ts.map +1 -1
  669. package/dist/esm/registration/register-default-presets.js +36 -4
  670. package/dist/esm/registration/register-default-presets.js.map +1 -1
  671. package/dist/esm/registration/register-provider-components.d.ts +31 -0
  672. package/dist/esm/registration/register-provider-components.d.ts.map +1 -0
  673. package/dist/esm/registration/register-provider-components.js +50 -0
  674. package/dist/esm/registration/register-provider-components.js.map +1 -0
  675. package/dist/esm/shiki-subset.d.ts +11 -3
  676. package/dist/esm/shiki-subset.d.ts.map +1 -1
  677. package/dist/esm/shiki-subset.js +10 -2
  678. package/dist/esm/shiki-subset.js.map +1 -1
  679. package/dist/esm/theme-exports.d.ts.map +1 -1
  680. package/dist/esm/themes/cozy.theme.d.ts.map +1 -1
  681. package/dist/esm/themes/cozy.theme.js +19 -5
  682. package/dist/esm/themes/cozy.theme.js.map +1 -1
  683. package/dist/esm/themes/dense.theme.d.ts.map +1 -1
  684. package/dist/esm/themes/dense.theme.js +56 -10
  685. package/dist/esm/themes/dense.theme.js.map +1 -1
  686. package/dist/esm/themes/editorial.theme.d.ts.map +1 -1
  687. package/dist/esm/themes/editorial.theme.js +19 -5
  688. package/dist/esm/themes/editorial.theme.js.map +1 -1
  689. package/dist/esm/themes/glass.theme.d.ts.map +1 -1
  690. package/dist/esm/themes/glass.theme.js +5 -1
  691. package/dist/esm/themes/glass.theme.js.map +1 -1
  692. package/dist/esm/themes/neo-brutalist.theme.d.ts.map +1 -1
  693. package/dist/esm/themes/neo-brutalist.theme.js +9 -2
  694. package/dist/esm/themes/neo-brutalist.theme.js.map +1 -1
  695. package/dist/esm/themes/terminal.theme.d.ts.map +1 -1
  696. package/dist/esm/themes/terminal.theme.js +19 -5
  697. package/dist/esm/themes/terminal.theme.js.map +1 -1
  698. package/dist/esm/themes/trading.theme.d.ts.map +1 -1
  699. package/dist/esm/themes/trading.theme.js +22 -6
  700. package/dist/esm/themes/trading.theme.js.map +1 -1
  701. package/dist/tsconfig.build.tsbuildinfo +1 -1
  702. package/package.json +29 -44
  703. package/dist/esm/.native.tsbuildinfo +0 -1
  704. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts +0 -16
  705. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +0 -1
  706. package/dist/esm/components/form/controls/form-field-checkbox-group.js +0 -143
  707. 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 onApprove?: (approvalId: string, comment?: string) => 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 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 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 <span className=\"text-2xs text-muted-foreground\">{tComponent(CT, \"toolArguments\")}:</span>\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 </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 disabled={isExpired}\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 onApprove?: (approvalId: string, comment?: string) => 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 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)}\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)}>\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