@flamingo-stack/openframe-frontend-core 0.0.765 → 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 (1274) 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-VLJFAGMR.cjs → chunk-7U3ELNGC.cjs} +103 -61
  15. package/dist/{chunk-T5FRANE6.cjs → chunk-7VI7TOGI.cjs} +509 -353
  16. package/dist/{chunk-PYK4ZSEZ.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-2Y36SQSZ.cjs → chunk-JGWN6GH5.cjs} +11 -7
  28. package/dist/{chunk-2OPYWMAV.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-RQQVN7LC.cjs → chunk-NF3PBWDJ.cjs} +521 -413
  35. package/dist/{chunk-BVA7YX4P.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-MDB65HQC.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-B3W7RCQF.cjs → chunk-UW7UWUZU.cjs} +105 -117
  46. package/dist/{chunk-MWLD6NXV.cjs → chunk-VFZFCRAL.cjs} +4 -6
  47. package/dist/{chunk-FMH2DYBC.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-QQ7LKNNP.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-WA4X55XY.cjs → chunk-ZV45VS6K.cjs} +359 -432
  62. package/dist/{cloud-tenants-6PSTDE3F.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.map +1 -1
  715. package/dist/components/ui/page-actions.js +16 -20
  716. package/dist/components/ui/page-loader.d.ts.map +1 -1
  717. package/dist/components/ui/page-loader.js +2 -1
  718. package/dist/components/ui/people-cell.d.ts +4 -0
  719. package/dist/components/ui/people-cell.d.ts.map +1 -1
  720. package/dist/components/ui/people-cell.js +19 -3
  721. package/dist/components/ui/photo-wall.d.ts +1 -1
  722. package/dist/components/ui/photo-wall.d.ts.map +1 -1
  723. package/dist/components/ui/photo-wall.js +13 -3
  724. package/dist/components/ui/product-screen-frame.d.ts.map +1 -1
  725. package/dist/components/ui/product-screen-frame.js +3 -2
  726. package/dist/components/ui/progress-bar.d.ts +9 -0
  727. package/dist/components/ui/progress-bar.d.ts.map +1 -1
  728. package/dist/components/ui/progress-bar.js +34 -14
  729. package/dist/components/ui/progress.d.ts +15 -0
  730. package/dist/components/ui/progress.d.ts.map +1 -1
  731. package/dist/components/ui/progress.js +8 -3
  732. package/dist/components/ui/release-changelog-section.d.ts +22 -1
  733. package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
  734. package/dist/components/ui/release-changelog-section.js +96 -28
  735. package/dist/components/ui/search-input.d.ts.map +1 -1
  736. package/dist/components/ui/search-input.js +11 -3
  737. package/dist/components/ui/searchable-select.d.ts.map +1 -1
  738. package/dist/components/ui/searchable-select.js +17 -4
  739. package/dist/components/ui/skeleton-surface.d.ts +12 -4
  740. package/dist/components/ui/skeleton-surface.d.ts.map +1 -1
  741. package/dist/components/ui/skeleton-surface.js +6 -2
  742. package/dist/components/ui/slack-channel-chip.d.ts +5 -1
  743. package/dist/components/ui/slack-channel-chip.d.ts.map +1 -1
  744. package/dist/components/ui/slack-channel-chip.js +16 -3
  745. package/dist/components/ui/snap-carousel.d.ts +4 -1
  746. package/dist/components/ui/snap-carousel.d.ts.map +1 -1
  747. package/dist/components/ui/snap-carousel.js +2 -0
  748. package/dist/components/ui/square-avatar.d.ts +3 -0
  749. package/dist/components/ui/square-avatar.d.ts.map +1 -1
  750. package/dist/components/ui/square-avatar.js +38 -23
  751. package/dist/components/ui/stacked-rows-panel.d.ts +24 -1
  752. package/dist/components/ui/stacked-rows-panel.d.ts.map +1 -1
  753. package/dist/components/ui/stacked-rows-panel.js +50 -13
  754. package/dist/components/ui/status-badge.d.ts +10 -2
  755. package/dist/components/ui/status-badge.d.ts.map +1 -1
  756. package/dist/components/ui/status-badge.js +14 -0
  757. package/dist/components/ui/status-indicator.d.ts +4 -0
  758. package/dist/components/ui/status-indicator.d.ts.map +1 -1
  759. package/dist/components/ui/status-indicator.js +16 -3
  760. package/dist/components/ui/status-line.d.ts.map +1 -1
  761. package/dist/components/ui/status-line.js +2 -1
  762. package/dist/components/ui/strip-card.d.ts +9 -0
  763. package/dist/components/ui/strip-card.d.ts.map +1 -1
  764. package/dist/components/ui/strip-card.js +57 -39
  765. package/dist/components/ui/tab-navigation.d.ts +26 -2
  766. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  767. package/dist/components/ui/tab-navigation.js +182 -115
  768. package/dist/components/ui/table/table-header.js +2 -2
  769. package/dist/components/ui/table/table-row.d.ts.map +1 -1
  770. package/dist/components/ui/table/table-row.js +2 -4
  771. package/dist/components/ui/table/table-skeleton.d.ts +6 -1
  772. package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
  773. package/dist/components/ui/table/table-skeleton.js +38 -50
  774. package/dist/components/ui/table/table.d.ts +1 -1
  775. package/dist/components/ui/table/table.d.ts.map +1 -1
  776. package/dist/components/ui/table/table.js +30 -25
  777. package/dist/components/ui/table/types.d.ts +14 -4
  778. package/dist/components/ui/table/types.d.ts.map +1 -1
  779. package/dist/components/ui/table/utils.d.ts +4 -0
  780. package/dist/components/ui/table/utils.d.ts.map +1 -1
  781. package/dist/components/ui/table/utils.js +4 -0
  782. package/dist/components/ui/tabs.d.ts +22 -1
  783. package/dist/components/ui/tabs.d.ts.map +1 -1
  784. package/dist/components/ui/tabs.js +33 -2
  785. package/dist/components/ui/tag.d.ts +21 -1
  786. package/dist/components/ui/tag.d.ts.map +1 -1
  787. package/dist/components/ui/tag.js +17 -12
  788. package/dist/components/ui/tags-input.d.ts +9 -0
  789. package/dist/components/ui/tags-input.d.ts.map +1 -1
  790. package/dist/components/ui/tags-input.js +41 -10
  791. package/dist/components/ui/textarea.d.ts +17 -1
  792. package/dist/components/ui/textarea.d.ts.map +1 -1
  793. package/dist/components/ui/textarea.js +22 -3
  794. package/dist/components/ui/ticket-info-section.d.ts +0 -1
  795. package/dist/components/ui/ticket-info-section.d.ts.map +1 -1
  796. package/dist/components/ui/timezone-select.d.ts +3 -1
  797. package/dist/components/ui/timezone-select.d.ts.map +1 -1
  798. package/dist/components/ui/timezone-select.js +3 -1
  799. package/dist/components/ui/toggle.d.ts +8 -2
  800. package/dist/components/ui/toggle.d.ts.map +1 -1
  801. package/dist/components/ui/toggle.js +10 -6
  802. package/dist/components/unified-pagination.d.ts +3 -1
  803. package/dist/components/unified-pagination.d.ts.map +1 -1
  804. package/dist/components/unified-pagination.js +7 -1
  805. package/dist/components/user-display.d.ts +11 -0
  806. package/dist/components/user-display.d.ts.map +1 -1
  807. package/dist/components/user-display.js +38 -14
  808. package/dist/components/user-summary-stub.d.ts.map +1 -1
  809. package/dist/components/user-summary-stub.js +7 -14
  810. package/dist/components/vendor-display-button.d.ts +4 -0
  811. package/dist/components/vendor-display-button.d.ts.map +1 -1
  812. package/dist/components/vendor-display-button.js +11 -13
  813. package/dist/components/vendor-icon.d.ts +5 -0
  814. package/dist/components/vendor-icon.d.ts.map +1 -1
  815. package/dist/components/vendor-icon.js +12 -3
  816. package/dist/components/vendor-tag.d.ts +5 -0
  817. package/dist/components/vendor-tag.d.ts.map +1 -1
  818. package/dist/components/vendor-tag.js +13 -5
  819. package/dist/{devices-O5PZ4IR6.cjs → devices-2D3XSIIE.cjs} +43 -55
  820. package/dist/embed-shims/index.cjs +4 -2
  821. package/dist/embed-shims/next-image.cjs +4 -2
  822. package/dist/embed-shims/next-image.d.ts.map +1 -1
  823. package/dist/embed-shims/next-image.js +24 -0
  824. package/dist/{embeddable-chat-YFUCVDMV.cjs → embeddable-chat-YL6ZSTDJ.cjs} +117 -119
  825. package/dist/hooks/index.cjs +12 -12
  826. package/dist/hooks/state/flatten-schema.d.ts +0 -1
  827. package/dist/hooks/state/flatten-schema.d.ts.map +1 -1
  828. package/dist/hooks/state/flatten-schema.js +0 -2
  829. package/dist/hooks/state/index.d.ts +6 -3
  830. package/dist/hooks/state/index.d.ts.map +1 -1
  831. package/dist/hooks/state/index.js +4 -3
  832. package/dist/hooks/state/url-converter.d.ts +1 -1
  833. package/dist/hooks/state/url-converter.d.ts.map +1 -1
  834. package/dist/hooks/state/url-converter.js +1 -2
  835. package/dist/hooks/state/use-api-params.d.ts +1 -3
  836. package/dist/hooks/state/use-api-params.d.ts.map +1 -1
  837. package/dist/hooks/state/use-api-params.js +1 -5
  838. package/dist/hooks/ui/index.d.ts +1 -0
  839. package/dist/hooks/ui/index.d.ts.map +1 -1
  840. package/dist/hooks/ui/use-image-edge-color.d.ts +1 -1
  841. package/dist/hooks/ui/use-image-edge-color.d.ts.map +1 -1
  842. package/dist/hooks/ui/use-image-edge-color.js +3 -1
  843. package/dist/hooks/ui/use-onboarding-state.d.ts +0 -1
  844. package/dist/hooks/ui/use-onboarding-state.d.ts.map +1 -1
  845. package/dist/hooks/use-downloads.d.ts +1 -1
  846. package/dist/hooks/use-downloads.d.ts.map +1 -1
  847. package/dist/hooks/use-downloads.js +8 -1
  848. package/dist/hooks/use-meeting-booking.d.ts.map +1 -1
  849. package/dist/hooks/use-meeting-booking.js +3 -0
  850. package/dist/hooks/use-self-fetch.d.ts +1 -1
  851. package/dist/hooks/use-self-fetch.d.ts.map +1 -1
  852. package/dist/hooks/use-self-fetch.js +7 -4
  853. package/dist/hooks/use-toast.d.ts +1 -1
  854. package/dist/index.cjs +329 -103
  855. package/dist/{knowledge-4OU73KTO.cjs → knowledge-AJ36PMK2.cjs} +36 -40
  856. package/dist/{logs-R6ZH32UU.cjs → logs-DNE44ACE.cjs} +44 -48
  857. package/dist/nats/index.d.ts +1 -0
  858. package/dist/nats/index.d.ts.map +1 -1
  859. package/dist/nats/nats-provider.d.ts +0 -1
  860. package/dist/nats/nats-provider.d.ts.map +1 -1
  861. package/dist/nats/nats.d.ts +0 -1
  862. package/dist/nats/nats.d.ts.map +1 -1
  863. package/dist/nats/use-nats-subscription.d.ts +2 -1
  864. package/dist/nats/use-nats-subscription.d.ts.map +1 -1
  865. package/dist/{policies-XN4TDX3G.cjs → policies-AJHSP6ZY.cjs} +39 -43
  866. package/dist/{remote-session-7NSC7DI5.cjs → remote-session-PPA5SXX7.cjs} +18 -21
  867. package/dist/schemas/meeting-booking-schema.cjs +4 -0
  868. package/dist/schemas/meeting-booking-schema.d.ts +8 -0
  869. package/dist/schemas/meeting-booking-schema.d.ts.map +1 -1
  870. package/dist/schemas/meeting-booking-schema.js +4 -0
  871. package/dist/{scripts-53VHKMY3.cjs → scripts-4YO2QL36.cjs} +42 -46
  872. package/dist/{software-update-KLJSMAUM.cjs → software-update-KMI2EOO3.cjs} +41 -45
  873. package/dist/styles/component-sizes.d.ts +96 -0
  874. package/dist/styles/component-sizes.d.ts.map +1 -0
  875. package/dist/styles/component-sizes.js +77 -0
  876. package/dist/{tickets-board-DXMF7IKL.cjs → tickets-board-G3WBH4SV.cjs} +18 -20
  877. package/dist/types/announcement.d.ts +0 -1
  878. package/dist/types/announcement.d.ts.map +1 -1
  879. package/dist/types/blog.d.ts +0 -1
  880. package/dist/types/blog.d.ts.map +1 -1
  881. package/dist/types/case-study.d.ts +2 -2
  882. package/dist/types/case-study.d.ts.map +1 -1
  883. package/dist/types/customer-interview-ai.types.d.ts +1 -2
  884. package/dist/types/customer-interview-ai.types.d.ts.map +1 -1
  885. package/dist/types/customer-interview.d.ts +0 -1
  886. package/dist/types/customer-interview.d.ts.map +1 -1
  887. package/dist/types/index.d.ts +2 -0
  888. package/dist/types/index.d.ts.map +1 -1
  889. package/dist/types/product-release.d.ts +3 -0
  890. package/dist/types/product-release.d.ts.map +1 -1
  891. package/dist/types/stack.d.ts +0 -2
  892. package/dist/types/stack.d.ts.map +1 -1
  893. package/dist/utils/announcement-storage.d.ts +0 -3
  894. package/dist/utils/announcement-storage.d.ts.map +1 -1
  895. package/dist/utils/announcement-storage.js +1 -3
  896. package/dist/utils/dev-sections/openframe-dev-sections.d.ts +11 -0
  897. package/dist/utils/dev-sections/openframe-dev-sections.d.ts.map +1 -1
  898. package/dist/utils/dev-sections/openframe-dev-sections.js +5 -0
  899. package/dist/utils/index.cjs +19 -0
  900. package/dist/utils/index.d.ts +7 -2
  901. package/dist/utils/index.d.ts.map +1 -1
  902. package/dist/utils/index.js +8 -6
  903. package/dist/utils/markdown-heading-id.d.ts +0 -19
  904. package/dist/utils/markdown-heading-id.d.ts.map +1 -1
  905. package/dist/utils/markdown-heading-id.js +2 -5
  906. package/dist/utils/ods-color-utils.d.ts +0 -1
  907. package/dist/utils/ods-color-utils.d.ts.map +1 -1
  908. package/dist/utils/ods-color-utils.js +0 -2
  909. package/dist/utils/own-click.d.ts +4 -0
  910. package/dist/utils/own-click.d.ts.map +1 -0
  911. package/dist/utils/own-click.js +14 -0
  912. package/dist/utils/platform-config.d.ts +0 -1
  913. package/dist/utils/platform-config.d.ts.map +1 -1
  914. package/dist/utils/platform-config.js +0 -26
  915. package/dist/utils/source-icons.d.ts +2 -2
  916. package/dist/{video-file-player-QZ3YOLHO.cjs → video-file-player-COXRF4M5.cjs} +13 -13
  917. package/eslint-config/base.js +2 -0
  918. package/eslint-config/re-exports.js +56 -0
  919. package/package.json +1 -1
  920. package/src/ODS_TOKEN_RULES.md +2 -2
  921. package/src/chat-protocol/decode.ts +0 -5
  922. package/src/chat-protocol/index.ts +1 -0
  923. package/src/components/agent-identity.tsx +0 -2
  924. package/src/components/agent-mark.tsx +13 -4
  925. package/src/components/authors/author-detail-view.tsx +90 -44
  926. package/src/components/case-studies/entity-quotes-panel.tsx +50 -3
  927. package/src/components/case-studies/index.ts +2 -2
  928. package/src/components/case-studies/quote-cards-strip.tsx +75 -10
  929. package/src/components/categories-cart.tsx +82 -38
  930. package/src/components/category-card.tsx +1 -1
  931. package/src/components/chat/chat-attachment-bar.tsx +1 -1
  932. package/src/components/chat/chat-container.tsx +2 -1
  933. package/src/components/chat/chat-ticket-list.tsx +0 -1
  934. package/src/components/chat/chat-turn.tsx +124 -18
  935. package/src/components/chat/embeddable-chat.tsx +5 -5
  936. package/src/components/chat/entity-cards/admin-content-card-grid.tsx +1 -51
  937. package/src/components/chat/entity-cards/admin-content-card.tsx +80 -15
  938. package/src/components/chat/entity-cards/blog-card.tsx +71 -41
  939. package/src/components/chat/entity-cards/campaign-card-admin.tsx +4 -17
  940. package/src/components/chat/entity-cards/case-study-card.tsx +129 -68
  941. package/src/components/chat/entity-cards/chat-ticket-item.tsx +34 -29
  942. package/src/components/chat/entity-cards/customer-interview-card.tsx +61 -45
  943. package/src/components/chat/entity-cards/data-room-doc-card.tsx +11 -18
  944. package/src/components/chat/entity-cards/design-doc-card.tsx +48 -34
  945. package/src/components/chat/entity-cards/dispatch.tsx +9 -13
  946. package/src/components/chat/entity-cards/employee-entry-card.tsx +5 -5
  947. package/src/components/chat/entity-cards/entity-author-card.tsx +138 -32
  948. package/src/components/chat/entity-cards/entity-portrait-card.tsx +61 -16
  949. package/src/components/chat/entity-cards/generic-entity-card.tsx +11 -19
  950. package/src/components/chat/entity-cards/github-activity-card.tsx +14 -30
  951. package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +11 -23
  952. package/src/components/chat/entity-cards/index.ts +20 -7
  953. package/src/components/chat/entity-cards/investor-update-card.tsx +42 -35
  954. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +78 -64
  955. package/src/components/chat/entity-cards/program-card.tsx +96 -66
  956. package/src/components/chat/entity-cards/roadmap-card.tsx +85 -65
  957. package/src/components/chat/entity-cards/roadmap-vote-button.tsx +12 -1
  958. package/src/components/chat/entity-cards/slack-message-card.tsx +19 -26
  959. package/src/components/chat/hooks/index.ts +12 -2
  960. package/src/components/chat/hooks/use-ask-prompts.ts +5 -1
  961. package/src/components/chat/hooks/use-chat-dialog-manager.ts +1 -1
  962. package/src/components/chat/hooks/use-chat-history-hydration.ts +1 -1
  963. package/src/components/chat/hooks/use-chat.ts +0 -3
  964. package/src/components/chat/hooks/use-nats-chat-adapter.ts +0 -20
  965. package/src/components/chat/hooks/use-proxied-image-url.ts +27 -20
  966. package/src/components/chat/hooks/use-slash-commands.ts +1 -7
  967. package/src/components/chat/hooks/use-sse-chat-adapter.ts +4 -18
  968. package/src/components/chat/stream/chat-stream-reducer.ts +3 -2
  969. package/src/components/chat/types/entities/index.ts +24 -4
  970. package/src/components/chat/types/entities/investor-update.ts +1 -1
  971. package/src/components/chat/types/entities/program-types.ts +2 -5
  972. package/src/components/chat/utils/compact-card-classes.ts +15 -2
  973. package/src/components/chat/utils/compact-card-skeleton.tsx +111 -0
  974. package/src/components/chat/utils/icon-library.tsx +0 -2
  975. package/src/components/chat/utils/index.ts +5 -3
  976. package/src/components/chat/utils/scroll-anchor.ts +0 -2
  977. package/src/components/chat/utils/source-row-cta.ts +1 -5
  978. package/src/components/comment-card.tsx +118 -19
  979. package/src/components/comment-thread.tsx +130 -17
  980. package/src/components/docs/doc-viewer.tsx +33 -31
  981. package/src/components/docs/skeletons.tsx +37 -49
  982. package/src/components/docs/use-document-tree.ts +11 -7
  983. package/src/components/embeds/embed-iframe.tsx +5 -0
  984. package/src/components/embeds/index.ts +1 -1
  985. package/src/components/embeds/markdown-image.tsx +6 -2
  986. package/src/components/embeds/og-link-preview.tsx +155 -81
  987. package/src/components/faq/faq-document-page.tsx +8 -0
  988. package/src/components/faq/faq-section.tsx +249 -70
  989. package/src/components/faq/index.ts +12 -1
  990. package/src/components/faq-accordion.tsx +67 -7
  991. package/src/components/features/ai-enrich/AIStatusIndicator.tsx +2 -1
  992. package/src/components/features/approval-level.tsx +71 -8
  993. package/src/components/features/capability-explorer.tsx +59 -61
  994. package/src/components/features/cards-strip.tsx +54 -12
  995. package/src/components/features/command-box.tsx +139 -10
  996. package/src/components/features/conversation-card.tsx +242 -16
  997. package/src/components/features/devices/device-selector/device-selector.tsx +1 -0
  998. package/src/components/features/devices/devices-panel-view.tsx +2 -2
  999. package/src/components/features/entity-tag-badges.tsx +143 -10
  1000. package/src/components/features/entity-video-section.tsx +52 -14
  1001. package/src/components/features/figma-prototype-viewer.tsx +4 -8
  1002. package/src/components/features/index.ts +11 -0
  1003. package/src/components/features/knowledge-base/index.ts +2 -5
  1004. package/src/components/features/knowledge-base/knowledge-base-article-view.tsx +0 -2
  1005. package/src/components/features/model-token-rates.tsx +64 -84
  1006. package/src/components/features/notifications/approval-request-notification-tile.tsx +9 -11
  1007. package/src/components/features/notifications/notification-tile.tsx +58 -23
  1008. package/src/components/features/paths-display.tsx +73 -6
  1009. package/src/components/features/platform-badge.tsx +41 -1
  1010. package/src/components/features/push-button-selector.tsx +167 -64
  1011. package/src/components/features/remote-session/index.ts +2 -2
  1012. package/src/components/features/remote-session/remote-desktop-chat-message-row.tsx +24 -3
  1013. package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +19 -5
  1014. package/src/components/features/remote-session/remote-desktop-view.tsx +47 -38
  1015. package/src/components/features/remote-session/remote-session-chat-panel.tsx +1 -1
  1016. package/src/components/features/status-filter-component.tsx +105 -11
  1017. package/src/components/features/use-video-warmup.ts +0 -7
  1018. package/src/components/features/use-walkthrough-video.ts +5 -1
  1019. package/src/components/features/video-bites-strip.tsx +137 -22
  1020. package/src/components/features/video-hover-preview.tsx +2 -1
  1021. package/src/components/features/video.tsx +16 -12
  1022. package/src/components/features/walkthrough-video.tsx +9 -2
  1023. package/src/components/help-center-pages/download-apps-page.tsx +86 -32
  1024. package/src/components/help-center-pages/trust-center-page.tsx +132 -66
  1025. package/src/components/help-center-pages/trust-center-sections.tsx +205 -148
  1026. package/src/components/icon-display.tsx +9 -0
  1027. package/src/components/index.ts +11 -2
  1028. package/src/components/interactive-wrapper.tsx +2 -1
  1029. package/src/components/layout/list-page-layout.tsx +4 -5
  1030. package/src/components/layout/page-container.tsx +59 -29
  1031. package/src/components/layout/page-data-sync.tsx +40 -5
  1032. package/src/components/layout/page-heading.tsx +84 -1
  1033. package/src/components/layout/page-layout.tsx +5 -5
  1034. package/src/components/layout/title-block.tsx +72 -17
  1035. package/src/components/loading/category-vendor-selector-skeleton.tsx +4 -0
  1036. package/src/components/loading/deprecated-layout-skeletons.tsx +133 -0
  1037. package/src/components/loading/device-card-skeleton.tsx +4 -4
  1038. package/src/components/loading/index.ts +11 -13
  1039. package/src/components/loading/loading-region.tsx +16 -9
  1040. package/src/components/loading/msp-profile-form-skeleton.tsx +3 -0
  1041. package/src/components/loading/organization-card-skeleton.tsx +45 -71
  1042. package/src/components/loading/page-layout-skeleton.tsx +1 -641
  1043. package/src/components/loading/settings-form-skeleton.tsx +3 -0
  1044. package/src/components/loading/unified-skeleton.tsx +101 -11
  1045. package/src/components/log-severity-dot.tsx +17 -14
  1046. package/src/components/logs-list.tsx +43 -29
  1047. package/src/components/media-carousel.tsx +0 -4
  1048. package/src/components/meeting-scheduler/booking-form.tsx +245 -35
  1049. package/src/components/meeting-scheduler/context-panel.tsx +96 -30
  1050. package/src/components/meeting-scheduler/directory.tsx +70 -37
  1051. package/src/components/meeting-scheduler/index.tsx +136 -132
  1052. package/src/components/meeting-scheduler/modal-header.tsx +45 -31
  1053. package/src/components/meeting-scheduler/slot-picker.tsx +20 -8
  1054. package/src/components/metric-value.tsx +19 -2
  1055. package/src/components/msp-display.tsx +25 -10
  1056. package/src/components/navigation/app-layout.tsx +0 -3
  1057. package/src/components/navigation/index.ts +15 -3
  1058. package/src/components/navigation/mingo-ai-button.tsx +3 -4
  1059. package/src/components/navigation/mobile-nav-sheet.tsx +0 -2
  1060. package/src/components/navigation/multi-level-navigation.tsx +152 -35
  1061. package/src/components/navigation/page-section-bar.tsx +132 -0
  1062. package/src/components/navigation/sticky-section-nav.tsx +109 -18
  1063. package/src/components/navigation/ticket-alerts-button.tsx +1 -1
  1064. package/src/components/onboarding-guides/hooks/use-onboarding-guides.ts +8 -1
  1065. package/src/components/onboarding-guides/index.ts +5 -2
  1066. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +166 -67
  1067. package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +38 -51
  1068. package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +91 -45
  1069. package/src/components/pagination.tsx +103 -48
  1070. package/src/components/persistent-filter-controls.tsx +0 -7
  1071. package/src/components/persistent-pagination.tsx +6 -1
  1072. package/src/components/platform/ToolBadge.tsx +57 -10
  1073. package/src/components/platform/index.ts +2 -2
  1074. package/src/components/platform/tool-badge-mark.ts +6 -0
  1075. package/src/components/product-demo/fixtures/devices.ts +0 -3
  1076. package/src/components/product-demo/product-screen.tsx +42 -23
  1077. package/src/components/product-demo/screen-loading.tsx +20 -0
  1078. package/src/components/product-demo/screens/devices-view.tsx +58 -0
  1079. package/src/components/product-demo/screens/devices.tsx +9 -29
  1080. package/src/components/related-content/card-registry.tsx +20 -6
  1081. package/src/components/related-content/index.ts +3 -1
  1082. package/src/components/related-content/related-content-section.tsx +222 -46
  1083. package/src/components/results-count.tsx +37 -6
  1084. package/src/components/shared/article-author-byline.tsx +65 -41
  1085. package/src/components/shared/delivery/delivery-lists.tsx +15 -2
  1086. package/src/components/shared/delivery/delivery-row.tsx +55 -9
  1087. package/src/components/shared/delivery/delivery-table.tsx +19 -46
  1088. package/src/components/shared/detail-page-skeleton.tsx +15 -1
  1089. package/src/components/shared/dev-section/dev-card-row.tsx +45 -28
  1090. package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
  1091. package/src/components/shared/doc-search/use-doc-search.ts +1 -1
  1092. package/src/components/shared/legal-document/index.ts +2 -0
  1093. package/src/components/shared/legal-document/legal-document-page.tsx +41 -21
  1094. package/src/components/shared/legal-document/use-legal-docs.ts +5 -1
  1095. package/src/components/shared/legal-document/use-legal-documents.ts +4 -1
  1096. package/src/components/shared/media-gallery-strip.tsx +35 -3
  1097. package/src/components/shared/onboarding/index.ts +2 -5
  1098. package/src/components/shared/product-release/index.ts +1 -1
  1099. package/src/components/shared/product-release/product-release-card-classes.ts +28 -0
  1100. package/src/components/shared/product-release/product-release-card-skeleton.tsx +62 -56
  1101. package/src/components/shared/product-release/product-release-card.tsx +62 -44
  1102. package/src/components/shared/product-release/product-releases-view.tsx +32 -24
  1103. package/src/components/shared/product-release/release-detail-page.tsx +229 -134
  1104. package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +20 -6
  1105. package/src/components/shared/roadmap/roadmap-grid.tsx +59 -9
  1106. package/src/components/shared/roadmap/roadmap-view.tsx +3 -3
  1107. package/src/components/social-icon-row.tsx +14 -8
  1108. package/src/components/tickets/help-center-list.tsx +6 -2
  1109. package/src/components/tickets/hooks/use-ticket-actions.ts +0 -4
  1110. package/src/components/tickets/index.ts +1 -2
  1111. package/src/components/tickets/ticket-center.tsx +189 -75
  1112. package/src/components/tickets/types.ts +0 -9
  1113. package/src/components/toggle-group.tsx +4 -1
  1114. package/src/components/tool-icon.tsx +2 -1
  1115. package/src/components/ui/analyzing-state.tsx +11 -6
  1116. package/src/components/ui/announcement-bar-view.tsx +7 -1
  1117. package/src/components/ui/autocomplete.tsx +58 -6
  1118. package/src/components/ui/avatar-stack.tsx +42 -3
  1119. package/src/components/ui/badge.tsx +16 -1
  1120. package/src/components/ui/benefit-list.tsx +41 -6
  1121. package/src/components/ui/button/button-styles.ts +48 -0
  1122. package/src/components/ui/button/button.tsx +5 -39
  1123. package/src/components/ui/button/index.ts +1 -0
  1124. package/src/components/ui/card.tsx +28 -13
  1125. package/src/components/ui/checkbox.tsx +6 -1
  1126. package/src/components/ui/compliance-badge.tsx +6 -2
  1127. package/src/components/ui/cursor-pagination.tsx +28 -3
  1128. package/src/components/ui/dashboard-info-card.tsx +29 -11
  1129. package/src/components/ui/data-attribution.tsx +42 -12
  1130. package/src/components/ui/data-table/data-table-body.tsx +11 -2
  1131. package/src/components/ui/data-table/data-table-row-count.tsx +19 -1
  1132. package/src/components/ui/data-table/data-table-row.tsx +4 -9
  1133. package/src/components/ui/data-table/data-table-skeleton.tsx +7 -7
  1134. package/src/components/ui/data-table/index.ts +2 -1
  1135. package/src/components/ui/date-picker.tsx +0 -6
  1136. package/src/components/ui/entity-image.tsx +27 -4
  1137. package/src/components/ui/error-state.tsx +8 -1
  1138. package/src/components/ui/feature-card.tsx +77 -12
  1139. package/src/components/ui/feature-list.tsx +72 -8
  1140. package/src/components/ui/field-wrapper.tsx +13 -1
  1141. package/src/components/ui/filter-checkbox-item.tsx +57 -6
  1142. package/src/components/ui/filter-modal.tsx +2 -6
  1143. package/src/components/ui/filter-pill-row.tsx +81 -27
  1144. package/src/components/ui/incident-feed.tsx +20 -11
  1145. package/src/components/ui/index.ts +21 -1
  1146. package/src/components/ui/info-card-row.tsx +74 -19
  1147. package/src/components/ui/info-card.tsx +87 -13
  1148. package/src/components/ui/input-styles.ts +6 -0
  1149. package/src/components/ui/input.tsx +4 -1
  1150. package/src/components/ui/layout-hold.tsx +9 -7
  1151. package/src/components/ui/leader-row.tsx +58 -4
  1152. package/src/components/ui/loading-scope.tsx +54 -0
  1153. package/src/components/ui/markdown/base-components.tsx +18 -9
  1154. package/src/components/ui/markdown/engine.tsx +131 -7
  1155. package/src/components/ui/markdown/index.ts +8 -6
  1156. package/src/components/ui/markdown/mermaid-diagram.tsx +7 -4
  1157. package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +26 -1
  1158. package/src/components/ui/markdown/simple-markdown-renderer.tsx +0 -3
  1159. package/src/components/ui/markdown-editor.tsx +83 -50
  1160. package/src/components/ui/numbered-step.tsx +32 -2
  1161. package/src/components/ui/organization-card.tsx +32 -7
  1162. package/src/components/ui/page-actions.tsx +25 -29
  1163. package/src/components/ui/page-loader.tsx +2 -1
  1164. package/src/components/ui/people-cell.tsx +25 -2
  1165. package/src/components/ui/photo-wall.tsx +14 -3
  1166. package/src/components/ui/product-screen-frame.tsx +14 -3
  1167. package/src/components/ui/progress-bar.tsx +26 -3
  1168. package/src/components/ui/progress.tsx +14 -3
  1169. package/src/components/ui/release-changelog-section.tsx +153 -20
  1170. package/src/components/ui/search-input.tsx +23 -3
  1171. package/src/components/ui/searchable-select.tsx +26 -6
  1172. package/src/components/ui/skeleton-surface.ts +16 -4
  1173. package/src/components/ui/slack-channel-chip.tsx +23 -3
  1174. package/src/components/ui/snap-carousel.tsx +5 -0
  1175. package/src/components/ui/square-avatar.tsx +41 -23
  1176. package/src/components/ui/stacked-rows-panel.tsx +88 -15
  1177. package/src/components/ui/status-badge.tsx +18 -1
  1178. package/src/components/ui/status-indicator.tsx +21 -2
  1179. package/src/components/ui/status-line.tsx +2 -1
  1180. package/src/components/ui/strip-card.tsx +73 -23
  1181. package/src/components/ui/tab-navigation.tsx +141 -28
  1182. package/src/components/ui/table/table-header.tsx +2 -2
  1183. package/src/components/ui/table/table-row.tsx +2 -4
  1184. package/src/components/ui/table/table-skeleton.tsx +48 -54
  1185. package/src/components/ui/table/table.tsx +36 -19
  1186. package/src/components/ui/table/types.ts +12 -4
  1187. package/src/components/ui/table/utils.ts +5 -0
  1188. package/src/components/ui/tabs.tsx +64 -4
  1189. package/src/components/ui/tag.tsx +33 -13
  1190. package/src/components/ui/tags-input.tsx +48 -10
  1191. package/src/components/ui/textarea.tsx +33 -3
  1192. package/src/components/ui/ticket-info-section.tsx +0 -2
  1193. package/src/components/ui/timezone-select.tsx +4 -0
  1194. package/src/components/ui/toggle.tsx +11 -5
  1195. package/src/components/unified-pagination.tsx +15 -0
  1196. package/src/components/user-display.tsx +53 -12
  1197. package/src/components/user-summary-stub.tsx +7 -11
  1198. package/src/components/vendor-display-button.tsx +15 -12
  1199. package/src/components/vendor-icon.tsx +13 -2
  1200. package/src/components/vendor-tag.tsx +18 -4
  1201. package/src/embed-shims/next-image.tsx +36 -1
  1202. package/src/hooks/state/flatten-schema.ts +0 -4
  1203. package/src/hooks/state/index.ts +5 -3
  1204. package/src/hooks/state/url-converter.ts +2 -2
  1205. package/src/hooks/state/use-api-params.ts +2 -10
  1206. package/src/hooks/ui/index.ts +1 -0
  1207. package/src/hooks/ui/use-image-edge-color.ts +4 -1
  1208. package/src/hooks/ui/use-onboarding-state.ts +0 -2
  1209. package/src/hooks/use-downloads.ts +9 -1
  1210. package/src/hooks/use-meeting-booking.ts +4 -0
  1211. package/src/hooks/use-self-fetch.ts +12 -4
  1212. package/src/nats/index.ts +1 -0
  1213. package/src/nats/nats-provider.tsx +0 -2
  1214. package/src/nats/nats.ts +0 -2
  1215. package/src/nats/use-nats-subscription.ts +2 -1
  1216. package/src/schemas/meeting-booking-schema.ts +11 -0
  1217. package/src/styles/component-sizes.ts +105 -0
  1218. package/src/types/announcement.ts +0 -3
  1219. package/src/types/blog.ts +0 -4
  1220. package/src/types/case-study.ts +2 -2
  1221. package/src/types/customer-interview-ai.types.ts +1 -4
  1222. package/src/types/customer-interview.ts +0 -11
  1223. package/src/types/index.ts +2 -0
  1224. package/src/types/product-release.ts +4 -2
  1225. package/src/types/stack.ts +0 -4
  1226. package/src/utils/announcement-storage.ts +0 -7
  1227. package/src/utils/dev-sections/openframe-dev-sections.ts +11 -0
  1228. package/src/utils/index.ts +6 -9
  1229. package/src/utils/markdown-heading-id.ts +0 -28
  1230. package/src/utils/ods-color-utils.ts +0 -4
  1231. package/src/utils/own-click.ts +25 -0
  1232. package/src/utils/platform-config.tsx +0 -17
  1233. package/src/utils/source-icons.ts +2 -2
  1234. package/dist/chunk-3ATAYP36.cjs +0 -19
  1235. package/dist/chunk-3LU4UFPS.cjs +0 -14
  1236. package/dist/chunk-H3RYUTND.cjs +0 -142
  1237. package/dist/chunk-JB424IQK.cjs +0 -404
  1238. package/dist/chunk-L4UI63K6.cjs +0 -103
  1239. package/dist/chunk-NS64LMVE.cjs +0 -470
  1240. package/dist/chunk-OF336YWG.cjs +0 -20
  1241. package/dist/chunk-RB6BSE3O.cjs +0 -21
  1242. package/dist/chunk-UI2TLQWA.cjs +0 -163
  1243. package/dist/components/chat/entity-cards/product-release-card.d.ts +0 -12
  1244. package/dist/components/chat/entity-cards/product-release-card.d.ts.map +0 -1
  1245. package/dist/components/chat/entity-cards/product-release-card.js +0 -8
  1246. package/dist/components/chat/hooks/use-embedded-chat.d.ts +0 -15
  1247. package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +0 -1
  1248. package/dist/components/chat/hooks/use-embedded-chat.js +0 -6
  1249. package/dist/components/chat/types/entities/blog.d.ts +0 -14
  1250. package/dist/components/chat/types/entities/blog.d.ts.map +0 -1
  1251. package/dist/components/chat/types/entities/blog.js +0 -1
  1252. package/dist/components/chat/types/entities/case-study.d.ts +0 -10
  1253. package/dist/components/chat/types/entities/case-study.d.ts.map +0 -1
  1254. package/dist/components/chat/types/entities/case-study.js +0 -1
  1255. package/dist/components/chat/types/entities/content-ref.d.ts +0 -8
  1256. package/dist/components/chat/types/entities/content-ref.d.ts.map +0 -1
  1257. package/dist/components/chat/types/entities/content-ref.js +0 -1
  1258. package/dist/components/chat/types/entities/customer-interview.d.ts +0 -10
  1259. package/dist/components/chat/types/entities/customer-interview.d.ts.map +0 -1
  1260. package/dist/components/chat/types/entities/customer-interview.js +0 -1
  1261. package/dist/components/chat/utils/source-icons.d.ts +0 -8
  1262. package/dist/components/chat/utils/source-icons.d.ts.map +0 -1
  1263. package/dist/components/chat/utils/source-icons.js +0 -16
  1264. package/dist/utils/image-proxy-stub.d.ts +0 -14
  1265. package/dist/utils/image-proxy-stub.d.ts.map +0 -1
  1266. package/dist/utils/image-proxy-stub.js +0 -22
  1267. package/src/components/chat/entity-cards/product-release-card.tsx +0 -19
  1268. package/src/components/chat/hooks/use-embedded-chat.ts +0 -25
  1269. package/src/components/chat/types/entities/blog.ts +0 -27
  1270. package/src/components/chat/types/entities/case-study.ts +0 -10
  1271. package/src/components/chat/types/entities/content-ref.ts +0 -7
  1272. package/src/components/chat/types/entities/customer-interview.ts +0 -15
  1273. package/src/components/chat/utils/source-icons.ts +0 -14
  1274. package/src/utils/image-proxy-stub.ts +0 -40
@@ -30,9 +30,11 @@ import { contentFetch } from '../../utils/embed-content-fetch';
30
30
  import { formatDurationCompact, formatDateWithTimezone, VIEWER_TIMEZONE } from '../../utils/format';
31
31
  import { pageCount } from '../../utils/search-params';
32
32
  import { EmptyState } from '../empty-state';
33
- import { UnifiedSkeleton } from '../loading/unified-skeleton';
33
+ import { TextLineSkeleton, UnifiedSkeleton } from '../loading/unified-skeleton';
34
+ import { PaginationSkeleton } from '../pagination';
34
35
  import { PersistentPaginationWrapper } from '../persistent-pagination';
35
36
  import { AvatarStack, StatusBadge } from '../ui';
37
+ import { useLoadingScope } from '../ui/loading-scope';
36
38
 
37
39
  export interface MeetingSchedulerDirectoryProps {
38
40
  /** Endpoints prefix, default '' (same-origin `/api/meetings`). */
@@ -65,6 +67,23 @@ function useNextAvailableLabel(ms: number | null): string | null {
65
67
  }, [hydrated, ms]);
66
68
  }
67
69
 
70
+ /** Measured pagination-slot height (PersistentPaginationWrapper = 72px). */
71
+ const PAGINATION_SLOT_H = 'h-[4.5rem]';
72
+ /** Rows per page by default: also the skeleton's row count. */
73
+ export const MEETING_DIRECTORY_PAGE_SIZE = 6;
74
+ /** Reserved rows-area height: pageSize × 80px rows + (pageSize−1) × 16px gaps. */
75
+ const directoryRowsMinHeight = (pageSize: number) => pageSize * 80 + (pageSize - 1) * 16;
76
+
77
+ /** A row's frame and columns, read by the row and by its skeleton, so the skeleton is the row's size. */
78
+ const ROW_FRAME_CLASS = 'flex min-h-20 w-full items-center gap-4 rounded-lg border border-ods-border bg-ods-card px-4 py-3';
79
+ const ROW_TITLE_COLUMN_CLASS = 'flex min-w-0 flex-1 flex-col justify-center text-left';
80
+ const ROW_NEXT_COLUMN_CLASS = 'hidden w-44 shrink-0 flex-col items-end justify-center content-md:flex';
81
+ const ROW_NEXT_LABEL_CLASS = 'text-ods-text-secondary text-h6';
82
+ const ROW_CHEVRON_CLASS =
83
+ 'flex size-12 shrink-0 items-center justify-center rounded-md border border-ods-border bg-ods-card';
84
+ const ROWS_CLASS = 'flex w-full flex-col gap-4';
85
+ const PAGINATION_SLOT_CLASS = 'mt-8 flex w-full items-center justify-center';
86
+
68
87
  function DirectoryRow({
69
88
  link,
70
89
  audienceLabel,
@@ -90,9 +109,9 @@ function DirectoryRow({
90
109
  prefetch={false}
91
110
  className="block rounded-lg text-inherit no-underline focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent"
92
111
  >
93
- <div className="flex min-h-20 w-full items-center gap-4 rounded-lg border border-ods-border bg-ods-card px-4 py-3 transition-colors duration-150 hover:bg-ods-bg-hover">
112
+ <div className={cn(ROW_FRAME_CLASS, 'transition-colors duration-150 hover:bg-ods-bg-hover')}>
94
113
  {/* Title leads at a fixed X; hosts live in the right meta cluster. */}
95
- <div className="flex min-w-0 flex-1 flex-col justify-center text-left">
114
+ <div className={ROW_TITLE_COLUMN_CLASS}>
96
115
  <p className="truncate text-ods-text-primary text-h3">{link.title}</p>
97
116
  {subtitle && <p className="truncate text-ods-text-secondary text-h6">{subtitle}</p>}
98
117
  </div>
@@ -107,15 +126,15 @@ function DirectoryRow({
107
126
  collapse on narrow widths. */}
108
127
  <AvatarStack people={link.hosts} max={3} size="md" label="Hosts" className="flex shrink-0" />
109
128
 
110
- <div className="hidden w-44 shrink-0 flex-col items-end justify-center content-md:flex">
111
- <p className="text-ods-text-secondary text-h6">Next available</p>
129
+ <div className={ROW_NEXT_COLUMN_CLASS}>
130
+ <p className={ROW_NEXT_LABEL_CLASS}>Next available</p>
112
131
  <p className="min-h-5 text-ods-text-primary text-h6">
113
132
  {link.nextAvailableMs == null ? 'No times published' : (nextLabel ?? ' ')}
114
133
  </p>
115
134
  </div>
116
135
 
117
136
  {/* House boxed chevron (ChatTicketItem). */}
118
- <span className="flex size-12 shrink-0 items-center justify-center rounded-md border border-ods-border bg-ods-card">
137
+ <span className={ROW_CHEVRON_CLASS}>
119
138
  <ChevronRight className="size-6 text-ods-text-secondary" />
120
139
  </span>
121
140
  </div>
@@ -123,33 +142,57 @@ function DirectoryRow({
123
142
  );
124
143
  }
125
144
 
126
- /** Same-shell loading row (co-located-skeleton convention). */
145
+ /**
146
+ * Same-shell loading row (co-located-skeleton convention): the row's frame, "Next available" and the chevron box
147
+ * real, the title, subtitle, audience chip, hosts and next time as shapes.
148
+ */
127
149
  export function MeetingSchedulerDirectoryRowSkeleton() {
128
150
  return (
129
- <div className="flex min-h-20 w-full items-center gap-4 rounded-lg border border-ods-border bg-ods-card px-4 py-3">
130
- <div className="flex min-w-0 flex-1 flex-col justify-center gap-1">
131
- <UnifiedSkeleton className="h-5 w-1/2" />
132
- <UnifiedSkeleton className="h-4 w-1/3" />
151
+ <div className={ROW_FRAME_CLASS} aria-hidden>
152
+ <div className={ROW_TITLE_COLUMN_CLASS}>
153
+ <TextLineSkeleton type="h3" className="w-1/2" />
154
+ <TextLineSkeleton type="h6" className="w-1/3" />
133
155
  </div>
134
156
  <UnifiedSkeleton className="hidden h-6 w-28 shrink-0 content-sm:block" />
135
157
  <UnifiedSkeleton className="h-10 w-10 shrink-0 rounded-full" />
136
- <div className="hidden w-44 shrink-0 flex-col items-end gap-1 content-md:flex">
137
- <UnifiedSkeleton className="h-4 w-24" />
138
- <UnifiedSkeleton className="h-5 w-32" />
158
+ <div className={ROW_NEXT_COLUMN_CLASS}>
159
+ <p className={ROW_NEXT_LABEL_CLASS}>Next available</p>
160
+ <TextLineSkeleton type="h6" className="w-32" />
139
161
  </div>
140
- <UnifiedSkeleton className="size-12 shrink-0 rounded-md" />
162
+ <span className={ROW_CHEVRON_CLASS}>
163
+ <ChevronRight className="size-6 text-ods-text-secondary" />
164
+ </span>
141
165
  </div>
142
166
  );
143
167
  }
144
168
 
145
- /** Measured pagination-slot height (PersistentPaginationWrapper = 72px). */
146
- const PAGINATION_SLOT_H = 'h-[4.5rem]';
169
+ /** The directory while its links are read: `pageSize` row skeletons in the reserved rows area, and the pager. */
170
+ export function MeetingSchedulerDirectorySkeleton({
171
+ pageSize = MEETING_DIRECTORY_PAGE_SIZE,
172
+ className,
173
+ }: {
174
+ pageSize?: number;
175
+ className?: string;
176
+ }) {
177
+ return (
178
+ <div className={cn('flex flex-col', className)} aria-hidden>
179
+ <div className={ROWS_CLASS} style={{ minHeight: directoryRowsMinHeight(pageSize) }}>
180
+ {Array.from({ length: pageSize }, (_, i) => (
181
+ <MeetingSchedulerDirectoryRowSkeleton key={i} />
182
+ ))}
183
+ </div>
184
+ <div className={cn(PAGINATION_SLOT_CLASS, PAGINATION_SLOT_H)}>
185
+ <PaginationSkeleton />
186
+ </div>
187
+ </div>
188
+ );
189
+ }
147
190
 
148
191
  export function MeetingSchedulerDirectory({
149
192
  apiBaseUrl = '',
150
193
  initialData = null,
151
194
  includeAll = false,
152
- pageSize = 6,
195
+ pageSize = MEETING_DIRECTORY_PAGE_SIZE,
153
196
  bookingBasePath = '/schedule-a-call',
154
197
  contactHref,
155
198
  className,
@@ -158,9 +201,11 @@ export function MeetingSchedulerDirectory({
158
201
  const [isLoading, setIsLoading] = useState(initialData === null);
159
202
  const [error, setError] = useState<string | null>(null);
160
203
  const [page, setPage] = useState(1);
204
+ // In a loading scope nothing is fetched: the directory draws its skeleton.
205
+ const inScope = useLoadingScope();
161
206
 
162
207
  useEffect(() => {
163
- if (initialData !== null) return undefined; // host-seeded — skip the client fetch
208
+ if (initialData !== null || inScope) return undefined; // host-seeded — skip the client fetch
164
209
  const controller = new AbortController();
165
210
  let active = true;
166
211
  const load = async () => {
@@ -184,7 +229,7 @@ export function MeetingSchedulerDirectory({
184
229
  active = false;
185
230
  controller.abort();
186
231
  };
187
- }, [initialData, includeAll, apiBaseUrl]);
232
+ }, [initialData, inScope, includeAll, apiBaseUrl]);
188
233
 
189
234
  const rows = useMemo(() => {
190
235
  const purposes = data?.purposes ?? [];
@@ -194,22 +239,10 @@ export function MeetingSchedulerDirectory({
194
239
  const totalPages = pageCount(rows.length, pageSize);
195
240
  const pageRows = rows.slice((page - 1) * pageSize, page * pageSize);
196
241
 
197
- // Reserved rows-area height: pageSize × 80px rows + (pageSize−1) × 16px gaps.
198
- const rowsMinHeight = pageSize * 80 + (pageSize - 1) * 16;
242
+ const rowsMinHeight = directoryRowsMinHeight(pageSize);
199
243
 
200
- if (isLoading && !data) {
201
- return (
202
- <div className={cn('flex flex-col', className)}>
203
- <div className="flex w-full flex-col gap-4" style={{ minHeight: rowsMinHeight }}>
204
- {Array.from({ length: pageSize }, (_, i) => (
205
- <MeetingSchedulerDirectoryRowSkeleton key={i} />
206
- ))}
207
- </div>
208
- <div className={cn('mt-8 flex w-full items-center justify-center', PAGINATION_SLOT_H)}>
209
- <UnifiedSkeleton className="h-10 w-64" />
210
- </div>
211
- </div>
212
- );
244
+ if (inScope || (isLoading && !data)) {
245
+ return <MeetingSchedulerDirectorySkeleton pageSize={pageSize} className={className} />;
213
246
  }
214
247
 
215
248
  if (error) {
@@ -240,7 +273,7 @@ export function MeetingSchedulerDirectory({
240
273
 
241
274
  return (
242
275
  <div className={cn('flex flex-col', className)}>
243
- <div className="flex w-full flex-col gap-4" style={{ minHeight: rowsMinHeight }}>
276
+ <div className={ROWS_CLASS} style={{ minHeight: rowsMinHeight }}>
244
277
  {pageRows.map(({ link, audienceLabel }) => (
245
278
  <DirectoryRow key={link.id} link={link} audienceLabel={audienceLabel} bookingBasePath={bookingBasePath} />
246
279
  ))}
@@ -248,7 +281,7 @@ export function MeetingSchedulerDirectory({
248
281
  {/* House pagination block — dims in place during refetches; the slot
249
282
  holds its measured height even at ≤1 page (where the inner
250
283
  UnifiedPagination returns null). */}
251
- <div className={cn('mt-8 flex w-full items-center justify-center', PAGINATION_SLOT_H)}>
284
+ <div className={cn(PAGINATION_SLOT_CLASS, PAGINATION_SLOT_H)}>
252
285
  {totalPages > 1 && (
253
286
  <PersistentPaginationWrapper
254
287
  isLoading={isLoading}
@@ -59,17 +59,12 @@ import { formatDurationCompact, formatDateWithTimezone } from '../../utils/forma
59
59
  import { BackButton } from '../layout/back-button';
60
60
  import { LoadingRegion } from '../loading/loading-region';
61
61
  import { Alert, AlertDescription, Button } from '../ui';
62
- import {
63
- BookingForm,
64
- BookingFormSkeleton,
65
- DEFAULT_SUBMIT_LABEL,
66
- type BookingFieldRow,
67
- type BookingFormProps,
68
- } from './booking-form';
62
+ import { useLoadingScope } from '../ui/loading-scope';
63
+ import { BookingForm, DEFAULT_SUBMIT_LABEL, type BookingFieldRow, type BookingFormProps } from './booking-form';
69
64
  import { Confirmation } from './confirmation';
70
- import { SchedulerContextPanel, ContextPanelSkeleton } from './context-panel';
71
- import { SchedulerModalHeader, SchedulerModalHeaderSkeleton } from './modal-header';
72
- import { SlotPicker, SlotPickerSkeleton, dayKeyInZone } from './slot-picker';
65
+ import { SchedulerContextPanel } from './context-panel';
66
+ import { SchedulerModalHeader } from './modal-header';
67
+ import { SlotPicker, dayKeyInZone } from './slot-picker';
73
68
 
74
69
  /**
75
70
  * Visitor-facing copy per booking-error code. Everything except SLOT_TAKEN
@@ -159,9 +154,13 @@ export interface HubSpotMeetingSchedulerProps {
159
154
  * The DATA form of the same override: `fieldRows`, a host consent row and
160
155
  * per-field display copy, spread onto whichever form renders. Serialisable,
161
156
  * so a Server Component can pass it across the RSC boundary where a component
162
- * cannot.
157
+ * cannot. `answers` are what the page took outside the form (a choice made
158
+ * higher up the page), written into questions the visitor has not answered.
163
159
  */
164
- detailsFormProps?: Pick<BookingFormProps, 'fieldRows' | 'consent' | 'fieldCopy' | 'deniedEmailDomains'>;
160
+ detailsFormProps?: Pick<
161
+ BookingFormProps,
162
+ 'fieldRows' | 'optionalFields' | 'consent' | 'fieldCopy' | 'deniedEmailDomains' | 'answers'
163
+ >;
165
164
  /** Form rescue for the details form (`RESCUE_FORMS.meetingBooking`). OPT-IN:
166
165
  * omitted or `null` saves nothing. */
167
166
  rescue?: FormRescueDefinition | null;
@@ -428,6 +427,7 @@ const MODAL_STACK_CLASS = 'flex flex-col gap-[var(--spacing-system-l)]';
428
427
  const MODAL_CARD_CLASS = 'flex flex-col overflow-hidden rounded-md border border-ods-border bg-ods-card';
429
428
  const MODAL_STEP_CLASS = 'flex flex-col p-[var(--spacing-system-m)]';
430
429
  const NOOP = () => undefined;
430
+ const NOOP_SUBMIT = () => Promise.resolve();
431
431
 
432
432
  /** The modal's form draws the name pair first and the email under it, as its design does. */
433
433
  const MODAL_FIELD_ROWS: BookingFieldRow[] = [[{ name: 'firstName' }, { name: 'lastName' }], [{ name: 'email' }]];
@@ -453,6 +453,40 @@ function ModalFooter({ onCancel, primary }: { onCancel?: () => void; primary: Re
453
453
  );
454
454
  }
455
455
 
456
+ /**
457
+ * The card's wrappers at a step: ONE derivation for the loaded card and its skeleton.
458
+ *
459
+ * The card states ONE height and everything inside derives from it (see
460
+ * `MEETING_SCHEDULER_H`). details-first's tallest stage is the form, so it gets
461
+ * its own fixed pair rather than a floor: a floor was tried before and let the
462
+ * tall stage push the wrapper.
463
+ *
464
+ * details-first's form stage grows with the link's questions (see
465
+ * MEETING_SCHEDULER_DETAILS_FIRST_H); every other stage keeps the stated box.
466
+ * `cn` is tailwind-merge-backed and last-wins, so the host `className` comes
467
+ * last: a host's own `h-*` stays reachable.
468
+ */
469
+ function schedulerCardClasses(flow: SchedulerFlow, step: Step, className?: string) {
470
+ const detailsFirst = flow === 'details-first';
471
+ const formOnly = detailsFirst && step === 'details';
472
+ const boxed = !formOnly;
473
+ return {
474
+ formOnly,
475
+ cardClass: cn(
476
+ CARD_CLASS,
477
+ boxed ? SCHEDULER_FLOW_PRESETS[flow].height : 'content-md:h-auto',
478
+ detailsFirst && 'flex flex-col',
479
+ formOnly && 'bg-ods-bg',
480
+ className,
481
+ ),
482
+ /** details-first states a height on phones too (see MEETING_SCHEDULER_DETAILS_FIRST_H), so
483
+ * the wrappers that let content shrink into a stated height run at every width there. */
484
+ innerClass: cn(CARD_INNER_CLASS, detailsFirst && boxed && 'min-h-0 flex-1'),
485
+ actionPanelClass: cn(ACTION_PANEL_CLASS, detailsFirst && boxed && 'min-h-0 overflow-y-auto'),
486
+ stepPanelClass: cn(STEP_PANEL_CLASS, detailsFirst && boxed && 'min-h-0 overflow-y-auto'),
487
+ };
488
+ }
489
+
456
490
  export function HubSpotMeetingScheduler({
457
491
  meetingId,
458
492
  apiBaseUrl = '',
@@ -483,6 +517,10 @@ export function HubSpotMeetingScheduler({
483
517
  book,
484
518
  isSubmitting,
485
519
  } = useMeetingBooking({ meetingId, apiBaseUrl, initialAvailability });
520
+ // A cold start: in a loading scope, or no month in the cache yet. Every part draws its own skeleton in the SAME
521
+ // tree as the loaded card (`loading`), so nothing remounts or shifts when the month lands.
522
+ const inScope = useLoadingScope();
523
+ const coldStart = inScope || (isLoadingAvailability && !availability);
486
524
 
487
525
  const detailsFirst = flow === 'details-first';
488
526
  // The modal arrangement is slot-first's only: details-first keeps the card.
@@ -519,8 +557,7 @@ export function HubSpotMeetingScheduler({
519
557
  // cold load is still the current step; a failed load or a link the form cannot
520
558
  // reproduce is the degraded box.
521
559
  const stage: SchedulerStage =
522
- !(isLoadingAvailability && !availability) &&
523
- (Boolean(availabilityError) || !availability || !isNativelyBookable(availability))
560
+ !coldStart && (Boolean(availabilityError) || !availability || !isNativelyBookable(availability))
524
561
  ? 'unavailable'
525
562
  : step;
526
563
  // Reported from an effect, not beside each `setStep`: the stage moves in several
@@ -533,8 +570,10 @@ export function HubSpotMeetingScheduler({
533
570
  onStageChangeRef.current = onStageChange;
534
571
  });
535
572
  useEffect(() => {
573
+ // A loading scope reports nothing: nothing in it writes.
574
+ if (inScope) return;
536
575
  onStageChangeRef.current?.(stage);
537
- }, [stage]);
576
+ }, [stage, inScope]);
538
577
  // State, not a ref: the link-swap reset below writes it DURING RENDER, and
539
578
  // this file's own rule forbids writing a ref there. "Frozen" means written
540
579
  // once at Continue, not `useRef`.
@@ -772,33 +811,8 @@ export function HubSpotMeetingScheduler({
772
811
  * exit under a details-first visitor. */
773
812
  const backEdge = detailsFirst ? (step === 'slot' ? backToDetails : onBack) : step === 'details' ? backToSlot : onBack;
774
813
 
775
- /**
776
- * The card states ONE height and everything inside derives from it (see
777
- * `MEETING_SCHEDULER_H`). details-first's tallest stage is the form, so it
778
- * gets its own fixed pair rather than a floor — a floor was tried here before
779
- * and let the tall stage push the wrapper.
780
- *
781
- * Placed BEFORE the host `className`: `cn` is tailwind-merge-backed and
782
- * last-wins, so appending it after would make a host's own `h-*` unreachable,
783
- * which is the override the height-inside-CARD_CLASS arrangement allows today.
784
- */
785
- // details-first's form stage grows with the link's questions (see
786
- // MEETING_SCHEDULER_DETAILS_FIRST_H); every other stage keeps the stated box.
787
- // `formOnly` is exactly that stage (`detailsFirst && step === 'details'`), so
788
- // slot-first, the calendar, the confirmation and the skeleton of either stay boxed.
789
- const boxed = !formOnly;
790
- const cardClass = cn(
791
- CARD_CLASS,
792
- boxed ? preset.height : 'content-md:h-auto',
793
- detailsFirst && 'flex flex-col',
794
- formOnly && 'bg-ods-bg',
795
- className,
796
- );
797
- /** details-first states a height on phones too (see MEETING_SCHEDULER_DETAILS_FIRST_H), so
798
- * the wrappers that let content shrink into a stated height run at every width there. */
799
- const innerClass = cn(CARD_INNER_CLASS, detailsFirst && boxed && 'min-h-0 flex-1');
800
- const actionPanelClass = cn(ACTION_PANEL_CLASS, detailsFirst && boxed && 'min-h-0 overflow-y-auto');
801
- const stepPanelClass = cn(STEP_PANEL_CLASS, detailsFirst && boxed && 'min-h-0 overflow-y-auto');
814
+ // The card states ONE height and everything inside derives from it (`schedulerCardClasses`).
815
+ const { cardClass, innerClass, actionPanelClass, stepPanelClass } = schedulerCardClasses(flow, step, className);
802
816
 
803
817
  /** One card SHAPE for every degraded return below. */
804
818
  const degraded = (message: string) => (
@@ -806,64 +820,13 @@ export function HubSpotMeetingScheduler({
806
820
  );
807
821
  const degradedCard = degraded("We couldn't load available call times. Please try again shortly.");
808
822
 
809
- if (modal && isLoadingAvailability && !availability) {
810
- return (
811
- <div className={cn(MODAL_STACK_CLASS, className)}>
812
- <LoadingRegion label="Loading available times" className={MODAL_CARD_CLASS}>
813
- <SchedulerModalHeaderSkeleton />
814
- <SlotPickerSkeleton monthOffset={monthOffset} layout="modal" />
815
- </LoadingRegion>
816
- <ModalFooter
817
- onCancel={onBack}
818
- primary={
819
- <Button disabled onClick={NOOP} className={MODAL_PRIMARY_CLASS}>
820
- Continue
821
- </Button>
822
- }
823
- />
824
- </div>
825
- );
826
- }
827
-
828
- if (isLoadingAvailability && !availability) {
829
- // COLD start only — a month already in the query cache renders straight
830
- // into the loaded card. Composed inside the SAME wrappers as that card
831
- // (`ContextPanelSkeleton` beside the real slot-area layout), so nothing
832
- // shifts when it swaps.
833
- return (
834
- <div className={cardClass}>
835
- <LoadingRegion label="Loading available times" className={innerClass}>
836
- {!formOnly && <ContextPanelSkeleton onBack={backEdge} className={CONTEXT_PANEL_CLASS} />}
837
- <div className={actionPanelClass}>
838
- {/* Both terms matter. Without `flow` this stays a calendar where
839
- the form belongs; without the step term, paging a month AFTER
840
- Continue (which happens at `step === 'slot'`) would swap the
841
- calendar out for a form skeleton and back. */}
842
- {formOnly ? (
843
- // The SAME wrapper the loaded form gets, so the skeleton never
844
- // states its own inset.
845
- <div className={stepPanelClass}>
846
- <BookingFormSkeleton
847
- fieldRows={detailsFormProps?.fieldRows}
848
- consent={Boolean(detailsFormProps?.consent)}
849
- footerNote={preset.footerNote}
850
- />
851
- </div>
852
- ) : (
853
- <SlotPickerSkeleton monthOffset={monthOffset} />
854
- )}
855
- </div>
856
- </LoadingRegion>
857
- </div>
858
- );
859
- }
860
-
861
- if (availabilityError || !availability) return degradedCard;
862
-
863
- if (!isNativelyBookable(availability)) {
864
- // Fail closed — never render a half-working native form on a link with
865
- // questions or consent we can't faithfully reproduce.
866
- return degraded('This meeting type is booked directly on HubSpot.');
823
+ if (!coldStart) {
824
+ if (availabilityError || !availability) return degradedCard;
825
+ if (!isNativelyBookable(availability)) {
826
+ // Fail closed — never render a half-working native form on a link with
827
+ // questions or consent we can't faithfully reproduce.
828
+ return degraded('This meeting type is booked directly on HubSpot.');
829
+ }
867
830
  }
868
831
 
869
832
  // ---- the card ------------------------------------------------------------
@@ -882,7 +845,8 @@ export function HubSpotMeetingScheduler({
882
845
  : null;
883
846
  return (
884
847
  <div className={cn(MODAL_STACK_CLASS, className)}>
885
- <div className={MODAL_CARD_CLASS}>
848
+ {/* One tree loading and loaded: the region announces only on a cold start, so the first read never remounts the card. */}
849
+ <LoadingRegion label="Loading available times" announce={coldStart} className={MODAL_CARD_CLASS}>
886
850
  {/* The window's one back edge: on the form it returns to the
887
851
  calendar at every width; on the calendar it is the host's exit,
888
852
  drawn on a phone only - the window has an X everywhere else. */}
@@ -896,6 +860,7 @@ export function HubSpotMeetingScheduler({
896
860
  />
897
861
  )}
898
862
  <SchedulerModalHeader
863
+ loading={coldStart}
899
864
  hosts={shownHosts}
900
865
  durationsMs={durations}
901
866
  selectedDurationMs={durationMs}
@@ -942,8 +907,15 @@ export function HubSpotMeetingScheduler({
942
907
  </AlertDescription>
943
908
  </Alert>
944
909
  )}
945
- {timezone && durationMs != null ? (
910
+ {!coldStart && (!timezone || durationMs == null) && durations.length === 0 && !isFetchingAvailability ? (
911
+ <div className={cn(MODAL_STEP_CLASS, 'items-start gap-[var(--spacing-system-m)]')}>
912
+ <p className="text-ods-text-secondary text-h6">No call times are published right now.</p>
913
+ {escapeHatch}
914
+ </div>
915
+ ) : (
916
+ // On a cold start, or waiting for the zone or the length, the picker draws its own skeleton (`loading`).
946
917
  <SlotPicker
918
+ loading={coldStart || !timezone || durationMs == null}
947
919
  layout="modal"
948
920
  slots={slots}
949
921
  timezone={timezone}
@@ -959,17 +931,10 @@ export function HubSpotMeetingScheduler({
959
931
  onSelectDay={setSelectedDay}
960
932
  isLoading={isLoadingAvailability}
961
933
  />
962
- ) : durations.length === 0 && !isFetchingAvailability ? (
963
- <div className={cn(MODAL_STEP_CLASS, 'items-start gap-[var(--spacing-system-m)]')}>
964
- <p className="text-ods-text-secondary text-h6">No call times are published right now.</p>
965
- {escapeHatch}
966
- </div>
967
- ) : (
968
- <SlotPickerSkeleton monthOffset={monthOffset} layout="modal" />
969
934
  )}
970
935
  </>
971
936
  )}
972
- </div>
937
+ </LoadingRegion>
973
938
  {step === 'slot' && (
974
939
  <ModalFooter
975
940
  onCancel={onBack}
@@ -1006,9 +971,11 @@ export function HubSpotMeetingScheduler({
1006
971
 
1007
972
  return (
1008
973
  <div className={cardClass}>
1009
- <div className={innerClass}>
974
+ {/* One tree loading and loaded: the region announces only on a cold start. */}
975
+ <LoadingRegion label="Loading available times" announce={coldStart} className={innerClass}>
1010
976
  {!formOnly && (
1011
977
  <SchedulerContextPanel
978
+ loading={coldStart}
1012
979
  hosts={shownHosts}
1013
980
  title={title}
1014
981
  description={description}
@@ -1054,7 +1021,43 @@ export function HubSpotMeetingScheduler({
1054
1021
  MEETING_SCHEDULER_H. `min-h-0` is what lets it: a flex item's
1055
1022
  default `min-height:auto` refuses to shrink below its content. */}
1056
1023
  <div className={actionPanelClass}>
1057
- {step === 'confirmed' && confirmation && timezone ? (
1024
+ {coldStart ? (
1025
+ // The month is not here yet: the step's own part draws its skeleton in the loaded wrapper. Both terms
1026
+ // matter: without `formOnly` this would be a calendar where the form belongs; paging a month AFTER
1027
+ // Continue (at `step === 'slot'`) keeps the calendar.
1028
+ formOnly ? (
1029
+ <div className={stepPanelClass}>
1030
+ <DetailsForm
1031
+ loading
1032
+ {...detailsFormProps}
1033
+ availability={availability}
1034
+ meetingId={meetingId}
1035
+ timezone={timezone}
1036
+ deferSlot={detailsFirst}
1037
+ submitLabel={preset.submitLabel}
1038
+ footerNote={preset.footerNote}
1039
+ isSubmitting={false}
1040
+ onSubmit={NOOP_SUBMIT}
1041
+ honeypotInputProps={honeypotInputProps}
1042
+ getSignals={getSignals}
1043
+ />
1044
+ </div>
1045
+ ) : (
1046
+ <div className="flex flex-col gap-[var(--spacing-system-m)] content-md:min-h-0 content-md:flex-1">
1047
+ <SlotPicker
1048
+ loading
1049
+ slots={slots}
1050
+ timezone={timezone}
1051
+ monthOffset={monthOffset}
1052
+ onMonthOffsetChange={NOOP}
1053
+ selectedSlot={null}
1054
+ onSelectSlot={NOOP}
1055
+ selectedDay={null}
1056
+ onSelectDay={NOOP}
1057
+ />
1058
+ </div>
1059
+ )
1060
+ ) : step === 'confirmed' && confirmation && timezone ? (
1058
1061
  <div className={stepPanelClass}>
1059
1062
  <Confirmation confirmation={confirmation} timezone={timezone} />
1060
1063
  </div>
@@ -1113,11 +1116,24 @@ export function HubSpotMeetingScheduler({
1113
1116
  </AlertDescription>
1114
1117
  </Alert>
1115
1118
  )}
1116
- {timezone && durationMs != null ? (
1117
- // The picker owns BOTH the loading and the empty month now —
1118
- // it keeps the calendar up either way, so there is no branch
1119
- // here that can take it off screen mid-flow.
1119
+ {(!timezone || durationMs == null) && durations.length === 0 && (!isFetchingAvailability || formOnly) ? (
1120
+ // The LINK publishes nothing at all — a different thing from a
1121
+ // fully-booked month, and the only case the escape hatch is
1122
+ // the right answer to. In the form-only layout it holds through
1123
+ // a refetch too: the alternative frame is a calendar skeleton
1124
+ // where a form belongs.
1125
+ <div className="flex flex-col items-start gap-[var(--spacing-system-m)]">
1126
+ <p className="text-ods-text-secondary text-h6">No call times are published right now.</p>
1127
+ {escapeHatch}
1128
+ </div>
1129
+ ) : (
1130
+ // The picker owns the loading and the empty month — it keeps
1131
+ // the calendar up either way, so there is no branch here that
1132
+ // can take it off screen mid-flow. In the pre-mount
1133
+ // timezone-resolution window (every SSR load hits it for one
1134
+ // frame-batch) it draws its own skeleton (`loading`).
1120
1135
  <SlotPicker
1136
+ loading={!timezone || durationMs == null}
1121
1137
  slots={slots}
1122
1138
  timezone={timezone}
1123
1139
  monthOffset={monthOffset}
@@ -1176,26 +1192,11 @@ export function HubSpotMeetingScheduler({
1176
1192
  // clicked chip spinning.
1177
1193
  isSubmitting={detailsFirst ? isSubmitting : undefined}
1178
1194
  />
1179
- ) : durations.length === 0 && (!isFetchingAvailability || formOnly) ? (
1180
- // The LINK publishes nothing at all — a different thing from a
1181
- // fully-booked month, and the only case the escape hatch is
1182
- // the right answer to. In the form-only layout it holds through
1183
- // a refetch too: the alternative frame is a calendar skeleton
1184
- // where a form belongs.
1185
- <div className="flex flex-col items-start gap-[var(--spacing-system-m)]">
1186
- <p className="text-ods-text-secondary text-h6">No call times are published right now.</p>
1187
- {escapeHatch}
1188
- </div>
1189
- ) : (
1190
- // Pre-mount timezone-resolution window (every SSR load hits
1191
- // this for one frame-batch) — same layout, real calendar, so
1192
- // nothing shifts when the picker takes over.
1193
- <SlotPickerSkeleton monthOffset={monthOffset} />
1194
1195
  )}
1195
1196
  </div>
1196
1197
  )}
1197
1198
  </div>
1198
- </div>
1199
+ </LoadingRegion>
1199
1200
  </div>
1200
1201
  );
1201
1202
  }
@@ -1206,6 +1207,7 @@ export function HubSpotMeetingScheduler({
1206
1207
  export {
1207
1208
  BookingForm,
1208
1209
  BookingFormSkeleton,
1210
+ formFieldOptionLabel,
1209
1211
  type BookingFormProps,
1210
1212
  type BookingFieldRow,
1211
1213
  type BookingFieldSlot,
@@ -1216,6 +1218,8 @@ export {
1216
1218
  export {
1217
1219
  MeetingSchedulerDirectory,
1218
1220
  MeetingSchedulerDirectoryRowSkeleton,
1221
+ MeetingSchedulerDirectorySkeleton,
1222
+ MEETING_DIRECTORY_PAGE_SIZE,
1219
1223
  type MeetingSchedulerDirectoryProps,
1220
1224
  } from './directory';
1221
1225
  export type { MeetingAvailability, BookingConfirmation, MeetingBookingErrorCode, MeetingHost };