@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
@@ -21,16 +21,19 @@
21
21
  * platform awareness; pass copy or leave it absent to render nothing.
22
22
  *
23
23
  * Render order: avatar → name + job title + date → bio (when present).
24
- * Returns null when `author` is empty (no card rendered).
24
+ * Returns null when `author` is empty (no card rendered); in a loading scope it is
25
+ * `ArticleAuthorBylineSkeleton`.
25
26
  */
26
27
 
27
28
  import { Calendar, User } from 'lucide-react';
28
- import { useChatRuntime } from '../../contexts/chat-runtime-context';
29
29
  import Image from '../../embed-shims/next-image';
30
30
  import Link from '../../embed-shims/next-link';
31
+ import { AVATAR_SIZE, AVATAR_SIZE_PX } from '../../styles/component-sizes';
31
32
  import { cn } from '../../utils/cn';
32
33
  import { formatBioText, formatDateWithTimezone } from '../../utils/format';
33
- import { getProxiedImageUrl } from '../../utils/image-proxy';
34
+ import { useProxiedImageUrl } from '../chat/hooks/use-proxied-image-url';
35
+ import { TextLineSkeleton, UnifiedSkeleton } from '../loading/unified-skeleton';
36
+ import { useLoadingScope } from '../ui/loading-scope';
34
37
 
35
38
  export interface ArticleAuthorBylineProps {
36
39
  /** Author display name. Required — block is hidden when null/empty. */
@@ -64,6 +67,20 @@ export interface ArticleAuthorBylineProps {
64
67
  className?: string;
65
68
  }
66
69
 
70
+ /** The card's layout, read by the card and by its skeleton, so the skeleton is the card's size. */
71
+ const BYLINE_FRAME_CLASS = cn(
72
+ 'rounded-lg border border-ods-border bg-ods-card p-6',
73
+ 'flex flex-col items-start gap-4 content-md:flex-row',
74
+ );
75
+ /** The byline's avatar at each density, on the shared avatar scale. */
76
+ const BYLINE_AVATAR_SIZE = { md: 'byline', lg: 'xl' } as const;
77
+ const AVATAR_BORDER_CLASS = 'rounded-full border-2 border-ods-border';
78
+ const BODY_CLASS = 'min-w-0 flex-1';
79
+ const NAME_ROW_CLASS = 'flex flex-wrap items-baseline gap-x-3 gap-y-1';
80
+ const NAME_CLASS = 'text-ods-text-primary text-h5';
81
+ const JOB_TITLE_CLASS = 'text-body-sm mt-0.5 font-body text-ods-text-secondary';
82
+ const BIO_CLASS = 'text-body-md mt-2 font-body leading-relaxed text-ods-text-secondary';
83
+
67
84
  function formatDate(value: string | Date): string {
68
85
  // A published date is a content date: UTC-pinned through the one renderer, so
69
86
  // the server and every client agree on the day (React #418).
@@ -82,39 +99,24 @@ export function ArticleAuthorByline({
82
99
  proxyImageUrl,
83
100
  className,
84
101
  }: ArticleAuthorBylineProps) {
85
- // Optional runtime — `useChatRuntime` returns null outside a provider, so
86
- // the byline works in bare embeds (raw avatar URL) and proxies whenever the
87
- // host mounted a runtime with `imageProxyUrlPrefix` (the hub always does).
88
- const runtime = useChatRuntime();
102
+ // Before the early returns: a hook is called on every render.
103
+ const proxiedAvatar = useProxiedImageUrl(avatar, { proxyImageUrl });
104
+ const loading = useLoadingScope();
105
+ // ONE switch: in a loading scope with no author yet (it is read) the byline is its skeleton; an author it is given
106
+ // there is the page's own and is drawn as it is.
107
+ if (loading && !author) return <ArticleAuthorBylineSkeleton size={size} className={className} />;
89
108
  if (!author) return null;
90
109
 
91
- const proxiedAvatar = avatar
92
- ? proxyImageUrl
93
- ? proxyImageUrl(avatar)
94
- : (getProxiedImageUrl(avatar, {
95
- proxyPrefix: runtime?.endpoints.imageProxyUrlPrefix,
96
- skipDomains: runtime?.endpoints.imageProxySkipDomains,
97
- directHttps: true,
98
- }) ?? avatar)
99
- : '';
100
-
101
- // Class-driven sizing (md = 56px, lg = 64px). The numeric pair feeds only
102
- // the Image element's intrinsic width/height attributes (required by the
103
- // Next image shim) — layout comes from the classes.
104
- const avatarSizeClass = size === 'lg' ? 'w-16 h-16' : 'w-14 h-14';
110
+ // Class-driven sizing from the shared avatar scale. The pixel size feeds only the Image element's intrinsic
111
+ // width/height attributes (required by the Next image shim): layout comes from the class.
112
+ const avatarSizeClass = AVATAR_SIZE[BYLINE_AVATAR_SIZE[size]];
105
113
  const avatarIconClass = size === 'lg' ? 'w-8 h-8' : 'w-7 h-7';
106
- const avatarDim = size === 'lg' ? 64 : 56;
114
+ const avatarDim = AVATAR_SIZE_PX[BYLINE_AVATAR_SIZE[size]];
107
115
  const formattedBio = formatBioText(bio ?? null);
108
116
  const dateLabel = publishedAt ? formatDate(publishedAt) : '';
109
117
 
110
118
  return (
111
- <div
112
- className={cn(
113
- 'rounded-lg border border-ods-border bg-ods-card p-6',
114
- 'flex flex-col items-start gap-4 content-md:flex-row',
115
- className,
116
- )}
117
- >
119
+ <div className={cn(BYLINE_FRAME_CLASS, className)}>
118
120
  {/* Avatar */}
119
121
  <div className="flex-shrink-0">
120
122
  {avatar ? (
@@ -123,24 +125,19 @@ export function ArticleAuthorByline({
123
125
  alt={author}
124
126
  width={avatarDim}
125
127
  height={avatarDim}
126
- className={cn('rounded-full border-2 border-ods-border object-cover', avatarSizeClass)}
128
+ className={cn(AVATAR_BORDER_CLASS, 'object-cover', avatarSizeClass)}
127
129
  />
128
130
  ) : (
129
- <div
130
- className={cn(
131
- 'flex items-center justify-center rounded-full border-2 border-ods-border bg-ods-bg',
132
- avatarSizeClass,
133
- )}
134
- >
131
+ <div className={cn('flex items-center justify-center bg-ods-bg', AVATAR_BORDER_CLASS, avatarSizeClass)}>
135
132
  <User className={cn('text-ods-text-secondary', avatarIconClass)} />
136
133
  </div>
137
134
  )}
138
135
  </div>
139
136
 
140
137
  {/* Name + meta + bio */}
141
- <div className="min-w-0 flex-1">
142
- <div className="flex flex-wrap items-baseline gap-x-3 gap-y-1">
143
- <h3 className="text-ods-text-primary text-h5">
138
+ <div className={BODY_CLASS}>
139
+ <div className={NAME_ROW_CLASS}>
140
+ <h3 className={NAME_CLASS}>
144
141
  {href ? (
145
142
  <Link href={href} className="transition-colors hover:text-ods-accent">
146
143
  {author}
@@ -156,9 +153,9 @@ export function ArticleAuthorByline({
156
153
  </span>
157
154
  )}
158
155
  </div>
159
- {jobTitle && <p className="text-body-sm mt-0.5 font-body text-ods-text-secondary">{jobTitle}</p>}
156
+ {jobTitle && <p className={JOB_TITLE_CLASS}>{jobTitle}</p>}
160
157
  {formattedBio ? (
161
- <p className="text-body-md mt-2 font-body leading-relaxed text-ods-text-secondary">{formattedBio}</p>
158
+ <p className={BIO_CLASS}>{formattedBio}</p>
162
159
  ) : fallbackBio ? (
163
160
  <p className="text-body-md mt-2 font-body italic text-ods-text-secondary">{fallbackBio}</p>
164
161
  ) : null}
@@ -166,3 +163,30 @@ export function ArticleAuthorByline({
166
163
  </div>
167
164
  );
168
165
  }
166
+
167
+ /**
168
+ * The byline while its author is read: the card frame, the avatar circle at its size, and bars for the name (h5),
169
+ * the job title and three bio lines, each inside the loaded text's own element so it takes that line's height.
170
+ */
171
+ export function ArticleAuthorBylineSkeleton({ size = 'md', className }: { size?: 'md' | 'lg'; className?: string }) {
172
+ return (
173
+ <div className={cn(BYLINE_FRAME_CLASS, className)} aria-hidden>
174
+ <div className="flex-shrink-0">
175
+ <UnifiedSkeleton variant="circular" className={AVATAR_SIZE[BYLINE_AVATAR_SIZE[size]]} />
176
+ </div>
177
+ <div className={cn(BODY_CLASS, 'w-full')}>
178
+ <div className={NAME_ROW_CLASS}>
179
+ <h3 className={NAME_CLASS}>
180
+ <TextLineSkeleton type="inherit" as="span" className="w-40" />
181
+ </h3>
182
+ </div>
183
+ <p className={JOB_TITLE_CLASS}>
184
+ <TextLineSkeleton type="inherit" as="span" className="w-32" />
185
+ </p>
186
+ <p className={BIO_CLASS}>
187
+ <TextLineSkeleton type="inherit" as="span" lines={3} className="w-full" />
188
+ </p>
189
+ </div>
190
+ </div>
191
+ );
192
+ }
@@ -40,6 +40,7 @@ import { usePageDataSync } from '../../layout/page-data-sync';
40
40
  import { ListEmptyState } from '../../list-empty-state';
41
41
  import { DataSyncLine } from '../../ui/data-attribution';
42
42
  import { LoadError } from '../../ui/error-state';
43
+ import { useLoadingScope } from '../../ui/loading-scope';
43
44
  import { DeliveryTable } from './delivery-table';
44
45
 
45
46
  const DEFAULT_COMPLETED_ENDPOINT = '/api/delivery/completed';
@@ -87,7 +88,10 @@ export function DeliveryLists({
87
88
  const pathname = usePathname();
88
89
 
89
90
  const [data, setData] = useState<DeliveryResponse | null>(null);
90
- const [isLoading, setIsLoading] = useState(true);
91
+ const [isFetching, setIsLoading] = useState(true);
92
+ // ONE switch: in a page's loading state nothing is fetched and the lists are their skeletons.
93
+ const inScope = useLoadingScope();
94
+ const isLoading = inScope || isFetching;
91
95
  const [error, setError] = useState<string | null>(null);
92
96
  const [sync, setSync] = useState<DataSync | null>(null);
93
97
 
@@ -100,6 +104,7 @@ export function DeliveryLists({
100
104
  // rewrites the query string re-runs this effect while the previous pair of
101
105
  // requests is still open. Without this guard a slower EARLIER response can
102
106
  // resolve last and paint results for a query the user already moved past.
107
+ if (inScope) return undefined;
103
108
  let cancelled = false;
104
109
 
105
110
  async function fetchDeliveryData() {
@@ -156,7 +161,15 @@ export function DeliveryLists({
156
161
  return () => {
157
162
  cancelled = true;
158
163
  };
159
- }, [searchQuery, taskTypeFilter, completedApiEndpoint, inProgressApiEndpoint, searchParamKey, taskTypeParamKey]);
164
+ }, [
165
+ inScope,
166
+ searchQuery,
167
+ taskTypeFilter,
168
+ completedApiEndpoint,
169
+ inProgressApiEndpoint,
170
+ searchParamKey,
171
+ taskTypeParamKey,
172
+ ]);
160
173
 
161
174
  const filteredCompleted = data?.completed || [];
162
175
  const filteredInProgress = data?.inProgress || [];
@@ -25,11 +25,14 @@
25
25
  */
26
26
 
27
27
  import Link from '../../../embed-shims/next-link';
28
+ import { TEXT_LINES_MIN } from '../../../styles/component-sizes';
28
29
  import { type DeliveryItem, TASK_TYPE_LABELS, TASK_TYPE_TEXT_COLORS } from '../../../types/delivery';
29
30
  import { getStatusColorScheme } from '../../../utils';
30
31
  import { cn } from '../../../utils/cn';
32
+ import { TextLineSkeleton } from '../../loading/unified-skeleton';
31
33
  import { AvatarStack } from '../../ui/avatar-stack';
32
- import { StatusBadge } from '../../ui/status-badge';
34
+ import { useLoadingScope } from '../../ui/loading-scope';
35
+ import { StatusBadge, StatusBadgeSkeleton } from '../../ui/status-badge';
33
36
 
34
37
  /** Same heuristic as DeliveryTable's local helper. Inlined so the row
35
38
  * primitive owns its complete rendering contract. */
@@ -73,7 +76,21 @@ export interface DeliveryRowProps {
73
76
  className?: string;
74
77
  }
75
78
 
79
+ /** The row's layout, read by the row and by its skeleton, so the skeleton is the row's size. */
80
+ const ROW_INNER_CLASS =
81
+ 'flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]';
82
+ const ROW_TEXT_COLUMN_CLASS = 'flex w-full min-w-0 flex-1 flex-col gap-[12px] content-md:w-auto content-md:gap-[16px]';
83
+ const ROW_CAPTION_CLASS = 'text-ods-text-secondary text-h5';
84
+ const ROW_TITLE_LINE_CLASS = `flex items-center text-h3 ${TEXT_LINES_MIN[1]}`;
85
+ const ROW_SUBTITLE_LINE_CLASS = `flex items-center text-h5 ${TEXT_LINES_MIN[1]}`;
86
+ const ROW_DESCRIPTION_LINE_CLASS = `flex items-center text-h4 ${TEXT_LINES_MIN[3]}`;
87
+ const ROW_META_CLASS =
88
+ 'flex w-full flex-shrink-0 flex-row items-center gap-2 self-stretch content-md:w-auto content-md:flex-col content-md:items-end content-md:self-start';
89
+ const ROW_BASE_CLASS = 'block p-[12px] text-inherit no-underline transition-colors duration-150 content-md:p-[16px]';
90
+
76
91
  export function DeliveryRow({ item, href, target, caption, id, className }: DeliveryRowProps) {
92
+ // While the page is read the task is not known: the row is its skeleton.
93
+ if (useLoadingScope()) return <DeliveryRowSkeleton caption={caption} className={className} />;
77
94
  const taskType = item.taskType as keyof typeof TASK_TYPE_LABELS;
78
95
  const typeBadgeLabel = TASK_TYPE_LABELS[taskType] || 'TASK';
79
96
  const typeBadgeTextColor = TASK_TYPE_TEXT_COLORS[taskType] || '';
@@ -82,16 +99,16 @@ export function DeliveryRow({ item, href, target, caption, id, className }: Deli
82
99
  const subtitle = `ACTIVE ${relativeTime}${item.listNames.length > 0 ? `, ${item.listNames.join(', ')}` : ''}, ${item.id}`;
83
100
 
84
101
  const inner = (
85
- <div className="flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]">
102
+ <div className={ROW_INNER_CLASS}>
86
103
  {/* Left: caption (optional) + title + subtitle + description */}
87
- <div className="flex w-full min-w-0 flex-1 flex-col gap-[12px] content-md:w-auto content-md:gap-[16px]">
88
- {caption && <p className="text-ods-text-secondary text-h5">{caption}</p>}
89
- <div className="flex min-h-[24px] items-center content-md:min-h-[24px]">
104
+ <div className={ROW_TEXT_COLUMN_CLASS}>
105
+ {caption && <p className={ROW_CAPTION_CLASS}>{caption}</p>}
106
+ <div className={ROW_TITLE_LINE_CLASS}>
90
107
  <h3 className="line-clamp-2 flex-1 break-words tracking-[-0.36px] text-ods-text-primary text-h3 content-md:truncate">
91
108
  {item.title}
92
109
  </h3>
93
110
  </div>
94
- <div className="flex min-h-[20px] items-center">
111
+ <div className={ROW_SUBTITLE_LINE_CLASS}>
95
112
  {/* Relative time is wall-clock-derived: on an SSR host the server and
96
113
  client render different strings a moment apart — text-only, so
97
114
  suppress instead of forcing a client-only render. */}
@@ -99,7 +116,7 @@ export function DeliveryRow({ item, href, target, caption, id, className }: Deli
99
116
  {subtitle}
100
117
  </p>
101
118
  </div>
102
- <div className="flex min-h-[72px] items-center">
119
+ <div className={ROW_DESCRIPTION_LINE_CLASS}>
103
120
  <p className="line-clamp-3 break-words text-ods-text-secondary text-h4">
104
121
  {item.description || 'No description provided'}
105
122
  </p>
@@ -112,7 +129,7 @@ export function DeliveryRow({ item, href, target, caption, id, className }: Deli
112
129
  assignee owns the trailing slot of the meta row; a column of
113
130
  right-aligned orphans under the description reads as clutter
114
131
  on small screens). */}
115
- <div className="flex w-full flex-shrink-0 flex-row items-center gap-2 self-stretch content-md:w-auto content-md:flex-col content-md:items-end content-md:self-start">
132
+ <div className={ROW_META_CLASS}>
116
133
  <StatusBadge
117
134
  text={item.status.toUpperCase()}
118
135
  colorScheme={statusBadgeScheme}
@@ -140,7 +157,7 @@ export function DeliveryRow({ item, href, target, caption, id, className }: Deli
140
157
  );
141
158
 
142
159
  const baseClass = cn(
143
- 'block p-[12px] text-inherit no-underline transition-colors duration-150 content-md:p-[16px]',
160
+ ROW_BASE_CLASS,
144
161
  // `scroll-mt-24` is paid for whether `id` is set or not (it's a
145
162
  // single Tailwind utility, no runtime cost). Keeping it
146
163
  // unconditional means a future caller adding `id` doesn't also
@@ -178,3 +195,32 @@ export function DeliveryRow({ item, href, target, caption, id, className }: Deli
178
195
  </div>
179
196
  );
180
197
  }
198
+
199
+ /**
200
+ * A delivery row while its task is read: the same row, its caption for real, the title, subtitle and description
201
+ * as bars at their type steps, and the two badges as their skeletons.
202
+ */
203
+ export function DeliveryRowSkeleton({ caption, className }: Pick<DeliveryRowProps, 'caption' | 'className'>) {
204
+ return (
205
+ <div className={cn(ROW_BASE_CLASS, 'scroll-mt-24', className)} aria-hidden>
206
+ <div className={ROW_INNER_CLASS}>
207
+ <div className={ROW_TEXT_COLUMN_CLASS}>
208
+ {caption && <p className={ROW_CAPTION_CLASS}>{caption}</p>}
209
+ <div className={ROW_TITLE_LINE_CLASS}>
210
+ <TextLineSkeleton type="h3" className="w-3/5" />
211
+ </div>
212
+ <div className={ROW_SUBTITLE_LINE_CLASS}>
213
+ <TextLineSkeleton type="h5" className="w-2/5" />
214
+ </div>
215
+ <div className={ROW_DESCRIPTION_LINE_CLASS}>
216
+ <TextLineSkeleton type="h4" lines={2} className="w-full" />
217
+ </div>
218
+ </div>
219
+ <div className={ROW_META_CLASS}>
220
+ <StatusBadgeSkeleton variant="card" />
221
+ <StatusBadgeSkeleton variant="card" />
222
+ </div>
223
+ </div>
224
+ </div>
225
+ );
226
+ }
@@ -20,46 +20,29 @@
20
20
  import type { DeliveryItem } from '../../../types/delivery';
21
21
  import { devSectionAnchorId } from '../../../utils/dev-sections/dev-section-param-keys';
22
22
  import { CONTENT_CARD_SKELETON_FRAME_CLASS } from '../../chat/entity-cards/content-card-frame';
23
- import { UnifiedSkeleton } from '../../loading/unified-skeleton';
24
- import { DeliveryRow } from './delivery-row';
23
+ import { DeliveryRow, DeliveryRowSkeleton } from './delivery-row';
25
24
 
26
25
  interface DeliveryTableProps {
27
26
  items: DeliveryItem[];
28
27
  isLoading?: boolean;
29
28
  }
30
29
 
31
- /**
32
- * Skeleton loader for rows - matching responsive structure
33
- */
34
- function SkeletonRow() {
30
+ /** The card's frame and a row's separator, read by the table and by its skeleton. */
31
+ const TABLE_FRAME_CLASS = `w-full ${CONTENT_CARD_SKELETON_FRAME_CLASS}`;
32
+ const ROW_SEPARATOR_CLASS = 'border-b border-ods-border last:border-b-0';
33
+ /** How many rows the skeleton draws (the table's first fold). */
34
+ export const DELIVERY_TABLE_SKELETON_ROWS = 5;
35
+
36
+ /** The table while its tasks are read: the same card, `DELIVERY_TABLE_SKELETON_ROWS` row skeletons. */
37
+ export function DeliveryTableSkeleton() {
35
38
  return (
36
- <div className="border-b border-ods-border p-[12px] last:border-b-0 content-md:p-[16px]">
37
- <div className="flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]">
38
- {/* Left: Title, subtitle, and description skeleton */}
39
- <div className="flex w-full min-w-0 flex-1 flex-col gap-[12px] content-md:w-auto content-md:gap-[16px]">
40
- {/* Title skeleton - responsive */}
41
- <div className="flex min-h-[24px] items-center">
42
- <UnifiedSkeleton className="h-[20px] w-full rounded" />
43
- </div>
44
- {/* Subtitle skeleton - 1 line */}
45
- <div className="flex min-h-[20px] items-center">
46
- <UnifiedSkeleton className="h-[20px] w-1/2 rounded" />
47
- </div>
48
- {/* Description skeleton - 3 lines */}
49
- <div className="flex min-h-[72px] items-center">
50
- <div className="flex-1 space-y-1">
51
- <UnifiedSkeleton className="h-[20px] w-full rounded" />
52
- <UnifiedSkeleton className="h-[20px] w-full rounded" />
53
- <UnifiedSkeleton className="h-[20px] w-2/3 rounded" />
54
- </div>
39
+ <div className={TABLE_FRAME_CLASS} aria-hidden>
40
+ <div className="w-full">
41
+ {Array.from({ length: DELIVERY_TABLE_SKELETON_ROWS }, (_, i) => (
42
+ <div key={i} className={ROW_SEPARATOR_CLASS}>
43
+ <DeliveryRowSkeleton />
55
44
  </div>
56
- </div>
57
-
58
- {/* Right: Badge skeleton - two stacked badges */}
59
- <div className="flex flex-shrink-0 flex-col gap-2 self-start">
60
- <UnifiedSkeleton className="h-[32px] w-[100px] rounded" />
61
- <UnifiedSkeleton className="h-[32px] w-[120px] rounded" />
62
- </div>
45
+ ))}
63
46
  </div>
64
47
  </div>
65
48
  );
@@ -71,29 +54,19 @@ function SkeletonRow() {
71
54
  */
72
55
  export function DeliveryTable({ items, isLoading = false }: DeliveryTableProps) {
73
56
  // Show skeletons while loading
74
- if (isLoading) {
75
- return (
76
- <div className={`w-full ${CONTENT_CARD_SKELETON_FRAME_CLASS}`}>
77
- <div className="w-full">
78
- {[1, 2, 3, 4, 5].map(i => (
79
- <SkeletonRow key={i} />
80
- ))}
81
- </div>
82
- </div>
83
- );
84
- }
57
+ if (isLoading) return <DeliveryTableSkeleton />;
85
58
 
86
59
  // Empty state
87
60
  if (items.length === 0) {
88
61
  return (
89
- <div className={`w-full ${CONTENT_CARD_SKELETON_FRAME_CLASS} p-[var(--spacing-system-xlf)] text-center`}>
62
+ <div className={`${TABLE_FRAME_CLASS} p-[var(--spacing-system-xlf)] text-center`}>
90
63
  <p className="text-ods-text-secondary text-h6">No tasks available</p>
91
64
  </div>
92
65
  );
93
66
  }
94
67
 
95
68
  return (
96
- <div className={`w-full ${CONTENT_CARD_SKELETON_FRAME_CLASS}`}>
69
+ <div className={TABLE_FRAME_CLASS}>
97
70
  <div className="w-full">
98
71
  {items.map(item => (
99
72
  // DOM id lives on DeliveryRow's own outer element (no wrapper
@@ -101,7 +74,7 @@ export function DeliveryTable({ items, isLoading = false }: DeliveryTableProps)
101
74
  // → `#delivery-<external_id>`; `useScrollToHash` in
102
75
  // `delivery-lists.tsx` finds the row by id and scrolls. The
103
76
  // outer wrapper here ONLY exists for the row separators.
104
- <div key={item.id} className="border-b border-ods-border last:border-b-0">
77
+ <div key={item.id} className={ROW_SEPARATOR_CLASS}>
105
78
  <DeliveryRow item={item} id={devSectionAnchorId('delivery', item.id)} />
106
79
  </div>
107
80
  ))}
@@ -18,6 +18,20 @@ export interface DetailPageSkeletonProps {
18
18
  region?: boolean;
19
19
  }
20
20
 
21
+ /** `content-md:grid-cols-N` as static classes the build can see (a class built from a number is never generated). */
22
+ const METADATA_COLUMNS_CLASS: Record<number, string> = {
23
+ 1: 'content-md:grid-cols-1',
24
+ 2: 'content-md:grid-cols-2',
25
+ 3: 'content-md:grid-cols-3',
26
+ 4: 'content-md:grid-cols-4',
27
+ 5: 'content-md:grid-cols-5',
28
+ 6: 'content-md:grid-cols-6',
29
+ };
30
+
31
+ /**
32
+ * @deprecated Render the detail page itself inside a `LoadingScope` (e.g. `ArticleDetailLayout` with its sections): each part draws its own skeleton. Kept so hosts on an older release keep compiling; nothing in the lib uses it.
33
+ */
34
+ // loading-standard-ok: deprecated re-export kept for external consumers
21
35
  export function DetailPageSkeleton({
22
36
  metadataColumns = 4,
23
37
  showImageGallery = true,
@@ -41,7 +55,7 @@ export function DetailPageSkeleton({
41
55
 
42
56
  {/* Metadata Grid Skeleton */}
43
57
  <div
44
- className={`grid grid-cols-1 content-md:grid-cols-${metadataColumns} w-full overflow-hidden rounded-md border border-ods-border`}
58
+ className={`grid grid-cols-1 ${METADATA_COLUMNS_CLASS[metadataColumns] ?? METADATA_COLUMNS_CLASS[4]} w-full overflow-hidden rounded-md border border-ods-border`}
45
59
  >
46
60
  {Array.from({ length: metadataColumns }).map((_, i) => (
47
61
  <div
@@ -26,8 +26,11 @@
26
26
  */
27
27
 
28
28
  import type { ReactNode } from 'react';
29
+ import { TEXT_LINES_MIN } from '../../../styles/component-sizes';
29
30
  import { LoadingRegion } from '../../loading/loading-region';
30
- import { UnifiedSkeleton } from '../../loading/unified-skeleton';
31
+ import { TextLineSkeleton } from '../../loading/unified-skeleton';
32
+ import { useLoadingScope } from '../../ui/loading-scope';
33
+ import { StatusBadgeSkeleton } from '../../ui/status-badge';
31
34
 
32
35
  export interface DevCardRowContentProps {
33
36
  title: string;
@@ -42,6 +45,15 @@ export interface DevCardRowContentProps {
42
45
  rightBadges: ReactNode;
43
46
  }
44
47
 
48
+ /** The row's layout, read by the row and by its skeleton, so the skeleton is the row's size. */
49
+ const ROW_INNER_CLASS =
50
+ 'flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]';
51
+ const ROW_TEXT_COLUMN_CLASS = 'flex w-full min-w-0 flex-1 flex-col gap-[12px] content-md:w-auto content-md:gap-[16px]';
52
+ const ROW_TITLE_LINE_CLASS = `flex items-center text-h3 ${TEXT_LINES_MIN[1]}`;
53
+ const ROW_SUBTITLE_LINE_CLASS = `flex items-center text-h5 ${TEXT_LINES_MIN[1]}`;
54
+ const ROW_DESCRIPTION_LINE_CLASS = `flex items-center text-h4 ${TEXT_LINES_MIN[3]}`;
55
+ const ROW_BADGES_CLASS = 'flex flex-shrink-0 flex-col gap-2 self-start';
56
+
45
57
  export function DevCardRowContent({
46
58
  title,
47
59
  subtitle,
@@ -49,22 +61,47 @@ export function DevCardRowContent({
49
61
  emptyDescription = 'No description provided',
50
62
  rightBadges,
51
63
  }: DevCardRowContentProps) {
64
+ // While the page is read the record is not known: the row's content is its skeleton.
65
+ if (useLoadingScope()) return <DevCardRowContentSkeleton />;
52
66
  return (
53
- <div className="flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]">
54
- <div className="flex w-full min-w-0 flex-1 flex-col gap-[12px] content-md:w-auto content-md:gap-[16px]">
55
- <div className="flex min-h-[24px] items-center">
67
+ <div className={ROW_INNER_CLASS}>
68
+ <div className={ROW_TEXT_COLUMN_CLASS}>
69
+ <div className={ROW_TITLE_LINE_CLASS}>
56
70
  <h3 className="line-clamp-2 flex-1 break-words tracking-[-0.36px] text-ods-text-primary text-h3 content-md:truncate">
57
71
  {title}
58
72
  </h3>
59
73
  </div>
60
- <div className="flex min-h-[20px] items-center">
74
+ <div className={ROW_SUBTITLE_LINE_CLASS}>
61
75
  <p className="truncate uppercase tracking-[-0.28px] text-ods-text-secondary text-h5">{subtitle}</p>
62
76
  </div>
63
- <div className="flex min-h-[72px] items-center">
77
+ <div className={ROW_DESCRIPTION_LINE_CLASS}>
64
78
  <p className="line-clamp-3 break-words text-ods-text-secondary text-h4">{description || emptyDescription}</p>
65
79
  </div>
66
80
  </div>
67
- <div className="flex flex-shrink-0 flex-col gap-2 self-start">{rightBadges}</div>
81
+ <div className={ROW_BADGES_CLASS}>{rightBadges}</div>
82
+ </div>
83
+ );
84
+ }
85
+
86
+ /** A row's content while its record is read: the title, subtitle and description as bars, two badge skeletons. */
87
+ export function DevCardRowContentSkeleton() {
88
+ return (
89
+ <div className={ROW_INNER_CLASS} aria-hidden>
90
+ <div className={ROW_TEXT_COLUMN_CLASS}>
91
+ <div className={ROW_TITLE_LINE_CLASS}>
92
+ <TextLineSkeleton type="h3" className="w-full" />
93
+ </div>
94
+ <div className={ROW_SUBTITLE_LINE_CLASS}>
95
+ <TextLineSkeleton type="h5" className="w-1/2" />
96
+ </div>
97
+ <div className={ROW_DESCRIPTION_LINE_CLASS}>
98
+ <TextLineSkeleton type="h4" lines={3} className="w-full" />
99
+ </div>
100
+ </div>
101
+ <div className={ROW_BADGES_CLASS}>
102
+ <StatusBadgeSkeleton variant="card" />
103
+ <StatusBadgeSkeleton variant="card" />
104
+ </div>
68
105
  </div>
69
106
  );
70
107
  }
@@ -77,27 +114,7 @@ export function DevCardRowContent({
77
114
  export function DevCardRowSkeleton() {
78
115
  return (
79
116
  <div className="border-b border-ods-border p-[12px] last:border-b-0 content-md:p-[16px]">
80
- <div className="flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]">
81
- <div className="flex w-full min-w-0 flex-1 flex-col gap-[12px] content-md:w-auto content-md:gap-[16px]">
82
- <div className="flex min-h-[24px] items-center">
83
- <UnifiedSkeleton className="h-[20px] w-full rounded" />
84
- </div>
85
- <div className="flex min-h-[20px] items-center">
86
- <UnifiedSkeleton className="h-[20px] w-1/2 rounded" />
87
- </div>
88
- <div className="flex min-h-[72px] items-center">
89
- <div className="flex-1 space-y-1">
90
- <UnifiedSkeleton className="h-[20px] w-full rounded" />
91
- <UnifiedSkeleton className="h-[20px] w-full rounded" />
92
- <UnifiedSkeleton className="h-[20px] w-2/3 rounded" />
93
- </div>
94
- </div>
95
- </div>
96
- <div className="flex flex-shrink-0 flex-col gap-2 self-start">
97
- <UnifiedSkeleton className="h-[32px] w-[100px] rounded" />
98
- <UnifiedSkeleton className="h-[32px] w-[120px] rounded" />
99
- </div>
100
- </div>
117
+ <DevCardRowContentSkeleton />
101
118
  </div>
102
119
  );
103
120
  }
@@ -115,7 +115,7 @@ export function DevSectionView({ sectionKey, preControls, children, showHeading
115
115
  // The list reports where its records are mirrored from; the line states it at the end of the section's heading row
116
116
  // (under the page's title when this view shows no heading of its own).
117
117
  return (
118
- <PageDataSyncProvider>
118
+ <PageDataSyncProvider stated={section.mirrored}>
119
119
  <div className="flex w-full flex-col gap-10">
120
120
  {showHeading ? (
121
121
  <SectionHeading title={section.hero.title} punctuation=":" action={<PageDataSyncRow inline />} />
@@ -238,7 +238,7 @@ export function useDocSearch(config: UseDocSearchConfig) {
238
238
  }, [debouncedQuery, searchable, source, tableIdsKey, resolvedSearchEndpoint]);
239
239
 
240
240
  // Derived loading state — single source of truth for "should the
241
- // dropdown show 'Loading...' instead of 'No results found'":
241
+ // dropdown draw its loading rows instead of 'No results found'":
242
242
  const isLoading = query.trim().length >= 2 && (query !== debouncedQuery || isFetching);
243
243
 
244
244
  // Track whether dropdown should stay open (external link opened in new tab).
@@ -9,6 +9,8 @@
9
9
  export {
10
10
  LegalDocumentPage,
11
11
  legalDocumentStampLabel,
12
+ LegalDocumentSkeleton,
13
+ LEGAL_DOCUMENT_SKELETON_SECTIONS,
12
14
  type LegalDocumentPageProps,
13
15
  type LegalDocumentMarkdownRendererProps,
14
16
  } from './legal-document-page';