@flamingo-stack/openframe-frontend-core 0.0.764 → 0.0.766

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 (1275) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/chat-protocol/decode.d.ts +0 -1
  3. package/dist/chat-protocol/decode.d.ts.map +1 -1
  4. package/dist/chat-protocol/decode.js +1 -3
  5. package/dist/chat-protocol/index.d.ts +1 -0
  6. package/dist/chat-protocol/index.d.ts.map +1 -1
  7. package/dist/chat-protocol/index.js +2 -0
  8. package/dist/{chunk-FQSXZC2K.cjs → chunk-2JRSYWFP.cjs} +3 -3
  9. package/dist/{chunk-I5MSCD57.cjs → chunk-3LW5TD54.cjs} +7 -3
  10. package/dist/{chunk-7AM3AFM4.cjs → chunk-4YIDZCTL.cjs} +1 -3
  11. package/dist/{chunk-SVP6DJFL.cjs → chunk-57B5RUYD.cjs} +2 -2
  12. package/dist/{chunk-R3TWQ3ZJ.cjs → chunk-5P4TDV7V.cjs} +16 -7
  13. package/dist/chunk-65VVJSQZ.cjs +109 -0
  14. package/dist/{chunk-LNGR4DXA.cjs → chunk-7U3ELNGC.cjs} +103 -61
  15. package/dist/{chunk-T5FRANE6.cjs → chunk-7VI7TOGI.cjs} +509 -353
  16. package/dist/{chunk-5AV5R5RC.cjs → chunk-7XFVUUVZ.cjs} +14 -14
  17. package/dist/{chunk-M7YZGRAV.cjs → chunk-AAECWUNV.cjs} +35 -8
  18. package/dist/{chunk-YUMFVQIN.cjs → chunk-C42WIUH6.cjs} +11 -5
  19. package/dist/{chunk-22XAPV6N.cjs → chunk-DGNBXZXT.cjs} +1069 -1020
  20. package/dist/{chunk-HOTM4UM6.cjs → chunk-E76ONBKF.cjs} +28 -0
  21. package/dist/{chunk-PERN37KO.cjs → chunk-F7R3U5EN.cjs} +5 -25
  22. package/dist/{chunk-K6VWTUCH.cjs → chunk-FL2RMEDX.cjs} +2 -2
  23. package/dist/chunk-FZB4RMRK.cjs +695 -0
  24. package/dist/{chunk-BIA77I6B.cjs → chunk-GTONIRJU.cjs} +56 -54
  25. package/dist/{chunk-3FC6AKEJ.cjs → chunk-HNQRY6RU.cjs} +200 -87
  26. package/dist/chunk-INI4ADPT.cjs +495 -0
  27. package/dist/{chunk-JD7CL2I6.cjs → chunk-JGWN6GH5.cjs} +11 -7
  28. package/dist/{chunk-RYSNH2VY.cjs → chunk-JKQVKWLB.cjs} +258 -179
  29. package/dist/{chunk-EQZXJUYV.cjs → chunk-JTSUAHDL.cjs} +73 -51
  30. package/dist/chunk-K3IHNXR4.cjs +40 -0
  31. package/dist/{chunk-EFTUFJS2.cjs → chunk-LELS4XMX.cjs} +20 -22
  32. package/dist/{chunk-ZCU2PYCW.cjs → chunk-MPTMT773.cjs} +62 -62
  33. package/dist/{chunk-LVKUMVUJ.cjs → chunk-NBVZIHGS.cjs} +12 -8
  34. package/dist/{chunk-IDGOMHTC.cjs → chunk-NF3PBWDJ.cjs} +521 -413
  35. package/dist/{chunk-7GUWPGB4.cjs → chunk-NJMZ3N7Q.cjs} +44 -44
  36. package/dist/{chunk-OJJ4RL2T.cjs → chunk-R3JX4MXD.cjs} +4 -4
  37. package/dist/{chunk-GY2JESOC.cjs → chunk-RB7VLVMD.cjs} +15 -15
  38. package/dist/{chunk-47GZ33ND.cjs → chunk-REJMFXGD.cjs} +198 -73
  39. package/dist/chunk-RMUSPTJN.cjs +102 -0
  40. package/dist/{chunk-3RFQPQ7Z.cjs → chunk-RNLRS4ID.cjs} +3 -3
  41. package/dist/{chunk-ZG6F5A3A.cjs → chunk-RTBYQWAV.cjs} +286 -201
  42. package/dist/{chunk-63N4FN5V.cjs → chunk-SETFUCZA.cjs} +7 -7
  43. package/dist/{chunk-2QMBXGMQ.cjs → chunk-TF5D5MNO.cjs} +222 -120
  44. package/dist/{chunk-NET74KSQ.cjs → chunk-TZ4GKUO2.cjs} +5 -5
  45. package/dist/{chunk-JJ2S6C5U.cjs → chunk-UW7UWUZU.cjs} +105 -117
  46. package/dist/{chunk-MWLD6NXV.cjs → chunk-VFZFCRAL.cjs} +4 -6
  47. package/dist/{chunk-VL6IXTAI.cjs → chunk-VRDHAR3X.cjs} +4229 -3918
  48. package/dist/{chunk-NJS7FQRW.cjs → chunk-VYYLYZUC.cjs} +207 -74
  49. package/dist/{chunk-NO5UJLLQ.cjs → chunk-WEANWBJH.cjs} +6 -1
  50. package/dist/{chunk-XFNWHCRM.cjs → chunk-WO3XO27C.cjs} +13 -13
  51. package/dist/{chunk-L2V7K7RR.cjs → chunk-X7ECVSVN.cjs} +43 -41
  52. package/dist/chunk-XFRBEXQN.cjs +304 -0
  53. package/dist/{chunk-AKK3EO37.cjs → chunk-XIFEZ2JT.cjs} +35 -23
  54. package/dist/{chunk-XCH7SPGI.cjs → chunk-XVFM6SJA.cjs} +61 -52
  55. package/dist/{chunk-3RYIF4OW.cjs → chunk-XXJL5GY3.cjs} +3 -3
  56. package/dist/{chunk-GZKWF6NH.cjs → chunk-XZ6DKGT4.cjs} +34 -34
  57. package/dist/{chunk-74ALTXXC.cjs → chunk-YL6ZB2SR.cjs} +1624 -1440
  58. package/dist/{chunk-TSJUL6IH.cjs → chunk-YRFWOJF4.cjs} +16 -8
  59. package/dist/{chunk-HTRILBJD.cjs → chunk-YXDHVHB2.cjs} +30 -13
  60. package/dist/{chunk-RO72PRQI.cjs → chunk-ZRDMGMY7.cjs} +75 -50
  61. package/dist/{chunk-2IFCRPNP.cjs → chunk-ZV45VS6K.cjs} +369 -433
  62. package/dist/{cloud-tenants-N5CLYDPU.cjs → cloud-tenants-U2KMEIO7.cjs} +35 -39
  63. package/dist/components/agent-identity.d.ts +1 -2
  64. package/dist/components/agent-identity.d.ts.map +1 -1
  65. package/dist/components/agent-identity.js +0 -1
  66. package/dist/components/agent-mark.d.ts +4 -6
  67. package/dist/components/agent-mark.d.ts.map +1 -1
  68. package/dist/components/agent-mark.js +7 -8
  69. package/dist/components/authors/author-detail-view.d.ts.map +1 -1
  70. package/dist/components/authors/author-detail-view.js +51 -18
  71. package/dist/components/calendar.cjs +10 -10
  72. package/dist/components/case-studies/entity-quotes-panel.d.ts +6 -4
  73. package/dist/components/case-studies/entity-quotes-panel.d.ts.map +1 -1
  74. package/dist/components/case-studies/entity-quotes-panel.js +44 -11
  75. package/dist/components/case-studies/index.cjs +140 -70
  76. package/dist/components/case-studies/index.d.ts +2 -2
  77. package/dist/components/case-studies/index.d.ts.map +1 -1
  78. package/dist/components/case-studies/index.js +5 -2
  79. package/dist/components/case-studies/quote-cards-strip.d.ts +23 -2
  80. package/dist/components/case-studies/quote-cards-strip.d.ts.map +1 -1
  81. package/dist/components/case-studies/quote-cards-strip.js +48 -10
  82. package/dist/components/categories-cart.d.ts +7 -0
  83. package/dist/components/categories-cart.d.ts.map +1 -1
  84. package/dist/components/categories-cart.js +58 -36
  85. package/dist/components/category-card.js +1 -1
  86. package/dist/components/chat/chat-attachment-bar.js +1 -1
  87. package/dist/components/chat/chat-container.d.ts.map +1 -1
  88. package/dist/components/chat/chat-container.js +2 -1
  89. package/dist/components/chat/chat-ticket-list.d.ts +0 -1
  90. package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
  91. package/dist/components/chat/chat-turn.d.ts +31 -1
  92. package/dist/components/chat/chat-turn.d.ts.map +1 -1
  93. package/dist/components/chat/chat-turn.js +85 -19
  94. package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
  95. package/dist/components/chat/embeddable-chat.js +1 -1
  96. package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts +0 -15
  97. package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts.map +1 -1
  98. package/dist/components/chat/entity-cards/admin-content-card-grid.js +2 -38
  99. package/dist/components/chat/entity-cards/admin-content-card.d.ts +15 -0
  100. package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -1
  101. package/dist/components/chat/entity-cards/admin-content-card.js +52 -10
  102. package/dist/components/chat/entity-cards/blog-card.d.ts +9 -2
  103. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
  104. package/dist/components/chat/entity-cards/blog-card.js +49 -33
  105. package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -1
  106. package/dist/components/chat/entity-cards/campaign-card-admin.js +4 -11
  107. package/dist/components/chat/entity-cards/case-study-card.d.ts +27 -9
  108. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
  109. package/dist/components/chat/entity-cards/case-study-card.js +80 -54
  110. package/dist/components/chat/entity-cards/chat-ticket-item.d.ts +7 -0
  111. package/dist/components/chat/entity-cards/chat-ticket-item.d.ts.map +1 -1
  112. package/dist/components/chat/entity-cards/chat-ticket-item.js +24 -28
  113. package/dist/components/chat/entity-cards/customer-interview-card.d.ts +9 -2
  114. package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -1
  115. package/dist/components/chat/entity-cards/customer-interview-card.js +39 -36
  116. package/dist/components/chat/entity-cards/data-room-doc-card.d.ts.map +1 -1
  117. package/dist/components/chat/entity-cards/data-room-doc-card.js +14 -16
  118. package/dist/components/chat/entity-cards/design-doc-card.d.ts +8 -2
  119. package/dist/components/chat/entity-cards/design-doc-card.d.ts.map +1 -1
  120. package/dist/components/chat/entity-cards/design-doc-card.js +37 -43
  121. package/dist/components/chat/entity-cards/dispatch.d.ts +2 -5
  122. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
  123. package/dist/components/chat/entity-cards/dispatch.js +6 -6
  124. package/dist/components/chat/entity-cards/employee-entry-card.d.ts.map +1 -1
  125. package/dist/components/chat/entity-cards/employee-entry-card.js +5 -5
  126. package/dist/components/chat/entity-cards/entity-author-card.d.ts +33 -6
  127. package/dist/components/chat/entity-cards/entity-author-card.d.ts.map +1 -1
  128. package/dist/components/chat/entity-cards/entity-author-card.js +98 -32
  129. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts +9 -0
  130. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts.map +1 -1
  131. package/dist/components/chat/entity-cards/entity-portrait-card.js +46 -18
  132. package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -1
  133. package/dist/components/chat/entity-cards/generic-entity-card.js +14 -17
  134. package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -1
  135. package/dist/components/chat/entity-cards/github-activity-card.js +15 -20
  136. package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -1
  137. package/dist/components/chat/entity-cards/hubspot-ticket-card.js +14 -19
  138. package/dist/components/chat/entity-cards/index.d.ts +8 -7
  139. package/dist/components/chat/entity-cards/index.d.ts.map +1 -1
  140. package/dist/components/chat/entity-cards/index.js +21 -8
  141. package/dist/components/chat/entity-cards/investor-update-card.d.ts +9 -3
  142. package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -1
  143. package/dist/components/chat/entity-cards/investor-update-card.js +28 -28
  144. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +11 -2
  145. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -1
  146. package/dist/components/chat/entity-cards/onboarding-guide-card.js +66 -63
  147. package/dist/components/chat/entity-cards/program-card.d.ts +9 -2
  148. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  149. package/dist/components/chat/entity-cards/program-card.js +69 -58
  150. package/dist/components/chat/entity-cards/roadmap-card.d.ts +10 -1
  151. package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -1
  152. package/dist/components/chat/entity-cards/roadmap-card.js +148 -156
  153. package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts.map +1 -1
  154. package/dist/components/chat/entity-cards/roadmap-vote-button.js +5 -1
  155. package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -1
  156. package/dist/components/chat/entity-cards/slack-message-card.js +23 -18
  157. package/dist/components/chat/hooks/index.d.ts +7 -1
  158. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  159. package/dist/components/chat/hooks/index.js +8 -1
  160. package/dist/components/chat/hooks/use-ask-prompts.d.ts.map +1 -1
  161. package/dist/components/chat/hooks/use-ask-prompts.js +3 -1
  162. package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts +1 -1
  163. package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts.map +1 -1
  164. package/dist/components/chat/hooks/use-chat-history-hydration.d.ts +1 -1
  165. package/dist/components/chat/hooks/use-chat-history-hydration.d.ts.map +1 -1
  166. package/dist/components/chat/hooks/use-chat.d.ts +1 -2
  167. package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
  168. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +0 -2
  169. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
  170. package/dist/components/chat/hooks/use-nats-chat-adapter.js +0 -8
  171. package/dist/components/chat/hooks/use-proxied-image-url.d.ts +17 -13
  172. package/dist/components/chat/hooks/use-proxied-image-url.d.ts.map +1 -1
  173. package/dist/components/chat/hooks/use-proxied-image-url.js +10 -8
  174. package/dist/components/chat/hooks/use-slash-commands.d.ts +1 -2
  175. package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -1
  176. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +1 -8
  177. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
  178. package/dist/components/chat/hooks/use-sse-chat-adapter.js +1 -1
  179. package/dist/components/chat/index.cjs +44 -29
  180. package/dist/components/chat/stream/chat-stream-reducer.d.ts +1 -1
  181. package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -1
  182. package/dist/components/chat/stream/chat-stream-reducer.js +1 -1
  183. package/dist/components/chat/types/entities/index.d.ts +6 -4
  184. package/dist/components/chat/types/entities/index.d.ts.map +1 -1
  185. package/dist/components/chat/types/entities/index.js +4 -4
  186. package/dist/components/chat/types/entities/investor-update.d.ts +1 -1
  187. package/dist/components/chat/types/entities/investor-update.d.ts.map +1 -1
  188. package/dist/components/chat/types/entities/program-types.d.ts +2 -1
  189. package/dist/components/chat/types/entities/program-types.d.ts.map +1 -1
  190. package/dist/components/chat/types/entities/program-types.js +1 -4
  191. package/dist/components/chat/utils/compact-card-classes.d.ts +9 -1
  192. package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
  193. package/dist/components/chat/utils/compact-card-classes.js +11 -2
  194. package/dist/components/chat/utils/compact-card-skeleton.d.ts +40 -0
  195. package/dist/components/chat/utils/compact-card-skeleton.d.ts.map +1 -0
  196. package/dist/components/chat/utils/compact-card-skeleton.js +61 -0
  197. package/dist/components/chat/utils/icon-library.d.ts +0 -1
  198. package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
  199. package/dist/components/chat/utils/index.d.ts +5 -3
  200. package/dist/components/chat/utils/index.d.ts.map +1 -1
  201. package/dist/components/chat/utils/index.js +3 -2
  202. package/dist/components/chat/utils/scroll-anchor.d.ts +1 -2
  203. package/dist/components/chat/utils/scroll-anchor.d.ts.map +1 -1
  204. package/dist/components/chat/utils/scroll-anchor.js +0 -1
  205. package/dist/components/chat/utils/source-row-cta.d.ts +0 -2
  206. package/dist/components/chat/utils/source-row-cta.d.ts.map +1 -1
  207. package/dist/components/chat/utils/source-row-cta.js +1 -2
  208. package/dist/components/comment-card.d.ts +15 -0
  209. package/dist/components/comment-card.d.ts.map +1 -1
  210. package/dist/components/comment-card.js +178 -119
  211. package/dist/components/comment-thread.d.ts +29 -0
  212. package/dist/components/comment-thread.d.ts.map +1 -1
  213. package/dist/components/comment-thread.js +76 -18
  214. package/dist/components/contact/index.cjs +36 -40
  215. package/dist/components/content-loading-container.d.ts +1 -1
  216. package/dist/components/docs/doc-viewer.d.ts.map +1 -1
  217. package/dist/components/docs/doc-viewer.js +10 -9
  218. package/dist/components/docs/index.cjs +39 -43
  219. package/dist/components/docs/skeletons.d.ts +0 -5
  220. package/dist/components/docs/skeletons.d.ts.map +1 -1
  221. package/dist/components/docs/skeletons.js +30 -50
  222. package/dist/components/docs/use-document-tree.d.ts +0 -1
  223. package/dist/components/docs/use-document-tree.d.ts.map +1 -1
  224. package/dist/components/docs/use-document-tree.js +6 -1
  225. package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
  226. package/dist/components/embeds/embed-iframe.js +3 -0
  227. package/dist/components/embeds/index.cjs +38 -40
  228. package/dist/components/embeds/index.d.ts +1 -1
  229. package/dist/components/embeds/index.d.ts.map +1 -1
  230. package/dist/components/embeds/index.js +2 -1
  231. package/dist/components/embeds/markdown-image.d.ts.map +1 -1
  232. package/dist/components/embeds/markdown-image.js +5 -2
  233. package/dist/components/embeds/og-link-preview.d.ts +7 -3
  234. package/dist/components/embeds/og-link-preview.d.ts.map +1 -1
  235. package/dist/components/embeds/og-link-preview.js +106 -62
  236. package/dist/components/faq/faq-document-page.d.ts +5 -1
  237. package/dist/components/faq/faq-document-page.d.ts.map +1 -1
  238. package/dist/components/faq/faq-document-page.js +5 -1
  239. package/dist/components/faq/faq-section.d.ts +34 -1
  240. package/dist/components/faq/faq-section.d.ts.map +1 -1
  241. package/dist/components/faq/faq-section.js +146 -59
  242. package/dist/components/faq/index.cjs +41 -41
  243. package/dist/components/faq/index.d.ts +1 -1
  244. package/dist/components/faq/index.d.ts.map +1 -1
  245. package/dist/components/faq/index.js +9 -1
  246. package/dist/components/faq-accordion.d.ts +15 -0
  247. package/dist/components/faq-accordion.d.ts.map +1 -1
  248. package/dist/components/faq-accordion.js +37 -9
  249. package/dist/components/features/ai-enrich/AIStatusIndicator.d.ts.map +1 -1
  250. package/dist/components/features/ai-enrich/AIStatusIndicator.js +2 -1
  251. package/dist/components/features/approval-level.d.ts +15 -1
  252. package/dist/components/features/approval-level.d.ts.map +1 -1
  253. package/dist/components/features/approval-level.js +42 -6
  254. package/dist/components/features/capability-explorer.d.ts +5 -1
  255. package/dist/components/features/capability-explorer.d.ts.map +1 -1
  256. package/dist/components/features/capability-explorer.js +42 -37
  257. package/dist/components/features/cards-strip.d.ts +9 -0
  258. package/dist/components/features/cards-strip.d.ts.map +1 -1
  259. package/dist/components/features/cards-strip.js +35 -11
  260. package/dist/components/features/command-box.d.ts +19 -0
  261. package/dist/components/features/command-box.d.ts.map +1 -1
  262. package/dist/components/features/command-box.js +103 -11
  263. package/dist/components/features/conversation-card.d.ts +70 -5
  264. package/dist/components/features/conversation-card.d.ts.map +1 -1
  265. package/dist/components/features/conversation-card.js +146 -13
  266. package/dist/components/features/devices/device-selector/device-selector.d.ts.map +1 -1
  267. package/dist/components/features/devices/device-selector/device-selector.js +1 -0
  268. package/dist/components/features/devices/devices-panel-view.d.ts +1 -1
  269. package/dist/components/features/devices/devices-panel-view.js +1 -1
  270. package/dist/components/features/entity-tag-badges.d.ts +32 -7
  271. package/dist/components/features/entity-tag-badges.d.ts.map +1 -1
  272. package/dist/components/features/entity-tag-badges.js +73 -9
  273. package/dist/components/features/entity-video-section.d.ts +14 -14
  274. package/dist/components/features/entity-video-section.d.ts.map +1 -1
  275. package/dist/components/features/entity-video-section.js +29 -22
  276. package/dist/components/features/figma-prototype-viewer.d.ts.map +1 -1
  277. package/dist/components/features/figma-prototype-viewer.js +3 -10
  278. package/dist/components/features/index.cjs +77 -39
  279. package/dist/components/features/index.d.ts +3 -0
  280. package/dist/components/features/index.d.ts.map +1 -1
  281. package/dist/components/features/index.js +5 -0
  282. package/dist/components/features/knowledge-base/index.d.ts +2 -1
  283. package/dist/components/features/knowledge-base/index.d.ts.map +1 -1
  284. package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts +0 -1
  285. package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts.map +1 -1
  286. package/dist/components/features/model-token-rates.d.ts.map +1 -1
  287. package/dist/components/features/model-token-rates.js +50 -78
  288. package/dist/components/features/notifications/approval-request-notification-tile.d.ts.map +1 -1
  289. package/dist/components/features/notifications/approval-request-notification-tile.js +9 -5
  290. package/dist/components/features/notifications/notification-tile.d.ts +22 -7
  291. package/dist/components/features/notifications/notification-tile.d.ts.map +1 -1
  292. package/dist/components/features/notifications/notification-tile.js +42 -15
  293. package/dist/components/features/paths-display.d.ts +9 -0
  294. package/dist/components/features/paths-display.d.ts.map +1 -1
  295. package/dist/components/features/paths-display.js +50 -5
  296. package/dist/components/features/platform-badge.d.ts +2 -0
  297. package/dist/components/features/platform-badge.d.ts.map +1 -1
  298. package/dist/components/features/platform-badge.js +33 -2
  299. package/dist/components/features/push-button-selector.d.ts +23 -1
  300. package/dist/components/features/push-button-selector.d.ts.map +1 -1
  301. package/dist/components/features/push-button-selector.js +114 -41
  302. package/dist/components/features/remote-session/index.d.ts +2 -2
  303. package/dist/components/features/remote-session/index.d.ts.map +1 -1
  304. package/dist/components/features/remote-session/index.js +3 -3
  305. package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts +2 -0
  306. package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts.map +1 -1
  307. package/dist/components/features/remote-session/remote-desktop-chat-message-row.js +18 -4
  308. package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts.map +1 -1
  309. package/dist/components/features/remote-session/remote-desktop-chat-panel.js +11 -2
  310. package/dist/components/features/remote-session/remote-desktop-view.d.ts +6 -6
  311. package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -1
  312. package/dist/components/features/remote-session/remote-desktop-view.js +27 -27
  313. package/dist/components/features/remote-session/remote-session-chat-panel.js +1 -1
  314. package/dist/components/features/status-filter-component.d.ts +19 -1
  315. package/dist/components/features/status-filter-component.d.ts.map +1 -1
  316. package/dist/components/features/status-filter-component.js +106 -43
  317. package/dist/components/features/use-video-warmup.d.ts +1 -1
  318. package/dist/components/features/use-video-warmup.d.ts.map +1 -1
  319. package/dist/components/features/use-video-warmup.js +2 -5
  320. package/dist/components/features/use-walkthrough-video.d.ts.map +1 -1
  321. package/dist/components/features/use-walkthrough-video.js +4 -1
  322. package/dist/components/features/video-bites-strip.d.ts +42 -1
  323. package/dist/components/features/video-bites-strip.d.ts.map +1 -1
  324. package/dist/components/features/video-bites-strip.js +100 -21
  325. package/dist/components/features/video-hover-preview.d.ts +1 -1
  326. package/dist/components/features/video-hover-preview.d.ts.map +1 -1
  327. package/dist/components/features/video.d.ts +9 -2
  328. package/dist/components/features/video.d.ts.map +1 -1
  329. package/dist/components/features/video.js +10 -5
  330. package/dist/components/features/walkthrough-video.d.ts.map +1 -1
  331. package/dist/components/features/walkthrough-video.js +5 -1
  332. package/dist/components/help-center-pages/download-apps-page.d.ts.map +1 -1
  333. package/dist/components/help-center-pages/download-apps-page.js +65 -33
  334. package/dist/components/help-center-pages/index.cjs +410 -316
  335. package/dist/components/help-center-pages/trust-center-page.d.ts +21 -9
  336. package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
  337. package/dist/components/help-center-pages/trust-center-page.js +100 -67
  338. package/dist/components/help-center-pages/trust-center-sections.d.ts +19 -14
  339. package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
  340. package/dist/components/help-center-pages/trust-center-sections.js +124 -97
  341. package/dist/components/icon-display.d.ts.map +1 -1
  342. package/dist/components/icon-display.js +6 -0
  343. package/dist/components/index.cjs +1505 -380
  344. package/dist/components/index.d.ts +5 -2
  345. package/dist/components/index.d.ts.map +1 -1
  346. package/dist/components/index.js +12 -2
  347. package/dist/components/interactive-wrapper.d.ts.map +1 -1
  348. package/dist/components/interactive-wrapper.js +2 -1
  349. package/dist/components/layout/list-page-layout.d.ts +3 -3
  350. package/dist/components/layout/list-page-layout.d.ts.map +1 -1
  351. package/dist/components/layout/page-container.d.ts +8 -1
  352. package/dist/components/layout/page-container.d.ts.map +1 -1
  353. package/dist/components/layout/page-container.js +25 -10
  354. package/dist/components/layout/page-data-sync.d.ts +7 -1
  355. package/dist/components/layout/page-data-sync.d.ts.map +1 -1
  356. package/dist/components/layout/page-data-sync.js +13 -4
  357. package/dist/components/layout/page-heading.d.ts +31 -0
  358. package/dist/components/layout/page-heading.d.ts.map +1 -1
  359. package/dist/components/layout/page-heading.js +44 -1
  360. package/dist/components/layout/page-layout.d.ts +4 -4
  361. package/dist/components/layout/page-layout.d.ts.map +1 -1
  362. package/dist/components/layout/page-layout.js +4 -5
  363. package/dist/components/layout/title-block.d.ts +12 -1
  364. package/dist/components/layout/title-block.d.ts.map +1 -1
  365. package/dist/components/layout/title-block.js +50 -12
  366. package/dist/components/loading/category-vendor-selector-skeleton.d.ts +3 -0
  367. package/dist/components/loading/category-vendor-selector-skeleton.d.ts.map +1 -1
  368. package/dist/components/loading/deprecated-layout-skeletons.d.ts +25 -0
  369. package/dist/components/loading/deprecated-layout-skeletons.d.ts.map +1 -0
  370. package/dist/components/loading/deprecated-layout-skeletons.js +78 -0
  371. package/dist/components/loading/device-card-skeleton.js +4 -4
  372. package/dist/components/loading/index.d.ts +4 -3
  373. package/dist/components/loading/index.d.ts.map +1 -1
  374. package/dist/components/loading/index.js +10 -16
  375. package/dist/components/loading/loading-region.d.ts +10 -9
  376. package/dist/components/loading/loading-region.d.ts.map +1 -1
  377. package/dist/components/loading/loading-region.js +4 -1
  378. package/dist/components/loading/msp-profile-form-skeleton.d.ts +2 -0
  379. package/dist/components/loading/msp-profile-form-skeleton.d.ts.map +1 -1
  380. package/dist/components/loading/organization-card-skeleton.d.ts +14 -10
  381. package/dist/components/loading/organization-card-skeleton.d.ts.map +1 -1
  382. package/dist/components/loading/organization-card-skeleton.js +38 -40
  383. package/dist/components/loading/page-layout-skeleton.d.ts +7 -51
  384. package/dist/components/loading/page-layout-skeleton.d.ts.map +1 -1
  385. package/dist/components/loading/page-layout-skeleton.js +2 -411
  386. package/dist/components/loading/settings-form-skeleton.d.ts +2 -0
  387. package/dist/components/loading/settings-form-skeleton.d.ts.map +1 -1
  388. package/dist/components/loading/unified-skeleton.d.ts +57 -9
  389. package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
  390. package/dist/components/loading/unified-skeleton.js +57 -8
  391. package/dist/components/log-severity-dot.d.ts +2 -0
  392. package/dist/components/log-severity-dot.d.ts.map +1 -1
  393. package/dist/components/log-severity-dot.js +11 -13
  394. package/dist/components/logs-list.d.ts.map +1 -1
  395. package/dist/components/logs-list.js +34 -43
  396. package/dist/components/media-carousel.d.ts +0 -1
  397. package/dist/components/media-carousel.d.ts.map +1 -1
  398. package/dist/components/meeting-scheduler/booking-form.d.ts +52 -8
  399. package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
  400. package/dist/components/meeting-scheduler/booking-form.js +150 -30
  401. package/dist/components/meeting-scheduler/context-panel.d.ts +18 -2
  402. package/dist/components/meeting-scheduler/context-panel.d.ts.map +1 -1
  403. package/dist/components/meeting-scheduler/context-panel.js +61 -23
  404. package/dist/components/meeting-scheduler/directory.d.ts +11 -1
  405. package/dist/components/meeting-scheduler/directory.d.ts.map +1 -1
  406. package/dist/components/meeting-scheduler/directory.js +47 -27
  407. package/dist/components/meeting-scheduler/index.cjs +556 -344
  408. package/dist/components/meeting-scheduler/index.d.ts +5 -4
  409. package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
  410. package/dist/components/meeting-scheduler/index.js +127 -102
  411. package/dist/components/meeting-scheduler/modal-header.d.ts +7 -3
  412. package/dist/components/meeting-scheduler/modal-header.d.ts.map +1 -1
  413. package/dist/components/meeting-scheduler/modal-header.js +29 -18
  414. package/dist/components/meeting-scheduler/slot-picker.d.ts +11 -4
  415. package/dist/components/meeting-scheduler/slot-picker.d.ts.map +1 -1
  416. package/dist/components/meeting-scheduler/slot-picker.js +12 -7
  417. package/dist/components/metric-value.d.ts +5 -0
  418. package/dist/components/metric-value.d.ts.map +1 -1
  419. package/dist/components/metric-value.js +15 -3
  420. package/dist/components/msp-display.d.ts +5 -0
  421. package/dist/components/msp-display.d.ts.map +1 -1
  422. package/dist/components/msp-display.js +19 -14
  423. package/dist/components/navigation/app-layout.d.ts +0 -2
  424. package/dist/components/navigation/app-layout.d.ts.map +1 -1
  425. package/dist/components/navigation/app-layout.js +1 -4
  426. package/dist/components/navigation/index.cjs +48 -42
  427. package/dist/components/navigation/index.d.ts +8 -3
  428. package/dist/components/navigation/index.d.ts.map +1 -1
  429. package/dist/components/navigation/index.js +18 -3
  430. package/dist/components/navigation/mingo-ai-button.d.ts +0 -2
  431. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  432. package/dist/components/navigation/mingo-ai-button.js +2 -4
  433. package/dist/components/navigation/mobile-nav-sheet.d.ts +0 -1
  434. package/dist/components/navigation/mobile-nav-sheet.d.ts.map +1 -1
  435. package/dist/components/navigation/mobile-nav-sheet.js +0 -2
  436. package/dist/components/navigation/multi-level-navigation.d.ts +21 -0
  437. package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -1
  438. package/dist/components/navigation/multi-level-navigation.js +98 -24
  439. package/dist/components/navigation/page-section-bar.d.ts +50 -0
  440. package/dist/components/navigation/page-section-bar.d.ts.map +1 -0
  441. package/dist/components/navigation/page-section-bar.js +85 -0
  442. package/dist/components/navigation/sticky-section-nav.d.ts +12 -0
  443. package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
  444. package/dist/components/navigation/sticky-section-nav.js +87 -20
  445. package/dist/components/navigation/ticket-alerts-button.js +1 -1
  446. package/dist/components/onboarding-guides/hooks/use-onboarding-guides.d.ts.map +1 -1
  447. package/dist/components/onboarding-guides/hooks/use-onboarding-guides.js +7 -1
  448. package/dist/components/onboarding-guides/index.cjs +38 -42
  449. package/dist/components/onboarding-guides/index.d.ts +1 -2
  450. package/dist/components/onboarding-guides/index.d.ts.map +1 -1
  451. package/dist/components/onboarding-guides/index.js +5 -3
  452. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +8 -0
  453. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
  454. package/dist/components/onboarding-guides/onboarding-guide-detail-view.js +142 -84
  455. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +18 -17
  456. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +1 -1
  457. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.js +28 -21
  458. package/dist/components/onboarding-guides/onboarding-guides-catalog-view.d.ts.map +1 -1
  459. package/dist/components/onboarding-guides/onboarding-guides-catalog-view.js +57 -18
  460. package/dist/components/pagination.d.ts +26 -2
  461. package/dist/components/pagination.d.ts.map +1 -1
  462. package/dist/components/pagination.js +61 -38
  463. package/dist/components/persistent-filter-controls.d.ts.map +1 -1
  464. package/dist/components/persistent-filter-controls.js +1 -2
  465. package/dist/components/persistent-pagination.d.ts.map +1 -1
  466. package/dist/components/persistent-pagination.js +3 -1
  467. package/dist/components/platform/ToolBadge.d.ts +13 -1
  468. package/dist/components/platform/ToolBadge.d.ts.map +1 -1
  469. package/dist/components/platform/ToolBadge.js +38 -9
  470. package/dist/components/platform/index.d.ts +2 -2
  471. package/dist/components/platform/index.d.ts.map +1 -1
  472. package/dist/components/platform/index.js +4 -2
  473. package/dist/components/platform/tool-badge-mark.d.ts +6 -0
  474. package/dist/components/platform/tool-badge-mark.d.ts.map +1 -0
  475. package/dist/components/platform/tool-badge-mark.js +6 -0
  476. package/dist/components/product-demo/fixtures/devices.d.ts +0 -2
  477. package/dist/components/product-demo/fixtures/devices.d.ts.map +1 -1
  478. package/dist/components/product-demo/fixtures/devices.js +0 -2
  479. package/dist/components/product-demo/index.cjs +1889 -32
  480. package/dist/components/product-demo/product-screen.d.ts +5 -5
  481. package/dist/components/product-demo/product-screen.d.ts.map +1 -1
  482. package/dist/components/product-demo/product-screen.js +19 -15
  483. package/dist/components/product-demo/screen-loading.d.ts +10 -0
  484. package/dist/components/product-demo/screen-loading.d.ts.map +1 -0
  485. package/dist/components/product-demo/screen-loading.js +12 -0
  486. package/dist/components/product-demo/screens/devices-view.d.ts +22 -0
  487. package/dist/components/product-demo/screens/devices-view.d.ts.map +1 -0
  488. package/dist/components/product-demo/screens/devices-view.js +35 -0
  489. package/dist/components/product-demo/screens/devices.d.ts +1 -7
  490. package/dist/components/product-demo/screens/devices.d.ts.map +1 -1
  491. package/dist/components/product-demo/screens/devices.js +8 -15
  492. package/dist/components/related-content/card-registry.d.ts +3 -2
  493. package/dist/components/related-content/card-registry.d.ts.map +1 -1
  494. package/dist/components/related-content/card-registry.js +15 -3
  495. package/dist/components/related-content/index.cjs +19 -18
  496. package/dist/components/related-content/index.d.ts +2 -1
  497. package/dist/components/related-content/index.d.ts.map +1 -1
  498. package/dist/components/related-content/index.js +3 -1
  499. package/dist/components/related-content/related-content-section.d.ts +14 -1
  500. package/dist/components/related-content/related-content-section.d.ts.map +1 -1
  501. package/dist/components/related-content/related-content-section.js +144 -32
  502. package/dist/components/results-count.d.ts +5 -0
  503. package/dist/components/results-count.d.ts.map +1 -1
  504. package/dist/components/results-count.js +30 -6
  505. package/dist/components/shared/article-author-byline.d.ts +8 -0
  506. package/dist/components/shared/article-author-byline.d.ts.map +1 -1
  507. package/dist/components/shared/article-author-byline.js +54 -52
  508. package/dist/components/shared/delivery/delivery-lists.d.ts.map +1 -1
  509. package/dist/components/shared/delivery/delivery-lists.js +14 -2
  510. package/dist/components/shared/delivery/delivery-row.d.ts +5 -0
  511. package/dist/components/shared/delivery/delivery-row.d.ts.map +1 -1
  512. package/dist/components/shared/delivery/delivery-row.js +37 -10
  513. package/dist/components/shared/delivery/delivery-table.d.ts +4 -0
  514. package/dist/components/shared/delivery/delivery-table.d.ts.map +1 -1
  515. package/dist/components/shared/delivery/delivery-table.js +14 -26
  516. package/dist/components/shared/detail-page-skeleton.d.ts +3 -0
  517. package/dist/components/shared/detail-page-skeleton.d.ts.map +1 -1
  518. package/dist/components/shared/detail-page-skeleton.js +9 -1
  519. package/dist/components/shared/dev-section/dev-card-row.d.ts +2 -0
  520. package/dist/components/shared/dev-section/dev-card-row.d.ts.map +1 -1
  521. package/dist/components/shared/dev-section/dev-card-row.js +31 -21
  522. package/dist/components/shared/dev-section/dev-section-view.js +1 -1
  523. package/dist/components/shared/legal-document/index.d.ts +1 -1
  524. package/dist/components/shared/legal-document/index.d.ts.map +1 -1
  525. package/dist/components/shared/legal-document/index.js +5 -1
  526. package/dist/components/shared/legal-document/legal-document-page.d.ts +14 -0
  527. package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
  528. package/dist/components/shared/legal-document/legal-document-page.js +47 -42
  529. package/dist/components/shared/legal-document/use-legal-docs.d.ts.map +1 -1
  530. package/dist/components/shared/legal-document/use-legal-docs.js +4 -1
  531. package/dist/components/shared/legal-document/use-legal-documents.d.ts.map +1 -1
  532. package/dist/components/shared/legal-document/use-legal-documents.js +3 -1
  533. package/dist/components/shared/media-gallery-strip.d.ts +7 -0
  534. package/dist/components/shared/media-gallery-strip.d.ts.map +1 -1
  535. package/dist/components/shared/media-gallery-strip.js +22 -3
  536. package/dist/components/shared/onboarding/index.d.ts +2 -1
  537. package/dist/components/shared/onboarding/index.d.ts.map +1 -1
  538. package/dist/components/shared/onboarding/index.js +1 -3
  539. package/dist/components/shared/product-release/index.d.ts +2 -1
  540. package/dist/components/shared/product-release/index.d.ts.map +1 -1
  541. package/dist/components/shared/product-release/product-release-card-classes.d.ts +26 -0
  542. package/dist/components/shared/product-release/product-release-card-classes.d.ts.map +1 -0
  543. package/dist/components/shared/product-release/product-release-card-classes.js +40 -0
  544. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
  545. package/dist/components/shared/product-release/product-release-card-skeleton.js +37 -35
  546. package/dist/components/shared/product-release/product-release-card.d.ts +3 -1
  547. package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
  548. package/dist/components/shared/product-release/product-release-card.js +86 -73
  549. package/dist/components/shared/product-release/product-releases-view.d.ts.map +1 -1
  550. package/dist/components/shared/product-release/product-releases-view.js +26 -13
  551. package/dist/components/shared/product-release/release-detail-page.d.ts +0 -1
  552. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  553. package/dist/components/shared/product-release/release-detail-page.js +281 -215
  554. package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +9 -1
  555. package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -1
  556. package/dist/components/shared/roadmap/roadmap-grid-skeleton.js +12 -11
  557. package/dist/components/shared/roadmap/roadmap-grid.d.ts +13 -1
  558. package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -1
  559. package/dist/components/shared/roadmap/roadmap-grid.js +45 -29
  560. package/dist/components/shared/roadmap/roadmap-view.d.ts.map +1 -1
  561. package/dist/components/shared/roadmap/roadmap-view.js +2 -3
  562. package/dist/components/social-icon-row.d.ts +9 -2
  563. package/dist/components/social-icon-row.d.ts.map +1 -1
  564. package/dist/components/social-icon-row.js +12 -6
  565. package/dist/components/tickets/help-center-list.d.ts.map +1 -1
  566. package/dist/components/tickets/help-center-list.js +6 -2
  567. package/dist/components/tickets/hooks/use-ticket-actions.d.ts +2 -2
  568. package/dist/components/tickets/hooks/use-ticket-actions.d.ts.map +1 -1
  569. package/dist/components/tickets/index.cjs +42 -46
  570. package/dist/components/tickets/index.d.ts +2 -1
  571. package/dist/components/tickets/index.d.ts.map +1 -1
  572. package/dist/components/tickets/index.js +2 -3
  573. package/dist/components/tickets/ticket-center.d.ts.map +1 -1
  574. package/dist/components/tickets/ticket-center.js +117 -58
  575. package/dist/components/tickets/types.d.ts +0 -8
  576. package/dist/components/tickets/types.d.ts.map +1 -1
  577. package/dist/components/tickets/types.js +0 -3
  578. package/dist/components/toggle-group.d.ts +4 -2
  579. package/dist/components/toggle-group.d.ts.map +1 -1
  580. package/dist/components/toggle-group.js +3 -1
  581. package/dist/components/tool-icon.d.ts.map +1 -1
  582. package/dist/components/ui/analyzing-state.d.ts +3 -2
  583. package/dist/components/ui/analyzing-state.d.ts.map +1 -1
  584. package/dist/components/ui/analyzing-state.js +7 -4
  585. package/dist/components/ui/announcement-bar-view.d.ts +5 -0
  586. package/dist/components/ui/announcement-bar-view.d.ts.map +1 -1
  587. package/dist/components/ui/announcement-bar-view.js +3 -1
  588. package/dist/components/ui/autocomplete.d.ts +13 -0
  589. package/dist/components/ui/autocomplete.d.ts.map +1 -1
  590. package/dist/components/ui/autocomplete.js +30 -6
  591. package/dist/components/ui/avatar-stack.d.ts +7 -0
  592. package/dist/components/ui/avatar-stack.d.ts.map +1 -1
  593. package/dist/components/ui/avatar-stack.js +29 -4
  594. package/dist/components/ui/badge.d.ts +9 -1
  595. package/dist/components/ui/badge.d.ts.map +1 -1
  596. package/dist/components/ui/badge.js +11 -0
  597. package/dist/components/ui/benefit-list.d.ts +8 -0
  598. package/dist/components/ui/benefit-list.d.ts.map +1 -1
  599. package/dist/components/ui/benefit-list.js +20 -11
  600. package/dist/components/ui/button/button-styles.d.ts +16 -0
  601. package/dist/components/ui/button/button-styles.d.ts.map +1 -1
  602. package/dist/components/ui/button/button-styles.js +42 -0
  603. package/dist/components/ui/button/button.d.ts +3 -1
  604. package/dist/components/ui/button/button.d.ts.map +1 -1
  605. package/dist/components/ui/button/button.js +4 -40
  606. package/dist/components/ui/button/index.d.ts +1 -0
  607. package/dist/components/ui/button/index.d.ts.map +1 -1
  608. package/dist/components/ui/button/index.js +4 -0
  609. package/dist/components/ui/card.d.ts +13 -1
  610. package/dist/components/ui/card.d.ts.map +1 -1
  611. package/dist/components/ui/card.js +21 -14
  612. package/dist/components/ui/checkbox.d.ts +2 -0
  613. package/dist/components/ui/checkbox.d.ts.map +1 -1
  614. package/dist/components/ui/checkbox.js +5 -1
  615. package/dist/components/ui/compliance-badge.d.ts +2 -0
  616. package/dist/components/ui/compliance-badge.d.ts.map +1 -1
  617. package/dist/components/ui/compliance-badge.js +5 -2
  618. package/dist/components/ui/cursor-pagination.d.ts +8 -1
  619. package/dist/components/ui/cursor-pagination.d.ts.map +1 -1
  620. package/dist/components/ui/cursor-pagination.js +10 -4
  621. package/dist/components/ui/dashboard-info-card.d.ts +6 -1
  622. package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
  623. package/dist/components/ui/dashboard-info-card.js +19 -10
  624. package/dist/components/ui/data-attribution.d.ts +10 -5
  625. package/dist/components/ui/data-attribution.d.ts.map +1 -1
  626. package/dist/components/ui/data-attribution.js +27 -9
  627. package/dist/components/ui/data-table/data-table-body.d.ts +1 -1
  628. package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
  629. package/dist/components/ui/data-table/data-table-body.js +18 -7
  630. package/dist/components/ui/data-table/data-table-row-count.d.ts +5 -0
  631. package/dist/components/ui/data-table/data-table-row-count.d.ts.map +1 -1
  632. package/dist/components/ui/data-table/data-table-row-count.js +18 -3
  633. package/dist/components/ui/data-table/data-table-row.d.ts.map +1 -1
  634. package/dist/components/ui/data-table/data-table-row.js +2 -6
  635. package/dist/components/ui/data-table/data-table-skeleton.js +5 -5
  636. package/dist/components/ui/data-table/index.d.ts +2 -2
  637. package/dist/components/ui/data-table/index.d.ts.map +1 -1
  638. package/dist/components/ui/data-table/index.js +2 -1
  639. package/dist/components/ui/date-picker.d.ts +0 -1
  640. package/dist/components/ui/date-picker.d.ts.map +1 -1
  641. package/dist/components/ui/entity-image.d.ts +4 -0
  642. package/dist/components/ui/entity-image.d.ts.map +1 -1
  643. package/dist/components/ui/entity-image.js +27 -5
  644. package/dist/components/ui/error-state.d.ts.map +1 -1
  645. package/dist/components/ui/error-state.js +4 -1
  646. package/dist/components/ui/feature-card.d.ts +31 -1
  647. package/dist/components/ui/feature-card.d.ts.map +1 -1
  648. package/dist/components/ui/feature-card.js +40 -11
  649. package/dist/components/ui/feature-list.d.ts +15 -1
  650. package/dist/components/ui/feature-list.d.ts.map +1 -1
  651. package/dist/components/ui/feature-list.js +43 -8
  652. package/dist/components/ui/field-wrapper.d.ts +6 -0
  653. package/dist/components/ui/field-wrapper.d.ts.map +1 -1
  654. package/dist/components/ui/field-wrapper.js +16 -5
  655. package/dist/components/ui/file-manager/index.cjs +63 -64
  656. package/dist/components/ui/filter-checkbox-item.d.ts +9 -0
  657. package/dist/components/ui/filter-checkbox-item.d.ts.map +1 -1
  658. package/dist/components/ui/filter-checkbox-item.js +36 -6
  659. package/dist/components/ui/filter-modal.d.ts +2 -3
  660. package/dist/components/ui/filter-modal.d.ts.map +1 -1
  661. package/dist/components/ui/filter-pill-row.d.ts +10 -5
  662. package/dist/components/ui/filter-pill-row.d.ts.map +1 -1
  663. package/dist/components/ui/filter-pill-row.js +56 -19
  664. package/dist/components/ui/incident-feed.d.ts +1 -1
  665. package/dist/components/ui/incident-feed.d.ts.map +1 -1
  666. package/dist/components/ui/incident-feed.js +57 -56
  667. package/dist/components/ui/index.cjs +219 -39
  668. package/dist/components/ui/index.d.ts +10 -1
  669. package/dist/components/ui/index.d.ts.map +1 -1
  670. package/dist/components/ui/index.js +29 -1
  671. package/dist/components/ui/info-card-row.d.ts +12 -0
  672. package/dist/components/ui/info-card-row.d.ts.map +1 -1
  673. package/dist/components/ui/info-card-row.js +56 -30
  674. package/dist/components/ui/info-card.d.ts +24 -1
  675. package/dist/components/ui/info-card.d.ts.map +1 -1
  676. package/dist/components/ui/info-card.js +87 -52
  677. package/dist/components/ui/input-styles.d.ts +7 -0
  678. package/dist/components/ui/input-styles.d.ts.map +1 -0
  679. package/dist/components/ui/input-styles.js +7 -0
  680. package/dist/components/ui/input.d.ts.map +1 -1
  681. package/dist/components/ui/input.js +4 -1
  682. package/dist/components/ui/layout-hold.d.ts +9 -7
  683. package/dist/components/ui/layout-hold.d.ts.map +1 -1
  684. package/dist/components/ui/leader-row.d.ts +11 -4
  685. package/dist/components/ui/leader-row.d.ts.map +1 -1
  686. package/dist/components/ui/leader-row.js +29 -5
  687. package/dist/components/ui/loading-scope.d.ts +26 -0
  688. package/dist/components/ui/loading-scope.d.ts.map +1 -0
  689. package/dist/components/ui/loading-scope.js +31 -0
  690. package/dist/components/ui/markdown/base-components.d.ts +25 -0
  691. package/dist/components/ui/markdown/base-components.d.ts.map +1 -1
  692. package/dist/components/ui/markdown/base-components.js +13 -7
  693. package/dist/components/ui/markdown/engine.d.ts +26 -1
  694. package/dist/components/ui/markdown/engine.d.ts.map +1 -1
  695. package/dist/components/ui/markdown/engine.js +63 -4
  696. package/dist/components/ui/markdown/index.d.ts +5 -3
  697. package/dist/components/ui/markdown/index.d.ts.map +1 -1
  698. package/dist/components/ui/markdown/index.js +12 -4
  699. package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +1 -1
  700. package/dist/components/ui/markdown/mermaid-diagram.js +8 -2
  701. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +10 -0
  702. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +1 -1
  703. package/dist/components/ui/markdown/rich/rich-markdown-renderer.js +21 -5
  704. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +0 -2
  705. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +1 -1
  706. package/dist/components/ui/markdown-editor.d.ts +10 -0
  707. package/dist/components/ui/markdown-editor.d.ts.map +1 -1
  708. package/dist/components/ui/markdown-editor.js +23 -7
  709. package/dist/components/ui/numbered-step.d.ts +10 -0
  710. package/dist/components/ui/numbered-step.d.ts.map +1 -1
  711. package/dist/components/ui/numbered-step.js +19 -2
  712. package/dist/components/ui/organization-card.d.ts.map +1 -1
  713. package/dist/components/ui/organization-card.js +30 -5
  714. package/dist/components/ui/page-actions.d.ts +2 -1
  715. package/dist/components/ui/page-actions.d.ts.map +1 -1
  716. package/dist/components/ui/page-actions.js +26 -21
  717. package/dist/components/ui/page-loader.d.ts.map +1 -1
  718. package/dist/components/ui/page-loader.js +2 -1
  719. package/dist/components/ui/people-cell.d.ts +4 -0
  720. package/dist/components/ui/people-cell.d.ts.map +1 -1
  721. package/dist/components/ui/people-cell.js +19 -3
  722. package/dist/components/ui/photo-wall.d.ts +1 -1
  723. package/dist/components/ui/photo-wall.d.ts.map +1 -1
  724. package/dist/components/ui/photo-wall.js +13 -3
  725. package/dist/components/ui/product-screen-frame.d.ts.map +1 -1
  726. package/dist/components/ui/product-screen-frame.js +3 -2
  727. package/dist/components/ui/progress-bar.d.ts +9 -0
  728. package/dist/components/ui/progress-bar.d.ts.map +1 -1
  729. package/dist/components/ui/progress-bar.js +34 -14
  730. package/dist/components/ui/progress.d.ts +15 -0
  731. package/dist/components/ui/progress.d.ts.map +1 -1
  732. package/dist/components/ui/progress.js +8 -3
  733. package/dist/components/ui/release-changelog-section.d.ts +22 -1
  734. package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
  735. package/dist/components/ui/release-changelog-section.js +96 -28
  736. package/dist/components/ui/search-input.d.ts.map +1 -1
  737. package/dist/components/ui/search-input.js +11 -3
  738. package/dist/components/ui/searchable-select.d.ts.map +1 -1
  739. package/dist/components/ui/searchable-select.js +17 -4
  740. package/dist/components/ui/skeleton-surface.d.ts +12 -4
  741. package/dist/components/ui/skeleton-surface.d.ts.map +1 -1
  742. package/dist/components/ui/skeleton-surface.js +6 -2
  743. package/dist/components/ui/slack-channel-chip.d.ts +5 -1
  744. package/dist/components/ui/slack-channel-chip.d.ts.map +1 -1
  745. package/dist/components/ui/slack-channel-chip.js +16 -3
  746. package/dist/components/ui/snap-carousel.d.ts +4 -1
  747. package/dist/components/ui/snap-carousel.d.ts.map +1 -1
  748. package/dist/components/ui/snap-carousel.js +2 -0
  749. package/dist/components/ui/square-avatar.d.ts +3 -0
  750. package/dist/components/ui/square-avatar.d.ts.map +1 -1
  751. package/dist/components/ui/square-avatar.js +38 -23
  752. package/dist/components/ui/stacked-rows-panel.d.ts +24 -1
  753. package/dist/components/ui/stacked-rows-panel.d.ts.map +1 -1
  754. package/dist/components/ui/stacked-rows-panel.js +50 -13
  755. package/dist/components/ui/status-badge.d.ts +10 -2
  756. package/dist/components/ui/status-badge.d.ts.map +1 -1
  757. package/dist/components/ui/status-badge.js +14 -0
  758. package/dist/components/ui/status-indicator.d.ts +4 -0
  759. package/dist/components/ui/status-indicator.d.ts.map +1 -1
  760. package/dist/components/ui/status-indicator.js +16 -3
  761. package/dist/components/ui/status-line.d.ts.map +1 -1
  762. package/dist/components/ui/status-line.js +2 -1
  763. package/dist/components/ui/strip-card.d.ts +9 -0
  764. package/dist/components/ui/strip-card.d.ts.map +1 -1
  765. package/dist/components/ui/strip-card.js +57 -39
  766. package/dist/components/ui/tab-navigation.d.ts +26 -2
  767. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  768. package/dist/components/ui/tab-navigation.js +182 -115
  769. package/dist/components/ui/table/table-header.js +2 -2
  770. package/dist/components/ui/table/table-row.d.ts.map +1 -1
  771. package/dist/components/ui/table/table-row.js +2 -4
  772. package/dist/components/ui/table/table-skeleton.d.ts +6 -1
  773. package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
  774. package/dist/components/ui/table/table-skeleton.js +38 -50
  775. package/dist/components/ui/table/table.d.ts +1 -1
  776. package/dist/components/ui/table/table.d.ts.map +1 -1
  777. package/dist/components/ui/table/table.js +30 -25
  778. package/dist/components/ui/table/types.d.ts +14 -4
  779. package/dist/components/ui/table/types.d.ts.map +1 -1
  780. package/dist/components/ui/table/utils.d.ts +4 -0
  781. package/dist/components/ui/table/utils.d.ts.map +1 -1
  782. package/dist/components/ui/table/utils.js +4 -0
  783. package/dist/components/ui/tabs.d.ts +22 -1
  784. package/dist/components/ui/tabs.d.ts.map +1 -1
  785. package/dist/components/ui/tabs.js +33 -2
  786. package/dist/components/ui/tag.d.ts +21 -1
  787. package/dist/components/ui/tag.d.ts.map +1 -1
  788. package/dist/components/ui/tag.js +17 -12
  789. package/dist/components/ui/tags-input.d.ts +9 -0
  790. package/dist/components/ui/tags-input.d.ts.map +1 -1
  791. package/dist/components/ui/tags-input.js +41 -10
  792. package/dist/components/ui/textarea.d.ts +17 -1
  793. package/dist/components/ui/textarea.d.ts.map +1 -1
  794. package/dist/components/ui/textarea.js +22 -3
  795. package/dist/components/ui/ticket-info-section.d.ts +0 -1
  796. package/dist/components/ui/ticket-info-section.d.ts.map +1 -1
  797. package/dist/components/ui/timezone-select.d.ts +3 -1
  798. package/dist/components/ui/timezone-select.d.ts.map +1 -1
  799. package/dist/components/ui/timezone-select.js +3 -1
  800. package/dist/components/ui/toggle.d.ts +8 -2
  801. package/dist/components/ui/toggle.d.ts.map +1 -1
  802. package/dist/components/ui/toggle.js +10 -6
  803. package/dist/components/unified-pagination.d.ts +3 -1
  804. package/dist/components/unified-pagination.d.ts.map +1 -1
  805. package/dist/components/unified-pagination.js +7 -1
  806. package/dist/components/user-display.d.ts +11 -0
  807. package/dist/components/user-display.d.ts.map +1 -1
  808. package/dist/components/user-display.js +38 -14
  809. package/dist/components/user-summary-stub.d.ts.map +1 -1
  810. package/dist/components/user-summary-stub.js +7 -14
  811. package/dist/components/vendor-display-button.d.ts +4 -0
  812. package/dist/components/vendor-display-button.d.ts.map +1 -1
  813. package/dist/components/vendor-display-button.js +11 -13
  814. package/dist/components/vendor-icon.d.ts +5 -0
  815. package/dist/components/vendor-icon.d.ts.map +1 -1
  816. package/dist/components/vendor-icon.js +12 -3
  817. package/dist/components/vendor-tag.d.ts +5 -0
  818. package/dist/components/vendor-tag.d.ts.map +1 -1
  819. package/dist/components/vendor-tag.js +13 -5
  820. package/dist/{devices-557PMFDC.cjs → devices-2D3XSIIE.cjs} +43 -55
  821. package/dist/embed-shims/index.cjs +4 -2
  822. package/dist/embed-shims/next-image.cjs +4 -2
  823. package/dist/embed-shims/next-image.d.ts.map +1 -1
  824. package/dist/embed-shims/next-image.js +24 -0
  825. package/dist/{embeddable-chat-YFUCVDMV.cjs → embeddable-chat-YL6ZSTDJ.cjs} +117 -119
  826. package/dist/hooks/index.cjs +12 -12
  827. package/dist/hooks/state/flatten-schema.d.ts +0 -1
  828. package/dist/hooks/state/flatten-schema.d.ts.map +1 -1
  829. package/dist/hooks/state/flatten-schema.js +0 -2
  830. package/dist/hooks/state/index.d.ts +6 -3
  831. package/dist/hooks/state/index.d.ts.map +1 -1
  832. package/dist/hooks/state/index.js +4 -3
  833. package/dist/hooks/state/url-converter.d.ts +1 -1
  834. package/dist/hooks/state/url-converter.d.ts.map +1 -1
  835. package/dist/hooks/state/url-converter.js +1 -2
  836. package/dist/hooks/state/use-api-params.d.ts +1 -3
  837. package/dist/hooks/state/use-api-params.d.ts.map +1 -1
  838. package/dist/hooks/state/use-api-params.js +1 -5
  839. package/dist/hooks/ui/index.d.ts +1 -0
  840. package/dist/hooks/ui/index.d.ts.map +1 -1
  841. package/dist/hooks/ui/use-image-edge-color.d.ts +1 -1
  842. package/dist/hooks/ui/use-image-edge-color.d.ts.map +1 -1
  843. package/dist/hooks/ui/use-image-edge-color.js +3 -1
  844. package/dist/hooks/ui/use-onboarding-state.d.ts +0 -1
  845. package/dist/hooks/ui/use-onboarding-state.d.ts.map +1 -1
  846. package/dist/hooks/use-downloads.d.ts +1 -1
  847. package/dist/hooks/use-downloads.d.ts.map +1 -1
  848. package/dist/hooks/use-downloads.js +8 -1
  849. package/dist/hooks/use-meeting-booking.d.ts.map +1 -1
  850. package/dist/hooks/use-meeting-booking.js +3 -0
  851. package/dist/hooks/use-self-fetch.d.ts +1 -1
  852. package/dist/hooks/use-self-fetch.d.ts.map +1 -1
  853. package/dist/hooks/use-self-fetch.js +7 -4
  854. package/dist/hooks/use-toast.d.ts +1 -1
  855. package/dist/index.cjs +329 -103
  856. package/dist/{knowledge-4JTOUDAR.cjs → knowledge-AJ36PMK2.cjs} +36 -40
  857. package/dist/{logs-7YWAOPZ2.cjs → logs-DNE44ACE.cjs} +44 -48
  858. package/dist/nats/index.d.ts +1 -0
  859. package/dist/nats/index.d.ts.map +1 -1
  860. package/dist/nats/nats-provider.d.ts +0 -1
  861. package/dist/nats/nats-provider.d.ts.map +1 -1
  862. package/dist/nats/nats.d.ts +0 -1
  863. package/dist/nats/nats.d.ts.map +1 -1
  864. package/dist/nats/use-nats-subscription.d.ts +2 -1
  865. package/dist/nats/use-nats-subscription.d.ts.map +1 -1
  866. package/dist/{policies-W5JEPQTA.cjs → policies-AJHSP6ZY.cjs} +39 -43
  867. package/dist/{remote-session-F72S6I7J.cjs → remote-session-PPA5SXX7.cjs} +18 -21
  868. package/dist/schemas/meeting-booking-schema.cjs +4 -0
  869. package/dist/schemas/meeting-booking-schema.d.ts +8 -0
  870. package/dist/schemas/meeting-booking-schema.d.ts.map +1 -1
  871. package/dist/schemas/meeting-booking-schema.js +4 -0
  872. package/dist/{scripts-FY5IPOIM.cjs → scripts-4YO2QL36.cjs} +42 -46
  873. package/dist/{software-update-5BOGZOHG.cjs → software-update-KMI2EOO3.cjs} +41 -45
  874. package/dist/styles/component-sizes.d.ts +96 -0
  875. package/dist/styles/component-sizes.d.ts.map +1 -0
  876. package/dist/styles/component-sizes.js +77 -0
  877. package/dist/{tickets-board-DXMF7IKL.cjs → tickets-board-G3WBH4SV.cjs} +18 -20
  878. package/dist/types/announcement.d.ts +0 -1
  879. package/dist/types/announcement.d.ts.map +1 -1
  880. package/dist/types/blog.d.ts +0 -1
  881. package/dist/types/blog.d.ts.map +1 -1
  882. package/dist/types/case-study.d.ts +2 -2
  883. package/dist/types/case-study.d.ts.map +1 -1
  884. package/dist/types/customer-interview-ai.types.d.ts +1 -2
  885. package/dist/types/customer-interview-ai.types.d.ts.map +1 -1
  886. package/dist/types/customer-interview.d.ts +0 -1
  887. package/dist/types/customer-interview.d.ts.map +1 -1
  888. package/dist/types/index.d.ts +2 -0
  889. package/dist/types/index.d.ts.map +1 -1
  890. package/dist/types/product-release.d.ts +3 -0
  891. package/dist/types/product-release.d.ts.map +1 -1
  892. package/dist/types/stack.d.ts +0 -2
  893. package/dist/types/stack.d.ts.map +1 -1
  894. package/dist/utils/announcement-storage.d.ts +0 -3
  895. package/dist/utils/announcement-storage.d.ts.map +1 -1
  896. package/dist/utils/announcement-storage.js +1 -3
  897. package/dist/utils/dev-sections/openframe-dev-sections.d.ts +11 -0
  898. package/dist/utils/dev-sections/openframe-dev-sections.d.ts.map +1 -1
  899. package/dist/utils/dev-sections/openframe-dev-sections.js +5 -0
  900. package/dist/utils/index.cjs +19 -0
  901. package/dist/utils/index.d.ts +7 -2
  902. package/dist/utils/index.d.ts.map +1 -1
  903. package/dist/utils/index.js +8 -6
  904. package/dist/utils/markdown-heading-id.d.ts +0 -19
  905. package/dist/utils/markdown-heading-id.d.ts.map +1 -1
  906. package/dist/utils/markdown-heading-id.js +2 -5
  907. package/dist/utils/ods-color-utils.d.ts +0 -1
  908. package/dist/utils/ods-color-utils.d.ts.map +1 -1
  909. package/dist/utils/ods-color-utils.js +0 -2
  910. package/dist/utils/own-click.d.ts +4 -0
  911. package/dist/utils/own-click.d.ts.map +1 -0
  912. package/dist/utils/own-click.js +14 -0
  913. package/dist/utils/platform-config.d.ts +0 -1
  914. package/dist/utils/platform-config.d.ts.map +1 -1
  915. package/dist/utils/platform-config.js +0 -26
  916. package/dist/utils/source-icons.d.ts +2 -2
  917. package/dist/{video-file-player-QZ3YOLHO.cjs → video-file-player-COXRF4M5.cjs} +13 -13
  918. package/eslint-config/base.js +2 -0
  919. package/eslint-config/re-exports.js +56 -0
  920. package/package.json +1 -1
  921. package/src/ODS_TOKEN_RULES.md +2 -2
  922. package/src/chat-protocol/decode.ts +0 -5
  923. package/src/chat-protocol/index.ts +1 -0
  924. package/src/components/agent-identity.tsx +0 -2
  925. package/src/components/agent-mark.tsx +13 -4
  926. package/src/components/authors/author-detail-view.tsx +90 -44
  927. package/src/components/case-studies/entity-quotes-panel.tsx +50 -3
  928. package/src/components/case-studies/index.ts +2 -2
  929. package/src/components/case-studies/quote-cards-strip.tsx +75 -10
  930. package/src/components/categories-cart.tsx +82 -38
  931. package/src/components/category-card.tsx +1 -1
  932. package/src/components/chat/chat-attachment-bar.tsx +1 -1
  933. package/src/components/chat/chat-container.tsx +2 -1
  934. package/src/components/chat/chat-ticket-list.tsx +0 -1
  935. package/src/components/chat/chat-turn.tsx +124 -18
  936. package/src/components/chat/embeddable-chat.tsx +5 -5
  937. package/src/components/chat/entity-cards/admin-content-card-grid.tsx +1 -51
  938. package/src/components/chat/entity-cards/admin-content-card.tsx +80 -15
  939. package/src/components/chat/entity-cards/blog-card.tsx +71 -41
  940. package/src/components/chat/entity-cards/campaign-card-admin.tsx +4 -17
  941. package/src/components/chat/entity-cards/case-study-card.tsx +129 -68
  942. package/src/components/chat/entity-cards/chat-ticket-item.tsx +34 -29
  943. package/src/components/chat/entity-cards/customer-interview-card.tsx +61 -45
  944. package/src/components/chat/entity-cards/data-room-doc-card.tsx +11 -18
  945. package/src/components/chat/entity-cards/design-doc-card.tsx +48 -34
  946. package/src/components/chat/entity-cards/dispatch.tsx +9 -13
  947. package/src/components/chat/entity-cards/employee-entry-card.tsx +5 -5
  948. package/src/components/chat/entity-cards/entity-author-card.tsx +138 -32
  949. package/src/components/chat/entity-cards/entity-portrait-card.tsx +61 -16
  950. package/src/components/chat/entity-cards/generic-entity-card.tsx +11 -19
  951. package/src/components/chat/entity-cards/github-activity-card.tsx +14 -30
  952. package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +11 -23
  953. package/src/components/chat/entity-cards/index.ts +20 -7
  954. package/src/components/chat/entity-cards/investor-update-card.tsx +42 -35
  955. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +78 -64
  956. package/src/components/chat/entity-cards/program-card.tsx +96 -66
  957. package/src/components/chat/entity-cards/roadmap-card.tsx +85 -65
  958. package/src/components/chat/entity-cards/roadmap-vote-button.tsx +12 -1
  959. package/src/components/chat/entity-cards/slack-message-card.tsx +19 -26
  960. package/src/components/chat/hooks/index.ts +12 -2
  961. package/src/components/chat/hooks/use-ask-prompts.ts +5 -1
  962. package/src/components/chat/hooks/use-chat-dialog-manager.ts +1 -1
  963. package/src/components/chat/hooks/use-chat-history-hydration.ts +1 -1
  964. package/src/components/chat/hooks/use-chat.ts +0 -3
  965. package/src/components/chat/hooks/use-nats-chat-adapter.ts +0 -20
  966. package/src/components/chat/hooks/use-proxied-image-url.ts +27 -20
  967. package/src/components/chat/hooks/use-slash-commands.ts +1 -7
  968. package/src/components/chat/hooks/use-sse-chat-adapter.ts +4 -18
  969. package/src/components/chat/stream/chat-stream-reducer.ts +3 -2
  970. package/src/components/chat/types/entities/index.ts +24 -4
  971. package/src/components/chat/types/entities/investor-update.ts +1 -1
  972. package/src/components/chat/types/entities/program-types.ts +2 -5
  973. package/src/components/chat/utils/compact-card-classes.ts +15 -2
  974. package/src/components/chat/utils/compact-card-skeleton.tsx +111 -0
  975. package/src/components/chat/utils/icon-library.tsx +0 -2
  976. package/src/components/chat/utils/index.ts +5 -3
  977. package/src/components/chat/utils/scroll-anchor.ts +0 -2
  978. package/src/components/chat/utils/source-row-cta.ts +1 -5
  979. package/src/components/comment-card.tsx +118 -19
  980. package/src/components/comment-thread.tsx +130 -17
  981. package/src/components/docs/doc-viewer.tsx +33 -31
  982. package/src/components/docs/skeletons.tsx +37 -49
  983. package/src/components/docs/use-document-tree.ts +11 -7
  984. package/src/components/embeds/embed-iframe.tsx +5 -0
  985. package/src/components/embeds/index.ts +1 -1
  986. package/src/components/embeds/markdown-image.tsx +6 -2
  987. package/src/components/embeds/og-link-preview.tsx +155 -81
  988. package/src/components/faq/faq-document-page.tsx +8 -0
  989. package/src/components/faq/faq-section.tsx +249 -70
  990. package/src/components/faq/index.ts +12 -1
  991. package/src/components/faq-accordion.tsx +67 -7
  992. package/src/components/features/ai-enrich/AIStatusIndicator.tsx +2 -1
  993. package/src/components/features/approval-level.tsx +71 -8
  994. package/src/components/features/capability-explorer.tsx +59 -61
  995. package/src/components/features/cards-strip.tsx +54 -12
  996. package/src/components/features/command-box.tsx +139 -10
  997. package/src/components/features/conversation-card.tsx +242 -16
  998. package/src/components/features/devices/device-selector/device-selector.tsx +1 -0
  999. package/src/components/features/devices/devices-panel-view.tsx +2 -2
  1000. package/src/components/features/entity-tag-badges.tsx +143 -10
  1001. package/src/components/features/entity-video-section.tsx +52 -14
  1002. package/src/components/features/figma-prototype-viewer.tsx +4 -8
  1003. package/src/components/features/index.ts +11 -0
  1004. package/src/components/features/knowledge-base/index.ts +2 -5
  1005. package/src/components/features/knowledge-base/knowledge-base-article-view.tsx +0 -2
  1006. package/src/components/features/model-token-rates.tsx +64 -84
  1007. package/src/components/features/notifications/approval-request-notification-tile.tsx +9 -11
  1008. package/src/components/features/notifications/notification-tile.tsx +58 -23
  1009. package/src/components/features/paths-display.tsx +73 -6
  1010. package/src/components/features/platform-badge.tsx +41 -1
  1011. package/src/components/features/push-button-selector.tsx +167 -64
  1012. package/src/components/features/remote-session/index.ts +2 -2
  1013. package/src/components/features/remote-session/remote-desktop-chat-message-row.tsx +24 -3
  1014. package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +19 -5
  1015. package/src/components/features/remote-session/remote-desktop-view.tsx +47 -38
  1016. package/src/components/features/remote-session/remote-session-chat-panel.tsx +1 -1
  1017. package/src/components/features/status-filter-component.tsx +105 -11
  1018. package/src/components/features/use-video-warmup.ts +0 -7
  1019. package/src/components/features/use-walkthrough-video.ts +5 -1
  1020. package/src/components/features/video-bites-strip.tsx +137 -22
  1021. package/src/components/features/video-hover-preview.tsx +2 -1
  1022. package/src/components/features/video.tsx +16 -12
  1023. package/src/components/features/walkthrough-video.tsx +9 -2
  1024. package/src/components/help-center-pages/download-apps-page.tsx +86 -32
  1025. package/src/components/help-center-pages/trust-center-page.tsx +132 -66
  1026. package/src/components/help-center-pages/trust-center-sections.tsx +205 -148
  1027. package/src/components/icon-display.tsx +9 -0
  1028. package/src/components/index.ts +11 -2
  1029. package/src/components/interactive-wrapper.tsx +2 -1
  1030. package/src/components/layout/list-page-layout.tsx +4 -5
  1031. package/src/components/layout/page-container.tsx +59 -29
  1032. package/src/components/layout/page-data-sync.tsx +40 -5
  1033. package/src/components/layout/page-heading.tsx +84 -1
  1034. package/src/components/layout/page-layout.tsx +5 -5
  1035. package/src/components/layout/title-block.tsx +72 -17
  1036. package/src/components/loading/category-vendor-selector-skeleton.tsx +4 -0
  1037. package/src/components/loading/deprecated-layout-skeletons.tsx +133 -0
  1038. package/src/components/loading/device-card-skeleton.tsx +4 -4
  1039. package/src/components/loading/index.ts +11 -13
  1040. package/src/components/loading/loading-region.tsx +16 -9
  1041. package/src/components/loading/msp-profile-form-skeleton.tsx +3 -0
  1042. package/src/components/loading/organization-card-skeleton.tsx +45 -71
  1043. package/src/components/loading/page-layout-skeleton.tsx +1 -641
  1044. package/src/components/loading/settings-form-skeleton.tsx +3 -0
  1045. package/src/components/loading/unified-skeleton.tsx +101 -11
  1046. package/src/components/log-severity-dot.tsx +17 -14
  1047. package/src/components/logs-list.tsx +43 -29
  1048. package/src/components/media-carousel.tsx +0 -4
  1049. package/src/components/meeting-scheduler/booking-form.tsx +245 -35
  1050. package/src/components/meeting-scheduler/context-panel.tsx +96 -30
  1051. package/src/components/meeting-scheduler/directory.tsx +70 -37
  1052. package/src/components/meeting-scheduler/index.tsx +136 -132
  1053. package/src/components/meeting-scheduler/modal-header.tsx +45 -31
  1054. package/src/components/meeting-scheduler/slot-picker.tsx +20 -8
  1055. package/src/components/metric-value.tsx +19 -2
  1056. package/src/components/msp-display.tsx +25 -10
  1057. package/src/components/navigation/app-layout.tsx +0 -3
  1058. package/src/components/navigation/index.ts +15 -3
  1059. package/src/components/navigation/mingo-ai-button.tsx +3 -4
  1060. package/src/components/navigation/mobile-nav-sheet.tsx +0 -2
  1061. package/src/components/navigation/multi-level-navigation.tsx +152 -35
  1062. package/src/components/navigation/page-section-bar.tsx +132 -0
  1063. package/src/components/navigation/sticky-section-nav.tsx +109 -18
  1064. package/src/components/navigation/ticket-alerts-button.tsx +1 -1
  1065. package/src/components/onboarding-guides/hooks/use-onboarding-guides.ts +8 -1
  1066. package/src/components/onboarding-guides/index.ts +5 -2
  1067. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +166 -67
  1068. package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +38 -51
  1069. package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +91 -45
  1070. package/src/components/pagination.tsx +103 -48
  1071. package/src/components/persistent-filter-controls.tsx +0 -7
  1072. package/src/components/persistent-pagination.tsx +6 -1
  1073. package/src/components/platform/ToolBadge.tsx +57 -10
  1074. package/src/components/platform/index.ts +2 -2
  1075. package/src/components/platform/tool-badge-mark.ts +6 -0
  1076. package/src/components/product-demo/fixtures/devices.ts +0 -3
  1077. package/src/components/product-demo/product-screen.tsx +42 -23
  1078. package/src/components/product-demo/screen-loading.tsx +20 -0
  1079. package/src/components/product-demo/screens/devices-view.tsx +58 -0
  1080. package/src/components/product-demo/screens/devices.tsx +9 -29
  1081. package/src/components/related-content/card-registry.tsx +20 -6
  1082. package/src/components/related-content/index.ts +3 -1
  1083. package/src/components/related-content/related-content-section.tsx +222 -46
  1084. package/src/components/results-count.tsx +37 -6
  1085. package/src/components/shared/article-author-byline.tsx +65 -41
  1086. package/src/components/shared/delivery/delivery-lists.tsx +15 -2
  1087. package/src/components/shared/delivery/delivery-row.tsx +55 -9
  1088. package/src/components/shared/delivery/delivery-table.tsx +19 -46
  1089. package/src/components/shared/detail-page-skeleton.tsx +15 -1
  1090. package/src/components/shared/dev-section/dev-card-row.tsx +45 -28
  1091. package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
  1092. package/src/components/shared/doc-search/use-doc-search.ts +1 -1
  1093. package/src/components/shared/legal-document/index.ts +2 -0
  1094. package/src/components/shared/legal-document/legal-document-page.tsx +41 -21
  1095. package/src/components/shared/legal-document/use-legal-docs.ts +5 -1
  1096. package/src/components/shared/legal-document/use-legal-documents.ts +4 -1
  1097. package/src/components/shared/media-gallery-strip.tsx +35 -3
  1098. package/src/components/shared/onboarding/index.ts +2 -5
  1099. package/src/components/shared/product-release/index.ts +1 -1
  1100. package/src/components/shared/product-release/product-release-card-classes.ts +28 -0
  1101. package/src/components/shared/product-release/product-release-card-skeleton.tsx +62 -56
  1102. package/src/components/shared/product-release/product-release-card.tsx +62 -44
  1103. package/src/components/shared/product-release/product-releases-view.tsx +32 -24
  1104. package/src/components/shared/product-release/release-detail-page.tsx +229 -134
  1105. package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +20 -6
  1106. package/src/components/shared/roadmap/roadmap-grid.tsx +59 -9
  1107. package/src/components/shared/roadmap/roadmap-view.tsx +3 -3
  1108. package/src/components/social-icon-row.tsx +14 -8
  1109. package/src/components/tickets/help-center-list.tsx +6 -2
  1110. package/src/components/tickets/hooks/use-ticket-actions.ts +0 -4
  1111. package/src/components/tickets/index.ts +1 -2
  1112. package/src/components/tickets/ticket-center.tsx +189 -75
  1113. package/src/components/tickets/types.ts +0 -9
  1114. package/src/components/toggle-group.tsx +4 -1
  1115. package/src/components/tool-icon.tsx +2 -1
  1116. package/src/components/ui/analyzing-state.tsx +11 -6
  1117. package/src/components/ui/announcement-bar-view.tsx +7 -1
  1118. package/src/components/ui/autocomplete.tsx +58 -6
  1119. package/src/components/ui/avatar-stack.tsx +42 -3
  1120. package/src/components/ui/badge.tsx +16 -1
  1121. package/src/components/ui/benefit-list.tsx +41 -6
  1122. package/src/components/ui/button/button-styles.ts +48 -0
  1123. package/src/components/ui/button/button.tsx +5 -39
  1124. package/src/components/ui/button/index.ts +1 -0
  1125. package/src/components/ui/card.tsx +28 -13
  1126. package/src/components/ui/checkbox.tsx +6 -1
  1127. package/src/components/ui/compliance-badge.tsx +6 -2
  1128. package/src/components/ui/cursor-pagination.tsx +28 -3
  1129. package/src/components/ui/dashboard-info-card.tsx +29 -11
  1130. package/src/components/ui/data-attribution.tsx +42 -12
  1131. package/src/components/ui/data-table/data-table-body.tsx +11 -2
  1132. package/src/components/ui/data-table/data-table-row-count.tsx +19 -1
  1133. package/src/components/ui/data-table/data-table-row.tsx +4 -9
  1134. package/src/components/ui/data-table/data-table-skeleton.tsx +7 -7
  1135. package/src/components/ui/data-table/index.ts +2 -1
  1136. package/src/components/ui/date-picker.tsx +0 -6
  1137. package/src/components/ui/entity-image.tsx +27 -4
  1138. package/src/components/ui/error-state.tsx +8 -1
  1139. package/src/components/ui/feature-card.tsx +77 -12
  1140. package/src/components/ui/feature-list.tsx +72 -8
  1141. package/src/components/ui/field-wrapper.tsx +13 -1
  1142. package/src/components/ui/filter-checkbox-item.tsx +57 -6
  1143. package/src/components/ui/filter-modal.tsx +2 -6
  1144. package/src/components/ui/filter-pill-row.tsx +81 -27
  1145. package/src/components/ui/incident-feed.tsx +20 -11
  1146. package/src/components/ui/index.ts +21 -1
  1147. package/src/components/ui/info-card-row.tsx +74 -19
  1148. package/src/components/ui/info-card.tsx +87 -13
  1149. package/src/components/ui/input-styles.ts +6 -0
  1150. package/src/components/ui/input.tsx +4 -1
  1151. package/src/components/ui/layout-hold.tsx +9 -7
  1152. package/src/components/ui/leader-row.tsx +58 -4
  1153. package/src/components/ui/loading-scope.tsx +54 -0
  1154. package/src/components/ui/markdown/base-components.tsx +18 -9
  1155. package/src/components/ui/markdown/engine.tsx +131 -7
  1156. package/src/components/ui/markdown/index.ts +8 -6
  1157. package/src/components/ui/markdown/mermaid-diagram.tsx +7 -4
  1158. package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +26 -1
  1159. package/src/components/ui/markdown/simple-markdown-renderer.tsx +0 -3
  1160. package/src/components/ui/markdown-editor.tsx +83 -50
  1161. package/src/components/ui/numbered-step.tsx +32 -2
  1162. package/src/components/ui/organization-card.tsx +32 -7
  1163. package/src/components/ui/page-actions.tsx +51 -31
  1164. package/src/components/ui/page-loader.tsx +2 -1
  1165. package/src/components/ui/people-cell.tsx +25 -2
  1166. package/src/components/ui/photo-wall.tsx +14 -3
  1167. package/src/components/ui/product-screen-frame.tsx +14 -3
  1168. package/src/components/ui/progress-bar.tsx +26 -3
  1169. package/src/components/ui/progress.tsx +14 -3
  1170. package/src/components/ui/release-changelog-section.tsx +153 -20
  1171. package/src/components/ui/search-input.tsx +23 -3
  1172. package/src/components/ui/searchable-select.tsx +26 -6
  1173. package/src/components/ui/skeleton-surface.ts +16 -4
  1174. package/src/components/ui/slack-channel-chip.tsx +23 -3
  1175. package/src/components/ui/snap-carousel.tsx +5 -0
  1176. package/src/components/ui/square-avatar.tsx +41 -23
  1177. package/src/components/ui/stacked-rows-panel.tsx +88 -15
  1178. package/src/components/ui/status-badge.tsx +18 -1
  1179. package/src/components/ui/status-indicator.tsx +21 -2
  1180. package/src/components/ui/status-line.tsx +2 -1
  1181. package/src/components/ui/strip-card.tsx +73 -23
  1182. package/src/components/ui/tab-navigation.tsx +141 -28
  1183. package/src/components/ui/table/table-header.tsx +2 -2
  1184. package/src/components/ui/table/table-row.tsx +2 -4
  1185. package/src/components/ui/table/table-skeleton.tsx +48 -54
  1186. package/src/components/ui/table/table.tsx +36 -19
  1187. package/src/components/ui/table/types.ts +12 -4
  1188. package/src/components/ui/table/utils.ts +5 -0
  1189. package/src/components/ui/tabs.tsx +64 -4
  1190. package/src/components/ui/tag.tsx +33 -13
  1191. package/src/components/ui/tags-input.tsx +48 -10
  1192. package/src/components/ui/textarea.tsx +33 -3
  1193. package/src/components/ui/ticket-info-section.tsx +0 -2
  1194. package/src/components/ui/timezone-select.tsx +4 -0
  1195. package/src/components/ui/toggle.tsx +11 -5
  1196. package/src/components/unified-pagination.tsx +15 -0
  1197. package/src/components/user-display.tsx +53 -12
  1198. package/src/components/user-summary-stub.tsx +7 -11
  1199. package/src/components/vendor-display-button.tsx +15 -12
  1200. package/src/components/vendor-icon.tsx +13 -2
  1201. package/src/components/vendor-tag.tsx +18 -4
  1202. package/src/embed-shims/next-image.tsx +36 -1
  1203. package/src/hooks/state/flatten-schema.ts +0 -4
  1204. package/src/hooks/state/index.ts +5 -3
  1205. package/src/hooks/state/url-converter.ts +2 -2
  1206. package/src/hooks/state/use-api-params.ts +2 -10
  1207. package/src/hooks/ui/index.ts +1 -0
  1208. package/src/hooks/ui/use-image-edge-color.ts +4 -1
  1209. package/src/hooks/ui/use-onboarding-state.ts +0 -2
  1210. package/src/hooks/use-downloads.ts +9 -1
  1211. package/src/hooks/use-meeting-booking.ts +4 -0
  1212. package/src/hooks/use-self-fetch.ts +12 -4
  1213. package/src/nats/index.ts +1 -0
  1214. package/src/nats/nats-provider.tsx +0 -2
  1215. package/src/nats/nats.ts +0 -2
  1216. package/src/nats/use-nats-subscription.ts +2 -1
  1217. package/src/schemas/meeting-booking-schema.ts +11 -0
  1218. package/src/styles/component-sizes.ts +105 -0
  1219. package/src/types/announcement.ts +0 -3
  1220. package/src/types/blog.ts +0 -4
  1221. package/src/types/case-study.ts +2 -2
  1222. package/src/types/customer-interview-ai.types.ts +1 -4
  1223. package/src/types/customer-interview.ts +0 -11
  1224. package/src/types/index.ts +2 -0
  1225. package/src/types/product-release.ts +4 -2
  1226. package/src/types/stack.ts +0 -4
  1227. package/src/utils/announcement-storage.ts +0 -7
  1228. package/src/utils/dev-sections/openframe-dev-sections.ts +11 -0
  1229. package/src/utils/index.ts +6 -9
  1230. package/src/utils/markdown-heading-id.ts +0 -28
  1231. package/src/utils/ods-color-utils.ts +0 -4
  1232. package/src/utils/own-click.ts +25 -0
  1233. package/src/utils/platform-config.tsx +0 -17
  1234. package/src/utils/source-icons.ts +2 -2
  1235. package/dist/chunk-3ATAYP36.cjs +0 -19
  1236. package/dist/chunk-3LU4UFPS.cjs +0 -14
  1237. package/dist/chunk-FQWBIKF4.cjs +0 -404
  1238. package/dist/chunk-H3RYUTND.cjs +0 -142
  1239. package/dist/chunk-L4UI63K6.cjs +0 -103
  1240. package/dist/chunk-NS64LMVE.cjs +0 -470
  1241. package/dist/chunk-OF336YWG.cjs +0 -20
  1242. package/dist/chunk-RB6BSE3O.cjs +0 -21
  1243. package/dist/chunk-RM6AHNM4.cjs +0 -163
  1244. package/dist/components/chat/entity-cards/product-release-card.d.ts +0 -12
  1245. package/dist/components/chat/entity-cards/product-release-card.d.ts.map +0 -1
  1246. package/dist/components/chat/entity-cards/product-release-card.js +0 -8
  1247. package/dist/components/chat/hooks/use-embedded-chat.d.ts +0 -15
  1248. package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +0 -1
  1249. package/dist/components/chat/hooks/use-embedded-chat.js +0 -6
  1250. package/dist/components/chat/types/entities/blog.d.ts +0 -14
  1251. package/dist/components/chat/types/entities/blog.d.ts.map +0 -1
  1252. package/dist/components/chat/types/entities/blog.js +0 -1
  1253. package/dist/components/chat/types/entities/case-study.d.ts +0 -10
  1254. package/dist/components/chat/types/entities/case-study.d.ts.map +0 -1
  1255. package/dist/components/chat/types/entities/case-study.js +0 -1
  1256. package/dist/components/chat/types/entities/content-ref.d.ts +0 -8
  1257. package/dist/components/chat/types/entities/content-ref.d.ts.map +0 -1
  1258. package/dist/components/chat/types/entities/content-ref.js +0 -1
  1259. package/dist/components/chat/types/entities/customer-interview.d.ts +0 -10
  1260. package/dist/components/chat/types/entities/customer-interview.d.ts.map +0 -1
  1261. package/dist/components/chat/types/entities/customer-interview.js +0 -1
  1262. package/dist/components/chat/utils/source-icons.d.ts +0 -8
  1263. package/dist/components/chat/utils/source-icons.d.ts.map +0 -1
  1264. package/dist/components/chat/utils/source-icons.js +0 -16
  1265. package/dist/utils/image-proxy-stub.d.ts +0 -14
  1266. package/dist/utils/image-proxy-stub.d.ts.map +0 -1
  1267. package/dist/utils/image-proxy-stub.js +0 -22
  1268. package/src/components/chat/entity-cards/product-release-card.tsx +0 -19
  1269. package/src/components/chat/hooks/use-embedded-chat.ts +0 -25
  1270. package/src/components/chat/types/entities/blog.ts +0 -27
  1271. package/src/components/chat/types/entities/case-study.ts +0 -10
  1272. package/src/components/chat/types/entities/content-ref.ts +0 -7
  1273. package/src/components/chat/types/entities/customer-interview.ts +0 -15
  1274. package/src/components/chat/utils/source-icons.ts +0 -14
  1275. package/src/utils/image-proxy-stub.ts +0 -40
@@ -12,10 +12,11 @@ import { serializeJsonLd } from '../../utils/common';
12
12
  import { faqSectionSlug, parseFaqHash, type FaqHashTarget } from '../../utils/faq-anchor';
13
13
  import { navigateSamePageHash, STICKY_HEADER_OFFSET_PX } from '../../utils/same-page-hash-nav';
14
14
  import { buildSuggestionUrl } from '../../utils/suggestion-url';
15
- import { FaqAccordion, type FaqItem } from '../faq-accordion';
15
+ import { FAQ_ACCORDION_SKELETON_ROWS, FaqAccordion, FaqAccordionSkeleton, type FaqItem } from '../faq-accordion';
16
16
  import { SECTION_HEADING_CLASS } from '../layout/page-heading';
17
17
  import { LoadingRegion } from '../loading/loading-region';
18
- import { UnifiedSkeleton } from '../loading/unified-skeleton';
18
+ import { TextLineSkeleton } from '../loading/unified-skeleton';
19
+ import { useLoadingScope } from '../ui/loading-scope';
19
20
  import { FaqAskCard, faqAskCardShown, type FaqAskOptions } from './faq-ask-card';
20
21
  import { buildFaqJsonLdFromFaqs, type FaqSchemaOptions } from './json-ld';
21
22
 
@@ -87,10 +88,136 @@ export interface FaqSectionProps {
87
88
  * (`onOpen`). An `aside` takes the card's place.
88
89
  */
89
90
  ask?: false | FaqAskOptions;
91
+ /**
92
+ * The loading state's groups of questions, in order: THE one way to say what the skeleton draws (see
93
+ * `FaqSkeletonShape`). Absent: one group with no category heading, of `minResults` rows (else one screen of rows).
94
+ */
95
+ skeletonShape?: FaqSkeletonShape;
96
+ /**
97
+ * The host's FAQs fall into named categories, so the loaded block draws its category nav (the platform's full,
98
+ * categorised list): the loading state draws the nav's row too, so what follows it (the ask card) does not move.
99
+ * Default false (a nav only when `skeletonShape` names two or more categories).
100
+ */
101
+ skeletonNav?: boolean;
90
102
  }
91
103
 
92
104
  const DEFAULT_HEADING_TEXT = 'Frequently Asked Questions';
93
105
 
106
+ /** The block's layout, read by the block and by its skeleton, so the skeleton is the block's size. */
107
+ const SECTION_DEFAULT_CLASS = 'space-y-10';
108
+ /** The nav's gap to its neighbour, inside the nav's own wrapper (padding), so the nav takes its gap with it. */
109
+ const NAV_ABOVE_QUESTIONS_CLASS = 'pb-8';
110
+ const NAV_BELOW_HEADING_CLASS = 'pt-8';
111
+ const QUESTIONS_STACK_CLASS = 'space-y-10';
112
+ // `grid-cols-1` (a `minmax(0, 1fr)` track): one column never grows to a child's content width (the nav skeleton's
113
+ // one-line pill row is wider than a phone).
114
+ const ASIDE_GRID_CLASS =
115
+ 'grid grid-cols-1 gap-10 content-lg:grid-cols-[minmax(0,1fr)_minmax(0,2fr)] content-lg:grid-rows-[auto_1fr] content-lg:gap-x-16';
116
+ const ASIDE_QUESTIONS_CELL_CLASS = 'content-lg:col-start-2 content-lg:row-span-2 content-lg:row-start-1';
117
+ const ASIDE_CELL_CLASS = 'content-lg:col-start-1 content-lg:row-start-2';
118
+ const TOPIC_STACK_CLASS = 'space-y-1';
119
+ const TOPIC_CLASS = 'text-ods-text-muted text-h6';
120
+ const CATEGORY_NAV_CLASS = 'flex flex-wrap gap-2';
121
+ /**
122
+ * The nav's row while the categories are read (`skeletonNav`): which categories there are, and how many, is read data,
123
+ * so the skeleton draws ONE line of pills, the pills that do not fit cut off at its edge (never wrapped to a second
124
+ * line). `FAQ_NAV_SKELETON_PILLS` is more than the widest column holds on one line.
125
+ */
126
+ const CATEGORY_NAV_SKELETON_LINE_CLASS = 'flex min-w-0 flex-nowrap gap-2 overflow-hidden';
127
+ const FAQ_NAV_SKELETON_PILLS = 8;
128
+ const CATEGORY_PILL_CLASS = 'rounded-full border px-4 py-2 transition-colors text-h6';
129
+ const CATEGORY_SECTION_CLASS = 'scroll-mt-24';
130
+ /**
131
+ * A category's heading, with the gap to its questions inside its own box (padding, not the group's spacing): only a
132
+ * named group has one, so it is the group's optional part (`data-loading-optional`) and takes its gap with it, unless
133
+ * the host declared its FAQs categorised (`skeletonNav`): then every group it draws is named, loading and loaded.
134
+ */
135
+ const CATEGORY_HEADING_CLASS = cn(SECTION_HEADING_CLASS, 'pb-4');
136
+ /** Questions the block's skeleton draws when the host states no count (`minResults`): one screen of the accordion's rows. */
137
+ export const FAQ_SECTION_SKELETON_QUESTIONS = FAQ_ACCORDION_SKELETON_ROWS;
138
+
139
+ /** One group of questions the FAQ's loading state draws. */
140
+ export interface FaqSkeletonGroup {
141
+ /** The group is a named category: drawn with its heading bar (and counted for the category nav). Default false. */
142
+ heading?: boolean;
143
+ /** Question rows the group draws. Default `FAQ_SECTION_SKELETON_QUESTIONS`, one screen of rows. */
144
+ rows?: number;
145
+ }
146
+
147
+ /**
148
+ * What the FAQ's loading state draws, group by group in order: the one shape `FaqSection`, `FaqSectionSkeleton`,
149
+ * `FaqDocumentPage` and `TrustCenterPage` take. Stated by the host from what it knows before the read (its FAQs are
150
+ * filed in categories, the server's page size), never copied from today's FAQs.
151
+ */
152
+ export type FaqSkeletonShape = readonly FaqSkeletonGroup[];
153
+
154
+ /**
155
+ * The block's arrangement, for the loaded list and its skeleton alike: without an aside the category nav above the
156
+ * questions; with one, heading and nav in a left column, questions on the right, the aside under the left column.
157
+ */
158
+ function FaqLayout({
159
+ heading,
160
+ nav,
161
+ navDeclared = false,
162
+ questions,
163
+ aside,
164
+ }: {
165
+ heading?: React.ReactNode;
166
+ nav?: React.ReactNode;
167
+ /** The host states its FAQs are categorised (`skeletonNav`): the nav is drawn loading and loaded, never optional. */
168
+ navDeclared?: boolean;
169
+ questions: React.ReactNode;
170
+ aside?: React.ReactNode;
171
+ }) {
172
+ // The category nav is drawn only when the FAQs fall into two or more categories: a part of the record
173
+ // (`data-loading-optional`), carrying its own gap, unless the host declared it (`navDeclared`).
174
+ const optional = navDeclared ? undefined : true;
175
+ if (!aside) {
176
+ return (
177
+ <div>
178
+ {nav && (
179
+ <div className={NAV_ABOVE_QUESTIONS_CLASS} data-loading-optional={optional}>
180
+ {nav}
181
+ </div>
182
+ )}
183
+ {questions}
184
+ </div>
185
+ );
186
+ }
187
+ // One instance of each block, placed by the grid: questions second in the
188
+ // document (and on a narrow area), in the right column from `lg`.
189
+ return (
190
+ <div className={ASIDE_GRID_CLASS}>
191
+ <div>
192
+ {heading}
193
+ {nav && (
194
+ <div className={NAV_BELOW_HEADING_CLASS} data-loading-optional={optional}>
195
+ {nav}
196
+ </div>
197
+ )}
198
+ </div>
199
+ <div className={ASIDE_QUESTIONS_CELL_CLASS}>{questions}</div>
200
+ <div className={ASIDE_CELL_CLASS}>{aside}</div>
201
+ </div>
202
+ );
203
+ }
204
+
205
+ /** The heading above the questions: the host's node (or the default `<h2>`), with the topic's bare name under it. */
206
+ function faqHeadingNode(heading: React.ReactNode | null | undefined, showTopic: boolean, topic?: string) {
207
+ // `undefined` → default <h2> title; `null` → the host page owns the <h1>, so no title renders here.
208
+ const titleNode = heading === undefined ? <h2 className={SECTION_HEADING_CLASS}>{DEFAULT_HEADING_TEXT}</h2> : heading;
209
+ if (!(showTopic && topic)) return titleNode;
210
+ // The host's heading may arrive from a server component, still streaming: React cannot check such a
211
+ // node when it sits in a list of siblings and warns about a missing key. So it is the ONLY child of its
212
+ // own wrapper, and the two siblings here are this component's own elements.
213
+ return (
214
+ <div className={TOPIC_STACK_CLASS}>
215
+ <div>{titleNode}</div>
216
+ <p className={TOPIC_CLASS}>{topic}</p>
217
+ </div>
218
+ );
219
+ }
220
+
94
221
  /** The id of a page's own FAQ block: what a page's "FAQ" link or section nav points at. */
95
222
  export const PAGE_FAQ_SECTION_ID = 'faq';
96
223
 
@@ -193,7 +320,10 @@ function GroupedFaqList({
193
320
  categoryHeadingAs,
194
321
  heading,
195
322
  aside,
323
+ navDeclared,
196
324
  }: {
325
+ /** The host declared the category nav (`skeletonNav`). */
326
+ navDeclared?: boolean;
197
327
  /** With `aside`, the section heading: it sits in the left column above the category nav. */
198
328
  heading?: React.ReactNode;
199
329
  aside?: React.ReactNode;
@@ -348,7 +478,7 @@ function GroupedFaqList({
348
478
  }, []);
349
479
 
350
480
  const categoryNav = navGroups.length > 1 && (
351
- <nav aria-label="FAQ categories" className="flex flex-wrap gap-2">
481
+ <nav aria-label="FAQ categories" className={CATEGORY_NAV_CLASS}>
352
482
  {navGroups.map(group => {
353
483
  const isActive = group.slug === activeSlug;
354
484
  return (
@@ -358,7 +488,7 @@ function GroupedFaqList({
358
488
  aria-current={isActive ? 'true' : undefined}
359
489
  onClick={e => handleJump(e, group.slug as string)}
360
490
  className={cn(
361
- 'rounded-full border px-4 py-2 transition-colors text-h6',
491
+ CATEGORY_PILL_CLASS,
362
492
  isActive
363
493
  ? 'border-ods-text-primary bg-ods-card text-ods-text-primary'
364
494
  : 'border-ods-border bg-ods-card text-ods-text-secondary hover:border-ods-text-secondary hover:text-ods-text-primary',
@@ -371,12 +501,21 @@ function GroupedFaqList({
371
501
  </nav>
372
502
  );
373
503
  const questions = (
374
- <div className="space-y-10">
504
+ <div className={QUESTIONS_STACK_CLASS}>
375
505
  {groups.map(group => {
376
506
  const key = groupKey(group);
377
507
  return (
378
- <section key={key} id={group.slug ?? undefined} className="scroll-mt-24 space-y-4">
379
- {group.section && <CategoryHeading className={SECTION_HEADING_CLASS}>{group.section}</CategoryHeading>}
508
+ // A category is a record's group: how many there are is the data's (`data-loading-item`, like a list row).
509
+ <section key={key} id={group.slug ?? undefined} className={CATEGORY_SECTION_CLASS} data-loading-item>
510
+ {/* Only a named group has a heading (the uncategorized one has none): a part of the record, not of every group. */}
511
+ {group.section && (
512
+ <CategoryHeading
513
+ className={CATEGORY_HEADING_CLASS}
514
+ data-loading-optional={navDeclared ? undefined : true}
515
+ >
516
+ {group.section}
517
+ </CategoryHeading>
518
+ )}
380
519
  <FaqAccordion
381
520
  // Re-key on item-hash changes so the remount picks up the new
382
521
  // `defaultOpenIds` (the accordion is uncontrolled). Stable for
@@ -391,47 +530,8 @@ function GroupedFaqList({
391
530
  </div>
392
531
  );
393
532
 
394
- if (!aside) {
395
- return (
396
- <div className="space-y-8">
397
- {categoryNav}
398
- {questions}
399
- </div>
400
- );
401
- }
402
-
403
- // One instance of each block, placed by the grid: questions second in the
404
- // document (and on a narrow area), in the right column from `lg`.
405
533
  return (
406
- <div className="grid gap-10 content-lg:grid-cols-[minmax(0,1fr)_minmax(0,2fr)] content-lg:grid-rows-[auto_1fr] content-lg:gap-x-16">
407
- <div className="space-y-8">
408
- {heading}
409
- {categoryNav}
410
- </div>
411
- <div className="content-lg:col-start-2 content-lg:row-span-2 content-lg:row-start-1">{questions}</div>
412
- <div className="content-lg:col-start-1 content-lg:row-start-2">{aside}</div>
413
- </div>
414
- );
415
- }
416
-
417
- function FaqSkeleton({
418
- region = true,
419
- }: {
420
- /** The loading state announces itself (`LoadingRegion`). `false` inside another loading region. Default `true`. */
421
- region?: boolean;
422
- } = {}) {
423
- return (
424
- <LoadingRegion label="Loading questions" announce={region} className="space-y-8">
425
- <UnifiedSkeleton className="h-12 w-2/3 rounded content-md:h-14" />
426
- <div className="w-full divide-y divide-ods-border overflow-hidden rounded-md border border-ods-border bg-transparent">
427
- {Array.from({ length: 8 }).map((_, idx) => (
428
- <div key={idx} className="flex items-center justify-between gap-6 px-6 py-4 content-md:gap-10">
429
- <UnifiedSkeleton className="h-6 w-5/6 rounded" />
430
- <UnifiedSkeleton className="size-6 rounded" />
431
- </div>
432
- ))}
433
- </div>
434
- </LoadingRegion>
534
+ <FaqLayout heading={heading} nav={categoryNav} navDeclared={navDeclared} questions={questions} aside={aside} />
435
535
  );
436
536
  }
437
537
 
@@ -473,8 +573,11 @@ export function FaqSection({
473
573
  apiBaseUrl = '',
474
574
  aside: asideProp,
475
575
  ask,
576
+ skeletonShape,
577
+ skeletonNav = false,
476
578
  }: FaqSectionProps) {
477
579
  const assistant = useAssistantRuntime();
580
+ const inScope = useLoadingScope();
478
581
  // The host's own block wins; else the card, where a chat is there to open and the FAQ has a topic
479
582
  // (an empty topic is no topic, as the questions request reads it).
480
583
  const askTopic = ask === false ? undefined : ask?.topic || topic || entityType;
@@ -488,7 +591,8 @@ export function FaqSection({
488
591
  () => (initialFaqs ? { faqs: initialFaqs } : undefined),
489
592
  [initialFaqs],
490
593
  );
491
- const { data, dataUrl, isLoading, error } = useSelfFetch<FaqsResponse>(url, { initialData });
594
+ // A loading scope fetches nothing.
595
+ const { data, dataUrl, isLoading, error } = useSelfFetch<FaqsResponse>(inScope ? null : url, { initialData });
492
596
 
493
597
  // Only the answer for THIS url: while another topic's questions load, the
494
598
  // previous topic's are not this page's. Memoised because the `??` fallback
@@ -499,46 +603,42 @@ export function FaqSection({
499
603
  // Grouped before the early returns so the hook order stays stable.
500
604
  const groups = useMemo(() => (faqs.length > 0 ? groupFaqsBySection(faqs) : []), [faqs]);
501
605
 
502
- // `undefined` → default <h2> title; `null` → the host page owns the <h1>, so
503
- // no title renders here. `heading === null` also makes the category headings
504
- // <h2> (directly under the page <h1>); otherwise they nest as <h3>.
505
- const titleNode = heading === undefined ? <h2 className={SECTION_HEADING_CLASS}>{DEFAULT_HEADING_TEXT}</h2> : heading;
506
- const headingNode =
507
- showTopic && topic ? (
508
- // The host's heading may arrive from a server component, still streaming: React cannot check such a
509
- // node when it sits in a list of siblings and warns about a missing key. So it is the ONLY child of its
510
- // own wrapper, and the two siblings here are this component's own elements.
511
- <div className="space-y-1">
512
- <div>{titleNode}</div>
513
- <p className="text-ods-text-muted text-h6">{topic}</p>
514
- </div>
515
- ) : (
516
- titleNode
517
- );
606
+ // `heading === null` also makes the category headings <h2> (directly under the page <h1>); otherwise they nest
607
+ // as <h3>.
608
+ const headingNode = faqHeadingNode(heading, showTopic, topic);
518
609
 
519
610
  // Degrade silently — never show an error banner or an empty section shell
520
611
  // where FAQs would be (host pages and the standalone surface both rely on it).
521
612
  if (error) return null;
522
- if (!isLoading && faqs.length === 0) return null;
523
- if (isLoading && faqs.length === 0) {
613
+ // In a loading scope, or while its own request is unanswered, the block is its skeleton.
614
+ if (inScope || (isLoading && faqs.length === 0)) {
524
615
  return (
525
- <div className={className}>
526
- <FaqSkeleton />
527
- </div>
616
+ <FaqSectionSkeleton
617
+ heading={heading}
618
+ topic={topic}
619
+ showTopic={showTopic}
620
+ aside={aside}
621
+ shape={skeletonShape ?? [{ rows: minResults }]}
622
+ navRow={skeletonNav}
623
+ className={className}
624
+ id={id}
625
+ />
528
626
  );
529
627
  }
628
+ if (faqs.length === 0) return null;
530
629
 
531
630
  const schema = emitJsonLd ? buildFaqJsonLdFromFaqs(faqs, jsonLd) : null;
532
631
 
533
632
  return (
534
633
  <>
535
- <section id={id} data-faq-topic={topic} className={className ?? 'space-y-10'}>
634
+ <section id={id} data-faq-topic={topic} className={className ?? SECTION_DEFAULT_CLASS}>
536
635
  {!aside && headingNode}
537
636
  <GroupedFaqList
538
637
  groups={groups}
539
638
  categoryHeadingAs={heading === null ? 'h2' : 'h3'}
540
639
  heading={aside ? headingNode : undefined}
541
640
  aside={aside}
641
+ navDeclared={skeletonNav}
542
642
  />
543
643
  </section>
544
644
  {schema && (
@@ -552,3 +652,82 @@ export function FaqSection({
552
652
  </>
553
653
  );
554
654
  }
655
+
656
+ export interface FaqSectionSkeletonProps extends Pick<
657
+ FaqSectionProps,
658
+ 'heading' | 'topic' | 'showTopic' | 'aside' | 'className' | 'id'
659
+ > {
660
+ /** The groups drawn, in order. Default one group with no heading, of one screen of rows. */
661
+ shape?: FaqSkeletonShape;
662
+ /** Draw the category nav's row (one line of pills) whatever `sections` is: the host's FAQs are categorised. */
663
+ navRow?: boolean;
664
+ }
665
+
666
+ /**
667
+ * The FAQ block while its questions are read: the heading (the host's node, or "Frequently Asked Questions") and the
668
+ * topic line real, the aside (the ask card, which draws its own loading state) in its place, then the `shape`'s groups:
669
+ * a named one with its heading bar (two or more named ones draw the nav's pills), each its question rows, as bars.
670
+ */
671
+ const DEFAULT_SKELETON_SHAPE: FaqSkeletonShape = [{}];
672
+
673
+ export function FaqSectionSkeleton({
674
+ heading,
675
+ topic,
676
+ showTopic = false,
677
+ aside,
678
+ shape = DEFAULT_SKELETON_SHAPE,
679
+ navRow = false,
680
+ className,
681
+ id,
682
+ }: FaqSectionSkeletonProps) {
683
+ const headingNode = faqHeadingNode(heading, showTopic, topic);
684
+ const CategoryHeading = heading === null ? 'h2' : 'h3';
685
+ const groups = shape.length > 0 ? shape : DEFAULT_SKELETON_SHAPE;
686
+ const named = groups.filter(group => group.heading).length;
687
+ const pill = (i: number) => (
688
+ // biome-ignore lint/suspicious/noArrayIndexKey: skeleton pills never reorder
689
+ <span key={i} className={cn(CATEGORY_PILL_CLASS, 'shrink-0 border-ods-border bg-ods-card')}>
690
+ <TextLineSkeleton type="inherit" as="span" className="w-24" />
691
+ </span>
692
+ );
693
+ const nav = navRow ? (
694
+ <div className={CATEGORY_NAV_SKELETON_LINE_CLASS} aria-hidden>
695
+ {Array.from({ length: FAQ_NAV_SKELETON_PILLS }, (_, i) => pill(i))}
696
+ </div>
697
+ ) : named > 1 ? (
698
+ <div className={CATEGORY_NAV_CLASS} aria-hidden>
699
+ {Array.from({ length: named }, (_, i) => pill(i))}
700
+ </div>
701
+ ) : undefined;
702
+ const questions = (
703
+ <div className={QUESTIONS_STACK_CLASS}>
704
+ {groups.map((group, index) => {
705
+ return (
706
+ // biome-ignore lint/suspicious/noArrayIndexKey: skeleton groups never reorder
707
+ <section key={index} className={CATEGORY_SECTION_CLASS} data-loading-item>
708
+ {group.heading && (
709
+ <CategoryHeading className={CATEGORY_HEADING_CLASS} data-loading-optional={navRow ? undefined : true}>
710
+ <TextLineSkeleton type="inherit" as="span" className="w-1/3" />
711
+ </CategoryHeading>
712
+ )}
713
+ <FaqAccordionSkeleton count={Math.max(1, group.rows ?? FAQ_SECTION_SKELETON_QUESTIONS)} />
714
+ </section>
715
+ );
716
+ })}
717
+ </div>
718
+ );
719
+ return (
720
+ <LoadingRegion label="Loading questions">
721
+ <section id={id} data-faq-topic={topic} className={className ?? SECTION_DEFAULT_CLASS}>
722
+ {!aside && headingNode}
723
+ <FaqLayout
724
+ heading={aside ? headingNode : undefined}
725
+ nav={nav}
726
+ navDeclared={navRow}
727
+ questions={questions}
728
+ aside={aside}
729
+ />
730
+ </section>
731
+ </LoadingRegion>
732
+ );
733
+ }
@@ -9,6 +9,17 @@
9
9
  //
10
10
  // (Server-safe subpath is wired in tsup.config.ts under the server/universal
11
11
  // block and exposed via "./components/faq/json-ld" in package.json#exports.)
12
- export { FaqSection, PAGE_FAQ_SECTION_ID, pageFaqProps, type FaqSectionProps, type PageFaqSlot } from './faq-section';
12
+ export {
13
+ FaqSection,
14
+ FaqSectionSkeleton,
15
+ FAQ_SECTION_SKELETON_QUESTIONS,
16
+ PAGE_FAQ_SECTION_ID,
17
+ pageFaqProps,
18
+ type FaqSectionProps,
19
+ type FaqSectionSkeletonProps,
20
+ type FaqSkeletonGroup,
21
+ type FaqSkeletonShape,
22
+ type PageFaqSlot,
23
+ } from './faq-section';
13
24
  export { FaqDocumentPage, type FaqDocumentPageProps } from './faq-document-page';
14
25
  export { FaqAskCard, type FaqAskOptions } from './faq-ask-card';
@@ -4,6 +4,8 @@ import { useState } from 'react';
4
4
  import { cn } from '../utils/cn';
5
5
  import { faqItemAnchor } from '../utils/faq-anchor';
6
6
  import { Chevron02DownIcon } from './icons-v2-generated/arrows/chevron-02-down-icon';
7
+ import { TextLineSkeleton } from './loading/unified-skeleton';
8
+ import { useLoadingScope } from './ui/loading-scope';
7
9
 
8
10
  export interface FaqItem {
9
11
  id: number | string;
@@ -16,8 +18,30 @@ interface FaqAccordionProps {
16
18
  defaultOpenIds?: (number | string)[];
17
19
  }
18
20
 
21
+ /** The accordion's layout, read by the accordion and by its skeleton, so the skeleton is the accordion's size. */
22
+ const ACCORDION_FRAME_CLASS =
23
+ 'divide-y divide-ods-border overflow-hidden rounded-md border border-ods-border bg-transparent';
24
+ const ROW_HEADER_CLASS = 'flex w-full items-center gap-6 px-6 py-4 text-left content-md:gap-10';
25
+ const QUESTION_CLASS = 'min-w-0 flex-1 break-words';
26
+ const CHEVRON_CLASS = 'shrink-0 text-ods-text-primary';
27
+ /**
28
+ * Rows the accordion's skeleton draws when not told how many: one screen of closed rows, from the row's layout. A
29
+ * closed row is `py-4` around one `text-h3` line from `content-md` (57px with its divider: 13 under a 900px desktop
30
+ * viewport once the block's heading sits above them) and about one and a half lines on a phone (about 62px: 12 under
31
+ * an 844px one). 12 fills the first screen at both widths without drawing a second.
32
+ */
33
+ export const FAQ_ACCORDION_SKELETON_ROWS = 12;
34
+ /**
35
+ * Whether a skeleton row's question takes two lines on a phone (one from `content-md`, where a question fits a line).
36
+ * Typically about every other question wraps on a phone: the skeleton alternates, starting with a wrapping row.
37
+ */
38
+ const wrapsOnPhone = (index: number) => index % 2 === 0;
39
+
19
40
  export function FaqAccordion({ items, defaultOpenIds = [] }: FaqAccordionProps) {
20
41
  const [openSet, setOpenSet] = useState<Set<string | number>>(new Set(defaultOpenIds));
42
+ // In a loading scope the items are the empty record: the accordion is its skeleton.
43
+ const loading = useLoadingScope();
44
+ if (loading) return <FaqAccordionSkeleton count={items.length || undefined} />;
21
45
 
22
46
  const toggle = (id: string | number) => {
23
47
  setOpenSet(prev => {
@@ -29,7 +53,7 @@ export function FaqAccordion({ items, defaultOpenIds = [] }: FaqAccordionProps)
29
53
  };
30
54
 
31
55
  return (
32
- <div className="divide-y divide-ods-border overflow-hidden rounded-md border border-ods-border bg-transparent">
56
+ <div className={ACCORDION_FRAME_CLASS}>
33
57
  {items.map(item => {
34
58
  const isOpen = openSet.has(item.id);
35
59
 
@@ -43,6 +67,8 @@ export function FaqAccordion({ items, defaultOpenIds = [] }: FaqAccordionProps)
43
67
  // category anchors).
44
68
  id={faqItemAnchor(item.id)}
45
69
  className="scroll-mt-24 transition-colors hover:bg-ods-bg-hover"
70
+ // A question is a read list's row: how many there are is the data's.
71
+ data-loading-item
46
72
  >
47
73
  {/* Header */}
48
74
  <div
@@ -56,16 +82,16 @@ export function FaqAccordion({ items, defaultOpenIds = [] }: FaqAccordionProps)
56
82
  }
57
83
  }}
58
84
  aria-expanded={isOpen}
59
- className="flex w-full cursor-pointer items-center gap-6 px-6 py-4 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-focus content-md:gap-10"
85
+ className={cn(
86
+ ROW_HEADER_CLASS,
87
+ 'cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-focus',
88
+ )}
60
89
  >
61
- <h3 className="min-w-0 flex-1 break-words">{item.question}</h3>
90
+ <h3 className={QUESTION_CLASS}>{item.question}</h3>
62
91
  <Chevron02DownIcon
63
92
  aria-hidden="true"
64
93
  size={24}
65
- className={cn(
66
- 'shrink-0 text-ods-text-primary transition-transform duration-300',
67
- isOpen && 'rotate-180',
68
- )}
94
+ className={cn(CHEVRON_CLASS, 'transition-transform duration-300', isOpen && 'rotate-180')}
69
95
  />
70
96
  </div>
71
97
  {/* Content wrapper. Collapses with the grid 1fr->0fr transition the
@@ -93,3 +119,37 @@ export function FaqAccordion({ items, defaultOpenIds = [] }: FaqAccordionProps)
93
119
  </div>
94
120
  );
95
121
  }
122
+
123
+ /**
124
+ * The accordion while its questions are read: the bordered list of `count` closed rows, each question a bar (two
125
+ * lines on a phone, one from `content-md`) inside the row's own `h3`, the chevron real.
126
+ */
127
+ export function FaqAccordionSkeleton({
128
+ count = FAQ_ACCORDION_SKELETON_ROWS,
129
+ className,
130
+ }: {
131
+ count?: number;
132
+ className?: string;
133
+ }) {
134
+ return (
135
+ <div className={cn(ACCORDION_FRAME_CLASS, className)} aria-hidden>
136
+ {Array.from({ length: count }, (_, i) => (
137
+ // biome-ignore lint/suspicious/noArrayIndexKey: skeleton rows never reorder
138
+ <div key={i} className={ROW_HEADER_CLASS} data-loading-item>
139
+ <h3 className={QUESTION_CLASS}>
140
+ {/* A typical question's lines: `wrapsOnPhone` on a phone, one from `content-md`. */}
141
+ {wrapsOnPhone(i) ? (
142
+ <>
143
+ <TextLineSkeleton type="inherit" as="span" lines={2} className="w-5/6 content-md:hidden" />
144
+ <TextLineSkeleton type="inherit" as="span" className="hidden w-5/6 content-md:block" />
145
+ </>
146
+ ) : (
147
+ <TextLineSkeleton type="inherit" as="span" className="w-5/6" />
148
+ )}
149
+ </h3>
150
+ <Chevron02DownIcon aria-hidden="true" size={24} className={CHEVRON_CLASS} />
151
+ </div>
152
+ ))}
153
+ </div>
154
+ );
155
+ }
@@ -8,6 +8,7 @@ import {
8
8
  getConfidenceLabel,
9
9
  } from '../../../utils/confidence-helpers';
10
10
  import { SparklesIcon } from '../../icons-v2-generated/interface/sparkles-icon';
11
+ import { LIVE_PULSE_CLASS } from '../../ui/skeleton-surface';
11
12
 
12
13
  export type AIStatus = 'idle' | 'loading' | 'success' | 'error';
13
14
 
@@ -60,7 +61,7 @@ export const AIStatusIndicator: React.FC<AIStatusIndicatorProps> = ({
60
61
  <SparklesIcon
61
62
  size={16}
62
63
  className={cn(
63
- status === 'loading' && 'animate-pulse',
64
+ status === 'loading' && LIVE_PULSE_CLASS,
64
65
  confidence !== undefined && status === 'success' ? getConfidenceTextClass(confidence) : config.color,
65
66
  )}
66
67
  />