@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":"markdown-stream.lazy.js","sourceRoot":"","sources":["../../../../../src/components/data-display/markdown-stream.lazy.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAMnF;;;;;;;;;;;;;;;GAeG;AACH,SAAS,qBAAqB,CAAC,EAAE,KAAK,EAAuD;IAC3F,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAA;IAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrE,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CAAC,sEAAsE,EAAE,IAAI,CAAC,IAAI,CAAC,qBAChF,gBAAgB,YAEhC,yBAAO,KAAK,GAAQ,GAChB,CACP,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,eAAe,GAAgD,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAAA;AAE9G;;;;;;;;GAQG;AACH,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CACrC,MAAM,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAClG,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,OAAO,GAAG,eAAe,EAAE,GAAG,KAAK,EAAuB;IACzF,OAAO,CACL,KAAC,KAAK,CAAC,QAAQ,IACb,QAAQ,EACN,eAAK,SAAS,EAAC,WAAW,eAAW,MAAM,aACzC,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,GAAG,EACnC,KAAC,QAAQ,IAAC,SAAS,EAAC,aAAa,GAAG,EACpC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,IAC9B,YAGR,KAAC,cAAc,IAAC,OAAO,EAAE,OAAO,KAAM,KAAK,GAAI,GAChC,CAClB,CAAA;AACH,CAAC","sourcesContent":["\"use client\"\n\n/**\n * The ONLY door onto the markdown-rendering pipeline (`streamdown` + `katex` + `marked` + the\n * `micromark`/`mdast`/`parse5` stack).\n *\n * Lazy-boundary wrapper (`*.lazy.tsx` convention — `graph.lazy` / `ChartView.lazy` /\n * `pdf-viewer.lazy` precedent). It owns the single `React.lazy(() => import('./markdown-stream-runtime'))`\n * split point and the Suspense fallback, and re-exports the props type via `import type` so callers\n * stay fully typed with NO runtime edge onto the pipeline.\n *\n * ## What it keeps out of the eager graph, and what that measured\n *\n * `streamdown` was statically imported by three preset components — `data-display/markdown-content`,\n * `ai-elements/trace/reasoning` and `ai-elements/chat/message` — and all three are registered\n * eagerly by `registration/register-default-presets.ts`. Preset registration runs at application\n * bootstrap, so the whole markdown pipeline was in the first-load set of every generated\n * application whether or not it ever renders markdown. Measured on `examples/wonder-crm`\n * (production `vite build`, eager set = the assets `dist/index.html` itself references): **210 kB\n * gzipped**, against a 1,674 kB gzipped first load.\n *\n * See `markdown-stream-runtime.ts` for the per-payload breakdown and for why one runtime module is\n * used rather than three per-leaf split points.\n *\n * ## Suspense fallback\n *\n * Markdown always occupies flow layout, so the fallback reserves height with a three-line\n * `Skeleton` block rather than collapsing to zero and reflowing the surface underneath. Only the\n * FIRST markdown block on a surface realistically suspends: the chunk is resident for every later\n * one, so this is a one-time cost at the moment the user opens a markdown-bearing surface.\n *\n * ## The rule\n *\n * Everything except this wrapper (and tests) must render markdown through `MarkdownStream`. A\n * static import of `./markdown-stream-runtime`, or of `streamdown` itself, from the eager graph\n * silently merges the whole pipeline back into the entry chunk — enforced by\n * `pnpm check:lazy-boundaries`.\n */\n\nimport * as React from \"react\"\nimport { Skeleton, cn, useUI } from \"@wildo-ai/saas-frontend-lib\"\nimport { TypographyVariant, UIBehavior } from \"@wildo-ai/presets-components-models\"\nimport type { Streamdown } from \"streamdown\"\n\n/** Props of the underlying renderer, forwarded verbatim. */\nexport type MarkdownStreamProps = React.ComponentProps<typeof Streamdown>\n\n/**\n * What a ```` ```mermaid ```` fence renders as, now that diagram rendering is switched off.\n *\n * Wildo does not render mermaid diagrams: the applications alias the `mermaid` specifier onto\n * `~wildo-presets/mermaid-stub`, which removes ~430 kB gzipped across 21 chunks from the built\n * output (see that module for the measurement and for what it deliberately does NOT save). The stub\n * rejects, `streamdown` catches, and hands the failure to this component.\n *\n * Rendering the SOURCE is the point. `streamdown`'s own fallback is a red error panel with a\n * `Show Code` disclosure, which reads as a malfunction; a diagram nobody chose to render is not a\n * malfunction, and the source is the most useful thing left to show. The block is styled through the\n * CODE typography recipe so it matches every other code surface in the active theme.\n *\n * It is passed as a DEFAULT below rather than hardcoded, so an application that keeps the real\n * `mermaid` (by dropping the alias) is unaffected — the error this renders simply never occurs.\n */\nfunction MermaidSourceFallback({ chart }: { chart: string; error: string; retry: () => void }): React.JSX.Element {\n const { getRecipe } = useUI()\n const code = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.CODE)\n return (\n <pre\n className={cn(\"my-4 overflow-x-auto rounded-md border bg-muted/50 p-card-sm text-sm\", code.base)}\n data-streamdown=\"mermaid-source\"\n >\n <code>{chart}</code>\n </pre>\n )\n}\n\n/**\n * Default `mermaid` options handed to `streamdown`.\n *\n * Module-level constant, never an inline object literal: `streamdown` memoizes its context value on\n * this prop's identity, so a fresh object per render would invalidate that memo on every keystroke\n * of a streaming response.\n */\nconst MERMAID_OPTIONS: NonNullable<MarkdownStreamProps[\"mermaid\"]> = { errorComponent: MermaidSourceFallback }\n\n/**\n * Resolves to `MarkdownStreamRuntime`, NOT to `Streamdown` itself.\n *\n * That indirection is what applies the reordered rehype chain (`raw → sanitize → harden → katex`)\n * that makes LaTeX render at all — see `DEFAULT_REHYPE_PLUGINS` in the runtime module for the defect\n * and the security reasoning. It cannot be applied here: the plugin list is derived from\n * `streamdown`'s own exports, and naming them from this file would put the whole 210 kB pipeline back\n * into the eager graph, which is the one thing this wrapper exists to prevent.\n */\nconst LazyStreamdown = React.lazy(() =>\n import(\"./markdown-stream-runtime\").then((module) => ({ default: module.MarkdownStreamRuntime })),\n)\n\n/**\n * Renders markdown, resolving the pipeline on first render.\n *\n * A drop-in replacement for `<Streamdown …>`: every prop is forwarded unchanged, so call sites keep\n * their `components` overrides, their `parseIncompleteMarkdown` streaming flag and their class\n * names exactly as before. The one prop that gains a DEFAULT is `mermaid` — see\n * `MermaidSourceFallback` above; passing `mermaid` explicitly overrides it.\n */\nexport function MarkdownStream({ mermaid = MERMAID_OPTIONS, ...props }: MarkdownStreamProps): React.JSX.Element {\n return (\n <React.Suspense\n fallback={\n <div className=\"space-y-2\" aria-busy=\"true\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-11/12\" />\n <Skeleton className=\"h-4 w-4/6\" />\n </div>\n }\n >\n <LazyStreamdown mermaid={mermaid} {...props} />\n </React.Suspense>\n )\n}\n"]}
1
+ {"version":3,"file":"markdown-stream.lazy.js","sourceRoot":"","sources":["../../../../../src/components/data-display/markdown-stream.lazy.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACxF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAMnF;;;;;;;;;;;;;;;GAeG;AACH,SAAS,qBAAqB,CAAC,EAAE,KAAK,EAAuD;IAC3F,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAA;IAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrE,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CAAC,sEAAsE,EAAE,IAAI,CAAC,IAAI,CAAC,qBAChF,gBAAgB,YAEhC,yBAAO,KAAK,GAAQ,GAChB,CACP,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,EAAE,QAAQ,EAAiD;IACzF,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAA;IAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrE,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CAAC,wGAAwG,EAAE,IAAI,CAAC,IAAI,CAAC,oBACnH,aAAa,YAE5B,yBAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAQ,GACvD,CACP,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,eAAe,GAAgD,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAAA;AAE9G;;;;;;;;GAQG;AACH,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CACrC,MAAM,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAClG,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,OAAO,GAAG,eAAe,EAAE,GAAG,KAAK,EAAuB;IACzF,OAAO,CACL,KAAC,qBAAqB,IAAC,QAAQ,EAAC,gBAAgB,EAAC,QAAQ,EAAE,KAAC,sBAAsB,cAAE,KAAK,CAAC,QAAQ,GAA0B,YAC1H,KAAC,KAAK,CAAC,QAAQ,IACb,QAAQ,EACN,eAAK,SAAS,EAAC,WAAW,eAAW,MAAM,aACzC,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,GAAG,EACnC,KAAC,QAAQ,IAAC,SAAS,EAAC,aAAa,GAAG,EACpC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,IAC9B,YAGR,KAAC,cAAc,IAAC,OAAO,EAAE,OAAO,KAAM,KAAK,GAAI,GAChC,GACK,CACzB,CAAA;AACH,CAAC","sourcesContent":["\"use client\"\n\n/**\n * The ONLY door onto the markdown-rendering pipeline (`streamdown` + `katex` + `marked` + the\n * `micromark`/`mdast`/`parse5` stack).\n *\n * Lazy-boundary wrapper (`*.lazy.tsx` convention — `graph.lazy` / `ChartView.lazy` /\n * `pdf-viewer.lazy` precedent). It owns the single `React.lazy(() => import('./markdown-stream-runtime'))`\n * split point and the Suspense fallback, and re-exports the props type via `import type` so callers\n * stay fully typed with NO runtime edge onto the pipeline.\n *\n * ## What it keeps out of the eager graph, and what that measured\n *\n * `streamdown` was statically imported by three preset components — `data-display/markdown-content`,\n * `ai-elements/trace/reasoning` and `ai-elements/chat/message` — and all three are registered\n * eagerly by `registration/register-default-presets.ts`. Preset registration runs at application\n * bootstrap, so the whole markdown pipeline was in the first-load set of every generated\n * application whether or not it ever renders markdown. Measured on `examples/wonder-crm`\n * (production `vite build`, eager set = the assets `dist/index.html` itself references): **210 kB\n * gzipped**, against a 1,674 kB gzipped first load.\n *\n * See `markdown-stream-runtime.ts` for the per-payload breakdown and for why one runtime module is\n * used rather than three per-leaf split points.\n *\n * ## Suspense fallback\n *\n * Markdown always occupies flow layout, so the fallback reserves height with a three-line\n * `Skeleton` block rather than collapsing to zero and reflowing the surface underneath. Only the\n * FIRST markdown block on a surface realistically suspends: the chunk is resident for every later\n * one, so this is a one-time cost at the moment the user opens a markdown-bearing surface.\n *\n * ## The rule\n *\n * Everything except this wrapper (and tests) must render markdown through `MarkdownStream`. A\n * static import of `./markdown-stream-runtime`, or of `streamdown` itself, from the eager graph\n * silently merges the whole pipeline back into the entry chunk — enforced by\n * `pnpm check:lazy-boundaries`.\n */\n\nimport * as React from \"react\"\nimport { LazyDoorErrorBoundary, Skeleton, cn, useUI } from \"@wildo-ai/saas-frontend-lib\"\nimport { TypographyVariant, UIBehavior } from \"@wildo-ai/presets-components-models\"\nimport type { Streamdown } from \"streamdown\"\n\n/** Props of the underlying renderer, forwarded verbatim. */\nexport type MarkdownStreamProps = React.ComponentProps<typeof Streamdown>\n\n/**\n * What a ```` ```mermaid ```` fence renders as, now that diagram rendering is switched off.\n *\n * Wildo does not render mermaid diagrams: the applications alias the `mermaid` specifier onto\n * `~wildo-presets/mermaid-stub`, which removes ~430 kB gzipped across 21 chunks from the built\n * output (see that module for the measurement and for what it deliberately does NOT save). The stub\n * rejects, `streamdown` catches, and hands the failure to this component.\n *\n * Rendering the SOURCE is the point. `streamdown`'s own fallback is a red error panel with a\n * `Show Code` disclosure, which reads as a malfunction; a diagram nobody chose to render is not a\n * malfunction, and the source is the most useful thing left to show. The block is styled through the\n * CODE typography recipe so it matches every other code surface in the active theme.\n *\n * It is passed as a DEFAULT below rather than hardcoded, so an application that keeps the real\n * `mermaid` (by dropping the alias) is unaffected — the error this renders simply never occurs.\n */\nfunction MermaidSourceFallback({ chart }: { chart: string; error: string; retry: () => void }): React.JSX.Element {\n const { getRecipe } = useUI()\n const code = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.CODE)\n return (\n <pre\n className={cn(\"my-4 overflow-x-auto rounded-md border bg-muted/50 p-card-sm text-sm\", code.base)}\n data-streamdown=\"mermaid-source\"\n >\n <code>{chart}</code>\n </pre>\n )\n}\n\n/**\n * What markdown degrades TO when the rendering pipeline never arrives (#963): the SOURCE, in the same\n * code block the mermaid fallback uses. Markdown is readable as text — headings, lists and links keep\n * their meaning unrendered — so the source is the most useful thing left to show, and it is the\n * person's own content rather than a word the door would have to invent.\n */\nfunction MarkdownSourceFallback({ children }: { children: MarkdownStreamProps[\"children\"] }): React.JSX.Element {\n const { getRecipe } = useUI()\n const code = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.CODE)\n return (\n <pre\n className={cn(\"my-4 overflow-x-auto rounded-md border border-dashed bg-muted/50 p-card-sm text-sm whitespace-pre-wrap\", code.base)}\n data-lazy-door=\"unavailable\"\n >\n <code>{typeof children === \"string\" ? children : \"\"}</code>\n </pre>\n )\n}\n\n/**\n * Default `mermaid` options handed to `streamdown`.\n *\n * Module-level constant, never an inline object literal: `streamdown` memoizes its context value on\n * this prop's identity, so a fresh object per render would invalidate that memo on every keystroke\n * of a streaming response.\n */\nconst MERMAID_OPTIONS: NonNullable<MarkdownStreamProps[\"mermaid\"]> = { errorComponent: MermaidSourceFallback }\n\n/**\n * Resolves to `MarkdownStreamRuntime`, NOT to `Streamdown` itself.\n *\n * That indirection is what applies the reordered rehype chain (`raw → sanitize → harden → katex`)\n * that makes LaTeX render at all — see `DEFAULT_REHYPE_PLUGINS` in the runtime module for the defect\n * and the security reasoning. It cannot be applied here: the plugin list is derived from\n * `streamdown`'s own exports, and naming them from this file would put the whole 210 kB pipeline back\n * into the eager graph, which is the one thing this wrapper exists to prevent.\n */\nconst LazyStreamdown = React.lazy(() =>\n import(\"./markdown-stream-runtime\").then((module) => ({ default: module.MarkdownStreamRuntime })),\n)\n\n/**\n * Renders markdown, resolving the pipeline on first render.\n *\n * A drop-in replacement for `<Streamdown …>`: every prop is forwarded unchanged, so call sites keep\n * their `components` overrides, their `parseIncompleteMarkdown` streaming flag and their class\n * names exactly as before. The one prop that gains a DEFAULT is `mermaid` — see\n * `MermaidSourceFallback` above; passing `mermaid` explicitly overrides it.\n */\nexport function MarkdownStream({ mermaid = MERMAID_OPTIONS, ...props }: MarkdownStreamProps): React.JSX.Element {\n return (\n <LazyDoorErrorBoundary doorName=\"MarkdownStream\" fallback={<MarkdownSourceFallback>{props.children}</MarkdownSourceFallback>}>\n <React.Suspense\n fallback={\n <div className=\"space-y-2\" aria-busy=\"true\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-11/12\" />\n <Skeleton className=\"h-4 w-4/6\" />\n </div>\n }\n >\n <LazyStreamdown mermaid={mermaid} {...props} />\n </React.Suspense>\n </LazyDoorErrorBoundary>\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"notification-indicator.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/notification-indicator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,0BAA0B,EAAyB,MAAM,6BAA6B,CAAA;AA2BpG,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAa,EACb,KAAK,EACL,SAAS,GACV,EAAE,0BAA0B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA0BvD"}
1
+ {"version":3,"file":"notification-indicator.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/notification-indicator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAkB7E,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAa,EACb,KAAK,EACL,SAAS,GACV,EAAE,0BAA0B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA0BvD"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { IndicatorVariant, UIBehavior } from "@wildo-ai/presets-components-models";
3
+ import { UIBehavior } from "@wildo-ai/presets-components-models";
4
4
  import { NotificationBadgeDisplayMode } from "@wildo-ai/saas-models";
5
- import { cn, useUI, Badge, formatBadgeCount } from "@wildo-ai/saas-frontend-lib";
5
+ import { cn, useUI, Badge, formatBadgeCount, indicatorBadgeVariant } from "@wildo-ai/saas-frontend-lib";
6
6
  /**
7
7
  * DEFAULT preset for `LOW_LEVEL_NOTIFICATION_INDICATOR` (R4). Composes the
8
8
  * design-system `Badge`:
@@ -15,14 +15,6 @@ import { cn, useUI, Badge, formatBadgeCount } from "@wildo-ai/saas-frontend-lib"
15
15
  * a reduced-motion-safe default). The DEFINITION decides whether/when to pulse;
16
16
  * the theme decides how it looks.
17
17
  */
18
- /** IndicatorVariant (definition tone) → Badge public variant. */
19
- const TONE_TO_VARIANT = {
20
- [IndicatorVariant.NEUTRAL]: "default",
21
- [IndicatorVariant.INFO]: "info",
22
- [IndicatorVariant.SUCCESS]: "success",
23
- [IndicatorVariant.WARNING]: "warning",
24
- [IndicatorVariant.ERROR]: "destructive",
25
- };
26
18
  /** Framework fallback when a theme's INDICATOR recipe declares no `motion.attention`. */
27
19
  const DEFAULT_ATTENTION = "animate-pulse motion-reduce:animate-none";
28
20
  export function NotificationIndicator({ mode, tone, count, pulse = false, label, className, }) {
@@ -31,7 +23,7 @@ export function NotificationIndicator({ mode, tone, count, pulse = false, label,
31
23
  if (mode === NotificationBadgeDisplayMode.NONE || count <= 0) {
32
24
  return null;
33
25
  }
34
- const variant = TONE_TO_VARIANT[tone];
26
+ const variant = indicatorBadgeVariant(tone);
35
27
  const attention = pulse
36
28
  ? (getRecipe(UIBehavior.INDICATOR, tone).motion.attention ?? DEFAULT_ATTENTION)
37
29
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"notification-indicator.js","sourceRoot":"","sources":["../../../../../src/components/data-display/notification-indicator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAGhF;;;;;;;;;;;GAWG;AAEH,iEAAiE;AACjE,MAAM,eAAe,GAAoD;IACvE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS;IACrC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM;IAC/B,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS;IACrC,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS;IACrC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,aAAa;CACxC,CAAA;AAED,yFAAyF;AACzF,MAAM,iBAAiB,GAAG,0CAA0C,CAAA;AAEpE,MAAM,UAAU,qBAAqB,CAAC,EACpC,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,GAAG,KAAK,EACb,KAAK,EACL,SAAS,GACkB;IAC3B,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAA;IAE7B,4EAA4E;IAC5E,IAAI,IAAI,KAAK,4BAA4B,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,SAAS,GAAG,KAAK;QACrB,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC;QAC/E,CAAC,CAAC,SAAS,CAAA;IAEb,IAAI,IAAI,KAAK,4BAA4B,CAAC,GAAG,EAAE,CAAC;QAC9C,OAAO,CACL,KAAC,KAAK,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,SAAS,EAAE,SAAS,CAAC,YACxG,eAAM,SAAS,EAAC,SAAS,YAAE,KAAK,GAAQ,GAClC,CACT,CAAA;IACH,CAAC;IAED,OAAO,CACL,KAAC,KAAK,IAAC,OAAO,EAAE,OAAO,eAAY,QAAQ,gBAAa,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,YAC/F,gBAAgB,CAAC,KAAK,CAAC,GAClB,CACT,CAAA;AACH,CAAC","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { IndicatorVariant, UIBehavior } from \"@wildo-ai/presets-components-models\"\nimport { NotificationBadgeDisplayMode } from \"@wildo-ai/saas-models\"\nimport { cn, useUI, Badge, formatBadgeCount } from \"@wildo-ai/saas-frontend-lib\"\nimport type { NotificationIndicatorProps, BadgeVariants_Variant } from \"@wildo-ai/saas-frontend-lib\"\n\n/**\n * DEFAULT preset for `LOW_LEVEL_NOTIFICATION_INDICATOR` (R4). Composes the\n * design-system `Badge`:\n * - `NONE`, or a non-positive count → renders nothing (a dot means \"≥ 1\").\n * - `DOT` → a color signal dot (the enum-icon fallback pattern), label in `sr-only`.\n * - `COUNT` → the truncated number, announced via `aria-live`.\n *\n * Pulse is THEME-OWNED: when `pulse` is true we append the active theme's\n * `INDICATOR` recipe `motion.attention` (a theme may customize it; falls back to\n * a reduced-motion-safe default). The DEFINITION decides whether/when to pulse;\n * the theme decides how it looks.\n */\n\n/** IndicatorVariant (definition tone) → Badge public variant. */\nconst TONE_TO_VARIANT: Record<IndicatorVariant, BadgeVariants_Variant> = {\n [IndicatorVariant.NEUTRAL]: \"default\",\n [IndicatorVariant.INFO]: \"info\",\n [IndicatorVariant.SUCCESS]: \"success\",\n [IndicatorVariant.WARNING]: \"warning\",\n [IndicatorVariant.ERROR]: \"destructive\",\n}\n\n/** Framework fallback when a theme's INDICATOR recipe declares no `motion.attention`. */\nconst DEFAULT_ATTENTION = \"animate-pulse motion-reduce:animate-none\"\n\nexport function NotificationIndicator({\n mode,\n tone,\n count,\n pulse = false,\n label,\n className,\n}: NotificationIndicatorProps): React.JSX.Element | null {\n const { getRecipe } = useUI()\n\n // A dot/count only makes sense for a positive count; NONE is always silent.\n if (mode === NotificationBadgeDisplayMode.NONE || count <= 0) {\n return null\n }\n\n const variant = TONE_TO_VARIANT[tone]\n const attention = pulse\n ? (getRecipe(UIBehavior.INDICATOR, tone).motion.attention ?? DEFAULT_ATTENTION)\n : undefined\n\n if (mode === NotificationBadgeDisplayMode.DOT) {\n return (\n <Badge variant={variant} title={label} className={cn(\"h-2.5 w-2.5 rounded-full p-0\", attention, className)}>\n <span className=\"sr-only\">{label}</span>\n </Badge>\n )\n }\n\n return (\n <Badge variant={variant} aria-live=\"polite\" aria-label={label} className={cn(attention, className)}>\n {formatBadgeCount(count)}\n </Badge>\n )\n}\n"]}
1
+ {"version":3,"file":"notification-indicator.js","sourceRoot":"","sources":["../../../../../src/components/data-display/notification-indicator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAGvG;;;;;;;;;;;GAWG;AAEH,yFAAyF;AACzF,MAAM,iBAAiB,GAAG,0CAA0C,CAAA;AAEpE,MAAM,UAAU,qBAAqB,CAAC,EACpC,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,GAAG,KAAK,EACb,KAAK,EACL,SAAS,GACkB;IAC3B,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAA;IAE7B,4EAA4E;IAC5E,IAAI,IAAI,KAAK,4BAA4B,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,KAAK;QACrB,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC;QAC/E,CAAC,CAAC,SAAS,CAAA;IAEb,IAAI,IAAI,KAAK,4BAA4B,CAAC,GAAG,EAAE,CAAC;QAC9C,OAAO,CACL,KAAC,KAAK,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,SAAS,EAAE,SAAS,CAAC,YACxG,eAAM,SAAS,EAAC,SAAS,YAAE,KAAK,GAAQ,GAClC,CACT,CAAA;IACH,CAAC;IAED,OAAO,CACL,KAAC,KAAK,IAAC,OAAO,EAAE,OAAO,eAAY,QAAQ,gBAAa,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,YAC/F,gBAAgB,CAAC,KAAK,CAAC,GAClB,CACT,CAAA;AACH,CAAC","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { UIBehavior } from \"@wildo-ai/presets-components-models\"\nimport { NotificationBadgeDisplayMode } from \"@wildo-ai/saas-models\"\nimport { cn, useUI, Badge, formatBadgeCount, indicatorBadgeVariant } from \"@wildo-ai/saas-frontend-lib\"\nimport type { NotificationIndicatorProps } from \"@wildo-ai/saas-frontend-lib\"\n\n/**\n * DEFAULT preset for `LOW_LEVEL_NOTIFICATION_INDICATOR` (R4). Composes the\n * design-system `Badge`:\n * - `NONE`, or a non-positive count → renders nothing (a dot means \"≥ 1\").\n * - `DOT` → a color signal dot (the enum-icon fallback pattern), label in `sr-only`.\n * - `COUNT` → the truncated number, announced via `aria-live`.\n *\n * Pulse is THEME-OWNED: when `pulse` is true we append the active theme's\n * `INDICATOR` recipe `motion.attention` (a theme may customize it; falls back to\n * a reduced-motion-safe default). The DEFINITION decides whether/when to pulse;\n * the theme decides how it looks.\n */\n\n/** Framework fallback when a theme's INDICATOR recipe declares no `motion.attention`. */\nconst DEFAULT_ATTENTION = \"animate-pulse motion-reduce:animate-none\"\n\nexport function NotificationIndicator({\n mode,\n tone,\n count,\n pulse = false,\n label,\n className,\n}: NotificationIndicatorProps): React.JSX.Element | null {\n const { getRecipe } = useUI()\n\n // A dot/count only makes sense for a positive count; NONE is always silent.\n if (mode === NotificationBadgeDisplayMode.NONE || count <= 0) {\n return null\n }\n\n const variant = indicatorBadgeVariant(tone)\n const attention = pulse\n ? (getRecipe(UIBehavior.INDICATOR, tone).motion.attention ?? DEFAULT_ATTENTION)\n : undefined\n\n if (mode === NotificationBadgeDisplayMode.DOT) {\n return (\n <Badge variant={variant} title={label} className={cn(\"h-2.5 w-2.5 rounded-full p-0\", attention, className)}>\n <span className=\"sr-only\">{label}</span>\n </Badge>\n )\n }\n\n return (\n <Badge variant={variant} aria-live=\"polite\" aria-label={label} className={cn(attention, className)}>\n {formatBadgeCount(count)}\n </Badge>\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"notification-indicator.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/notification-indicator.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAO/H,eAAO,MAAM,mCAAmC,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"notification-indicator.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/notification-indicator.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAO/H,eAAO,MAAM,mCAAmC,EAAE,mBAAmB,EAAO,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * The PDF.js worker SEAM (issue #962) — how a host decides where the viewer's Web Worker comes from.
3
+ *
4
+ * `pdf-viewer.tsx` parses on a Web Worker and installs ONE port for the whole module
5
+ * (`GlobalWorkerOptions.workerPort`). By default that port is built by the Vite path in
6
+ * `pdf-viewer-worker.vite.ts`, which is what the generated application runs. Two consumers this
7
+ * framework also produces cannot use that default:
8
+ *
9
+ * - a NON-VITE bundler (the Docusaurus technical documentation is webpack) does not understand the
10
+ * `?worker` asset suffix, so it must supply the worker itself;
11
+ * - an application whose ASSETS ARE SERVED FROM ANOTHER ORIGIN (the opt-in CDN publish) gets a
12
+ * cross-origin worker URL, which `new Worker(url)` refuses outright.
13
+ *
14
+ * Both register a factory here BEFORE the viewer's chunk loads (any time before the first document
15
+ * renders — the port is installed lazily on first use). The factory takes precedence over the Vite
16
+ * default, and the default's module is then never imported, which is what keeps the `?worker` import
17
+ * out of a non-Vite bundler's graph.
18
+ *
19
+ * This module is deliberately LIGHT: no `pdfjs-dist`, no worker, nothing heavy. It lives outside the
20
+ * lazy boundary so a host can call it from its bootstrap.
21
+ *
22
+ * ## The cross-origin case, and its CSP consequence
23
+ *
24
+ * A browser only constructs a Worker from a SAME-ORIGIN script URL. When the bundle (and so the worker
25
+ * file) is served from a CDN, the answer is a same-origin `blob:` shim whose single statement is
26
+ * `import "<cdn worker url>"` — `createSameOriginModuleWorker` builds exactly that, and
27
+ * `createModuleWorkerForUrl` picks it only when the URL's origin differs from the page's. The shim needs
28
+ * the policy to admit it: `worker-src` (falling back through `child-src` to `script-src`) must include
29
+ * `blob:`, and `script-src` must already admit the CDN origin for the import inside the shim to load —
30
+ * which a CDN publish's policy does, since every script comes from there. The `SAAS_APP` CSP baseline
31
+ * sets no `worker-src`; a CDN deployment adds `worker-src 'self' blob:` (the documentation product's
32
+ * baseline already carries that pair for its own reasons).
33
+ *
34
+ * Under Vite the worker URL is obtained with the `?worker&url` suffix on `pdfjs-dist/build/pdf.worker.min.mjs`,
35
+ * which names the BUILT worker file; under webpack, `new URL('pdfjs-dist/build/pdf.worker.min.mjs', import.meta.url)`
36
+ * resolves through the bundler (it is Vite that does not resolve a bare specifier there — recorded in
37
+ * `pdf-viewer-worker.vite.ts`).
38
+ */
39
+ /** Builds the Worker that PDF.js will parse on. Called at most once per page lifetime. */
40
+ export type PdfViewerWorkerFactory = () => Worker;
41
+ /**
42
+ * Register how the PDF viewer's worker is built, replacing the Vite default. Pass `null` to return
43
+ * to the default. Must run before the first document renders: the port is installed once, on first
44
+ * use, and a factory registered after that is not consulted (the viewer says so in its log).
45
+ */
46
+ export declare function configurePdfViewerWorker(factory: PdfViewerWorkerFactory | null): void;
47
+ /** The registered factory, or `null` when the Vite default applies. */
48
+ export declare function resolveConfiguredPdfViewerWorkerFactory(): PdfViewerWorkerFactory | null;
49
+ /**
50
+ * A same-origin MODULE worker for a worker script served from another origin: a `blob:` script whose
51
+ * only statement imports the real one. The blob URL is kept for the page's lifetime — a module
52
+ * worker fetches its script asynchronously, and revoking the URL before that fetch completes would
53
+ * hand the worker a dead URL (which reads as "the worker never answered", the same silent shape as
54
+ * a classic-vs-module mismatch).
55
+ */
56
+ export declare function createSameOriginModuleWorker(workerScriptUrl: string): Worker;
57
+ /**
58
+ * A module worker for `workerScriptUrl`: constructed directly when the script is same-origin with the
59
+ * page, through the `blob:` shim when it is not. `pageOrigin` defaults to the page's own; a host that
60
+ * knows better (a test, a non-browser runtime) passes it.
61
+ */
62
+ export declare function createModuleWorkerForUrl(workerScriptUrl: string, pageOrigin?: string | null): Worker;
63
+ //# sourceMappingURL=pdf-viewer-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-viewer-worker.d.ts","sourceRoot":"","sources":["../../../../../../src/components/data-display/pdf-viewer/pdf-viewer-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,0FAA0F;AAC1F,MAAM,MAAM,sBAAsB,GAAG,MAAM,MAAM,CAAA;AAIjD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAErF;AAED,uEAAuE;AACvE,wBAAgB,uCAAuC,IAAI,sBAAsB,GAAG,IAAI,CAEvF;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,GAAG,IAA0C,GAAG,MAAM,CAMzI"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * The PDF.js worker SEAM (issue #962) — how a host decides where the viewer's Web Worker comes from.
3
+ *
4
+ * `pdf-viewer.tsx` parses on a Web Worker and installs ONE port for the whole module
5
+ * (`GlobalWorkerOptions.workerPort`). By default that port is built by the Vite path in
6
+ * `pdf-viewer-worker.vite.ts`, which is what the generated application runs. Two consumers this
7
+ * framework also produces cannot use that default:
8
+ *
9
+ * - a NON-VITE bundler (the Docusaurus technical documentation is webpack) does not understand the
10
+ * `?worker` asset suffix, so it must supply the worker itself;
11
+ * - an application whose ASSETS ARE SERVED FROM ANOTHER ORIGIN (the opt-in CDN publish) gets a
12
+ * cross-origin worker URL, which `new Worker(url)` refuses outright.
13
+ *
14
+ * Both register a factory here BEFORE the viewer's chunk loads (any time before the first document
15
+ * renders — the port is installed lazily on first use). The factory takes precedence over the Vite
16
+ * default, and the default's module is then never imported, which is what keeps the `?worker` import
17
+ * out of a non-Vite bundler's graph.
18
+ *
19
+ * This module is deliberately LIGHT: no `pdfjs-dist`, no worker, nothing heavy. It lives outside the
20
+ * lazy boundary so a host can call it from its bootstrap.
21
+ *
22
+ * ## The cross-origin case, and its CSP consequence
23
+ *
24
+ * A browser only constructs a Worker from a SAME-ORIGIN script URL. When the bundle (and so the worker
25
+ * file) is served from a CDN, the answer is a same-origin `blob:` shim whose single statement is
26
+ * `import "<cdn worker url>"` — `createSameOriginModuleWorker` builds exactly that, and
27
+ * `createModuleWorkerForUrl` picks it only when the URL's origin differs from the page's. The shim needs
28
+ * the policy to admit it: `worker-src` (falling back through `child-src` to `script-src`) must include
29
+ * `blob:`, and `script-src` must already admit the CDN origin for the import inside the shim to load —
30
+ * which a CDN publish's policy does, since every script comes from there. The `SAAS_APP` CSP baseline
31
+ * sets no `worker-src`; a CDN deployment adds `worker-src 'self' blob:` (the documentation product's
32
+ * baseline already carries that pair for its own reasons).
33
+ *
34
+ * Under Vite the worker URL is obtained with the `?worker&url` suffix on `pdfjs-dist/build/pdf.worker.min.mjs`,
35
+ * which names the BUILT worker file; under webpack, `new URL('pdfjs-dist/build/pdf.worker.min.mjs', import.meta.url)`
36
+ * resolves through the bundler (it is Vite that does not resolve a bare specifier there — recorded in
37
+ * `pdf-viewer-worker.vite.ts`).
38
+ */
39
+ let configuredFactory = null;
40
+ /**
41
+ * Register how the PDF viewer's worker is built, replacing the Vite default. Pass `null` to return
42
+ * to the default. Must run before the first document renders: the port is installed once, on first
43
+ * use, and a factory registered after that is not consulted (the viewer says so in its log).
44
+ */
45
+ export function configurePdfViewerWorker(factory) {
46
+ configuredFactory = factory;
47
+ }
48
+ /** The registered factory, or `null` when the Vite default applies. */
49
+ export function resolveConfiguredPdfViewerWorkerFactory() {
50
+ return configuredFactory;
51
+ }
52
+ /**
53
+ * A same-origin MODULE worker for a worker script served from another origin: a `blob:` script whose
54
+ * only statement imports the real one. The blob URL is kept for the page's lifetime — a module
55
+ * worker fetches its script asynchronously, and revoking the URL before that fetch completes would
56
+ * hand the worker a dead URL (which reads as "the worker never answered", the same silent shape as
57
+ * a classic-vs-module mismatch).
58
+ */
59
+ export function createSameOriginModuleWorker(workerScriptUrl) {
60
+ const shim = new Blob([`import ${JSON.stringify(workerScriptUrl)};\n`], { type: 'text/javascript' });
61
+ return new Worker(URL.createObjectURL(shim), { type: 'module' });
62
+ }
63
+ /**
64
+ * A module worker for `workerScriptUrl`: constructed directly when the script is same-origin with the
65
+ * page, through the `blob:` shim when it is not. `pageOrigin` defaults to the page's own; a host that
66
+ * knows better (a test, a non-browser runtime) passes it.
67
+ */
68
+ export function createModuleWorkerForUrl(workerScriptUrl, pageOrigin = globalThis.location?.origin ?? null) {
69
+ const resolved = new URL(workerScriptUrl, pageOrigin ?? undefined);
70
+ if (pageOrigin !== null && resolved.origin !== pageOrigin) {
71
+ return createSameOriginModuleWorker(resolved.href);
72
+ }
73
+ return new Worker(resolved, { type: 'module' });
74
+ }
75
+ //# sourceMappingURL=pdf-viewer-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-viewer-worker.js","sourceRoot":"","sources":["../../../../../../src/components/data-display/pdf-viewer/pdf-viewer-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAKH,IAAI,iBAAiB,GAAkC,IAAI,CAAA;AAE3D;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAsC;IAC7E,iBAAiB,GAAG,OAAO,CAAA;AAC7B,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,uCAAuC;IACrD,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAAC,eAAuB;IAClE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAA;IACpG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,eAAuB,EAAE,aAA4B,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI;IAC/H,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,SAAS,CAAC,CAAA;IAClE,IAAI,UAAU,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1D,OAAO,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AACjD,CAAC","sourcesContent":["/**\n * The PDF.js worker SEAM (issue #962) — how a host decides where the viewer's Web Worker comes from.\n *\n * `pdf-viewer.tsx` parses on a Web Worker and installs ONE port for the whole module\n * (`GlobalWorkerOptions.workerPort`). By default that port is built by the Vite path in\n * `pdf-viewer-worker.vite.ts`, which is what the generated application runs. Two consumers this\n * framework also produces cannot use that default:\n *\n * - a NON-VITE bundler (the Docusaurus technical documentation is webpack) does not understand the\n * `?worker` asset suffix, so it must supply the worker itself;\n * - an application whose ASSETS ARE SERVED FROM ANOTHER ORIGIN (the opt-in CDN publish) gets a\n * cross-origin worker URL, which `new Worker(url)` refuses outright.\n *\n * Both register a factory here BEFORE the viewer's chunk loads (any time before the first document\n * renders — the port is installed lazily on first use). The factory takes precedence over the Vite\n * default, and the default's module is then never imported, which is what keeps the `?worker` import\n * out of a non-Vite bundler's graph.\n *\n * This module is deliberately LIGHT: no `pdfjs-dist`, no worker, nothing heavy. It lives outside the\n * lazy boundary so a host can call it from its bootstrap.\n *\n * ## The cross-origin case, and its CSP consequence\n *\n * A browser only constructs a Worker from a SAME-ORIGIN script URL. When the bundle (and so the worker\n * file) is served from a CDN, the answer is a same-origin `blob:` shim whose single statement is\n * `import \"<cdn worker url>\"` — `createSameOriginModuleWorker` builds exactly that, and\n * `createModuleWorkerForUrl` picks it only when the URL's origin differs from the page's. The shim needs\n * the policy to admit it: `worker-src` (falling back through `child-src` to `script-src`) must include\n * `blob:`, and `script-src` must already admit the CDN origin for the import inside the shim to load —\n * which a CDN publish's policy does, since every script comes from there. The `SAAS_APP` CSP baseline\n * sets no `worker-src`; a CDN deployment adds `worker-src 'self' blob:` (the documentation product's\n * baseline already carries that pair for its own reasons).\n *\n * Under Vite the worker URL is obtained with the `?worker&url` suffix on `pdfjs-dist/build/pdf.worker.min.mjs`,\n * which names the BUILT worker file; under webpack, `new URL('pdfjs-dist/build/pdf.worker.min.mjs', import.meta.url)`\n * resolves through the bundler (it is Vite that does not resolve a bare specifier there — recorded in\n * `pdf-viewer-worker.vite.ts`).\n */\n\n/** Builds the Worker that PDF.js will parse on. Called at most once per page lifetime. */\nexport type PdfViewerWorkerFactory = () => Worker\n\nlet configuredFactory: PdfViewerWorkerFactory | null = null\n\n/**\n * Register how the PDF viewer's worker is built, replacing the Vite default. Pass `null` to return\n * to the default. Must run before the first document renders: the port is installed once, on first\n * use, and a factory registered after that is not consulted (the viewer says so in its log).\n */\nexport function configurePdfViewerWorker(factory: PdfViewerWorkerFactory | null): void {\n configuredFactory = factory\n}\n\n/** The registered factory, or `null` when the Vite default applies. */\nexport function resolveConfiguredPdfViewerWorkerFactory(): PdfViewerWorkerFactory | null {\n return configuredFactory\n}\n\n/**\n * A same-origin MODULE worker for a worker script served from another origin: a `blob:` script whose\n * only statement imports the real one. The blob URL is kept for the page's lifetime — a module\n * worker fetches its script asynchronously, and revoking the URL before that fetch completes would\n * hand the worker a dead URL (which reads as \"the worker never answered\", the same silent shape as\n * a classic-vs-module mismatch).\n */\nexport function createSameOriginModuleWorker(workerScriptUrl: string): Worker {\n const shim = new Blob([`import ${JSON.stringify(workerScriptUrl)};\\n`], { type: 'text/javascript' })\n return new Worker(URL.createObjectURL(shim), { type: 'module' })\n}\n\n/**\n * A module worker for `workerScriptUrl`: constructed directly when the script is same-origin with the\n * page, through the `blob:` shim when it is not. `pageOrigin` defaults to the page's own; a host that\n * knows better (a test, a non-browser runtime) passes it.\n */\nexport function createModuleWorkerForUrl(workerScriptUrl: string, pageOrigin: string | null = globalThis.location?.origin ?? null): Worker {\n const resolved = new URL(workerScriptUrl, pageOrigin ?? undefined)\n if (pageOrigin !== null && resolved.origin !== pageOrigin) {\n return createSameOriginModuleWorker(resolved.href)\n }\n return new Worker(resolved, { type: 'module' })\n}\n"]}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The VITE default for the PDF.js worker (issue #962) — the only module in the viewer that carries a
3
+ * bundler-specific import, kept alone so a host on another bundler never has to compile it.
4
+ *
5
+ * `pdf-viewer.tsx` reaches this file through `import(/* webpackIgnore: true *\/ …)` and ONLY when no
6
+ * factory was registered through `configurePdfViewerWorker`. webpack honours that magic comment by
7
+ * leaving the import as a native `import()` it does not follow, so the `?worker` specifier below never
8
+ * enters a webpack graph; Vite ignores the comment and bundles this module as usual.
9
+ *
10
+ * ⚠️ TWO earlier attempts at a bundler-neutral default failed at RENDER time, not build time — which
11
+ * is why they survived typecheck and the lazy-boundary guard. Both are recorded so the next author does
12
+ * not walk back into them:
13
+ *
14
+ * 1. `new URL('pdfjs-dist/build/pdf.worker.min.mjs', import.meta.url)` — Vite's `new URL()` handling
15
+ * resolves only RELATIVE paths against the module URL; a bare package specifier is not
16
+ * bundler-resolved, so the browser requested a path that does not exist and pdf.js reported
17
+ * `Setting up fake worker failed`.
18
+ * 2. `?url` + `GlobalWorkerOptions.workerSrc` — the URL resolved and the file was served (200), but
19
+ * pdf.js instantiates a `workerSrc` string as a CLASSIC worker while pdf.js 6 ships the worker as an
20
+ * ES module. The worker never completed its handshake, so `getDocument()` hung forever with no
21
+ * error to show.
22
+ *
23
+ * `?worker` hands us a bundler-generated constructor that already carries the right worker type
24
+ * (module in dev, the built format in production), which removes the classic-vs-module question
25
+ * entirely. Vite emits the worker as its own fingerprinted file served from the SAME ORIGIN as the
26
+ * bundle — never a CDN, which would both leak document bytes' provenance and need a `worker-src`
27
+ * exception. A deployment that serves its bundle from another origin registers a factory instead
28
+ * (`createModuleWorkerForUrl` in `pdf-viewer-worker.ts`, fed the `?worker&url` URL).
29
+ */
30
+ /** The Vite-built PDF.js worker, as the generated application constructs it. */
31
+ export declare function createViteDefaultPdfViewerWorker(): Worker;
32
+ //# sourceMappingURL=pdf-viewer-worker.vite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-viewer-worker.vite.d.ts","sourceRoot":"","sources":["../../../../../../src/components/data-display/pdf-viewer/pdf-viewer-worker.vite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,gFAAgF;AAChF,wBAAgB,gCAAgC,IAAI,MAAM,CAEzD"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The VITE default for the PDF.js worker (issue #962) — the only module in the viewer that carries a
3
+ * bundler-specific import, kept alone so a host on another bundler never has to compile it.
4
+ *
5
+ * `pdf-viewer.tsx` reaches this file through `import(/* webpackIgnore: true *\/ …)` and ONLY when no
6
+ * factory was registered through `configurePdfViewerWorker`. webpack honours that magic comment by
7
+ * leaving the import as a native `import()` it does not follow, so the `?worker` specifier below never
8
+ * enters a webpack graph; Vite ignores the comment and bundles this module as usual.
9
+ *
10
+ * ⚠️ TWO earlier attempts at a bundler-neutral default failed at RENDER time, not build time — which
11
+ * is why they survived typecheck and the lazy-boundary guard. Both are recorded so the next author does
12
+ * not walk back into them:
13
+ *
14
+ * 1. `new URL('pdfjs-dist/build/pdf.worker.min.mjs', import.meta.url)` — Vite's `new URL()` handling
15
+ * resolves only RELATIVE paths against the module URL; a bare package specifier is not
16
+ * bundler-resolved, so the browser requested a path that does not exist and pdf.js reported
17
+ * `Setting up fake worker failed`.
18
+ * 2. `?url` + `GlobalWorkerOptions.workerSrc` — the URL resolved and the file was served (200), but
19
+ * pdf.js instantiates a `workerSrc` string as a CLASSIC worker while pdf.js 6 ships the worker as an
20
+ * ES module. The worker never completed its handshake, so `getDocument()` hung forever with no
21
+ * error to show.
22
+ *
23
+ * `?worker` hands us a bundler-generated constructor that already carries the right worker type
24
+ * (module in dev, the built format in production), which removes the classic-vs-module question
25
+ * entirely. Vite emits the worker as its own fingerprinted file served from the SAME ORIGIN as the
26
+ * bundle — never a CDN, which would both leak document bytes' provenance and need a `worker-src`
27
+ * exception. A deployment that serves its bundle from another origin registers a factory instead
28
+ * (`createModuleWorkerForUrl` in `pdf-viewer-worker.ts`, fed the `?worker&url` URL).
29
+ */
30
+ // @ts-expect-error -- `?worker` is a Vite asset-import suffix with no TS declaration.
31
+ import PdfJsWorker from 'pdfjs-dist/build/pdf.worker.min.mjs?worker';
32
+ /** The Vite-built PDF.js worker, as the generated application constructs it. */
33
+ export function createViteDefaultPdfViewerWorker() {
34
+ return new PdfJsWorker();
35
+ }
36
+ //# sourceMappingURL=pdf-viewer-worker.vite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-viewer-worker.vite.js","sourceRoot":"","sources":["../../../../../../src/components/data-display/pdf-viewer/pdf-viewer-worker.vite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,sFAAsF;AACtF,OAAO,WAAW,MAAM,4CAA4C,CAAA;AAEpE,gFAAgF;AAChF,MAAM,UAAU,gCAAgC;IAC9C,OAAO,IAAI,WAAW,EAAY,CAAA;AACpC,CAAC","sourcesContent":["/**\n * The VITE default for the PDF.js worker (issue #962) — the only module in the viewer that carries a\n * bundler-specific import, kept alone so a host on another bundler never has to compile it.\n *\n * `pdf-viewer.tsx` reaches this file through `import(/* webpackIgnore: true *\\/ …)` and ONLY when no\n * factory was registered through `configurePdfViewerWorker`. webpack honours that magic comment by\n * leaving the import as a native `import()` it does not follow, so the `?worker` specifier below never\n * enters a webpack graph; Vite ignores the comment and bundles this module as usual.\n *\n * ⚠️ TWO earlier attempts at a bundler-neutral default failed at RENDER time, not build time — which\n * is why they survived typecheck and the lazy-boundary guard. Both are recorded so the next author does\n * not walk back into them:\n *\n * 1. `new URL('pdfjs-dist/build/pdf.worker.min.mjs', import.meta.url)` — Vite's `new URL()` handling\n * resolves only RELATIVE paths against the module URL; a bare package specifier is not\n * bundler-resolved, so the browser requested a path that does not exist and pdf.js reported\n * `Setting up fake worker failed`.\n * 2. `?url` + `GlobalWorkerOptions.workerSrc` — the URL resolved and the file was served (200), but\n * pdf.js instantiates a `workerSrc` string as a CLASSIC worker while pdf.js 6 ships the worker as an\n * ES module. The worker never completed its handshake, so `getDocument()` hung forever with no\n * error to show.\n *\n * `?worker` hands us a bundler-generated constructor that already carries the right worker type\n * (module in dev, the built format in production), which removes the classic-vs-module question\n * entirely. Vite emits the worker as its own fingerprinted file served from the SAME ORIGIN as the\n * bundle — never a CDN, which would both leak document bytes' provenance and need a `worker-src`\n * exception. A deployment that serves its bundle from another origin registers a factory instead\n * (`createModuleWorkerForUrl` in `pdf-viewer-worker.ts`, fed the `?worker&url` URL).\n */\n\n// @ts-expect-error -- `?worker` is a Vite asset-import suffix with no TS declaration.\nimport PdfJsWorker from 'pdfjs-dist/build/pdf.worker.min.mjs?worker'\n\n/** The Vite-built PDF.js worker, as the generated application constructs it. */\nexport function createViteDefaultPdfViewerWorker(): Worker {\n return new PdfJsWorker() as Worker\n}\n"]}
@@ -26,13 +26,51 @@
26
26
  *
27
27
  * ## Worker
28
28
  *
29
- * PDF.js parses on a Web Worker. The URL is resolved through `import.meta.url` so
30
- * every bundler (the app's Vite, the site's Astro, the docs' Docusaurus) emits and
31
- * fingerprints it as an asset rather than fetching from a CDN — a CDN worker would
32
- * both leak document bytes' provenance and require a `worker-src` exception the CSP
33
- * pipeline should not have to make. The app's CSP must allow `worker-src 'self' blob:`.
29
+ * PDF.js parses on a Web Worker. ONE port for the whole module, installed lazily on the
30
+ * first render (`ensurePdfViewerWorkerPort`) and assigned to `GlobalWorkerOptions.workerPort`:
31
+ * the pdf.js worker multiplexes documents by id, so several viewers mounted at once (a
32
+ * THUMBNAIL in a list plus an overlay, say) share it safely, and the shared port avoids
33
+ * spawning a worker per rendered thumbnail. A per-instance `PDFWorker` was tried first
34
+ * out of a concurrency worry that does not apply.
35
+ *
36
+ * WHERE the worker comes from is the host's decision (issue #962, `pdf-viewer-worker.ts`):
37
+ * a factory registered through `configurePdfViewerWorker` wins; otherwise the Vite default
38
+ * in `pdf-viewer-worker.vite.ts` is imported — and only then, so a non-Vite bundler that
39
+ * registered a factory never compiles the `?worker` import. The default is a same-origin
40
+ * file URL, so the `SAAS_APP` CSP baseline needs nothing beyond `script-src 'self'`; the
41
+ * cross-origin (CDN publish) case and its `worker-src blob:` note live with the seam.
42
+ *
43
+ * ## Text
44
+ *
45
+ * The viewer is label-agnostic: every string it shows or announces arrives resolved in
46
+ * `labels` from its host, which owns the component's i18n catalog. A failure is shown
47
+ * as the host's labelled message and the cause is logged — a raw pdf.js exception
48
+ * message is developer text, not something to put in front of a reader.
34
49
  */
35
50
  import * as React from "react";
51
+ /**
52
+ * Install the module-wide worker port once, from the host's factory when one is registered and from
53
+ * the Vite default otherwise (issue #962). Idempotent and memoised: every render awaits the same
54
+ * installation, and a factory registered AFTER it is not consulted. The Vite module is reached
55
+ * through a dynamic import that webpack is told not to follow (`webpackIgnore`), which is what keeps
56
+ * its `?worker` specifier out of a non-Vite graph; a host on such a bundler that registered no
57
+ * factory gets a rejected installation here — surfaced as the viewer's labelled failure with the
58
+ * cause in the log, never a hang.
59
+ */
60
+ export declare function ensurePdfViewerWorkerPort(): Promise<void>;
61
+ /**
62
+ * Every string the viewer shows or announces, RESOLVED by the host. Functions where
63
+ * the text carries a number, so the host's i18n interpolation — not this module —
64
+ * decides word order.
65
+ */
66
+ export interface PdfViewerLabels {
67
+ /** Accessible name of one rendered page image. */
68
+ page(pageNumber: number): string;
69
+ /** Notice under a document longer than the render cap. */
70
+ pagesTruncated(shown: number, total: number): string;
71
+ /** Alert shown when the document cannot be rendered. */
72
+ renderFailed: string;
73
+ }
36
74
  export interface PdfViewerProps {
37
75
  /** Bytes of the PDF. Fetched by the host over the authenticated serve route. */
38
76
  data: ArrayBuffer;
@@ -43,7 +81,9 @@ export interface PdfViewerProps {
43
81
  className?: string;
44
82
  /** Accessible name for the rendered document region. */
45
83
  ariaLabel?: string;
84
+ /** Resolved text. Required: the viewer invents no words of its own. */
85
+ labels: PdfViewerLabels;
46
86
  }
47
- export declare function PdfViewer({ data, firstPageOnly, targetWidth, className, ariaLabel, }: PdfViewerProps): React.JSX.Element;
87
+ export declare function PdfViewer({ data, firstPageOnly, targetWidth, className, ariaLabel, labels, }: PdfViewerProps): React.JSX.Element;
48
88
  export default PdfViewer;
49
89
  //# sourceMappingURL=pdf-viewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-viewer.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/pdf-viewer/pdf-viewer.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA0C9B,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,IAAI,EAAE,WAAW,CAAA;IACjB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,aAAqB,EACrB,WAAW,EACX,SAAS,EACT,SAAS,GACV,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwGpC;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"pdf-viewer.d.ts","sourceRoot":"","sources":["../../../../../../src/components/data-display/pdf-viewer/pdf-viewer.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAezD;AAOD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,0DAA0D;IAC1D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACpD,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,IAAI,EAAE,WAAW,CAAA;IACjB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,aAAqB,EACrB,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,GACP,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAoHpC;AAED,eAAe,SAAS,CAAA"}
@@ -28,54 +28,71 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
28
28
  *
29
29
  * ## Worker
30
30
  *
31
- * PDF.js parses on a Web Worker. The URL is resolved through `import.meta.url` so
32
- * every bundler (the app's Vite, the site's Astro, the docs' Docusaurus) emits and
33
- * fingerprints it as an asset rather than fetching from a CDN — a CDN worker would
34
- * both leak document bytes' provenance and require a `worker-src` exception the CSP
35
- * pipeline should not have to make. The app's CSP must allow `worker-src 'self' blob:`.
31
+ * PDF.js parses on a Web Worker. ONE port for the whole module, installed lazily on the
32
+ * first render (`ensurePdfViewerWorkerPort`) and assigned to `GlobalWorkerOptions.workerPort`:
33
+ * the pdf.js worker multiplexes documents by id, so several viewers mounted at once (a
34
+ * THUMBNAIL in a list plus an overlay, say) share it safely, and the shared port avoids
35
+ * spawning a worker per rendered thumbnail. A per-instance `PDFWorker` was tried first
36
+ * out of a concurrency worry that does not apply.
37
+ *
38
+ * WHERE the worker comes from is the host's decision (issue #962, `pdf-viewer-worker.ts`):
39
+ * a factory registered through `configurePdfViewerWorker` wins; otherwise the Vite default
40
+ * in `pdf-viewer-worker.vite.ts` is imported — and only then, so a non-Vite bundler that
41
+ * registered a factory never compiles the `?worker` import. The default is a same-origin
42
+ * file URL, so the `SAAS_APP` CSP baseline needs nothing beyond `script-src 'self'`; the
43
+ * cross-origin (CDN publish) case and its `worker-src blob:` note live with the seam.
44
+ *
45
+ * ## Text
46
+ *
47
+ * The viewer is label-agnostic: every string it shows or announces arrives resolved in
48
+ * `labels` from its host, which owns the component's i18n catalog. A failure is shown
49
+ * as the host's labelled message and the cause is logged — a raw pdf.js exception
50
+ * message is developer text, not something to put in front of a reader.
36
51
  */
37
52
  import * as React from "react";
38
- import { cn, Text, Skeleton } from "@wildo-ai/saas-frontend-lib";
53
+ import { cn, Text, Skeleton, LoggerFrontendService } from "@wildo-ai/saas-frontend-lib";
39
54
  import * as pdfjs from "pdfjs-dist";
40
- // Same-origin, bundler-emitted worker (see the header note on CSP).
41
- //
42
- // ⚠️ TWO earlier attempts failed at RENDER time, not build time — which is why they
43
- // survived typecheck and the lazy-boundary guard. Both are recorded so the next
44
- // author does not walk back into them:
45
- //
46
- // 1. `new URL('pdfjs-dist/build/pdf.worker.min.mjs', import.meta.url)` — `new URL()`
47
- // resolves only RELATIVE paths against the module URL; a bare package specifier
48
- // is not bundler-resolved, so the browser requested a path that does not exist
49
- // and pdf.js reported `Setting up fake worker failed`.
50
- // 2. `?url` + `GlobalWorkerOptions.workerSrc` — the URL resolved and the file was
51
- // served (200), but pdf.js instantiates a `workerSrc` string as a CLASSIC worker
52
- // while pdf.js 6 ships the worker as an ES module. The worker never completed its
53
- // handshake, so `getDocument()` hung forever with no error to show.
54
- //
55
- // `?worker` hands us a bundler-generated constructor that already carries the right
56
- // worker type, which removes the classic-vs-module question entirely. It is a Vite
57
- // asset-import suffix: Vite is what the generated application uses, and the
58
- // alternatives are worse (a relative path into `node_modules` breaks under any
59
- // hoisting layout; a CDN URL leaks document provenance and needs a `worker-src`
60
- // exception the CSP pipeline should not have to make). A non-Vite consumer must
61
- // supply its own worker — tracked as portability work, not papered over here.
62
- //
63
- // ONE port for the whole module, assigned to `GlobalWorkerOptions.workerPort`. A
64
- // per-instance `PDFWorker` was tried first out of a concurrency worry that does not
65
- // apply: the pdf.js worker multiplexes documents by id, so several viewers mounted at
66
- // once (a THUMBNAIL in a list plus an overlay, say) share it safely — and the shared
67
- // port also avoids spawning a worker per rendered thumbnail. The worker is created
68
- // when this module loads, which is already behind the lazy boundary.
69
- // @ts-expect-error -- `?worker` is a Vite asset-import suffix with no TS declaration.
70
- import PdfJsWorker from 'pdfjs-dist/build/pdf.worker.min.mjs?worker';
71
- pdfjs.GlobalWorkerOptions.workerPort = new PdfJsWorker();
55
+ import { resolveConfiguredPdfViewerWorkerFactory } from "./pdf-viewer-worker.js";
56
+ import { describeCaughtError } from '@wildo-ai/saas-models';
57
+ let workerPortInstallation = null;
58
+ /**
59
+ * Install the module-wide worker port once, from the host's factory when one is registered and from
60
+ * the Vite default otherwise (issue #962). Idempotent and memoised: every render awaits the same
61
+ * installation, and a factory registered AFTER it is not consulted. The Vite module is reached
62
+ * through a dynamic import that webpack is told not to follow (`webpackIgnore`), which is what keeps
63
+ * its `?worker` specifier out of a non-Vite graph; a host on such a bundler that registered no
64
+ * factory gets a rejected installation here — surfaced as the viewer's labelled failure with the
65
+ * cause in the log, never a hang.
66
+ */
67
+ export function ensurePdfViewerWorkerPort() {
68
+ if (workerPortInstallation === null) {
69
+ workerPortInstallation = (async () => {
70
+ const configured = resolveConfiguredPdfViewerWorkerFactory();
71
+ const worker = configured
72
+ ? configured()
73
+ : (await import(/* webpackIgnore: true */ './pdf-viewer-worker.vite')).createViteDefaultPdfViewerWorker();
74
+ pdfjs.GlobalWorkerOptions.workerPort = worker;
75
+ })().catch((cause) => {
76
+ // A failed installation must not poison every later render: the next one asks again.
77
+ workerPortInstallation = null;
78
+ throw cause;
79
+ });
80
+ }
81
+ return workerPortInstallation;
82
+ }
72
83
  /** Hard cap on rasterised pages — a bound, not a product limit. */
73
84
  const MAX_RENDERED_PAGES = 50;
74
- export function PdfViewer({ data, firstPageOnly = false, targetWidth, className, ariaLabel, }) {
85
+ const logger = LoggerFrontendService.getLogger();
86
+ export function PdfViewer({ data, firstPageOnly = false, targetWidth, className, ariaLabel, labels, }) {
75
87
  const containerRef = React.useRef(null);
76
88
  const [pageCount, setPageCount] = React.useState(null);
77
- const [error, setError] = React.useState(null);
89
+ const [renderFailed, setRenderFailed] = React.useState(false);
78
90
  const [rendering, setRendering] = React.useState(true);
91
+ // Read through a ref inside the render effect: `labels.page` is a function the host
92
+ // may recreate every render, and re-rasterising a whole document because a label
93
+ // closure changed identity would be a visible flicker for no reason.
94
+ const pageLabelRef = React.useRef(labels.page);
95
+ pageLabelRef.current = labels.page;
79
96
  React.useEffect(() => {
80
97
  let cancelled = false;
81
98
  let document_ = null;
@@ -88,10 +105,13 @@ export function PdfViewer({ data, firstPageOnly = false, targetWidth, className,
88
105
  // Hand it a copy; the host keeps its own.
89
106
  const ownedData = data.slice(0);
90
107
  setRendering(true);
91
- setError(null);
108
+ setRenderFailed(false);
92
109
  container.replaceChildren();
93
110
  void (async () => {
94
111
  try {
112
+ await ensurePdfViewerWorkerPort();
113
+ if (cancelled)
114
+ return;
95
115
  loadingTask = pdfjs.getDocument({ data: ownedData });
96
116
  document_ = await loadingTask.promise;
97
117
  if (cancelled)
@@ -122,7 +142,7 @@ export function PdfViewer({ data, firstPageOnly = false, targetWidth, className,
122
142
  canvas.style.height = `${Math.floor(viewport.height / dpr)}px`;
123
143
  canvas.className = 'mx-auto max-w-full rounded-md border border-border shadow-xs';
124
144
  canvas.setAttribute('role', 'img');
125
- canvas.setAttribute('aria-label', `Page ${pageNumber}`);
145
+ canvas.setAttribute('aria-label', pageLabelRef.current(pageNumber));
126
146
  // ATTACH BEFORE RENDERING. Rendering into a detached canvas and appending
127
147
  // afterwards left `page.render()` unsettled indefinitely (observed live:
128
148
  // "rendering page 1" with no completion). Attaching first also makes pages
@@ -138,8 +158,12 @@ export function PdfViewer({ data, firstPageOnly = false, targetWidth, className,
138
158
  }
139
159
  }
140
160
  catch (cause) {
141
- if (!cancelled)
142
- setError(cause instanceof Error ? cause.message : String(cause));
161
+ if (!cancelled) {
162
+ logger.warn('[PdfViewer] document could not be rendered', {
163
+ error: describeCaughtError(cause),
164
+ });
165
+ setRenderFailed(true);
166
+ }
143
167
  }
144
168
  finally {
145
169
  if (!cancelled)
@@ -156,10 +180,10 @@ export function PdfViewer({ data, firstPageOnly = false, targetWidth, className,
156
180
  void document_?.cleanup();
157
181
  };
158
182
  }, [data, firstPageOnly, targetWidth]);
159
- return (_jsxs("div", { className: cn('w-full', className), "aria-label": ariaLabel, "aria-busy": rendering || undefined, children: [rendering && _jsx(Skeleton, { className: "h-64 w-full", "aria-hidden": "true" }), error && (_jsx(Text, { className: "text-sm text-destructive", role: "alert", children: error })), _jsx("div", { ref: containerRef, className: "flex flex-col gap-item" }), !firstPageOnly && pageCount !== null && pageCount > MAX_RENDERED_PAGES && (
183
+ return (_jsxs("div", { className: cn('w-full', className), "aria-label": ariaLabel, "aria-busy": rendering || undefined, children: [rendering && _jsx(Skeleton, { className: "h-64 w-full", "aria-hidden": "true" }), renderFailed && (_jsx(Text, { className: "text-sm text-destructive", role: "alert", children: labels.renderFailed })), _jsx("div", { ref: containerRef, className: "flex flex-col gap-item" }), !firstPageOnly && pageCount !== null && pageCount > MAX_RENDERED_PAGES && (
160
184
  // Say what was NOT rendered rather than silently truncating — a document that
161
185
  // looks complete but is not is worse than an explicit bound.
162
- _jsx(Text, { className: "mt-item text-xs text-muted-foreground", children: `Showing the first ${MAX_RENDERED_PAGES} of ${pageCount} pages.` }))] }));
186
+ _jsx(Text, { className: "mt-item text-xs text-muted-foreground", children: labels.pagesTruncated(MAX_RENDERED_PAGES, pageCount) }))] }));
163
187
  }
164
188
  export default PdfViewer;
165
189
  //# sourceMappingURL=pdf-viewer.js.map