@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
@@ -2,7 +2,9 @@
2
2
 
3
3
  import type React from 'react';
4
4
  import { cn } from '../../utils/cn';
5
+ import { TextLineSkeleton } from '../loading/unified-skeleton';
5
6
  import type { ActionsMenuGroup } from '../ui/actions-menu';
7
+ import { useLoadingScope } from '../ui/loading-scope';
6
8
  import { PageActions, type PageActionButton } from '../ui/page-actions';
7
9
  import { BackButton } from './back-button';
8
10
  import { accentSentenceMarks } from './page-heading';
@@ -136,8 +138,9 @@ function isAdvancedProps(props: PageContainerProps): props is AdvancedPageContai
136
138
  * </PageContainer>
137
139
  */
138
140
  export function PageContainer(props: PageContainerProps) {
141
+ const inScope = useLoadingScope();
139
142
  if (isAdvancedProps(props)) {
140
- return renderAdvancedPageContainer(props);
143
+ return renderAdvancedPageContainer(props, inScope);
141
144
  } else {
142
145
  return renderLegacyPageContainer(props);
143
146
  }
@@ -175,24 +178,54 @@ function renderLegacyPageContainer({
175
178
  );
176
179
  }
177
180
 
181
+ /** The header's title and subtitle lines, read by the header and by their skeletons. */
182
+ const PAGE_CONTAINER_TITLE_CLASS = 'text-ods-text-primary text-h2';
183
+ const PAGE_CONTAINER_SUBTITLE_CLASS = 'text-ods-text-secondary text-h6';
184
+
185
+ /** A page title that is read, while it is: one bar of the title's line, at its type step. */
186
+ export function PageContainerTitleSkeleton({ className }: { className?: string }) {
187
+ return <TextLineSkeleton type="h2" className={cn('w-64 max-w-full', className)} />;
188
+ }
189
+
190
+ /** A page subtitle that is read, while it is: one bar of the subtitle's line. */
191
+ export function PageContainerSubtitleSkeleton({ className }: { className?: string }) {
192
+ return <TextLineSkeleton type="h6" className={cn('w-80 max-w-full', className)} />;
193
+ }
194
+
178
195
  // Advanced implementation (from UI component)
179
- function renderAdvancedPageContainer({
180
- children,
181
- variant = 'content',
182
- title,
183
- subtitle,
184
- backButton,
185
- headerActions,
186
- headerContent,
187
- actions,
188
- actionsVariant,
189
- menuActions,
190
- padding = 'none',
191
- background = 'transparent',
192
- className,
193
- contentClassName,
194
- showHeader = true,
195
- }: AdvancedPageContainerProps) {
196
+ function renderAdvancedPageContainer(
197
+ {
198
+ children,
199
+ variant = 'content',
200
+ title,
201
+ subtitle,
202
+ backButton,
203
+ headerActions,
204
+ headerContent,
205
+ actions,
206
+ actionsVariant,
207
+ menuActions,
208
+ padding = 'none',
209
+ background = 'transparent',
210
+ className,
211
+ contentClassName,
212
+ showHeader = true,
213
+ }: AdvancedPageContainerProps,
214
+ inScope = false,
215
+ ) {
216
+ // A title or subtitle that is READ arrives as '' in a page's loading state (an absent one is undefined): it is
217
+ // drawn as a bar of its line, so the header keeps its rows. A given one is the page's own words, drawn as is.
218
+ const titleNode = title ? (
219
+ <PageTitle className={PAGE_CONTAINER_TITLE_CLASS}>{accentSentenceMarks(title)}</PageTitle>
220
+ ) : inScope && title === '' ? (
221
+ <PageContainerTitleSkeleton />
222
+ ) : null;
223
+ const subtitleNode = subtitle ? (
224
+ <div className={PAGE_CONTAINER_SUBTITLE_CLASS}>{subtitle}</div>
225
+ ) : inScope && subtitle === '' ? (
226
+ <PageContainerSubtitleSkeleton />
227
+ ) : null;
228
+
196
229
  // Determine PageActions variant based on page variant
197
230
  const getActionsVariant = () => {
198
231
  if (actionsVariant) return actionsVariant;
@@ -245,10 +278,10 @@ function renderAdvancedPageContainer({
245
278
  )}
246
279
 
247
280
  {/* Title */}
248
- {title && <PageTitle className="text-ods-text-primary text-h2">{accentSentenceMarks(title)}</PageTitle>}
281
+ {titleNode}
249
282
 
250
283
  {/* Subtitle */}
251
- {subtitle && <div className="text-ods-text-secondary text-h6">{subtitle}</div>}
284
+ {subtitleNode}
252
285
  </div>
253
286
 
254
287
  {/* Header Actions */}
@@ -275,8 +308,8 @@ function renderAdvancedPageContainer({
275
308
  />
276
309
  )}
277
310
 
278
- {title && <PageTitle className="text-ods-text-primary text-h2">{accentSentenceMarks(title)}</PageTitle>}
279
- {subtitle && <div className="text-ods-text-secondary text-h6">{subtitle}</div>}
311
+ {titleNode}
312
+ {subtitleNode}
280
313
  </div>
281
314
 
282
315
  {/* Header Actions */}
@@ -303,7 +336,7 @@ function renderAdvancedPageContainer({
303
336
  />
304
337
  )}
305
338
 
306
- {title && <PageTitle className="text-ods-text-primary text-h2">{accentSentenceMarks(title)}</PageTitle>}
339
+ {titleNode}
307
340
  </div>
308
341
 
309
342
  {/* Header Actions */}
@@ -320,10 +353,10 @@ function renderAdvancedPageContainer({
320
353
  // Default content header
321
354
  return (
322
355
  <div className="flex items-center justify-between gap-4 content-md:flex-col content-md:items-start content-md:justify-start content-lg:flex-row content-lg:items-center content-lg:justify-between">
323
- {(title || subtitle) && (
356
+ {(titleNode || subtitleNode) && (
324
357
  <div className="flex min-w-0 flex-1 flex-col gap-1">
325
- {title && <PageTitle className="text-ods-text-primary text-h2">{accentSentenceMarks(title)}</PageTitle>}
326
- {subtitle && <div className="text-ods-text-secondary text-h6">{subtitle}</div>}
358
+ {titleNode}
359
+ {subtitleNode}
327
360
  </div>
328
361
  )}
329
362
 
@@ -399,8 +432,5 @@ export const ContentPageContainer = (props: Omit<AdvancedPageContainerProps, 'va
399
432
  <PageContainer {...props} variant="content" />
400
433
  );
401
434
 
402
- // Re-export PageActionButton type for convenience
403
- export type { PageActionButton } from '../ui/page-actions';
404
-
405
435
  /** @deprecated Use `PageLayout` from `'../layout/page-layout'` instead. */
406
436
  export default PageContainer;
@@ -19,16 +19,41 @@ interface PageDataSyncState {
19
19
 
20
20
  interface PageDataSyncContextValue {
21
21
  state: PageDataSyncState;
22
- report: (state: PageDataSyncState) => void;
22
+ /** The page's records are mirrored, so its list states a sync (`PageDataSyncProvider`'s `stated`). */
23
+ stated: boolean;
24
+ report: (state: PageDataSyncState | ((prev: PageDataSyncState) => PageDataSyncState)) => void;
23
25
  }
24
26
 
25
27
  const PageDataSyncContext = createContext<PageDataSyncContextValue | null>(null);
26
28
 
27
29
  const EMPTY: PageDataSyncState = { sync: null, loading: false };
30
+ /**
31
+ * Before the list below has reported (its first paint, the server's HTML), the row is loading: a page that has the
32
+ * row has a list that states its sync, so its line's skeleton holds the row instead of the row appearing later.
33
+ */
34
+ const NOT_REPORTED: PageDataSyncState = { sync: null, loading: true };
28
35
 
29
- export function PageDataSyncProvider({ children }: { children: ReactNode }) {
30
- const [state, report] = useState<PageDataSyncState>(EMPTY);
31
- const value = useMemo(() => ({ state, report }), [state]);
36
+ export function PageDataSyncProvider({
37
+ stated = true,
38
+ children,
39
+ }: {
40
+ /**
41
+ * The page's records are mirrored from another system, so its list states a sync and the row holds its line's
42
+ * skeleton while it loads. `false`: the host authors the records; nothing is drawn while loading, and a line a host
43
+ * states anyway is an optional part (`data-loading-optional`). Default `true`.
44
+ */
45
+ stated?: boolean;
46
+ children: ReactNode;
47
+ }) {
48
+ const [state, report] = useState<PageDataSyncState>(stated ? NOT_REPORTED : EMPTY);
49
+ // The children's effects run before this one: a list that states its sync has reported by now. When none has, the
50
+ // page states no sync and the row's skeleton goes (a page whose list never reports must not hold it forever).
51
+ useEffect(() => {
52
+ // After the commit (a task, not inside the effect): every list mounted with the page has reported by then.
53
+ const timer = setTimeout(() => report(prev => (prev === NOT_REPORTED ? EMPTY : prev)), 0);
54
+ return () => clearTimeout(timer);
55
+ }, []);
56
+ const value = useMemo(() => ({ state, report, stated }), [state, stated]);
32
57
  return <PageDataSyncContext.Provider value={value}>{children}</PageDataSyncContext.Provider>;
33
58
  }
34
59
 
@@ -39,7 +64,17 @@ export function PageDataSyncProvider({ children }: { children: ReactNode }) {
39
64
  export function PageDataSyncRow({ inline = false }: { inline?: boolean }) {
40
65
  const context = useContext(PageDataSyncContext);
41
66
  if (!context) return null;
42
- return <DataSyncLine sync={context.state.sync} loading={context.state.loading} inline={inline} />;
67
+ const line = (
68
+ <DataSyncLine sync={context.state.sync} loading={context.state.loading} stated={context.stated} inline={inline} />
69
+ );
70
+ // A host that authors its records states no sync while loading; a line it states anyway is optional.
71
+ return context.stated ? (
72
+ line
73
+ ) : (
74
+ <div className="contents" data-loading-optional="">
75
+ {line}
76
+ </div>
77
+ );
43
78
  }
44
79
 
45
80
  /**
@@ -1,5 +1,6 @@
1
1
  import { Children, Fragment, cloneElement, isValidElement, type ReactElement, type ReactNode } from 'react';
2
2
  import { getPlatformBrandClasses } from '../../utils/platform-identity';
3
+ import { TextLineSkeleton } from '../loading/unified-skeleton';
3
4
 
4
5
  /**
5
6
  * THE page-title style — the ODS `text-h1` token (`--font-size-h1-title` =
@@ -231,6 +232,25 @@ export interface SectionHeadingProps {
231
232
  className?: string;
232
233
  }
233
234
 
235
+ /**
236
+ * THE eyebrow: the small label over a heading (Azeret Mono, uppercase, in the accent).
237
+ * `SectionHeading` draws it, and so does any heading that is not a `SectionHeading`
238
+ * (a call-to-action band's label), so a change to the eyebrow lands everywhere.
239
+ */
240
+ export function SectionEyebrow({
241
+ children,
242
+ platform,
243
+ tone = 'accent',
244
+ className,
245
+ }: {
246
+ children: ReactNode;
247
+ platform?: string | null;
248
+ tone?: HeadingAccentTone;
249
+ className?: string;
250
+ }) {
251
+ return <span className={['text-h5', headingAccentClass(platform, tone), className].filter(Boolean).join(' ')}>{children}</span>;
252
+ }
253
+
234
254
  /**
235
255
  * THE heading block of a page section or hero: an eyebrow, the heading with its
236
256
  * accent punctuation, an intro, and an optional action at the end of the row.
@@ -252,7 +272,7 @@ export function SectionHeading({
252
272
  const accentClassName = headingAccentClass(platform, tone);
253
273
  const layout = SECTION_HEADING_LAYOUT[level];
254
274
  const Tag = presentational ? 'div' : level === 'page' ? 'h1' : 'h2';
255
- const eyebrowNode = eyebrow ? <span className={`text-h5 ${accentClassName}`}>{eyebrow}</span> : null;
275
+ const eyebrowNode = eyebrow ? <SectionEyebrow platform={platform} tone={tone}>{eyebrow}</SectionEyebrow> : null;
256
276
  const headingText = (
257
277
  <>
258
278
  {accentSentenceMarks(title, platform, tone)}
@@ -295,3 +315,66 @@ export function SectionHeading({
295
315
  </div>
296
316
  );
297
317
  }
318
+
319
+ export interface SectionHeadingSkeletonProps {
320
+ level?: 'page' | 'section';
321
+ /** The eyebrow: static copy, drawn as it is. */
322
+ eyebrow?: ReactNode;
323
+ /** The title bar's width (a width class). Default `w-2/3`. */
324
+ titleWidth?: string;
325
+ /** The intro's lines: `true` is two. Omitted: no intro. */
326
+ intro?: boolean | 1 | 2 | 3;
327
+ /** Something at the far end of the row, drawn as given. */
328
+ action?: ReactNode;
329
+ platform?: string | null;
330
+ tone?: HeadingAccentTone;
331
+ className?: string;
332
+ }
333
+
334
+ /**
335
+ * A heading whose title and intro are read data (a category's name and description), while they are read: the same
336
+ * stack, the eyebrow for real, a one-line bar at the heading's type step and a bar per intro line at the intro's.
337
+ * No heading element is drawn: the loaded heading is the page's one.
338
+ */
339
+ export function SectionHeadingSkeleton({
340
+ level = 'section',
341
+ eyebrow,
342
+ titleWidth = 'w-2/3',
343
+ intro,
344
+ action,
345
+ platform,
346
+ tone = 'accent',
347
+ className,
348
+ }: SectionHeadingSkeletonProps) {
349
+ const layout = SECTION_HEADING_LAYOUT[level];
350
+ const introLines = intro === true ? 2 : intro || 0;
351
+ const stack = (
352
+ <div className={layout.stack} aria-hidden>
353
+ {eyebrow ? (
354
+ <SectionEyebrow platform={platform} tone={tone}>
355
+ {eyebrow}
356
+ </SectionEyebrow>
357
+ ) : null}
358
+ <div className={layout.heading}>
359
+ <TextLineSkeleton type="inherit" className={titleWidth} />
360
+ </div>
361
+ {introLines > 0 ? (
362
+ <div className={layout.intro}>
363
+ {Array.from({ length: introLines }, (_, i) => (
364
+ // biome-ignore lint/suspicious/noArrayIndexKey: skeleton lines never reorder
365
+ <TextLineSkeleton key={i} type="inherit" className={i === introLines - 1 && introLines > 1 ? 'w-2/3' : 'w-full'} />
366
+ ))}
367
+ </div>
368
+ ) : null}
369
+ </div>
370
+ );
371
+ if (!action) return className ? <div className={className}>{stack}</div> : stack;
372
+ return (
373
+ <div
374
+ className={`flex flex-wrap items-end justify-between gap-[var(--spacing-system-mf)]${className ? ` ${className}` : ''}`}
375
+ >
376
+ {stack}
377
+ {action}
378
+ </div>
379
+ );
380
+ }
@@ -48,7 +48,7 @@ import type React from 'react';
48
48
  import { cn } from '../../utils/cn';
49
49
  import type { ActionsMenuGroup } from '../ui/actions-menu';
50
50
  import type { PageActionButton } from '../ui/page-actions';
51
- import { TitleBlock } from './title-block';
51
+ import { TitleBlock, type TitleSkeletonLines } from './title-block';
52
52
 
53
53
  export interface PageLayoutProps {
54
54
  children: React.ReactNode;
@@ -84,6 +84,8 @@ export interface PageLayoutProps {
84
84
  * ellipsis clamp (forwarded to `TitleBlock`). For content detail pages whose h1 is CMS
85
85
  * data of arbitrary length. Additive + default-preserving. */
86
86
  titleWrap?: boolean;
87
+ /** With `titleWrap`, the loading title's lines per breakpoint (forwarded to `TitleBlock`). */
88
+ titleSkeletonLines?: TitleSkeletonLines;
87
89
  }
88
90
 
89
91
  /**
@@ -111,6 +113,7 @@ export function PageLayout({
111
113
  loadingActions,
112
114
  subtitleRow,
113
115
  titleWrap,
116
+ titleSkeletonLines,
114
117
  }: PageLayoutProps) {
115
118
  const hasActions = actions && actions.length > 0;
116
119
  const needsBottomPadding = hasActions && actionsVariant === 'primary-buttons';
@@ -135,6 +138,7 @@ export function PageLayout({
135
138
  loadingActions={loadingActions}
136
139
  subtitleRow={subtitleRow}
137
140
  titleWrap={titleWrap}
141
+ titleSkeletonLines={titleSkeletonLines}
138
142
  />
139
143
  )}
140
144
 
@@ -150,8 +154,4 @@ export function PageLayout({
150
154
  </div>
151
155
  );
152
156
  }
153
-
154
- export type { PageActionButton } from '../ui/page-actions';
155
- export { TitleBlock, TITLE_BLOCK_MIN_HEIGHT } from './title-block';
156
- export type { TitleBlockProps } from './title-block';
157
157
  export default PageLayout;
@@ -79,15 +79,22 @@
79
79
  * a `div` inside a `p` is auto-closed by the HTML parser, which would split the
80
80
  * subtitle paragraph and desync hydration. The `titleWrap` branch is untouched
81
81
  * (wrapped text never clips, so it never needs a tooltip).
82
+ *
83
+ * SANCTIONED EXCEPTION (2026-10, explicit human sign-off): loading scopes. In a
84
+ * `LoadingScope` a title or subtitle that is READ arrives as '' (an absent one
85
+ * is undefined) and is drawn exactly as `loading` draws it: its bar inside the
86
+ * real `h1`/`p`. A given title or subtitle is the page's own words, drawn as
87
+ * is. Outside a scope every caller is byte-identical.
82
88
  * ========================================================================== */
83
89
 
84
90
  import type React from 'react';
85
91
  import { useIsTruncated } from '../../hooks/ui/use-is-truncated';
86
92
  import { cn } from '../../utils/cn';
87
- import { UnifiedSkeleton } from '../loading/unified-skeleton';
93
+ import { TextLineSkeleton, UnifiedSkeleton } from '../loading/unified-skeleton';
88
94
  import type { ActionsMenuGroup } from '../ui/actions-menu';
89
95
  import { EntityImage } from '../ui/entity-image';
90
96
  import { FloatingTooltip } from '../ui/floating-tooltip';
97
+ import { useLoadingScope } from '../ui/loading-scope';
91
98
  import { PageActions, type PageActionButton } from '../ui/page-actions';
92
99
  import { BackButton } from './back-button';
93
100
  import { PageTitle } from './page-picture';
@@ -157,6 +164,18 @@ export interface TitleBlockProps {
157
164
  * ellipsis clamp. For content detail pages whose h1 is CMS data of arbitrary length.
158
165
  * Additive + default-preserving: omit it and every existing caller is byte-identical. */
159
166
  titleWrap?: boolean;
167
+ /**
168
+ * With `titleWrap`: the lines a typical title of the page takes per breakpoint, drawn by the loading title (a
169
+ * record's title is read; a long one growing past them is a settle). Absent: one bar.
170
+ */
171
+ titleSkeletonLines?: TitleSkeletonLines;
172
+ }
173
+
174
+ /** Lines a wrapping title's skeleton draws: on a phone, from `content-md`, from `content-lg`. */
175
+ export interface TitleSkeletonLines {
176
+ phone: number;
177
+ md: number;
178
+ lg: number;
160
179
  }
161
180
 
162
181
  /**
@@ -202,8 +221,17 @@ export function TitleBlock({
202
221
  loadingActions,
203
222
  subtitleRow = 'when-set',
204
223
  titleWrap = false,
224
+ titleSkeletonLines,
205
225
  }: TitleBlockProps) {
206
- const hasSubtitleRow = !!subtitle || subtitleRow === 'always' || (subtitleRow === 'while-loading' && !!loading);
226
+ // In a loading scope a read title / subtitle ('' there) is drawn as `loading` draws it.
227
+ const scoped = useLoadingScope();
228
+ const titleLoading = !!loading || (scoped && title === '');
229
+ const subtitleLoading = !!loading || (scoped && subtitle === '');
230
+ const hasSubtitleRow =
231
+ !!subtitle ||
232
+ subtitleRow === 'always' ||
233
+ (subtitleRow === 'while-loading' && !!loading) ||
234
+ (scoped && subtitle === '');
207
235
  const hasActions = actions && actions.length > 0;
208
236
  const hasMenuActions = !!menuActions && menuActions.some(g => g.items.length > 0);
209
237
  const titleClass = titleSize === 'h1' ? 'text-h1' : 'text-h2';
@@ -215,19 +243,43 @@ export function TitleBlock({
215
243
  // Exactly one title element renders per pass, so one ref covers every branch.
216
244
  // The tooltip arms itself only on real clipping — repeating a fully visible
217
245
  // title back to the user is noise, and `titleWrap`/loading never clip at all.
218
- const { ref: titleRef, isTruncated: titleTruncated } = useIsTruncated<HTMLHeadingElement>(loading ? null : title);
219
- const { ref: subtitleRef, isTruncated: subtitleTruncated } = useIsTruncated<HTMLParagraphElement>(
220
- loading ? null : subtitle,
246
+ const { ref: titleRef, isTruncated: titleTruncated } = useIsTruncated<HTMLHeadingElement>(
247
+ titleLoading ? null : title,
221
248
  );
222
- const titleNode = loading ? (
223
- <UnifiedSkeleton
224
- as="span"
225
- aria-hidden
226
- className={cn(TITLE_TEXT_SKELETON_CLASS, skeletonSize.width, skeletonSize.height)}
227
- />
228
- ) : (
229
- title
249
+ const { ref: subtitleRef, isTruncated: subtitleTruncated } = useIsTruncated<HTMLParagraphElement>(
250
+ subtitleLoading ? null : subtitle,
230
251
  );
252
+ const titleNode =
253
+ titleLoading && titleWrap && titleSkeletonLines ? (
254
+ <>
255
+ <TextLineSkeleton
256
+ type="inherit"
257
+ as="span"
258
+ lines={titleSkeletonLines.phone}
259
+ className="w-full content-md:hidden"
260
+ />
261
+ <TextLineSkeleton
262
+ type="inherit"
263
+ as="span"
264
+ lines={titleSkeletonLines.md}
265
+ className="hidden w-full content-md:flex content-lg:hidden"
266
+ />
267
+ <TextLineSkeleton
268
+ type="inherit"
269
+ as="span"
270
+ lines={titleSkeletonLines.lg}
271
+ className="hidden w-full content-lg:flex"
272
+ />
273
+ </>
274
+ ) : titleLoading ? (
275
+ <UnifiedSkeleton
276
+ as="span"
277
+ aria-hidden
278
+ className={cn(TITLE_TEXT_SKELETON_CLASS, skeletonSize.width, skeletonSize.height)}
279
+ />
280
+ ) : (
281
+ title
282
+ );
231
283
 
232
284
  return (
233
285
  <div
@@ -256,16 +308,19 @@ export function TitleBlock({
256
308
  className={cn(
257
309
  'flex min-w-0 flex-1 flex-col justify-center gap-[var(--spacing-system-xs)] content-md:max-w-full content-md:flex-none',
258
310
  TITLE_BLOCK_MIN_HEIGHT,
311
+ // A wrapping title's loading lines stand for a title that fills the row (its typical lines are full ones), so the
312
+ // column takes the row's width: sized to content it would shrink to the bars' minimum.
313
+ titleLoading && titleWrap && titleSkeletonLines && 'content-md:w-full',
259
314
  )}
260
315
  >
261
316
  {backButton && (
262
317
  <BackButton onClick={backButton.onClick} label={backButton.label} className="hidden content-md:inline-flex" />
263
318
  )}
264
- {image || hasSubtitleRow || loading ? (
319
+ {image || hasSubtitleRow || titleLoading ? (
265
320
  <div className="flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]">
266
321
  {image && <EntityImage src={image.src} alt={image.alt} fallbackText={image.alt || title} />}
267
322
  <div className="flex min-w-0 flex-1 flex-col justify-center">
268
- {(loading || title) &&
323
+ {(titleLoading || title) &&
269
324
  (titleAdornment ? (
270
325
  <div className="flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]">
271
326
  {/* `min-w-0` moves onto the tooltip's wrapper: the wrapper is
@@ -302,9 +357,9 @@ export function TitleBlock({
302
357
  <p
303
358
  ref={subtitleRef}
304
359
  className="truncate text-ods-text-secondary text-h6"
305
- aria-hidden={!loading && !subtitle ? true : undefined}
360
+ aria-hidden={!subtitleLoading && !subtitle ? true : undefined}
306
361
  >
307
- {loading ? (
362
+ {subtitleLoading ? (
308
363
  <UnifiedSkeleton
309
364
  as="span"
310
365
  aria-hidden
@@ -10,6 +10,10 @@ interface CategoryVendorSelectorSkeletonProps {
10
10
  className?: string;
11
11
  }
12
12
 
13
+ /**
14
+ * @deprecated Render the selector itself inside a `LoadingScope`: its parts draw their own skeletons. Kept so hosts on an older release keep compiling; nothing in the lib uses it.
15
+ */
16
+ // loading-standard-ok: deprecated re-export kept for external consumers
13
17
  export function CategoryVendorSelectorSkeleton({
14
18
  region = true,
15
19
  subcategories = 3,
@@ -0,0 +1,133 @@
1
+ import { cn } from '../../utils/cn';
2
+ import { CardSkeletonGrid } from './card-skeleton';
3
+ import { LoadingRegion } from './loading-region';
4
+ import { UnifiedSkeleton } from './unified-skeleton';
5
+
6
+ interface LoadingLayoutProps {
7
+ className?: string;
8
+ /** The loading state announces itself (`LoadingRegion`). `false` inside another loading region. Default `true`. */
9
+ region?: boolean;
10
+ }
11
+
12
+ /**
13
+ * @deprecated Draw the blog list itself: its cards draw their own skeletons in a `LoadingScope`. Kept so hosts on an
14
+ * older release keep compiling.
15
+ *
16
+ * Blog Card Grid Skeleton - Always displays exactly 4 blog card skeletons
17
+ * Used for consistent blog page layout with predictable height
18
+ */
19
+ // loading-standard-ok: deprecated re-export kept for external consumers
20
+ export function BlogCardGridSkeleton({ className, region = true }: LoadingLayoutProps) {
21
+ return (
22
+ <div className={cn('space-y-6', className)}>
23
+ <CardSkeletonGrid count={4} variant="blog" region={region} className="grid-cols-1 content-md:grid-cols-2" />
24
+ </div>
25
+ );
26
+ }
27
+
28
+ /**
29
+ * @deprecated The Slack community section is the host's own component, which draws its own skeleton. Kept so hosts
30
+ * on an older release keep compiling.
31
+ *
32
+ * Slack Community Section Skeleton
33
+ * Matches SlackCommunity component structure with title, channel list, and chat interface
34
+ */
35
+ // loading-standard-ok: deprecated re-export kept for external consumers
36
+ export function SlackCommunitySkeleton({ region = true }: { region?: boolean } = {}) {
37
+ return (
38
+ <LoadingRegion
39
+ label="Loading the Slack community"
40
+ as="section"
41
+ announce={region}
42
+ className="w-full bg-ods-bg px-4 py-12 content-md:px-20 content-md:py-20 content-lg:px-20"
43
+ >
44
+ {/* Frame 651 Container */}
45
+ <div className="flex w-full flex-col gap-4 content-md:gap-6">
46
+ {/* Title Skeleton */}
47
+ <div className="w-full">
48
+ <UnifiedSkeleton className="h-8 max-w-md rounded-lg content-md:h-12 content-lg:h-14" />
49
+ </div>
50
+
51
+ {/* Content Area - Channel List + Chat Interface */}
52
+ <div className="flex w-full min-w-0 flex-col gap-4 content-md:gap-6 content-lg:flex-row content-lg:items-start content-lg:justify-end">
53
+ {/* Channel List Skeleton */}
54
+ <div className="flex w-full flex-shrink-0 flex-col overflow-hidden rounded border border-ods-border bg-ods-bg content-lg:w-[290px] content-lg:max-w-[290px]">
55
+ <div className="space-y-4 p-4">
56
+ {/* Header */}
57
+ <div className="flex flex-col gap-2">
58
+ <div className="flex items-center justify-between">
59
+ <UnifiedSkeleton className="h-4 w-24 rounded" />
60
+ <UnifiedSkeleton className="h-3 w-16 rounded" />
61
+ </div>
62
+ <UnifiedSkeleton className="h-3 w-32 rounded" />
63
+ </div>
64
+
65
+ {/* Channels */}
66
+ <div className="flex flex-col gap-1">
67
+ <UnifiedSkeleton className="mb-2 h-3 w-16 rounded" />
68
+ {Array.from({ length: 5 }).map((_, i) => (
69
+ <div key={i} className="flex min-h-[48px] items-center gap-2 px-2 py-3">
70
+ <UnifiedSkeleton className="h-4 w-4 rounded" />
71
+ <div className="flex-1">
72
+ <UnifiedSkeleton className="mb-1 h-3 w-24 rounded" />
73
+ <UnifiedSkeleton className="h-2 w-16 rounded" />
74
+ </div>
75
+ </div>
76
+ ))}
77
+ </div>
78
+
79
+ {/* Stats */}
80
+ <div className="mt-2 border-t border-ods-border pt-3">
81
+ <div className="space-y-2">
82
+ <div className="flex justify-between">
83
+ <UnifiedSkeleton className="h-3 w-16 rounded" />
84
+ <UnifiedSkeleton className="h-3 w-8 rounded" />
85
+ </div>
86
+ <div className="flex justify-between">
87
+ <UnifiedSkeleton className="h-3 w-20 rounded" />
88
+ <UnifiedSkeleton className="h-3 w-8 rounded" />
89
+ </div>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </div>
94
+
95
+ {/* Chat Interface Skeleton */}
96
+ <div className="flex h-[450px] min-h-[450px] min-w-0 flex-1 flex-col rounded-lg border border-ods-border bg-ods-card content-md:h-[500px] content-md:min-h-[500px] content-lg:h-[600px] content-lg:min-h-[600px]">
97
+ {/* Header */}
98
+ <div className="flex h-[56px] flex-shrink-0 items-center justify-between border-b border-ods-border bg-ods-bg p-4 content-md:h-[60px] content-md:p-6">
99
+ <div className="flex items-center gap-2">
100
+ <UnifiedSkeleton className="h-3 w-3 rounded content-md:h-4 content-md:w-4" />
101
+ <UnifiedSkeleton className="h-3 w-24 rounded content-md:h-4 content-md:w-32" />
102
+ </div>
103
+ <UnifiedSkeleton className="h-3 w-12 rounded content-md:w-16" />
104
+ </div>
105
+
106
+ {/* Messages */}
107
+ <div className="min-h-[280px] flex-1 space-y-3 overflow-hidden bg-ods-bg p-4 content-md:min-h-[320px] content-md:space-y-4 content-md:p-6 content-lg:min-h-[420px]">
108
+ {Array.from({ length: 6 }).map((_, i) => (
109
+ <div key={i} className="flex gap-2 content-md:gap-3">
110
+ <UnifiedSkeleton className="h-10 w-10 flex-shrink-0 rounded-lg content-md:h-12 content-md:w-12" />
111
+ <div className="flex-1">
112
+ <div className="mb-1 flex items-center gap-2">
113
+ <UnifiedSkeleton className="h-3 w-16 rounded content-md:w-20" />
114
+ <UnifiedSkeleton className="h-3 w-12 rounded content-md:w-16" />
115
+ </div>
116
+ <UnifiedSkeleton className="h-3 w-full rounded content-md:h-4" />
117
+ </div>
118
+ </div>
119
+ ))}
120
+ </div>
121
+
122
+ {/* Input Area */}
123
+ <div className="h-[72px] flex-shrink-0 border-t border-ods-border bg-ods-card p-4 content-md:h-[80px] content-md:p-6">
124
+ <div className="flex items-end justify-center gap-3 content-md:justify-end">
125
+ <UnifiedSkeleton className="h-10 w-28 rounded-lg content-md:h-12 content-md:w-32" />
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+ </LoadingRegion>
132
+ );
133
+ }