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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1275) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/chat-protocol/decode.d.ts +0 -1
  3. package/dist/chat-protocol/decode.d.ts.map +1 -1
  4. package/dist/chat-protocol/decode.js +1 -3
  5. package/dist/chat-protocol/index.d.ts +1 -0
  6. package/dist/chat-protocol/index.d.ts.map +1 -1
  7. package/dist/chat-protocol/index.js +2 -0
  8. package/dist/{chunk-FQSXZC2K.cjs → chunk-2JRSYWFP.cjs} +3 -3
  9. package/dist/{chunk-I5MSCD57.cjs → chunk-3LW5TD54.cjs} +7 -3
  10. package/dist/{chunk-7AM3AFM4.cjs → chunk-4YIDZCTL.cjs} +1 -3
  11. package/dist/{chunk-SVP6DJFL.cjs → chunk-57B5RUYD.cjs} +2 -2
  12. package/dist/{chunk-R3TWQ3ZJ.cjs → chunk-5P4TDV7V.cjs} +16 -7
  13. package/dist/chunk-65VVJSQZ.cjs +109 -0
  14. package/dist/{chunk-LNGR4DXA.cjs → chunk-7U3ELNGC.cjs} +103 -61
  15. package/dist/{chunk-T5FRANE6.cjs → chunk-7VI7TOGI.cjs} +509 -353
  16. package/dist/{chunk-5AV5R5RC.cjs → chunk-7XFVUUVZ.cjs} +14 -14
  17. package/dist/{chunk-M7YZGRAV.cjs → chunk-AAECWUNV.cjs} +35 -8
  18. package/dist/{chunk-YUMFVQIN.cjs → chunk-C42WIUH6.cjs} +11 -5
  19. package/dist/{chunk-22XAPV6N.cjs → chunk-DGNBXZXT.cjs} +1069 -1020
  20. package/dist/{chunk-HOTM4UM6.cjs → chunk-E76ONBKF.cjs} +28 -0
  21. package/dist/{chunk-PERN37KO.cjs → chunk-F7R3U5EN.cjs} +5 -25
  22. package/dist/{chunk-K6VWTUCH.cjs → chunk-FL2RMEDX.cjs} +2 -2
  23. package/dist/chunk-FZB4RMRK.cjs +695 -0
  24. package/dist/{chunk-BIA77I6B.cjs → chunk-GTONIRJU.cjs} +56 -54
  25. package/dist/{chunk-3FC6AKEJ.cjs → chunk-HNQRY6RU.cjs} +200 -87
  26. package/dist/chunk-INI4ADPT.cjs +495 -0
  27. package/dist/{chunk-JD7CL2I6.cjs → chunk-JGWN6GH5.cjs} +11 -7
  28. package/dist/{chunk-RYSNH2VY.cjs → chunk-JKQVKWLB.cjs} +258 -179
  29. package/dist/{chunk-EQZXJUYV.cjs → chunk-JTSUAHDL.cjs} +73 -51
  30. package/dist/chunk-K3IHNXR4.cjs +40 -0
  31. package/dist/{chunk-EFTUFJS2.cjs → chunk-LELS4XMX.cjs} +20 -22
  32. package/dist/{chunk-ZCU2PYCW.cjs → chunk-MPTMT773.cjs} +62 -62
  33. package/dist/{chunk-LVKUMVUJ.cjs → chunk-NBVZIHGS.cjs} +12 -8
  34. package/dist/{chunk-IDGOMHTC.cjs → chunk-NF3PBWDJ.cjs} +521 -413
  35. package/dist/{chunk-7GUWPGB4.cjs → chunk-NJMZ3N7Q.cjs} +44 -44
  36. package/dist/{chunk-OJJ4RL2T.cjs → chunk-R3JX4MXD.cjs} +4 -4
  37. package/dist/{chunk-GY2JESOC.cjs → chunk-RB7VLVMD.cjs} +15 -15
  38. package/dist/{chunk-47GZ33ND.cjs → chunk-REJMFXGD.cjs} +198 -73
  39. package/dist/chunk-RMUSPTJN.cjs +102 -0
  40. package/dist/{chunk-3RFQPQ7Z.cjs → chunk-RNLRS4ID.cjs} +3 -3
  41. package/dist/{chunk-ZG6F5A3A.cjs → chunk-RTBYQWAV.cjs} +286 -201
  42. package/dist/{chunk-63N4FN5V.cjs → chunk-SETFUCZA.cjs} +7 -7
  43. package/dist/{chunk-2QMBXGMQ.cjs → chunk-TF5D5MNO.cjs} +222 -120
  44. package/dist/{chunk-NET74KSQ.cjs → chunk-TZ4GKUO2.cjs} +5 -5
  45. package/dist/{chunk-JJ2S6C5U.cjs → chunk-UW7UWUZU.cjs} +105 -117
  46. package/dist/{chunk-MWLD6NXV.cjs → chunk-VFZFCRAL.cjs} +4 -6
  47. package/dist/{chunk-VL6IXTAI.cjs → chunk-VRDHAR3X.cjs} +4229 -3918
  48. package/dist/{chunk-NJS7FQRW.cjs → chunk-VYYLYZUC.cjs} +207 -74
  49. package/dist/{chunk-NO5UJLLQ.cjs → chunk-WEANWBJH.cjs} +6 -1
  50. package/dist/{chunk-XFNWHCRM.cjs → chunk-WO3XO27C.cjs} +13 -13
  51. package/dist/{chunk-L2V7K7RR.cjs → chunk-X7ECVSVN.cjs} +43 -41
  52. package/dist/chunk-XFRBEXQN.cjs +304 -0
  53. package/dist/{chunk-AKK3EO37.cjs → chunk-XIFEZ2JT.cjs} +35 -23
  54. package/dist/{chunk-XCH7SPGI.cjs → chunk-XVFM6SJA.cjs} +61 -52
  55. package/dist/{chunk-3RYIF4OW.cjs → chunk-XXJL5GY3.cjs} +3 -3
  56. package/dist/{chunk-GZKWF6NH.cjs → chunk-XZ6DKGT4.cjs} +34 -34
  57. package/dist/{chunk-74ALTXXC.cjs → chunk-YL6ZB2SR.cjs} +1624 -1440
  58. package/dist/{chunk-TSJUL6IH.cjs → chunk-YRFWOJF4.cjs} +16 -8
  59. package/dist/{chunk-HTRILBJD.cjs → chunk-YXDHVHB2.cjs} +30 -13
  60. package/dist/{chunk-RO72PRQI.cjs → chunk-ZRDMGMY7.cjs} +75 -50
  61. package/dist/{chunk-2IFCRPNP.cjs → chunk-ZV45VS6K.cjs} +369 -433
  62. package/dist/{cloud-tenants-N5CLYDPU.cjs → cloud-tenants-U2KMEIO7.cjs} +35 -39
  63. package/dist/components/agent-identity.d.ts +1 -2
  64. package/dist/components/agent-identity.d.ts.map +1 -1
  65. package/dist/components/agent-identity.js +0 -1
  66. package/dist/components/agent-mark.d.ts +4 -6
  67. package/dist/components/agent-mark.d.ts.map +1 -1
  68. package/dist/components/agent-mark.js +7 -8
  69. package/dist/components/authors/author-detail-view.d.ts.map +1 -1
  70. package/dist/components/authors/author-detail-view.js +51 -18
  71. package/dist/components/calendar.cjs +10 -10
  72. package/dist/components/case-studies/entity-quotes-panel.d.ts +6 -4
  73. package/dist/components/case-studies/entity-quotes-panel.d.ts.map +1 -1
  74. package/dist/components/case-studies/entity-quotes-panel.js +44 -11
  75. package/dist/components/case-studies/index.cjs +140 -70
  76. package/dist/components/case-studies/index.d.ts +2 -2
  77. package/dist/components/case-studies/index.d.ts.map +1 -1
  78. package/dist/components/case-studies/index.js +5 -2
  79. package/dist/components/case-studies/quote-cards-strip.d.ts +23 -2
  80. package/dist/components/case-studies/quote-cards-strip.d.ts.map +1 -1
  81. package/dist/components/case-studies/quote-cards-strip.js +48 -10
  82. package/dist/components/categories-cart.d.ts +7 -0
  83. package/dist/components/categories-cart.d.ts.map +1 -1
  84. package/dist/components/categories-cart.js +58 -36
  85. package/dist/components/category-card.js +1 -1
  86. package/dist/components/chat/chat-attachment-bar.js +1 -1
  87. package/dist/components/chat/chat-container.d.ts.map +1 -1
  88. package/dist/components/chat/chat-container.js +2 -1
  89. package/dist/components/chat/chat-ticket-list.d.ts +0 -1
  90. package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
  91. package/dist/components/chat/chat-turn.d.ts +31 -1
  92. package/dist/components/chat/chat-turn.d.ts.map +1 -1
  93. package/dist/components/chat/chat-turn.js +85 -19
  94. package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
  95. package/dist/components/chat/embeddable-chat.js +1 -1
  96. package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts +0 -15
  97. package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts.map +1 -1
  98. package/dist/components/chat/entity-cards/admin-content-card-grid.js +2 -38
  99. package/dist/components/chat/entity-cards/admin-content-card.d.ts +15 -0
  100. package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -1
  101. package/dist/components/chat/entity-cards/admin-content-card.js +52 -10
  102. package/dist/components/chat/entity-cards/blog-card.d.ts +9 -2
  103. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
  104. package/dist/components/chat/entity-cards/blog-card.js +49 -33
  105. package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -1
  106. package/dist/components/chat/entity-cards/campaign-card-admin.js +4 -11
  107. package/dist/components/chat/entity-cards/case-study-card.d.ts +27 -9
  108. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
  109. package/dist/components/chat/entity-cards/case-study-card.js +80 -54
  110. package/dist/components/chat/entity-cards/chat-ticket-item.d.ts +7 -0
  111. package/dist/components/chat/entity-cards/chat-ticket-item.d.ts.map +1 -1
  112. package/dist/components/chat/entity-cards/chat-ticket-item.js +24 -28
  113. package/dist/components/chat/entity-cards/customer-interview-card.d.ts +9 -2
  114. package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -1
  115. package/dist/components/chat/entity-cards/customer-interview-card.js +39 -36
  116. package/dist/components/chat/entity-cards/data-room-doc-card.d.ts.map +1 -1
  117. package/dist/components/chat/entity-cards/data-room-doc-card.js +14 -16
  118. package/dist/components/chat/entity-cards/design-doc-card.d.ts +8 -2
  119. package/dist/components/chat/entity-cards/design-doc-card.d.ts.map +1 -1
  120. package/dist/components/chat/entity-cards/design-doc-card.js +37 -43
  121. package/dist/components/chat/entity-cards/dispatch.d.ts +2 -5
  122. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
  123. package/dist/components/chat/entity-cards/dispatch.js +6 -6
  124. package/dist/components/chat/entity-cards/employee-entry-card.d.ts.map +1 -1
  125. package/dist/components/chat/entity-cards/employee-entry-card.js +5 -5
  126. package/dist/components/chat/entity-cards/entity-author-card.d.ts +33 -6
  127. package/dist/components/chat/entity-cards/entity-author-card.d.ts.map +1 -1
  128. package/dist/components/chat/entity-cards/entity-author-card.js +98 -32
  129. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts +9 -0
  130. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts.map +1 -1
  131. package/dist/components/chat/entity-cards/entity-portrait-card.js +46 -18
  132. package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -1
  133. package/dist/components/chat/entity-cards/generic-entity-card.js +14 -17
  134. package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -1
  135. package/dist/components/chat/entity-cards/github-activity-card.js +15 -20
  136. package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -1
  137. package/dist/components/chat/entity-cards/hubspot-ticket-card.js +14 -19
  138. package/dist/components/chat/entity-cards/index.d.ts +8 -7
  139. package/dist/components/chat/entity-cards/index.d.ts.map +1 -1
  140. package/dist/components/chat/entity-cards/index.js +21 -8
  141. package/dist/components/chat/entity-cards/investor-update-card.d.ts +9 -3
  142. package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -1
  143. package/dist/components/chat/entity-cards/investor-update-card.js +28 -28
  144. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +11 -2
  145. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -1
  146. package/dist/components/chat/entity-cards/onboarding-guide-card.js +66 -63
  147. package/dist/components/chat/entity-cards/program-card.d.ts +9 -2
  148. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  149. package/dist/components/chat/entity-cards/program-card.js +69 -58
  150. package/dist/components/chat/entity-cards/roadmap-card.d.ts +10 -1
  151. package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -1
  152. package/dist/components/chat/entity-cards/roadmap-card.js +148 -156
  153. package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts.map +1 -1
  154. package/dist/components/chat/entity-cards/roadmap-vote-button.js +5 -1
  155. package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -1
  156. package/dist/components/chat/entity-cards/slack-message-card.js +23 -18
  157. package/dist/components/chat/hooks/index.d.ts +7 -1
  158. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  159. package/dist/components/chat/hooks/index.js +8 -1
  160. package/dist/components/chat/hooks/use-ask-prompts.d.ts.map +1 -1
  161. package/dist/components/chat/hooks/use-ask-prompts.js +3 -1
  162. package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts +1 -1
  163. package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts.map +1 -1
  164. package/dist/components/chat/hooks/use-chat-history-hydration.d.ts +1 -1
  165. package/dist/components/chat/hooks/use-chat-history-hydration.d.ts.map +1 -1
  166. package/dist/components/chat/hooks/use-chat.d.ts +1 -2
  167. package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
  168. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +0 -2
  169. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
  170. package/dist/components/chat/hooks/use-nats-chat-adapter.js +0 -8
  171. package/dist/components/chat/hooks/use-proxied-image-url.d.ts +17 -13
  172. package/dist/components/chat/hooks/use-proxied-image-url.d.ts.map +1 -1
  173. package/dist/components/chat/hooks/use-proxied-image-url.js +10 -8
  174. package/dist/components/chat/hooks/use-slash-commands.d.ts +1 -2
  175. package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -1
  176. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +1 -8
  177. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
  178. package/dist/components/chat/hooks/use-sse-chat-adapter.js +1 -1
  179. package/dist/components/chat/index.cjs +44 -29
  180. package/dist/components/chat/stream/chat-stream-reducer.d.ts +1 -1
  181. package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -1
  182. package/dist/components/chat/stream/chat-stream-reducer.js +1 -1
  183. package/dist/components/chat/types/entities/index.d.ts +6 -4
  184. package/dist/components/chat/types/entities/index.d.ts.map +1 -1
  185. package/dist/components/chat/types/entities/index.js +4 -4
  186. package/dist/components/chat/types/entities/investor-update.d.ts +1 -1
  187. package/dist/components/chat/types/entities/investor-update.d.ts.map +1 -1
  188. package/dist/components/chat/types/entities/program-types.d.ts +2 -1
  189. package/dist/components/chat/types/entities/program-types.d.ts.map +1 -1
  190. package/dist/components/chat/types/entities/program-types.js +1 -4
  191. package/dist/components/chat/utils/compact-card-classes.d.ts +9 -1
  192. package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
  193. package/dist/components/chat/utils/compact-card-classes.js +11 -2
  194. package/dist/components/chat/utils/compact-card-skeleton.d.ts +40 -0
  195. package/dist/components/chat/utils/compact-card-skeleton.d.ts.map +1 -0
  196. package/dist/components/chat/utils/compact-card-skeleton.js +61 -0
  197. package/dist/components/chat/utils/icon-library.d.ts +0 -1
  198. package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
  199. package/dist/components/chat/utils/index.d.ts +5 -3
  200. package/dist/components/chat/utils/index.d.ts.map +1 -1
  201. package/dist/components/chat/utils/index.js +3 -2
  202. package/dist/components/chat/utils/scroll-anchor.d.ts +1 -2
  203. package/dist/components/chat/utils/scroll-anchor.d.ts.map +1 -1
  204. package/dist/components/chat/utils/scroll-anchor.js +0 -1
  205. package/dist/components/chat/utils/source-row-cta.d.ts +0 -2
  206. package/dist/components/chat/utils/source-row-cta.d.ts.map +1 -1
  207. package/dist/components/chat/utils/source-row-cta.js +1 -2
  208. package/dist/components/comment-card.d.ts +15 -0
  209. package/dist/components/comment-card.d.ts.map +1 -1
  210. package/dist/components/comment-card.js +178 -119
  211. package/dist/components/comment-thread.d.ts +29 -0
  212. package/dist/components/comment-thread.d.ts.map +1 -1
  213. package/dist/components/comment-thread.js +76 -18
  214. package/dist/components/contact/index.cjs +36 -40
  215. package/dist/components/content-loading-container.d.ts +1 -1
  216. package/dist/components/docs/doc-viewer.d.ts.map +1 -1
  217. package/dist/components/docs/doc-viewer.js +10 -9
  218. package/dist/components/docs/index.cjs +39 -43
  219. package/dist/components/docs/skeletons.d.ts +0 -5
  220. package/dist/components/docs/skeletons.d.ts.map +1 -1
  221. package/dist/components/docs/skeletons.js +30 -50
  222. package/dist/components/docs/use-document-tree.d.ts +0 -1
  223. package/dist/components/docs/use-document-tree.d.ts.map +1 -1
  224. package/dist/components/docs/use-document-tree.js +6 -1
  225. package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
  226. package/dist/components/embeds/embed-iframe.js +3 -0
  227. package/dist/components/embeds/index.cjs +38 -40
  228. package/dist/components/embeds/index.d.ts +1 -1
  229. package/dist/components/embeds/index.d.ts.map +1 -1
  230. package/dist/components/embeds/index.js +2 -1
  231. package/dist/components/embeds/markdown-image.d.ts.map +1 -1
  232. package/dist/components/embeds/markdown-image.js +5 -2
  233. package/dist/components/embeds/og-link-preview.d.ts +7 -3
  234. package/dist/components/embeds/og-link-preview.d.ts.map +1 -1
  235. package/dist/components/embeds/og-link-preview.js +106 -62
  236. package/dist/components/faq/faq-document-page.d.ts +5 -1
  237. package/dist/components/faq/faq-document-page.d.ts.map +1 -1
  238. package/dist/components/faq/faq-document-page.js +5 -1
  239. package/dist/components/faq/faq-section.d.ts +34 -1
  240. package/dist/components/faq/faq-section.d.ts.map +1 -1
  241. package/dist/components/faq/faq-section.js +146 -59
  242. package/dist/components/faq/index.cjs +41 -41
  243. package/dist/components/faq/index.d.ts +1 -1
  244. package/dist/components/faq/index.d.ts.map +1 -1
  245. package/dist/components/faq/index.js +9 -1
  246. package/dist/components/faq-accordion.d.ts +15 -0
  247. package/dist/components/faq-accordion.d.ts.map +1 -1
  248. package/dist/components/faq-accordion.js +37 -9
  249. package/dist/components/features/ai-enrich/AIStatusIndicator.d.ts.map +1 -1
  250. package/dist/components/features/ai-enrich/AIStatusIndicator.js +2 -1
  251. package/dist/components/features/approval-level.d.ts +15 -1
  252. package/dist/components/features/approval-level.d.ts.map +1 -1
  253. package/dist/components/features/approval-level.js +42 -6
  254. package/dist/components/features/capability-explorer.d.ts +5 -1
  255. package/dist/components/features/capability-explorer.d.ts.map +1 -1
  256. package/dist/components/features/capability-explorer.js +42 -37
  257. package/dist/components/features/cards-strip.d.ts +9 -0
  258. package/dist/components/features/cards-strip.d.ts.map +1 -1
  259. package/dist/components/features/cards-strip.js +35 -11
  260. package/dist/components/features/command-box.d.ts +19 -0
  261. package/dist/components/features/command-box.d.ts.map +1 -1
  262. package/dist/components/features/command-box.js +103 -11
  263. package/dist/components/features/conversation-card.d.ts +70 -5
  264. package/dist/components/features/conversation-card.d.ts.map +1 -1
  265. package/dist/components/features/conversation-card.js +146 -13
  266. package/dist/components/features/devices/device-selector/device-selector.d.ts.map +1 -1
  267. package/dist/components/features/devices/device-selector/device-selector.js +1 -0
  268. package/dist/components/features/devices/devices-panel-view.d.ts +1 -1
  269. package/dist/components/features/devices/devices-panel-view.js +1 -1
  270. package/dist/components/features/entity-tag-badges.d.ts +32 -7
  271. package/dist/components/features/entity-tag-badges.d.ts.map +1 -1
  272. package/dist/components/features/entity-tag-badges.js +73 -9
  273. package/dist/components/features/entity-video-section.d.ts +14 -14
  274. package/dist/components/features/entity-video-section.d.ts.map +1 -1
  275. package/dist/components/features/entity-video-section.js +29 -22
  276. package/dist/components/features/figma-prototype-viewer.d.ts.map +1 -1
  277. package/dist/components/features/figma-prototype-viewer.js +3 -10
  278. package/dist/components/features/index.cjs +77 -39
  279. package/dist/components/features/index.d.ts +3 -0
  280. package/dist/components/features/index.d.ts.map +1 -1
  281. package/dist/components/features/index.js +5 -0
  282. package/dist/components/features/knowledge-base/index.d.ts +2 -1
  283. package/dist/components/features/knowledge-base/index.d.ts.map +1 -1
  284. package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts +0 -1
  285. package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts.map +1 -1
  286. package/dist/components/features/model-token-rates.d.ts.map +1 -1
  287. package/dist/components/features/model-token-rates.js +50 -78
  288. package/dist/components/features/notifications/approval-request-notification-tile.d.ts.map +1 -1
  289. package/dist/components/features/notifications/approval-request-notification-tile.js +9 -5
  290. package/dist/components/features/notifications/notification-tile.d.ts +22 -7
  291. package/dist/components/features/notifications/notification-tile.d.ts.map +1 -1
  292. package/dist/components/features/notifications/notification-tile.js +42 -15
  293. package/dist/components/features/paths-display.d.ts +9 -0
  294. package/dist/components/features/paths-display.d.ts.map +1 -1
  295. package/dist/components/features/paths-display.js +50 -5
  296. package/dist/components/features/platform-badge.d.ts +2 -0
  297. package/dist/components/features/platform-badge.d.ts.map +1 -1
  298. package/dist/components/features/platform-badge.js +33 -2
  299. package/dist/components/features/push-button-selector.d.ts +23 -1
  300. package/dist/components/features/push-button-selector.d.ts.map +1 -1
  301. package/dist/components/features/push-button-selector.js +114 -41
  302. package/dist/components/features/remote-session/index.d.ts +2 -2
  303. package/dist/components/features/remote-session/index.d.ts.map +1 -1
  304. package/dist/components/features/remote-session/index.js +3 -3
  305. package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts +2 -0
  306. package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts.map +1 -1
  307. package/dist/components/features/remote-session/remote-desktop-chat-message-row.js +18 -4
  308. package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts.map +1 -1
  309. package/dist/components/features/remote-session/remote-desktop-chat-panel.js +11 -2
  310. package/dist/components/features/remote-session/remote-desktop-view.d.ts +6 -6
  311. package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -1
  312. package/dist/components/features/remote-session/remote-desktop-view.js +27 -27
  313. package/dist/components/features/remote-session/remote-session-chat-panel.js +1 -1
  314. package/dist/components/features/status-filter-component.d.ts +19 -1
  315. package/dist/components/features/status-filter-component.d.ts.map +1 -1
  316. package/dist/components/features/status-filter-component.js +106 -43
  317. package/dist/components/features/use-video-warmup.d.ts +1 -1
  318. package/dist/components/features/use-video-warmup.d.ts.map +1 -1
  319. package/dist/components/features/use-video-warmup.js +2 -5
  320. package/dist/components/features/use-walkthrough-video.d.ts.map +1 -1
  321. package/dist/components/features/use-walkthrough-video.js +4 -1
  322. package/dist/components/features/video-bites-strip.d.ts +42 -1
  323. package/dist/components/features/video-bites-strip.d.ts.map +1 -1
  324. package/dist/components/features/video-bites-strip.js +100 -21
  325. package/dist/components/features/video-hover-preview.d.ts +1 -1
  326. package/dist/components/features/video-hover-preview.d.ts.map +1 -1
  327. package/dist/components/features/video.d.ts +9 -2
  328. package/dist/components/features/video.d.ts.map +1 -1
  329. package/dist/components/features/video.js +10 -5
  330. package/dist/components/features/walkthrough-video.d.ts.map +1 -1
  331. package/dist/components/features/walkthrough-video.js +5 -1
  332. package/dist/components/help-center-pages/download-apps-page.d.ts.map +1 -1
  333. package/dist/components/help-center-pages/download-apps-page.js +65 -33
  334. package/dist/components/help-center-pages/index.cjs +410 -316
  335. package/dist/components/help-center-pages/trust-center-page.d.ts +21 -9
  336. package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
  337. package/dist/components/help-center-pages/trust-center-page.js +100 -67
  338. package/dist/components/help-center-pages/trust-center-sections.d.ts +19 -14
  339. package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
  340. package/dist/components/help-center-pages/trust-center-sections.js +124 -97
  341. package/dist/components/icon-display.d.ts.map +1 -1
  342. package/dist/components/icon-display.js +6 -0
  343. package/dist/components/index.cjs +1505 -380
  344. package/dist/components/index.d.ts +5 -2
  345. package/dist/components/index.d.ts.map +1 -1
  346. package/dist/components/index.js +12 -2
  347. package/dist/components/interactive-wrapper.d.ts.map +1 -1
  348. package/dist/components/interactive-wrapper.js +2 -1
  349. package/dist/components/layout/list-page-layout.d.ts +3 -3
  350. package/dist/components/layout/list-page-layout.d.ts.map +1 -1
  351. package/dist/components/layout/page-container.d.ts +8 -1
  352. package/dist/components/layout/page-container.d.ts.map +1 -1
  353. package/dist/components/layout/page-container.js +25 -10
  354. package/dist/components/layout/page-data-sync.d.ts +7 -1
  355. package/dist/components/layout/page-data-sync.d.ts.map +1 -1
  356. package/dist/components/layout/page-data-sync.js +13 -4
  357. package/dist/components/layout/page-heading.d.ts +31 -0
  358. package/dist/components/layout/page-heading.d.ts.map +1 -1
  359. package/dist/components/layout/page-heading.js +44 -1
  360. package/dist/components/layout/page-layout.d.ts +4 -4
  361. package/dist/components/layout/page-layout.d.ts.map +1 -1
  362. package/dist/components/layout/page-layout.js +4 -5
  363. package/dist/components/layout/title-block.d.ts +12 -1
  364. package/dist/components/layout/title-block.d.ts.map +1 -1
  365. package/dist/components/layout/title-block.js +50 -12
  366. package/dist/components/loading/category-vendor-selector-skeleton.d.ts +3 -0
  367. package/dist/components/loading/category-vendor-selector-skeleton.d.ts.map +1 -1
  368. package/dist/components/loading/deprecated-layout-skeletons.d.ts +25 -0
  369. package/dist/components/loading/deprecated-layout-skeletons.d.ts.map +1 -0
  370. package/dist/components/loading/deprecated-layout-skeletons.js +78 -0
  371. package/dist/components/loading/device-card-skeleton.js +4 -4
  372. package/dist/components/loading/index.d.ts +4 -3
  373. package/dist/components/loading/index.d.ts.map +1 -1
  374. package/dist/components/loading/index.js +10 -16
  375. package/dist/components/loading/loading-region.d.ts +10 -9
  376. package/dist/components/loading/loading-region.d.ts.map +1 -1
  377. package/dist/components/loading/loading-region.js +4 -1
  378. package/dist/components/loading/msp-profile-form-skeleton.d.ts +2 -0
  379. package/dist/components/loading/msp-profile-form-skeleton.d.ts.map +1 -1
  380. package/dist/components/loading/organization-card-skeleton.d.ts +14 -10
  381. package/dist/components/loading/organization-card-skeleton.d.ts.map +1 -1
  382. package/dist/components/loading/organization-card-skeleton.js +38 -40
  383. package/dist/components/loading/page-layout-skeleton.d.ts +7 -51
  384. package/dist/components/loading/page-layout-skeleton.d.ts.map +1 -1
  385. package/dist/components/loading/page-layout-skeleton.js +2 -411
  386. package/dist/components/loading/settings-form-skeleton.d.ts +2 -0
  387. package/dist/components/loading/settings-form-skeleton.d.ts.map +1 -1
  388. package/dist/components/loading/unified-skeleton.d.ts +57 -9
  389. package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
  390. package/dist/components/loading/unified-skeleton.js +57 -8
  391. package/dist/components/log-severity-dot.d.ts +2 -0
  392. package/dist/components/log-severity-dot.d.ts.map +1 -1
  393. package/dist/components/log-severity-dot.js +11 -13
  394. package/dist/components/logs-list.d.ts.map +1 -1
  395. package/dist/components/logs-list.js +34 -43
  396. package/dist/components/media-carousel.d.ts +0 -1
  397. package/dist/components/media-carousel.d.ts.map +1 -1
  398. package/dist/components/meeting-scheduler/booking-form.d.ts +52 -8
  399. package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
  400. package/dist/components/meeting-scheduler/booking-form.js +150 -30
  401. package/dist/components/meeting-scheduler/context-panel.d.ts +18 -2
  402. package/dist/components/meeting-scheduler/context-panel.d.ts.map +1 -1
  403. package/dist/components/meeting-scheduler/context-panel.js +61 -23
  404. package/dist/components/meeting-scheduler/directory.d.ts +11 -1
  405. package/dist/components/meeting-scheduler/directory.d.ts.map +1 -1
  406. package/dist/components/meeting-scheduler/directory.js +47 -27
  407. package/dist/components/meeting-scheduler/index.cjs +556 -344
  408. package/dist/components/meeting-scheduler/index.d.ts +5 -4
  409. package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
  410. package/dist/components/meeting-scheduler/index.js +127 -102
  411. package/dist/components/meeting-scheduler/modal-header.d.ts +7 -3
  412. package/dist/components/meeting-scheduler/modal-header.d.ts.map +1 -1
  413. package/dist/components/meeting-scheduler/modal-header.js +29 -18
  414. package/dist/components/meeting-scheduler/slot-picker.d.ts +11 -4
  415. package/dist/components/meeting-scheduler/slot-picker.d.ts.map +1 -1
  416. package/dist/components/meeting-scheduler/slot-picker.js +12 -7
  417. package/dist/components/metric-value.d.ts +5 -0
  418. package/dist/components/metric-value.d.ts.map +1 -1
  419. package/dist/components/metric-value.js +15 -3
  420. package/dist/components/msp-display.d.ts +5 -0
  421. package/dist/components/msp-display.d.ts.map +1 -1
  422. package/dist/components/msp-display.js +19 -14
  423. package/dist/components/navigation/app-layout.d.ts +0 -2
  424. package/dist/components/navigation/app-layout.d.ts.map +1 -1
  425. package/dist/components/navigation/app-layout.js +1 -4
  426. package/dist/components/navigation/index.cjs +48 -42
  427. package/dist/components/navigation/index.d.ts +8 -3
  428. package/dist/components/navigation/index.d.ts.map +1 -1
  429. package/dist/components/navigation/index.js +18 -3
  430. package/dist/components/navigation/mingo-ai-button.d.ts +0 -2
  431. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  432. package/dist/components/navigation/mingo-ai-button.js +2 -4
  433. package/dist/components/navigation/mobile-nav-sheet.d.ts +0 -1
  434. package/dist/components/navigation/mobile-nav-sheet.d.ts.map +1 -1
  435. package/dist/components/navigation/mobile-nav-sheet.js +0 -2
  436. package/dist/components/navigation/multi-level-navigation.d.ts +21 -0
  437. package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -1
  438. package/dist/components/navigation/multi-level-navigation.js +98 -24
  439. package/dist/components/navigation/page-section-bar.d.ts +50 -0
  440. package/dist/components/navigation/page-section-bar.d.ts.map +1 -0
  441. package/dist/components/navigation/page-section-bar.js +85 -0
  442. package/dist/components/navigation/sticky-section-nav.d.ts +12 -0
  443. package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
  444. package/dist/components/navigation/sticky-section-nav.js +87 -20
  445. package/dist/components/navigation/ticket-alerts-button.js +1 -1
  446. package/dist/components/onboarding-guides/hooks/use-onboarding-guides.d.ts.map +1 -1
  447. package/dist/components/onboarding-guides/hooks/use-onboarding-guides.js +7 -1
  448. package/dist/components/onboarding-guides/index.cjs +38 -42
  449. package/dist/components/onboarding-guides/index.d.ts +1 -2
  450. package/dist/components/onboarding-guides/index.d.ts.map +1 -1
  451. package/dist/components/onboarding-guides/index.js +5 -3
  452. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +8 -0
  453. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
  454. package/dist/components/onboarding-guides/onboarding-guide-detail-view.js +142 -84
  455. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +18 -17
  456. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +1 -1
  457. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.js +28 -21
  458. package/dist/components/onboarding-guides/onboarding-guides-catalog-view.d.ts.map +1 -1
  459. package/dist/components/onboarding-guides/onboarding-guides-catalog-view.js +57 -18
  460. package/dist/components/pagination.d.ts +26 -2
  461. package/dist/components/pagination.d.ts.map +1 -1
  462. package/dist/components/pagination.js +61 -38
  463. package/dist/components/persistent-filter-controls.d.ts.map +1 -1
  464. package/dist/components/persistent-filter-controls.js +1 -2
  465. package/dist/components/persistent-pagination.d.ts.map +1 -1
  466. package/dist/components/persistent-pagination.js +3 -1
  467. package/dist/components/platform/ToolBadge.d.ts +13 -1
  468. package/dist/components/platform/ToolBadge.d.ts.map +1 -1
  469. package/dist/components/platform/ToolBadge.js +38 -9
  470. package/dist/components/platform/index.d.ts +2 -2
  471. package/dist/components/platform/index.d.ts.map +1 -1
  472. package/dist/components/platform/index.js +4 -2
  473. package/dist/components/platform/tool-badge-mark.d.ts +6 -0
  474. package/dist/components/platform/tool-badge-mark.d.ts.map +1 -0
  475. package/dist/components/platform/tool-badge-mark.js +6 -0
  476. package/dist/components/product-demo/fixtures/devices.d.ts +0 -2
  477. package/dist/components/product-demo/fixtures/devices.d.ts.map +1 -1
  478. package/dist/components/product-demo/fixtures/devices.js +0 -2
  479. package/dist/components/product-demo/index.cjs +1889 -32
  480. package/dist/components/product-demo/product-screen.d.ts +5 -5
  481. package/dist/components/product-demo/product-screen.d.ts.map +1 -1
  482. package/dist/components/product-demo/product-screen.js +19 -15
  483. package/dist/components/product-demo/screen-loading.d.ts +10 -0
  484. package/dist/components/product-demo/screen-loading.d.ts.map +1 -0
  485. package/dist/components/product-demo/screen-loading.js +12 -0
  486. package/dist/components/product-demo/screens/devices-view.d.ts +22 -0
  487. package/dist/components/product-demo/screens/devices-view.d.ts.map +1 -0
  488. package/dist/components/product-demo/screens/devices-view.js +35 -0
  489. package/dist/components/product-demo/screens/devices.d.ts +1 -7
  490. package/dist/components/product-demo/screens/devices.d.ts.map +1 -1
  491. package/dist/components/product-demo/screens/devices.js +8 -15
  492. package/dist/components/related-content/card-registry.d.ts +3 -2
  493. package/dist/components/related-content/card-registry.d.ts.map +1 -1
  494. package/dist/components/related-content/card-registry.js +15 -3
  495. package/dist/components/related-content/index.cjs +19 -18
  496. package/dist/components/related-content/index.d.ts +2 -1
  497. package/dist/components/related-content/index.d.ts.map +1 -1
  498. package/dist/components/related-content/index.js +3 -1
  499. package/dist/components/related-content/related-content-section.d.ts +14 -1
  500. package/dist/components/related-content/related-content-section.d.ts.map +1 -1
  501. package/dist/components/related-content/related-content-section.js +144 -32
  502. package/dist/components/results-count.d.ts +5 -0
  503. package/dist/components/results-count.d.ts.map +1 -1
  504. package/dist/components/results-count.js +30 -6
  505. package/dist/components/shared/article-author-byline.d.ts +8 -0
  506. package/dist/components/shared/article-author-byline.d.ts.map +1 -1
  507. package/dist/components/shared/article-author-byline.js +54 -52
  508. package/dist/components/shared/delivery/delivery-lists.d.ts.map +1 -1
  509. package/dist/components/shared/delivery/delivery-lists.js +14 -2
  510. package/dist/components/shared/delivery/delivery-row.d.ts +5 -0
  511. package/dist/components/shared/delivery/delivery-row.d.ts.map +1 -1
  512. package/dist/components/shared/delivery/delivery-row.js +37 -10
  513. package/dist/components/shared/delivery/delivery-table.d.ts +4 -0
  514. package/dist/components/shared/delivery/delivery-table.d.ts.map +1 -1
  515. package/dist/components/shared/delivery/delivery-table.js +14 -26
  516. package/dist/components/shared/detail-page-skeleton.d.ts +3 -0
  517. package/dist/components/shared/detail-page-skeleton.d.ts.map +1 -1
  518. package/dist/components/shared/detail-page-skeleton.js +9 -1
  519. package/dist/components/shared/dev-section/dev-card-row.d.ts +2 -0
  520. package/dist/components/shared/dev-section/dev-card-row.d.ts.map +1 -1
  521. package/dist/components/shared/dev-section/dev-card-row.js +31 -21
  522. package/dist/components/shared/dev-section/dev-section-view.js +1 -1
  523. package/dist/components/shared/legal-document/index.d.ts +1 -1
  524. package/dist/components/shared/legal-document/index.d.ts.map +1 -1
  525. package/dist/components/shared/legal-document/index.js +5 -1
  526. package/dist/components/shared/legal-document/legal-document-page.d.ts +14 -0
  527. package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
  528. package/dist/components/shared/legal-document/legal-document-page.js +47 -42
  529. package/dist/components/shared/legal-document/use-legal-docs.d.ts.map +1 -1
  530. package/dist/components/shared/legal-document/use-legal-docs.js +4 -1
  531. package/dist/components/shared/legal-document/use-legal-documents.d.ts.map +1 -1
  532. package/dist/components/shared/legal-document/use-legal-documents.js +3 -1
  533. package/dist/components/shared/media-gallery-strip.d.ts +7 -0
  534. package/dist/components/shared/media-gallery-strip.d.ts.map +1 -1
  535. package/dist/components/shared/media-gallery-strip.js +22 -3
  536. package/dist/components/shared/onboarding/index.d.ts +2 -1
  537. package/dist/components/shared/onboarding/index.d.ts.map +1 -1
  538. package/dist/components/shared/onboarding/index.js +1 -3
  539. package/dist/components/shared/product-release/index.d.ts +2 -1
  540. package/dist/components/shared/product-release/index.d.ts.map +1 -1
  541. package/dist/components/shared/product-release/product-release-card-classes.d.ts +26 -0
  542. package/dist/components/shared/product-release/product-release-card-classes.d.ts.map +1 -0
  543. package/dist/components/shared/product-release/product-release-card-classes.js +40 -0
  544. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
  545. package/dist/components/shared/product-release/product-release-card-skeleton.js +37 -35
  546. package/dist/components/shared/product-release/product-release-card.d.ts +3 -1
  547. package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
  548. package/dist/components/shared/product-release/product-release-card.js +86 -73
  549. package/dist/components/shared/product-release/product-releases-view.d.ts.map +1 -1
  550. package/dist/components/shared/product-release/product-releases-view.js +26 -13
  551. package/dist/components/shared/product-release/release-detail-page.d.ts +0 -1
  552. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  553. package/dist/components/shared/product-release/release-detail-page.js +281 -215
  554. package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +9 -1
  555. package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -1
  556. package/dist/components/shared/roadmap/roadmap-grid-skeleton.js +12 -11
  557. package/dist/components/shared/roadmap/roadmap-grid.d.ts +13 -1
  558. package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -1
  559. package/dist/components/shared/roadmap/roadmap-grid.js +45 -29
  560. package/dist/components/shared/roadmap/roadmap-view.d.ts.map +1 -1
  561. package/dist/components/shared/roadmap/roadmap-view.js +2 -3
  562. package/dist/components/social-icon-row.d.ts +9 -2
  563. package/dist/components/social-icon-row.d.ts.map +1 -1
  564. package/dist/components/social-icon-row.js +12 -6
  565. package/dist/components/tickets/help-center-list.d.ts.map +1 -1
  566. package/dist/components/tickets/help-center-list.js +6 -2
  567. package/dist/components/tickets/hooks/use-ticket-actions.d.ts +2 -2
  568. package/dist/components/tickets/hooks/use-ticket-actions.d.ts.map +1 -1
  569. package/dist/components/tickets/index.cjs +42 -46
  570. package/dist/components/tickets/index.d.ts +2 -1
  571. package/dist/components/tickets/index.d.ts.map +1 -1
  572. package/dist/components/tickets/index.js +2 -3
  573. package/dist/components/tickets/ticket-center.d.ts.map +1 -1
  574. package/dist/components/tickets/ticket-center.js +117 -58
  575. package/dist/components/tickets/types.d.ts +0 -8
  576. package/dist/components/tickets/types.d.ts.map +1 -1
  577. package/dist/components/tickets/types.js +0 -3
  578. package/dist/components/toggle-group.d.ts +4 -2
  579. package/dist/components/toggle-group.d.ts.map +1 -1
  580. package/dist/components/toggle-group.js +3 -1
  581. package/dist/components/tool-icon.d.ts.map +1 -1
  582. package/dist/components/ui/analyzing-state.d.ts +3 -2
  583. package/dist/components/ui/analyzing-state.d.ts.map +1 -1
  584. package/dist/components/ui/analyzing-state.js +7 -4
  585. package/dist/components/ui/announcement-bar-view.d.ts +5 -0
  586. package/dist/components/ui/announcement-bar-view.d.ts.map +1 -1
  587. package/dist/components/ui/announcement-bar-view.js +3 -1
  588. package/dist/components/ui/autocomplete.d.ts +13 -0
  589. package/dist/components/ui/autocomplete.d.ts.map +1 -1
  590. package/dist/components/ui/autocomplete.js +30 -6
  591. package/dist/components/ui/avatar-stack.d.ts +7 -0
  592. package/dist/components/ui/avatar-stack.d.ts.map +1 -1
  593. package/dist/components/ui/avatar-stack.js +29 -4
  594. package/dist/components/ui/badge.d.ts +9 -1
  595. package/dist/components/ui/badge.d.ts.map +1 -1
  596. package/dist/components/ui/badge.js +11 -0
  597. package/dist/components/ui/benefit-list.d.ts +8 -0
  598. package/dist/components/ui/benefit-list.d.ts.map +1 -1
  599. package/dist/components/ui/benefit-list.js +20 -11
  600. package/dist/components/ui/button/button-styles.d.ts +16 -0
  601. package/dist/components/ui/button/button-styles.d.ts.map +1 -1
  602. package/dist/components/ui/button/button-styles.js +42 -0
  603. package/dist/components/ui/button/button.d.ts +3 -1
  604. package/dist/components/ui/button/button.d.ts.map +1 -1
  605. package/dist/components/ui/button/button.js +4 -40
  606. package/dist/components/ui/button/index.d.ts +1 -0
  607. package/dist/components/ui/button/index.d.ts.map +1 -1
  608. package/dist/components/ui/button/index.js +4 -0
  609. package/dist/components/ui/card.d.ts +13 -1
  610. package/dist/components/ui/card.d.ts.map +1 -1
  611. package/dist/components/ui/card.js +21 -14
  612. package/dist/components/ui/checkbox.d.ts +2 -0
  613. package/dist/components/ui/checkbox.d.ts.map +1 -1
  614. package/dist/components/ui/checkbox.js +5 -1
  615. package/dist/components/ui/compliance-badge.d.ts +2 -0
  616. package/dist/components/ui/compliance-badge.d.ts.map +1 -1
  617. package/dist/components/ui/compliance-badge.js +5 -2
  618. package/dist/components/ui/cursor-pagination.d.ts +8 -1
  619. package/dist/components/ui/cursor-pagination.d.ts.map +1 -1
  620. package/dist/components/ui/cursor-pagination.js +10 -4
  621. package/dist/components/ui/dashboard-info-card.d.ts +6 -1
  622. package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
  623. package/dist/components/ui/dashboard-info-card.js +19 -10
  624. package/dist/components/ui/data-attribution.d.ts +10 -5
  625. package/dist/components/ui/data-attribution.d.ts.map +1 -1
  626. package/dist/components/ui/data-attribution.js +27 -9
  627. package/dist/components/ui/data-table/data-table-body.d.ts +1 -1
  628. package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
  629. package/dist/components/ui/data-table/data-table-body.js +18 -7
  630. package/dist/components/ui/data-table/data-table-row-count.d.ts +5 -0
  631. package/dist/components/ui/data-table/data-table-row-count.d.ts.map +1 -1
  632. package/dist/components/ui/data-table/data-table-row-count.js +18 -3
  633. package/dist/components/ui/data-table/data-table-row.d.ts.map +1 -1
  634. package/dist/components/ui/data-table/data-table-row.js +2 -6
  635. package/dist/components/ui/data-table/data-table-skeleton.js +5 -5
  636. package/dist/components/ui/data-table/index.d.ts +2 -2
  637. package/dist/components/ui/data-table/index.d.ts.map +1 -1
  638. package/dist/components/ui/data-table/index.js +2 -1
  639. package/dist/components/ui/date-picker.d.ts +0 -1
  640. package/dist/components/ui/date-picker.d.ts.map +1 -1
  641. package/dist/components/ui/entity-image.d.ts +4 -0
  642. package/dist/components/ui/entity-image.d.ts.map +1 -1
  643. package/dist/components/ui/entity-image.js +27 -5
  644. package/dist/components/ui/error-state.d.ts.map +1 -1
  645. package/dist/components/ui/error-state.js +4 -1
  646. package/dist/components/ui/feature-card.d.ts +31 -1
  647. package/dist/components/ui/feature-card.d.ts.map +1 -1
  648. package/dist/components/ui/feature-card.js +40 -11
  649. package/dist/components/ui/feature-list.d.ts +15 -1
  650. package/dist/components/ui/feature-list.d.ts.map +1 -1
  651. package/dist/components/ui/feature-list.js +43 -8
  652. package/dist/components/ui/field-wrapper.d.ts +6 -0
  653. package/dist/components/ui/field-wrapper.d.ts.map +1 -1
  654. package/dist/components/ui/field-wrapper.js +16 -5
  655. package/dist/components/ui/file-manager/index.cjs +63 -64
  656. package/dist/components/ui/filter-checkbox-item.d.ts +9 -0
  657. package/dist/components/ui/filter-checkbox-item.d.ts.map +1 -1
  658. package/dist/components/ui/filter-checkbox-item.js +36 -6
  659. package/dist/components/ui/filter-modal.d.ts +2 -3
  660. package/dist/components/ui/filter-modal.d.ts.map +1 -1
  661. package/dist/components/ui/filter-pill-row.d.ts +10 -5
  662. package/dist/components/ui/filter-pill-row.d.ts.map +1 -1
  663. package/dist/components/ui/filter-pill-row.js +56 -19
  664. package/dist/components/ui/incident-feed.d.ts +1 -1
  665. package/dist/components/ui/incident-feed.d.ts.map +1 -1
  666. package/dist/components/ui/incident-feed.js +57 -56
  667. package/dist/components/ui/index.cjs +219 -39
  668. package/dist/components/ui/index.d.ts +10 -1
  669. package/dist/components/ui/index.d.ts.map +1 -1
  670. package/dist/components/ui/index.js +29 -1
  671. package/dist/components/ui/info-card-row.d.ts +12 -0
  672. package/dist/components/ui/info-card-row.d.ts.map +1 -1
  673. package/dist/components/ui/info-card-row.js +56 -30
  674. package/dist/components/ui/info-card.d.ts +24 -1
  675. package/dist/components/ui/info-card.d.ts.map +1 -1
  676. package/dist/components/ui/info-card.js +87 -52
  677. package/dist/components/ui/input-styles.d.ts +7 -0
  678. package/dist/components/ui/input-styles.d.ts.map +1 -0
  679. package/dist/components/ui/input-styles.js +7 -0
  680. package/dist/components/ui/input.d.ts.map +1 -1
  681. package/dist/components/ui/input.js +4 -1
  682. package/dist/components/ui/layout-hold.d.ts +9 -7
  683. package/dist/components/ui/layout-hold.d.ts.map +1 -1
  684. package/dist/components/ui/leader-row.d.ts +11 -4
  685. package/dist/components/ui/leader-row.d.ts.map +1 -1
  686. package/dist/components/ui/leader-row.js +29 -5
  687. package/dist/components/ui/loading-scope.d.ts +26 -0
  688. package/dist/components/ui/loading-scope.d.ts.map +1 -0
  689. package/dist/components/ui/loading-scope.js +31 -0
  690. package/dist/components/ui/markdown/base-components.d.ts +25 -0
  691. package/dist/components/ui/markdown/base-components.d.ts.map +1 -1
  692. package/dist/components/ui/markdown/base-components.js +13 -7
  693. package/dist/components/ui/markdown/engine.d.ts +26 -1
  694. package/dist/components/ui/markdown/engine.d.ts.map +1 -1
  695. package/dist/components/ui/markdown/engine.js +63 -4
  696. package/dist/components/ui/markdown/index.d.ts +5 -3
  697. package/dist/components/ui/markdown/index.d.ts.map +1 -1
  698. package/dist/components/ui/markdown/index.js +12 -4
  699. package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +1 -1
  700. package/dist/components/ui/markdown/mermaid-diagram.js +8 -2
  701. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +10 -0
  702. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +1 -1
  703. package/dist/components/ui/markdown/rich/rich-markdown-renderer.js +21 -5
  704. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +0 -2
  705. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +1 -1
  706. package/dist/components/ui/markdown-editor.d.ts +10 -0
  707. package/dist/components/ui/markdown-editor.d.ts.map +1 -1
  708. package/dist/components/ui/markdown-editor.js +23 -7
  709. package/dist/components/ui/numbered-step.d.ts +10 -0
  710. package/dist/components/ui/numbered-step.d.ts.map +1 -1
  711. package/dist/components/ui/numbered-step.js +19 -2
  712. package/dist/components/ui/organization-card.d.ts.map +1 -1
  713. package/dist/components/ui/organization-card.js +30 -5
  714. package/dist/components/ui/page-actions.d.ts +2 -1
  715. package/dist/components/ui/page-actions.d.ts.map +1 -1
  716. package/dist/components/ui/page-actions.js +26 -21
  717. package/dist/components/ui/page-loader.d.ts.map +1 -1
  718. package/dist/components/ui/page-loader.js +2 -1
  719. package/dist/components/ui/people-cell.d.ts +4 -0
  720. package/dist/components/ui/people-cell.d.ts.map +1 -1
  721. package/dist/components/ui/people-cell.js +19 -3
  722. package/dist/components/ui/photo-wall.d.ts +1 -1
  723. package/dist/components/ui/photo-wall.d.ts.map +1 -1
  724. package/dist/components/ui/photo-wall.js +13 -3
  725. package/dist/components/ui/product-screen-frame.d.ts.map +1 -1
  726. package/dist/components/ui/product-screen-frame.js +3 -2
  727. package/dist/components/ui/progress-bar.d.ts +9 -0
  728. package/dist/components/ui/progress-bar.d.ts.map +1 -1
  729. package/dist/components/ui/progress-bar.js +34 -14
  730. package/dist/components/ui/progress.d.ts +15 -0
  731. package/dist/components/ui/progress.d.ts.map +1 -1
  732. package/dist/components/ui/progress.js +8 -3
  733. package/dist/components/ui/release-changelog-section.d.ts +22 -1
  734. package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
  735. package/dist/components/ui/release-changelog-section.js +96 -28
  736. package/dist/components/ui/search-input.d.ts.map +1 -1
  737. package/dist/components/ui/search-input.js +11 -3
  738. package/dist/components/ui/searchable-select.d.ts.map +1 -1
  739. package/dist/components/ui/searchable-select.js +17 -4
  740. package/dist/components/ui/skeleton-surface.d.ts +12 -4
  741. package/dist/components/ui/skeleton-surface.d.ts.map +1 -1
  742. package/dist/components/ui/skeleton-surface.js +6 -2
  743. package/dist/components/ui/slack-channel-chip.d.ts +5 -1
  744. package/dist/components/ui/slack-channel-chip.d.ts.map +1 -1
  745. package/dist/components/ui/slack-channel-chip.js +16 -3
  746. package/dist/components/ui/snap-carousel.d.ts +4 -1
  747. package/dist/components/ui/snap-carousel.d.ts.map +1 -1
  748. package/dist/components/ui/snap-carousel.js +2 -0
  749. package/dist/components/ui/square-avatar.d.ts +3 -0
  750. package/dist/components/ui/square-avatar.d.ts.map +1 -1
  751. package/dist/components/ui/square-avatar.js +38 -23
  752. package/dist/components/ui/stacked-rows-panel.d.ts +24 -1
  753. package/dist/components/ui/stacked-rows-panel.d.ts.map +1 -1
  754. package/dist/components/ui/stacked-rows-panel.js +50 -13
  755. package/dist/components/ui/status-badge.d.ts +10 -2
  756. package/dist/components/ui/status-badge.d.ts.map +1 -1
  757. package/dist/components/ui/status-badge.js +14 -0
  758. package/dist/components/ui/status-indicator.d.ts +4 -0
  759. package/dist/components/ui/status-indicator.d.ts.map +1 -1
  760. package/dist/components/ui/status-indicator.js +16 -3
  761. package/dist/components/ui/status-line.d.ts.map +1 -1
  762. package/dist/components/ui/status-line.js +2 -1
  763. package/dist/components/ui/strip-card.d.ts +9 -0
  764. package/dist/components/ui/strip-card.d.ts.map +1 -1
  765. package/dist/components/ui/strip-card.js +57 -39
  766. package/dist/components/ui/tab-navigation.d.ts +26 -2
  767. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  768. package/dist/components/ui/tab-navigation.js +182 -115
  769. package/dist/components/ui/table/table-header.js +2 -2
  770. package/dist/components/ui/table/table-row.d.ts.map +1 -1
  771. package/dist/components/ui/table/table-row.js +2 -4
  772. package/dist/components/ui/table/table-skeleton.d.ts +6 -1
  773. package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
  774. package/dist/components/ui/table/table-skeleton.js +38 -50
  775. package/dist/components/ui/table/table.d.ts +1 -1
  776. package/dist/components/ui/table/table.d.ts.map +1 -1
  777. package/dist/components/ui/table/table.js +30 -25
  778. package/dist/components/ui/table/types.d.ts +14 -4
  779. package/dist/components/ui/table/types.d.ts.map +1 -1
  780. package/dist/components/ui/table/utils.d.ts +4 -0
  781. package/dist/components/ui/table/utils.d.ts.map +1 -1
  782. package/dist/components/ui/table/utils.js +4 -0
  783. package/dist/components/ui/tabs.d.ts +22 -1
  784. package/dist/components/ui/tabs.d.ts.map +1 -1
  785. package/dist/components/ui/tabs.js +33 -2
  786. package/dist/components/ui/tag.d.ts +21 -1
  787. package/dist/components/ui/tag.d.ts.map +1 -1
  788. package/dist/components/ui/tag.js +17 -12
  789. package/dist/components/ui/tags-input.d.ts +9 -0
  790. package/dist/components/ui/tags-input.d.ts.map +1 -1
  791. package/dist/components/ui/tags-input.js +41 -10
  792. package/dist/components/ui/textarea.d.ts +17 -1
  793. package/dist/components/ui/textarea.d.ts.map +1 -1
  794. package/dist/components/ui/textarea.js +22 -3
  795. package/dist/components/ui/ticket-info-section.d.ts +0 -1
  796. package/dist/components/ui/ticket-info-section.d.ts.map +1 -1
  797. package/dist/components/ui/timezone-select.d.ts +3 -1
  798. package/dist/components/ui/timezone-select.d.ts.map +1 -1
  799. package/dist/components/ui/timezone-select.js +3 -1
  800. package/dist/components/ui/toggle.d.ts +8 -2
  801. package/dist/components/ui/toggle.d.ts.map +1 -1
  802. package/dist/components/ui/toggle.js +10 -6
  803. package/dist/components/unified-pagination.d.ts +3 -1
  804. package/dist/components/unified-pagination.d.ts.map +1 -1
  805. package/dist/components/unified-pagination.js +7 -1
  806. package/dist/components/user-display.d.ts +11 -0
  807. package/dist/components/user-display.d.ts.map +1 -1
  808. package/dist/components/user-display.js +38 -14
  809. package/dist/components/user-summary-stub.d.ts.map +1 -1
  810. package/dist/components/user-summary-stub.js +7 -14
  811. package/dist/components/vendor-display-button.d.ts +4 -0
  812. package/dist/components/vendor-display-button.d.ts.map +1 -1
  813. package/dist/components/vendor-display-button.js +11 -13
  814. package/dist/components/vendor-icon.d.ts +5 -0
  815. package/dist/components/vendor-icon.d.ts.map +1 -1
  816. package/dist/components/vendor-icon.js +12 -3
  817. package/dist/components/vendor-tag.d.ts +5 -0
  818. package/dist/components/vendor-tag.d.ts.map +1 -1
  819. package/dist/components/vendor-tag.js +13 -5
  820. package/dist/{devices-557PMFDC.cjs → devices-2D3XSIIE.cjs} +43 -55
  821. package/dist/embed-shims/index.cjs +4 -2
  822. package/dist/embed-shims/next-image.cjs +4 -2
  823. package/dist/embed-shims/next-image.d.ts.map +1 -1
  824. package/dist/embed-shims/next-image.js +24 -0
  825. package/dist/{embeddable-chat-YFUCVDMV.cjs → embeddable-chat-YL6ZSTDJ.cjs} +117 -119
  826. package/dist/hooks/index.cjs +12 -12
  827. package/dist/hooks/state/flatten-schema.d.ts +0 -1
  828. package/dist/hooks/state/flatten-schema.d.ts.map +1 -1
  829. package/dist/hooks/state/flatten-schema.js +0 -2
  830. package/dist/hooks/state/index.d.ts +6 -3
  831. package/dist/hooks/state/index.d.ts.map +1 -1
  832. package/dist/hooks/state/index.js +4 -3
  833. package/dist/hooks/state/url-converter.d.ts +1 -1
  834. package/dist/hooks/state/url-converter.d.ts.map +1 -1
  835. package/dist/hooks/state/url-converter.js +1 -2
  836. package/dist/hooks/state/use-api-params.d.ts +1 -3
  837. package/dist/hooks/state/use-api-params.d.ts.map +1 -1
  838. package/dist/hooks/state/use-api-params.js +1 -5
  839. package/dist/hooks/ui/index.d.ts +1 -0
  840. package/dist/hooks/ui/index.d.ts.map +1 -1
  841. package/dist/hooks/ui/use-image-edge-color.d.ts +1 -1
  842. package/dist/hooks/ui/use-image-edge-color.d.ts.map +1 -1
  843. package/dist/hooks/ui/use-image-edge-color.js +3 -1
  844. package/dist/hooks/ui/use-onboarding-state.d.ts +0 -1
  845. package/dist/hooks/ui/use-onboarding-state.d.ts.map +1 -1
  846. package/dist/hooks/use-downloads.d.ts +1 -1
  847. package/dist/hooks/use-downloads.d.ts.map +1 -1
  848. package/dist/hooks/use-downloads.js +8 -1
  849. package/dist/hooks/use-meeting-booking.d.ts.map +1 -1
  850. package/dist/hooks/use-meeting-booking.js +3 -0
  851. package/dist/hooks/use-self-fetch.d.ts +1 -1
  852. package/dist/hooks/use-self-fetch.d.ts.map +1 -1
  853. package/dist/hooks/use-self-fetch.js +7 -4
  854. package/dist/hooks/use-toast.d.ts +1 -1
  855. package/dist/index.cjs +329 -103
  856. package/dist/{knowledge-4JTOUDAR.cjs → knowledge-AJ36PMK2.cjs} +36 -40
  857. package/dist/{logs-7YWAOPZ2.cjs → logs-DNE44ACE.cjs} +44 -48
  858. package/dist/nats/index.d.ts +1 -0
  859. package/dist/nats/index.d.ts.map +1 -1
  860. package/dist/nats/nats-provider.d.ts +0 -1
  861. package/dist/nats/nats-provider.d.ts.map +1 -1
  862. package/dist/nats/nats.d.ts +0 -1
  863. package/dist/nats/nats.d.ts.map +1 -1
  864. package/dist/nats/use-nats-subscription.d.ts +2 -1
  865. package/dist/nats/use-nats-subscription.d.ts.map +1 -1
  866. package/dist/{policies-W5JEPQTA.cjs → policies-AJHSP6ZY.cjs} +39 -43
  867. package/dist/{remote-session-F72S6I7J.cjs → remote-session-PPA5SXX7.cjs} +18 -21
  868. package/dist/schemas/meeting-booking-schema.cjs +4 -0
  869. package/dist/schemas/meeting-booking-schema.d.ts +8 -0
  870. package/dist/schemas/meeting-booking-schema.d.ts.map +1 -1
  871. package/dist/schemas/meeting-booking-schema.js +4 -0
  872. package/dist/{scripts-FY5IPOIM.cjs → scripts-4YO2QL36.cjs} +42 -46
  873. package/dist/{software-update-5BOGZOHG.cjs → software-update-KMI2EOO3.cjs} +41 -45
  874. package/dist/styles/component-sizes.d.ts +96 -0
  875. package/dist/styles/component-sizes.d.ts.map +1 -0
  876. package/dist/styles/component-sizes.js +77 -0
  877. package/dist/{tickets-board-DXMF7IKL.cjs → tickets-board-G3WBH4SV.cjs} +18 -20
  878. package/dist/types/announcement.d.ts +0 -1
  879. package/dist/types/announcement.d.ts.map +1 -1
  880. package/dist/types/blog.d.ts +0 -1
  881. package/dist/types/blog.d.ts.map +1 -1
  882. package/dist/types/case-study.d.ts +2 -2
  883. package/dist/types/case-study.d.ts.map +1 -1
  884. package/dist/types/customer-interview-ai.types.d.ts +1 -2
  885. package/dist/types/customer-interview-ai.types.d.ts.map +1 -1
  886. package/dist/types/customer-interview.d.ts +0 -1
  887. package/dist/types/customer-interview.d.ts.map +1 -1
  888. package/dist/types/index.d.ts +2 -0
  889. package/dist/types/index.d.ts.map +1 -1
  890. package/dist/types/product-release.d.ts +3 -0
  891. package/dist/types/product-release.d.ts.map +1 -1
  892. package/dist/types/stack.d.ts +0 -2
  893. package/dist/types/stack.d.ts.map +1 -1
  894. package/dist/utils/announcement-storage.d.ts +0 -3
  895. package/dist/utils/announcement-storage.d.ts.map +1 -1
  896. package/dist/utils/announcement-storage.js +1 -3
  897. package/dist/utils/dev-sections/openframe-dev-sections.d.ts +11 -0
  898. package/dist/utils/dev-sections/openframe-dev-sections.d.ts.map +1 -1
  899. package/dist/utils/dev-sections/openframe-dev-sections.js +5 -0
  900. package/dist/utils/index.cjs +19 -0
  901. package/dist/utils/index.d.ts +7 -2
  902. package/dist/utils/index.d.ts.map +1 -1
  903. package/dist/utils/index.js +8 -6
  904. package/dist/utils/markdown-heading-id.d.ts +0 -19
  905. package/dist/utils/markdown-heading-id.d.ts.map +1 -1
  906. package/dist/utils/markdown-heading-id.js +2 -5
  907. package/dist/utils/ods-color-utils.d.ts +0 -1
  908. package/dist/utils/ods-color-utils.d.ts.map +1 -1
  909. package/dist/utils/ods-color-utils.js +0 -2
  910. package/dist/utils/own-click.d.ts +4 -0
  911. package/dist/utils/own-click.d.ts.map +1 -0
  912. package/dist/utils/own-click.js +14 -0
  913. package/dist/utils/platform-config.d.ts +0 -1
  914. package/dist/utils/platform-config.d.ts.map +1 -1
  915. package/dist/utils/platform-config.js +0 -26
  916. package/dist/utils/source-icons.d.ts +2 -2
  917. package/dist/{video-file-player-QZ3YOLHO.cjs → video-file-player-COXRF4M5.cjs} +13 -13
  918. package/eslint-config/base.js +2 -0
  919. package/eslint-config/re-exports.js +56 -0
  920. package/package.json +1 -1
  921. package/src/ODS_TOKEN_RULES.md +2 -2
  922. package/src/chat-protocol/decode.ts +0 -5
  923. package/src/chat-protocol/index.ts +1 -0
  924. package/src/components/agent-identity.tsx +0 -2
  925. package/src/components/agent-mark.tsx +13 -4
  926. package/src/components/authors/author-detail-view.tsx +90 -44
  927. package/src/components/case-studies/entity-quotes-panel.tsx +50 -3
  928. package/src/components/case-studies/index.ts +2 -2
  929. package/src/components/case-studies/quote-cards-strip.tsx +75 -10
  930. package/src/components/categories-cart.tsx +82 -38
  931. package/src/components/category-card.tsx +1 -1
  932. package/src/components/chat/chat-attachment-bar.tsx +1 -1
  933. package/src/components/chat/chat-container.tsx +2 -1
  934. package/src/components/chat/chat-ticket-list.tsx +0 -1
  935. package/src/components/chat/chat-turn.tsx +124 -18
  936. package/src/components/chat/embeddable-chat.tsx +5 -5
  937. package/src/components/chat/entity-cards/admin-content-card-grid.tsx +1 -51
  938. package/src/components/chat/entity-cards/admin-content-card.tsx +80 -15
  939. package/src/components/chat/entity-cards/blog-card.tsx +71 -41
  940. package/src/components/chat/entity-cards/campaign-card-admin.tsx +4 -17
  941. package/src/components/chat/entity-cards/case-study-card.tsx +129 -68
  942. package/src/components/chat/entity-cards/chat-ticket-item.tsx +34 -29
  943. package/src/components/chat/entity-cards/customer-interview-card.tsx +61 -45
  944. package/src/components/chat/entity-cards/data-room-doc-card.tsx +11 -18
  945. package/src/components/chat/entity-cards/design-doc-card.tsx +48 -34
  946. package/src/components/chat/entity-cards/dispatch.tsx +9 -13
  947. package/src/components/chat/entity-cards/employee-entry-card.tsx +5 -5
  948. package/src/components/chat/entity-cards/entity-author-card.tsx +138 -32
  949. package/src/components/chat/entity-cards/entity-portrait-card.tsx +61 -16
  950. package/src/components/chat/entity-cards/generic-entity-card.tsx +11 -19
  951. package/src/components/chat/entity-cards/github-activity-card.tsx +14 -30
  952. package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +11 -23
  953. package/src/components/chat/entity-cards/index.ts +20 -7
  954. package/src/components/chat/entity-cards/investor-update-card.tsx +42 -35
  955. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +78 -64
  956. package/src/components/chat/entity-cards/program-card.tsx +96 -66
  957. package/src/components/chat/entity-cards/roadmap-card.tsx +85 -65
  958. package/src/components/chat/entity-cards/roadmap-vote-button.tsx +12 -1
  959. package/src/components/chat/entity-cards/slack-message-card.tsx +19 -26
  960. package/src/components/chat/hooks/index.ts +12 -2
  961. package/src/components/chat/hooks/use-ask-prompts.ts +5 -1
  962. package/src/components/chat/hooks/use-chat-dialog-manager.ts +1 -1
  963. package/src/components/chat/hooks/use-chat-history-hydration.ts +1 -1
  964. package/src/components/chat/hooks/use-chat.ts +0 -3
  965. package/src/components/chat/hooks/use-nats-chat-adapter.ts +0 -20
  966. package/src/components/chat/hooks/use-proxied-image-url.ts +27 -20
  967. package/src/components/chat/hooks/use-slash-commands.ts +1 -7
  968. package/src/components/chat/hooks/use-sse-chat-adapter.ts +4 -18
  969. package/src/components/chat/stream/chat-stream-reducer.ts +3 -2
  970. package/src/components/chat/types/entities/index.ts +24 -4
  971. package/src/components/chat/types/entities/investor-update.ts +1 -1
  972. package/src/components/chat/types/entities/program-types.ts +2 -5
  973. package/src/components/chat/utils/compact-card-classes.ts +15 -2
  974. package/src/components/chat/utils/compact-card-skeleton.tsx +111 -0
  975. package/src/components/chat/utils/icon-library.tsx +0 -2
  976. package/src/components/chat/utils/index.ts +5 -3
  977. package/src/components/chat/utils/scroll-anchor.ts +0 -2
  978. package/src/components/chat/utils/source-row-cta.ts +1 -5
  979. package/src/components/comment-card.tsx +118 -19
  980. package/src/components/comment-thread.tsx +130 -17
  981. package/src/components/docs/doc-viewer.tsx +33 -31
  982. package/src/components/docs/skeletons.tsx +37 -49
  983. package/src/components/docs/use-document-tree.ts +11 -7
  984. package/src/components/embeds/embed-iframe.tsx +5 -0
  985. package/src/components/embeds/index.ts +1 -1
  986. package/src/components/embeds/markdown-image.tsx +6 -2
  987. package/src/components/embeds/og-link-preview.tsx +155 -81
  988. package/src/components/faq/faq-document-page.tsx +8 -0
  989. package/src/components/faq/faq-section.tsx +249 -70
  990. package/src/components/faq/index.ts +12 -1
  991. package/src/components/faq-accordion.tsx +67 -7
  992. package/src/components/features/ai-enrich/AIStatusIndicator.tsx +2 -1
  993. package/src/components/features/approval-level.tsx +71 -8
  994. package/src/components/features/capability-explorer.tsx +59 -61
  995. package/src/components/features/cards-strip.tsx +54 -12
  996. package/src/components/features/command-box.tsx +139 -10
  997. package/src/components/features/conversation-card.tsx +242 -16
  998. package/src/components/features/devices/device-selector/device-selector.tsx +1 -0
  999. package/src/components/features/devices/devices-panel-view.tsx +2 -2
  1000. package/src/components/features/entity-tag-badges.tsx +143 -10
  1001. package/src/components/features/entity-video-section.tsx +52 -14
  1002. package/src/components/features/figma-prototype-viewer.tsx +4 -8
  1003. package/src/components/features/index.ts +11 -0
  1004. package/src/components/features/knowledge-base/index.ts +2 -5
  1005. package/src/components/features/knowledge-base/knowledge-base-article-view.tsx +0 -2
  1006. package/src/components/features/model-token-rates.tsx +64 -84
  1007. package/src/components/features/notifications/approval-request-notification-tile.tsx +9 -11
  1008. package/src/components/features/notifications/notification-tile.tsx +58 -23
  1009. package/src/components/features/paths-display.tsx +73 -6
  1010. package/src/components/features/platform-badge.tsx +41 -1
  1011. package/src/components/features/push-button-selector.tsx +167 -64
  1012. package/src/components/features/remote-session/index.ts +2 -2
  1013. package/src/components/features/remote-session/remote-desktop-chat-message-row.tsx +24 -3
  1014. package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +19 -5
  1015. package/src/components/features/remote-session/remote-desktop-view.tsx +47 -38
  1016. package/src/components/features/remote-session/remote-session-chat-panel.tsx +1 -1
  1017. package/src/components/features/status-filter-component.tsx +105 -11
  1018. package/src/components/features/use-video-warmup.ts +0 -7
  1019. package/src/components/features/use-walkthrough-video.ts +5 -1
  1020. package/src/components/features/video-bites-strip.tsx +137 -22
  1021. package/src/components/features/video-hover-preview.tsx +2 -1
  1022. package/src/components/features/video.tsx +16 -12
  1023. package/src/components/features/walkthrough-video.tsx +9 -2
  1024. package/src/components/help-center-pages/download-apps-page.tsx +86 -32
  1025. package/src/components/help-center-pages/trust-center-page.tsx +132 -66
  1026. package/src/components/help-center-pages/trust-center-sections.tsx +205 -148
  1027. package/src/components/icon-display.tsx +9 -0
  1028. package/src/components/index.ts +11 -2
  1029. package/src/components/interactive-wrapper.tsx +2 -1
  1030. package/src/components/layout/list-page-layout.tsx +4 -5
  1031. package/src/components/layout/page-container.tsx +59 -29
  1032. package/src/components/layout/page-data-sync.tsx +40 -5
  1033. package/src/components/layout/page-heading.tsx +84 -1
  1034. package/src/components/layout/page-layout.tsx +5 -5
  1035. package/src/components/layout/title-block.tsx +72 -17
  1036. package/src/components/loading/category-vendor-selector-skeleton.tsx +4 -0
  1037. package/src/components/loading/deprecated-layout-skeletons.tsx +133 -0
  1038. package/src/components/loading/device-card-skeleton.tsx +4 -4
  1039. package/src/components/loading/index.ts +11 -13
  1040. package/src/components/loading/loading-region.tsx +16 -9
  1041. package/src/components/loading/msp-profile-form-skeleton.tsx +3 -0
  1042. package/src/components/loading/organization-card-skeleton.tsx +45 -71
  1043. package/src/components/loading/page-layout-skeleton.tsx +1 -641
  1044. package/src/components/loading/settings-form-skeleton.tsx +3 -0
  1045. package/src/components/loading/unified-skeleton.tsx +101 -11
  1046. package/src/components/log-severity-dot.tsx +17 -14
  1047. package/src/components/logs-list.tsx +43 -29
  1048. package/src/components/media-carousel.tsx +0 -4
  1049. package/src/components/meeting-scheduler/booking-form.tsx +245 -35
  1050. package/src/components/meeting-scheduler/context-panel.tsx +96 -30
  1051. package/src/components/meeting-scheduler/directory.tsx +70 -37
  1052. package/src/components/meeting-scheduler/index.tsx +136 -132
  1053. package/src/components/meeting-scheduler/modal-header.tsx +45 -31
  1054. package/src/components/meeting-scheduler/slot-picker.tsx +20 -8
  1055. package/src/components/metric-value.tsx +19 -2
  1056. package/src/components/msp-display.tsx +25 -10
  1057. package/src/components/navigation/app-layout.tsx +0 -3
  1058. package/src/components/navigation/index.ts +15 -3
  1059. package/src/components/navigation/mingo-ai-button.tsx +3 -4
  1060. package/src/components/navigation/mobile-nav-sheet.tsx +0 -2
  1061. package/src/components/navigation/multi-level-navigation.tsx +152 -35
  1062. package/src/components/navigation/page-section-bar.tsx +132 -0
  1063. package/src/components/navigation/sticky-section-nav.tsx +109 -18
  1064. package/src/components/navigation/ticket-alerts-button.tsx +1 -1
  1065. package/src/components/onboarding-guides/hooks/use-onboarding-guides.ts +8 -1
  1066. package/src/components/onboarding-guides/index.ts +5 -2
  1067. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +166 -67
  1068. package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +38 -51
  1069. package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +91 -45
  1070. package/src/components/pagination.tsx +103 -48
  1071. package/src/components/persistent-filter-controls.tsx +0 -7
  1072. package/src/components/persistent-pagination.tsx +6 -1
  1073. package/src/components/platform/ToolBadge.tsx +57 -10
  1074. package/src/components/platform/index.ts +2 -2
  1075. package/src/components/platform/tool-badge-mark.ts +6 -0
  1076. package/src/components/product-demo/fixtures/devices.ts +0 -3
  1077. package/src/components/product-demo/product-screen.tsx +42 -23
  1078. package/src/components/product-demo/screen-loading.tsx +20 -0
  1079. package/src/components/product-demo/screens/devices-view.tsx +58 -0
  1080. package/src/components/product-demo/screens/devices.tsx +9 -29
  1081. package/src/components/related-content/card-registry.tsx +20 -6
  1082. package/src/components/related-content/index.ts +3 -1
  1083. package/src/components/related-content/related-content-section.tsx +222 -46
  1084. package/src/components/results-count.tsx +37 -6
  1085. package/src/components/shared/article-author-byline.tsx +65 -41
  1086. package/src/components/shared/delivery/delivery-lists.tsx +15 -2
  1087. package/src/components/shared/delivery/delivery-row.tsx +55 -9
  1088. package/src/components/shared/delivery/delivery-table.tsx +19 -46
  1089. package/src/components/shared/detail-page-skeleton.tsx +15 -1
  1090. package/src/components/shared/dev-section/dev-card-row.tsx +45 -28
  1091. package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
  1092. package/src/components/shared/doc-search/use-doc-search.ts +1 -1
  1093. package/src/components/shared/legal-document/index.ts +2 -0
  1094. package/src/components/shared/legal-document/legal-document-page.tsx +41 -21
  1095. package/src/components/shared/legal-document/use-legal-docs.ts +5 -1
  1096. package/src/components/shared/legal-document/use-legal-documents.ts +4 -1
  1097. package/src/components/shared/media-gallery-strip.tsx +35 -3
  1098. package/src/components/shared/onboarding/index.ts +2 -5
  1099. package/src/components/shared/product-release/index.ts +1 -1
  1100. package/src/components/shared/product-release/product-release-card-classes.ts +28 -0
  1101. package/src/components/shared/product-release/product-release-card-skeleton.tsx +62 -56
  1102. package/src/components/shared/product-release/product-release-card.tsx +62 -44
  1103. package/src/components/shared/product-release/product-releases-view.tsx +32 -24
  1104. package/src/components/shared/product-release/release-detail-page.tsx +229 -134
  1105. package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +20 -6
  1106. package/src/components/shared/roadmap/roadmap-grid.tsx +59 -9
  1107. package/src/components/shared/roadmap/roadmap-view.tsx +3 -3
  1108. package/src/components/social-icon-row.tsx +14 -8
  1109. package/src/components/tickets/help-center-list.tsx +6 -2
  1110. package/src/components/tickets/hooks/use-ticket-actions.ts +0 -4
  1111. package/src/components/tickets/index.ts +1 -2
  1112. package/src/components/tickets/ticket-center.tsx +189 -75
  1113. package/src/components/tickets/types.ts +0 -9
  1114. package/src/components/toggle-group.tsx +4 -1
  1115. package/src/components/tool-icon.tsx +2 -1
  1116. package/src/components/ui/analyzing-state.tsx +11 -6
  1117. package/src/components/ui/announcement-bar-view.tsx +7 -1
  1118. package/src/components/ui/autocomplete.tsx +58 -6
  1119. package/src/components/ui/avatar-stack.tsx +42 -3
  1120. package/src/components/ui/badge.tsx +16 -1
  1121. package/src/components/ui/benefit-list.tsx +41 -6
  1122. package/src/components/ui/button/button-styles.ts +48 -0
  1123. package/src/components/ui/button/button.tsx +5 -39
  1124. package/src/components/ui/button/index.ts +1 -0
  1125. package/src/components/ui/card.tsx +28 -13
  1126. package/src/components/ui/checkbox.tsx +6 -1
  1127. package/src/components/ui/compliance-badge.tsx +6 -2
  1128. package/src/components/ui/cursor-pagination.tsx +28 -3
  1129. package/src/components/ui/dashboard-info-card.tsx +29 -11
  1130. package/src/components/ui/data-attribution.tsx +42 -12
  1131. package/src/components/ui/data-table/data-table-body.tsx +11 -2
  1132. package/src/components/ui/data-table/data-table-row-count.tsx +19 -1
  1133. package/src/components/ui/data-table/data-table-row.tsx +4 -9
  1134. package/src/components/ui/data-table/data-table-skeleton.tsx +7 -7
  1135. package/src/components/ui/data-table/index.ts +2 -1
  1136. package/src/components/ui/date-picker.tsx +0 -6
  1137. package/src/components/ui/entity-image.tsx +27 -4
  1138. package/src/components/ui/error-state.tsx +8 -1
  1139. package/src/components/ui/feature-card.tsx +77 -12
  1140. package/src/components/ui/feature-list.tsx +72 -8
  1141. package/src/components/ui/field-wrapper.tsx +13 -1
  1142. package/src/components/ui/filter-checkbox-item.tsx +57 -6
  1143. package/src/components/ui/filter-modal.tsx +2 -6
  1144. package/src/components/ui/filter-pill-row.tsx +81 -27
  1145. package/src/components/ui/incident-feed.tsx +20 -11
  1146. package/src/components/ui/index.ts +21 -1
  1147. package/src/components/ui/info-card-row.tsx +74 -19
  1148. package/src/components/ui/info-card.tsx +87 -13
  1149. package/src/components/ui/input-styles.ts +6 -0
  1150. package/src/components/ui/input.tsx +4 -1
  1151. package/src/components/ui/layout-hold.tsx +9 -7
  1152. package/src/components/ui/leader-row.tsx +58 -4
  1153. package/src/components/ui/loading-scope.tsx +54 -0
  1154. package/src/components/ui/markdown/base-components.tsx +18 -9
  1155. package/src/components/ui/markdown/engine.tsx +131 -7
  1156. package/src/components/ui/markdown/index.ts +8 -6
  1157. package/src/components/ui/markdown/mermaid-diagram.tsx +7 -4
  1158. package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +26 -1
  1159. package/src/components/ui/markdown/simple-markdown-renderer.tsx +0 -3
  1160. package/src/components/ui/markdown-editor.tsx +83 -50
  1161. package/src/components/ui/numbered-step.tsx +32 -2
  1162. package/src/components/ui/organization-card.tsx +32 -7
  1163. package/src/components/ui/page-actions.tsx +51 -31
  1164. package/src/components/ui/page-loader.tsx +2 -1
  1165. package/src/components/ui/people-cell.tsx +25 -2
  1166. package/src/components/ui/photo-wall.tsx +14 -3
  1167. package/src/components/ui/product-screen-frame.tsx +14 -3
  1168. package/src/components/ui/progress-bar.tsx +26 -3
  1169. package/src/components/ui/progress.tsx +14 -3
  1170. package/src/components/ui/release-changelog-section.tsx +153 -20
  1171. package/src/components/ui/search-input.tsx +23 -3
  1172. package/src/components/ui/searchable-select.tsx +26 -6
  1173. package/src/components/ui/skeleton-surface.ts +16 -4
  1174. package/src/components/ui/slack-channel-chip.tsx +23 -3
  1175. package/src/components/ui/snap-carousel.tsx +5 -0
  1176. package/src/components/ui/square-avatar.tsx +41 -23
  1177. package/src/components/ui/stacked-rows-panel.tsx +88 -15
  1178. package/src/components/ui/status-badge.tsx +18 -1
  1179. package/src/components/ui/status-indicator.tsx +21 -2
  1180. package/src/components/ui/status-line.tsx +2 -1
  1181. package/src/components/ui/strip-card.tsx +73 -23
  1182. package/src/components/ui/tab-navigation.tsx +141 -28
  1183. package/src/components/ui/table/table-header.tsx +2 -2
  1184. package/src/components/ui/table/table-row.tsx +2 -4
  1185. package/src/components/ui/table/table-skeleton.tsx +48 -54
  1186. package/src/components/ui/table/table.tsx +36 -19
  1187. package/src/components/ui/table/types.ts +12 -4
  1188. package/src/components/ui/table/utils.ts +5 -0
  1189. package/src/components/ui/tabs.tsx +64 -4
  1190. package/src/components/ui/tag.tsx +33 -13
  1191. package/src/components/ui/tags-input.tsx +48 -10
  1192. package/src/components/ui/textarea.tsx +33 -3
  1193. package/src/components/ui/ticket-info-section.tsx +0 -2
  1194. package/src/components/ui/timezone-select.tsx +4 -0
  1195. package/src/components/ui/toggle.tsx +11 -5
  1196. package/src/components/unified-pagination.tsx +15 -0
  1197. package/src/components/user-display.tsx +53 -12
  1198. package/src/components/user-summary-stub.tsx +7 -11
  1199. package/src/components/vendor-display-button.tsx +15 -12
  1200. package/src/components/vendor-icon.tsx +13 -2
  1201. package/src/components/vendor-tag.tsx +18 -4
  1202. package/src/embed-shims/next-image.tsx +36 -1
  1203. package/src/hooks/state/flatten-schema.ts +0 -4
  1204. package/src/hooks/state/index.ts +5 -3
  1205. package/src/hooks/state/url-converter.ts +2 -2
  1206. package/src/hooks/state/use-api-params.ts +2 -10
  1207. package/src/hooks/ui/index.ts +1 -0
  1208. package/src/hooks/ui/use-image-edge-color.ts +4 -1
  1209. package/src/hooks/ui/use-onboarding-state.ts +0 -2
  1210. package/src/hooks/use-downloads.ts +9 -1
  1211. package/src/hooks/use-meeting-booking.ts +4 -0
  1212. package/src/hooks/use-self-fetch.ts +12 -4
  1213. package/src/nats/index.ts +1 -0
  1214. package/src/nats/nats-provider.tsx +0 -2
  1215. package/src/nats/nats.ts +0 -2
  1216. package/src/nats/use-nats-subscription.ts +2 -1
  1217. package/src/schemas/meeting-booking-schema.ts +11 -0
  1218. package/src/styles/component-sizes.ts +105 -0
  1219. package/src/types/announcement.ts +0 -3
  1220. package/src/types/blog.ts +0 -4
  1221. package/src/types/case-study.ts +2 -2
  1222. package/src/types/customer-interview-ai.types.ts +1 -4
  1223. package/src/types/customer-interview.ts +0 -11
  1224. package/src/types/index.ts +2 -0
  1225. package/src/types/product-release.ts +4 -2
  1226. package/src/types/stack.ts +0 -4
  1227. package/src/utils/announcement-storage.ts +0 -7
  1228. package/src/utils/dev-sections/openframe-dev-sections.ts +11 -0
  1229. package/src/utils/index.ts +6 -9
  1230. package/src/utils/markdown-heading-id.ts +0 -28
  1231. package/src/utils/ods-color-utils.ts +0 -4
  1232. package/src/utils/own-click.ts +25 -0
  1233. package/src/utils/platform-config.tsx +0 -17
  1234. package/src/utils/source-icons.ts +2 -2
  1235. package/dist/chunk-3ATAYP36.cjs +0 -19
  1236. package/dist/chunk-3LU4UFPS.cjs +0 -14
  1237. package/dist/chunk-FQWBIKF4.cjs +0 -404
  1238. package/dist/chunk-H3RYUTND.cjs +0 -142
  1239. package/dist/chunk-L4UI63K6.cjs +0 -103
  1240. package/dist/chunk-NS64LMVE.cjs +0 -470
  1241. package/dist/chunk-OF336YWG.cjs +0 -20
  1242. package/dist/chunk-RB6BSE3O.cjs +0 -21
  1243. package/dist/chunk-RM6AHNM4.cjs +0 -163
  1244. package/dist/components/chat/entity-cards/product-release-card.d.ts +0 -12
  1245. package/dist/components/chat/entity-cards/product-release-card.d.ts.map +0 -1
  1246. package/dist/components/chat/entity-cards/product-release-card.js +0 -8
  1247. package/dist/components/chat/hooks/use-embedded-chat.d.ts +0 -15
  1248. package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +0 -1
  1249. package/dist/components/chat/hooks/use-embedded-chat.js +0 -6
  1250. package/dist/components/chat/types/entities/blog.d.ts +0 -14
  1251. package/dist/components/chat/types/entities/blog.d.ts.map +0 -1
  1252. package/dist/components/chat/types/entities/blog.js +0 -1
  1253. package/dist/components/chat/types/entities/case-study.d.ts +0 -10
  1254. package/dist/components/chat/types/entities/case-study.d.ts.map +0 -1
  1255. package/dist/components/chat/types/entities/case-study.js +0 -1
  1256. package/dist/components/chat/types/entities/content-ref.d.ts +0 -8
  1257. package/dist/components/chat/types/entities/content-ref.d.ts.map +0 -1
  1258. package/dist/components/chat/types/entities/content-ref.js +0 -1
  1259. package/dist/components/chat/types/entities/customer-interview.d.ts +0 -10
  1260. package/dist/components/chat/types/entities/customer-interview.d.ts.map +0 -1
  1261. package/dist/components/chat/types/entities/customer-interview.js +0 -1
  1262. package/dist/components/chat/utils/source-icons.d.ts +0 -8
  1263. package/dist/components/chat/utils/source-icons.d.ts.map +0 -1
  1264. package/dist/components/chat/utils/source-icons.js +0 -16
  1265. package/dist/utils/image-proxy-stub.d.ts +0 -14
  1266. package/dist/utils/image-proxy-stub.d.ts.map +0 -1
  1267. package/dist/utils/image-proxy-stub.js +0 -22
  1268. package/src/components/chat/entity-cards/product-release-card.tsx +0 -19
  1269. package/src/components/chat/hooks/use-embedded-chat.ts +0 -25
  1270. package/src/components/chat/types/entities/blog.ts +0 -27
  1271. package/src/components/chat/types/entities/case-study.ts +0 -10
  1272. package/src/components/chat/types/entities/content-ref.ts +0 -7
  1273. package/src/components/chat/types/entities/customer-interview.ts +0 -15
  1274. package/src/components/chat/utils/source-icons.ts +0 -14
  1275. package/src/utils/image-proxy-stub.ts +0 -40
@@ -1,22 +1,20 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
- var _chunkLVKUMVUJcjs = require('./chunk-LVKUMVUJ.cjs');
5
4
 
6
5
 
7
6
 
7
+ var _chunk7U3ELNGCcjs = require('./chunk-7U3ELNGC.cjs');
8
8
 
9
- var _chunkLNGR4DXAcjs = require('./chunk-LNGR4DXA.cjs');
10
9
 
11
10
 
12
- var _chunkTSJUL6IHcjs = require('./chunk-TSJUL6IH.cjs');
11
+ var _chunkYRFWOJF4cjs = require('./chunk-YRFWOJF4.cjs');
13
12
 
14
13
 
15
14
 
16
- var _chunk3FC6AKEJcjs = require('./chunk-3FC6AKEJ.cjs');
15
+ var _chunkHNQRY6RUcjs = require('./chunk-HNQRY6RU.cjs');
17
16
 
18
17
 
19
- var _chunkRM6AHNM4cjs = require('./chunk-RM6AHNM4.cjs');
20
18
 
21
19
 
22
20
 
@@ -28,31 +26,30 @@ var _chunkRM6AHNM4cjs = require('./chunk-RM6AHNM4.cjs');
28
26
 
29
27
 
30
28
 
29
+ var _chunkVRDHAR3Xcjs = require('./chunk-VRDHAR3X.cjs');
31
30
 
32
- var _chunkVL6IXTAIcjs = require('./chunk-VL6IXTAI.cjs');
33
31
 
32
+ var _chunkZV45VS6Kcjs = require('./chunk-ZV45VS6K.cjs');
34
33
 
35
- var _chunk2IFCRPNPcjs = require('./chunk-2IFCRPNP.cjs');
36
34
 
37
35
 
36
+ var _chunkXVFM6SJAcjs = require('./chunk-XVFM6SJA.cjs');
38
37
 
39
- var _chunkXCH7SPGIcjs = require('./chunk-XCH7SPGI.cjs');
40
38
 
41
39
 
42
40
 
41
+ var _chunk7VI7TOGIcjs = require('./chunk-7VI7TOGI.cjs');
43
42
 
44
- var _chunkT5FRANE6cjs = require('./chunk-T5FRANE6.cjs');
45
43
 
46
44
 
47
45
 
48
-
49
- var _chunk74ALTXXCcjs = require('./chunk-74ALTXXC.cjs');
46
+ var _chunkYL6ZB2SRcjs = require('./chunk-YL6ZB2SR.cjs');
50
47
 
51
48
 
52
49
  var _chunkEWCFJLNUcjs = require('./chunk-EWCFJLNU.cjs');
53
50
 
54
51
 
55
- var _chunk3RYIF4OWcjs = require('./chunk-3RYIF4OW.cjs');
52
+ var _chunkXXJL5GY3cjs = require('./chunk-XXJL5GY3.cjs');
56
53
 
57
54
 
58
55
 
@@ -60,8 +57,8 @@ var _chunk3RYIF4OWcjs = require('./chunk-3RYIF4OW.cjs');
60
57
  var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
61
58
 
62
59
 
63
- var _chunkNS64LMVEcjs = require('./chunk-NS64LMVE.cjs');
64
60
 
61
+ var _chunkFZB4RMRKcjs = require('./chunk-FZB4RMRK.cjs');
65
62
 
66
63
 
67
64
 
@@ -78,7 +75,7 @@ var _chunkNS64LMVEcjs = require('./chunk-NS64LMVE.cjs');
78
75
 
79
76
 
80
77
 
81
- var _chunk22XAPV6Ncjs = require('./chunk-22XAPV6N.cjs');
78
+ var _chunkDGNBXZXTcjs = require('./chunk-DGNBXZXT.cjs');
82
79
 
83
80
 
84
81
 
@@ -88,28 +85,32 @@ var _chunkBLH2SFOOcjs = require('./chunk-BLH2SFOO.cjs');
88
85
  var _chunkASMNNSUQcjs = require('./chunk-ASMNNSUQ.cjs');
89
86
 
90
87
 
91
- var _chunkHOTM4UM6cjs = require('./chunk-HOTM4UM6.cjs');
88
+ var _chunkE76ONBKFcjs = require('./chunk-E76ONBKF.cjs');
92
89
 
93
90
 
94
91
  var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
95
92
 
96
93
 
97
- var _chunkNO5UJLLQcjs = require('./chunk-NO5UJLLQ.cjs');
94
+ var _chunkWEANWBJHcjs = require('./chunk-WEANWBJH.cjs');
95
+
98
96
 
99
97
 
100
- var _chunkV45KLJQPcjs = require('./chunk-V45KLJQP.cjs');
101
98
 
102
99
 
103
- var _chunkH3RYUTNDcjs = require('./chunk-H3RYUTND.cjs');
100
+ var _chunkXFRBEXQNcjs = require('./chunk-XFRBEXQN.cjs');
104
101
 
105
102
 
106
- var _chunk3ATAYP36cjs = require('./chunk-3ATAYP36.cjs');
103
+ var _chunkV45KLJQPcjs = require('./chunk-V45KLJQP.cjs');
104
+
105
+
106
+ var _chunk65VVJSQZcjs = require('./chunk-65VVJSQZ.cjs');
107
107
 
108
108
  // src/components/shared/product-release/product-releases-view.tsx
109
109
  var _jsxruntime = require('react/jsx-runtime');
110
110
  var DEFAULT_ENDPOINT = "/api/releases";
111
- var DEFAULT_SEARCH_PARAM_KEY = _chunkT5FRANE6cjs.DEV_SECTION_PARAM_KEYS.search;
112
- var DEFAULT_STATUS_PARAM_KEY = _chunkT5FRANE6cjs.DEV_SECTION_PARAM_KEYS.releaseStatus;
111
+ var PAGER_ROW_CLASS = "flex w-full justify-center";
112
+ var DEFAULT_SEARCH_PARAM_KEY = _chunk7VI7TOGIcjs.DEV_SECTION_PARAM_KEYS.search;
113
+ var DEFAULT_STATUS_PARAM_KEY = _chunk7VI7TOGIcjs.DEV_SECTION_PARAM_KEYS.releaseStatus;
113
114
  var DEFAULT_PAGE_PARAM_KEY = "page";
114
115
  function ReleaseRow({
115
116
  release,
@@ -118,17 +119,17 @@ function ReleaseRow({
118
119
  }) {
119
120
  const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
120
121
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
121
- const cta = _chunkT5FRANE6cjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _2 => _2.composeContentUrl]), {
122
+ const cta = _chunk7VI7TOGIcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _2 => _2.composeContentUrl]), {
122
123
  type: "product_release",
123
124
  slug: release.slug,
124
125
  basePath,
125
126
  platforms: release.product_release_platforms
126
127
  });
127
- const { target, rel } = _chunk22XAPV6Ncjs.useEntityCardLink.call(void 0, { href: cta.href, targetPlatform: cta.targetPlatform });
128
+ const { target, rel } = _chunkDGNBXZXTcjs.useEntityCardLink.call(void 0, { href: cta.href, targetPlatform: cta.targetPlatform });
128
129
  const onClick = (e) => {
129
- if (e.defaultPrevented || _chunk22XAPV6Ncjs.isModifierClick.call(void 0, e) || target === "_blank") return;
130
+ if (e.defaultPrevented || _chunkDGNBXZXTcjs.isModifierClick.call(void 0, e) || target === "_blank") return;
130
131
  e.preventDefault();
131
- _chunk74ALTXXCcjs.executeNavigationImperative.call(void 0, {
132
+ _chunkYL6ZB2SRcjs.executeNavigationImperative.call(void 0, {
132
133
  runtime,
133
134
  href: cta.href,
134
135
  targetPlatform: cta.targetPlatform,
@@ -136,7 +137,7 @@ function ReleaseRow({
136
137
  });
137
138
  };
138
139
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
139
- _chunk22XAPV6Ncjs.ProductReleaseCard,
140
+ _chunkFZB4RMRKcjs.ProductReleaseCard,
140
141
  {
141
142
  size: "lg",
142
143
  title: release.title,
@@ -152,7 +153,7 @@ function ProductReleasesView({
152
153
  initialData,
153
154
  itemsPerPage = 5,
154
155
  basePath = "/releases",
155
- buildCardProps = _chunk22XAPV6Ncjs.buildProductReleaseCardProps,
156
+ buildCardProps = _chunkDGNBXZXTcjs.buildProductReleaseCardProps,
156
157
  searchParamKey = DEFAULT_SEARCH_PARAM_KEY,
157
158
  statusParamKey = DEFAULT_STATUS_PARAM_KEY,
158
159
  pageParamKey = DEFAULT_PAGE_PARAM_KEY,
@@ -168,12 +169,19 @@ function ProductReleasesView({
168
169
  const listParams = new URLSearchParams({ limit: String(itemsPerPage), offset: String(offset) });
169
170
  if (search) listParams.set(searchParamKey, search);
170
171
  if (status && status !== "all") listParams.set(statusParamKey, status);
171
- const { data, isLoading, error, reload } = _chunkNS64LMVEcjs.useSelfFetch.call(void 0,
172
- `${endpoint}?${listParams.toString()}`,
173
- { initialData }
174
- );
175
- const releases = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _3 => _3.data]), () => ( []));
176
- const totalCount = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _4 => _4.count]), () => ( 0));
172
+ const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
173
+ const {
174
+ data,
175
+ isLoading: fetching,
176
+ error,
177
+ reload
178
+ } = _chunkFZB4RMRKcjs.useSelfFetch.call(void 0, inScope ? null : `${endpoint}?${listParams.toString()}`, {
179
+ initialData
180
+ });
181
+ const isLoading = inScope || fetching;
182
+ _chunk7U3ELNGCcjs.usePageDataSync.call(void 0, _optionalChain([data, 'optionalAccess', _3 => _3.sync]), isLoading && !data);
183
+ const releases = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _4 => _4.data]), () => ( []));
184
+ const totalCount = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _5 => _5.count]), () => ( 0));
177
185
  const totalPages = _chunkBLH2SFOOcjs.pageCount.call(void 0, totalCount, itemsPerPage);
178
186
  const hasActiveFilters = search !== "" || status !== "all";
179
187
  const showEmpty = !isLoading && !error && releases.length === 0;
@@ -190,10 +198,10 @@ function ProductReleasesView({
190
198
  router.replace(`${pathname}?${params.toString()}`, { scroll: false });
191
199
  };
192
200
  if (error) {
193
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.LoadError, { message: "Failed to load releases.", onRetry: reload }) });
201
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.LoadError, { message: "Failed to load releases.", onRetry: reload }) });
194
202
  }
195
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full flex-col gap-[40px]", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[600px]", children: showEmpty ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[600px] items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
196
- _chunkLNGR4DXAcjs.ListEmptyState,
203
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "flex w-full flex-col gap-[40px]", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[600px]", children: showEmpty ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[600px] items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
204
+ _chunk7U3ELNGCcjs.ListEmptyState,
197
205
  {
198
206
  isFiltered: hasActiveFilters,
199
207
  filtered: {
@@ -205,28 +213,32 @@ function ProductReleasesView({
205
213
  empty: { title: "No releases available", description: "Check back soon for product updates!" }
206
214
  }
207
215
  ) }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
208
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNO5UJLLQcjs.LoadingRegion, { label: "Loading releases", announce: isLoading, className: "flex flex-col gap-6", children: Array.from({ length: itemsPerPage }).map((_, i) => {
216
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading releases", announce: isLoading, className: "flex flex-col gap-6", children: Array.from({ length: itemsPerPage }).map((_, i) => {
209
217
  const release = releases[i];
210
218
  const hasData = !!release;
211
219
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
212
220
  "div",
213
221
  {
214
222
  style: { visibility: isLoading || hasData ? "visible" : "hidden" },
215
- children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk22XAPV6Ncjs.ProductReleaseCardSkeleton, { size: "lg" }) : release ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReleaseRow, { release, basePath, buildCardProps }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk22XAPV6Ncjs.ProductReleaseCardSkeleton, { size: "lg" })
223
+ children: !isLoading && release ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReleaseRow, { release, basePath, buildCardProps }) : (
224
+ // Read, or a hidden slot past the page's last release: the card draws its own skeleton.
225
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFZB4RMRKcjs.ProductReleaseCard, { loading: true, size: "lg", title: "", version: "", formattedDate: "" })
226
+ )
216
227
  },
217
- _nullishCoalesce(_optionalChain([release, 'optionalAccess', _5 => _5.id]), () => ( `slot-${i}`))
228
+ _nullishCoalesce(_optionalChain([release, 'optionalAccess', _6 => _6.id]), () => ( `slot-${i}`))
218
229
  );
219
230
  }) }),
220
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-6 flex justify-center content-md:mt-8", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "m-3 h-12 w-64" }) : releases.length > 0 && totalPages > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
221
- _chunkLVKUMVUJcjs.PersistentPaginationWrapper,
231
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-6 flex justify-center content-md:mt-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
232
+ _chunkYRFWOJF4cjs.UnifiedPagination,
222
233
  {
223
- isLoading: false,
234
+ loading: isLoading,
224
235
  currentPage,
225
- totalPages,
236
+ totalPages: releases.length > 0 ? totalPages : 0,
226
237
  onPageChange: goToPage,
227
- variant: "blog"
238
+ className: PAGER_ROW_CLASS,
239
+ reserveSpace: true
228
240
  }
229
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "m-3 h-12 w-64", style: { visibility: "hidden" } }) })
241
+ ) })
230
242
  ] }) }) });
231
243
  }
232
244
 
@@ -236,14 +248,19 @@ var _react = require('react');
236
248
  function isGalleryImage(mediaType) {
237
249
  return mediaType !== "video" && mediaType !== "demo";
238
250
  }
251
+ var STRIP_CLASS = "flex w-full gap-6 overflow-x-auto";
252
+ var TILE_SIZE_CLASS = "shrink-0 w-[240px] h-[200px] rounded-md";
253
+ var TILE_CLASS = `${TILE_SIZE_CLASS} overflow-hidden border border-ods-border bg-ods-bg transition-opacity`;
254
+ var MEDIA_GALLERY_STRIP_SKELETON_COUNT = 4;
239
255
  function MediaGalleryStrip({ items, className }) {
240
256
  const [galleryOpen, setGalleryOpen] = _react.useState.call(void 0, false);
241
257
  const [galleryIndex, setGalleryIndex] = _react.useState.call(void 0, 0);
258
+ if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, ) && !_optionalChain([items, 'optionalAccess', _7 => _7.length])) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGalleryStripSkeleton, { className });
242
259
  if (!items || items.length === 0) return null;
243
260
  const galleryImages = items.filter((m) => isGalleryImage(m.media_type)).map((m) => m.media_url);
244
- const tileClass = "shrink-0 w-[240px] h-[200px] rounded-md overflow-hidden border border-ods-border bg-black transition-opacity";
261
+ const tileClass = TILE_CLASS;
245
262
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
246
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `flex w-full gap-6 overflow-x-auto ${_nullishCoalesce(className, () => ( ""))}`, children: items.map((mediaItem, index) => {
263
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${STRIP_CLASS} ${_nullishCoalesce(className, () => ( ""))}`, children: items.map((mediaItem, index) => {
247
264
  if (isGalleryImage(mediaItem.media_type)) {
248
265
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
249
266
  "button",
@@ -256,7 +273,7 @@ function MediaGalleryStrip({ items, className }) {
256
273
  setGalleryOpen(true);
257
274
  },
258
275
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
259
- _chunkHOTM4UM6cjs.next_image_default,
276
+ _chunkE76ONBKFcjs.next_image_default,
260
277
  {
261
278
  src: mediaItem.media_url,
262
279
  alt: mediaItem.title || `Media ${index + 1}`,
@@ -270,10 +287,10 @@ function MediaGalleryStrip({ items, className }) {
270
287
  mediaItem.id || index
271
288
  );
272
289
  }
273
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: tileClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk22XAPV6Ncjs.Video, { url: mediaItem.media_url, layout: "native" }) }, mediaItem.id || index);
290
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: tileClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNBXZXTcjs.Video, { url: mediaItem.media_url, layout: "native" }) }, mediaItem.id || index);
274
291
  }) }),
275
292
  galleryImages.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
276
- _chunk22XAPV6Ncjs.ImageGalleryModal,
293
+ _chunkDGNBXZXTcjs.ImageGalleryModal,
277
294
  {
278
295
  images: galleryImages,
279
296
  isOpen: galleryOpen,
@@ -283,12 +300,52 @@ function MediaGalleryStrip({ items, className }) {
283
300
  )
284
301
  ] });
285
302
  }
303
+ function MediaGalleryStripSkeleton({
304
+ count = MEDIA_GALLERY_STRIP_SKELETON_COUNT,
305
+ className
306
+ }) {
307
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, STRIP_CLASS, "overflow-hidden", className), "aria-hidden": true, children: Array.from({ length: count }, (_, i) => (
308
+ // biome-ignore lint/suspicious/noArrayIndexKey: skeleton tiles never reorder
309
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: TILE_SIZE_CLASS }, i)
310
+ )) });
311
+ }
286
312
 
287
313
  // src/components/shared/product-release/release-detail-page.tsx
288
314
  var _lucidereact = require('lucide-react');
289
315
 
290
316
 
291
- var DefaultMarkdownRenderer = _chunkVL6IXTAIcjs.RichMarkdownRenderer;
317
+ var DefaultMarkdownRenderer = _chunkVRDHAR3Xcjs.RichMarkdownRenderer;
318
+ var CONTENT_STACK_CLASS = "space-y-6 content-md:space-y-8";
319
+ var RELEASE_TITLE_SKELETON_LINES = { phone: 7, md: 4, lg: 2 };
320
+ var METADATA_GRID_CLASS = "grid w-full grid-cols-1 overflow-hidden rounded-md border border-ods-border content-md:grid-cols-4";
321
+ var METADATA_CELL_EDGE_CLASS = "border-b border-ods-border bg-ods-card content-md:border-b-0 content-md:border-r";
322
+ var SUMMARY_CLASS = "text-ods-text-primary text-h4";
323
+ var RELEASE_TAG_ROW_FOLD = 3;
324
+ var RELEASE_TAG_SKELETON_WIDTH_CLASS = "w-[10ch]";
325
+ var RELEASE_TYPE_LABEL = "Release Type";
326
+ var RELEASE_STATUS_LABEL = "Release Status";
327
+ var RELEASE_DATE_LABEL = "Release Date";
328
+ var EMPTY_RELEASE = {
329
+ title: "",
330
+ version: "",
331
+ summary: null,
332
+ content: null,
333
+ release_date: "",
334
+ release_type: "",
335
+ release_status: ""
336
+ };
337
+ function ReleaseSummary({ summary }) {
338
+ if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
339
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: SUMMARY_CLASS, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { children: [
340
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", lines: 7, className: "w-full content-md:hidden" }),
341
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", lines: 3, className: "hidden w-full content-md:block" })
342
+ ] }) });
343
+ }
344
+ if (!summary) return null;
345
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: SUMMARY_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { children: summary }) });
346
+ }
347
+ var DELIVERY_PREVIEW_HEIGHT = 300;
348
+ var DELIVERY_TABLES_STACK_CLASS = "space-y-4";
292
349
  var DEFAULT_ENDPOINT2 = "/api/releases";
293
350
  function ReleaseDetailPage({
294
351
  authorHref,
@@ -306,14 +363,14 @@ function ReleaseDetailPage({
306
363
  shell = true
307
364
  }) {
308
365
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
309
- const captions = _chunk74ALTXXCcjs.useCaptions.call(void 0, );
310
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
366
+ const captions = _chunkYL6ZB2SRcjs.useCaptions.call(void 0, );
367
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
311
368
  const seed = initialData == null ? void 0 : initialData;
312
369
  const {
313
370
  data: release,
314
371
  isLoading,
315
372
  error
316
- } = _chunkNS64LMVEcjs.useSelfFetch.call(void 0, slug ? `${endpoint}/${encodeURIComponent(slug)}` : null, {
373
+ } = _chunkFZB4RMRKcjs.useSelfFetch.call(void 0, slug ? `${endpoint}/${encodeURIComponent(slug)}` : null, {
317
374
  initialData: seed
318
375
  });
319
376
  const showBackButton = backButton !== false;
@@ -323,10 +380,11 @@ function ReleaseDetailPage({
323
380
  const [deliveryData, setDeliveryData] = _react.useState.call(void 0, null);
324
381
  const [roadmapLoading, setRoadmapLoading] = _react.useState.call(void 0, false);
325
382
  const [deliveryLoading, setDeliveryLoading] = _react.useState.call(void 0, false);
383
+ const scoped = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
326
384
  _react.useEffect.call(void 0, () => {
327
385
  let cancelled = false;
328
386
  async function fetchLinkedTasks() {
329
- if (!release) return;
387
+ if (!release || scoped) return;
330
388
  try {
331
389
  const roadmapTasksData = release.clickup_roadmap_tasks;
332
390
  if (roadmapTasksData && roadmapTasksData.length > 0 && RoadmapSection) {
@@ -335,7 +393,7 @@ function ReleaseDetailPage({
335
393
  const roadmapResponse = await _chunkASMNNSUQcjs.contentFetch.call(void 0, `${roadmapApiEndpoint}?task_ids=${roadmapIds}`);
336
394
  const roadmapData = roadmapResponse.ok ? await roadmapResponse.json() : null;
337
395
  if (cancelled) return;
338
- setRoadmapTasks(_nullishCoalesce(_optionalChain([roadmapData, 'optionalAccess', _6 => _6.items]), () => ( [])));
396
+ setRoadmapTasks(_nullishCoalesce(_optionalChain([roadmapData, 'optionalAccess', _8 => _8.items]), () => ( [])));
339
397
  setRoadmapLoading(false);
340
398
  }
341
399
  const deliveryTasksData = release.clickup_delivery_tasks;
@@ -361,15 +419,9 @@ function ReleaseDetailPage({
361
419
  return () => {
362
420
  cancelled = true;
363
421
  };
364
- }, [release, RoadmapSection, DeliverySection, roadmapApiEndpoint, deliveryApiEndpoint]);
365
- if (isLoading && !release) {
366
- return renderShell(
367
- // Match the loaded page's top offset (TitleBlock's
368
- // `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
369
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRM6AHNM4cjs.DetailPageSkeleton, { bare: true, metadataColumns: 4, showImageGallery: true }) })
370
- );
371
- }
372
- if (error || !release) {
422
+ }, [release, scoped, RoadmapSection, DeliverySection, roadmapApiEndpoint, deliveryApiEndpoint]);
423
+ const loading = scoped || isLoading && !release;
424
+ if (!loading && (error || !release)) {
373
425
  return renderShell(
374
426
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "py-16 text-center", children: [
375
427
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "mb-4 text-ods-text-primary text-h1", children: "Release Not Found" }),
@@ -377,238 +429,290 @@ function ReleaseDetailPage({
377
429
  ] })
378
430
  );
379
431
  }
380
- const hasBreakingChanges = Array.isArray(release.breaking_changes) && release.breaking_changes.length > 0;
381
- const releaseTitle = release.title;
382
- const releaseVersion = release.version;
383
- const releaseSummary = release.summary;
384
- const releaseContent = release.content;
385
- const releaseDate = release.release_date;
386
- const releaseType = release.release_type;
387
- const releaseStatus = release.release_status;
388
- const releaseMedia = release.release_media;
389
- const author = release.author;
390
- const githubReleases = release.github_releases;
391
- const knowledgeBaseLinks = release.knowledge_base_links;
392
- const migrationGuideUrl = release.migration_guide_url;
393
- const documentationUrl = release.documentation_url;
394
- const youtubeUrl = release.youtube_url;
395
- const mainVideoUrl = release.main_video_url;
396
- const videoBites = release.video_bites;
397
- const highlightVideoUrl = release.highlight_video_url;
398
- const highlightVideoThumbnail = release.highlight_video_thumbnail;
399
- const entityCaptions = captions.forEntity("product_release", release);
400
- const captionsUrl = _nullishCoalesce(release.captionsUrl, () => ( entityCaptions.captionsUrl));
401
- const highlightCaptionsUrl = _nullishCoalesce(release.highlightCaptionsUrl, () => ( entityCaptions.highlightCaptionsUrl));
402
- const breakingChanges = release.breaking_changes;
403
- const featuresAdded = release.features_added;
404
- const bugFixed = release.bugs_fixed;
405
- const improvements = release.improvements;
406
- return renderShell(
407
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
408
- _chunk2IFCRPNPcjs.PageLayout,
409
- {
410
- title: releaseTitle,
411
- subtitle: `Version: ${releaseVersion}`,
412
- titleSize: "h1",
413
- titleWrap: true,
414
- backButton: showBackButton ? { label: backLabel, onClick: () => router.push(backHref) } : void 0,
415
- children: [
416
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6 content-md:space-y-8", children: [
417
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.EntityTagBadges, { tags: release.product_release_tags }),
418
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid w-full grid-cols-1 overflow-hidden rounded-md border border-ods-border content-md:grid-cols-4", children: [
419
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-3 border-b border-ods-border bg-ods-card p-4 content-md:border-b-0 content-md:border-r", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
420
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: releaseType.toLocaleUpperCase() }),
421
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "Release Type" })
422
- ] }) }),
423
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-3 border-b border-ods-border bg-ods-card p-4 content-md:border-b-0 content-md:border-r", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
424
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: releaseStatus.toLocaleUpperCase() }),
425
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "Release Status" })
426
- ] }) }),
427
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-3 border-b border-ods-border bg-ods-card p-4 content-md:border-b-0 content-md:border-r", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
428
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: _chunk22XAPV6Ncjs.formatReleaseDate.call(void 0, releaseDate) }),
429
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "Release Date" })
430
- ] }) }),
431
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
432
- _chunk22XAPV6Ncjs.EntityMetadataAuthorCell,
433
- {
434
- author: _nullishCoalesce(author, () => ( { full_name: null, avatar_url: null })),
435
- authorHref: _optionalChain([author, 'optionalAccess', _7 => _7.full_name]) ? authorHref : void 0
436
- }
437
- )
438
- ] }),
439
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGalleryStrip, { items: _nullishCoalesce(releaseMedia, () => ( [])) }),
440
- releaseSummary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-primary text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { children: releaseSummary }) }),
441
- VideoDisplaySection ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
442
- VideoDisplaySection,
432
+ const view = _nullishCoalesce(release, () => ( EMPTY_RELEASE));
433
+ const hasBreakingChanges = Array.isArray(view.breaking_changes) && view.breaking_changes.length > 0;
434
+ const releaseTitle = view.title;
435
+ const releaseVersion = view.version;
436
+ const releaseSummary = view.summary;
437
+ const releaseContent = view.content;
438
+ const releaseDate = view.release_date;
439
+ const releaseType = view.release_type;
440
+ const releaseStatus = view.release_status;
441
+ const releaseMedia = view.release_media;
442
+ const author = view.author;
443
+ const githubReleases = view.github_releases;
444
+ const knowledgeBaseLinks = view.knowledge_base_links;
445
+ const migrationGuideUrl = view.migration_guide_url;
446
+ const documentationUrl = view.documentation_url;
447
+ const youtubeUrl = view.youtube_url;
448
+ const mainVideoUrl = view.main_video_url;
449
+ const videoBites = view.video_bites;
450
+ const highlightVideoUrl = view.highlight_video_url;
451
+ const highlightVideoThumbnail = view.highlight_video_thumbnail;
452
+ const entityCaptions = captions.forEntity("product_release", view);
453
+ const captionsUrl = _nullishCoalesce(view.captionsUrl, () => ( entityCaptions.captionsUrl));
454
+ const highlightCaptionsUrl = _nullishCoalesce(view.highlightCaptionsUrl, () => ( entityCaptions.highlightCaptionsUrl));
455
+ const breakingChanges = view.breaking_changes;
456
+ const featuresAdded = view.features_added;
457
+ const bugFixed = view.bugs_fixed;
458
+ const improvements = view.improvements;
459
+ const page = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
460
+ _chunkZV45VS6Kcjs.PageLayout,
461
+ {
462
+ title: releaseTitle,
463
+ subtitle: loading ? void 0 : `Version: ${releaseVersion}`,
464
+ loading,
465
+ subtitleRow: "always",
466
+ titleSize: "h1",
467
+ titleWrap: true,
468
+ titleSkeletonLines: RELEASE_TITLE_SKELETON_LINES,
469
+ backButton: showBackButton ? { label: backLabel, onClick: () => router.push(backHref) } : void 0,
470
+ children: [
471
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CONTENT_STACK_CLASS, children: [
472
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
473
+ _chunkVRDHAR3Xcjs.EntityTagBadges,
474
+ {
475
+ tags: view.product_release_tags,
476
+ max: RELEASE_TAG_ROW_FOLD,
477
+ skeletonItemClassName: RELEASE_TAG_SKELETON_WIDTH_CLASS
478
+ }
479
+ ),
480
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: METADATA_GRID_CLASS, children: [
481
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
482
+ _chunkDGNBXZXTcjs.EntityMetadataValueCell,
443
483
  {
444
- mainVideoUrl,
445
- youtubeUrl,
446
- highlightVideoUrl,
447
- highlightVideoThumbnail,
448
- title: releaseTitle,
449
- videoBites,
450
- bitesTitle: _chunk22XAPV6Ncjs.DEFAULT_VIDEO_BITES_TITLE,
451
- filterPublishedBites: true,
452
- bitesProfile: _chunk22XAPV6Ncjs.toStripProfile.call(void 0, author),
453
- bitesHref: typeof release.slug === "string" ? `/releases/${release.slug}` : void 0,
454
- captionsUrl,
455
- highlightCaptionsUrl
484
+ value: releaseType,
485
+ label: RELEASE_TYPE_LABEL,
486
+ className: METADATA_CELL_EDGE_CLASS
456
487
  }
457
- ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
458
- youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk22XAPV6Ncjs.Video, { kind: "youtube", url: youtubeUrl, title: `${releaseTitle} - Video`, layout: "native" }),
459
- !youtubeUrl && mainVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk22XAPV6Ncjs.Video, { url: mainVideoUrl, captionsUrl, layout: "centered" }),
460
- highlightVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
461
- _chunk22XAPV6Ncjs.Video,
462
- {
463
- url: highlightVideoUrl,
464
- poster: highlightVideoThumbnail,
465
- captionsUrl: highlightCaptionsUrl,
466
- layout: "centered"
467
- }
468
- )
469
- ] }),
470
- releaseContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-primary text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: releaseContent }) }),
471
- hasBreakingChanges && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk22XAPV6Ncjs.Card, { className: "border-ods-error bg-ods-error/10", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk22XAPV6Ncjs.CardContent, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
472
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "h-6 w-6 text-ods-error" }),
473
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
474
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-error text-h3", children: "Breaking Changes" }),
475
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: "This release contains breaking changes. Review carefully before upgrading." })
476
- ] })
477
- ] }) }) }),
488
+ ),
478
489
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
479
- _chunkVL6IXTAIcjs.ReleaseChangelogSection,
490
+ _chunkDGNBXZXTcjs.EntityMetadataValueCell,
480
491
  {
481
- title: "Breaking Changes",
482
- entries: breakingChanges || [],
483
- isBreaking: true,
484
- hideTitle: true,
485
- icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "h-6 w-6" }),
486
- MarkdownRenderer
492
+ value: releaseStatus,
493
+ label: RELEASE_STATUS_LABEL,
494
+ className: METADATA_CELL_EDGE_CLASS
487
495
  }
488
496
  ),
489
497
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
490
- _chunkVL6IXTAIcjs.ReleaseChangelogSection,
498
+ _chunkDGNBXZXTcjs.EntityMetadataValueCell,
491
499
  {
492
- title: "Features Added",
493
- entries: featuresAdded || [],
494
- icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "h-6 w-6" }),
495
- previewFirst: true,
496
- MarkdownRenderer
500
+ value: releaseDate ? _chunkDGNBXZXTcjs.formatReleaseDate.call(void 0, releaseDate) : "",
501
+ label: RELEASE_DATE_LABEL,
502
+ className: METADATA_CELL_EDGE_CLASS,
503
+ uppercase: false
497
504
  }
498
505
  ),
499
506
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
500
- _chunkVL6IXTAIcjs.ReleaseChangelogSection,
507
+ _chunkDGNBXZXTcjs.EntityMetadataAuthorCell,
501
508
  {
502
- title: "Bugs Fixed",
503
- entries: bugFixed || [],
504
- icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wrench, { className: "h-6 w-6" }),
505
- previewFirst: true,
506
- MarkdownRenderer
509
+ author: _nullishCoalesce(author, () => ( { full_name: null, avatar_url: null })),
510
+ authorHref: _optionalChain([author, 'optionalAccess', _9 => _9.full_name]) ? authorHref : void 0
507
511
  }
508
- ),
512
+ )
513
+ ] }),
514
+ (loading || releaseMedia && releaseMedia.length > 0) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGalleryStrip, { items: _nullishCoalesce(releaseMedia, () => ( [])) }),
515
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReleaseSummary, { summary: releaseSummary }),
516
+ loading ? null : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-loading-optional": true, className: `${CONTENT_STACK_CLASS} empty:hidden`, children: VideoDisplaySection ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
517
+ VideoDisplaySection,
518
+ {
519
+ mainVideoUrl,
520
+ youtubeUrl,
521
+ highlightVideoUrl,
522
+ highlightVideoThumbnail,
523
+ title: releaseTitle,
524
+ videoBites,
525
+ bitesTitle: _chunkDGNBXZXTcjs.DEFAULT_VIDEO_BITES_TITLE,
526
+ filterPublishedBites: true,
527
+ bitesProfile: _chunkDGNBXZXTcjs.toStripProfile.call(void 0, author),
528
+ bitesHref: typeof view.slug === "string" ? `/releases/${view.slug}` : void 0,
529
+ captionsUrl,
530
+ highlightCaptionsUrl
531
+ }
532
+ ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
533
+ youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNBXZXTcjs.Video, { kind: "youtube", url: youtubeUrl, title: `${releaseTitle} - Video`, layout: "native" }),
534
+ !youtubeUrl && mainVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNBXZXTcjs.Video, { url: mainVideoUrl, captionsUrl, layout: "centered" }),
535
+ highlightVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
536
+ _chunkDGNBXZXTcjs.Video,
537
+ {
538
+ url: highlightVideoUrl,
539
+ poster: highlightVideoThumbnail,
540
+ captionsUrl: highlightCaptionsUrl,
541
+ layout: "centered"
542
+ }
543
+ )
544
+ ] }) }),
545
+ releaseContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-primary text-h4", "data-loading-optional": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: releaseContent }) }),
546
+ hasBreakingChanges && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNBXZXTcjs.Card, { className: "border-ods-error bg-ods-error/10", "data-loading-optional": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNBXZXTcjs.CardContent, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
547
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "h-6 w-6 text-ods-error" }),
548
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
549
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-error text-h3", children: "Breaking Changes" }),
550
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: "This release contains breaking changes. Review carefully before upgrading." })
551
+ ] })
552
+ ] }) }) }),
553
+ loading ? null : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
554
+ _chunkVRDHAR3Xcjs.ReleaseChangelogSection,
555
+ {
556
+ title: "Breaking Changes",
557
+ entries: breakingChanges || [],
558
+ isBreaking: true,
559
+ hideTitle: true,
560
+ loadingOptional: true,
561
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "h-6 w-6" }),
562
+ MarkdownRenderer
563
+ }
564
+ ),
565
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
566
+ _chunkVRDHAR3Xcjs.ReleaseChangelogSection,
567
+ {
568
+ title: "Features Added",
569
+ entries: featuresAdded || [],
570
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "h-6 w-6" }),
571
+ previewFirst: true,
572
+ MarkdownRenderer
573
+ }
574
+ ),
575
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
576
+ _chunkVRDHAR3Xcjs.ReleaseChangelogSection,
577
+ {
578
+ title: "Bugs Fixed",
579
+ entries: bugFixed || [],
580
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wrench, { className: "h-6 w-6" }),
581
+ previewFirst: true,
582
+ MarkdownRenderer
583
+ }
584
+ ),
585
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
586
+ _chunkVRDHAR3Xcjs.ReleaseChangelogSection,
587
+ {
588
+ title: "Improvements",
589
+ entries: improvements || [],
590
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TrendingUp, { className: "h-6 w-6" }),
591
+ previewFirst: true,
592
+ MarkdownRenderer
593
+ }
594
+ ),
595
+ RoadmapSection && (roadmapLoading || roadmapTasks.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-4", "data-loading-optional": true, children: [
596
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "tracking-[-0.28px] text-ods-text-secondary text-h5", children: "Related Roadmap Items" }),
509
597
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
510
- _chunkVL6IXTAIcjs.ReleaseChangelogSection,
598
+ RoadmapSection,
511
599
  {
512
- title: "Improvements",
513
- entries: improvements || [],
514
- icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TrendingUp, { className: "h-6 w-6" }),
515
- previewFirst: true,
516
- MarkdownRenderer
600
+ items: roadmapTasks,
601
+ isLoading: roadmapLoading,
602
+ onItemUpdate: (updatedItem) => {
603
+ setRoadmapTasks((prevTasks) => prevTasks.map((task) => task.id === updatedItem.id ? updatedItem : task));
604
+ }
517
605
  }
518
- ),
519
- RoadmapSection && (roadmapLoading || roadmapTasks.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-4", children: [
520
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "tracking-[-0.28px] text-ods-text-secondary text-h5", children: "Related Roadmap Items" }),
521
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
522
- RoadmapSection,
606
+ )
607
+ ] }),
608
+ DeliverySection && (deliveryLoading || deliveryData && (deliveryData.completed.length > 0 || deliveryData.inProgress.length > 0)) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-4", "data-loading-optional": true, children: [
609
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "tracking-[-0.28px] text-ods-text-secondary text-h5", children: "Related Enhancements and Bug-fixes" }),
610
+ (() => {
611
+ const deliveryCount = deliveryData ? deliveryData.completed.length + deliveryData.inProgress.length : 0;
612
+ return deliveryLoading ? (
613
+ // The loaded preview's frame, its height written into the markup (`fixedHeight`), so the tables'
614
+ // loading state takes the collapsed preview's place, toggle row included. Inert: nothing to open yet.
615
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { inert: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.FadePreview, { fixedHeight: true, collapsedHeight: DELIVERY_PREVIEW_HEIGHT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DELIVERY_TABLES_STACK_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) }) }) })
616
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
617
+ _chunkVRDHAR3Xcjs.FadePreview,
523
618
  {
524
- items: roadmapTasks,
525
- isLoading: roadmapLoading,
526
- onItemUpdate: (updatedItem) => {
527
- setRoadmapTasks((prevTasks) => prevTasks.map((task) => task.id === updatedItem.id ? updatedItem : task));
528
- }
619
+ hiddenCount: deliveryCount - 1,
620
+ collapsedHeight: DELIVERY_PREVIEW_HEIGHT,
621
+ resetKey: deliveryCount,
622
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DELIVERY_TABLES_STACK_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: false }) })
529
623
  }
530
- )
531
- ] }),
532
- DeliverySection && (deliveryLoading || deliveryData && (deliveryData.completed.length > 0 || deliveryData.inProgress.length > 0)) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-4", children: [
533
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "tracking-[-0.28px] text-ods-text-secondary text-h5", children: "Related Enhancements and Bug-fixes" }),
534
- (() => {
535
- const deliveryCount = deliveryData ? deliveryData.completed.length + deliveryData.inProgress.length : 0;
536
- return deliveryLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.FadePreview, { hiddenCount: deliveryCount - 1, collapsedHeight: 300, resetKey: deliveryCount, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: false }) }) });
537
- })()
538
- ] }),
539
- (_optionalChain([githubReleases, 'optionalAccess', _8 => _8.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _9 => _9.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
540
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "tracking-[-0.28px] text-ods-text-secondary text-h5", children: "Related Links" }),
541
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk22XAPV6Ncjs.Card, { className: "border-ods-border bg-ods-card p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
542
- githubReleases && githubReleases.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
543
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWCFJLNUcjs.GithubClassicIcon, { className: "shrink-0", size: 24, color: "var(--color-text-secondary)" }),
544
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: "Github Release" }),
545
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
546
- _chunkV45KLJQPcjs.next_link_default,
547
- {
548
- href: ghRelease.github_release_url,
549
- target: "_blank",
550
- rel: "noopener noreferrer",
551
- className: "text-ods-accent text-h4 hover:underline",
552
- children: ghRelease.github_release_url.split("/").pop()
553
- }
554
- ),
555
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 shrink-0 text-ods-accent" })
556
- ] }, ghRelease.id)) }),
557
- knowledgeBaseLinks && knowledgeBaseLinks.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: knowledgeBaseLinks.map((linkObj) => {
558
- const path = typeof linkObj === "string" ? linkObj : linkObj.kb_article_path;
559
- const linkId = typeof linkObj === "string" ? path : linkObj.id || path;
560
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
561
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.BookMarked, { className: "h-6 w-6 shrink-0 text-ods-text-secondary" }),
562
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: "Knowledge Base" }),
563
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
564
- _chunkV45KLJQPcjs.next_link_default,
565
- {
566
- href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
567
- className: "text-ods-accent text-h4 hover:underline",
568
- children: _optionalChain([path, 'access', _10 => _10.replace, 'call', _11 => _11(/^\//, ""), 'access', _12 => _12.split, 'call', _13 => _13("/"), 'access', _14 => _14.pop, 'call', _15 => _15(), 'optionalAccess', _16 => _16.replace, 'call', _17 => _17(/-/g, " ")]) || "View Article"
569
- }
570
- ),
571
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 shrink-0 text-ods-accent" })
572
- ] }, linkId);
573
- }) }),
574
- migrationGuideUrl && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
575
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.BookMarked, { className: "h-6 w-6 shrink-0 text-ods-text-secondary" }),
576
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
577
- _chunkV45KLJQPcjs.next_link_default,
578
- {
579
- href: migrationGuideUrl,
580
- target: "_blank",
581
- rel: "noopener noreferrer",
582
- className: "text-ods-accent text-h4 hover:underline",
583
- children: "\u{1F4D6} Migration Guide"
584
- }
585
- ),
586
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 shrink-0 text-ods-accent" })
587
- ] }),
588
- documentationUrl && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
624
+ );
625
+ })()
626
+ ] }),
627
+ (_optionalChain([githubReleases, 'optionalAccess', _10 => _10.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _11 => _11.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", "data-loading-optional": true, children: [
628
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "tracking-[-0.28px] text-ods-text-secondary text-h5", children: "Related Links" }),
629
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNBXZXTcjs.Card, { className: "border-ods-border bg-ods-card p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
630
+ githubReleases && githubReleases.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
631
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWCFJLNUcjs.GithubClassicIcon, { className: "shrink-0", size: 24, color: "var(--color-text-secondary)" }),
632
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: "Github Release" }),
633
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
634
+ _chunkV45KLJQPcjs.next_link_default,
635
+ {
636
+ href: ghRelease.github_release_url,
637
+ target: "_blank",
638
+ rel: "noopener noreferrer",
639
+ className: "text-ods-accent text-h4 hover:underline",
640
+ children: ghRelease.github_release_url.split("/").pop()
641
+ }
642
+ ),
643
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 shrink-0 text-ods-accent" })
644
+ ] }, ghRelease.id)) }),
645
+ knowledgeBaseLinks && knowledgeBaseLinks.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: knowledgeBaseLinks.map((linkObj) => {
646
+ const path = typeof linkObj === "string" ? linkObj : linkObj.kb_article_path;
647
+ const linkId = typeof linkObj === "string" ? path : linkObj.id || path;
648
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
589
649
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.BookMarked, { className: "h-6 w-6 shrink-0 text-ods-text-secondary" }),
650
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: "Knowledge Base" }),
590
651
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
591
652
  _chunkV45KLJQPcjs.next_link_default,
592
653
  {
593
- href: documentationUrl,
594
- target: "_blank",
595
- rel: "noopener noreferrer",
654
+ href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
596
655
  className: "text-ods-accent text-h4 hover:underline",
597
- children: "\u{1F4DA} Documentation"
656
+ children: _optionalChain([path, 'access', _12 => _12.replace, 'call', _13 => _13(/^\//, ""), 'access', _14 => _14.split, 'call', _15 => _15("/"), 'access', _16 => _16.pop, 'call', _17 => _17(), 'optionalAccess', _18 => _18.replace, 'call', _19 => _19(/-/g, " ")]) || "View Article"
598
657
  }
599
658
  ),
600
659
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 shrink-0 text-ods-accent" })
601
- ] })
602
- ] }) })
603
- ] })
604
- ] }),
605
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Fragment, { children: relatedContent }, "related-content")
606
- ]
607
- }
608
- )
660
+ ] }, linkId);
661
+ }) }),
662
+ migrationGuideUrl && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
663
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.BookMarked, { className: "h-6 w-6 shrink-0 text-ods-text-secondary" }),
664
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
665
+ _chunkV45KLJQPcjs.next_link_default,
666
+ {
667
+ href: migrationGuideUrl,
668
+ target: "_blank",
669
+ rel: "noopener noreferrer",
670
+ className: "text-ods-accent text-h4 hover:underline",
671
+ children: "\u{1F4D6} Migration Guide"
672
+ }
673
+ ),
674
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 shrink-0 text-ods-accent" })
675
+ ] }),
676
+ documentationUrl && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
677
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.BookMarked, { className: "h-6 w-6 shrink-0 text-ods-text-secondary" }),
678
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
679
+ _chunkV45KLJQPcjs.next_link_default,
680
+ {
681
+ href: documentationUrl,
682
+ target: "_blank",
683
+ rel: "noopener noreferrer",
684
+ className: "text-ods-accent text-h4 hover:underline",
685
+ children: "\u{1F4DA} Documentation"
686
+ }
687
+ ),
688
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 shrink-0 text-ods-accent" })
689
+ ] })
690
+ ] }) })
691
+ ] })
692
+ ] }),
693
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Fragment, { children: relatedContent }, "related-content")
694
+ ]
695
+ }
696
+ );
697
+ return renderShell(
698
+ loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading the release", announce: !scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.LoadingScope, { children: page }) }) : page
609
699
  );
610
700
  }
611
701
 
702
+ // src/components/shared/roadmap/roadmap-grid-skeleton.tsx
703
+
704
+ function roadmapGridClass(columns, showLeftMargin) {
705
+ return `grid grid-cols-1 gap-6 ${columns === 2 ? "content-md:grid-cols-2" : ""} ${showLeftMargin ? "content-md:ml-[120px]" : ""}`;
706
+ }
707
+ function RoadmapGridSkeleton({
708
+ region = true,
709
+ count = 4,
710
+ showLeftMargin = true,
711
+ columns = 2
712
+ }) {
713
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading the roadmap", announce: region, className: roadmapGridClass(columns, showLeftMargin), children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNBXZXTcjs.RoadmapCardSkeleton, {}, i)) });
714
+ }
715
+
612
716
  // src/components/shared/roadmap/use-roadmap-voting.ts
613
717
 
614
718
  var DEFAULT_VOTE_ENDPOINT = "/api/roadmap/vote";
@@ -626,10 +730,10 @@ function readStoredVotes(storageKey) {
626
730
  function useRoadmapVoting(options = {}) {
627
731
  const voteApiEndpoint = _nullishCoalesce(options.voteApiEndpoint, () => ( DEFAULT_VOTE_ENDPOINT));
628
732
  const storageKey = _nullishCoalesce(options.storageKey, () => ( DEFAULT_STORAGE_KEY));
629
- const { getSignals } = _chunkXCH7SPGIcjs.useHumanitySignals.call(void 0, );
733
+ const { getSignals } = _chunkXVFM6SJAcjs.useHumanitySignals.call(void 0, );
630
734
  const [votes, setVotes] = _react.useState.call(void 0, NO_VOTES);
631
735
  const [loadedKey, setLoadedKey] = _react.useState.call(void 0, null);
632
- const hydrated = _chunk74ALTXXCcjs.useIsHydrated.call(void 0, );
736
+ const hydrated = _chunkYL6ZB2SRcjs.useIsHydrated.call(void 0, );
633
737
  if (hydrated && loadedKey !== storageKey) {
634
738
  setLoadedKey(storageKey);
635
739
  setVotes(readStoredVotes(storageKey));
@@ -764,34 +868,40 @@ function RoadmapGridSingle({
764
868
  onVote,
765
869
  votingTasks
766
870
  }) {
767
- return (
768
- // LITERAL class strings: an interpolated `content-md:grid-cols-${n}` is invisible
769
- // to Tailwind's scanner and is never generated.
871
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: roadmapGridClass(columns, showLeftMargin), children: items.map((item) => (
872
+ // DOM id + sticky-header scroll offset live ON RoadmapCard's own
873
+ // outer element (no wrapper div). Anchor mirrors
874
+ // `buildDevSectionUrl('roadmap', <id>)` → `#roadmap-<external_id>`;
875
+ // `useScrollToHash` in `roadmap-view.tsx` finds the card by id
876
+ // and scrolls.
770
877
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
771
- "div",
878
+ _chunkDGNBXZXTcjs.RoadmapCard,
772
879
  {
773
- className: `grid grid-cols-1 gap-6 ${columns === 2 ? "content-md:grid-cols-2" : ""} ${showLeftMargin ? "content-md:ml-[120px]" : ""}`,
774
- children: items.map((item) => (
775
- // DOM id + sticky-header scroll offset live ON RoadmapCard's own
776
- // outer element (no wrapper div). Anchor mirrors
777
- // `buildDevSectionUrl('roadmap', <id>)` → `#roadmap-<external_id>`;
778
- // `useScrollToHash` in `roadmap-view.tsx` finds the card by id
779
- // and scrolls.
780
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
781
- _chunk22XAPV6Ncjs.RoadmapCard,
782
- {
783
- item,
784
- id: _chunkT5FRANE6cjs.devSectionAnchorId.call(void 0, "roadmap", item.id),
785
- userVote: getVote(item.id),
786
- onVote: (voteType) => onVote(item.id, voteType),
787
- isVoting: votingTasks.has(item.id)
788
- },
789
- item.id
790
- )
791
- ))
792
- }
880
+ item,
881
+ id: _chunk7VI7TOGIcjs.devSectionAnchorId.call(void 0, "roadmap", item.id),
882
+ userVote: getVote(item.id),
883
+ onVote: (voteType) => onVote(item.id, voteType),
884
+ isVoting: votingTasks.has(item.id)
885
+ },
886
+ item.id
793
887
  )
794
- );
888
+ )) });
889
+ }
890
+ var QUARTER_LIST_CLASS = "flex flex-col gap-10";
891
+ var QUARTER_HEAD_CLASS = "flex items-center gap-3";
892
+ var QUARTER_CONTENT_CLASS = "pt-4";
893
+ var QUARTER_CONTENT_INNER_CLASS = "pb-4";
894
+ function RoadmapGridQuarterSkeleton({
895
+ showLeftMargin = true,
896
+ columns = 2
897
+ }) {
898
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: QUARTER_LIST_CLASS, "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
899
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: QUARTER_HEAD_CLASS, children: [
900
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h2", className: "w-40" }),
901
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-16" })
902
+ ] }),
903
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: QUARTER_CONTENT_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: QUARTER_CONTENT_INNER_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridSkeleton, { region: false, showLeftMargin, columns }) }) })
904
+ ] }) });
795
905
  }
796
906
  function RoadmapGrid({
797
907
  items,
@@ -802,9 +912,12 @@ function RoadmapGrid({
802
912
  votingOptions,
803
913
  groupByQuarter = false,
804
914
  hasActiveFilters = false,
805
- quartersToKeepClosed = 2
915
+ quartersToKeepClosed = 2,
916
+ isLoading = false,
917
+ fold
806
918
  }) {
807
919
  const { getVote, toggleVote } = useRoadmapVoting(votingOptions);
920
+ const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
808
921
  const [votingTasks, setVotingTasks] = _react.useState.call(void 0, /* @__PURE__ */ new Set());
809
922
  const handleVote = async (taskId, voteType) => {
810
923
  if (votingTasks.has(taskId)) return;
@@ -873,9 +986,12 @@ function RoadmapGrid({
873
986
  hasActiveFilters ? [...quarters] : computeDefaultExpandedQuarters(quarters, quartersToKeepClosed)
874
987
  );
875
988
  }, [hasActiveFilters, sortedQuartersKey, isInitialized, quartersToKeepClosed]);
989
+ if (inScope || isLoading) {
990
+ return groupByQuarter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridQuarterSkeleton, { showLeftMargin, columns }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridSkeleton, { region: !inScope, count: fold, showLeftMargin, columns });
991
+ }
876
992
  if (items.length === 0) {
877
993
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
878
- _chunkTSJUL6IHcjs.EmptyState,
994
+ _chunkYRFWOJF4cjs.EmptyState,
879
995
  {
880
996
  type: "generic",
881
997
  title: "No roadmap items",
@@ -897,27 +1013,27 @@ function RoadmapGrid({
897
1013
  );
898
1014
  }
899
1015
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
900
- _chunkVL6IXTAIcjs.Accordion,
1016
+ _chunkVRDHAR3Xcjs.Accordion,
901
1017
  {
902
1018
  type: "multiple",
903
1019
  value: expandedQuarters,
904
1020
  onValueChange: setExpandedQuarters,
905
- className: "flex flex-col gap-10",
1021
+ className: QUARTER_LIST_CLASS,
906
1022
  children: sortedQuarters.map((quarter) => {
907
- const itemCount = _optionalChain([itemsByQuarter, 'access', _18 => _18[quarter], 'optionalAccess', _19 => _19.length]) || 0;
1023
+ const itemCount = _optionalChain([itemsByQuarter, 'access', _20 => _20[quarter], 'optionalAccess', _21 => _21.length]) || 0;
908
1024
  const isExpanded = expandedQuarters.includes(quarter);
909
1025
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
910
- _chunkVL6IXTAIcjs.AccordionItem,
1026
+ _chunkVRDHAR3Xcjs.AccordionItem,
911
1027
  {
912
1028
  value: quarter,
913
1029
  id: `quarter-${quarter.replace(/\s+/g, "-").toLowerCase()}`,
914
1030
  className: "border-0",
915
1031
  children: [
916
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.AccordionTrigger, { className: "w-full p-0 hover:no-underline [&>svg]:ml-auto [&>svg]:h-5 [&>svg]:w-5 [&>svg]:shrink-0 [&>svg]:text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
1032
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.AccordionTrigger, { className: "w-full p-0 hover:no-underline [&>svg]:ml-auto [&>svg]:h-5 [&>svg]:w-5 [&>svg]:shrink-0 [&>svg]:text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: QUARTER_HEAD_CLASS, children: [
917
1033
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
918
1034
  "h3",
919
1035
  {
920
- className: _chunk3ATAYP36cjs.cn.call(void 0,
1036
+ className: _chunk65VVJSQZcjs.cn.call(void 0,
921
1037
  "text-ods-text-primary transition-opacity text-h2",
922
1038
  isExpanded ? "opacity-100" : "opacity-60"
923
1039
  ),
@@ -930,7 +1046,7 @@ function RoadmapGrid({
930
1046
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
931
1047
  "span",
932
1048
  {
933
- className: _chunk3ATAYP36cjs.cn.call(void 0,
1049
+ className: _chunk65VVJSQZcjs.cn.call(void 0,
934
1050
  "transition-opacity text-h6",
935
1051
  isExpanded ? "text-ods-text-secondary opacity-100" : "text-ods-text-tertiary opacity-60"
936
1052
  ),
@@ -943,7 +1059,7 @@ function RoadmapGrid({
943
1059
  }
944
1060
  )
945
1061
  ] }) }),
946
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.AccordionContent, { className: "overflow-hidden pb-0 pt-4 data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1062
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.AccordionContent, { className: "overflow-hidden pb-0 pt-4 data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
947
1063
  RoadmapGridSingle,
948
1064
  {
949
1065
  items: itemsByQuarter[quarter],
@@ -963,27 +1079,13 @@ function RoadmapGrid({
963
1079
  );
964
1080
  }
965
1081
 
966
- // src/components/shared/roadmap/roadmap-grid-skeleton.tsx
967
-
968
- function RoadmapGridSkeleton({ region = true, count = 4, showLeftMargin = true }) {
969
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
970
- _chunkNO5UJLLQcjs.LoadingRegion,
971
- {
972
- label: "Loading the roadmap",
973
- announce: region,
974
- className: `grid grid-cols-1 gap-6 content-md:grid-cols-2 ${showLeftMargin ? "content-md:ml-[120px]" : ""}`,
975
- children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk22XAPV6Ncjs.RoadmapCardSkeleton, {}, i))
976
- }
977
- );
978
- }
979
-
980
1082
  // src/components/shared/roadmap/roadmap-view.tsx
981
1083
 
982
1084
 
983
1085
  var DEFAULT_ENDPOINT3 = "/api/roadmap";
984
1086
  var SYNCED_LIST_CLASS = "flex w-full flex-col gap-[var(--spacing-system-lf)]";
985
- var DEFAULT_SEARCH_PARAM_KEY2 = _chunkT5FRANE6cjs.DEV_SECTION_PARAM_KEYS.search;
986
- var DEFAULT_STATUS_PARAM_KEY2 = _chunkT5FRANE6cjs.DEV_SECTION_PARAM_KEYS.status;
1087
+ var DEFAULT_SEARCH_PARAM_KEY2 = _chunk7VI7TOGIcjs.DEV_SECTION_PARAM_KEYS.search;
1088
+ var DEFAULT_STATUS_PARAM_KEY2 = _chunk7VI7TOGIcjs.DEV_SECTION_PARAM_KEYS.status;
987
1089
  function RoadmapView({
988
1090
  endpoint = DEFAULT_ENDPOINT3,
989
1091
  initialItems,
@@ -1002,23 +1104,23 @@ function RoadmapView({
1002
1104
  const qs = listParams.toString();
1003
1105
  const url = qs ? `${endpoint}?${qs}` : endpoint;
1004
1106
  const initialData = _react.useMemo.call(void 0, () => initialItems ? { items: initialItems } : void 0, [initialItems]);
1005
- const { data, setData, isLoading, error, reload } = _chunkNS64LMVEcjs.useSelfFetch.call(void 0, url, {
1107
+ const { data, setData, isLoading, error, reload } = _chunkFZB4RMRKcjs.useSelfFetch.call(void 0, url, {
1006
1108
  initialData
1007
1109
  });
1008
- const items = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _20 => _20.items]), () => ( []));
1009
- _chunkXCH7SPGIcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunk3RYIF4OWcjs.STICKY_HEADER_OFFSET_PX });
1010
- const syncInPage = _chunkLNGR4DXAcjs.usePageDataSync.call(void 0, _optionalChain([data, 'optionalAccess', _21 => _21.sync]), isLoading && !data);
1110
+ const items = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _22 => _22.items]), () => ( []));
1111
+ _chunkXVFM6SJAcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkXXJL5GY3cjs.STICKY_HEADER_OFFSET_PX });
1112
+ const syncInPage = _chunk7U3ELNGCcjs.usePageDataSync.call(void 0, _optionalChain([data, 'optionalAccess', _23 => _23.sync]), isLoading && !data);
1011
1113
  if (error) {
1012
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.LoadError, { message: "Failed to load roadmap.", onRetry: reload });
1114
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.LoadError, { message: "Failed to load roadmap.", onRetry: reload });
1013
1115
  }
1014
1116
  if (isLoading && !data) {
1015
1117
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: SYNCED_LIST_CLASS, children: [
1016
- !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.DataSyncLine, { loading: true }),
1017
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridSkeleton, { showLeftMargin })
1118
+ !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.DataSyncLine, { loading: true }),
1119
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridQuarterSkeleton, { showLeftMargin })
1018
1120
  ] });
1019
1121
  }
1020
1122
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: SYNCED_LIST_CLASS, children: [
1021
- !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.DataSyncLine, { sync: _optionalChain([data, 'optionalAccess', _22 => _22.sync]) }),
1123
+ !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.DataSyncLine, { sync: _optionalChain([data, 'optionalAccess', _24 => _24.sync]) }),
1022
1124
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1023
1125
  RoadmapGrid,
1024
1126
  {
@@ -1038,37 +1140,24 @@ function RoadmapView({
1038
1140
 
1039
1141
  // src/components/shared/delivery/delivery-table.tsx
1040
1142
 
1041
- function SkeletonRow() {
1042
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border p-[12px] last:border-b-0 content-md:p-[16px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]", children: [
1043
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-1 flex-col gap-[12px] content-md:w-auto content-md:gap-[16px]", children: [
1044
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[24px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-[20px] w-full rounded" }) }),
1045
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[20px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-[20px] w-1/2 rounded" }) }),
1046
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[72px] items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-1", children: [
1047
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-[20px] w-full rounded" }),
1048
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-[20px] w-full rounded" }),
1049
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-[20px] w-2/3 rounded" })
1050
- ] }) })
1051
- ] }),
1052
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 flex-col gap-2 self-start", children: [
1053
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-[32px] w-[100px] rounded" }),
1054
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-[32px] w-[120px] rounded" })
1055
- ] })
1056
- ] }) });
1143
+ var TABLE_FRAME_CLASS = `w-full ${_chunkDGNBXZXTcjs.CONTENT_CARD_SKELETON_FRAME_CLASS}`;
1144
+ var ROW_SEPARATOR_CLASS = "border-b border-ods-border last:border-b-0";
1145
+ var DELIVERY_TABLE_SKELETON_ROWS = 5;
1146
+ function DeliveryTableSkeleton() {
1147
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TABLE_FRAME_CLASS, "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: Array.from({ length: DELIVERY_TABLE_SKELETON_ROWS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROW_SEPARATOR_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7U3ELNGCcjs.DeliveryRowSkeleton, {}) }, i)) }) });
1057
1148
  }
1058
1149
  function DeliveryTable({ items, isLoading = false }) {
1059
- if (isLoading) {
1060
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `w-full ${_chunk22XAPV6Ncjs.CONTENT_CARD_SKELETON_FRAME_CLASS}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonRow, {}, i)) }) });
1061
- }
1150
+ if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliveryTableSkeleton, {});
1062
1151
  if (items.length === 0) {
1063
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `w-full ${_chunk22XAPV6Ncjs.CONTENT_CARD_SKELETON_FRAME_CLASS} p-[var(--spacing-system-xlf)] text-center`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "No tasks available" }) });
1152
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TABLE_FRAME_CLASS} p-[var(--spacing-system-xlf)] text-center`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "No tasks available" }) });
1064
1153
  }
1065
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `w-full ${_chunk22XAPV6Ncjs.CONTENT_CARD_SKELETON_FRAME_CLASS}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: items.map((item) => (
1154
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TABLE_FRAME_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: items.map((item) => (
1066
1155
  // DOM id lives on DeliveryRow's own outer element (no wrapper
1067
1156
  // div). Anchor mirrors `buildDevSectionUrl('delivery', <id>)`
1068
1157
  // → `#delivery-<external_id>`; `useScrollToHash` in
1069
1158
  // `delivery-lists.tsx` finds the row by id and scrolls. The
1070
1159
  // outer wrapper here ONLY exists for the row separators.
1071
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border last:border-b-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLNGR4DXAcjs.DeliveryRow, { item, id: _chunkT5FRANE6cjs.devSectionAnchorId.call(void 0, "delivery", item.id) }) }, item.id)
1160
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROW_SEPARATOR_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7U3ELNGCcjs.DeliveryRow, { item, id: _chunk7VI7TOGIcjs.devSectionAnchorId.call(void 0, "delivery", item.id) }) }, item.id)
1072
1161
  )) }) });
1073
1162
  }
1074
1163
 
@@ -1077,8 +1166,8 @@ function DeliveryTable({ items, isLoading = false }) {
1077
1166
 
1078
1167
  var DEFAULT_COMPLETED_ENDPOINT = "/api/delivery/completed";
1079
1168
  var DEFAULT_IN_PROGRESS_ENDPOINT = "/api/delivery/in-progress";
1080
- var DEFAULT_SEARCH_PARAM_KEY3 = _chunkT5FRANE6cjs.DEV_SECTION_PARAM_KEYS.search;
1081
- var DEFAULT_TASK_TYPE_PARAM_KEY = _chunkT5FRANE6cjs.DEV_SECTION_PARAM_KEYS.deliveryTaskType;
1169
+ var DEFAULT_SEARCH_PARAM_KEY3 = _chunk7VI7TOGIcjs.DEV_SECTION_PARAM_KEYS.search;
1170
+ var DEFAULT_TASK_TYPE_PARAM_KEY = _chunk7VI7TOGIcjs.DEV_SECTION_PARAM_KEYS.deliveryTaskType;
1082
1171
  function DeliveryLists({
1083
1172
  completedApiEndpoint = DEFAULT_COMPLETED_ENDPOINT,
1084
1173
  inProgressApiEndpoint = DEFAULT_IN_PROGRESS_ENDPOINT,
@@ -1089,12 +1178,15 @@ function DeliveryLists({
1089
1178
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
1090
1179
  const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
1091
1180
  const [data, setData] = _react.useState.call(void 0, null);
1092
- const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
1181
+ const [isFetching, setIsLoading] = _react.useState.call(void 0, true);
1182
+ const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
1183
+ const isLoading = inScope || isFetching;
1093
1184
  const [error, setError] = _react.useState.call(void 0, null);
1094
1185
  const [sync, setSync] = _react.useState.call(void 0, null);
1095
1186
  const searchQuery = searchParams.get(searchParamKey) || "";
1096
1187
  const taskTypeFilter = searchParams.get(taskTypeParamKey) || "all";
1097
1188
  _react.useEffect.call(void 0, () => {
1189
+ if (inScope) return void 0;
1098
1190
  let cancelled = false;
1099
1191
  async function fetchDeliveryData() {
1100
1192
  try {
@@ -1138,22 +1230,30 @@ function DeliveryLists({
1138
1230
  return () => {
1139
1231
  cancelled = true;
1140
1232
  };
1141
- }, [searchQuery, taskTypeFilter, completedApiEndpoint, inProgressApiEndpoint, searchParamKey, taskTypeParamKey]);
1142
- const filteredCompleted = _optionalChain([data, 'optionalAccess', _23 => _23.completed]) || [];
1143
- const filteredInProgress = _optionalChain([data, 'optionalAccess', _24 => _24.inProgress]) || [];
1144
- _chunkXCH7SPGIcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunk3RYIF4OWcjs.STICKY_HEADER_OFFSET_PX });
1145
- const syncInPage = _chunkLNGR4DXAcjs.usePageDataSync.call(void 0, sync, isLoading && !data);
1233
+ }, [
1234
+ inScope,
1235
+ searchQuery,
1236
+ taskTypeFilter,
1237
+ completedApiEndpoint,
1238
+ inProgressApiEndpoint,
1239
+ searchParamKey,
1240
+ taskTypeParamKey
1241
+ ]);
1242
+ const filteredCompleted = _optionalChain([data, 'optionalAccess', _25 => _25.completed]) || [];
1243
+ const filteredInProgress = _optionalChain([data, 'optionalAccess', _26 => _26.inProgress]) || [];
1244
+ _chunkXVFM6SJAcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkXXJL5GY3cjs.STICKY_HEADER_OFFSET_PX });
1245
+ const syncInPage = _chunk7U3ELNGCcjs.usePageDataSync.call(void 0, sync, isLoading && !data);
1146
1246
  const showCompleted = true;
1147
1247
  const showInProgress = true;
1148
1248
  const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
1149
1249
  const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
1150
1250
  if (error) {
1151
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.LoadError, { message: error, onRetry: () => window.location.reload() }) });
1251
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.LoadError, { message: error, onRetry: () => window.location.reload() }) });
1152
1252
  }
1153
1253
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[40px]", children: [
1154
- !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.DataSyncLine, { sync, loading: isLoading && !data }),
1254
+ !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.DataSyncLine, { sync, loading: isLoading && !data }),
1155
1255
  !isLoading && !hasResults && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1156
- _chunkLNGR4DXAcjs.ListEmptyState,
1256
+ _chunk7U3ELNGCcjs.ListEmptyState,
1157
1257
  {
1158
1258
  isFiltered: hasActiveFilters,
1159
1259
  filtered: {
@@ -1255,7 +1355,9 @@ function useLegalDocs(docType, options = {}) {
1255
1355
  setIsLoading(!initialData);
1256
1356
  setReloadCount(0);
1257
1357
  }
1358
+ const held = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
1258
1359
  _react.useEffect.call(void 0, () => {
1360
+ if (held) return;
1259
1361
  if (initialData && reloadCount === 0) return;
1260
1362
  const requestId = ++requestIdRef.current;
1261
1363
  const isCurrent = () => requestId === requestIdRef.current;
@@ -1287,7 +1389,7 @@ function useLegalDocs(docType, options = {}) {
1287
1389
  }
1288
1390
  };
1289
1391
  void fetchDocument();
1290
- }, [docType, effectiveEndpoint, initialData, reloadCount]);
1392
+ }, [docType, effectiveEndpoint, initialData, reloadCount, held]);
1291
1393
  const refetch = () => {
1292
1394
  setIsLoading(true);
1293
1395
  setError(null);
@@ -1335,7 +1437,8 @@ function toLegalDocumentSummaries(payload) {
1335
1437
  }
1336
1438
  function useLegalDocuments(options = {}) {
1337
1439
  const endpoint = _nullishCoalesce(options.apiEndpoint, () => ( "/api/legal"));
1338
- const enabled = _nullishCoalesce(options.enabled, () => ( true));
1440
+ const held = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
1441
+ const enabled = (_nullishCoalesce(options.enabled, () => ( true))) && !held;
1339
1442
  const [state, setState] = _react.useState.call(void 0, { documents: [], isLoading: enabled, error: null });
1340
1443
  _react.useEffect.call(void 0, () => {
1341
1444
  let current = enabled;
@@ -1368,11 +1471,15 @@ function useLegalDocuments(options = {}) {
1368
1471
 
1369
1472
  function legalDocumentStampLabel(doc) {
1370
1473
  const parts = [
1371
- _optionalChain([doc, 'optionalAccess', _25 => _25.version]) ? `Version ${doc.version}` : null,
1372
- _optionalChain([doc, 'optionalAccess', _26 => _26.effectiveDate]) ? `Effective ${doc.effectiveDate}` : null
1474
+ _optionalChain([doc, 'optionalAccess', _27 => _27.version]) ? `Version ${doc.version}` : null,
1475
+ _optionalChain([doc, 'optionalAccess', _28 => _28.effectiveDate]) ? `Effective ${doc.effectiveDate}` : null
1373
1476
  ].filter((part) => part !== null);
1374
1477
  return parts.length > 0 ? parts.join(" \xB7 ") : null;
1375
1478
  }
1479
+ var LEGAL_DOCUMENT_SKELETON_SECTIONS = 3;
1480
+ function LegalDocumentSkeleton({ sections = LEGAL_DOCUMENT_SKELETON_SECTIONS }) {
1481
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading the document", className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.RichMarkdownRendererSkeleton, { title: true, sections }) });
1482
+ }
1376
1483
  function LegalDocumentPage({
1377
1484
  docType,
1378
1485
  title: titleProp,
@@ -1383,65 +1490,62 @@ function LegalDocumentPage({
1383
1490
  emptyStateMessage: emptyStateMessageProp,
1384
1491
  initialData = null,
1385
1492
  apiEndpoint,
1386
- MarkdownRenderer = _chunkVL6IXTAIcjs.RichMarkdownRenderer,
1493
+ MarkdownRenderer = _chunkVRDHAR3Xcjs.RichMarkdownRenderer,
1387
1494
  documentsEndpoint,
1388
1495
  backButton,
1389
1496
  faq,
1390
1497
  shell = true
1391
1498
  }) {
1392
1499
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
1393
- const { data, isLoading, error } = useLegalDocs(docType, { initialData, apiEndpoint });
1500
+ const { data, isLoading: fetching, error } = useLegalDocs(docType, { initialData, apiEndpoint });
1501
+ const isLoading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, ) || fetching;
1394
1502
  const backCfg = backButton === false ? void 0 : {
1395
- label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _27 => _27.label]), () => ( "Back to home")),
1396
- onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _28 => _28.href]), () => ( "/")))
1503
+ label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _29 => _29.label]), () => ( "Back to home")),
1504
+ onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _30 => _30.href]), () => ( "/")))
1397
1505
  };
1398
1506
  const { documents } = useLegalDocuments({ apiEndpoint: documentsEndpoint, enabled: Boolean(documentsEndpoint) });
1399
1507
  const listed = documents.find((doc) => doc.docType === docType);
1400
- const title = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(titleProp, () => ( _optionalChain([data, 'optionalAccess', _29 => _29.title]))), () => ( _optionalChain([listed, 'optionalAccess', _30 => _30.title]))), () => ( "Legal document"));
1401
- const faqTopic = faq && "topic" in faq ? faq.topic : _optionalChain([listed, 'optionalAccess', _31 => _31.faqTopic]);
1508
+ const title = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(titleProp, () => ( _optionalChain([data, 'optionalAccess', _31 => _31.title]))), () => ( _optionalChain([listed, 'optionalAccess', _32 => _32.title]))), () => ( "Legal document"));
1509
+ const faqTopic = faq && "topic" in faq ? faq.topic : _optionalChain([listed, 'optionalAccess', _33 => _33.faqTopic]);
1402
1510
  const faqSlot = faq && faqTopic ? { ...faq, topic: faqTopic } : null;
1403
1511
  const errorTitle = _nullishCoalesce(errorTitleProp, () => ( `Unable to load ${title}`));
1404
1512
  const emptyStateMessage = _nullishCoalesce(emptyStateMessageProp, () => ( `${title} is not available at this time.`));
1405
- const subtitle = _nullishCoalesce(legalDocumentStampLabel(data), () => ( fallbackDescription));
1406
- const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2IFCRPNPcjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: [
1407
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.DataSyncLine, { sync: data ? { source: "github", syncedAt: data.lastSynced } : null, loading: isLoading && !data }),
1408
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-1 flex-col items-start gap-6 lg:flex-row lg:gap-10", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className: "space-y-2", children: isLoading ? (
1409
- // Loading skeleton matching Knowledge Hub pattern
1410
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6", children: [
1411
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-10 w-3/4 rounded-lg" }),
1412
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
1413
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-full rounded" }),
1414
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-full rounded" }),
1415
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-5/6 rounded" })
1416
- ] }),
1417
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-32 rounded-lg border border-ods-border" }),
1418
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
1419
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-full rounded" }),
1420
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-4/5 rounded" })
1421
- ] })
1422
- ] })
1423
- ) : error ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 text-center", children: [
1424
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rounded-lg border border-ods-error bg-ods-error-secondary p-6", children: [
1425
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mb-2 text-ods-error", children: errorTitle }),
1426
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-error text-h6", children: error })
1427
- ] }),
1428
- contactEmail && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-ods-text-secondary", children: [
1429
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { children: errorContactPrompt }),
1430
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail })
1431
- ] })
1432
- ] }) : data ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: data.content, sectionIds: data.sections || [], demoteMarkdownH1ToH2: true }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "py-16 text-center text-ods-text-secondary", children: [
1433
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4", children: emptyStateMessage }),
1434
- contactEmail && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "mt-2", children: [
1435
- "Please contact",
1436
- " ",
1437
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail }),
1438
- " ",
1439
- "for more information."
1440
- ] })
1441
- ] }) }) }) }) }),
1442
- faqSlot && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3FC6AKEJcjs.FaqSection, { ..._chunk3FC6AKEJcjs.pageFaqProps.call(void 0, faqSlot) })
1443
- ] });
1444
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVL6IXTAIcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
1513
+ const subtitle = isLoading ? void 0 : _nullishCoalesce(legalDocumentStampLabel(data), () => ( fallbackDescription));
1514
+ const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1515
+ _chunkZV45VS6Kcjs.PageLayout,
1516
+ {
1517
+ title,
1518
+ subtitle,
1519
+ subtitleRow: isLoading ? "always" : void 0,
1520
+ backButton: backCfg,
1521
+ titleSize: "h1",
1522
+ titleWrap: true,
1523
+ children: [
1524
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.DataSyncLine, { sync: data ? { source: "github", syncedAt: data.lastSynced } : null, loading: isLoading }),
1525
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-1 flex-col items-start gap-6 lg:flex-row lg:gap-10", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "flex-1", isLoading && "w-full"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className: "space-y-2", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LegalDocumentSkeleton, {}) : error ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 text-center", children: [
1526
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rounded-lg border border-ods-error bg-ods-error-secondary p-6", children: [
1527
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mb-2 text-ods-error", children: errorTitle }),
1528
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-error text-h6", children: error })
1529
+ ] }),
1530
+ contactEmail && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-ods-text-secondary", children: [
1531
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { children: errorContactPrompt }),
1532
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail })
1533
+ ] })
1534
+ ] }) : data ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: data.content, sectionIds: data.sections || [], demoteMarkdownH1ToH2: true }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "py-16 text-center text-ods-text-secondary", children: [
1535
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4", children: emptyStateMessage }),
1536
+ contactEmail && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "mt-2", children: [
1537
+ "Please contact",
1538
+ " ",
1539
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail }),
1540
+ " ",
1541
+ "for more information."
1542
+ ] })
1543
+ ] }) }) }) }) }),
1544
+ faqSlot && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHNQRY6RUcjs.FaqSection, { ..._chunkHNQRY6RUcjs.pageFaqProps.call(void 0, faqSlot) })
1545
+ ]
1546
+ }
1547
+ );
1548
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
1445
1549
  }
1446
1550
 
1447
1551
 
@@ -1459,4 +1563,8 @@ function LegalDocumentPage({
1459
1563
 
1460
1564
 
1461
1565
 
1462
- exports.ProductReleasesView = ProductReleasesView; exports.MediaGalleryStrip = MediaGalleryStrip; exports.ReleaseDetailPage = ReleaseDetailPage; exports.useRoadmapVoting = useRoadmapVoting; exports.RoadmapGrid = RoadmapGrid; exports.RoadmapGridSkeleton = RoadmapGridSkeleton; exports.RoadmapView = RoadmapView; exports.DeliveryTable = DeliveryTable; exports.DeliveryLists = DeliveryLists; exports.useLegalDocs = useLegalDocs; exports.toLegalDocumentSummaries = toLegalDocumentSummaries; exports.useLegalDocuments = useLegalDocuments; exports.legalDocumentStampLabel = legalDocumentStampLabel; exports.LegalDocumentPage = LegalDocumentPage;
1566
+
1567
+
1568
+
1569
+
1570
+ exports.ProductReleasesView = ProductReleasesView; exports.MEDIA_GALLERY_STRIP_SKELETON_COUNT = MEDIA_GALLERY_STRIP_SKELETON_COUNT; exports.MediaGalleryStrip = MediaGalleryStrip; exports.MediaGalleryStripSkeleton = MediaGalleryStripSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.RoadmapGridSkeleton = RoadmapGridSkeleton; exports.useRoadmapVoting = useRoadmapVoting; exports.RoadmapGrid = RoadmapGrid; exports.RoadmapView = RoadmapView; exports.DeliveryTable = DeliveryTable; exports.DeliveryLists = DeliveryLists; exports.useLegalDocs = useLegalDocs; exports.toLegalDocumentSummaries = toLegalDocumentSummaries; exports.useLegalDocuments = useLegalDocuments; exports.legalDocumentStampLabel = legalDocumentStampLabel; exports.LEGAL_DOCUMENT_SKELETON_SECTIONS = LEGAL_DOCUMENT_SKELETON_SECTIONS; exports.LegalDocumentSkeleton = LegalDocumentSkeleton; exports.LegalDocumentPage = LegalDocumentPage;