@wildo-ai/presets-components 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (780) hide show
  1. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  2. package/dist/esm/components/actions/action-bar.js +65 -8
  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.js +8 -1
  45. package/dist/esm/components/ai-elements/chat/suggestion.js.map +1 -1
  46. package/dist/esm/components/ai-elements/chat/suggestion.labels.d.ts.map +1 -1
  47. package/dist/esm/components/ai-elements/decision/approval-argument-fields.d.ts +68 -0
  48. package/dist/esm/components/ai-elements/decision/approval-argument-fields.d.ts.map +1 -0
  49. package/dist/esm/components/ai-elements/decision/approval-argument-fields.js +208 -0
  50. package/dist/esm/components/ai-elements/decision/approval-argument-fields.js.map +1 -0
  51. package/dist/esm/components/ai-elements/decision/approval.d.ts +124 -17
  52. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  53. package/dist/esm/components/ai-elements/decision/approval.js +105 -13
  54. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  55. package/dist/esm/components/ai-elements/decision/decision-request.d.ts.map +1 -1
  56. package/dist/esm/components/ai-elements/decision/decision-request.labels.d.ts.map +1 -1
  57. package/dist/esm/components/ai-elements/execution/confirmation.d.ts.map +1 -1
  58. package/dist/esm/components/ai-elements/execution/confirmation.labels.d.ts.map +1 -1
  59. package/dist/esm/components/ai-elements/execution/queue.d.ts.map +1 -1
  60. package/dist/esm/components/ai-elements/execution/queue.labels.d.ts.map +1 -1
  61. package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -1
  62. package/dist/esm/components/ai-elements/execution/task.js +1 -1
  63. package/dist/esm/components/ai-elements/execution/task.js.map +1 -1
  64. package/dist/esm/components/ai-elements/execution/task.labels.d.ts.map +1 -1
  65. package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
  66. package/dist/esm/components/ai-elements/execution/tool.js +8 -1
  67. package/dist/esm/components/ai-elements/execution/tool.js.map +1 -1
  68. package/dist/esm/components/ai-elements/execution/tool.labels.d.ts.map +1 -1
  69. package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
  70. package/dist/esm/components/ai-elements/graph/canvas.labels.d.ts.map +1 -1
  71. package/dist/esm/components/ai-elements/graph/connection.d.ts.map +1 -1
  72. package/dist/esm/components/ai-elements/graph/connection.labels.d.ts.map +1 -1
  73. package/dist/esm/components/ai-elements/graph/controls.d.ts.map +1 -1
  74. package/dist/esm/components/ai-elements/graph/controls.labels.d.ts.map +1 -1
  75. package/dist/esm/components/ai-elements/graph/edge.d.ts.map +1 -1
  76. package/dist/esm/components/ai-elements/graph/edge.labels.d.ts.map +1 -1
  77. package/dist/esm/components/ai-elements/graph/graph-runtime.d.ts +3 -1
  78. package/dist/esm/components/ai-elements/graph/graph-runtime.d.ts.map +1 -1
  79. package/dist/esm/components/ai-elements/graph/graph-runtime.js +3 -1
  80. package/dist/esm/components/ai-elements/graph/graph-runtime.js.map +1 -1
  81. package/dist/esm/components/ai-elements/graph/graph.lazy.d.ts.map +1 -1
  82. package/dist/esm/components/ai-elements/graph/graph.lazy.js +15 -15
  83. package/dist/esm/components/ai-elements/graph/graph.lazy.js.map +1 -1
  84. package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
  85. package/dist/esm/components/ai-elements/graph/node.labels.d.ts.map +1 -1
  86. package/dist/esm/components/ai-elements/graph/panel.d.ts.map +1 -1
  87. package/dist/esm/components/ai-elements/graph/panel.labels.d.ts.map +1 -1
  88. package/dist/esm/components/ai-elements/graph/toolbar.d.ts.map +1 -1
  89. package/dist/esm/components/ai-elements/graph/toolbar.labels.d.ts.map +1 -1
  90. package/dist/esm/components/ai-elements/meta/agent.d.ts +0 -1
  91. package/dist/esm/components/ai-elements/meta/agent.d.ts.map +1 -1
  92. package/dist/esm/components/ai-elements/meta/agent.js +23 -18
  93. package/dist/esm/components/ai-elements/meta/agent.js.map +1 -1
  94. package/dist/esm/components/ai-elements/meta/context.d.ts.map +1 -1
  95. package/dist/esm/components/ai-elements/meta/context.labels.d.ts.map +1 -1
  96. package/dist/esm/components/ai-elements/meta/context.lazy.d.ts.map +1 -1
  97. package/dist/esm/components/ai-elements/meta/context.lazy.js +13 -11
  98. package/dist/esm/components/ai-elements/meta/context.lazy.js.map +1 -1
  99. package/dist/esm/components/ai-elements/meta/model-selector.d.ts.map +1 -1
  100. package/dist/esm/components/ai-elements/meta/model-selector.labels.d.ts.map +1 -1
  101. package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts.map +1 -1
  102. package/dist/esm/components/ai-elements/meta/open-in-chat.labels.d.ts.map +1 -1
  103. package/dist/esm/components/ai-elements/shared/loader.d.ts.map +1 -1
  104. package/dist/esm/components/ai-elements/shared/loader.labels.d.ts.map +1 -1
  105. package/dist/esm/components/ai-elements/shared/shimmer.d.ts.map +1 -1
  106. package/dist/esm/components/ai-elements/shared/shimmer.labels.d.ts.map +1 -1
  107. package/dist/esm/components/ai-elements/stream/execution-stream.d.ts.map +1 -1
  108. package/dist/esm/components/ai-elements/stream/execution-stream.labels.d.ts.map +1 -1
  109. package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts +6 -0
  110. package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts.map +1 -1
  111. package/dist/esm/components/ai-elements/trace/chain-of-thought.js +13 -1
  112. package/dist/esm/components/ai-elements/trace/chain-of-thought.js.map +1 -1
  113. package/dist/esm/components/ai-elements/trace/chain-of-thought.labels.d.ts.map +1 -1
  114. package/dist/esm/components/ai-elements/trace/checkpoint.d.ts.map +1 -1
  115. package/dist/esm/components/ai-elements/trace/checkpoint.labels.d.ts.map +1 -1
  116. package/dist/esm/components/ai-elements/trace/inline-citation.d.ts.map +1 -1
  117. package/dist/esm/components/ai-elements/trace/inline-citation.labels.d.ts.map +1 -1
  118. package/dist/esm/components/ai-elements/trace/plan.d.ts.map +1 -1
  119. package/dist/esm/components/ai-elements/trace/plan.labels.d.ts.map +1 -1
  120. package/dist/esm/components/ai-elements/trace/reasoning.d.ts.map +1 -1
  121. package/dist/esm/components/ai-elements/trace/reasoning.labels.d.ts.map +1 -1
  122. package/dist/esm/components/app/app-layout-consent-gate.d.ts +23 -0
  123. package/dist/esm/components/app/app-layout-consent-gate.d.ts.map +1 -0
  124. package/dist/esm/components/app/app-layout-consent-gate.js +133 -0
  125. package/dist/esm/components/app/app-layout-consent-gate.js.map +1 -0
  126. package/dist/esm/components/app/app-layout-document-acceptance-gate.d.ts +19 -0
  127. package/dist/esm/components/app/app-layout-document-acceptance-gate.d.ts.map +1 -0
  128. package/dist/esm/components/app/app-layout-document-acceptance-gate.js +56 -0
  129. package/dist/esm/components/app/app-layout-document-acceptance-gate.js.map +1 -0
  130. package/dist/esm/components/app/app-layout-main-container.d.ts +9 -0
  131. package/dist/esm/components/app/app-layout-main-container.d.ts.map +1 -1
  132. package/dist/esm/components/app/app-layout-main-container.js +17 -23
  133. package/dist/esm/components/app/app-layout-main-container.js.map +1 -1
  134. package/dist/esm/components/app/app-layout-main-container.labels.d.ts.map +1 -1
  135. package/dist/esm/components/app/app-layout-main-container.labels.js +48 -0
  136. package/dist/esm/components/app/app-layout-main-container.labels.js.map +1 -1
  137. package/dist/esm/components/app/public-layout-main-container.d.ts +1 -1
  138. package/dist/esm/components/app/public-layout-main-container.d.ts.map +1 -1
  139. package/dist/esm/components/app/public-layout-main-container.js +9 -8
  140. package/dist/esm/components/app/public-layout-main-container.js.map +1 -1
  141. package/dist/esm/components/app/public-layout-main-container.labels.d.ts.map +1 -1
  142. package/dist/esm/components/app/public-layout-terms.d.ts +46 -0
  143. package/dist/esm/components/app/public-layout-terms.d.ts.map +1 -0
  144. package/dist/esm/components/app/public-layout-terms.js +137 -0
  145. package/dist/esm/components/app/public-layout-terms.js.map +1 -0
  146. package/dist/esm/components/billing/billing-format.utils.d.ts.map +1 -1
  147. package/dist/esm/components/billing/billing-invoice-history.d.ts +1 -1
  148. package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -1
  149. package/dist/esm/components/billing/billing-invoice-history.js +3 -1
  150. package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
  151. package/dist/esm/components/billing/billing-invoice-history.labels.d.ts.map +1 -1
  152. package/dist/esm/components/billing/billing-invoice-history.labels.js +1 -0
  153. package/dist/esm/components/billing/billing-invoice-history.labels.js.map +1 -1
  154. package/dist/esm/components/billing/billing-plan-change-preview.d.ts +5 -0
  155. package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +1 -0
  156. package/dist/esm/components/billing/billing-plan-change-preview.js +25 -0
  157. package/dist/esm/components/billing/billing-plan-change-preview.js.map +1 -0
  158. package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts +3 -0
  159. package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts.map +1 -0
  160. package/dist/esm/components/billing/billing-plan-change-preview.labels.js +22 -0
  161. package/dist/esm/components/billing/billing-plan-change-preview.labels.js.map +1 -0
  162. package/dist/esm/components/billing/billing-portal-link.d.ts +1 -1
  163. package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -1
  164. package/dist/esm/components/billing/billing-portal-link.js +3 -1
  165. package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
  166. package/dist/esm/components/billing/billing-portal-link.labels.d.ts.map +1 -1
  167. package/dist/esm/components/billing/billing-portal-link.labels.js +1 -0
  168. package/dist/esm/components/billing/billing-portal-link.labels.js.map +1 -1
  169. package/dist/esm/components/billing/billing-pricing-table.d.ts +1 -1
  170. package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
  171. package/dist/esm/components/billing/billing-pricing-table.js +10 -4
  172. package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
  173. package/dist/esm/components/billing/billing-pricing-table.labels.d.ts.map +1 -1
  174. package/dist/esm/components/billing/billing-pricing-table.labels.js +8 -1
  175. package/dist/esm/components/billing/billing-pricing-table.labels.js.map +1 -1
  176. package/dist/esm/components/billing/billing-subscription-status.d.ts +1 -1
  177. package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -1
  178. package/dist/esm/components/billing/billing-subscription-status.js +3 -1
  179. package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
  180. package/dist/esm/components/billing/billing-subscription-status.labels.d.ts.map +1 -1
  181. package/dist/esm/components/billing/billing-subscription-status.labels.js +1 -0
  182. package/dist/esm/components/billing/billing-subscription-status.labels.js.map +1 -1
  183. package/dist/esm/components/billing/billing-usage-dashboard.d.ts +1 -1
  184. package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
  185. package/dist/esm/components/billing/billing-usage-dashboard.js +10 -7
  186. package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
  187. package/dist/esm/components/billing/billing-usage-dashboard.labels.d.ts.map +1 -1
  188. package/dist/esm/components/billing/billing-usage-dashboard.labels.js +4 -1
  189. package/dist/esm/components/billing/billing-usage-dashboard.labels.js.map +1 -1
  190. package/dist/esm/components/data-display/avatar.d.ts.map +1 -1
  191. package/dist/esm/components/data-display/avatar.labels.d.ts.map +1 -1
  192. package/dist/esm/components/data-display/badge.d.ts.map +1 -1
  193. package/dist/esm/components/data-display/badge.js +16 -15
  194. package/dist/esm/components/data-display/badge.js.map +1 -1
  195. package/dist/esm/components/data-display/badge.labels.d.ts.map +1 -1
  196. package/dist/esm/components/data-display/description-list.d.ts +2 -1
  197. package/dist/esm/components/data-display/description-list.d.ts.map +1 -1
  198. package/dist/esm/components/data-display/description-list.js +24 -8
  199. package/dist/esm/components/data-display/description-list.js.map +1 -1
  200. package/dist/esm/components/data-display/description-list.labels.d.ts.map +1 -1
  201. package/dist/esm/components/data-display/duration.d.ts +15 -0
  202. package/dist/esm/components/data-display/duration.d.ts.map +1 -0
  203. package/dist/esm/components/data-display/duration.js +50 -0
  204. package/dist/esm/components/data-display/duration.js.map +1 -0
  205. package/dist/esm/components/data-display/duration.labels.d.ts +15 -0
  206. package/dist/esm/components/data-display/duration.labels.d.ts.map +1 -0
  207. package/dist/esm/components/data-display/duration.labels.js +35 -0
  208. package/dist/esm/components/data-display/duration.labels.js.map +1 -0
  209. package/dist/esm/components/data-display/formatters/display-field-address.d.ts +21 -0
  210. package/dist/esm/components/data-display/formatters/display-field-address.d.ts.map +1 -0
  211. package/dist/esm/components/data-display/formatters/display-field-address.js +75 -0
  212. package/dist/esm/components/data-display/formatters/display-field-address.js.map +1 -0
  213. package/dist/esm/components/data-display/formatters/display-field-address.labels.d.ts +3 -0
  214. package/dist/esm/components/data-display/formatters/display-field-address.labels.d.ts.map +1 -0
  215. package/dist/esm/components/data-display/formatters/display-field-address.labels.js +13 -0
  216. package/dist/esm/components/data-display/formatters/display-field-address.labels.js.map +1 -0
  217. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.d.ts.map +1 -1
  218. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js +6 -2
  219. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js.map +1 -1
  220. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.labels.d.ts.map +1 -1
  221. package/dist/esm/components/data-display/formatters/display-field-boolean.d.ts.map +1 -1
  222. package/dist/esm/components/data-display/formatters/display-field-boolean.js +2 -2
  223. package/dist/esm/components/data-display/formatters/display-field-boolean.js.map +1 -1
  224. package/dist/esm/components/data-display/formatters/display-field-boolean.labels.d.ts.map +1 -1
  225. package/dist/esm/components/data-display/formatters/display-field-code.d.ts.map +1 -1
  226. package/dist/esm/components/data-display/formatters/display-field-code.js +2 -2
  227. package/dist/esm/components/data-display/formatters/display-field-code.js.map +1 -1
  228. package/dist/esm/components/data-display/formatters/display-field-code.labels.d.ts.map +1 -1
  229. package/dist/esm/components/data-display/formatters/display-field-date.d.ts +3 -3
  230. package/dist/esm/components/data-display/formatters/display-field-date.d.ts.map +1 -1
  231. package/dist/esm/components/data-display/formatters/display-field-date.js +17 -4
  232. package/dist/esm/components/data-display/formatters/display-field-date.js.map +1 -1
  233. package/dist/esm/components/data-display/formatters/display-field-date.labels.d.ts.map +1 -1
  234. package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts +3 -3
  235. package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts.map +1 -1
  236. package/dist/esm/components/data-display/formatters/display-field-datetime.js +17 -4
  237. package/dist/esm/components/data-display/formatters/display-field-datetime.js.map +1 -1
  238. package/dist/esm/components/data-display/formatters/display-field-datetime.labels.d.ts.map +1 -1
  239. package/dist/esm/components/data-display/formatters/display-field-duration.d.ts.map +1 -1
  240. package/dist/esm/components/data-display/formatters/display-field-duration.labels.d.ts.map +1 -1
  241. package/dist/esm/components/data-display/formatters/display-field-enum.d.ts.map +1 -1
  242. package/dist/esm/components/data-display/formatters/display-field-enum.js +29 -11
  243. package/dist/esm/components/data-display/formatters/display-field-enum.js.map +1 -1
  244. package/dist/esm/components/data-display/formatters/display-field-enum.labels.d.ts.map +1 -1
  245. package/dist/esm/components/data-display/formatters/display-field-file-audio.d.ts.map +1 -1
  246. package/dist/esm/components/data-display/formatters/display-field-file-audio.js +2 -1
  247. package/dist/esm/components/data-display/formatters/display-field-file-audio.js.map +1 -1
  248. package/dist/esm/components/data-display/formatters/display-field-file-audio.labels.d.ts.map +1 -1
  249. package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts +4 -1
  250. package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts.map +1 -1
  251. package/dist/esm/components/data-display/formatters/display-field-file-document.js +18 -5
  252. package/dist/esm/components/data-display/formatters/display-field-file-document.js.map +1 -1
  253. package/dist/esm/components/data-display/formatters/display-field-file-document.labels.d.ts.map +1 -1
  254. package/dist/esm/components/data-display/formatters/display-field-file-document.labels.js +20 -0
  255. package/dist/esm/components/data-display/formatters/display-field-file-document.labels.js.map +1 -1
  256. package/dist/esm/components/data-display/formatters/display-field-file-gallery.d.ts.map +1 -1
  257. package/dist/esm/components/data-display/formatters/display-field-file-gallery.labels.d.ts.map +1 -1
  258. package/dist/esm/components/data-display/formatters/display-field-file-image.d.ts.map +1 -1
  259. package/dist/esm/components/data-display/formatters/display-field-file-image.js +3 -1
  260. package/dist/esm/components/data-display/formatters/display-field-file-image.js.map +1 -1
  261. package/dist/esm/components/data-display/formatters/display-field-file-image.labels.d.ts.map +1 -1
  262. package/dist/esm/components/data-display/formatters/display-field-file-video.d.ts.map +1 -1
  263. package/dist/esm/components/data-display/formatters/display-field-file-video.labels.d.ts.map +1 -1
  264. package/dist/esm/components/data-display/formatters/display-field-file.d.ts.map +1 -1
  265. package/dist/esm/components/data-display/formatters/display-field-file.js +14 -15
  266. package/dist/esm/components/data-display/formatters/display-field-file.js.map +1 -1
  267. package/dist/esm/components/data-display/formatters/display-field-file.labels.d.ts.map +1 -1
  268. package/dist/esm/components/data-display/formatters/display-field-file.labels.js +2 -0
  269. package/dist/esm/components/data-display/formatters/display-field-file.labels.js.map +1 -1
  270. package/dist/esm/components/data-display/formatters/display-field-format.utils.d.ts.map +1 -1
  271. package/dist/esm/components/data-display/formatters/display-field-i18n.utils.d.ts.map +1 -1
  272. package/dist/esm/components/data-display/formatters/display-field-money.d.ts.map +1 -1
  273. package/dist/esm/components/data-display/formatters/display-field-money.labels.d.ts.map +1 -1
  274. package/dist/esm/components/data-display/formatters/display-field-number.d.ts.map +1 -1
  275. package/dist/esm/components/data-display/formatters/display-field-number.js +8 -3
  276. package/dist/esm/components/data-display/formatters/display-field-number.js.map +1 -1
  277. package/dist/esm/components/data-display/formatters/display-field-number.labels.d.ts.map +1 -1
  278. package/dist/esm/components/data-display/formatters/display-field-number.labels.js +5 -2
  279. package/dist/esm/components/data-display/formatters/display-field-number.labels.js.map +1 -1
  280. package/dist/esm/components/data-display/formatters/display-field-phone.d.ts.map +1 -1
  281. package/dist/esm/components/data-display/formatters/display-field-phone.labels.d.ts.map +1 -1
  282. package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.d.ts.map +1 -1
  283. package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.labels.d.ts.map +1 -1
  284. package/dist/esm/components/data-display/formatters/display-field-range-date.d.ts.map +1 -1
  285. package/dist/esm/components/data-display/formatters/display-field-range-date.labels.d.ts.map +1 -1
  286. package/dist/esm/components/data-display/formatters/display-field-range-datetime.d.ts.map +1 -1
  287. package/dist/esm/components/data-display/formatters/display-field-range-datetime.labels.d.ts.map +1 -1
  288. package/dist/esm/components/data-display/formatters/display-field-range-money.d.ts.map +1 -1
  289. package/dist/esm/components/data-display/formatters/display-field-range-money.labels.d.ts.map +1 -1
  290. package/dist/esm/components/data-display/formatters/display-field-range-number.d.ts.map +1 -1
  291. package/dist/esm/components/data-display/formatters/display-field-range-number.labels.d.ts.map +1 -1
  292. package/dist/esm/components/data-display/formatters/display-field-range-time.d.ts.map +1 -1
  293. package/dist/esm/components/data-display/formatters/display-field-range-time.labels.d.ts.map +1 -1
  294. package/dist/esm/components/data-display/formatters/display-field-string.d.ts +1 -1
  295. package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -1
  296. package/dist/esm/components/data-display/formatters/display-field-string.js +129 -15
  297. package/dist/esm/components/data-display/formatters/display-field-string.js.map +1 -1
  298. package/dist/esm/components/data-display/formatters/display-field-string.labels.d.ts.map +1 -1
  299. package/dist/esm/components/data-display/formatters/display-field-time.d.ts.map +1 -1
  300. package/dist/esm/components/data-display/formatters/display-field-time.labels.d.ts.map +1 -1
  301. package/dist/esm/components/data-display/identifier.d.ts +19 -0
  302. package/dist/esm/components/data-display/identifier.d.ts.map +1 -0
  303. package/dist/esm/components/data-display/identifier.js +21 -0
  304. package/dist/esm/components/data-display/identifier.js.map +1 -0
  305. package/dist/esm/components/data-display/kbd.d.ts +17 -0
  306. package/dist/esm/components/data-display/kbd.d.ts.map +1 -0
  307. package/dist/esm/components/data-display/kbd.js +18 -0
  308. package/dist/esm/components/data-display/kbd.js.map +1 -0
  309. package/dist/esm/components/data-display/markdown-content.d.ts.map +1 -1
  310. package/dist/esm/components/data-display/markdown-stream-runtime.d.ts.map +1 -1
  311. package/dist/esm/components/data-display/markdown-stream.lazy.d.ts.map +1 -1
  312. package/dist/esm/components/data-display/markdown-stream.lazy.js +13 -2
  313. package/dist/esm/components/data-display/markdown-stream.lazy.js.map +1 -1
  314. package/dist/esm/components/data-display/notification-indicator.d.ts.map +1 -1
  315. package/dist/esm/components/data-display/notification-indicator.js +3 -11
  316. package/dist/esm/components/data-display/notification-indicator.js.map +1 -1
  317. package/dist/esm/components/data-display/notification-indicator.labels.d.ts.map +1 -1
  318. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.d.ts +63 -0
  319. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.d.ts.map +1 -0
  320. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.js +75 -0
  321. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.js.map +1 -0
  322. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.d.ts +32 -0
  323. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.d.ts.map +1 -0
  324. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.js +36 -0
  325. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.js.map +1 -0
  326. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.d.ts +46 -6
  327. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  328. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.js +70 -46
  329. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.js.map +1 -1
  330. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.d.ts +12 -2
  331. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.d.ts.map +1 -1
  332. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.js +3 -2
  333. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.js.map +1 -1
  334. package/dist/esm/components/data-display/timeline.d.ts +3 -0
  335. package/dist/esm/components/data-display/timeline.d.ts.map +1 -0
  336. package/dist/esm/components/data-display/timeline.js +92 -0
  337. package/dist/esm/components/data-display/timeline.js.map +1 -0
  338. package/dist/esm/components/data-display/untrusted-html-content.d.ts +55 -0
  339. package/dist/esm/components/data-display/untrusted-html-content.d.ts.map +1 -0
  340. package/dist/esm/components/data-display/untrusted-html-content.js +67 -0
  341. package/dist/esm/components/data-display/untrusted-html-content.js.map +1 -0
  342. package/dist/esm/components/feedback/celebration-overlay.d.ts +13 -4
  343. package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -1
  344. package/dist/esm/components/feedback/celebration-overlay.js +146 -22
  345. package/dist/esm/components/feedback/celebration-overlay.js.map +1 -1
  346. package/dist/esm/components/feedback/celebration-overlay.labels.d.ts.map +1 -1
  347. package/dist/esm/components/feedback/danger-zone.d.ts.map +1 -1
  348. package/dist/esm/components/feedback/danger-zone.labels.d.ts.map +1 -1
  349. package/dist/esm/components/feedback/empty-state.d.ts.map +1 -1
  350. package/dist/esm/components/feedback/empty-state.js.map +1 -1
  351. package/dist/esm/components/feedback/empty-state.labels.d.ts.map +1 -1
  352. package/dist/esm/components/feedback/error-display.d.ts.map +1 -1
  353. package/dist/esm/components/feedback/error-display.labels.d.ts.map +1 -1
  354. package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
  355. package/dist/esm/components/feedback/features/feature-limit-indicator.labels.d.ts.map +1 -1
  356. package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.map +1 -1
  357. package/dist/esm/components/feedback/features/feature-lock-badge.labels.d.ts.map +1 -1
  358. package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts.map +1 -1
  359. package/dist/esm/components/feedback/features/feature-unavailable-dialog.labels.d.ts.map +1 -1
  360. package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts.map +1 -1
  361. package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -1
  362. package/dist/esm/components/feedback/features/feature-unavailable-prompt.labels.d.ts.map +1 -1
  363. package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -1
  364. package/dist/esm/components/feedback/loading-overlay.labels.d.ts.map +1 -1
  365. package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -1
  366. package/dist/esm/components/feedback/loading-spinner.labels.d.ts.map +1 -1
  367. package/dist/esm/components/feedback/notification-center.d.ts.map +1 -1
  368. package/dist/esm/components/feedback/notification-center.js +5 -5
  369. package/dist/esm/components/feedback/notification-center.js.map +1 -1
  370. package/dist/esm/components/feedback/operations-confirm-critical.d.ts +1 -1
  371. package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
  372. package/dist/esm/components/feedback/operations-confirm-critical.js +9 -7
  373. package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
  374. package/dist/esm/components/feedback/operations-confirm-critical.labels.d.ts.map +1 -1
  375. package/dist/esm/components/feedback/progress.d.ts.map +1 -1
  376. package/dist/esm/components/feedback/progress.labels.d.ts.map +1 -1
  377. package/dist/esm/components/feedback/skeleton.d.ts.map +1 -1
  378. package/dist/esm/components/feedback/skeleton.labels.d.ts.map +1 -1
  379. package/dist/esm/components/feedback/toast.d.ts.map +1 -1
  380. package/dist/esm/components/feedback/toast.labels.d.ts.map +1 -1
  381. package/dist/esm/components/form/autosave-indicator.d.ts.map +1 -1
  382. package/dist/esm/components/form/autosave-indicator.labels.d.ts.map +1 -1
  383. package/dist/esm/components/form/chromes/field.d.ts.map +1 -1
  384. package/dist/esm/components/form/chromes/field.js +11 -3
  385. package/dist/esm/components/form/chromes/field.js.map +1 -1
  386. package/dist/esm/components/form/chromes/field.labels.d.ts.map +1 -1
  387. package/dist/esm/components/form/chromes/form-primitive.d.ts.map +1 -1
  388. package/dist/esm/components/form/chromes/form-primitive.labels.d.ts.map +1 -1
  389. package/dist/esm/components/form/chromes/form-primitive.labels.js +37 -0
  390. package/dist/esm/components/form/chromes/form-primitive.labels.js.map +1 -1
  391. package/dist/esm/components/form/combobox.d.ts.map +1 -1
  392. package/dist/esm/components/form/combobox.js +14 -13
  393. package/dist/esm/components/form/combobox.js.map +1 -1
  394. package/dist/esm/components/form/combobox.labels.d.ts.map +1 -1
  395. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.d.ts +42 -0
  396. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.d.ts.map +1 -0
  397. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.js +120 -0
  398. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.js.map +1 -0
  399. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.d.ts +16 -0
  400. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.d.ts.map +1 -0
  401. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.js +8 -0
  402. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.js.map +1 -0
  403. package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -1
  404. package/dist/esm/components/form/controls/boolean/checkbox.js +2 -2
  405. package/dist/esm/components/form/controls/boolean/checkbox.js.map +1 -1
  406. package/dist/esm/components/form/controls/boolean/checkbox.labels.d.ts.map +1 -1
  407. package/dist/esm/components/form/controls/boolean/switch.d.ts.map +1 -1
  408. package/dist/esm/components/form/controls/boolean/switch.labels.d.ts.map +1 -1
  409. package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts.map +1 -1
  410. package/dist/esm/components/form/controls/boolean/toggle-group-boolean.labels.d.ts.map +1 -1
  411. package/dist/esm/components/form/controls/boolean/toggle.d.ts.map +1 -1
  412. package/dist/esm/components/form/controls/boolean/toggle.labels.d.ts.map +1 -1
  413. package/dist/esm/components/form/controls/code-editor/cm6-editor-appearance.d.ts.map +1 -1
  414. package/dist/esm/components/form/controls/code-editor/cm6-editor.d.ts.map +1 -1
  415. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.d.ts.map +1 -1
  416. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.js +11 -2
  417. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.js.map +1 -1
  418. package/dist/esm/components/form/controls/code-editor/form-field-code.d.ts.map +1 -1
  419. package/dist/esm/components/form/controls/code-editor/markdown-editor.d.ts.map +1 -1
  420. package/dist/esm/components/form/controls/date-time/calendar.d.ts.map +1 -1
  421. package/dist/esm/components/form/controls/date-time/calendar.labels.d.ts.map +1 -1
  422. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
  423. package/dist/esm/components/form/controls/date-time/date-range-picker.labels.d.ts.map +1 -1
  424. package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
  425. package/dist/esm/components/form/controls/date-time/datepicker.labels.d.ts.map +1 -1
  426. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
  427. package/dist/esm/components/form/controls/date-time/datetime-picker.labels.d.ts.map +1 -1
  428. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
  429. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.d.ts.map +1 -1
  430. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.js +11 -2
  431. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.js.map +1 -1
  432. package/dist/esm/components/form/controls/date-time/time-picker.d.ts.map +1 -1
  433. package/dist/esm/components/form/controls/date-time/time-picker.labels.d.ts.map +1 -1
  434. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
  435. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.d.ts.map +1 -1
  436. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.js +11 -2
  437. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.js.map +1 -1
  438. package/dist/esm/components/form/controls/enum/radio.d.ts +1 -1
  439. package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
  440. package/dist/esm/components/form/controls/enum/radio.js +13 -12
  441. package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
  442. package/dist/esm/components/form/controls/enum/radio.labels.d.ts.map +1 -1
  443. package/dist/esm/components/form/controls/enum/select-multiple.d.ts.map +1 -1
  444. package/dist/esm/components/form/controls/enum/select-multiple.js +5 -3
  445. package/dist/esm/components/form/controls/enum/select-multiple.js.map +1 -1
  446. package/dist/esm/components/form/controls/enum/select-multiple.labels.d.ts.map +1 -1
  447. package/dist/esm/components/form/controls/enum/select.d.ts.map +1 -1
  448. package/dist/esm/components/form/controls/enum/select.labels.d.ts.map +1 -1
  449. package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
  450. package/dist/esm/components/form/controls/enum/toggle-group.js +96 -5
  451. package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
  452. package/dist/esm/components/form/controls/enum/toggle-group.labels.d.ts.map +1 -1
  453. package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -1
  454. package/dist/esm/components/form/controls/file/file-upload.labels.d.ts.map +1 -1
  455. package/dist/esm/components/form/controls/file/image-crop.d.ts.map +1 -1
  456. package/dist/esm/components/form/controls/file/image-crop.labels.d.ts.map +1 -1
  457. package/dist/esm/components/form/controls/file/providers/dropbox-picker.d.ts +44 -0
  458. package/dist/esm/components/form/controls/file/providers/dropbox-picker.d.ts.map +1 -0
  459. package/dist/esm/components/form/controls/file/providers/dropbox-picker.js +137 -0
  460. package/dist/esm/components/form/controls/file/providers/dropbox-picker.js.map +1 -0
  461. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.d.ts +22 -0
  462. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.d.ts.map +1 -0
  463. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.js +27 -0
  464. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.js.map +1 -0
  465. package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts +3 -1
  466. package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts.map +1 -1
  467. package/dist/esm/components/form/controls/file/providers/google-drive-picker.js +3 -1
  468. package/dist/esm/components/form/controls/file/providers/google-drive-picker.js.map +1 -1
  469. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts +6 -0
  470. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts.map +1 -1
  471. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js +8 -1
  472. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js.map +1 -1
  473. package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts +6 -2
  474. package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts.map +1 -1
  475. package/dist/esm/components/form/controls/file/providers/onedrive-picker.js +6 -2
  476. package/dist/esm/components/form/controls/file/providers/onedrive-picker.js.map +1 -1
  477. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts +6 -0
  478. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts.map +1 -1
  479. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js +8 -1
  480. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js.map +1 -1
  481. package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
  482. package/dist/esm/components/form/controls/input-group.labels.d.ts.map +1 -1
  483. package/dist/esm/components/form/controls/input.d.ts.map +1 -1
  484. package/dist/esm/components/form/controls/input.labels.d.ts.map +1 -1
  485. package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
  486. package/dist/esm/components/form/controls/number/slider.labels.d.ts.map +1 -1
  487. package/dist/esm/components/form/controls/number/slider.labels.js +9 -2
  488. package/dist/esm/components/form/controls/number/slider.labels.js.map +1 -1
  489. package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -1
  490. package/dist/esm/components/form/controls/string/color-input.labels.d.ts.map +1 -1
  491. package/dist/esm/components/form/controls/string/color-picker-surface.d.ts.map +1 -1
  492. package/dist/esm/components/form/controls/string/color-picker-surface.js.map +1 -1
  493. package/dist/esm/components/form/controls/string/inline-edit-text.d.ts.map +1 -1
  494. package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -1
  495. package/dist/esm/components/form/controls/string/input-otp.labels.d.ts.map +1 -1
  496. package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
  497. package/dist/esm/components/form/controls/string/password-input.labels.d.ts.map +1 -1
  498. package/dist/esm/components/form/controls/string/password-input.labels.js +9 -2
  499. package/dist/esm/components/form/controls/string/password-input.labels.js.map +1 -1
  500. package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
  501. package/dist/esm/components/form/controls/string/textarea.labels.d.ts.map +1 -1
  502. package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -1
  503. package/dist/esm/components/layout/aspect-ratio.labels.d.ts.map +1 -1
  504. package/dist/esm/components/layout/carousel.d.ts.map +1 -1
  505. package/dist/esm/components/layout/carousel.labels.d.ts.map +1 -1
  506. package/dist/esm/components/layout/divider.d.ts.map +1 -1
  507. package/dist/esm/components/layout/divider.labels.d.ts.map +1 -1
  508. package/dist/esm/components/layout/resizable.d.ts.map +1 -1
  509. package/dist/esm/components/layout/resizable.labels.d.ts.map +1 -1
  510. package/dist/esm/components/layout/scroll-area.d.ts.map +1 -1
  511. package/dist/esm/components/layout/scroll-area.labels.d.ts.map +1 -1
  512. package/dist/esm/components/layout/separator.d.ts.map +1 -1
  513. package/dist/esm/components/layout/separator.labels.d.ts.map +1 -1
  514. package/dist/esm/components/navigation/app-level/activity-bar.d.ts.map +1 -1
  515. package/dist/esm/components/navigation/app-level/activity-bar.js +2 -2
  516. package/dist/esm/components/navigation/app-level/activity-bar.js.map +1 -1
  517. package/dist/esm/components/navigation/app-level/activity-bar.labels.d.ts.map +1 -1
  518. package/dist/esm/components/navigation/app-level/command-menu.d.ts.map +1 -1
  519. package/dist/esm/components/navigation/app-level/command-menu.js +2 -2
  520. package/dist/esm/components/navigation/app-level/command-menu.js.map +1 -1
  521. package/dist/esm/components/navigation/app-level/command-menu.labels.d.ts.map +1 -1
  522. package/dist/esm/components/navigation/app-level/control-panel.d.ts.map +1 -1
  523. package/dist/esm/components/navigation/app-level/control-panel.labels.d.ts.map +1 -1
  524. package/dist/esm/components/navigation/app-level/menu-user-org.d.ts.map +1 -1
  525. package/dist/esm/components/navigation/app-level/menu-user-org.js +10 -4
  526. package/dist/esm/components/navigation/app-level/menu-user-org.js.map +1 -1
  527. package/dist/esm/components/navigation/app-level/menu-user-org.labels.d.ts.map +1 -1
  528. package/dist/esm/components/navigation/app-level/menu-user-org.labels.js +7 -0
  529. package/dist/esm/components/navigation/app-level/menu-user-org.labels.js.map +1 -1
  530. package/dist/esm/components/navigation/app-level/menubar.d.ts.map +1 -1
  531. package/dist/esm/components/navigation/app-level/menubar.js +36 -14
  532. package/dist/esm/components/navigation/app-level/menubar.js.map +1 -1
  533. package/dist/esm/components/navigation/app-level/menubar.labels.d.ts.map +1 -1
  534. package/dist/esm/components/navigation/app-level/navigation-back.d.ts.map +1 -1
  535. package/dist/esm/components/navigation/app-level/navigation-back.js +31 -5
  536. package/dist/esm/components/navigation/app-level/navigation-back.js.map +1 -1
  537. package/dist/esm/components/navigation/app-level/navigation-back.labels.d.ts.map +1 -1
  538. package/dist/esm/components/navigation/app-level/notification-center.d.ts.map +1 -1
  539. package/dist/esm/components/navigation/app-level/notification-center.js.map +1 -1
  540. package/dist/esm/components/navigation/app-level/notification-center.labels.d.ts.map +1 -1
  541. package/dist/esm/components/navigation/app-level/notification-center.labels.js +15 -0
  542. package/dist/esm/components/navigation/app-level/notification-center.labels.js.map +1 -1
  543. package/dist/esm/components/navigation/app-level/quick-action-button.d.ts.map +1 -1
  544. package/dist/esm/components/navigation/app-level/quick-action-button.labels.d.ts.map +1 -1
  545. package/dist/esm/components/navigation/app-level/quick-action-button.labels.js +4 -0
  546. package/dist/esm/components/navigation/app-level/quick-action-button.labels.js.map +1 -1
  547. package/dist/esm/components/navigation/app-level/quick-switcher.d.ts.map +1 -1
  548. package/dist/esm/components/navigation/app-level/quick-switcher.labels.d.ts.map +1 -1
  549. package/dist/esm/components/navigation/app-level/sidebar.d.ts.map +1 -1
  550. package/dist/esm/components/navigation/app-level/sidebar.js +41 -25
  551. package/dist/esm/components/navigation/app-level/sidebar.js.map +1 -1
  552. package/dist/esm/components/navigation/app-level/sidebar.labels.d.ts.map +1 -1
  553. package/dist/esm/components/navigation/app-level/sidebar.labels.js +1 -0
  554. package/dist/esm/components/navigation/app-level/sidebar.labels.js.map +1 -1
  555. package/dist/esm/components/navigation/app-level/status-bar.d.ts.map +1 -1
  556. package/dist/esm/components/navigation/app-level/status-bar.js +2 -2
  557. package/dist/esm/components/navigation/app-level/status-bar.js.map +1 -1
  558. package/dist/esm/components/navigation/app-level/status-bar.labels.d.ts.map +1 -1
  559. package/dist/esm/components/navigation/app-level/toolbar.d.ts.map +1 -1
  560. package/dist/esm/components/navigation/app-level/toolbar.js +2 -2
  561. package/dist/esm/components/navigation/app-level/toolbar.js.map +1 -1
  562. package/dist/esm/components/navigation/app-level/toolbar.labels.d.ts.map +1 -1
  563. package/dist/esm/components/navigation/app-level/utility-panel.d.ts.map +1 -1
  564. package/dist/esm/components/navigation/app-level/utility-panel.js +24 -6
  565. package/dist/esm/components/navigation/app-level/utility-panel.js.map +1 -1
  566. package/dist/esm/components/navigation/app-level/utility-panel.labels.d.ts.map +1 -1
  567. package/dist/esm/components/navigation/app-level/utility-panel.labels.js.map +1 -1
  568. package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -1
  569. package/dist/esm/components/navigation/breadcrumb.js +1 -1
  570. package/dist/esm/components/navigation/breadcrumb.js.map +1 -1
  571. package/dist/esm/components/navigation/breadcrumb.labels.d.ts.map +1 -1
  572. package/dist/esm/components/navigation/command.d.ts.map +1 -1
  573. package/dist/esm/components/navigation/command.js +2 -2
  574. package/dist/esm/components/navigation/command.js.map +1 -1
  575. package/dist/esm/components/navigation/command.labels.d.ts.map +1 -1
  576. package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -1
  577. package/dist/esm/components/navigation/menu-bar.labels.d.ts.map +1 -1
  578. package/dist/esm/components/navigation/navbar.d.ts.map +1 -1
  579. package/dist/esm/components/navigation/navbar.labels.d.ts.map +1 -1
  580. package/dist/esm/components/navigation/sidebar.d.ts.map +1 -1
  581. package/dist/esm/components/navigation/sidebar.labels.d.ts.map +1 -1
  582. package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -1
  583. package/dist/esm/components/overlays/containers/alert-dialog.js +11 -1
  584. package/dist/esm/components/overlays/containers/alert-dialog.js.map +1 -1
  585. package/dist/esm/components/overlays/containers/alert-dialog.labels.d.ts.map +1 -1
  586. package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -1
  587. package/dist/esm/components/overlays/containers/alert.labels.d.ts.map +1 -1
  588. package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -1
  589. package/dist/esm/components/overlays/containers/dialog.js +11 -1
  590. package/dist/esm/components/overlays/containers/dialog.js.map +1 -1
  591. package/dist/esm/components/overlays/containers/dialog.labels.d.ts.map +1 -1
  592. package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -1
  593. package/dist/esm/components/overlays/containers/drawer.labels.d.ts.map +1 -1
  594. package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -1
  595. package/dist/esm/components/overlays/containers/sheet.labels.d.ts.map +1 -1
  596. package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -1
  597. package/dist/esm/components/overlays/floating/context-menu.labels.d.ts.map +1 -1
  598. package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -1
  599. package/dist/esm/components/overlays/floating/dropdown-menu.labels.d.ts.map +1 -1
  600. package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -1
  601. package/dist/esm/components/overlays/floating/hover-card.labels.d.ts.map +1 -1
  602. package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -1
  603. package/dist/esm/components/overlays/floating/popover.labels.d.ts.map +1 -1
  604. package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -1
  605. package/dist/esm/components/overlays/floating/tooltip.labels.d.ts.map +1 -1
  606. package/dist/esm/components/sections/accordion.d.ts.map +1 -1
  607. package/dist/esm/components/sections/accordion.labels.d.ts.map +1 -1
  608. package/dist/esm/components/sections/card.d.ts.map +1 -1
  609. package/dist/esm/components/sections/card.js +71 -6
  610. package/dist/esm/components/sections/card.js.map +1 -1
  611. package/dist/esm/components/sections/card.labels.d.ts.map +1 -1
  612. package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
  613. package/dist/esm/components/sections/collapsible.labels.d.ts.map +1 -1
  614. package/dist/esm/components/sections/content-section.d.ts.map +1 -1
  615. package/dist/esm/components/sections/content-section.js +36 -6
  616. package/dist/esm/components/sections/content-section.js.map +1 -1
  617. package/dist/esm/components/sections/disclosure-nesting.d.ts.map +1 -1
  618. package/dist/esm/components/sections/option-gesture.d.ts +15 -0
  619. package/dist/esm/components/sections/option-gesture.d.ts.map +1 -0
  620. package/dist/esm/components/sections/option-gesture.js +66 -0
  621. package/dist/esm/components/sections/option-gesture.js.map +1 -0
  622. package/dist/esm/components/sections/pagination.d.ts.map +1 -1
  623. package/dist/esm/components/sections/pagination.labels.d.ts.map +1 -1
  624. package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -1
  625. package/dist/esm/components/sections/stacked-layout.labels.d.ts.map +1 -1
  626. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  627. package/dist/esm/components/sections/stepper.js +5 -3
  628. package/dist/esm/components/sections/stepper.js.map +1 -1
  629. package/dist/esm/components/sections/stepper.labels.d.ts.map +1 -1
  630. package/dist/esm/components/sections/table.d.ts.map +1 -1
  631. package/dist/esm/components/sections/table.labels.d.ts.map +1 -1
  632. package/dist/esm/components/sections/tabs.d.ts.map +1 -1
  633. package/dist/esm/components/sections/tabs.js +60 -15
  634. package/dist/esm/components/sections/tabs.js.map +1 -1
  635. package/dist/esm/components/sections/tabs.labels.d.ts.map +1 -1
  636. package/dist/esm/components/typography/heading.d.ts.map +1 -1
  637. package/dist/esm/components/typography/heading.labels.d.ts.map +1 -1
  638. package/dist/esm/components/typography/label.d.ts.map +1 -1
  639. package/dist/esm/components/typography/label.labels.d.ts.map +1 -1
  640. package/dist/esm/components/typography/link.d.ts.map +1 -1
  641. package/dist/esm/components/typography/link.js +9 -3
  642. package/dist/esm/components/typography/link.js.map +1 -1
  643. package/dist/esm/components/typography/link.labels.d.ts.map +1 -1
  644. package/dist/esm/components/typography/text.d.ts +1 -1
  645. package/dist/esm/components/typography/text.d.ts.map +1 -1
  646. package/dist/esm/components/typography/text.js +3 -2
  647. package/dist/esm/components/typography/text.js.map +1 -1
  648. package/dist/esm/components/typography/text.labels.d.ts.map +1 -1
  649. package/dist/esm/components/typography/truncated-text.d.ts.map +1 -1
  650. package/dist/esm/config/billing-shell.presets.d.ts.map +1 -1
  651. package/dist/esm/config/index.d.ts.map +1 -1
  652. package/dist/esm/config/preset-design-system.d.ts.map +1 -1
  653. package/dist/esm/config/preset-design-system.js +37 -60
  654. package/dist/esm/config/preset-design-system.js.map +1 -1
  655. package/dist/esm/config/preset-error-pages.d.ts.map +1 -1
  656. package/dist/esm/config/preset-kits.d.ts.map +1 -1
  657. package/dist/esm/config/preset-navigation.d.ts.map +1 -1
  658. package/dist/esm/config/preset-navigation.js +23 -7
  659. package/dist/esm/config/preset-navigation.js.map +1 -1
  660. package/dist/esm/config/preset-resources.d.ts.map +1 -1
  661. package/dist/esm/config/preset-shell.d.ts.map +1 -1
  662. package/dist/esm/config/preset-utils.d.ts.map +1 -1
  663. package/dist/esm/config/presets.d.ts.map +1 -1
  664. package/dist/esm/config/resources/agent-work.resource-presets.d.ts +4 -0
  665. package/dist/esm/config/resources/agent-work.resource-presets.d.ts.map +1 -0
  666. package/dist/esm/config/resources/agent-work.resource-presets.js +115 -0
  667. package/dist/esm/config/resources/agent-work.resource-presets.js.map +1 -0
  668. package/dist/esm/config/resources/api-key-rotation-window.d.ts +22 -0
  669. package/dist/esm/config/resources/api-key-rotation-window.d.ts.map +1 -0
  670. package/dist/esm/config/resources/api-key-rotation-window.js +45 -0
  671. package/dist/esm/config/resources/api-key-rotation-window.js.map +1 -0
  672. package/dist/esm/config/resources/application.resource-presets.d.ts +2 -0
  673. package/dist/esm/config/resources/application.resource-presets.d.ts.map +1 -1
  674. package/dist/esm/config/resources/application.resource-presets.js +268 -26
  675. package/dist/esm/config/resources/application.resource-presets.js.map +1 -1
  676. package/dist/esm/config/resources/billing.resource-presets.d.ts +4 -3
  677. package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -1
  678. package/dist/esm/config/resources/billing.resource-presets.js +241 -111
  679. package/dist/esm/config/resources/billing.resource-presets.js.map +1 -1
  680. package/dist/esm/config/resources/conversation-threads.resource-presets.d.ts +4 -0
  681. package/dist/esm/config/resources/conversation-threads.resource-presets.d.ts.map +1 -0
  682. package/dist/esm/config/resources/conversation-threads.resource-presets.js +105 -0
  683. package/dist/esm/config/resources/conversation-threads.resource-presets.js.map +1 -0
  684. package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -1
  685. package/dist/esm/config/resources/guidance.resource-presets.js +39 -16
  686. package/dist/esm/config/resources/guidance.resource-presets.js.map +1 -1
  687. package/dist/esm/config/resources/identity.resource-presets.d.ts +0 -13
  688. package/dist/esm/config/resources/identity.resource-presets.d.ts.map +1 -1
  689. package/dist/esm/config/resources/identity.resource-presets.js +71 -17
  690. package/dist/esm/config/resources/identity.resource-presets.js.map +1 -1
  691. package/dist/esm/config/resources/inbound-deliveries.resource-presets.d.ts +6 -0
  692. package/dist/esm/config/resources/inbound-deliveries.resource-presets.d.ts.map +1 -0
  693. package/dist/esm/config/resources/inbound-deliveries.resource-presets.js +112 -0
  694. package/dist/esm/config/resources/inbound-deliveries.resource-presets.js.map +1 -0
  695. package/dist/esm/config/resources/inbound-email.resource-presets.d.ts +4 -0
  696. package/dist/esm/config/resources/inbound-email.resource-presets.d.ts.map +1 -0
  697. package/dist/esm/config/resources/inbound-email.resource-presets.js +182 -0
  698. package/dist/esm/config/resources/inbound-email.resource-presets.js.map +1 -0
  699. package/dist/esm/config/resources/index.d.ts.map +1 -1
  700. package/dist/esm/config/resources/index.js +9 -2
  701. package/dist/esm/config/resources/index.js.map +1 -1
  702. package/dist/esm/config/resources/legal-holds.resource-presets.d.ts +4 -0
  703. package/dist/esm/config/resources/legal-holds.resource-presets.d.ts.map +1 -0
  704. package/dist/esm/config/resources/legal-holds.resource-presets.js +76 -0
  705. package/dist/esm/config/resources/legal-holds.resource-presets.js.map +1 -0
  706. package/dist/esm/config/resources/organizations.resource-presets.d.ts.map +1 -1
  707. package/dist/esm/config/resources/organizations.resource-presets.js +216 -35
  708. package/dist/esm/config/resources/organizations.resource-presets.js.map +1 -1
  709. package/dist/esm/config/resources/resource.config.utils.d.ts +20 -0
  710. package/dist/esm/config/resources/resource.config.utils.d.ts.map +1 -1
  711. package/dist/esm/config/resources/resource.config.utils.js +20 -0
  712. package/dist/esm/config/resources/resource.config.utils.js.map +1 -1
  713. package/dist/esm/config/resources/retention-enforcement.resource-presets.d.ts +5 -0
  714. package/dist/esm/config/resources/retention-enforcement.resource-presets.d.ts.map +1 -0
  715. package/dist/esm/config/resources/retention-enforcement.resource-presets.js +74 -0
  716. package/dist/esm/config/resources/retention-enforcement.resource-presets.js.map +1 -0
  717. package/dist/esm/config/resources/security.resource-presets.d.ts +11 -3
  718. package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -1
  719. package/dist/esm/config/resources/security.resource-presets.js +685 -99
  720. package/dist/esm/config/resources/security.resource-presets.js.map +1 -1
  721. package/dist/esm/config/resources/service-providers.resource-presets.d.ts +4 -0
  722. package/dist/esm/config/resources/service-providers.resource-presets.d.ts.map +1 -0
  723. package/dist/esm/config/resources/service-providers.resource-presets.js +321 -0
  724. package/dist/esm/config/resources/service-providers.resource-presets.js.map +1 -0
  725. package/dist/esm/config/resources/webhooks.resource-presets.d.ts +4 -3
  726. package/dist/esm/config/resources/webhooks.resource-presets.d.ts.map +1 -1
  727. package/dist/esm/config/resources/webhooks.resource-presets.js +102 -26
  728. package/dist/esm/config/resources/webhooks.resource-presets.js.map +1 -1
  729. package/dist/esm/index.d.ts +7 -1
  730. package/dist/esm/index.d.ts.map +1 -1
  731. package/dist/esm/index.js +7 -1
  732. package/dist/esm/index.js.map +1 -1
  733. package/dist/esm/lottie/lottie.content.definitions.d.ts.map +1 -1
  734. package/dist/esm/lottie/lottie.definitions.d.ts.map +1 -1
  735. package/dist/esm/mermaid-stub.d.ts.map +1 -1
  736. package/dist/esm/registration/register-common-enums.d.ts.map +1 -1
  737. package/dist/esm/registration/register-common-enums.js +63 -34
  738. package/dist/esm/registration/register-common-enums.js.map +1 -1
  739. package/dist/esm/registration/register-default-animations.d.ts.map +1 -1
  740. package/dist/esm/registration/register-default-icons.d.ts.map +1 -1
  741. package/dist/esm/registration/register-default-icons.js +3 -1
  742. package/dist/esm/registration/register-default-icons.js.map +1 -1
  743. package/dist/esm/registration/register-default-presets.d.ts.map +1 -1
  744. package/dist/esm/registration/register-default-presets.js +32 -4
  745. package/dist/esm/registration/register-default-presets.js.map +1 -1
  746. package/dist/esm/registration/register-provider-components.d.ts.map +1 -1
  747. package/dist/esm/registration/register-provider-components.js +11 -0
  748. package/dist/esm/registration/register-provider-components.js.map +1 -1
  749. package/dist/esm/shiki-subset.d.ts +11 -3
  750. package/dist/esm/shiki-subset.d.ts.map +1 -1
  751. package/dist/esm/shiki-subset.js +10 -2
  752. package/dist/esm/shiki-subset.js.map +1 -1
  753. package/dist/esm/theme-exports.d.ts.map +1 -1
  754. package/dist/esm/themes/cozy.theme.d.ts.map +1 -1
  755. package/dist/esm/themes/cozy.theme.js +19 -5
  756. package/dist/esm/themes/cozy.theme.js.map +1 -1
  757. package/dist/esm/themes/dense.theme.d.ts.map +1 -1
  758. package/dist/esm/themes/dense.theme.js +76 -10
  759. package/dist/esm/themes/dense.theme.js.map +1 -1
  760. package/dist/esm/themes/editorial.theme.d.ts.map +1 -1
  761. package/dist/esm/themes/editorial.theme.js +19 -5
  762. package/dist/esm/themes/editorial.theme.js.map +1 -1
  763. package/dist/esm/themes/glass.theme.d.ts.map +1 -1
  764. package/dist/esm/themes/glass.theme.js +5 -1
  765. package/dist/esm/themes/glass.theme.js.map +1 -1
  766. package/dist/esm/themes/neo-brutalist.theme.d.ts.map +1 -1
  767. package/dist/esm/themes/neo-brutalist.theme.js +9 -2
  768. package/dist/esm/themes/neo-brutalist.theme.js.map +1 -1
  769. package/dist/esm/themes/terminal.theme.d.ts.map +1 -1
  770. package/dist/esm/themes/terminal.theme.js +19 -5
  771. package/dist/esm/themes/terminal.theme.js.map +1 -1
  772. package/dist/esm/themes/trading.theme.d.ts.map +1 -1
  773. package/dist/esm/themes/trading.theme.js +22 -6
  774. package/dist/esm/themes/trading.theme.js.map +1 -1
  775. package/dist/tsconfig.build.tsbuildinfo +1 -1
  776. package/package.json +31 -45
  777. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts +0 -16
  778. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +0 -1
  779. package/dist/esm/components/form/controls/form-field-checkbox-group.js +0 -143
  780. package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chain-of-thought.js","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/chain-of-thought.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport {\n Badge,\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n cn,\n useIconRegistry,\n StandardIconReference,\n useI18n,\n useUI,\n Surface,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { FrontendComponentType, SurfaceVariant, TypographyVariant, UIBehavior } from \"@wildo-ai/presets-components-models\";\nimport type { ComponentProps, ReactNode, ReactElement } from \"react\";\nimport { createContext, memo, useContext, useMemo } from \"react\";\n\ntype ChainOfThoughtContextValue = {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n};\n\nconst ChainOfThoughtContext = createContext<ChainOfThoughtContextValue | null>(\n null\n);\n\nconst useChainOfThought = () => {\n const context = useContext(ChainOfThoughtContext);\n if (!context) {\n throw new Error(\n \"ChainOfThought components must be used within ChainOfThought\"\n );\n }\n return context;\n};\n\nexport type AI_ChainOfThoughtProps = ComponentProps<\"div\"> & {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\n\nexport const AI_ChainOfThought: React.MemoExoticComponent<(props: AI_ChainOfThoughtProps) => React.JSX.Element> = memo(\n ({\n className,\n open,\n defaultOpen = false,\n onOpenChange,\n children,\n ...props\n }: AI_ChainOfThoughtProps): React.JSX.Element => {\n const [isOpen, setIsOpen] = useControllableState({\n prop: open,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const chainOfThoughtContext = useMemo(\n () => ({ isOpen, setIsOpen }),\n [isOpen, setIsOpen]\n );\n\n return (\n <ChainOfThoughtContext.Provider value={chainOfThoughtContext}>\n <div\n className={cn(\"not-prose max-w-prose space-y-field\", className)}\n {...props}\n >\n {children}\n </div>\n </ChainOfThoughtContext.Provider>\n );\n }\n);\n\nexport type AI_ChainOfThoughtHeaderProps = ComponentProps<\n typeof CollapsibleTrigger\n>;\n\nexport const AI_ChainOfThoughtHeader: React.MemoExoticComponent<(props: AI_ChainOfThoughtHeaderProps) => React.JSX.Element | null> = memo(\n ({ className, children, ...props }: AI_ChainOfThoughtHeaderProps): React.JSX.Element | null => {\n const { isOpen, setIsOpen } = useChainOfThought();\n const { renderIcon } = useIconRegistry();\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_AI_CHAIN_OF_THOUGHT });\n const { getRecipe } = useUI();\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n if (!isReady) return null;\n\n return (\n <Collapsible onOpenChange={setIsOpen} open={isOpen}>\n <CollapsibleTrigger\n className={cn(\n descRecipe.base,\n \"flex w-full items-center gap-element text-sm transition-colors hover:text-foreground\",\n className\n )}\n {...props}\n >\n {renderIcon(StandardIconReference.BRAIN, { className: \"size-4\" })}\n <span className=\"flex-1 text-start\">\n {children ?? tComponent(FrontendComponentType.LOW_LEVEL_AI_CHAIN_OF_THOUGHT, 'toggleChainOfThought')}\n </span>\n {renderIcon(StandardIconReference.CHEVRON_DOWN, {\n className: cn(\n \"size-4 transition-transform\",\n isOpen ? \"rotate-180\" : \"rotate-0\"\n )\n })}\n </CollapsibleTrigger>\n </Collapsible>\n );\n }\n);\n\nexport type AI_ChainOfThoughtStepProps = ComponentProps<\"div\"> & {\n icon?: ReactElement;\n label: ReactNode;\n description?: ReactNode;\n status?: \"complete\" | \"active\" | \"pending\";\n};\n\nexport const AI_ChainOfThoughtStep: React.MemoExoticComponent<(props: AI_ChainOfThoughtStepProps) => React.JSX.Element> = memo(\n ({\n className,\n icon,\n label,\n description,\n status = \"complete\",\n children,\n ...props\n }: AI_ChainOfThoughtStepProps): React.JSX.Element => {\n const { renderIcon } = useIconRegistry();\n const { getRecipe } = useUI();\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n const statusStyles = {\n complete: descRecipe.base,\n active: \"text-foreground\",\n pending: \"text-muted-foreground/50\",\n };\n\n const iconElement = icon ?? renderIcon(StandardIconReference.DOT, { className: \"size-4\" });\n\n return (\n <div\n className={cn(\n \"flex gap-element text-sm\",\n statusStyles[status],\n \"fade-in-0 slide-in-from-top-2 animate-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative mt-0.5\">\n {iconElement}\n <div className=\"-mx-px absolute top-7 bottom-0 left-1/2 w-px bg-border\" />\n </div>\n <div className=\"flex-1 space-y-item\">\n <div>{label}</div>\n {description && (\n <div className={cn(descRecipe.base, \"text-xs\")}>{description}</div>\n )}\n {children}\n </div>\n </div>\n );\n }\n);\n\nexport type AI_ChainOfThoughtSearchResultsProps = ComponentProps<\"div\">;\n\nexport const AI_ChainOfThoughtSearchResults: React.MemoExoticComponent<(props: AI_ChainOfThoughtSearchResultsProps) => React.JSX.Element> = memo(\n ({ className, ...props }: AI_ChainOfThoughtSearchResultsProps): React.JSX.Element => (\n <div className={cn(\"flex items-center gap-element\", className)} {...props} />\n )\n);\n\nexport type AI_ChainOfThoughtSearchResultProps = ComponentProps<typeof Badge>;\n\nexport const AI_ChainOfThoughtSearchResult: React.MemoExoticComponent<(props: AI_ChainOfThoughtSearchResultProps) => React.JSX.Element> = memo(\n ({ className, children, ...props }: AI_ChainOfThoughtSearchResultProps): React.JSX.Element => (\n <Badge\n {...({\n className: cn(\"gap-item-xs px-card-sm py-item-xs font-normal text-xs\", className),\n variant: \"secondary\" as const,\n ...props,\n } as React.ComponentProps<typeof Badge>)}\n >\n {children}\n </Badge>\n )\n);\n\nexport type AI_ChainOfThoughtContentProps = ComponentProps<\n typeof CollapsibleContent\n>;\n\nexport const AI_ChainOfThoughtContent: React.MemoExoticComponent<(props: AI_ChainOfThoughtContentProps) => React.JSX.Element> = memo(\n ({ className, children, ...props }: AI_ChainOfThoughtContentProps): React.JSX.Element => {\n const { isOpen } = useChainOfThought();\n\n return (\n <Collapsible open={isOpen}>\n <CollapsibleContent\n className={cn(\n \"mt-element space-y-field-sm\",\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 {children}\n </CollapsibleContent>\n </Collapsible>\n );\n }\n);\n\nexport type AI_ChainOfThoughtImageProps = ComponentProps<\"div\"> & {\n caption?: string;\n};\n\nexport const AI_ChainOfThoughtImage: React.MemoExoticComponent<(props: AI_ChainOfThoughtImageProps) => React.JSX.Element> = memo(\n ({ className, children, caption, ...props }: AI_ChainOfThoughtImageProps): React.JSX.Element => {\n const { getRecipe } = useUI();\n const insetRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.INSET);\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n return (\n <div className={cn(\"mt-element space-y-item\", className)} {...props}>\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div className={cn(insetRecipe.base, \"relative flex max-h-[22rem] items-center justify-center overflow-hidden rounded-lg p-card-sm\")}>\n {children}\n </div>\n </Surface>\n {caption && <p className={cn(descRecipe.base, \"text-xs\")}>{caption}</p>}\n </div>\n );\n }\n);\n\nAI_ChainOfThought.displayName = \"AI_ChainOfThought\";\nAI_ChainOfThoughtHeader.displayName = \"AI_ChainOfThoughtHeader\";\nAI_ChainOfThoughtStep.displayName = \"AI_ChainOfThoughtStep\";\nAI_ChainOfThoughtSearchResults.displayName = \"AI_ChainOfThoughtSearchResults\";\nAI_ChainOfThoughtSearchResult.displayName = \"AI_ChainOfThoughtSearchResult\";\nAI_ChainOfThoughtContent.displayName = \"AI_ChainOfThoughtContent\";\nAI_ChainOfThoughtImage.displayName = \"AI_ChainOfThoughtImage\";\n"]}
1
+ {"version":3,"file":"chain-of-thought.js","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/chain-of-thought.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport type { AI_ChainOfThoughtCompound } from '@wildo-ai/saas-frontend-lib';\nimport * as React from \"react\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport {\n Badge,\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n cn,\n useIconRegistry,\n StandardIconReference,\n useI18n,\n useUI,\n Surface,\n createCompoundPreset,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { FrontendComponentType, SurfaceVariant, TypographyVariant, UIBehavior } from \"@wildo-ai/presets-components-models\";\nimport type { ComponentProps, ReactNode, ReactElement } from \"react\";\nimport { createContext, memo, useContext, useMemo } from \"react\";\n\ntype ChainOfThoughtContextValue = {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n};\n\nconst ChainOfThoughtContext = createContext<ChainOfThoughtContextValue | null>(\n null\n);\n\nconst useChainOfThought = () => {\n const context = useContext(ChainOfThoughtContext);\n if (!context) {\n throw new Error(\n \"ChainOfThought components must be used within ChainOfThought\"\n );\n }\n return context;\n};\n\nexport type AI_ChainOfThoughtProps = ComponentProps<\"div\"> & {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\n\nexport const AI_ChainOfThought: React.MemoExoticComponent<(props: AI_ChainOfThoughtProps) => React.JSX.Element> = memo(\n ({\n className,\n open,\n defaultOpen = false,\n onOpenChange,\n children,\n ...props\n }: AI_ChainOfThoughtProps): React.JSX.Element => {\n const [isOpen, setIsOpen] = useControllableState({\n prop: open,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const chainOfThoughtContext = useMemo(\n () => ({ isOpen, setIsOpen }),\n [isOpen, setIsOpen]\n );\n\n return (\n <ChainOfThoughtContext.Provider value={chainOfThoughtContext}>\n <div\n className={cn(\"not-prose max-w-prose space-y-field\", className)}\n {...props}\n >\n {children}\n </div>\n </ChainOfThoughtContext.Provider>\n );\n }\n);\n\nexport type AI_ChainOfThoughtHeaderProps = ComponentProps<\n typeof CollapsibleTrigger\n>;\n\nexport const AI_ChainOfThoughtHeader: React.MemoExoticComponent<(props: AI_ChainOfThoughtHeaderProps) => React.JSX.Element | null> = memo(\n ({ className, children, ...props }: AI_ChainOfThoughtHeaderProps): React.JSX.Element | null => {\n const { isOpen, setIsOpen } = useChainOfThought();\n const { renderIcon } = useIconRegistry();\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_AI_CHAIN_OF_THOUGHT });\n const { getRecipe } = useUI();\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n if (!isReady) return null;\n\n return (\n <Collapsible onOpenChange={setIsOpen} open={isOpen}>\n <CollapsibleTrigger\n className={cn(\n descRecipe.base,\n \"flex w-full items-center gap-element text-sm transition-colors hover:text-foreground\",\n className\n )}\n {...props}\n >\n {renderIcon(StandardIconReference.BRAIN, { className: \"size-4\" })}\n <span className=\"flex-1 text-start\">\n {children ?? tComponent(FrontendComponentType.LOW_LEVEL_AI_CHAIN_OF_THOUGHT, 'toggleChainOfThought')}\n </span>\n {renderIcon(StandardIconReference.CHEVRON_DOWN, {\n className: cn(\n \"size-4 transition-transform\",\n isOpen ? \"rotate-180\" : \"rotate-0\"\n )\n })}\n </CollapsibleTrigger>\n </Collapsible>\n );\n }\n);\n\nexport type AI_ChainOfThoughtStepProps = ComponentProps<\"div\"> & {\n icon?: ReactElement;\n label: ReactNode;\n description?: ReactNode;\n status?: \"complete\" | \"active\" | \"pending\";\n};\n\nexport const AI_ChainOfThoughtStep: React.MemoExoticComponent<(props: AI_ChainOfThoughtStepProps) => React.JSX.Element> = memo(\n ({\n className,\n icon,\n label,\n description,\n status = \"complete\",\n children,\n ...props\n }: AI_ChainOfThoughtStepProps): React.JSX.Element => {\n const { renderIcon } = useIconRegistry();\n const { getRecipe } = useUI();\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n const statusStyles = {\n complete: descRecipe.base,\n active: \"text-foreground\",\n pending: \"text-muted-foreground/50\",\n };\n\n const iconElement = icon ?? renderIcon(StandardIconReference.DOT, { className: \"size-4\" });\n\n return (\n <div\n className={cn(\n \"flex gap-element text-sm\",\n statusStyles[status],\n \"fade-in-0 slide-in-from-top-2 animate-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative mt-0.5\">\n {iconElement}\n <div className=\"-mx-px absolute top-7 bottom-0 left-1/2 w-px bg-border\" />\n </div>\n <div className=\"flex-1 space-y-item\">\n <div>{label}</div>\n {description && (\n <div className={cn(descRecipe.base, \"text-xs\")}>{description}</div>\n )}\n {children}\n </div>\n </div>\n );\n }\n);\n\nexport type AI_ChainOfThoughtSearchResultsProps = ComponentProps<\"div\">;\n\nexport const AI_ChainOfThoughtSearchResults: React.MemoExoticComponent<(props: AI_ChainOfThoughtSearchResultsProps) => React.JSX.Element> = memo(\n ({ className, ...props }: AI_ChainOfThoughtSearchResultsProps): React.JSX.Element => (\n <div className={cn(\"flex items-center gap-element\", className)} {...props} />\n )\n);\n\nexport type AI_ChainOfThoughtSearchResultProps = ComponentProps<typeof Badge>;\n\nexport const AI_ChainOfThoughtSearchResult: React.MemoExoticComponent<(props: AI_ChainOfThoughtSearchResultProps) => React.JSX.Element> = memo(\n ({ className, children, ...props }: AI_ChainOfThoughtSearchResultProps): React.JSX.Element => (\n <Badge\n {...({\n className: cn(\"gap-item-xs px-card-sm py-item-xs font-normal text-xs\", className),\n variant: \"secondary\" as const,\n ...props,\n } as React.ComponentProps<typeof Badge>)}\n >\n {children}\n </Badge>\n )\n);\n\nexport type AI_ChainOfThoughtContentProps = ComponentProps<\n typeof CollapsibleContent\n>;\n\nexport const AI_ChainOfThoughtContent: React.MemoExoticComponent<(props: AI_ChainOfThoughtContentProps) => React.JSX.Element> = memo(\n ({ className, children, ...props }: AI_ChainOfThoughtContentProps): React.JSX.Element => {\n const { isOpen } = useChainOfThought();\n\n return (\n <Collapsible open={isOpen}>\n <CollapsibleContent\n className={cn(\n \"mt-element space-y-field-sm\",\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 {children}\n </CollapsibleContent>\n </Collapsible>\n );\n }\n);\n\nexport type AI_ChainOfThoughtImageProps = ComponentProps<\"div\"> & {\n caption?: string;\n};\n\nexport const AI_ChainOfThoughtImage: React.MemoExoticComponent<(props: AI_ChainOfThoughtImageProps) => React.JSX.Element> = memo(\n ({ className, children, caption, ...props }: AI_ChainOfThoughtImageProps): React.JSX.Element => {\n const { getRecipe } = useUI();\n const insetRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.INSET);\n const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n\n return (\n <div className={cn(\"mt-element space-y-item\", className)} {...props}>\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div className={cn(insetRecipe.base, \"relative flex max-h-[22rem] items-center justify-center overflow-hidden rounded-lg p-card-sm\")}>\n {children}\n </div>\n </Surface>\n {caption && <p className={cn(descRecipe.base, \"text-xs\")}>{caption}</p>}\n </div>\n );\n }\n);\n\nAI_ChainOfThought.displayName = \"AI_ChainOfThought\";\nAI_ChainOfThoughtHeader.displayName = \"AI_ChainOfThoughtHeader\";\nAI_ChainOfThoughtStep.displayName = \"AI_ChainOfThoughtStep\";\nAI_ChainOfThoughtSearchResults.displayName = \"AI_ChainOfThoughtSearchResults\";\nAI_ChainOfThoughtSearchResult.displayName = \"AI_ChainOfThoughtSearchResult\";\nAI_ChainOfThoughtContent.displayName = \"AI_ChainOfThoughtContent\";\nAI_ChainOfThoughtImage.displayName = \"AI_ChainOfThoughtImage\";\n\n/**\n * The compound the registry serves for `LOW_LEVEL_AI_CHAIN_OF_THOUGHT` — the root with every part\n * attached, so an application's `AI_ChainOfThoughtStep` resolves to this preset's step (#1328).\n */\nexport const AI_ChainOfThoughtCompoundPreset: AI_ChainOfThoughtCompound = createCompoundPreset<AI_ChainOfThoughtCompound>(\n AI_ChainOfThought as unknown as (props: AI_ChainOfThoughtProps) => React.JSX.Element,\n {\n Header: AI_ChainOfThoughtHeader as unknown as React.FC<AI_ChainOfThoughtHeaderProps>,\n Step: AI_ChainOfThoughtStep as unknown as React.FC<AI_ChainOfThoughtStepProps>,\n SearchResults: AI_ChainOfThoughtSearchResults as unknown as React.FC<AI_ChainOfThoughtSearchResultsProps>,\n SearchResult: AI_ChainOfThoughtSearchResult as unknown as React.FC<AI_ChainOfThoughtSearchResultProps>,\n Content: AI_ChainOfThoughtContent as unknown as React.FC<AI_ChainOfThoughtContentProps>,\n Image: AI_ChainOfThoughtImage as unknown as React.FC<AI_ChainOfThoughtImageProps>,\n },\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"chain-of-thought.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/trace/chain-of-thought.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM1I,eAAO,MAAM,8BAA8B,EAAE,mBAAmB,EAE/D,CAAC"}
1
+ {"version":3,"file":"chain-of-thought.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/chain-of-thought.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM1I,eAAO,MAAM,8BAA8B,EAAE,mBAAmB,EAE/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/trace/checkpoint.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,MAAM,EAUP,MAAM,6BAA6B,CAAC;AAIrC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEhE,eAAO,MAAM,aAAa,GAAI,mCAI3B,kBAAkB,KAAG,KAAK,CAAC,GAAG,CAAC,OAmBjC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG;IACrE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,mCAI/B,sBAAsB,KAAG,KAAK,CAAC,GAAG,CAAC,OAQrC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,2DAOlC,yBAAyB,KAAG,KAAK,CAAC,GAAG,CAAC,OAgBtC,CAAC"}
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/checkpoint.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,MAAM,EAUP,MAAM,6BAA6B,CAAC;AAIrC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEhE,eAAO,MAAM,aAAa,GAAI,mCAI3B,kBAAkB,KAAG,KAAK,CAAC,GAAG,CAAC,OAmBjC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG;IACrE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,mCAI/B,sBAAsB,KAAG,KAAK,CAAC,GAAG,CAAC,OAQrC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,2DAOlC,yBAAyB,KAAG,KAAK,CAAC,GAAG,CAAC,OAgBtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/trace/checkpoint.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":"checkpoint.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/checkpoint.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":"inline-citation.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/trace/inline-citation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inline-citation.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/inline-citation.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inline-citation.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/trace/inline-citation.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM1I,eAAO,MAAM,8BAA8B,EAAE,mBAAmB,EAI/D,CAAC"}
1
+ {"version":3,"file":"inline-citation.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/inline-citation.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM1I,eAAO,MAAM,8BAA8B,EAAE,mBAAmB,EAI/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/trace/plan.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,UAAU,EACV,WAAW,EACX,eAAe,EAEf,UAAU,EACV,SAAS,EACT,WAAW,EAEX,kBAAkB,EAOnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAiB5C,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,GAAG;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAeF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;AAUnE,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,cAAc,CAAC,OAAO,SAAS,CAAC,EAChC,UAAU,CACX,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAYF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,cAAc,CAAC,OAAO,eAAe,CAAC,EACtC,UAAU,CACX,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAoBF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;AAMnE,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAQrE,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAMvD,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAwB5E,eAAO,MAAM,OAAO,iBAQlB,CAAC"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/plan.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,UAAU,EACV,WAAW,EACX,eAAe,EAEf,UAAU,EACV,SAAS,EACT,WAAW,EAEX,kBAAkB,EAOnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAiB5C,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,GAAG;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAeF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;AAUnE,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,cAAc,CAAC,OAAO,SAAS,CAAC,EAChC,UAAU,CACX,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAYF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,cAAc,CAAC,OAAO,eAAe,CAAC,EACtC,UAAU,CACX,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAoBF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;AAMnE,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAQrE,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAMvD,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAwB5E,eAAO,MAAM,OAAO,iBAQlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/trace/plan.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM1I,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAErD,CAAC"}
1
+ {"version":3,"file":"plan.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/plan.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM1I,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAErD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reasoning.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/trace/reasoning.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAQnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAuB5C,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,GAAG;IACnE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAwEF,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAkDjF,MAAM,MAAM,wBAAwB,GAAG,cAAc,CACnD,OAAO,kBAAkB,CAC1B,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA2BF,eAAO,MAAM,YAAY,sBAGvB,CAAC"}
1
+ {"version":3,"file":"reasoning.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/reasoning.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAQnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAuB5C,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,GAAG;IACnE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAwEF,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAkDjF,MAAM,MAAM,wBAAwB,GAAG,cAAc,CACnD,OAAO,kBAAkB,CAC1B,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA2BF,eAAO,MAAM,YAAY,sBAGvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reasoning.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ai-elements/trace/reasoning.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,yBAAyB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"reasoning.labels.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ai-elements/trace/reasoning.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,yBAAyB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { type AppLayoutPreset_ConsentGate_DefaultProps } from '@wildo-ai/saas-frontend-lib';
3
+ /**
4
+ * Default rendering of the application-tier consent gate (#534 / #453).
5
+ *
6
+ * The wrapper has already decided WHETHER and HOW the gate shows (`AppLayout_ConsentGate`); this preset
7
+ * only draws the two surfaces.
8
+ *
9
+ * - **Required** — a full panel in place of the whole application shell, which the wrapper withholds. It names each purpose the operator requires, in
10
+ * the vocabulary's own words, quotes the operator's description of what it gates, and offers exactly
11
+ * two ways forward: agree, or sign out. Any optional purpose is asked in the same panel, unticked. Nothing here can let the person past without agreeing; the
12
+ * wrapper does not render the application while this is shown.
13
+ * - **Prompt** — a fixed panel over the application, one box per optional purpose, NONE ticked by default.
14
+ * A pre-ticked box is not a choice. "Decline all" is a first-class action and is recorded as a
15
+ * decision, so the prompt does not return; closing without deciding is deliberately not offered,
16
+ * because it would leave the question open forever and still read as an answer.
17
+ *
18
+ * Purpose names are the words of the `ConsentPurpose` vocabulary (`system_enums.ConsentPurpose.<value>`),
19
+ * reached through the field that stores them (`privacy.consentedPurposes`, which declares that vocabulary),
20
+ * so the gate and the preferences page cannot word a purpose differently.
21
+ */
22
+ export declare function AppLayoutPreset_ConsentGate_Default({ gate }: AppLayoutPreset_ConsentGate_DefaultProps): React.JSX.Element | null;
23
+ //# sourceMappingURL=app-layout-consent-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-layout-consent-gate.d.ts","sourceRoot":"","sources":["../../../../../src/components/app/app-layout-consent-gate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAG/C,OAAO,EAaL,KAAK,wCAAwC,EAC9C,MAAM,6BAA6B,CAAC;AAgDrC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mCAAmC,CAAC,EAAE,IAAI,EAAE,EAAE,wCAAwC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAgShI"}
@@ -0,0 +1,133 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId, useState } from 'react';
3
+ import { z } from 'zod';
4
+ import { Alert, AlertDescription, Button, ButtonVariants_Variant, Checkbox, ConsentGateStatus, Link, Surface, cn, useApplication, useI18n, useUI, } from '@wildo-ai/saas-frontend-lib';
5
+ import { ConsentPurpose, CoreResourceType, PUBLIC_GOVERNED_DOCUMENT_REFS, PUBLIC_GOVERNED_DOCUMENT_ROUTE_PATHS, UserPrivacySchema, requiresApprovedGovernedDocuments, resolveInForcePublicDocument, } from '@wildo-ai/saas-models';
6
+ import { getZodObjectShape } from '@wildo-ai/zod-decorators';
7
+ import { AppLayoutsConsentGateLabel, FrontendComponentType, SurfaceVariant, TypographyVariant, UIBehavior, } from '@wildo-ai/presets-components-models';
8
+ const CT = FrontendComponentType.APP_LAYOUTS_CONSENT_GATE;
9
+ /**
10
+ * The self-preferences field that stores granted purposes. Its schema is handed to the enum-word lookup
11
+ * because a value is worded only through the enum its FIELD declares (#966). That field declares
12
+ * `.systemEnum('ConsentPurpose')`, so the lookup reads `system_enums.ConsentPurpose.<value>` — the bundle
13
+ * this gate loads (`keys: ['system_enums']`) and the same words the preferences page shows for the field.
14
+ */
15
+ const CONSENTED_PURPOSES_FIELD_SCHEMA = getZodObjectShape(UserPrivacySchema).consentedPurposes;
16
+ /** A purpose's tick box: a statement a person either makes or does not. */
17
+ const PURPOSE_CHOICE_SCHEMA = z.boolean();
18
+ /**
19
+ * What each purpose MEANS for the person, beside its name.
20
+ *
21
+ * The name answers *what is it called* and comes from the `ConsentPurpose` vocabulary; this answers
22
+ * *what will happen to me*, and without it the choice is not an informed one — "Analytics" beside a
23
+ * tick box tells a reader nothing they can decide on. Every specialized consent platform pairs the
24
+ * two for exactly this reason, and this panel showed only the first half.
25
+ *
26
+ * TOTAL over the vocabulary by its type: a purpose added to `ConsentPurpose` is a compile error here
27
+ * rather than a row that silently renders a name and no explanation.
28
+ */
29
+ const PURPOSE_DESCRIPTION_LABELS = Object.freeze({
30
+ [ConsentPurpose.ANALYTICS]: AppLayoutsConsentGateLabel.PURPOSE_DESCRIPTION_ANALYTICS,
31
+ [ConsentPurpose.MARKETING]: AppLayoutsConsentGateLabel.PURPOSE_DESCRIPTION_MARKETING,
32
+ });
33
+ /**
34
+ * Default rendering of the application-tier consent gate (#534 / #453).
35
+ *
36
+ * The wrapper has already decided WHETHER and HOW the gate shows (`AppLayout_ConsentGate`); this preset
37
+ * only draws the two surfaces.
38
+ *
39
+ * - **Required** — a full panel in place of the whole application shell, which the wrapper withholds. It names each purpose the operator requires, in
40
+ * the vocabulary's own words, quotes the operator's description of what it gates, and offers exactly
41
+ * two ways forward: agree, or sign out. Any optional purpose is asked in the same panel, unticked. Nothing here can let the person past without agreeing; the
42
+ * wrapper does not render the application while this is shown.
43
+ * - **Prompt** — a fixed panel over the application, one box per optional purpose, NONE ticked by default.
44
+ * A pre-ticked box is not a choice. "Decline all" is a first-class action and is recorded as a
45
+ * decision, so the prompt does not return; closing without deciding is deliberately not offered,
46
+ * because it would leave the question open forever and still read as an answer.
47
+ *
48
+ * Purpose names are the words of the `ConsentPurpose` vocabulary (`system_enums.ConsentPurpose.<value>`),
49
+ * reached through the field that stores them (`privacy.consentedPurposes`, which declares that vocabulary),
50
+ * so the gate and the preferences page cannot word a purpose differently.
51
+ */
52
+ export function AppLayoutPreset_ConsentGate_Default({ gate }) {
53
+ const { tComponent, tResourceFieldEnumValue, isReady } = useI18n({ component: CT, keys: ['system_enums'] });
54
+ const { appConfig } = useApplication();
55
+ const { getRecipe } = useUI();
56
+ const heading = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.HEADING);
57
+ const description = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
58
+ const headingId = useId();
59
+ const [selected, setSelected] = useState(() => gate.grantedPurposes.filter((purpose) => gate.optionalPurposes.includes(purpose)));
60
+ if (!isReady)
61
+ return null;
62
+ const label = (key) => tComponent(CT, key);
63
+ const purposeName = (purpose) => tResourceFieldEnumValue(CoreResourceType.USER_SELF_PREFERENCES, 'privacy.consentedPurposes', purpose, CONSENTED_PURPOSES_FIELD_SCHEMA);
64
+ const saveFailed = gate.saveFailed && (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: label(AppLayoutsConsentGateLabel.SAVE_FAILED) }) }));
65
+ const offeredOptional = gate.optionalPurposes;
66
+ const toggle = (purpose, checked) => {
67
+ setSelected((current) => (checked ? [...current.filter((entry) => entry !== purpose), purpose] : current.filter((entry) => entry !== purpose)));
68
+ };
69
+ /*
70
+ * One row per purpose: its NAME, what agreeing to it MEANS for this person, and the control —
71
+ * the shape every specialized consent platform converged on, and the half that was missing. A tick
72
+ * box labelled "Analytics" is a choice nobody can make informedly, and an informed choice is the
73
+ * whole of what makes consent valid.
74
+ *
75
+ * The ALWAYS-ACTIVE row comes first and carries no control. It is not a `ConsentPurpose` and must
76
+ * never become one — the vocabulary is what a person DECIDES — but a panel that lists only the
77
+ * optional purposes leaves a reader unable to see the whole picture, which is exactly what they
78
+ * opened it for.
79
+ *
80
+ * ## Every row has the SAME shape, including the one that cannot be changed
81
+ *
82
+ * A two-column grid: the control, then the name on its line, then the explanation beneath the name.
83
+ * The always-active row carries a real checkbox — CHECKED and DISABLED — rather than a text status
84
+ * beside the name.
85
+ *
86
+ * That reverses an earlier reading of this panel, and the reversal is the point. The argument for a
87
+ * status was that a disabled control invites a click that cannot work; the argument against it is
88
+ * stronger and is what every specialized consent platform does: a person scanning the list reads
89
+ * DOWN the column of controls, and a row whose control is missing does not read as "cannot be
90
+ * changed", it reads as a row that was forgotten. A checked, disabled box says the same thing in
91
+ * the vocabulary the rest of the list is already using, and assistive technology announces
92
+ * "checked, unavailable" without needing any extra words.
93
+ */
94
+ const purposeRow = (key, name, explanation, control, interactive) => {
95
+ // A wrapping <label> names the box for assistive technology and makes the words clickable, without
96
+ // the control having to accept an id. `col-start-2` puts the explanation under the NAME rather
97
+ // than under the control, which is what keeps the two-line row scannable.
98
+ const Row = interactive ? 'label' : 'div';
99
+ return (_jsxs(Row, { className: cn('grid grid-cols-[auto_1fr] items-center gap-x-element-sm px-element py-element-sm', interactive && 'cursor-pointer'), children: [control, _jsx("span", { className: "font-medium", children: name }), _jsx("span", { className: cn(description.base, 'col-start-2 text-xs'), children: explanation })] }, key));
100
+ };
101
+ const purposeRows = offeredOptional.length > 0 && (_jsxs("div", { className: "flex flex-col divide-y divide-border overflow-hidden rounded-md border border-border", children: [purposeRow('essential', label(AppLayoutsConsentGateLabel.ESSENTIAL_TITLE), label(AppLayoutsConsentGateLabel.ESSENTIAL_DESCRIPTION), _jsx(Checkbox, { name: "consent-purpose-essential", schema: PURPOSE_CHOICE_SCHEMA, checked: true, disabled: true }), false), offeredOptional.map((purpose) => purposeRow(purpose, purposeName(purpose), label(PURPOSE_DESCRIPTION_LABELS[purpose]), _jsx(Checkbox, { name: `consent-purpose-${purpose}`, schema: PURPOSE_CHOICE_SCHEMA, checked: selected.includes(purpose), disabled: gate.isSaving, onCheckedChange: (checked) => toggle(purpose, checked) }), true))] }));
102
+ /*
103
+ * The application's own privacy notice, when it serves one — resolved through the same function the
104
+ * public page uses, so the panel never offers a link to a document that is not in force. A consent
105
+ * surface is required to say where the full explanation is; a link to a page that answers
106
+ * "unavailable" is worse than no link, which is why this is conditional rather than always drawn.
107
+ */
108
+ const privacyNoticeIsServed = resolveInForcePublicDocument(appConfig.compliance?.publicDocuments ?? [], PUBLIC_GOVERNED_DOCUMENT_REFS.PRIVACY_NOTICE, new Date().toISOString(),
109
+ // The page's own gate (#1565), so the link is drawn exactly when the page would show the notice.
110
+ { requireApproved: requiresApprovedGovernedDocuments(appConfig.compliance) }) !== undefined;
111
+ const privacyNoticeLink = privacyNoticeIsServed && (_jsx(Link, { href: PUBLIC_GOVERNED_DOCUMENT_ROUTE_PATHS[PUBLIC_GOVERNED_DOCUMENT_REFS.PRIVACY_NOTICE], external: true, target: "_blank", rel: "noreferrer", className: "text-sm", children: label(AppLayoutsConsentGateLabel.PRIVACY_NOTICE_LINK) }));
112
+ if (gate.status === ConsentGateStatus.REQUIRED) {
113
+ // Optional purposes are asked HERE too, in the same decision. Agreeing to the required purposes
114
+ // records a decision instant, so a separate prompt afterwards would never appear — and a person
115
+ // would have been asked about the purposes the operator needs but never about the ones it merely uses.
116
+ const required = gate.missingRequiredPurposes;
117
+ // The panel stands in for the WHOLE shell, so no zone's scroll container is around it and the page itself
118
+ // does not scroll (`html, body { overflow: hidden }`). Its own scroll box is what keeps agree and sign-out —
119
+ // the only ways forward — reachable on a short viewport or under a long operator description.
120
+ return (_jsx("div", { className: "h-dvh overflow-y-auto", children: _jsx(Surface, { asChild: true, emitPolicyVars: false, variant: SurfaceVariant.BASE, children: _jsxs("section", { "data-slot": "consent-gate-required", "aria-labelledby": headingId, "aria-busy": gate.isSaving, className: "mx-auto my-section flex max-w-prose flex-col gap-card p-card", children: [_jsx("h1", { id: headingId, className: cn(heading.base, heading.sizes?.lg), children: label(AppLayoutsConsentGateLabel.REQUIRED_TITLE) }), _jsx("p", { className: description.base, children: label(AppLayoutsConsentGateLabel.REQUIRED_DESCRIPTION) }), _jsx("ul", { className: "flex list-disc flex-col gap-element pl-6", children: gate.missingRequiredPurposes.map((purpose) => (_jsxs("li", { className: "flex flex-col gap-element-sm", children: [_jsx("span", { className: "font-medium", children: purposeName(purpose) }), _jsx("span", { className: cn(description.base, 'text-xs'), children: label(PURPOSE_DESCRIPTION_LABELS[purpose]) })] }, purpose))) }), gate.gatedProcessing && (_jsxs("div", { className: "flex flex-col gap-element-sm", children: [_jsx("p", { className: cn(description.base, 'font-medium'), children: label(AppLayoutsConsentGateLabel.GATED_PROCESSING) }), _jsx("p", { children: gate.gatedProcessing })] })), purposeRows && (_jsxs("div", { className: "flex flex-col gap-element-sm", children: [_jsx("p", { className: description.base, children: label(AppLayoutsConsentGateLabel.PROMPT_DESCRIPTION) }), purposeRows] })), privacyNoticeLink, saveFailed, _jsxs("div", { className: "flex flex-wrap justify-end gap-element", children: [_jsx(Button, { variant: ButtonVariants_Variant.OUTLINE, disabled: gate.isSaving, onClick: gate.signOut, children: label(AppLayoutsConsentGateLabel.SIGN_OUT) }), _jsx(Button, { variant: ButtonVariants_Variant.OUTLINE, disabled: gate.isSaving, onClick: () => void gate.decide([...required, ...offeredOptional], [...required, ...selected]), children: label(offeredOptional.length > 0 ? AppLayoutsConsentGateLabel.SAVE_CHOICE : AppLayoutsConsentGateLabel.GRANT_ALL) })] })] }) }) }));
121
+ }
122
+ if (gate.status !== ConsentGateStatus.PROMPT)
123
+ return null;
124
+ const offered = offeredOptional;
125
+ return (_jsx(Surface, { asChild: true, emitPolicyVars: false, variant: SurfaceVariant.BASE, children: _jsxs("section", { "data-slot": "consent-gate-prompt", "aria-labelledby": headingId, "aria-busy": gate.isSaving,
126
+ /*
127
+ * Bottom-RIGHT corner from `sm` up, full width below it. `inset-x-0` keeps the phone case a
128
+ * bar — a corner card on a 360px viewport is just a cramped bar with worse margins — and the
129
+ * `sm:` overrides release the left edge so it hugs the right on anything larger.
130
+ */
131
+ className: "fixed inset-x-0 bottom-0 z-50 flex max-h-[85dvh] max-w-lg flex-col gap-element-sm p-element shadow-lg sm:bottom-4 sm:left-auto sm:right-4 sm:rounded-lg", children: [_jsx("h2", { id: headingId, className: cn(heading.base, heading.sizes?.md), children: label(AppLayoutsConsentGateLabel.PROMPT_TITLE) }), _jsx("p", { className: description.base, children: label(AppLayoutsConsentGateLabel.PROMPT_DESCRIPTION) }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", children: purposeRows }), saveFailed, _jsxs("div", { className: "flex flex-wrap items-center justify-between gap-element", children: [_jsx("span", { children: privacyNoticeLink }), _jsxs("div", { className: "flex flex-wrap justify-end gap-element", children: [_jsx(Button, { variant: ButtonVariants_Variant.OUTLINE, disabled: gate.isSaving, onClick: () => void gate.decide(offered, []), children: label(AppLayoutsConsentGateLabel.DECLINE_ALL) }), offered.length > 1 && (_jsx(Button, { variant: ButtonVariants_Variant.OUTLINE, disabled: gate.isSaving, onClick: () => void gate.decide(offered, selected), children: label(AppLayoutsConsentGateLabel.SAVE_CHOICE) })), _jsx(Button, { variant: ButtonVariants_Variant.OUTLINE, disabled: gate.isSaving, onClick: () => void gate.decide(offered, offered), children: label(AppLayoutsConsentGateLabel.GRANT_ALL) })] })] })] }) }));
132
+ }
133
+ //# sourceMappingURL=app-layout-consent-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-layout-consent-gate.js","sourceRoot":"","sources":["../../../../../src/components/app/app-layout-consent-gate.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useId, useState } from 'react';\nimport { z } from 'zod';\n\nimport {\n Alert,\n AlertDescription,\n Button,\n ButtonVariants_Variant,\n Checkbox,\n ConsentGateStatus,\n Link,\n Surface,\n cn,\n useApplication,\n useI18n,\n useUI,\n type AppLayoutPreset_ConsentGate_DefaultProps,\n} from '@wildo-ai/saas-frontend-lib';\nimport {\n ConsentPurpose,\n CoreResourceType,\n PUBLIC_GOVERNED_DOCUMENT_REFS,\n PUBLIC_GOVERNED_DOCUMENT_ROUTE_PATHS,\n UserPrivacySchema,\n requiresApprovedGovernedDocuments,\n resolveInForcePublicDocument,\n} from '@wildo-ai/saas-models';\nimport { getZodObjectShape } from '@wildo-ai/zod-decorators';\nimport {\n AppLayoutsConsentGateLabel,\n FrontendComponentType,\n SurfaceVariant,\n TypographyVariant,\n UIBehavior,\n} from '@wildo-ai/presets-components-models';\n\nconst CT = FrontendComponentType.APP_LAYOUTS_CONSENT_GATE;\n\n/**\n * The self-preferences field that stores granted purposes. Its schema is handed to the enum-word lookup\n * because a value is worded only through the enum its FIELD declares (#966). That field declares\n * `.systemEnum('ConsentPurpose')`, so the lookup reads `system_enums.ConsentPurpose.<value>` — the bundle\n * this gate loads (`keys: ['system_enums']`) and the same words the preferences page shows for the field.\n */\nconst CONSENTED_PURPOSES_FIELD_SCHEMA = getZodObjectShape(UserPrivacySchema).consentedPurposes;\n\n/** A purpose's tick box: a statement a person either makes or does not. */\nconst PURPOSE_CHOICE_SCHEMA = z.boolean();\n\n/**\n * What each purpose MEANS for the person, beside its name.\n *\n * The name answers *what is it called* and comes from the `ConsentPurpose` vocabulary; this answers\n * *what will happen to me*, and without it the choice is not an informed one — \"Analytics\" beside a\n * tick box tells a reader nothing they can decide on. Every specialized consent platform pairs the\n * two for exactly this reason, and this panel showed only the first half.\n *\n * TOTAL over the vocabulary by its type: a purpose added to `ConsentPurpose` is a compile error here\n * rather than a row that silently renders a name and no explanation.\n */\nconst PURPOSE_DESCRIPTION_LABELS: Readonly<Record<ConsentPurpose, AppLayoutsConsentGateLabel>> = Object.freeze({\n [ConsentPurpose.ANALYTICS]: AppLayoutsConsentGateLabel.PURPOSE_DESCRIPTION_ANALYTICS,\n [ConsentPurpose.MARKETING]: AppLayoutsConsentGateLabel.PURPOSE_DESCRIPTION_MARKETING,\n});\n\n/**\n * Default rendering of the application-tier consent gate (#534 / #453).\n *\n * The wrapper has already decided WHETHER and HOW the gate shows (`AppLayout_ConsentGate`); this preset\n * only draws the two surfaces.\n *\n * - **Required** — a full panel in place of the whole application shell, which the wrapper withholds. It names each purpose the operator requires, in\n * the vocabulary's own words, quotes the operator's description of what it gates, and offers exactly\n * two ways forward: agree, or sign out. Any optional purpose is asked in the same panel, unticked. Nothing here can let the person past without agreeing; the\n * wrapper does not render the application while this is shown.\n * - **Prompt** — a fixed panel over the application, one box per optional purpose, NONE ticked by default.\n * A pre-ticked box is not a choice. \"Decline all\" is a first-class action and is recorded as a\n * decision, so the prompt does not return; closing without deciding is deliberately not offered,\n * because it would leave the question open forever and still read as an answer.\n *\n * Purpose names are the words of the `ConsentPurpose` vocabulary (`system_enums.ConsentPurpose.<value>`),\n * reached through the field that stores them (`privacy.consentedPurposes`, which declares that vocabulary),\n * so the gate and the preferences page cannot word a purpose differently.\n */\nexport function AppLayoutPreset_ConsentGate_Default({ gate }: AppLayoutPreset_ConsentGate_DefaultProps): React.JSX.Element | null {\n const { tComponent, tResourceFieldEnumValue, isReady } = useI18n({ component: CT, keys: ['system_enums'] });\n const { appConfig } = useApplication();\n const { getRecipe } = useUI();\n const heading = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.HEADING);\n const description = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n const headingId = useId();\n const [selected, setSelected] = useState<ConsentPurpose[]>(() => gate.grantedPurposes.filter((purpose) => gate.optionalPurposes.includes(purpose)));\n\n if (!isReady) return null;\n\n const label = (key: AppLayoutsConsentGateLabel): string => tComponent(CT, key);\n const purposeName = (purpose: ConsentPurpose): string =>\n tResourceFieldEnumValue(CoreResourceType.USER_SELF_PREFERENCES, 'privacy.consentedPurposes', purpose, CONSENTED_PURPOSES_FIELD_SCHEMA);\n const saveFailed = gate.saveFailed && (\n <Alert variant=\"destructive\">\n <AlertDescription>{label(AppLayoutsConsentGateLabel.SAVE_FAILED)}</AlertDescription>\n </Alert>\n );\n\n const offeredOptional = gate.optionalPurposes;\n const toggle = (purpose: ConsentPurpose, checked: boolean): void => {\n setSelected((current) => (checked ? [...current.filter((entry) => entry !== purpose), purpose] : current.filter((entry) => entry !== purpose)));\n };\n /*\n * One row per purpose: its NAME, what agreeing to it MEANS for this person, and the control —\n * the shape every specialized consent platform converged on, and the half that was missing. A tick\n * box labelled \"Analytics\" is a choice nobody can make informedly, and an informed choice is the\n * whole of what makes consent valid.\n *\n * The ALWAYS-ACTIVE row comes first and carries no control. It is not a `ConsentPurpose` and must\n * never become one — the vocabulary is what a person DECIDES — but a panel that lists only the\n * optional purposes leaves a reader unable to see the whole picture, which is exactly what they\n * opened it for.\n *\n * ## Every row has the SAME shape, including the one that cannot be changed\n *\n * A two-column grid: the control, then the name on its line, then the explanation beneath the name.\n * The always-active row carries a real checkbox — CHECKED and DISABLED — rather than a text status\n * beside the name.\n *\n * That reverses an earlier reading of this panel, and the reversal is the point. The argument for a\n * status was that a disabled control invites a click that cannot work; the argument against it is\n * stronger and is what every specialized consent platform does: a person scanning the list reads\n * DOWN the column of controls, and a row whose control is missing does not read as \"cannot be\n * changed\", it reads as a row that was forgotten. A checked, disabled box says the same thing in\n * the vocabulary the rest of the list is already using, and assistive technology announces\n * \"checked, unavailable\" without needing any extra words.\n */\n const purposeRow = (key: string, name: string, explanation: string, control: React.ReactNode, interactive: boolean): React.JSX.Element => {\n // A wrapping <label> names the box for assistive technology and makes the words clickable, without\n // the control having to accept an id. `col-start-2` puts the explanation under the NAME rather\n // than under the control, which is what keeps the two-line row scannable.\n const Row = interactive ? 'label' : 'div';\n return (\n <Row key={key} className={cn('grid grid-cols-[auto_1fr] items-center gap-x-element-sm px-element py-element-sm', interactive && 'cursor-pointer')}>\n {control}\n <span className=\"font-medium\">{name}</span>\n <span className={cn(description.base, 'col-start-2 text-xs')}>{explanation}</span>\n </Row>\n );\n };\n\n const purposeRows = offeredOptional.length > 0 && (\n <div className=\"flex flex-col divide-y divide-border overflow-hidden rounded-md border border-border\">\n {purposeRow(\n 'essential',\n label(AppLayoutsConsentGateLabel.ESSENTIAL_TITLE),\n label(AppLayoutsConsentGateLabel.ESSENTIAL_DESCRIPTION),\n <Checkbox name=\"consent-purpose-essential\" schema={PURPOSE_CHOICE_SCHEMA} checked disabled />,\n false,\n )}\n {offeredOptional.map((purpose) => purposeRow(\n purpose,\n purposeName(purpose),\n label(PURPOSE_DESCRIPTION_LABELS[purpose]),\n <Checkbox\n name={`consent-purpose-${purpose}`}\n schema={PURPOSE_CHOICE_SCHEMA}\n checked={selected.includes(purpose)}\n disabled={gate.isSaving}\n onCheckedChange={(checked) => toggle(purpose, checked)}\n />,\n true,\n ))}\n </div>\n );\n\n /*\n * The application's own privacy notice, when it serves one — resolved through the same function the\n * public page uses, so the panel never offers a link to a document that is not in force. A consent\n * surface is required to say where the full explanation is; a link to a page that answers\n * \"unavailable\" is worse than no link, which is why this is conditional rather than always drawn.\n */\n const privacyNoticeIsServed = resolveInForcePublicDocument(\n appConfig.compliance?.publicDocuments ?? [],\n PUBLIC_GOVERNED_DOCUMENT_REFS.PRIVACY_NOTICE,\n new Date().toISOString(),\n // The page's own gate (#1565), so the link is drawn exactly when the page would show the notice.\n { requireApproved: requiresApprovedGovernedDocuments(appConfig.compliance) },\n ) !== undefined;\n const privacyNoticeLink = privacyNoticeIsServed && (\n <Link\n href={PUBLIC_GOVERNED_DOCUMENT_ROUTE_PATHS[PUBLIC_GOVERNED_DOCUMENT_REFS.PRIVACY_NOTICE]}\n external\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"text-sm\"\n >\n {label(AppLayoutsConsentGateLabel.PRIVACY_NOTICE_LINK)}\n </Link>\n );\n\n if (gate.status === ConsentGateStatus.REQUIRED) {\n // Optional purposes are asked HERE too, in the same decision. Agreeing to the required purposes\n // records a decision instant, so a separate prompt afterwards would never appear — and a person\n // would have been asked about the purposes the operator needs but never about the ones it merely uses.\n const required = gate.missingRequiredPurposes;\n // The panel stands in for the WHOLE shell, so no zone's scroll container is around it and the page itself\n // does not scroll (`html, body { overflow: hidden }`). Its own scroll box is what keeps agree and sign-out —\n // the only ways forward — reachable on a short viewport or under a long operator description.\n return (\n <div className=\"h-dvh overflow-y-auto\">\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.BASE}>\n {/*\n * `data-slot` names the panel for the same reason every other preset carries one: it is how\n * this design system addresses a composed part from outside itself. Here that outside is\n * the accessibility audit (#1385), which must be able to WAIT for the panel before reading\n * it — and the alternatives are worse. A heading's text is whatever the locale says, and a\n * bare `section[aria-labelledby]` matches any landmark the shell happens to render.\n */}\n <section data-slot=\"consent-gate-required\" aria-labelledby={headingId} aria-busy={gate.isSaving} className=\"mx-auto my-section flex max-w-prose flex-col gap-card p-card\">\n <h1 id={headingId} className={cn(heading.base, heading.sizes?.lg)}>{label(AppLayoutsConsentGateLabel.REQUIRED_TITLE)}</h1>\n <p className={description.base}>{label(AppLayoutsConsentGateLabel.REQUIRED_DESCRIPTION)}</p>\n {/*\n * Each required purpose with its EXPLANATION, exactly as the optional rows carry theirs.\n *\n * This list held bare names while the optional purposes below gained a sentence each —\n * which is the wrong way round, and was an invariant applied at one of its two sites. A\n * required purpose is the one a person cannot use the application without granting, so it\n * is the decision with the highest stakes and the one most in need of saying what it means.\n * Consent that is not informed is not consent, and that does not become less true because\n * the operator has made the purpose a condition.\n */}\n <ul className=\"flex list-disc flex-col gap-element pl-6\">\n {gate.missingRequiredPurposes.map((purpose) => (\n <li key={purpose} className=\"flex flex-col gap-element-sm\">\n <span className=\"font-medium\">{purposeName(purpose)}</span>\n <span className={cn(description.base, 'text-xs')}>{label(PURPOSE_DESCRIPTION_LABELS[purpose])}</span>\n </li>\n ))}\n </ul>\n {gate.gatedProcessing && (\n <div className=\"flex flex-col gap-element-sm\">\n <p className={cn(description.base, 'font-medium')}>{label(AppLayoutsConsentGateLabel.GATED_PROCESSING)}</p>\n {/* The operator's own words, from its declaration — authored content, not a label. */}\n <p>{gate.gatedProcessing}</p>\n </div>\n )}\n {purposeRows && (\n <div className=\"flex flex-col gap-element-sm\">\n <p className={description.base}>{label(AppLayoutsConsentGateLabel.PROMPT_DESCRIPTION)}</p>\n {purposeRows}\n </div>\n )}\n {privacyNoticeLink}\n {saveFailed}\n <div className=\"flex flex-wrap justify-end gap-element\">\n <Button variant={ButtonVariants_Variant.OUTLINE} disabled={gate.isSaving} onClick={gate.signOut}>\n {label(AppLayoutsConsentGateLabel.SIGN_OUT)}\n </Button>\n {/*\n * `> 0` here, where the PROMPT panel uses `> 1`, and the two thresholds are right for\n * different reasons rather than one of them being unswept.\n *\n * In PROMPT, SAVE is a THIRD button standing beside allow-none and allow-all; with a\n * single optional purpose it can only repeat one of them, which is what made a reader\n * ask what it was for. HERE it is the ONLY way forward — required purposes cannot be\n * declined, so there is no allow-none, and no second button to compare it against. With\n * one optional purpose the button still commits a CHOICE (the required set, plus that\n * purpose only if it is ticked), so \"save choice\" is what it does and \"allow all\" would\n * be false whenever the box is left unticked.\n */}\n {/*\n * OUTLINE, like its sign-out sibling — the PROMPT panel's equal-weight rule reaches here\n * too, and this panel was an unexamined exception to a rule stated absolutely.\n *\n * The pair is different (agree / sign out rather than accept / reject) and the stakes are\n * higher, not lower: this panel also collects the OPTIONAL purposes, so a filled primary\n * beside a quiet alternative is a nudge applied to a consent decision, which is the thing\n * CNIL fined over. What the person came here to do is read two options and choose; making\n * one of them shout is not neutral, and a panel that has already withheld the whole\n * application does not additionally need emphasis to be noticed.\n */}\n <Button\n variant={ButtonVariants_Variant.OUTLINE}\n disabled={gate.isSaving}\n onClick={() => void gate.decide([...required, ...offeredOptional], [...required, ...selected])}\n >\n {label(offeredOptional.length > 0 ? AppLayoutsConsentGateLabel.SAVE_CHOICE : AppLayoutsConsentGateLabel.GRANT_ALL)}\n </Button>\n </div>\n </section>\n </Surface>\n </div>\n );\n }\n\n if (gate.status !== ConsentGateStatus.PROMPT) return null;\n\n const offered = offeredOptional;\n\n return (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.BASE}>\n <section\n data-slot=\"consent-gate-prompt\"\n aria-labelledby={headingId}\n aria-busy={gate.isSaving}\n /*\n * Bottom-RIGHT corner from `sm` up, full width below it. `inset-x-0` keeps the phone case a\n * bar — a corner card on a 360px viewport is just a cramped bar with worse margins — and the\n * `sm:` overrides release the left edge so it hugs the right on anything larger.\n */\n className=\"fixed inset-x-0 bottom-0 z-50 flex max-h-[85dvh] max-w-lg flex-col gap-element-sm p-element shadow-lg sm:bottom-4 sm:left-auto sm:right-4 sm:rounded-lg\"\n >\n <h2 id={headingId} className={cn(heading.base, heading.sizes?.md)}>{label(AppLayoutsConsentGateLabel.PROMPT_TITLE)}</h2>\n <p className={description.base}>{label(AppLayoutsConsentGateLabel.PROMPT_DESCRIPTION)}</p>\n {/*\n * The purpose rows scroll, the panel does not: `max-h-[85dvh]` on the panel with the rows in\n * a `min-h-0` scroll box keeps the ACTIONS on screen however many purposes there are and\n * however long their explanations. A panel that grows with its content pushes accept and\n * reject off the bottom of a short viewport — a consent surface whose refusal cannot be\n * reached is a refusal that was not offered, whatever the markup says.\n */}\n <div className=\"min-h-0 flex-1 overflow-y-auto\">{purposeRows}</div>\n {saveFailed}\n {/*\n * The notice link shares the ACTIONS' line rather than taking one of its own: it is where the\n * full answer is, not a fourth thing to do, and a row of its own gave it the weight of one.\n * `justify-between` puts it at the leading edge with the actions at the trailing edge, and\n * `flex-wrap` lets it drop above them on a narrow panel rather than squeezing the buttons.\n */}\n <div className=\"flex flex-wrap items-center justify-between gap-element\">\n <span>{privacyNoticeLink}</span>\n <div className=\"flex flex-wrap justify-end gap-element\">\n {/*\n * DECLINE and GRANT carry the SAME variant, and NEITHER is the filled one.\n *\n * Equality is the constraint: refusing was an OUTLINE button beside a filled GRANT, which\n * is the asymmetry regulators treat as a dark pattern — CNIL fined Google and Meta over\n * banners where rejecting was visually subordinate to accepting, on the ground that consent\n * obtained that way is not freely given. So the pair moves together or not at all; making\n * only one of them quiet is the thing that may never happen here.\n *\n * Which variant the PAIR takes is then free, and OUTLINE is the better answer: two filled\n * buttons shouting side by side read as an alert rather than a question, and a consent\n * panel deliberately has no recommended action — the absence of a primary is the honest\n * rendering of \"we are not nudging you either way\".\n */}\n <Button variant={ButtonVariants_Variant.OUTLINE} disabled={gate.isSaving} onClick={() => void gate.decide(offered, [])}>\n {label(AppLayoutsConsentGateLabel.DECLINE_ALL)}\n </Button>\n {/*\n * SAVE appears only when a MIXED choice exists to save — two or more optional purposes.\n *\n * With one purpose the button is unanswerable: \"allow none\" and \"allow all\" already cover\n * the whole space, so a third action beside them describes nothing a person can picture,\n * and they read it as a question rather than an answer. With two or more it is the only\n * control that can express \"this one and not that one\", which is precisely what the boxes\n * above are for.\n *\n * Derived from the offered set rather than declared, so an application that adds a second\n * purpose gets the control with no edit here, and one that removes it loses the control\n * rather than keeping a button that can only repeat its neighbours.\n */}\n {offered.length > 1 && (\n <Button variant={ButtonVariants_Variant.OUTLINE} disabled={gate.isSaving} onClick={() => void gate.decide(offered, selected)}>\n {label(AppLayoutsConsentGateLabel.SAVE_CHOICE)}\n </Button>\n )}\n <Button variant={ButtonVariants_Variant.OUTLINE} disabled={gate.isSaving} onClick={() => void gate.decide(offered, offered)}>\n {label(AppLayoutsConsentGateLabel.GRANT_ALL)}\n </Button>\n </div>\n </div>\n </section>\n </Surface>\n );\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { type AppLayoutPreset_DocumentAcceptanceGate_DefaultProps } from '@wildo-ai/saas-frontend-lib';
3
+ /**
4
+ * Default rendering of the application-tier document acceptance gate (#1258, Step 2).
5
+ *
6
+ * The wrapper has already decided that an acceptance is owed and withholds the whole shell; this preset
7
+ * draws the panel that stands in for it. It offers exactly two ways forward — accept, or sign out — and
8
+ * asks through the SAME acceptance control registration uses, so the three modes, the reading gate and
9
+ * the document links behave identically on both surfaces.
10
+ *
11
+ * Both actions are OUTLINE, for the reason the consent panels give: a filled primary beside a quiet
12
+ * alternative is a nudge applied to an agreement, and a panel that has already withheld the application
13
+ * needs no emphasis to be noticed.
14
+ *
15
+ * `data-slot="document-acceptance-gate"` names it for the accessibility audit, which must wait for it
16
+ * by selector — it cannot be reached by navigating.
17
+ */
18
+ export declare function AppLayoutPreset_DocumentAcceptanceGate_Default({ gate }: AppLayoutPreset_DocumentAcceptanceGate_DefaultProps): React.JSX.Element | null;
19
+ //# sourceMappingURL=app-layout-document-acceptance-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-layout-document-acceptance-gate.d.ts","sourceRoot":"","sources":["../../../../../src/components/app/app-layout-document-acceptance-gate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAC9C,OAAO,EAUL,KAAK,mDAAmD,EACzD,MAAM,6BAA6B,CAAC;AAiCrC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8CAA8C,CAAC,EAAE,IAAI,EAAE,EAAE,mDAAmD,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA8CtJ"}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId, useMemo } from 'react';
3
+ import { Alert, AlertDescription, Button, ButtonVariants_Variant, GovernedDocumentAcceptanceControl, Surface, cn, useI18n, useUI, } from '@wildo-ai/saas-frontend-lib';
4
+ import { GovernedDocumentAcceptanceOwedReason } from '@wildo-ai/saas-models';
5
+ import { AppLayoutsDocumentAcceptanceGateLabel, FrontendComponentType, SurfaceVariant, TypographyVariant, UIBehavior, } from '@wildo-ai/presets-components-models';
6
+ const CT = FrontendComponentType.APP_LAYOUTS_DOCUMENT_ACCEPTANCE_GATE;
7
+ /** The acceptance control's own words live in this namespace (see `GovernedDocumentAcceptanceControl`). */
8
+ const ACCEPTANCE_WORDS = FrontendComponentType.PUBLIC_LAYOUTS_USER_REGISTER;
9
+ /**
10
+ * The heading and description for each reason a person is asked.
11
+ *
12
+ * TOTAL over `GovernedDocumentAcceptanceOwedReason` by its type: a reason added tomorrow is a compile
13
+ * error here rather than a panel that silently borrows the wrong sentence. "We have never recorded your
14
+ * agreement" and "the terms you agreed to have changed" are different statements, and one generic
15
+ * sentence would be false for somebody.
16
+ */
17
+ const REASON_WORDS = Object.freeze({
18
+ [GovernedDocumentAcceptanceOwedReason.NEVER_ACCEPTED]: {
19
+ title: AppLayoutsDocumentAcceptanceGateLabel.NEVER_ACCEPTED_TITLE,
20
+ description: AppLayoutsDocumentAcceptanceGateLabel.NEVER_ACCEPTED_DESCRIPTION,
21
+ },
22
+ [GovernedDocumentAcceptanceOwedReason.MATERIALLY_CHANGED]: {
23
+ title: AppLayoutsDocumentAcceptanceGateLabel.MATERIALLY_CHANGED_TITLE,
24
+ description: AppLayoutsDocumentAcceptanceGateLabel.MATERIALLY_CHANGED_DESCRIPTION,
25
+ },
26
+ });
27
+ /**
28
+ * Default rendering of the application-tier document acceptance gate (#1258, Step 2).
29
+ *
30
+ * The wrapper has already decided that an acceptance is owed and withholds the whole shell; this preset
31
+ * draws the panel that stands in for it. It offers exactly two ways forward — accept, or sign out — and
32
+ * asks through the SAME acceptance control registration uses, so the three modes, the reading gate and
33
+ * the document links behave identically on both surfaces.
34
+ *
35
+ * Both actions are OUTLINE, for the reason the consent panels give: a filled primary beside a quiet
36
+ * alternative is a nudge applied to an agreement, and a panel that has already withheld the application
37
+ * needs no emphasis to be noticed.
38
+ *
39
+ * `data-slot="document-acceptance-gate"` names it for the accessibility audit, which must wait for it
40
+ * by selector — it cannot be reached by navigating.
41
+ */
42
+ export function AppLayoutPreset_DocumentAcceptanceGate_Default({ gate }) {
43
+ const components = useMemo(() => [CT, ACCEPTANCE_WORDS], []);
44
+ const { tComponent, isReady } = useI18n({ component: components });
45
+ const { getRecipe } = useUI();
46
+ const heading = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.HEADING);
47
+ const description = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
48
+ const headingId = useId();
49
+ if (!isReady || gate.reason === undefined)
50
+ return null;
51
+ const label = (key) => tComponent(CT, key);
52
+ const acceptanceWord = (key) => tComponent(ACCEPTANCE_WORDS, key);
53
+ const words = REASON_WORDS[gate.reason];
54
+ return (_jsx("div", { className: "h-dvh overflow-y-auto", children: _jsx(Surface, { asChild: true, emitPolicyVars: false, variant: SurfaceVariant.BASE, children: _jsxs("section", { "data-slot": "document-acceptance-gate", "aria-labelledby": headingId, "aria-busy": gate.isSaving, className: "mx-auto my-section flex max-w-prose flex-col gap-card p-card", children: [_jsx("h1", { id: headingId, className: cn(heading.base, heading.sizes?.lg), children: label(words.title) }), _jsx("p", { className: description.base, children: label(words.description) }), _jsx(GovernedDocumentAcceptanceControl, { state: gate.acceptance, t: acceptanceWord, tComponent: tComponent }), gate.saveFailed && (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: label(AppLayoutsDocumentAcceptanceGateLabel.SAVE_FAILED) }) })), _jsxs("div", { className: "flex flex-wrap justify-end gap-element", children: [_jsx(Button, { variant: ButtonVariants_Variant.OUTLINE, disabled: gate.isSaving, onClick: gate.signOut, children: label(AppLayoutsDocumentAcceptanceGateLabel.SIGN_OUT) }), _jsx(Button, { variant: ButtonVariants_Variant.OUTLINE, disabled: gate.isSaving || !gate.canAccept, onClick: () => void gate.accept(), children: label(AppLayoutsDocumentAcceptanceGateLabel.ACCEPT_AND_CONTINUE) })] })] }) }) }));
55
+ }
56
+ //# sourceMappingURL=app-layout-document-acceptance-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-layout-document-acceptance-gate.js","sourceRoot":"","sources":["../../../../../src/components/app/app-layout-document-acceptance-gate.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useId, useMemo } from 'react';\nimport {\n Alert,\n AlertDescription,\n Button,\n ButtonVariants_Variant,\n GovernedDocumentAcceptanceControl,\n Surface,\n cn,\n useI18n,\n useUI,\n type AppLayoutPreset_DocumentAcceptanceGate_DefaultProps,\n} from '@wildo-ai/saas-frontend-lib';\nimport { GovernedDocumentAcceptanceOwedReason } from '@wildo-ai/saas-models';\nimport {\n AppLayoutsDocumentAcceptanceGateLabel,\n FrontendComponentType,\n SurfaceVariant,\n TypographyVariant,\n UIBehavior,\n} from '@wildo-ai/presets-components-models';\n\nconst CT = FrontendComponentType.APP_LAYOUTS_DOCUMENT_ACCEPTANCE_GATE;\n/** The acceptance control's own words live in this namespace (see `GovernedDocumentAcceptanceControl`). */\nconst ACCEPTANCE_WORDS = FrontendComponentType.PUBLIC_LAYOUTS_USER_REGISTER;\n\n/**\n * The heading and description for each reason a person is asked.\n *\n * TOTAL over `GovernedDocumentAcceptanceOwedReason` by its type: a reason added tomorrow is a compile\n * error here rather than a panel that silently borrows the wrong sentence. \"We have never recorded your\n * agreement\" and \"the terms you agreed to have changed\" are different statements, and one generic\n * sentence would be false for somebody.\n */\nconst REASON_WORDS: Readonly<Record<GovernedDocumentAcceptanceOwedReason, { title: AppLayoutsDocumentAcceptanceGateLabel; description: AppLayoutsDocumentAcceptanceGateLabel }>> = Object.freeze({\n [GovernedDocumentAcceptanceOwedReason.NEVER_ACCEPTED]: {\n title: AppLayoutsDocumentAcceptanceGateLabel.NEVER_ACCEPTED_TITLE,\n description: AppLayoutsDocumentAcceptanceGateLabel.NEVER_ACCEPTED_DESCRIPTION,\n },\n [GovernedDocumentAcceptanceOwedReason.MATERIALLY_CHANGED]: {\n title: AppLayoutsDocumentAcceptanceGateLabel.MATERIALLY_CHANGED_TITLE,\n description: AppLayoutsDocumentAcceptanceGateLabel.MATERIALLY_CHANGED_DESCRIPTION,\n },\n});\n\n/**\n * Default rendering of the application-tier document acceptance gate (#1258, Step 2).\n *\n * The wrapper has already decided that an acceptance is owed and withholds the whole shell; this preset\n * draws the panel that stands in for it. It offers exactly two ways forward — accept, or sign out — and\n * asks through the SAME acceptance control registration uses, so the three modes, the reading gate and\n * the document links behave identically on both surfaces.\n *\n * Both actions are OUTLINE, for the reason the consent panels give: a filled primary beside a quiet\n * alternative is a nudge applied to an agreement, and a panel that has already withheld the application\n * needs no emphasis to be noticed.\n *\n * `data-slot=\"document-acceptance-gate\"` names it for the accessibility audit, which must wait for it\n * by selector — it cannot be reached by navigating.\n */\nexport function AppLayoutPreset_DocumentAcceptanceGate_Default({ gate }: AppLayoutPreset_DocumentAcceptanceGate_DefaultProps): React.JSX.Element | null {\n const components = useMemo(() => [CT, ACCEPTANCE_WORDS], []);\n const { tComponent, isReady } = useI18n({ component: components });\n const { getRecipe } = useUI();\n const heading = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.HEADING);\n const description = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);\n const headingId = useId();\n\n if (!isReady || gate.reason === undefined) return null;\n const label = (key: AppLayoutsDocumentAcceptanceGateLabel): string => tComponent(CT, key);\n const acceptanceWord = (key: string): string => tComponent(ACCEPTANCE_WORDS, key);\n const words = REASON_WORDS[gate.reason];\n\n return (\n <div className=\"h-dvh overflow-y-auto\">\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.BASE}>\n <section\n data-slot=\"document-acceptance-gate\"\n aria-labelledby={headingId}\n aria-busy={gate.isSaving}\n className=\"mx-auto my-section flex max-w-prose flex-col gap-card p-card\"\n >\n <h1 id={headingId} className={cn(heading.base, heading.sizes?.lg)}>{label(words.title)}</h1>\n <p className={description.base}>{label(words.description)}</p>\n <GovernedDocumentAcceptanceControl state={gate.acceptance} t={acceptanceWord} tComponent={tComponent} />\n {gate.saveFailed && (\n <Alert variant=\"destructive\">\n <AlertDescription>{label(AppLayoutsDocumentAcceptanceGateLabel.SAVE_FAILED)}</AlertDescription>\n </Alert>\n )}\n <div className=\"flex flex-wrap justify-end gap-element\">\n <Button variant={ButtonVariants_Variant.OUTLINE} disabled={gate.isSaving} onClick={gate.signOut}>\n {label(AppLayoutsDocumentAcceptanceGateLabel.SIGN_OUT)}\n </Button>\n <Button\n variant={ButtonVariants_Variant.OUTLINE}\n disabled={gate.isSaving || !gate.canAccept}\n onClick={() => void gate.accept()}\n >\n {label(AppLayoutsDocumentAcceptanceGateLabel.ACCEPT_AND_CONTINUE)}\n </Button>\n </div>\n </section>\n </Surface>\n </div>\n );\n}\n"]}
@@ -1,4 +1,13 @@
1
1
  import React from 'react';
2
2
  import { AppLayoutPreset_MainContainer_DefaultProps } from '@wildo-ai/saas-frontend-lib';
3
+ /**
4
+ * The default signed-in shell: the regions in a flex arrangement — activity bar and sidebar at the start edge,
5
+ * a column of status bar / menubar / toolbar / content / status bar, the utility panel at the end edge.
6
+ *
7
+ * Composed from the shell building blocks (`AppShellProviders`, `AppShellRegionOutlet`, `AppShellContentOutlet`,
8
+ * `AppShellOverlaysOutlet`, `useAppShellFirstReady`, #1842), so this file decides only the ARRANGEMENT and the
9
+ * shell's own surface; another layout can arrange the same regions differently without copying it. Its rendered
10
+ * DOM is pinned for every layout configuration by `app-layout-main-container.dom-snapshot.test.tsx`.
11
+ */
3
12
  export declare const AppLayoutPreset_MainContainer_Default: ({ children }: AppLayoutPreset_MainContainer_DefaultProps) => React.JSX.Element;
4
13
  //# sourceMappingURL=app-layout-main-container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-layout-main-container.d.ts","sourceRoot":"","sources":["../../../../src/components/app/app-layout-main-container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAGhE,OAAO,EACL,0CAA0C,EAmB3C,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,qCAAqC,GAAI,cAAc,0CAA0C,KAAG,KAAK,CAAC,GAAG,CAAC,OAqH1H,CAAC"}
1
+ {"version":3,"file":"app-layout-main-container.d.ts","sourceRoot":"","sources":["../../../../../src/components/app/app-layout-main-container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EACL,0CAA0C,EAY3C,MAAM,6BAA6B,CAAC;AAErC;;;;;;;;GAQG;AACH,eAAO,MAAM,qCAAqC,GAAI,cAAc,0CAA0C,KAAG,KAAK,CAAC,GAAG,CAAC,OA+E1H,CAAC"}
@@ -1,7 +1,15 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useState } from 'react';
3
- import { HorizontalPlacement, ShellAppearance, SurfaceVariant, VerticalPlacement } from '@wildo-ai/presets-components-models';
4
- import { ApplicationLevel_StatusBar, ApplicationLevel_MenuBar, ApplicationLevel_Toolbar, ApplicationLevel_ActivityBar, ApplicationLevel_QuickActionButton, ApplicationLevel_Sidebar, ApplicationLevel_UtilityPanel, NavigationContentAreas, NavigationOverlays, useAppShellLayout, HostedComponentInteractionsProvider, PortalContainerContext, GuidanceRenderer, LoadingSpinner, NON_CANONICAL_SHELL_SURFACE_POLICY_OVERRIDE, Surface, cn, useUI, } from '@wildo-ai/saas-frontend-lib';
2
+ import { HorizontalPlacement, ShellAppearance, ShellRegion, SurfaceVariant, VerticalPlacement } from '@wildo-ai/presets-components-models';
3
+ import { AppShellContentOutlet, AppShellLoadingState, AppShellOverlaysOutlet, AppShellProviders, AppShellRegionOutlet, useAppShellFirstReady, useAppShellLayout, NON_CANONICAL_SHELL_SURFACE_POLICY_OVERRIDE, Surface, cn, useUI, } from '@wildo-ai/saas-frontend-lib';
4
+ /**
5
+ * The default signed-in shell: the regions in a flex arrangement — activity bar and sidebar at the start edge,
6
+ * a column of status bar / menubar / toolbar / content / status bar, the utility panel at the end edge.
7
+ *
8
+ * Composed from the shell building blocks (`AppShellProviders`, `AppShellRegionOutlet`, `AppShellContentOutlet`,
9
+ * `AppShellOverlaysOutlet`, `useAppShellFirstReady`, #1842), so this file decides only the ARRANGEMENT and the
10
+ * shell's own surface; another layout can arrange the same regions differently without copying it. Its rendered
11
+ * DOM is pinned for every layout configuration by `app-layout-main-container.dom-snapshot.test.tsx`.
12
+ */
5
13
  export const AppLayoutPreset_MainContainer_Default = ({ children }) => {
6
14
  const layoutInfo = useAppShellLayout();
7
15
  const { shellAppearance } = useUI();
@@ -9,31 +17,17 @@ export const AppLayoutPreset_MainContainer_Default = ({ children }) => {
9
17
  // `backgroundLayer` (rendered by UIProvider behind the app) is the single
10
18
  // continuous canvas under sidebar, bars, and content alike.
11
19
  const isContinuousShell = shellAppearance === ShellAppearance.CONTINUOUS;
12
- const [portalContainer, setPortalContainer] = useState(null);
13
- const portalRef = useCallback((node) => {
14
- setPortalContainer(node);
15
- }, []);
16
20
  // ===================================================================
17
21
  // Loading State
18
22
  // ===================================================================
19
- // Latch the FIRST layout-ready flip. `isLayoutReady` derives from config presence
20
- // and can transiently drop after bootstrap (e.g. an org switch reloading config);
21
- // replacing the whole mounted shell with a spinner on such a drop unmounts every
22
- // provider/zone below it and destroys navigation state — the same failure mode
23
- // AppLoadingGate documents. The spinner branch therefore only applies BEFORE the
24
- // shell has ever been ready; later drops keep the shell mounted (per-component
25
- // `has*` flags simply render nothing while config is absent).
26
- const [hasLayoutBeenReady, setHasLayoutBeenReady] = useState(false);
27
- useEffect(() => {
28
- if (layoutInfo.isLayoutReady)
29
- setHasLayoutBeenReady(true);
30
- }, [layoutInfo.isLayoutReady]);
31
- if (!layoutInfo.isLayoutReady && !hasLayoutBeenReady) {
32
- return (_jsx(Surface, { asChild: true, emitPolicyVars: false, variant: SurfaceVariant.SHELL, policyOverride: NON_CANONICAL_SHELL_SURFACE_POLICY_OVERRIDE, children: _jsx("div", { className: "h-screen w-screen bg-background flex items-center justify-center", role: "status", "aria-live": "polite", children: _jsx("div", { className: "text-center", children: _jsx(LoadingSpinner, { size: 32, className: "text-primary mx-auto mb-field", "aria-hidden": "true" }) }) }) }));
33
- }
23
+ // The spinner applies only BEFORE the shell has ever been ready: a later transient drop keeps the shell
24
+ // mounted (see `useAppShellFirstReady` for why a remount there destroys navigation state).
25
+ const hasLayoutBeenReady = useAppShellFirstReady(layoutInfo.isLayoutReady);
26
+ if (!layoutInfo.isLayoutReady && !hasLayoutBeenReady)
27
+ return _jsx(AppShellLoadingState, {});
34
28
  // ===================================================================
35
29
  // Main Layout Rendering - PLACEMENT ONLY
36
30
  // ===================================================================
37
- return (_jsx(PortalContainerContext.Provider, { value: portalContainer, children: _jsx(HostedComponentInteractionsProvider, { children: _jsx(Surface, { asChild: true, emitPolicyVars: false, variant: SurfaceVariant.SHELL, policyOverride: NON_CANONICAL_SHELL_SURFACE_POLICY_OVERRIDE, children: _jsxs("div", { className: cn('h-screen w-screen flex overflow-hidden', isContinuousShell ? 'bg-transparent' : 'bg-background'), children: [layoutInfo.hasActivityBar && (_jsx(ApplicationLevel_ActivityBar, {})), layoutInfo.hasSidebar && layoutInfo.sidebarPlacement === HorizontalPlacement.START && (_jsx(ApplicationLevel_Sidebar, { placement: HorizontalPlacement.START })), layoutInfo.hasUtilityPanel && layoutInfo.utilityPanelPlacement === HorizontalPlacement.START && (_jsx(ApplicationLevel_UtilityPanel, { position: HorizontalPlacement.START })), _jsxs("div", { className: "flex-1 flex flex-col min-w-0 min-h-0", children: [layoutInfo.hasStatusBar && layoutInfo.statusBarPlacement === VerticalPlacement.TOP && (_jsx(ApplicationLevel_StatusBar, { placement: VerticalPlacement.TOP })), layoutInfo.hasMenubar && (_jsx(ApplicationLevel_MenuBar, {})), layoutInfo.hasToolbar && (_jsx(ApplicationLevel_Toolbar, {})), _jsxs("div", { className: "flex-1 flex min-h-0", children: [_jsxs("main", { ref: portalRef, className: "flex-1 relative min-w-0", children: [_jsx(NavigationContentAreas, { routerChildren: children }), layoutInfo.hasQuickActionButton && (_jsx(ApplicationLevel_QuickActionButton, { placement: "floating" }))] }), layoutInfo.hasSidebar && layoutInfo.sidebarPlacement === HorizontalPlacement.END && (_jsx(ApplicationLevel_Sidebar, { placement: HorizontalPlacement.END }))] }), layoutInfo.hasStatusBar && layoutInfo.statusBarPlacement === VerticalPlacement.BOTTOM && (_jsx(ApplicationLevel_StatusBar, { placement: VerticalPlacement.BOTTOM }))] }), _jsx(NavigationOverlays, {}), _jsx(GuidanceRenderer, {}), layoutInfo.hasUtilityPanel && layoutInfo.utilityPanelPlacement === HorizontalPlacement.END && (_jsx(ApplicationLevel_UtilityPanel, { position: HorizontalPlacement.END }))] }) }) }) }));
31
+ return (_jsx(AppShellProviders, { layout: layoutInfo, children: _jsx(Surface, { asChild: true, emitPolicyVars: false, variant: SurfaceVariant.SHELL, policyOverride: NON_CANONICAL_SHELL_SURFACE_POLICY_OVERRIDE, children: _jsxs("div", { className: cn('relative h-screen w-screen flex overflow-hidden', isContinuousShell ? 'bg-transparent' : 'bg-background'), children: [_jsx(AppShellRegionOutlet, { region: ShellRegion.ACTIVITY_BAR }), _jsx(AppShellRegionOutlet, { region: ShellRegion.SIDEBAR, placement: HorizontalPlacement.START }), _jsx(AppShellRegionOutlet, { region: ShellRegion.UTILITY_PANEL, placement: HorizontalPlacement.START }), _jsxs("div", { className: "flex-1 flex flex-col min-w-0 min-h-0", children: [_jsx(AppShellRegionOutlet, { region: ShellRegion.STATUS_BAR, placement: VerticalPlacement.TOP }), _jsx(AppShellRegionOutlet, { region: ShellRegion.MENUBAR }), _jsx(AppShellRegionOutlet, { region: ShellRegion.TOOLBAR }), _jsxs("div", { className: "flex-1 flex min-h-0", children: [_jsx(AppShellContentOutlet, { className: "flex-1 relative min-w-0", children: children }), _jsx(AppShellRegionOutlet, { region: ShellRegion.SIDEBAR, placement: HorizontalPlacement.END })] }), _jsx(AppShellRegionOutlet, { region: ShellRegion.STATUS_BAR, placement: VerticalPlacement.BOTTOM })] }), _jsx(AppShellOverlaysOutlet, {}), _jsx(AppShellRegionOutlet, { region: ShellRegion.UTILITY_PANEL, placement: HorizontalPlacement.END })] }) }) }));
38
32
  };
39
33
  //# sourceMappingURL=app-layout-main-container.js.map