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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1274) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/chat-protocol/decode.d.ts +0 -1
  3. package/dist/chat-protocol/decode.d.ts.map +1 -1
  4. package/dist/chat-protocol/decode.js +1 -3
  5. package/dist/chat-protocol/index.d.ts +1 -0
  6. package/dist/chat-protocol/index.d.ts.map +1 -1
  7. package/dist/chat-protocol/index.js +2 -0
  8. package/dist/{chunk-FQSXZC2K.cjs → chunk-2JRSYWFP.cjs} +3 -3
  9. package/dist/{chunk-I5MSCD57.cjs → chunk-3LW5TD54.cjs} +7 -3
  10. package/dist/{chunk-7AM3AFM4.cjs → chunk-4YIDZCTL.cjs} +1 -3
  11. package/dist/{chunk-SVP6DJFL.cjs → chunk-57B5RUYD.cjs} +2 -2
  12. package/dist/{chunk-R3TWQ3ZJ.cjs → chunk-5P4TDV7V.cjs} +16 -7
  13. package/dist/chunk-65VVJSQZ.cjs +109 -0
  14. package/dist/{chunk-VLJFAGMR.cjs → chunk-7U3ELNGC.cjs} +103 -61
  15. package/dist/{chunk-T5FRANE6.cjs → chunk-7VI7TOGI.cjs} +509 -353
  16. package/dist/{chunk-PYK4ZSEZ.cjs → chunk-7XFVUUVZ.cjs} +14 -14
  17. package/dist/{chunk-M7YZGRAV.cjs → chunk-AAECWUNV.cjs} +35 -8
  18. package/dist/{chunk-YUMFVQIN.cjs → chunk-C42WIUH6.cjs} +11 -5
  19. package/dist/{chunk-22XAPV6N.cjs → chunk-DGNBXZXT.cjs} +1069 -1020
  20. package/dist/{chunk-HOTM4UM6.cjs → chunk-E76ONBKF.cjs} +28 -0
  21. package/dist/{chunk-PERN37KO.cjs → chunk-F7R3U5EN.cjs} +5 -25
  22. package/dist/{chunk-K6VWTUCH.cjs → chunk-FL2RMEDX.cjs} +2 -2
  23. package/dist/chunk-FZB4RMRK.cjs +695 -0
  24. package/dist/{chunk-BIA77I6B.cjs → chunk-GTONIRJU.cjs} +56 -54
  25. package/dist/{chunk-3FC6AKEJ.cjs → chunk-HNQRY6RU.cjs} +200 -87
  26. package/dist/chunk-INI4ADPT.cjs +495 -0
  27. package/dist/{chunk-2Y36SQSZ.cjs → chunk-JGWN6GH5.cjs} +11 -7
  28. package/dist/{chunk-2OPYWMAV.cjs → chunk-JKQVKWLB.cjs} +258 -179
  29. package/dist/{chunk-EQZXJUYV.cjs → chunk-JTSUAHDL.cjs} +73 -51
  30. package/dist/chunk-K3IHNXR4.cjs +40 -0
  31. package/dist/{chunk-EFTUFJS2.cjs → chunk-LELS4XMX.cjs} +20 -22
  32. package/dist/{chunk-ZCU2PYCW.cjs → chunk-MPTMT773.cjs} +62 -62
  33. package/dist/{chunk-LVKUMVUJ.cjs → chunk-NBVZIHGS.cjs} +12 -8
  34. package/dist/{chunk-RQQVN7LC.cjs → chunk-NF3PBWDJ.cjs} +521 -413
  35. package/dist/{chunk-BVA7YX4P.cjs → chunk-NJMZ3N7Q.cjs} +44 -44
  36. package/dist/{chunk-OJJ4RL2T.cjs → chunk-R3JX4MXD.cjs} +4 -4
  37. package/dist/{chunk-GY2JESOC.cjs → chunk-RB7VLVMD.cjs} +15 -15
  38. package/dist/{chunk-47GZ33ND.cjs → chunk-REJMFXGD.cjs} +198 -73
  39. package/dist/chunk-RMUSPTJN.cjs +102 -0
  40. package/dist/{chunk-3RFQPQ7Z.cjs → chunk-RNLRS4ID.cjs} +3 -3
  41. package/dist/{chunk-MDB65HQC.cjs → chunk-RTBYQWAV.cjs} +286 -201
  42. package/dist/{chunk-63N4FN5V.cjs → chunk-SETFUCZA.cjs} +7 -7
  43. package/dist/{chunk-2QMBXGMQ.cjs → chunk-TF5D5MNO.cjs} +222 -120
  44. package/dist/{chunk-NET74KSQ.cjs → chunk-TZ4GKUO2.cjs} +5 -5
  45. package/dist/{chunk-B3W7RCQF.cjs → chunk-UW7UWUZU.cjs} +105 -117
  46. package/dist/{chunk-MWLD6NXV.cjs → chunk-VFZFCRAL.cjs} +4 -6
  47. package/dist/{chunk-FMH2DYBC.cjs → chunk-VRDHAR3X.cjs} +4229 -3918
  48. package/dist/{chunk-NJS7FQRW.cjs → chunk-VYYLYZUC.cjs} +207 -74
  49. package/dist/{chunk-NO5UJLLQ.cjs → chunk-WEANWBJH.cjs} +6 -1
  50. package/dist/{chunk-QQ7LKNNP.cjs → chunk-WO3XO27C.cjs} +13 -13
  51. package/dist/{chunk-L2V7K7RR.cjs → chunk-X7ECVSVN.cjs} +43 -41
  52. package/dist/chunk-XFRBEXQN.cjs +304 -0
  53. package/dist/{chunk-AKK3EO37.cjs → chunk-XIFEZ2JT.cjs} +35 -23
  54. package/dist/{chunk-XCH7SPGI.cjs → chunk-XVFM6SJA.cjs} +61 -52
  55. package/dist/{chunk-3RYIF4OW.cjs → chunk-XXJL5GY3.cjs} +3 -3
  56. package/dist/{chunk-GZKWF6NH.cjs → chunk-XZ6DKGT4.cjs} +34 -34
  57. package/dist/{chunk-74ALTXXC.cjs → chunk-YL6ZB2SR.cjs} +1624 -1440
  58. package/dist/{chunk-TSJUL6IH.cjs → chunk-YRFWOJF4.cjs} +16 -8
  59. package/dist/{chunk-HTRILBJD.cjs → chunk-YXDHVHB2.cjs} +30 -13
  60. package/dist/{chunk-RO72PRQI.cjs → chunk-ZRDMGMY7.cjs} +75 -50
  61. package/dist/{chunk-WA4X55XY.cjs → chunk-ZV45VS6K.cjs} +359 -432
  62. package/dist/{cloud-tenants-6PSTDE3F.cjs → cloud-tenants-U2KMEIO7.cjs} +35 -39
  63. package/dist/components/agent-identity.d.ts +1 -2
  64. package/dist/components/agent-identity.d.ts.map +1 -1
  65. package/dist/components/agent-identity.js +0 -1
  66. package/dist/components/agent-mark.d.ts +4 -6
  67. package/dist/components/agent-mark.d.ts.map +1 -1
  68. package/dist/components/agent-mark.js +7 -8
  69. package/dist/components/authors/author-detail-view.d.ts.map +1 -1
  70. package/dist/components/authors/author-detail-view.js +51 -18
  71. package/dist/components/calendar.cjs +10 -10
  72. package/dist/components/case-studies/entity-quotes-panel.d.ts +6 -4
  73. package/dist/components/case-studies/entity-quotes-panel.d.ts.map +1 -1
  74. package/dist/components/case-studies/entity-quotes-panel.js +44 -11
  75. package/dist/components/case-studies/index.cjs +140 -70
  76. package/dist/components/case-studies/index.d.ts +2 -2
  77. package/dist/components/case-studies/index.d.ts.map +1 -1
  78. package/dist/components/case-studies/index.js +5 -2
  79. package/dist/components/case-studies/quote-cards-strip.d.ts +23 -2
  80. package/dist/components/case-studies/quote-cards-strip.d.ts.map +1 -1
  81. package/dist/components/case-studies/quote-cards-strip.js +48 -10
  82. package/dist/components/categories-cart.d.ts +7 -0
  83. package/dist/components/categories-cart.d.ts.map +1 -1
  84. package/dist/components/categories-cart.js +58 -36
  85. package/dist/components/category-card.js +1 -1
  86. package/dist/components/chat/chat-attachment-bar.js +1 -1
  87. package/dist/components/chat/chat-container.d.ts.map +1 -1
  88. package/dist/components/chat/chat-container.js +2 -1
  89. package/dist/components/chat/chat-ticket-list.d.ts +0 -1
  90. package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
  91. package/dist/components/chat/chat-turn.d.ts +31 -1
  92. package/dist/components/chat/chat-turn.d.ts.map +1 -1
  93. package/dist/components/chat/chat-turn.js +85 -19
  94. package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
  95. package/dist/components/chat/embeddable-chat.js +1 -1
  96. package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts +0 -15
  97. package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts.map +1 -1
  98. package/dist/components/chat/entity-cards/admin-content-card-grid.js +2 -38
  99. package/dist/components/chat/entity-cards/admin-content-card.d.ts +15 -0
  100. package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -1
  101. package/dist/components/chat/entity-cards/admin-content-card.js +52 -10
  102. package/dist/components/chat/entity-cards/blog-card.d.ts +9 -2
  103. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
  104. package/dist/components/chat/entity-cards/blog-card.js +49 -33
  105. package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -1
  106. package/dist/components/chat/entity-cards/campaign-card-admin.js +4 -11
  107. package/dist/components/chat/entity-cards/case-study-card.d.ts +27 -9
  108. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
  109. package/dist/components/chat/entity-cards/case-study-card.js +80 -54
  110. package/dist/components/chat/entity-cards/chat-ticket-item.d.ts +7 -0
  111. package/dist/components/chat/entity-cards/chat-ticket-item.d.ts.map +1 -1
  112. package/dist/components/chat/entity-cards/chat-ticket-item.js +24 -28
  113. package/dist/components/chat/entity-cards/customer-interview-card.d.ts +9 -2
  114. package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -1
  115. package/dist/components/chat/entity-cards/customer-interview-card.js +39 -36
  116. package/dist/components/chat/entity-cards/data-room-doc-card.d.ts.map +1 -1
  117. package/dist/components/chat/entity-cards/data-room-doc-card.js +14 -16
  118. package/dist/components/chat/entity-cards/design-doc-card.d.ts +8 -2
  119. package/dist/components/chat/entity-cards/design-doc-card.d.ts.map +1 -1
  120. package/dist/components/chat/entity-cards/design-doc-card.js +37 -43
  121. package/dist/components/chat/entity-cards/dispatch.d.ts +2 -5
  122. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
  123. package/dist/components/chat/entity-cards/dispatch.js +6 -6
  124. package/dist/components/chat/entity-cards/employee-entry-card.d.ts.map +1 -1
  125. package/dist/components/chat/entity-cards/employee-entry-card.js +5 -5
  126. package/dist/components/chat/entity-cards/entity-author-card.d.ts +33 -6
  127. package/dist/components/chat/entity-cards/entity-author-card.d.ts.map +1 -1
  128. package/dist/components/chat/entity-cards/entity-author-card.js +98 -32
  129. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts +9 -0
  130. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts.map +1 -1
  131. package/dist/components/chat/entity-cards/entity-portrait-card.js +46 -18
  132. package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -1
  133. package/dist/components/chat/entity-cards/generic-entity-card.js +14 -17
  134. package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -1
  135. package/dist/components/chat/entity-cards/github-activity-card.js +15 -20
  136. package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -1
  137. package/dist/components/chat/entity-cards/hubspot-ticket-card.js +14 -19
  138. package/dist/components/chat/entity-cards/index.d.ts +8 -7
  139. package/dist/components/chat/entity-cards/index.d.ts.map +1 -1
  140. package/dist/components/chat/entity-cards/index.js +21 -8
  141. package/dist/components/chat/entity-cards/investor-update-card.d.ts +9 -3
  142. package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -1
  143. package/dist/components/chat/entity-cards/investor-update-card.js +28 -28
  144. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +11 -2
  145. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -1
  146. package/dist/components/chat/entity-cards/onboarding-guide-card.js +66 -63
  147. package/dist/components/chat/entity-cards/program-card.d.ts +9 -2
  148. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  149. package/dist/components/chat/entity-cards/program-card.js +69 -58
  150. package/dist/components/chat/entity-cards/roadmap-card.d.ts +10 -1
  151. package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -1
  152. package/dist/components/chat/entity-cards/roadmap-card.js +148 -156
  153. package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts.map +1 -1
  154. package/dist/components/chat/entity-cards/roadmap-vote-button.js +5 -1
  155. package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -1
  156. package/dist/components/chat/entity-cards/slack-message-card.js +23 -18
  157. package/dist/components/chat/hooks/index.d.ts +7 -1
  158. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  159. package/dist/components/chat/hooks/index.js +8 -1
  160. package/dist/components/chat/hooks/use-ask-prompts.d.ts.map +1 -1
  161. package/dist/components/chat/hooks/use-ask-prompts.js +3 -1
  162. package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts +1 -1
  163. package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts.map +1 -1
  164. package/dist/components/chat/hooks/use-chat-history-hydration.d.ts +1 -1
  165. package/dist/components/chat/hooks/use-chat-history-hydration.d.ts.map +1 -1
  166. package/dist/components/chat/hooks/use-chat.d.ts +1 -2
  167. package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
  168. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +0 -2
  169. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
  170. package/dist/components/chat/hooks/use-nats-chat-adapter.js +0 -8
  171. package/dist/components/chat/hooks/use-proxied-image-url.d.ts +17 -13
  172. package/dist/components/chat/hooks/use-proxied-image-url.d.ts.map +1 -1
  173. package/dist/components/chat/hooks/use-proxied-image-url.js +10 -8
  174. package/dist/components/chat/hooks/use-slash-commands.d.ts +1 -2
  175. package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -1
  176. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +1 -8
  177. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
  178. package/dist/components/chat/hooks/use-sse-chat-adapter.js +1 -1
  179. package/dist/components/chat/index.cjs +44 -29
  180. package/dist/components/chat/stream/chat-stream-reducer.d.ts +1 -1
  181. package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -1
  182. package/dist/components/chat/stream/chat-stream-reducer.js +1 -1
  183. package/dist/components/chat/types/entities/index.d.ts +6 -4
  184. package/dist/components/chat/types/entities/index.d.ts.map +1 -1
  185. package/dist/components/chat/types/entities/index.js +4 -4
  186. package/dist/components/chat/types/entities/investor-update.d.ts +1 -1
  187. package/dist/components/chat/types/entities/investor-update.d.ts.map +1 -1
  188. package/dist/components/chat/types/entities/program-types.d.ts +2 -1
  189. package/dist/components/chat/types/entities/program-types.d.ts.map +1 -1
  190. package/dist/components/chat/types/entities/program-types.js +1 -4
  191. package/dist/components/chat/utils/compact-card-classes.d.ts +9 -1
  192. package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
  193. package/dist/components/chat/utils/compact-card-classes.js +11 -2
  194. package/dist/components/chat/utils/compact-card-skeleton.d.ts +40 -0
  195. package/dist/components/chat/utils/compact-card-skeleton.d.ts.map +1 -0
  196. package/dist/components/chat/utils/compact-card-skeleton.js +61 -0
  197. package/dist/components/chat/utils/icon-library.d.ts +0 -1
  198. package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
  199. package/dist/components/chat/utils/index.d.ts +5 -3
  200. package/dist/components/chat/utils/index.d.ts.map +1 -1
  201. package/dist/components/chat/utils/index.js +3 -2
  202. package/dist/components/chat/utils/scroll-anchor.d.ts +1 -2
  203. package/dist/components/chat/utils/scroll-anchor.d.ts.map +1 -1
  204. package/dist/components/chat/utils/scroll-anchor.js +0 -1
  205. package/dist/components/chat/utils/source-row-cta.d.ts +0 -2
  206. package/dist/components/chat/utils/source-row-cta.d.ts.map +1 -1
  207. package/dist/components/chat/utils/source-row-cta.js +1 -2
  208. package/dist/components/comment-card.d.ts +15 -0
  209. package/dist/components/comment-card.d.ts.map +1 -1
  210. package/dist/components/comment-card.js +178 -119
  211. package/dist/components/comment-thread.d.ts +29 -0
  212. package/dist/components/comment-thread.d.ts.map +1 -1
  213. package/dist/components/comment-thread.js +76 -18
  214. package/dist/components/contact/index.cjs +36 -40
  215. package/dist/components/content-loading-container.d.ts +1 -1
  216. package/dist/components/docs/doc-viewer.d.ts.map +1 -1
  217. package/dist/components/docs/doc-viewer.js +10 -9
  218. package/dist/components/docs/index.cjs +39 -43
  219. package/dist/components/docs/skeletons.d.ts +0 -5
  220. package/dist/components/docs/skeletons.d.ts.map +1 -1
  221. package/dist/components/docs/skeletons.js +30 -50
  222. package/dist/components/docs/use-document-tree.d.ts +0 -1
  223. package/dist/components/docs/use-document-tree.d.ts.map +1 -1
  224. package/dist/components/docs/use-document-tree.js +6 -1
  225. package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
  226. package/dist/components/embeds/embed-iframe.js +3 -0
  227. package/dist/components/embeds/index.cjs +38 -40
  228. package/dist/components/embeds/index.d.ts +1 -1
  229. package/dist/components/embeds/index.d.ts.map +1 -1
  230. package/dist/components/embeds/index.js +2 -1
  231. package/dist/components/embeds/markdown-image.d.ts.map +1 -1
  232. package/dist/components/embeds/markdown-image.js +5 -2
  233. package/dist/components/embeds/og-link-preview.d.ts +7 -3
  234. package/dist/components/embeds/og-link-preview.d.ts.map +1 -1
  235. package/dist/components/embeds/og-link-preview.js +106 -62
  236. package/dist/components/faq/faq-document-page.d.ts +5 -1
  237. package/dist/components/faq/faq-document-page.d.ts.map +1 -1
  238. package/dist/components/faq/faq-document-page.js +5 -1
  239. package/dist/components/faq/faq-section.d.ts +34 -1
  240. package/dist/components/faq/faq-section.d.ts.map +1 -1
  241. package/dist/components/faq/faq-section.js +146 -59
  242. package/dist/components/faq/index.cjs +41 -41
  243. package/dist/components/faq/index.d.ts +1 -1
  244. package/dist/components/faq/index.d.ts.map +1 -1
  245. package/dist/components/faq/index.js +9 -1
  246. package/dist/components/faq-accordion.d.ts +15 -0
  247. package/dist/components/faq-accordion.d.ts.map +1 -1
  248. package/dist/components/faq-accordion.js +37 -9
  249. package/dist/components/features/ai-enrich/AIStatusIndicator.d.ts.map +1 -1
  250. package/dist/components/features/ai-enrich/AIStatusIndicator.js +2 -1
  251. package/dist/components/features/approval-level.d.ts +15 -1
  252. package/dist/components/features/approval-level.d.ts.map +1 -1
  253. package/dist/components/features/approval-level.js +42 -6
  254. package/dist/components/features/capability-explorer.d.ts +5 -1
  255. package/dist/components/features/capability-explorer.d.ts.map +1 -1
  256. package/dist/components/features/capability-explorer.js +42 -37
  257. package/dist/components/features/cards-strip.d.ts +9 -0
  258. package/dist/components/features/cards-strip.d.ts.map +1 -1
  259. package/dist/components/features/cards-strip.js +35 -11
  260. package/dist/components/features/command-box.d.ts +19 -0
  261. package/dist/components/features/command-box.d.ts.map +1 -1
  262. package/dist/components/features/command-box.js +103 -11
  263. package/dist/components/features/conversation-card.d.ts +70 -5
  264. package/dist/components/features/conversation-card.d.ts.map +1 -1
  265. package/dist/components/features/conversation-card.js +146 -13
  266. package/dist/components/features/devices/device-selector/device-selector.d.ts.map +1 -1
  267. package/dist/components/features/devices/device-selector/device-selector.js +1 -0
  268. package/dist/components/features/devices/devices-panel-view.d.ts +1 -1
  269. package/dist/components/features/devices/devices-panel-view.js +1 -1
  270. package/dist/components/features/entity-tag-badges.d.ts +32 -7
  271. package/dist/components/features/entity-tag-badges.d.ts.map +1 -1
  272. package/dist/components/features/entity-tag-badges.js +73 -9
  273. package/dist/components/features/entity-video-section.d.ts +14 -14
  274. package/dist/components/features/entity-video-section.d.ts.map +1 -1
  275. package/dist/components/features/entity-video-section.js +29 -22
  276. package/dist/components/features/figma-prototype-viewer.d.ts.map +1 -1
  277. package/dist/components/features/figma-prototype-viewer.js +3 -10
  278. package/dist/components/features/index.cjs +77 -39
  279. package/dist/components/features/index.d.ts +3 -0
  280. package/dist/components/features/index.d.ts.map +1 -1
  281. package/dist/components/features/index.js +5 -0
  282. package/dist/components/features/knowledge-base/index.d.ts +2 -1
  283. package/dist/components/features/knowledge-base/index.d.ts.map +1 -1
  284. package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts +0 -1
  285. package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts.map +1 -1
  286. package/dist/components/features/model-token-rates.d.ts.map +1 -1
  287. package/dist/components/features/model-token-rates.js +50 -78
  288. package/dist/components/features/notifications/approval-request-notification-tile.d.ts.map +1 -1
  289. package/dist/components/features/notifications/approval-request-notification-tile.js +9 -5
  290. package/dist/components/features/notifications/notification-tile.d.ts +22 -7
  291. package/dist/components/features/notifications/notification-tile.d.ts.map +1 -1
  292. package/dist/components/features/notifications/notification-tile.js +42 -15
  293. package/dist/components/features/paths-display.d.ts +9 -0
  294. package/dist/components/features/paths-display.d.ts.map +1 -1
  295. package/dist/components/features/paths-display.js +50 -5
  296. package/dist/components/features/platform-badge.d.ts +2 -0
  297. package/dist/components/features/platform-badge.d.ts.map +1 -1
  298. package/dist/components/features/platform-badge.js +33 -2
  299. package/dist/components/features/push-button-selector.d.ts +23 -1
  300. package/dist/components/features/push-button-selector.d.ts.map +1 -1
  301. package/dist/components/features/push-button-selector.js +114 -41
  302. package/dist/components/features/remote-session/index.d.ts +2 -2
  303. package/dist/components/features/remote-session/index.d.ts.map +1 -1
  304. package/dist/components/features/remote-session/index.js +3 -3
  305. package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts +2 -0
  306. package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts.map +1 -1
  307. package/dist/components/features/remote-session/remote-desktop-chat-message-row.js +18 -4
  308. package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts.map +1 -1
  309. package/dist/components/features/remote-session/remote-desktop-chat-panel.js +11 -2
  310. package/dist/components/features/remote-session/remote-desktop-view.d.ts +6 -6
  311. package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -1
  312. package/dist/components/features/remote-session/remote-desktop-view.js +27 -27
  313. package/dist/components/features/remote-session/remote-session-chat-panel.js +1 -1
  314. package/dist/components/features/status-filter-component.d.ts +19 -1
  315. package/dist/components/features/status-filter-component.d.ts.map +1 -1
  316. package/dist/components/features/status-filter-component.js +106 -43
  317. package/dist/components/features/use-video-warmup.d.ts +1 -1
  318. package/dist/components/features/use-video-warmup.d.ts.map +1 -1
  319. package/dist/components/features/use-video-warmup.js +2 -5
  320. package/dist/components/features/use-walkthrough-video.d.ts.map +1 -1
  321. package/dist/components/features/use-walkthrough-video.js +4 -1
  322. package/dist/components/features/video-bites-strip.d.ts +42 -1
  323. package/dist/components/features/video-bites-strip.d.ts.map +1 -1
  324. package/dist/components/features/video-bites-strip.js +100 -21
  325. package/dist/components/features/video-hover-preview.d.ts +1 -1
  326. package/dist/components/features/video-hover-preview.d.ts.map +1 -1
  327. package/dist/components/features/video.d.ts +9 -2
  328. package/dist/components/features/video.d.ts.map +1 -1
  329. package/dist/components/features/video.js +10 -5
  330. package/dist/components/features/walkthrough-video.d.ts.map +1 -1
  331. package/dist/components/features/walkthrough-video.js +5 -1
  332. package/dist/components/help-center-pages/download-apps-page.d.ts.map +1 -1
  333. package/dist/components/help-center-pages/download-apps-page.js +65 -33
  334. package/dist/components/help-center-pages/index.cjs +410 -316
  335. package/dist/components/help-center-pages/trust-center-page.d.ts +21 -9
  336. package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
  337. package/dist/components/help-center-pages/trust-center-page.js +100 -67
  338. package/dist/components/help-center-pages/trust-center-sections.d.ts +19 -14
  339. package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
  340. package/dist/components/help-center-pages/trust-center-sections.js +124 -97
  341. package/dist/components/icon-display.d.ts.map +1 -1
  342. package/dist/components/icon-display.js +6 -0
  343. package/dist/components/index.cjs +1505 -380
  344. package/dist/components/index.d.ts +5 -2
  345. package/dist/components/index.d.ts.map +1 -1
  346. package/dist/components/index.js +12 -2
  347. package/dist/components/interactive-wrapper.d.ts.map +1 -1
  348. package/dist/components/interactive-wrapper.js +2 -1
  349. package/dist/components/layout/list-page-layout.d.ts +3 -3
  350. package/dist/components/layout/list-page-layout.d.ts.map +1 -1
  351. package/dist/components/layout/page-container.d.ts +8 -1
  352. package/dist/components/layout/page-container.d.ts.map +1 -1
  353. package/dist/components/layout/page-container.js +25 -10
  354. package/dist/components/layout/page-data-sync.d.ts +7 -1
  355. package/dist/components/layout/page-data-sync.d.ts.map +1 -1
  356. package/dist/components/layout/page-data-sync.js +13 -4
  357. package/dist/components/layout/page-heading.d.ts +31 -0
  358. package/dist/components/layout/page-heading.d.ts.map +1 -1
  359. package/dist/components/layout/page-heading.js +44 -1
  360. package/dist/components/layout/page-layout.d.ts +4 -4
  361. package/dist/components/layout/page-layout.d.ts.map +1 -1
  362. package/dist/components/layout/page-layout.js +4 -5
  363. package/dist/components/layout/title-block.d.ts +12 -1
  364. package/dist/components/layout/title-block.d.ts.map +1 -1
  365. package/dist/components/layout/title-block.js +50 -12
  366. package/dist/components/loading/category-vendor-selector-skeleton.d.ts +3 -0
  367. package/dist/components/loading/category-vendor-selector-skeleton.d.ts.map +1 -1
  368. package/dist/components/loading/deprecated-layout-skeletons.d.ts +25 -0
  369. package/dist/components/loading/deprecated-layout-skeletons.d.ts.map +1 -0
  370. package/dist/components/loading/deprecated-layout-skeletons.js +78 -0
  371. package/dist/components/loading/device-card-skeleton.js +4 -4
  372. package/dist/components/loading/index.d.ts +4 -3
  373. package/dist/components/loading/index.d.ts.map +1 -1
  374. package/dist/components/loading/index.js +10 -16
  375. package/dist/components/loading/loading-region.d.ts +10 -9
  376. package/dist/components/loading/loading-region.d.ts.map +1 -1
  377. package/dist/components/loading/loading-region.js +4 -1
  378. package/dist/components/loading/msp-profile-form-skeleton.d.ts +2 -0
  379. package/dist/components/loading/msp-profile-form-skeleton.d.ts.map +1 -1
  380. package/dist/components/loading/organization-card-skeleton.d.ts +14 -10
  381. package/dist/components/loading/organization-card-skeleton.d.ts.map +1 -1
  382. package/dist/components/loading/organization-card-skeleton.js +38 -40
  383. package/dist/components/loading/page-layout-skeleton.d.ts +7 -51
  384. package/dist/components/loading/page-layout-skeleton.d.ts.map +1 -1
  385. package/dist/components/loading/page-layout-skeleton.js +2 -411
  386. package/dist/components/loading/settings-form-skeleton.d.ts +2 -0
  387. package/dist/components/loading/settings-form-skeleton.d.ts.map +1 -1
  388. package/dist/components/loading/unified-skeleton.d.ts +57 -9
  389. package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
  390. package/dist/components/loading/unified-skeleton.js +57 -8
  391. package/dist/components/log-severity-dot.d.ts +2 -0
  392. package/dist/components/log-severity-dot.d.ts.map +1 -1
  393. package/dist/components/log-severity-dot.js +11 -13
  394. package/dist/components/logs-list.d.ts.map +1 -1
  395. package/dist/components/logs-list.js +34 -43
  396. package/dist/components/media-carousel.d.ts +0 -1
  397. package/dist/components/media-carousel.d.ts.map +1 -1
  398. package/dist/components/meeting-scheduler/booking-form.d.ts +52 -8
  399. package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
  400. package/dist/components/meeting-scheduler/booking-form.js +150 -30
  401. package/dist/components/meeting-scheduler/context-panel.d.ts +18 -2
  402. package/dist/components/meeting-scheduler/context-panel.d.ts.map +1 -1
  403. package/dist/components/meeting-scheduler/context-panel.js +61 -23
  404. package/dist/components/meeting-scheduler/directory.d.ts +11 -1
  405. package/dist/components/meeting-scheduler/directory.d.ts.map +1 -1
  406. package/dist/components/meeting-scheduler/directory.js +47 -27
  407. package/dist/components/meeting-scheduler/index.cjs +556 -344
  408. package/dist/components/meeting-scheduler/index.d.ts +5 -4
  409. package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
  410. package/dist/components/meeting-scheduler/index.js +127 -102
  411. package/dist/components/meeting-scheduler/modal-header.d.ts +7 -3
  412. package/dist/components/meeting-scheduler/modal-header.d.ts.map +1 -1
  413. package/dist/components/meeting-scheduler/modal-header.js +29 -18
  414. package/dist/components/meeting-scheduler/slot-picker.d.ts +11 -4
  415. package/dist/components/meeting-scheduler/slot-picker.d.ts.map +1 -1
  416. package/dist/components/meeting-scheduler/slot-picker.js +12 -7
  417. package/dist/components/metric-value.d.ts +5 -0
  418. package/dist/components/metric-value.d.ts.map +1 -1
  419. package/dist/components/metric-value.js +15 -3
  420. package/dist/components/msp-display.d.ts +5 -0
  421. package/dist/components/msp-display.d.ts.map +1 -1
  422. package/dist/components/msp-display.js +19 -14
  423. package/dist/components/navigation/app-layout.d.ts +0 -2
  424. package/dist/components/navigation/app-layout.d.ts.map +1 -1
  425. package/dist/components/navigation/app-layout.js +1 -4
  426. package/dist/components/navigation/index.cjs +48 -42
  427. package/dist/components/navigation/index.d.ts +8 -3
  428. package/dist/components/navigation/index.d.ts.map +1 -1
  429. package/dist/components/navigation/index.js +18 -3
  430. package/dist/components/navigation/mingo-ai-button.d.ts +0 -2
  431. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  432. package/dist/components/navigation/mingo-ai-button.js +2 -4
  433. package/dist/components/navigation/mobile-nav-sheet.d.ts +0 -1
  434. package/dist/components/navigation/mobile-nav-sheet.d.ts.map +1 -1
  435. package/dist/components/navigation/mobile-nav-sheet.js +0 -2
  436. package/dist/components/navigation/multi-level-navigation.d.ts +21 -0
  437. package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -1
  438. package/dist/components/navigation/multi-level-navigation.js +98 -24
  439. package/dist/components/navigation/page-section-bar.d.ts +50 -0
  440. package/dist/components/navigation/page-section-bar.d.ts.map +1 -0
  441. package/dist/components/navigation/page-section-bar.js +85 -0
  442. package/dist/components/navigation/sticky-section-nav.d.ts +12 -0
  443. package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
  444. package/dist/components/navigation/sticky-section-nav.js +87 -20
  445. package/dist/components/navigation/ticket-alerts-button.js +1 -1
  446. package/dist/components/onboarding-guides/hooks/use-onboarding-guides.d.ts.map +1 -1
  447. package/dist/components/onboarding-guides/hooks/use-onboarding-guides.js +7 -1
  448. package/dist/components/onboarding-guides/index.cjs +38 -42
  449. package/dist/components/onboarding-guides/index.d.ts +1 -2
  450. package/dist/components/onboarding-guides/index.d.ts.map +1 -1
  451. package/dist/components/onboarding-guides/index.js +5 -3
  452. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +8 -0
  453. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
  454. package/dist/components/onboarding-guides/onboarding-guide-detail-view.js +142 -84
  455. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +18 -17
  456. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +1 -1
  457. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.js +28 -21
  458. package/dist/components/onboarding-guides/onboarding-guides-catalog-view.d.ts.map +1 -1
  459. package/dist/components/onboarding-guides/onboarding-guides-catalog-view.js +57 -18
  460. package/dist/components/pagination.d.ts +26 -2
  461. package/dist/components/pagination.d.ts.map +1 -1
  462. package/dist/components/pagination.js +61 -38
  463. package/dist/components/persistent-filter-controls.d.ts.map +1 -1
  464. package/dist/components/persistent-filter-controls.js +1 -2
  465. package/dist/components/persistent-pagination.d.ts.map +1 -1
  466. package/dist/components/persistent-pagination.js +3 -1
  467. package/dist/components/platform/ToolBadge.d.ts +13 -1
  468. package/dist/components/platform/ToolBadge.d.ts.map +1 -1
  469. package/dist/components/platform/ToolBadge.js +38 -9
  470. package/dist/components/platform/index.d.ts +2 -2
  471. package/dist/components/platform/index.d.ts.map +1 -1
  472. package/dist/components/platform/index.js +4 -2
  473. package/dist/components/platform/tool-badge-mark.d.ts +6 -0
  474. package/dist/components/platform/tool-badge-mark.d.ts.map +1 -0
  475. package/dist/components/platform/tool-badge-mark.js +6 -0
  476. package/dist/components/product-demo/fixtures/devices.d.ts +0 -2
  477. package/dist/components/product-demo/fixtures/devices.d.ts.map +1 -1
  478. package/dist/components/product-demo/fixtures/devices.js +0 -2
  479. package/dist/components/product-demo/index.cjs +1889 -32
  480. package/dist/components/product-demo/product-screen.d.ts +5 -5
  481. package/dist/components/product-demo/product-screen.d.ts.map +1 -1
  482. package/dist/components/product-demo/product-screen.js +19 -15
  483. package/dist/components/product-demo/screen-loading.d.ts +10 -0
  484. package/dist/components/product-demo/screen-loading.d.ts.map +1 -0
  485. package/dist/components/product-demo/screen-loading.js +12 -0
  486. package/dist/components/product-demo/screens/devices-view.d.ts +22 -0
  487. package/dist/components/product-demo/screens/devices-view.d.ts.map +1 -0
  488. package/dist/components/product-demo/screens/devices-view.js +35 -0
  489. package/dist/components/product-demo/screens/devices.d.ts +1 -7
  490. package/dist/components/product-demo/screens/devices.d.ts.map +1 -1
  491. package/dist/components/product-demo/screens/devices.js +8 -15
  492. package/dist/components/related-content/card-registry.d.ts +3 -2
  493. package/dist/components/related-content/card-registry.d.ts.map +1 -1
  494. package/dist/components/related-content/card-registry.js +15 -3
  495. package/dist/components/related-content/index.cjs +19 -18
  496. package/dist/components/related-content/index.d.ts +2 -1
  497. package/dist/components/related-content/index.d.ts.map +1 -1
  498. package/dist/components/related-content/index.js +3 -1
  499. package/dist/components/related-content/related-content-section.d.ts +14 -1
  500. package/dist/components/related-content/related-content-section.d.ts.map +1 -1
  501. package/dist/components/related-content/related-content-section.js +144 -32
  502. package/dist/components/results-count.d.ts +5 -0
  503. package/dist/components/results-count.d.ts.map +1 -1
  504. package/dist/components/results-count.js +30 -6
  505. package/dist/components/shared/article-author-byline.d.ts +8 -0
  506. package/dist/components/shared/article-author-byline.d.ts.map +1 -1
  507. package/dist/components/shared/article-author-byline.js +54 -52
  508. package/dist/components/shared/delivery/delivery-lists.d.ts.map +1 -1
  509. package/dist/components/shared/delivery/delivery-lists.js +14 -2
  510. package/dist/components/shared/delivery/delivery-row.d.ts +5 -0
  511. package/dist/components/shared/delivery/delivery-row.d.ts.map +1 -1
  512. package/dist/components/shared/delivery/delivery-row.js +37 -10
  513. package/dist/components/shared/delivery/delivery-table.d.ts +4 -0
  514. package/dist/components/shared/delivery/delivery-table.d.ts.map +1 -1
  515. package/dist/components/shared/delivery/delivery-table.js +14 -26
  516. package/dist/components/shared/detail-page-skeleton.d.ts +3 -0
  517. package/dist/components/shared/detail-page-skeleton.d.ts.map +1 -1
  518. package/dist/components/shared/detail-page-skeleton.js +9 -1
  519. package/dist/components/shared/dev-section/dev-card-row.d.ts +2 -0
  520. package/dist/components/shared/dev-section/dev-card-row.d.ts.map +1 -1
  521. package/dist/components/shared/dev-section/dev-card-row.js +31 -21
  522. package/dist/components/shared/dev-section/dev-section-view.js +1 -1
  523. package/dist/components/shared/legal-document/index.d.ts +1 -1
  524. package/dist/components/shared/legal-document/index.d.ts.map +1 -1
  525. package/dist/components/shared/legal-document/index.js +5 -1
  526. package/dist/components/shared/legal-document/legal-document-page.d.ts +14 -0
  527. package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
  528. package/dist/components/shared/legal-document/legal-document-page.js +47 -42
  529. package/dist/components/shared/legal-document/use-legal-docs.d.ts.map +1 -1
  530. package/dist/components/shared/legal-document/use-legal-docs.js +4 -1
  531. package/dist/components/shared/legal-document/use-legal-documents.d.ts.map +1 -1
  532. package/dist/components/shared/legal-document/use-legal-documents.js +3 -1
  533. package/dist/components/shared/media-gallery-strip.d.ts +7 -0
  534. package/dist/components/shared/media-gallery-strip.d.ts.map +1 -1
  535. package/dist/components/shared/media-gallery-strip.js +22 -3
  536. package/dist/components/shared/onboarding/index.d.ts +2 -1
  537. package/dist/components/shared/onboarding/index.d.ts.map +1 -1
  538. package/dist/components/shared/onboarding/index.js +1 -3
  539. package/dist/components/shared/product-release/index.d.ts +2 -1
  540. package/dist/components/shared/product-release/index.d.ts.map +1 -1
  541. package/dist/components/shared/product-release/product-release-card-classes.d.ts +26 -0
  542. package/dist/components/shared/product-release/product-release-card-classes.d.ts.map +1 -0
  543. package/dist/components/shared/product-release/product-release-card-classes.js +40 -0
  544. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
  545. package/dist/components/shared/product-release/product-release-card-skeleton.js +37 -35
  546. package/dist/components/shared/product-release/product-release-card.d.ts +3 -1
  547. package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
  548. package/dist/components/shared/product-release/product-release-card.js +86 -73
  549. package/dist/components/shared/product-release/product-releases-view.d.ts.map +1 -1
  550. package/dist/components/shared/product-release/product-releases-view.js +26 -13
  551. package/dist/components/shared/product-release/release-detail-page.d.ts +0 -1
  552. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  553. package/dist/components/shared/product-release/release-detail-page.js +281 -215
  554. package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +9 -1
  555. package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -1
  556. package/dist/components/shared/roadmap/roadmap-grid-skeleton.js +12 -11
  557. package/dist/components/shared/roadmap/roadmap-grid.d.ts +13 -1
  558. package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -1
  559. package/dist/components/shared/roadmap/roadmap-grid.js +45 -29
  560. package/dist/components/shared/roadmap/roadmap-view.d.ts.map +1 -1
  561. package/dist/components/shared/roadmap/roadmap-view.js +2 -3
  562. package/dist/components/social-icon-row.d.ts +9 -2
  563. package/dist/components/social-icon-row.d.ts.map +1 -1
  564. package/dist/components/social-icon-row.js +12 -6
  565. package/dist/components/tickets/help-center-list.d.ts.map +1 -1
  566. package/dist/components/tickets/help-center-list.js +6 -2
  567. package/dist/components/tickets/hooks/use-ticket-actions.d.ts +2 -2
  568. package/dist/components/tickets/hooks/use-ticket-actions.d.ts.map +1 -1
  569. package/dist/components/tickets/index.cjs +42 -46
  570. package/dist/components/tickets/index.d.ts +2 -1
  571. package/dist/components/tickets/index.d.ts.map +1 -1
  572. package/dist/components/tickets/index.js +2 -3
  573. package/dist/components/tickets/ticket-center.d.ts.map +1 -1
  574. package/dist/components/tickets/ticket-center.js +117 -58
  575. package/dist/components/tickets/types.d.ts +0 -8
  576. package/dist/components/tickets/types.d.ts.map +1 -1
  577. package/dist/components/tickets/types.js +0 -3
  578. package/dist/components/toggle-group.d.ts +4 -2
  579. package/dist/components/toggle-group.d.ts.map +1 -1
  580. package/dist/components/toggle-group.js +3 -1
  581. package/dist/components/tool-icon.d.ts.map +1 -1
  582. package/dist/components/ui/analyzing-state.d.ts +3 -2
  583. package/dist/components/ui/analyzing-state.d.ts.map +1 -1
  584. package/dist/components/ui/analyzing-state.js +7 -4
  585. package/dist/components/ui/announcement-bar-view.d.ts +5 -0
  586. package/dist/components/ui/announcement-bar-view.d.ts.map +1 -1
  587. package/dist/components/ui/announcement-bar-view.js +3 -1
  588. package/dist/components/ui/autocomplete.d.ts +13 -0
  589. package/dist/components/ui/autocomplete.d.ts.map +1 -1
  590. package/dist/components/ui/autocomplete.js +30 -6
  591. package/dist/components/ui/avatar-stack.d.ts +7 -0
  592. package/dist/components/ui/avatar-stack.d.ts.map +1 -1
  593. package/dist/components/ui/avatar-stack.js +29 -4
  594. package/dist/components/ui/badge.d.ts +9 -1
  595. package/dist/components/ui/badge.d.ts.map +1 -1
  596. package/dist/components/ui/badge.js +11 -0
  597. package/dist/components/ui/benefit-list.d.ts +8 -0
  598. package/dist/components/ui/benefit-list.d.ts.map +1 -1
  599. package/dist/components/ui/benefit-list.js +20 -11
  600. package/dist/components/ui/button/button-styles.d.ts +16 -0
  601. package/dist/components/ui/button/button-styles.d.ts.map +1 -1
  602. package/dist/components/ui/button/button-styles.js +42 -0
  603. package/dist/components/ui/button/button.d.ts +3 -1
  604. package/dist/components/ui/button/button.d.ts.map +1 -1
  605. package/dist/components/ui/button/button.js +4 -40
  606. package/dist/components/ui/button/index.d.ts +1 -0
  607. package/dist/components/ui/button/index.d.ts.map +1 -1
  608. package/dist/components/ui/button/index.js +4 -0
  609. package/dist/components/ui/card.d.ts +13 -1
  610. package/dist/components/ui/card.d.ts.map +1 -1
  611. package/dist/components/ui/card.js +21 -14
  612. package/dist/components/ui/checkbox.d.ts +2 -0
  613. package/dist/components/ui/checkbox.d.ts.map +1 -1
  614. package/dist/components/ui/checkbox.js +5 -1
  615. package/dist/components/ui/compliance-badge.d.ts +2 -0
  616. package/dist/components/ui/compliance-badge.d.ts.map +1 -1
  617. package/dist/components/ui/compliance-badge.js +5 -2
  618. package/dist/components/ui/cursor-pagination.d.ts +8 -1
  619. package/dist/components/ui/cursor-pagination.d.ts.map +1 -1
  620. package/dist/components/ui/cursor-pagination.js +10 -4
  621. package/dist/components/ui/dashboard-info-card.d.ts +6 -1
  622. package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
  623. package/dist/components/ui/dashboard-info-card.js +19 -10
  624. package/dist/components/ui/data-attribution.d.ts +10 -5
  625. package/dist/components/ui/data-attribution.d.ts.map +1 -1
  626. package/dist/components/ui/data-attribution.js +27 -9
  627. package/dist/components/ui/data-table/data-table-body.d.ts +1 -1
  628. package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
  629. package/dist/components/ui/data-table/data-table-body.js +18 -7
  630. package/dist/components/ui/data-table/data-table-row-count.d.ts +5 -0
  631. package/dist/components/ui/data-table/data-table-row-count.d.ts.map +1 -1
  632. package/dist/components/ui/data-table/data-table-row-count.js +18 -3
  633. package/dist/components/ui/data-table/data-table-row.d.ts.map +1 -1
  634. package/dist/components/ui/data-table/data-table-row.js +2 -6
  635. package/dist/components/ui/data-table/data-table-skeleton.js +5 -5
  636. package/dist/components/ui/data-table/index.d.ts +2 -2
  637. package/dist/components/ui/data-table/index.d.ts.map +1 -1
  638. package/dist/components/ui/data-table/index.js +2 -1
  639. package/dist/components/ui/date-picker.d.ts +0 -1
  640. package/dist/components/ui/date-picker.d.ts.map +1 -1
  641. package/dist/components/ui/entity-image.d.ts +4 -0
  642. package/dist/components/ui/entity-image.d.ts.map +1 -1
  643. package/dist/components/ui/entity-image.js +27 -5
  644. package/dist/components/ui/error-state.d.ts.map +1 -1
  645. package/dist/components/ui/error-state.js +4 -1
  646. package/dist/components/ui/feature-card.d.ts +31 -1
  647. package/dist/components/ui/feature-card.d.ts.map +1 -1
  648. package/dist/components/ui/feature-card.js +40 -11
  649. package/dist/components/ui/feature-list.d.ts +15 -1
  650. package/dist/components/ui/feature-list.d.ts.map +1 -1
  651. package/dist/components/ui/feature-list.js +43 -8
  652. package/dist/components/ui/field-wrapper.d.ts +6 -0
  653. package/dist/components/ui/field-wrapper.d.ts.map +1 -1
  654. package/dist/components/ui/field-wrapper.js +16 -5
  655. package/dist/components/ui/file-manager/index.cjs +63 -64
  656. package/dist/components/ui/filter-checkbox-item.d.ts +9 -0
  657. package/dist/components/ui/filter-checkbox-item.d.ts.map +1 -1
  658. package/dist/components/ui/filter-checkbox-item.js +36 -6
  659. package/dist/components/ui/filter-modal.d.ts +2 -3
  660. package/dist/components/ui/filter-modal.d.ts.map +1 -1
  661. package/dist/components/ui/filter-pill-row.d.ts +10 -5
  662. package/dist/components/ui/filter-pill-row.d.ts.map +1 -1
  663. package/dist/components/ui/filter-pill-row.js +56 -19
  664. package/dist/components/ui/incident-feed.d.ts +1 -1
  665. package/dist/components/ui/incident-feed.d.ts.map +1 -1
  666. package/dist/components/ui/incident-feed.js +57 -56
  667. package/dist/components/ui/index.cjs +219 -39
  668. package/dist/components/ui/index.d.ts +10 -1
  669. package/dist/components/ui/index.d.ts.map +1 -1
  670. package/dist/components/ui/index.js +29 -1
  671. package/dist/components/ui/info-card-row.d.ts +12 -0
  672. package/dist/components/ui/info-card-row.d.ts.map +1 -1
  673. package/dist/components/ui/info-card-row.js +56 -30
  674. package/dist/components/ui/info-card.d.ts +24 -1
  675. package/dist/components/ui/info-card.d.ts.map +1 -1
  676. package/dist/components/ui/info-card.js +87 -52
  677. package/dist/components/ui/input-styles.d.ts +7 -0
  678. package/dist/components/ui/input-styles.d.ts.map +1 -0
  679. package/dist/components/ui/input-styles.js +7 -0
  680. package/dist/components/ui/input.d.ts.map +1 -1
  681. package/dist/components/ui/input.js +4 -1
  682. package/dist/components/ui/layout-hold.d.ts +9 -7
  683. package/dist/components/ui/layout-hold.d.ts.map +1 -1
  684. package/dist/components/ui/leader-row.d.ts +11 -4
  685. package/dist/components/ui/leader-row.d.ts.map +1 -1
  686. package/dist/components/ui/leader-row.js +29 -5
  687. package/dist/components/ui/loading-scope.d.ts +26 -0
  688. package/dist/components/ui/loading-scope.d.ts.map +1 -0
  689. package/dist/components/ui/loading-scope.js +31 -0
  690. package/dist/components/ui/markdown/base-components.d.ts +25 -0
  691. package/dist/components/ui/markdown/base-components.d.ts.map +1 -1
  692. package/dist/components/ui/markdown/base-components.js +13 -7
  693. package/dist/components/ui/markdown/engine.d.ts +26 -1
  694. package/dist/components/ui/markdown/engine.d.ts.map +1 -1
  695. package/dist/components/ui/markdown/engine.js +63 -4
  696. package/dist/components/ui/markdown/index.d.ts +5 -3
  697. package/dist/components/ui/markdown/index.d.ts.map +1 -1
  698. package/dist/components/ui/markdown/index.js +12 -4
  699. package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +1 -1
  700. package/dist/components/ui/markdown/mermaid-diagram.js +8 -2
  701. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +10 -0
  702. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +1 -1
  703. package/dist/components/ui/markdown/rich/rich-markdown-renderer.js +21 -5
  704. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +0 -2
  705. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +1 -1
  706. package/dist/components/ui/markdown-editor.d.ts +10 -0
  707. package/dist/components/ui/markdown-editor.d.ts.map +1 -1
  708. package/dist/components/ui/markdown-editor.js +23 -7
  709. package/dist/components/ui/numbered-step.d.ts +10 -0
  710. package/dist/components/ui/numbered-step.d.ts.map +1 -1
  711. package/dist/components/ui/numbered-step.js +19 -2
  712. package/dist/components/ui/organization-card.d.ts.map +1 -1
  713. package/dist/components/ui/organization-card.js +30 -5
  714. package/dist/components/ui/page-actions.d.ts.map +1 -1
  715. package/dist/components/ui/page-actions.js +16 -20
  716. package/dist/components/ui/page-loader.d.ts.map +1 -1
  717. package/dist/components/ui/page-loader.js +2 -1
  718. package/dist/components/ui/people-cell.d.ts +4 -0
  719. package/dist/components/ui/people-cell.d.ts.map +1 -1
  720. package/dist/components/ui/people-cell.js +19 -3
  721. package/dist/components/ui/photo-wall.d.ts +1 -1
  722. package/dist/components/ui/photo-wall.d.ts.map +1 -1
  723. package/dist/components/ui/photo-wall.js +13 -3
  724. package/dist/components/ui/product-screen-frame.d.ts.map +1 -1
  725. package/dist/components/ui/product-screen-frame.js +3 -2
  726. package/dist/components/ui/progress-bar.d.ts +9 -0
  727. package/dist/components/ui/progress-bar.d.ts.map +1 -1
  728. package/dist/components/ui/progress-bar.js +34 -14
  729. package/dist/components/ui/progress.d.ts +15 -0
  730. package/dist/components/ui/progress.d.ts.map +1 -1
  731. package/dist/components/ui/progress.js +8 -3
  732. package/dist/components/ui/release-changelog-section.d.ts +22 -1
  733. package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
  734. package/dist/components/ui/release-changelog-section.js +96 -28
  735. package/dist/components/ui/search-input.d.ts.map +1 -1
  736. package/dist/components/ui/search-input.js +11 -3
  737. package/dist/components/ui/searchable-select.d.ts.map +1 -1
  738. package/dist/components/ui/searchable-select.js +17 -4
  739. package/dist/components/ui/skeleton-surface.d.ts +12 -4
  740. package/dist/components/ui/skeleton-surface.d.ts.map +1 -1
  741. package/dist/components/ui/skeleton-surface.js +6 -2
  742. package/dist/components/ui/slack-channel-chip.d.ts +5 -1
  743. package/dist/components/ui/slack-channel-chip.d.ts.map +1 -1
  744. package/dist/components/ui/slack-channel-chip.js +16 -3
  745. package/dist/components/ui/snap-carousel.d.ts +4 -1
  746. package/dist/components/ui/snap-carousel.d.ts.map +1 -1
  747. package/dist/components/ui/snap-carousel.js +2 -0
  748. package/dist/components/ui/square-avatar.d.ts +3 -0
  749. package/dist/components/ui/square-avatar.d.ts.map +1 -1
  750. package/dist/components/ui/square-avatar.js +38 -23
  751. package/dist/components/ui/stacked-rows-panel.d.ts +24 -1
  752. package/dist/components/ui/stacked-rows-panel.d.ts.map +1 -1
  753. package/dist/components/ui/stacked-rows-panel.js +50 -13
  754. package/dist/components/ui/status-badge.d.ts +10 -2
  755. package/dist/components/ui/status-badge.d.ts.map +1 -1
  756. package/dist/components/ui/status-badge.js +14 -0
  757. package/dist/components/ui/status-indicator.d.ts +4 -0
  758. package/dist/components/ui/status-indicator.d.ts.map +1 -1
  759. package/dist/components/ui/status-indicator.js +16 -3
  760. package/dist/components/ui/status-line.d.ts.map +1 -1
  761. package/dist/components/ui/status-line.js +2 -1
  762. package/dist/components/ui/strip-card.d.ts +9 -0
  763. package/dist/components/ui/strip-card.d.ts.map +1 -1
  764. package/dist/components/ui/strip-card.js +57 -39
  765. package/dist/components/ui/tab-navigation.d.ts +26 -2
  766. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  767. package/dist/components/ui/tab-navigation.js +182 -115
  768. package/dist/components/ui/table/table-header.js +2 -2
  769. package/dist/components/ui/table/table-row.d.ts.map +1 -1
  770. package/dist/components/ui/table/table-row.js +2 -4
  771. package/dist/components/ui/table/table-skeleton.d.ts +6 -1
  772. package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
  773. package/dist/components/ui/table/table-skeleton.js +38 -50
  774. package/dist/components/ui/table/table.d.ts +1 -1
  775. package/dist/components/ui/table/table.d.ts.map +1 -1
  776. package/dist/components/ui/table/table.js +30 -25
  777. package/dist/components/ui/table/types.d.ts +14 -4
  778. package/dist/components/ui/table/types.d.ts.map +1 -1
  779. package/dist/components/ui/table/utils.d.ts +4 -0
  780. package/dist/components/ui/table/utils.d.ts.map +1 -1
  781. package/dist/components/ui/table/utils.js +4 -0
  782. package/dist/components/ui/tabs.d.ts +22 -1
  783. package/dist/components/ui/tabs.d.ts.map +1 -1
  784. package/dist/components/ui/tabs.js +33 -2
  785. package/dist/components/ui/tag.d.ts +21 -1
  786. package/dist/components/ui/tag.d.ts.map +1 -1
  787. package/dist/components/ui/tag.js +17 -12
  788. package/dist/components/ui/tags-input.d.ts +9 -0
  789. package/dist/components/ui/tags-input.d.ts.map +1 -1
  790. package/dist/components/ui/tags-input.js +41 -10
  791. package/dist/components/ui/textarea.d.ts +17 -1
  792. package/dist/components/ui/textarea.d.ts.map +1 -1
  793. package/dist/components/ui/textarea.js +22 -3
  794. package/dist/components/ui/ticket-info-section.d.ts +0 -1
  795. package/dist/components/ui/ticket-info-section.d.ts.map +1 -1
  796. package/dist/components/ui/timezone-select.d.ts +3 -1
  797. package/dist/components/ui/timezone-select.d.ts.map +1 -1
  798. package/dist/components/ui/timezone-select.js +3 -1
  799. package/dist/components/ui/toggle.d.ts +8 -2
  800. package/dist/components/ui/toggle.d.ts.map +1 -1
  801. package/dist/components/ui/toggle.js +10 -6
  802. package/dist/components/unified-pagination.d.ts +3 -1
  803. package/dist/components/unified-pagination.d.ts.map +1 -1
  804. package/dist/components/unified-pagination.js +7 -1
  805. package/dist/components/user-display.d.ts +11 -0
  806. package/dist/components/user-display.d.ts.map +1 -1
  807. package/dist/components/user-display.js +38 -14
  808. package/dist/components/user-summary-stub.d.ts.map +1 -1
  809. package/dist/components/user-summary-stub.js +7 -14
  810. package/dist/components/vendor-display-button.d.ts +4 -0
  811. package/dist/components/vendor-display-button.d.ts.map +1 -1
  812. package/dist/components/vendor-display-button.js +11 -13
  813. package/dist/components/vendor-icon.d.ts +5 -0
  814. package/dist/components/vendor-icon.d.ts.map +1 -1
  815. package/dist/components/vendor-icon.js +12 -3
  816. package/dist/components/vendor-tag.d.ts +5 -0
  817. package/dist/components/vendor-tag.d.ts.map +1 -1
  818. package/dist/components/vendor-tag.js +13 -5
  819. package/dist/{devices-O5PZ4IR6.cjs → devices-2D3XSIIE.cjs} +43 -55
  820. package/dist/embed-shims/index.cjs +4 -2
  821. package/dist/embed-shims/next-image.cjs +4 -2
  822. package/dist/embed-shims/next-image.d.ts.map +1 -1
  823. package/dist/embed-shims/next-image.js +24 -0
  824. package/dist/{embeddable-chat-YFUCVDMV.cjs → embeddable-chat-YL6ZSTDJ.cjs} +117 -119
  825. package/dist/hooks/index.cjs +12 -12
  826. package/dist/hooks/state/flatten-schema.d.ts +0 -1
  827. package/dist/hooks/state/flatten-schema.d.ts.map +1 -1
  828. package/dist/hooks/state/flatten-schema.js +0 -2
  829. package/dist/hooks/state/index.d.ts +6 -3
  830. package/dist/hooks/state/index.d.ts.map +1 -1
  831. package/dist/hooks/state/index.js +4 -3
  832. package/dist/hooks/state/url-converter.d.ts +1 -1
  833. package/dist/hooks/state/url-converter.d.ts.map +1 -1
  834. package/dist/hooks/state/url-converter.js +1 -2
  835. package/dist/hooks/state/use-api-params.d.ts +1 -3
  836. package/dist/hooks/state/use-api-params.d.ts.map +1 -1
  837. package/dist/hooks/state/use-api-params.js +1 -5
  838. package/dist/hooks/ui/index.d.ts +1 -0
  839. package/dist/hooks/ui/index.d.ts.map +1 -1
  840. package/dist/hooks/ui/use-image-edge-color.d.ts +1 -1
  841. package/dist/hooks/ui/use-image-edge-color.d.ts.map +1 -1
  842. package/dist/hooks/ui/use-image-edge-color.js +3 -1
  843. package/dist/hooks/ui/use-onboarding-state.d.ts +0 -1
  844. package/dist/hooks/ui/use-onboarding-state.d.ts.map +1 -1
  845. package/dist/hooks/use-downloads.d.ts +1 -1
  846. package/dist/hooks/use-downloads.d.ts.map +1 -1
  847. package/dist/hooks/use-downloads.js +8 -1
  848. package/dist/hooks/use-meeting-booking.d.ts.map +1 -1
  849. package/dist/hooks/use-meeting-booking.js +3 -0
  850. package/dist/hooks/use-self-fetch.d.ts +1 -1
  851. package/dist/hooks/use-self-fetch.d.ts.map +1 -1
  852. package/dist/hooks/use-self-fetch.js +7 -4
  853. package/dist/hooks/use-toast.d.ts +1 -1
  854. package/dist/index.cjs +329 -103
  855. package/dist/{knowledge-4OU73KTO.cjs → knowledge-AJ36PMK2.cjs} +36 -40
  856. package/dist/{logs-R6ZH32UU.cjs → logs-DNE44ACE.cjs} +44 -48
  857. package/dist/nats/index.d.ts +1 -0
  858. package/dist/nats/index.d.ts.map +1 -1
  859. package/dist/nats/nats-provider.d.ts +0 -1
  860. package/dist/nats/nats-provider.d.ts.map +1 -1
  861. package/dist/nats/nats.d.ts +0 -1
  862. package/dist/nats/nats.d.ts.map +1 -1
  863. package/dist/nats/use-nats-subscription.d.ts +2 -1
  864. package/dist/nats/use-nats-subscription.d.ts.map +1 -1
  865. package/dist/{policies-XN4TDX3G.cjs → policies-AJHSP6ZY.cjs} +39 -43
  866. package/dist/{remote-session-7NSC7DI5.cjs → remote-session-PPA5SXX7.cjs} +18 -21
  867. package/dist/schemas/meeting-booking-schema.cjs +4 -0
  868. package/dist/schemas/meeting-booking-schema.d.ts +8 -0
  869. package/dist/schemas/meeting-booking-schema.d.ts.map +1 -1
  870. package/dist/schemas/meeting-booking-schema.js +4 -0
  871. package/dist/{scripts-53VHKMY3.cjs → scripts-4YO2QL36.cjs} +42 -46
  872. package/dist/{software-update-KLJSMAUM.cjs → software-update-KMI2EOO3.cjs} +41 -45
  873. package/dist/styles/component-sizes.d.ts +96 -0
  874. package/dist/styles/component-sizes.d.ts.map +1 -0
  875. package/dist/styles/component-sizes.js +77 -0
  876. package/dist/{tickets-board-DXMF7IKL.cjs → tickets-board-G3WBH4SV.cjs} +18 -20
  877. package/dist/types/announcement.d.ts +0 -1
  878. package/dist/types/announcement.d.ts.map +1 -1
  879. package/dist/types/blog.d.ts +0 -1
  880. package/dist/types/blog.d.ts.map +1 -1
  881. package/dist/types/case-study.d.ts +2 -2
  882. package/dist/types/case-study.d.ts.map +1 -1
  883. package/dist/types/customer-interview-ai.types.d.ts +1 -2
  884. package/dist/types/customer-interview-ai.types.d.ts.map +1 -1
  885. package/dist/types/customer-interview.d.ts +0 -1
  886. package/dist/types/customer-interview.d.ts.map +1 -1
  887. package/dist/types/index.d.ts +2 -0
  888. package/dist/types/index.d.ts.map +1 -1
  889. package/dist/types/product-release.d.ts +3 -0
  890. package/dist/types/product-release.d.ts.map +1 -1
  891. package/dist/types/stack.d.ts +0 -2
  892. package/dist/types/stack.d.ts.map +1 -1
  893. package/dist/utils/announcement-storage.d.ts +0 -3
  894. package/dist/utils/announcement-storage.d.ts.map +1 -1
  895. package/dist/utils/announcement-storage.js +1 -3
  896. package/dist/utils/dev-sections/openframe-dev-sections.d.ts +11 -0
  897. package/dist/utils/dev-sections/openframe-dev-sections.d.ts.map +1 -1
  898. package/dist/utils/dev-sections/openframe-dev-sections.js +5 -0
  899. package/dist/utils/index.cjs +19 -0
  900. package/dist/utils/index.d.ts +7 -2
  901. package/dist/utils/index.d.ts.map +1 -1
  902. package/dist/utils/index.js +8 -6
  903. package/dist/utils/markdown-heading-id.d.ts +0 -19
  904. package/dist/utils/markdown-heading-id.d.ts.map +1 -1
  905. package/dist/utils/markdown-heading-id.js +2 -5
  906. package/dist/utils/ods-color-utils.d.ts +0 -1
  907. package/dist/utils/ods-color-utils.d.ts.map +1 -1
  908. package/dist/utils/ods-color-utils.js +0 -2
  909. package/dist/utils/own-click.d.ts +4 -0
  910. package/dist/utils/own-click.d.ts.map +1 -0
  911. package/dist/utils/own-click.js +14 -0
  912. package/dist/utils/platform-config.d.ts +0 -1
  913. package/dist/utils/platform-config.d.ts.map +1 -1
  914. package/dist/utils/platform-config.js +0 -26
  915. package/dist/utils/source-icons.d.ts +2 -2
  916. package/dist/{video-file-player-QZ3YOLHO.cjs → video-file-player-COXRF4M5.cjs} +13 -13
  917. package/eslint-config/base.js +2 -0
  918. package/eslint-config/re-exports.js +56 -0
  919. package/package.json +1 -1
  920. package/src/ODS_TOKEN_RULES.md +2 -2
  921. package/src/chat-protocol/decode.ts +0 -5
  922. package/src/chat-protocol/index.ts +1 -0
  923. package/src/components/agent-identity.tsx +0 -2
  924. package/src/components/agent-mark.tsx +13 -4
  925. package/src/components/authors/author-detail-view.tsx +90 -44
  926. package/src/components/case-studies/entity-quotes-panel.tsx +50 -3
  927. package/src/components/case-studies/index.ts +2 -2
  928. package/src/components/case-studies/quote-cards-strip.tsx +75 -10
  929. package/src/components/categories-cart.tsx +82 -38
  930. package/src/components/category-card.tsx +1 -1
  931. package/src/components/chat/chat-attachment-bar.tsx +1 -1
  932. package/src/components/chat/chat-container.tsx +2 -1
  933. package/src/components/chat/chat-ticket-list.tsx +0 -1
  934. package/src/components/chat/chat-turn.tsx +124 -18
  935. package/src/components/chat/embeddable-chat.tsx +5 -5
  936. package/src/components/chat/entity-cards/admin-content-card-grid.tsx +1 -51
  937. package/src/components/chat/entity-cards/admin-content-card.tsx +80 -15
  938. package/src/components/chat/entity-cards/blog-card.tsx +71 -41
  939. package/src/components/chat/entity-cards/campaign-card-admin.tsx +4 -17
  940. package/src/components/chat/entity-cards/case-study-card.tsx +129 -68
  941. package/src/components/chat/entity-cards/chat-ticket-item.tsx +34 -29
  942. package/src/components/chat/entity-cards/customer-interview-card.tsx +61 -45
  943. package/src/components/chat/entity-cards/data-room-doc-card.tsx +11 -18
  944. package/src/components/chat/entity-cards/design-doc-card.tsx +48 -34
  945. package/src/components/chat/entity-cards/dispatch.tsx +9 -13
  946. package/src/components/chat/entity-cards/employee-entry-card.tsx +5 -5
  947. package/src/components/chat/entity-cards/entity-author-card.tsx +138 -32
  948. package/src/components/chat/entity-cards/entity-portrait-card.tsx +61 -16
  949. package/src/components/chat/entity-cards/generic-entity-card.tsx +11 -19
  950. package/src/components/chat/entity-cards/github-activity-card.tsx +14 -30
  951. package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +11 -23
  952. package/src/components/chat/entity-cards/index.ts +20 -7
  953. package/src/components/chat/entity-cards/investor-update-card.tsx +42 -35
  954. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +78 -64
  955. package/src/components/chat/entity-cards/program-card.tsx +96 -66
  956. package/src/components/chat/entity-cards/roadmap-card.tsx +85 -65
  957. package/src/components/chat/entity-cards/roadmap-vote-button.tsx +12 -1
  958. package/src/components/chat/entity-cards/slack-message-card.tsx +19 -26
  959. package/src/components/chat/hooks/index.ts +12 -2
  960. package/src/components/chat/hooks/use-ask-prompts.ts +5 -1
  961. package/src/components/chat/hooks/use-chat-dialog-manager.ts +1 -1
  962. package/src/components/chat/hooks/use-chat-history-hydration.ts +1 -1
  963. package/src/components/chat/hooks/use-chat.ts +0 -3
  964. package/src/components/chat/hooks/use-nats-chat-adapter.ts +0 -20
  965. package/src/components/chat/hooks/use-proxied-image-url.ts +27 -20
  966. package/src/components/chat/hooks/use-slash-commands.ts +1 -7
  967. package/src/components/chat/hooks/use-sse-chat-adapter.ts +4 -18
  968. package/src/components/chat/stream/chat-stream-reducer.ts +3 -2
  969. package/src/components/chat/types/entities/index.ts +24 -4
  970. package/src/components/chat/types/entities/investor-update.ts +1 -1
  971. package/src/components/chat/types/entities/program-types.ts +2 -5
  972. package/src/components/chat/utils/compact-card-classes.ts +15 -2
  973. package/src/components/chat/utils/compact-card-skeleton.tsx +111 -0
  974. package/src/components/chat/utils/icon-library.tsx +0 -2
  975. package/src/components/chat/utils/index.ts +5 -3
  976. package/src/components/chat/utils/scroll-anchor.ts +0 -2
  977. package/src/components/chat/utils/source-row-cta.ts +1 -5
  978. package/src/components/comment-card.tsx +118 -19
  979. package/src/components/comment-thread.tsx +130 -17
  980. package/src/components/docs/doc-viewer.tsx +33 -31
  981. package/src/components/docs/skeletons.tsx +37 -49
  982. package/src/components/docs/use-document-tree.ts +11 -7
  983. package/src/components/embeds/embed-iframe.tsx +5 -0
  984. package/src/components/embeds/index.ts +1 -1
  985. package/src/components/embeds/markdown-image.tsx +6 -2
  986. package/src/components/embeds/og-link-preview.tsx +155 -81
  987. package/src/components/faq/faq-document-page.tsx +8 -0
  988. package/src/components/faq/faq-section.tsx +249 -70
  989. package/src/components/faq/index.ts +12 -1
  990. package/src/components/faq-accordion.tsx +67 -7
  991. package/src/components/features/ai-enrich/AIStatusIndicator.tsx +2 -1
  992. package/src/components/features/approval-level.tsx +71 -8
  993. package/src/components/features/capability-explorer.tsx +59 -61
  994. package/src/components/features/cards-strip.tsx +54 -12
  995. package/src/components/features/command-box.tsx +139 -10
  996. package/src/components/features/conversation-card.tsx +242 -16
  997. package/src/components/features/devices/device-selector/device-selector.tsx +1 -0
  998. package/src/components/features/devices/devices-panel-view.tsx +2 -2
  999. package/src/components/features/entity-tag-badges.tsx +143 -10
  1000. package/src/components/features/entity-video-section.tsx +52 -14
  1001. package/src/components/features/figma-prototype-viewer.tsx +4 -8
  1002. package/src/components/features/index.ts +11 -0
  1003. package/src/components/features/knowledge-base/index.ts +2 -5
  1004. package/src/components/features/knowledge-base/knowledge-base-article-view.tsx +0 -2
  1005. package/src/components/features/model-token-rates.tsx +64 -84
  1006. package/src/components/features/notifications/approval-request-notification-tile.tsx +9 -11
  1007. package/src/components/features/notifications/notification-tile.tsx +58 -23
  1008. package/src/components/features/paths-display.tsx +73 -6
  1009. package/src/components/features/platform-badge.tsx +41 -1
  1010. package/src/components/features/push-button-selector.tsx +167 -64
  1011. package/src/components/features/remote-session/index.ts +2 -2
  1012. package/src/components/features/remote-session/remote-desktop-chat-message-row.tsx +24 -3
  1013. package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +19 -5
  1014. package/src/components/features/remote-session/remote-desktop-view.tsx +47 -38
  1015. package/src/components/features/remote-session/remote-session-chat-panel.tsx +1 -1
  1016. package/src/components/features/status-filter-component.tsx +105 -11
  1017. package/src/components/features/use-video-warmup.ts +0 -7
  1018. package/src/components/features/use-walkthrough-video.ts +5 -1
  1019. package/src/components/features/video-bites-strip.tsx +137 -22
  1020. package/src/components/features/video-hover-preview.tsx +2 -1
  1021. package/src/components/features/video.tsx +16 -12
  1022. package/src/components/features/walkthrough-video.tsx +9 -2
  1023. package/src/components/help-center-pages/download-apps-page.tsx +86 -32
  1024. package/src/components/help-center-pages/trust-center-page.tsx +132 -66
  1025. package/src/components/help-center-pages/trust-center-sections.tsx +205 -148
  1026. package/src/components/icon-display.tsx +9 -0
  1027. package/src/components/index.ts +11 -2
  1028. package/src/components/interactive-wrapper.tsx +2 -1
  1029. package/src/components/layout/list-page-layout.tsx +4 -5
  1030. package/src/components/layout/page-container.tsx +59 -29
  1031. package/src/components/layout/page-data-sync.tsx +40 -5
  1032. package/src/components/layout/page-heading.tsx +84 -1
  1033. package/src/components/layout/page-layout.tsx +5 -5
  1034. package/src/components/layout/title-block.tsx +72 -17
  1035. package/src/components/loading/category-vendor-selector-skeleton.tsx +4 -0
  1036. package/src/components/loading/deprecated-layout-skeletons.tsx +133 -0
  1037. package/src/components/loading/device-card-skeleton.tsx +4 -4
  1038. package/src/components/loading/index.ts +11 -13
  1039. package/src/components/loading/loading-region.tsx +16 -9
  1040. package/src/components/loading/msp-profile-form-skeleton.tsx +3 -0
  1041. package/src/components/loading/organization-card-skeleton.tsx +45 -71
  1042. package/src/components/loading/page-layout-skeleton.tsx +1 -641
  1043. package/src/components/loading/settings-form-skeleton.tsx +3 -0
  1044. package/src/components/loading/unified-skeleton.tsx +101 -11
  1045. package/src/components/log-severity-dot.tsx +17 -14
  1046. package/src/components/logs-list.tsx +43 -29
  1047. package/src/components/media-carousel.tsx +0 -4
  1048. package/src/components/meeting-scheduler/booking-form.tsx +245 -35
  1049. package/src/components/meeting-scheduler/context-panel.tsx +96 -30
  1050. package/src/components/meeting-scheduler/directory.tsx +70 -37
  1051. package/src/components/meeting-scheduler/index.tsx +136 -132
  1052. package/src/components/meeting-scheduler/modal-header.tsx +45 -31
  1053. package/src/components/meeting-scheduler/slot-picker.tsx +20 -8
  1054. package/src/components/metric-value.tsx +19 -2
  1055. package/src/components/msp-display.tsx +25 -10
  1056. package/src/components/navigation/app-layout.tsx +0 -3
  1057. package/src/components/navigation/index.ts +15 -3
  1058. package/src/components/navigation/mingo-ai-button.tsx +3 -4
  1059. package/src/components/navigation/mobile-nav-sheet.tsx +0 -2
  1060. package/src/components/navigation/multi-level-navigation.tsx +152 -35
  1061. package/src/components/navigation/page-section-bar.tsx +132 -0
  1062. package/src/components/navigation/sticky-section-nav.tsx +109 -18
  1063. package/src/components/navigation/ticket-alerts-button.tsx +1 -1
  1064. package/src/components/onboarding-guides/hooks/use-onboarding-guides.ts +8 -1
  1065. package/src/components/onboarding-guides/index.ts +5 -2
  1066. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +166 -67
  1067. package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +38 -51
  1068. package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +91 -45
  1069. package/src/components/pagination.tsx +103 -48
  1070. package/src/components/persistent-filter-controls.tsx +0 -7
  1071. package/src/components/persistent-pagination.tsx +6 -1
  1072. package/src/components/platform/ToolBadge.tsx +57 -10
  1073. package/src/components/platform/index.ts +2 -2
  1074. package/src/components/platform/tool-badge-mark.ts +6 -0
  1075. package/src/components/product-demo/fixtures/devices.ts +0 -3
  1076. package/src/components/product-demo/product-screen.tsx +42 -23
  1077. package/src/components/product-demo/screen-loading.tsx +20 -0
  1078. package/src/components/product-demo/screens/devices-view.tsx +58 -0
  1079. package/src/components/product-demo/screens/devices.tsx +9 -29
  1080. package/src/components/related-content/card-registry.tsx +20 -6
  1081. package/src/components/related-content/index.ts +3 -1
  1082. package/src/components/related-content/related-content-section.tsx +222 -46
  1083. package/src/components/results-count.tsx +37 -6
  1084. package/src/components/shared/article-author-byline.tsx +65 -41
  1085. package/src/components/shared/delivery/delivery-lists.tsx +15 -2
  1086. package/src/components/shared/delivery/delivery-row.tsx +55 -9
  1087. package/src/components/shared/delivery/delivery-table.tsx +19 -46
  1088. package/src/components/shared/detail-page-skeleton.tsx +15 -1
  1089. package/src/components/shared/dev-section/dev-card-row.tsx +45 -28
  1090. package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
  1091. package/src/components/shared/doc-search/use-doc-search.ts +1 -1
  1092. package/src/components/shared/legal-document/index.ts +2 -0
  1093. package/src/components/shared/legal-document/legal-document-page.tsx +41 -21
  1094. package/src/components/shared/legal-document/use-legal-docs.ts +5 -1
  1095. package/src/components/shared/legal-document/use-legal-documents.ts +4 -1
  1096. package/src/components/shared/media-gallery-strip.tsx +35 -3
  1097. package/src/components/shared/onboarding/index.ts +2 -5
  1098. package/src/components/shared/product-release/index.ts +1 -1
  1099. package/src/components/shared/product-release/product-release-card-classes.ts +28 -0
  1100. package/src/components/shared/product-release/product-release-card-skeleton.tsx +62 -56
  1101. package/src/components/shared/product-release/product-release-card.tsx +62 -44
  1102. package/src/components/shared/product-release/product-releases-view.tsx +32 -24
  1103. package/src/components/shared/product-release/release-detail-page.tsx +229 -134
  1104. package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +20 -6
  1105. package/src/components/shared/roadmap/roadmap-grid.tsx +59 -9
  1106. package/src/components/shared/roadmap/roadmap-view.tsx +3 -3
  1107. package/src/components/social-icon-row.tsx +14 -8
  1108. package/src/components/tickets/help-center-list.tsx +6 -2
  1109. package/src/components/tickets/hooks/use-ticket-actions.ts +0 -4
  1110. package/src/components/tickets/index.ts +1 -2
  1111. package/src/components/tickets/ticket-center.tsx +189 -75
  1112. package/src/components/tickets/types.ts +0 -9
  1113. package/src/components/toggle-group.tsx +4 -1
  1114. package/src/components/tool-icon.tsx +2 -1
  1115. package/src/components/ui/analyzing-state.tsx +11 -6
  1116. package/src/components/ui/announcement-bar-view.tsx +7 -1
  1117. package/src/components/ui/autocomplete.tsx +58 -6
  1118. package/src/components/ui/avatar-stack.tsx +42 -3
  1119. package/src/components/ui/badge.tsx +16 -1
  1120. package/src/components/ui/benefit-list.tsx +41 -6
  1121. package/src/components/ui/button/button-styles.ts +48 -0
  1122. package/src/components/ui/button/button.tsx +5 -39
  1123. package/src/components/ui/button/index.ts +1 -0
  1124. package/src/components/ui/card.tsx +28 -13
  1125. package/src/components/ui/checkbox.tsx +6 -1
  1126. package/src/components/ui/compliance-badge.tsx +6 -2
  1127. package/src/components/ui/cursor-pagination.tsx +28 -3
  1128. package/src/components/ui/dashboard-info-card.tsx +29 -11
  1129. package/src/components/ui/data-attribution.tsx +42 -12
  1130. package/src/components/ui/data-table/data-table-body.tsx +11 -2
  1131. package/src/components/ui/data-table/data-table-row-count.tsx +19 -1
  1132. package/src/components/ui/data-table/data-table-row.tsx +4 -9
  1133. package/src/components/ui/data-table/data-table-skeleton.tsx +7 -7
  1134. package/src/components/ui/data-table/index.ts +2 -1
  1135. package/src/components/ui/date-picker.tsx +0 -6
  1136. package/src/components/ui/entity-image.tsx +27 -4
  1137. package/src/components/ui/error-state.tsx +8 -1
  1138. package/src/components/ui/feature-card.tsx +77 -12
  1139. package/src/components/ui/feature-list.tsx +72 -8
  1140. package/src/components/ui/field-wrapper.tsx +13 -1
  1141. package/src/components/ui/filter-checkbox-item.tsx +57 -6
  1142. package/src/components/ui/filter-modal.tsx +2 -6
  1143. package/src/components/ui/filter-pill-row.tsx +81 -27
  1144. package/src/components/ui/incident-feed.tsx +20 -11
  1145. package/src/components/ui/index.ts +21 -1
  1146. package/src/components/ui/info-card-row.tsx +74 -19
  1147. package/src/components/ui/info-card.tsx +87 -13
  1148. package/src/components/ui/input-styles.ts +6 -0
  1149. package/src/components/ui/input.tsx +4 -1
  1150. package/src/components/ui/layout-hold.tsx +9 -7
  1151. package/src/components/ui/leader-row.tsx +58 -4
  1152. package/src/components/ui/loading-scope.tsx +54 -0
  1153. package/src/components/ui/markdown/base-components.tsx +18 -9
  1154. package/src/components/ui/markdown/engine.tsx +131 -7
  1155. package/src/components/ui/markdown/index.ts +8 -6
  1156. package/src/components/ui/markdown/mermaid-diagram.tsx +7 -4
  1157. package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +26 -1
  1158. package/src/components/ui/markdown/simple-markdown-renderer.tsx +0 -3
  1159. package/src/components/ui/markdown-editor.tsx +83 -50
  1160. package/src/components/ui/numbered-step.tsx +32 -2
  1161. package/src/components/ui/organization-card.tsx +32 -7
  1162. package/src/components/ui/page-actions.tsx +25 -29
  1163. package/src/components/ui/page-loader.tsx +2 -1
  1164. package/src/components/ui/people-cell.tsx +25 -2
  1165. package/src/components/ui/photo-wall.tsx +14 -3
  1166. package/src/components/ui/product-screen-frame.tsx +14 -3
  1167. package/src/components/ui/progress-bar.tsx +26 -3
  1168. package/src/components/ui/progress.tsx +14 -3
  1169. package/src/components/ui/release-changelog-section.tsx +153 -20
  1170. package/src/components/ui/search-input.tsx +23 -3
  1171. package/src/components/ui/searchable-select.tsx +26 -6
  1172. package/src/components/ui/skeleton-surface.ts +16 -4
  1173. package/src/components/ui/slack-channel-chip.tsx +23 -3
  1174. package/src/components/ui/snap-carousel.tsx +5 -0
  1175. package/src/components/ui/square-avatar.tsx +41 -23
  1176. package/src/components/ui/stacked-rows-panel.tsx +88 -15
  1177. package/src/components/ui/status-badge.tsx +18 -1
  1178. package/src/components/ui/status-indicator.tsx +21 -2
  1179. package/src/components/ui/status-line.tsx +2 -1
  1180. package/src/components/ui/strip-card.tsx +73 -23
  1181. package/src/components/ui/tab-navigation.tsx +141 -28
  1182. package/src/components/ui/table/table-header.tsx +2 -2
  1183. package/src/components/ui/table/table-row.tsx +2 -4
  1184. package/src/components/ui/table/table-skeleton.tsx +48 -54
  1185. package/src/components/ui/table/table.tsx +36 -19
  1186. package/src/components/ui/table/types.ts +12 -4
  1187. package/src/components/ui/table/utils.ts +5 -0
  1188. package/src/components/ui/tabs.tsx +64 -4
  1189. package/src/components/ui/tag.tsx +33 -13
  1190. package/src/components/ui/tags-input.tsx +48 -10
  1191. package/src/components/ui/textarea.tsx +33 -3
  1192. package/src/components/ui/ticket-info-section.tsx +0 -2
  1193. package/src/components/ui/timezone-select.tsx +4 -0
  1194. package/src/components/ui/toggle.tsx +11 -5
  1195. package/src/components/unified-pagination.tsx +15 -0
  1196. package/src/components/user-display.tsx +53 -12
  1197. package/src/components/user-summary-stub.tsx +7 -11
  1198. package/src/components/vendor-display-button.tsx +15 -12
  1199. package/src/components/vendor-icon.tsx +13 -2
  1200. package/src/components/vendor-tag.tsx +18 -4
  1201. package/src/embed-shims/next-image.tsx +36 -1
  1202. package/src/hooks/state/flatten-schema.ts +0 -4
  1203. package/src/hooks/state/index.ts +5 -3
  1204. package/src/hooks/state/url-converter.ts +2 -2
  1205. package/src/hooks/state/use-api-params.ts +2 -10
  1206. package/src/hooks/ui/index.ts +1 -0
  1207. package/src/hooks/ui/use-image-edge-color.ts +4 -1
  1208. package/src/hooks/ui/use-onboarding-state.ts +0 -2
  1209. package/src/hooks/use-downloads.ts +9 -1
  1210. package/src/hooks/use-meeting-booking.ts +4 -0
  1211. package/src/hooks/use-self-fetch.ts +12 -4
  1212. package/src/nats/index.ts +1 -0
  1213. package/src/nats/nats-provider.tsx +0 -2
  1214. package/src/nats/nats.ts +0 -2
  1215. package/src/nats/use-nats-subscription.ts +2 -1
  1216. package/src/schemas/meeting-booking-schema.ts +11 -0
  1217. package/src/styles/component-sizes.ts +105 -0
  1218. package/src/types/announcement.ts +0 -3
  1219. package/src/types/blog.ts +0 -4
  1220. package/src/types/case-study.ts +2 -2
  1221. package/src/types/customer-interview-ai.types.ts +1 -4
  1222. package/src/types/customer-interview.ts +0 -11
  1223. package/src/types/index.ts +2 -0
  1224. package/src/types/product-release.ts +4 -2
  1225. package/src/types/stack.ts +0 -4
  1226. package/src/utils/announcement-storage.ts +0 -7
  1227. package/src/utils/dev-sections/openframe-dev-sections.ts +11 -0
  1228. package/src/utils/index.ts +6 -9
  1229. package/src/utils/markdown-heading-id.ts +0 -28
  1230. package/src/utils/ods-color-utils.ts +0 -4
  1231. package/src/utils/own-click.ts +25 -0
  1232. package/src/utils/platform-config.tsx +0 -17
  1233. package/src/utils/source-icons.ts +2 -2
  1234. package/dist/chunk-3ATAYP36.cjs +0 -19
  1235. package/dist/chunk-3LU4UFPS.cjs +0 -14
  1236. package/dist/chunk-H3RYUTND.cjs +0 -142
  1237. package/dist/chunk-JB424IQK.cjs +0 -404
  1238. package/dist/chunk-L4UI63K6.cjs +0 -103
  1239. package/dist/chunk-NS64LMVE.cjs +0 -470
  1240. package/dist/chunk-OF336YWG.cjs +0 -20
  1241. package/dist/chunk-RB6BSE3O.cjs +0 -21
  1242. package/dist/chunk-UI2TLQWA.cjs +0 -163
  1243. package/dist/components/chat/entity-cards/product-release-card.d.ts +0 -12
  1244. package/dist/components/chat/entity-cards/product-release-card.d.ts.map +0 -1
  1245. package/dist/components/chat/entity-cards/product-release-card.js +0 -8
  1246. package/dist/components/chat/hooks/use-embedded-chat.d.ts +0 -15
  1247. package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +0 -1
  1248. package/dist/components/chat/hooks/use-embedded-chat.js +0 -6
  1249. package/dist/components/chat/types/entities/blog.d.ts +0 -14
  1250. package/dist/components/chat/types/entities/blog.d.ts.map +0 -1
  1251. package/dist/components/chat/types/entities/blog.js +0 -1
  1252. package/dist/components/chat/types/entities/case-study.d.ts +0 -10
  1253. package/dist/components/chat/types/entities/case-study.d.ts.map +0 -1
  1254. package/dist/components/chat/types/entities/case-study.js +0 -1
  1255. package/dist/components/chat/types/entities/content-ref.d.ts +0 -8
  1256. package/dist/components/chat/types/entities/content-ref.d.ts.map +0 -1
  1257. package/dist/components/chat/types/entities/content-ref.js +0 -1
  1258. package/dist/components/chat/types/entities/customer-interview.d.ts +0 -10
  1259. package/dist/components/chat/types/entities/customer-interview.d.ts.map +0 -1
  1260. package/dist/components/chat/types/entities/customer-interview.js +0 -1
  1261. package/dist/components/chat/utils/source-icons.d.ts +0 -8
  1262. package/dist/components/chat/utils/source-icons.d.ts.map +0 -1
  1263. package/dist/components/chat/utils/source-icons.js +0 -16
  1264. package/dist/utils/image-proxy-stub.d.ts +0 -14
  1265. package/dist/utils/image-proxy-stub.d.ts.map +0 -1
  1266. package/dist/utils/image-proxy-stub.js +0 -22
  1267. package/src/components/chat/entity-cards/product-release-card.tsx +0 -19
  1268. package/src/components/chat/hooks/use-embedded-chat.ts +0 -25
  1269. package/src/components/chat/types/entities/blog.ts +0 -27
  1270. package/src/components/chat/types/entities/case-study.ts +0 -10
  1271. package/src/components/chat/types/entities/content-ref.ts +0 -7
  1272. package/src/components/chat/types/entities/customer-interview.ts +0 -15
  1273. package/src/components/chat/utils/source-icons.ts +0 -14
  1274. package/src/utils/image-proxy-stub.ts +0 -40
@@ -2,10 +2,10 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkLVKUMVUJcjs = require('../../chunk-LVKUMVUJ.cjs');
5
+ var _chunkNBVZIHGScjs = require('../../chunk-NBVZIHGS.cjs');
6
6
 
7
7
 
8
- var _chunkTSJUL6IHcjs = require('../../chunk-TSJUL6IH.cjs');
8
+ var _chunkYRFWOJF4cjs = require('../../chunk-YRFWOJF4.cjs');
9
9
 
10
10
 
11
11
 
@@ -16,17 +16,21 @@ var _chunkTSJUL6IHcjs = require('../../chunk-TSJUL6IH.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunkFMH2DYBCcjs = require('../../chunk-FMH2DYBC.cjs');
20
- require('../../chunk-ZCU2PYCW.cjs');
21
- require('../../chunk-GY2JESOC.cjs');
22
19
 
23
20
 
24
21
 
22
+ var _chunkVRDHAR3Xcjs = require('../../chunk-VRDHAR3X.cjs');
23
+ require('../../chunk-MPTMT773.cjs');
24
+ require('../../chunk-RB7VLVMD.cjs');
25
25
 
26
26
 
27
27
 
28
28
 
29
- var _chunkWA4X55XYcjs = require('../../chunk-WA4X55XY.cjs');
29
+
30
+
31
+
32
+
33
+ var _chunkZV45VS6Kcjs = require('../../chunk-ZV45VS6K.cjs');
30
34
  require('../../chunk-HQQE74RO.cjs');
31
35
  require('../../chunk-DEY6XXGO.cjs');
32
36
 
@@ -34,26 +38,28 @@ require('../../chunk-DEY6XXGO.cjs');
34
38
 
35
39
 
36
40
 
37
- var _chunkXCH7SPGIcjs = require('../../chunk-XCH7SPGI.cjs');
38
- require('../../chunk-FQSXZC2K.cjs');
41
+ var _chunkXVFM6SJAcjs = require('../../chunk-XVFM6SJA.cjs');
42
+ require('../../chunk-2JRSYWFP.cjs');
39
43
  require('../../chunk-24I6RFVU.cjs');
40
44
  require('../../chunk-A6P6DHEZ.cjs');
41
45
  require('../../chunk-MZ4KBSH7.cjs');
42
- require('../../chunk-RO72PRQI.cjs');
43
46
 
44
47
 
45
- var _chunkYUMFVQINcjs = require('../../chunk-YUMFVQIN.cjs');
48
+ var _chunkZRDMGMY7cjs = require('../../chunk-ZRDMGMY7.cjs');
49
+
46
50
 
51
+ var _chunkC42WIUH6cjs = require('../../chunk-C42WIUH6.cjs');
47
52
 
48
53
 
49
- var _chunkT5FRANE6cjs = require('../../chunk-T5FRANE6.cjs');
50
54
 
55
+ var _chunk7VI7TOGIcjs = require('../../chunk-7VI7TOGI.cjs');
51
56
 
52
- var _chunk74ALTXXCcjs = require('../../chunk-74ALTXXC.cjs');
53
- require('../../chunk-BIA77I6B.cjs');
54
- require('../../chunk-3RFQPQ7Z.cjs');
55
- require('../../chunk-GZKWF6NH.cjs');
56
- require('../../chunk-EFTUFJS2.cjs');
57
+
58
+ var _chunkYL6ZB2SRcjs = require('../../chunk-YL6ZB2SR.cjs');
59
+ require('../../chunk-GTONIRJU.cjs');
60
+ require('../../chunk-RNLRS4ID.cjs');
61
+ require('../../chunk-XZ6DKGT4.cjs');
62
+ require('../../chunk-LELS4XMX.cjs');
57
63
  require('../../chunk-ZOZR3QI2.cjs');
58
64
  require('../../chunk-OMV5S5PI.cjs');
59
65
  require('../../chunk-KHPX3KU4.cjs');
@@ -1844,30 +1850,31 @@ require('../../chunk-IYHH5EIO.cjs');
1844
1850
  require('../../chunk-XIBCMGBW.cjs');
1845
1851
 
1846
1852
 
1847
- var _chunkNET74KSQcjs = require('../../chunk-NET74KSQ.cjs');
1848
- require('../../chunk-3RYIF4OW.cjs');
1849
- require('../../chunk-SVP6DJFL.cjs');
1853
+ var _chunkTZ4GKUO2cjs = require('../../chunk-TZ4GKUO2.cjs');
1854
+ require('../../chunk-XXJL5GY3.cjs');
1855
+ require('../../chunk-57B5RUYD.cjs');
1850
1856
  require('../../chunk-JKX2C3I2.cjs');
1851
1857
  require('../../chunk-7DNL734S.cjs');
1852
1858
  require('../../chunk-WWUSFOJ7.cjs');
1853
1859
  require('../../chunk-SKI6NKOE.cjs');
1854
1860
  require('../../chunk-EWPR7662.cjs');
1855
- require('../../chunk-NS64LMVE.cjs');
1861
+ require('../../chunk-FZB4RMRK.cjs');
1862
+
1856
1863
 
1864
+ var _chunkDGNBXZXTcjs = require('../../chunk-DGNBXZXT.cjs');
1865
+ require('../../chunk-R3JX4MXD.cjs');
1866
+ require('../../chunk-SETFUCZA.cjs');
1857
1867
 
1858
- var _chunk22XAPV6Ncjs = require('../../chunk-22XAPV6N.cjs');
1859
- require('../../chunk-OJJ4RL2T.cjs');
1860
- require('../../chunk-63N4FN5V.cjs');
1861
1868
 
1869
+ var _chunkAAECWUNVcjs = require('../../chunk-AAECWUNV.cjs');
1862
1870
 
1863
- var _chunkM7YZGRAVcjs = require('../../chunk-M7YZGRAV.cjs');
1864
1871
 
1865
1872
 
1866
1873
 
1867
1874
 
1868
1875
 
1869
1876
 
1870
- var _chunkEQZXJUYVcjs = require('../../chunk-EQZXJUYV.cjs');
1877
+ var _chunkJTSUAHDLcjs = require('../../chunk-JTSUAHDL.cjs');
1871
1878
  require('../../chunk-S5C3OZCO.cjs');
1872
1879
  require('../../chunk-32ASZMTV.cjs');
1873
1880
  require('../../chunk-OOYBIS7D.cjs');
@@ -1878,46 +1885,46 @@ require('../../chunk-RUHKTWGB.cjs');
1878
1885
 
1879
1886
 
1880
1887
  var _chunkBLH2SFOOcjs = require('../../chunk-BLH2SFOO.cjs');
1881
- require('../../chunk-I5MSCD57.cjs');
1888
+ require('../../chunk-3LW5TD54.cjs');
1882
1889
 
1883
1890
 
1884
1891
  var _chunkASMNNSUQcjs = require('../../chunk-ASMNNSUQ.cjs');
1885
1892
  require('../../chunk-CW3ML76U.cjs');
1886
- require('../../chunk-MWLD6NXV.cjs');
1887
- require('../../chunk-R3TWQ3ZJ.cjs');
1893
+ require('../../chunk-VFZFCRAL.cjs');
1894
+ require('../../chunk-5P4TDV7V.cjs');
1888
1895
  require('../../chunk-DGFDBPO7.cjs');
1889
- require('../../chunk-HOTM4UM6.cjs');
1896
+ require('../../chunk-E76ONBKF.cjs');
1890
1897
  require('../../chunk-UJ7AXHRZ.cjs');
1891
1898
 
1892
1899
 
1893
1900
 
1894
- var _chunkHTRILBJDcjs = require('../../chunk-HTRILBJD.cjs');
1901
+
1902
+ var _chunkYXDHVHB2cjs = require('../../chunk-YXDHVHB2.cjs');
1895
1903
 
1896
1904
 
1897
- var _chunkK6VWTUCHcjs = require('../../chunk-K6VWTUCH.cjs');
1898
- require('../../chunk-AKK3EO37.cjs');
1905
+ var _chunkFL2RMEDXcjs = require('../../chunk-FL2RMEDX.cjs');
1906
+ require('../../chunk-XIFEZ2JT.cjs');
1899
1907
  require('../../chunk-Z74QE57T.cjs');
1900
1908
  require('../../chunk-XZJCBIYR.cjs');
1901
1909
 
1902
1910
 
1903
- var _chunkNO5UJLLQcjs = require('../../chunk-NO5UJLLQ.cjs');
1911
+ var _chunkWEANWBJHcjs = require('../../chunk-WEANWBJH.cjs');
1904
1912
 
1905
1913
 
1906
- var _chunk2QMBXGMQcjs = require('../../chunk-2QMBXGMQ.cjs');
1907
1914
 
1908
1915
 
1909
- var _chunkV45KLJQPcjs = require('../../chunk-V45KLJQP.cjs');
1910
- require('../../chunk-KHKPLOU4.cjs');
1911
- require('../../chunk-L4UI63K6.cjs');
1912
- require('../../chunk-OF336YWG.cjs');
1913
- require('../../chunk-3LU4UFPS.cjs');
1914
- require('../../chunk-RB6BSE3O.cjs');
1915
1916
 
1917
+ var _chunkXFRBEXQNcjs = require('../../chunk-XFRBEXQN.cjs');
1916
1918
 
1917
- var _chunkH3RYUTNDcjs = require('../../chunk-H3RYUTND.cjs');
1918
1919
 
1920
+ var _chunkTF5D5MNOcjs = require('../../chunk-TF5D5MNO.cjs');
1919
1921
 
1920
- var _chunk3ATAYP36cjs = require('../../chunk-3ATAYP36.cjs');
1922
+
1923
+ var _chunkV45KLJQPcjs = require('../../chunk-V45KLJQP.cjs');
1924
+
1925
+
1926
+ var _chunk65VVJSQZcjs = require('../../chunk-65VVJSQZ.cjs');
1927
+ require('../../chunk-KHKPLOU4.cjs');
1921
1928
 
1922
1929
  // src/components/meeting-scheduler/index.tsx
1923
1930
  var _react = require('react');
@@ -2049,6 +2056,9 @@ function normalizeFormField(field) {
2049
2056
  }
2050
2057
  return normalized;
2051
2058
  }
2059
+ function bookingFormAsks(field, optionalFields) {
2060
+ return Boolean(field.required) || !optionalFields || optionalFields.includes(field.name);
2061
+ }
2052
2062
  function normalizeFormFields(fields) {
2053
2063
  return fields.flatMap((f) => _nullishCoalesce(normalizeFormField(f), () => ( [])));
2054
2064
  }
@@ -2194,7 +2204,7 @@ function useMeetingBooking(options) {
2194
2204
  const seededOffset = _optionalChain([initialAvailability, 'optionalAccess', _12 => _12.meetingId]) === meetingId ? initialAvailability.monthOffset : void 0;
2195
2205
  const [monthOffset, setMonthOffsetState] = _react.useState.call(void 0, _nullishCoalesce(seededOffset, () => ( 0)));
2196
2206
  const setMonthOffset = _react.useCallback.call(void 0, (offset) => {
2197
- setMonthOffsetState(Math.max(0, Math.min(_chunkT5FRANE6cjs.MAX_MONTH_OFFSET, offset)));
2207
+ setMonthOffsetState(Math.max(0, Math.min(_chunk7VI7TOGIcjs.MAX_MONTH_OFFSET, offset)));
2198
2208
  }, []);
2199
2209
  const prevMeetingIdRef = _react.useRef.call(void 0, meetingId);
2200
2210
  _react.useLayoutEffect.call(void 0, () => {
@@ -2202,6 +2212,7 @@ function useMeetingBooking(options) {
2202
2212
  prevMeetingIdRef.current = meetingId;
2203
2213
  setMonthOffsetState(0);
2204
2214
  }, [meetingId]);
2215
+ const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
2205
2216
  const seed = _optionalChain([initialAvailability, 'optionalAccess', _13 => _13.meetingId]) === meetingId && initialAvailability.monthOffset === monthOffset ? initialAvailability : void 0;
2206
2217
  const availabilityQuery = _reactquery.useQuery.call(void 0, {
2207
2218
  queryKey: meetingAvailabilityKey(apiBaseUrl, meetingId, monthOffset),
@@ -2212,6 +2223,7 @@ function useMeetingBooking(options) {
2212
2223
  return await res.json();
2213
2224
  },
2214
2225
  staleTime: AVAILABILITY_STALE_MS,
2226
+ enabled: !inScope,
2215
2227
  initialData: seed,
2216
2228
  // Stamped as infinitely old on purpose: the seed is first-paint
2217
2229
  // scaffolding for a 60-second-volatile resource, not truth, so it paints
@@ -2286,7 +2298,6 @@ var SPAN_CLASS = {
2286
2298
  3: "content-md:col-span-3",
2287
2299
  4: "content-md:col-span-4"
2288
2300
  };
2289
- var FIELD_SKELETON_CLASS = "h-[4.75rem] w-full";
2290
2301
  var DEFAULT_SUBMIT_LABEL = "Confirm Booking";
2291
2302
  var FOOTER_ROW_CLASS = "flex flex-wrap items-center justify-between gap-[var(--spacing-system-m)]";
2292
2303
  var FOOTER_BARE_CLASS = "flex";
@@ -2297,9 +2308,9 @@ var evenSpan = (count, index) => {
2297
2308
  const extra = GRID_COLUMNS - base * count;
2298
2309
  return Math.min(GRID_COLUMNS, Math.max(1, index < extra ? base + 1 : base));
2299
2310
  };
2300
- var slotColumnClass = (row, slot, index) => _chunk3ATAYP36cjs.cn.call(void 0, row.length === 2 ? "col-span-1" : "col-span-2", SPAN_CLASS[_nullishCoalesce(slot.span, () => ( evenSpan(row.length, index)))]);
2311
+ var slotColumnClass = (row, slot, index) => _chunk65VVJSQZcjs.cn.call(void 0, row.length === 2 ? "col-span-1" : "col-span-2", SPAN_CLASS[_nullishCoalesce(slot.span, () => ( evenSpan(row.length, index)))]);
2301
2312
  var placeholderFor = (field) => _nullishCoalesce(field.placeholder, () => ( _optionalChain([fieldTypeSpec, 'call', _14 => _14(field.type), 'access', _15 => _15.placeholder, 'optionalCall', _16 => _16(field)])));
2302
- var optionLabel = (field, value) => _nullishCoalesce(_optionalChain([field, 'access', _17 => _17.optionLabels, 'optionalAccess', _18 => _18[value]]), () => ( value));
2313
+ var formFieldOptionLabel = (field, value) => _nullishCoalesce(_optionalChain([field, 'access', _17 => _17.optionLabels, 'optionalAccess', _18 => _18[value]]), () => ( value));
2303
2314
  var trimmed = (v) => String(_nullishCoalesce(v, () => ( ""))).trim();
2304
2315
  var canonicalNumber = (v) => {
2305
2316
  const s = String(_nullishCoalesce(v, () => ( ""))).trim();
@@ -2311,7 +2322,7 @@ var canonicalNumber = (v) => {
2311
2322
  };
2312
2323
  var FIELD_CONTROLS = {
2313
2324
  text: ({ field, id, registerName, error, register }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2314
- _chunkHTRILBJDcjs.Input,
2325
+ _chunkYXDHVHB2cjs.Input,
2315
2326
  {
2316
2327
  id,
2317
2328
  type: _nullishCoalesce(field.inputType, () => ( "text")),
@@ -2324,7 +2335,7 @@ var FIELD_CONTROLS = {
2324
2335
  }
2325
2336
  ),
2326
2337
  textarea: ({ field, id, registerName, error, register }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2327
- _chunkFMH2DYBCcjs.Textarea,
2338
+ _chunkVRDHAR3Xcjs.Textarea,
2328
2339
  {
2329
2340
  id,
2330
2341
  required: field.required,
@@ -2335,7 +2346,7 @@ var FIELD_CONTROLS = {
2335
2346
  }
2336
2347
  ),
2337
2348
  number: ({ field, id, registerName, error, register }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2338
- _chunkHTRILBJDcjs.Input,
2349
+ _chunkYXDHVHB2cjs.Input,
2339
2350
  {
2340
2351
  id,
2341
2352
  type: "number",
@@ -2348,7 +2359,7 @@ var FIELD_CONTROLS = {
2348
2359
  }
2349
2360
  ),
2350
2361
  phone: ({ field, id, registerName, error, register }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2351
- _chunkHTRILBJDcjs.Input,
2362
+ _chunkYXDHVHB2cjs.Input,
2352
2363
  {
2353
2364
  id,
2354
2365
  type: "tel",
@@ -2364,7 +2375,7 @@ var FIELD_CONTROLS = {
2364
2375
  date: ({ field, id, registerName, error, register }) => (
2365
2376
  // The native picker emits exactly the wire shape (`YYYY-MM-DD`).
2366
2377
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2367
- _chunkHTRILBJDcjs.Input,
2378
+ _chunkYXDHVHB2cjs.Input,
2368
2379
  {
2369
2380
  id,
2370
2381
  type: "date",
@@ -2380,18 +2391,18 @@ var FIELD_CONTROLS = {
2380
2391
  {
2381
2392
  control,
2382
2393
  name: registerName,
2383
- render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkWA4X55XYcjs.Select, { value: _nullishCoalesce(rhf.value, () => ( "")), onValueChange: rhf.onChange, children: [
2394
+ render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZV45VS6Kcjs.Select, { value: _nullishCoalesce(rhf.value, () => ( "")), onValueChange: rhf.onChange, children: [
2384
2395
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2385
- _chunkWA4X55XYcjs.SelectTrigger,
2396
+ _chunkZV45VS6Kcjs.SelectTrigger,
2386
2397
  {
2387
2398
  id,
2388
2399
  "aria-required": field.required || void 0,
2389
2400
  "aria-invalid": Boolean(error),
2390
2401
  invalid: Boolean(error),
2391
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWA4X55XYcjs.SelectValue, { placeholder: "Select\u2026" })
2402
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZV45VS6Kcjs.SelectValue, { placeholder: "Select\u2026" })
2392
2403
  }
2393
2404
  ),
2394
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWA4X55XYcjs.SelectContent, { children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWA4X55XYcjs.SelectItem, { value: opt, children: optionLabel(field, opt) }, opt)) })
2405
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZV45VS6Kcjs.SelectContent, { children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZV45VS6Kcjs.SelectItem, { value: opt, children: formFieldOptionLabel(field, opt) }, opt)) })
2395
2406
  ] })
2396
2407
  }
2397
2408
  ),
@@ -2401,15 +2412,15 @@ var FIELD_CONTROLS = {
2401
2412
  control,
2402
2413
  name: registerName,
2403
2414
  render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2404
- _chunkFMH2DYBCcjs.RadioGroup,
2415
+ _chunkVRDHAR3Xcjs.RadioGroup,
2405
2416
  {
2406
2417
  value: _nullishCoalesce(rhf.value, () => ( "")),
2407
2418
  onValueChange: rhf.onChange,
2408
2419
  "aria-required": field.required || void 0,
2409
2420
  "aria-invalid": Boolean(error),
2410
2421
  children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
2411
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFMH2DYBCcjs.RadioGroupItem, { id: `${id}-${opt}`, value: opt }),
2412
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkK6VWTUCHcjs.Label, { htmlFor: `${id}-${opt}`, children: optionLabel(field, opt) })
2422
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.RadioGroupItem, { id: `${id}-${opt}`, value: opt }),
2423
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFL2RMEDXcjs.Label, { htmlFor: `${id}-${opt}`, children: formFieldOptionLabel(field, opt) })
2413
2424
  ] }, opt))
2414
2425
  }
2415
2426
  )
@@ -2431,7 +2442,7 @@ var FIELD_CONTROLS = {
2431
2442
  };
2432
2443
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { id, role: "group", className: "flex flex-col gap-[var(--spacing-system-xs)]", children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
2433
2444
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2434
- _chunkYUMFVQINcjs.Checkbox,
2445
+ _chunkC42WIUH6cjs.Checkbox,
2435
2446
  {
2436
2447
  id: `${id}-${opt}`,
2437
2448
  checked: selected.includes(opt),
@@ -2439,7 +2450,7 @@ var FIELD_CONTROLS = {
2439
2450
  "aria-invalid": Boolean(error)
2440
2451
  }
2441
2452
  ),
2442
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkK6VWTUCHcjs.Label, { htmlFor: `${id}-${opt}`, children: optionLabel(field, opt) })
2453
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFL2RMEDXcjs.Label, { htmlFor: `${id}-${opt}`, children: formFieldOptionLabel(field, opt) })
2443
2454
  ] }, opt)) });
2444
2455
  }
2445
2456
  }
@@ -2455,7 +2466,7 @@ var FIELD_CONTROLS = {
2455
2466
  // this id — a second inline label would double the visible text AND
2456
2467
  // the accessible name.
2457
2468
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2458
- _chunkYUMFVQINcjs.Checkbox,
2469
+ _chunkC42WIUH6cjs.Checkbox,
2459
2470
  {
2460
2471
  id,
2461
2472
  checked: Boolean(rhf.value),
@@ -2468,8 +2479,60 @@ var FIELD_CONTROLS = {
2468
2479
  }
2469
2480
  )
2470
2481
  };
2482
+ var CHIP_FIELD_TYPES = /* @__PURE__ */ new Set(["select", "radio"]);
2483
+ var CHIP_MAX_OPTIONS = 6;
2484
+ function drawnAsChips(field, display) {
2485
+ if (display !== "chips" || !CHIP_FIELD_TYPES.has(field.type)) return false;
2486
+ const count = _nullishCoalesce(_optionalChain([field, 'access', _19 => _19.options, 'optionalAccess', _20 => _20.length]), () => ( 0));
2487
+ return count > 0 && count <= CHIP_MAX_OPTIONS;
2488
+ }
2489
+ var CHIP_ROW_CLASS = "flex flex-wrap justify-start gap-[var(--spacing-system-xsf)]";
2490
+ var chipsControl = ({ field, id, registerName, error, control }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2491
+ _reacthookform.Controller,
2492
+ {
2493
+ control,
2494
+ name: registerName,
2495
+ render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2496
+ _chunkVRDHAR3Xcjs.ToggleGroup,
2497
+ {
2498
+ id,
2499
+ type: "single",
2500
+ variant: "choice",
2501
+ value: _nullishCoalesce(rhf.value, () => ( "")),
2502
+ onValueChange: (value) => {
2503
+ if (value) rhf.onChange(value);
2504
+ },
2505
+ ref: (group) => rhf.ref(group && { focus: () => _optionalChain([group, 'access', _21 => _21.querySelector, 'call', _22 => _22("button"), 'optionalAccess', _23 => _23.focus, 'call', _24 => _24()]) }),
2506
+ onBlur: rhf.onBlur,
2507
+ "aria-labelledby": _chunkYXDHVHB2cjs.fieldLabelId.call(void 0, id),
2508
+ "aria-required": field.required || void 0,
2509
+ "aria-invalid": Boolean(error),
2510
+ className: CHIP_ROW_CLASS,
2511
+ children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.ToggleGroupItem, { value: opt, className: _chunk65VVJSQZcjs.cn.call(void 0, error && "data-[state=off]:border-ods-error"), children: formFieldOptionLabel(field, opt) }, opt))
2512
+ }
2513
+ )
2514
+ }
2515
+ );
2471
2516
  var builtInId = (name) => `ms-${name.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`)}`;
2472
- function BookingForm({
2517
+ function BookingForm(props) {
2518
+ const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
2519
+ const { availability } = props;
2520
+ if (inScope || props.loading || !availability) {
2521
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2522
+ BookingFormSkeleton,
2523
+ {
2524
+ fieldRows: props.fieldRows,
2525
+ optionalFields: props.optionalFields,
2526
+ fieldCopy: props.fieldCopy,
2527
+ consent: props.consent,
2528
+ footerNote: props.footerNote,
2529
+ submitLabel: props.submitLabel
2530
+ }
2531
+ );
2532
+ }
2533
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BookingFormBody, { ...props, availability });
2534
+ }
2535
+ function BookingFormBody({
2473
2536
  availability,
2474
2537
  meetingId,
2475
2538
  startTimeMs,
@@ -2477,9 +2540,11 @@ function BookingForm({
2477
2540
  timezone,
2478
2541
  deferSlot = false,
2479
2542
  initialValues,
2543
+ answers,
2480
2544
  submitLabel,
2481
2545
  footerNote,
2482
2546
  fieldRows,
2547
+ optionalFields,
2483
2548
  formId,
2484
2549
  hideSubmit = false,
2485
2550
  onValidityChange,
@@ -2493,13 +2558,16 @@ function BookingForm({
2493
2558
  rescue = null
2494
2559
  }) {
2495
2560
  const { formFields, legalConsent } = availability;
2496
- const supportedFields = _react.useMemo.call(void 0, () => normalizeFormFields(formFields), [formFields]);
2561
+ const supportedFields = _react.useMemo.call(void 0,
2562
+ () => normalizeFormFields(formFields).filter((field) => bookingFormAsks(field, optionalFields)),
2563
+ [formFields, optionalFields]
2564
+ );
2497
2565
  const schema = _react.useMemo.call(void 0,
2498
2566
  () => withDeniedEmailDomains(makeDeferredBookingSchema(supportedFields, legalConsent), deniedEmailDomains),
2499
2567
  [supportedFields, legalConsent, deniedEmailDomains]
2500
2568
  );
2501
2569
  const consentDefaults = _react.useMemo.call(void 0,
2502
- () => (_nullishCoalesce(_optionalChain([legalConsent, 'optionalAccess', _19 => _19.communicationConsentCheckboxes]), () => ( []))).map((c) => ({
2570
+ () => (_nullishCoalesce(_optionalChain([legalConsent, 'optionalAccess', _25 => _25.communicationConsentCheckboxes]), () => ( []))).map((c) => ({
2503
2571
  communicationTypeId: c.communicationTypeId,
2504
2572
  consented: false
2505
2573
  })),
@@ -2531,8 +2599,8 @@ function BookingForm({
2531
2599
  ..._nullishCoalesce(initialValues, () => ( {}))
2532
2600
  }
2533
2601
  });
2534
- const priorConsents = _optionalChain([initialValues, 'optionalAccess', _20 => _20.legalConsentResponses]);
2535
- const [consented, setConsented] = _react.useState.call(void 0, _optionalChain([initialValues, 'optionalAccess', _21 => _21[HOST_CONSENT_KEY]]) === true);
2602
+ const priorConsents = _optionalChain([initialValues, 'optionalAccess', _26 => _26.legalConsentResponses]);
2603
+ const [consented, setConsented] = _react.useState.call(void 0, _optionalChain([initialValues, 'optionalAccess', _27 => _27[HOST_CONSENT_KEY]]) === true);
2536
2604
  const [consentError, setConsentError] = _react.useState.call(void 0, null);
2537
2605
  const consentMissing = Boolean(consent) && !consented;
2538
2606
  const watchedValues = watch();
@@ -2550,16 +2618,30 @@ function BookingForm({
2550
2618
  "legalConsentResponses",
2551
2619
  consentDefaults.map((next) => ({
2552
2620
  ...next,
2553
- consented: _nullishCoalesce(_optionalChain([current, 'access', _22 => _22.find, 'call', _23 => _23((r) => r.communicationTypeId === next.communicationTypeId), 'optionalAccess', _24 => _24.consented]), () => ( false))
2621
+ consented: _nullishCoalesce(_optionalChain([current, 'access', _28 => _28.find, 'call', _29 => _29((r) => r.communicationTypeId === next.communicationTypeId), 'optionalAccess', _30 => _30.consented]), () => ( false))
2554
2622
  })),
2555
2623
  { shouldDirty: false }
2556
2624
  );
2557
2625
  }, [consentDefaults, priorConsents, getValues, setValue]);
2626
+ const written = _react.useRef.call(void 0, {});
2627
+ _react.useEffect.call(void 0, () => {
2628
+ const names = /* @__PURE__ */ new Set([...Object.keys(_nullishCoalesce(answers, () => ( {}))), ...Object.keys(written.current)]);
2629
+ for (const name of names) {
2630
+ if (!supportedFields.some((field) => field.name === name)) continue;
2631
+ const next = _nullishCoalesce(_optionalChain([answers, 'optionalAccess', _31 => _31[name]]), () => ( ""));
2632
+ const current = _nullishCoalesce(_optionalChain([getValues, 'call', _32 => _32("formFields"), 'optionalAccess', _33 => _33[name]]), () => ( ""));
2633
+ if (current !== "" && current !== written.current[name]) continue;
2634
+ if (next) written.current[name] = next;
2635
+ else delete written.current[name];
2636
+ if (current === next) continue;
2637
+ setValue(`formFields.${name}`, next, { shouldValidate: next !== "" });
2638
+ }
2639
+ }, [answers, supportedFields, getValues, setValue]);
2558
2640
  const rescueFields = _react.useMemo.call(void 0,
2559
2641
  () => [...BUILT_IN_BOOKING_FIELDS.map((field) => field.name), ...supportedFields.map((field) => field.name)],
2560
2642
  [supportedFields]
2561
2643
  );
2562
- const formRescue = _chunkXCH7SPGIcjs.useRescuedForm.call(void 0,
2644
+ const formRescue = _chunkXVFM6SJAcjs.useRescuedForm.call(void 0,
2563
2645
  { watch, getValues, setValue },
2564
2646
  {
2565
2647
  rescue,
@@ -2568,7 +2650,7 @@ function BookingForm({
2568
2650
  fieldPath: (name) => BUILT_IN_BOOKING_FIELDS.some((field) => field.name === name) ? name : `formFields.${name}`
2569
2651
  }
2570
2652
  );
2571
- const { toast } = _chunkXCH7SPGIcjs.useToast.call(void 0, );
2653
+ const { toast } = _chunkXVFM6SJAcjs.useToast.call(void 0, );
2572
2654
  const onInvalid = () => {
2573
2655
  if (deniedEmailDomains && emailDomainDenied(getValues("email"), deniedEmailDomains)) {
2574
2656
  toast({
@@ -2596,24 +2678,24 @@ function BookingForm({
2596
2678
  });
2597
2679
  }, onInvalid);
2598
2680
  const submit = (event) => {
2599
- if (consentMissing) setConsentError(_nullishCoalesce(_optionalChain([consent, 'optionalAccess', _25 => _25.errorMessage]), () => ( "Please agree to continue.")));
2681
+ if (consentMissing) setConsentError(_nullishCoalesce(_optionalChain([consent, 'optionalAccess', _34 => _34.errorMessage]), () => ( "Please agree to continue.")));
2600
2682
  return submitValid(event);
2601
2683
  };
2602
2684
  const fieldError = (name) => {
2603
- const err = _optionalChain([errors, 'access', _26 => _26.formFields, 'optionalAccess', _27 => _27[name]]);
2604
- return _optionalChain([err, 'optionalAccess', _28 => _28.message]);
2685
+ const err = _optionalChain([errors, 'access', _35 => _35.formFields, 'optionalAccess', _36 => _36[name]]);
2686
+ return _optionalChain([err, 'optionalAccess', _37 => _37.message]);
2605
2687
  };
2606
2688
  const renderField = (field, where) => {
2607
- const copy = _optionalChain([fieldCopy, 'optionalAccess', _29 => _29[field.name]]);
2689
+ const copy = _optionalChain([fieldCopy, 'optionalAccess', _38 => _38[field.name]]);
2608
2690
  const shown = copy ? { ...field, label: _nullishCoalesce(copy.label, () => ( field.label)), placeholder: _nullishCoalesce(copy.placeholder, () => ( field.placeholder)) } : field;
2609
2691
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2610
- _chunkHTRILBJDcjs.FieldWrapper,
2692
+ _chunkYXDHVHB2cjs.FieldWrapper,
2611
2693
  {
2612
2694
  label: shown.label,
2613
2695
  htmlFor: where.id,
2614
2696
  required: shown.required,
2615
2697
  error: where.error,
2616
- children: FIELD_CONTROLS[shown.type]({
2698
+ children: (drawnAsChips(shown, _optionalChain([copy, 'optionalAccess', _39 => _39.display])) ? chipsControl : FIELD_CONTROLS[shown.type])({
2617
2699
  field: shown,
2618
2700
  id: where.id,
2619
2701
  registerName: where.registerName,
@@ -2628,7 +2710,7 @@ function BookingForm({
2628
2710
  const builtInFields = Object.fromEntries(
2629
2711
  BUILT_IN_BOOKING_FIELDS.map((field) => [
2630
2712
  field.name,
2631
- renderField(field, { id: builtInId(field.name), registerName: field.name, error: _optionalChain([errors, 'access', _30 => _30[field.name], 'optionalAccess', _31 => _31.message]) })
2713
+ renderField(field, { id: builtInId(field.name), registerName: field.name, error: _optionalChain([errors, 'access', _40 => _40[field.name], 'optionalAccess', _41 => _41.message]) })
2632
2714
  ])
2633
2715
  );
2634
2716
  const renderDeclaredField = (field) => renderField(field, {
@@ -2647,7 +2729,7 @@ function BookingForm({
2647
2729
  const { rows: placedRows, unplacedBuiltIns, named: placedNames } = normalizeFieldRows(_nullishCoalesce(fieldRows, () => ( [])), slotResolves);
2648
2730
  const unplacedFields = fieldRows ? supportedFields.filter((f) => !placedNames.has(f.name)) : [];
2649
2731
  const submitButton = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2650
- _chunk2QMBXGMQcjs.Button,
2732
+ _chunkTF5D5MNOcjs.Button,
2651
2733
  {
2652
2734
  type: "submit",
2653
2735
  loading: isSubmitting,
@@ -2656,8 +2738,8 @@ function BookingForm({
2656
2738
  children: _nullishCoalesce(submitLabel, () => ( DEFAULT_SUBMIT_LABEL))
2657
2739
  }
2658
2740
  );
2659
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { id: formId, onSubmit: submit, className: FORM_STACK, noValidate: true, ..._chunkT5FRANE6cjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS, children: [
2660
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFMH2DYBCcjs.HoneypotField, { ...honeypotInputProps }),
2741
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { id: formId, onSubmit: submit, className: FORM_STACK, noValidate: true, ..._chunk7VI7TOGIcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS, children: [
2742
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.HoneypotField, { ...honeypotInputProps }),
2661
2743
  fieldRows ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
2662
2744
  placedRows.map((row) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROW_GRID, children: row.map((slot, slotIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: slotColumnClass(row, slot, slotIndex), children: slotNode(slot.name) }, slot.name)) }, row.map((s) => s.name).join("|"))),
2663
2745
  [...unplacedBuiltIns, ...unplacedFields].map((field) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Fragment, { children: slotNode(field.name) }, field.name))
@@ -2670,7 +2752,7 @@ function BookingForm({
2670
2752
  supportedFields.map((field) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Fragment, { children: renderDeclaredField(field) }, field.name))
2671
2753
  ] }),
2672
2754
  consent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2673
- _chunkFMH2DYBCcjs.CheckboxBlock,
2755
+ _chunkVRDHAR3Xcjs.CheckboxBlock,
2674
2756
  {
2675
2757
  id: "ms-host-consent",
2676
2758
  checked: consented,
@@ -2689,7 +2771,7 @@ function BookingForm({
2689
2771
  // box doesn't shove the submit button down the card. With no error the
2690
2772
  // wrapper is `display:contents` and the panel below is the flex item,
2691
2773
  // exactly as it was.
2692
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTRILBJDcjs.FieldWrapper, { error: _optionalChain([errors, 'access', _32 => _32.legalConsentResponses, 'optionalAccess', _33 => _33.message]), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)]", children: [
2774
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYXDHVHB2cjs.FieldWrapper, { error: _optionalChain([errors, 'access', _42 => _42.legalConsentResponses, 'optionalAccess', _43 => _43.message]), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)]", children: [
2693
2775
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: legalConsent.processingConsentText }),
2694
2776
  legalConsent.communicationConsentText && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: legalConsent.communicationConsentText }),
2695
2777
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -2705,10 +2787,10 @@ function BookingForm({
2705
2787
  // same block the waitlist form uses): box + label in one
2706
2788
  // bordered row.
2707
2789
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2708
- _chunkFMH2DYBCcjs.CheckboxBlock,
2790
+ _chunkVRDHAR3Xcjs.CheckboxBlock,
2709
2791
  {
2710
2792
  id: `ms-consent-${box.communicationTypeId}`,
2711
- checked: _nullishCoalesce(_optionalChain([current, 'optionalAccess', _34 => _34.consented]), () => ( false)),
2793
+ checked: _nullishCoalesce(_optionalChain([current, 'optionalAccess', _44 => _44.consented]), () => ( false)),
2712
2794
  onCheckedChange: (v) => rhf.onChange(
2713
2795
  responses.map(
2714
2796
  (r) => r.communicationTypeId === box.communicationTypeId ? { ...r, consented: v } : r
@@ -2733,24 +2815,49 @@ function BookingForm({
2733
2815
  }
2734
2816
  function BookingFormSkeleton({
2735
2817
  fieldRows,
2818
+ optionalFields,
2819
+ fieldCopy,
2736
2820
  consent,
2737
- footerNote
2821
+ footerNote,
2822
+ submitLabel = DEFAULT_SUBMIT_LABEL
2738
2823
  }) {
2739
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex-1", FORM_STACK), children: [
2740
- skeletonRows(_nullishCoalesce(fieldRows, () => ( DEFAULT_FIELD_ROWS))).map((row) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROW_GRID, children: row.map((slot, slotIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2741
- _chunkH3RYUTNDcjs.UnifiedSkeleton,
2742
- {
2743
- className: _chunk3ATAYP36cjs.cn.call(void 0, FIELD_SKELETON_CLASS, slotColumnClass(row, slot, slotIndex))
2744
- },
2745
- slot.name
2746
- )) }, row.map((s) => s.name).join("|"))),
2747
- !fieldRows && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-[7.75rem] w-full" }),
2748
- consent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-[4.25rem] w-full" }),
2749
- footerNote ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: FOOTER_ROW_CLASS, children: [
2750
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-5 min-w-40 flex-1" }),
2751
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: _chunk3ATAYP36cjs.cn.call(void 0, "h-12 w-full", SUBMIT_WIDE_CLASS) })
2752
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: FOOTER_BARE_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-12 w-40" }) })
2753
- ] });
2824
+ const consentId = _react.useId.call(void 0, );
2825
+ const submitButton = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { type: "button", tabIndex: -1, className: footerNote ? SUBMIT_WIDE_CLASS : void 0, children: submitLabel });
2826
+ return (
2827
+ // Inert: the fields are the form's own controls, drawn so each is its loaded size; none takes focus.
2828
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "flex-1", FORM_STACK), "aria-hidden": true, inert: true, children: [
2829
+ skeletonRows(_nullishCoalesce(fieldRows, () => ( DEFAULT_FIELD_ROWS)), optionalFields).map((row) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROW_GRID, children: row.map((slot, slotIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2830
+ FieldSkeleton,
2831
+ {
2832
+ name: slot.name,
2833
+ fieldCopy,
2834
+ className: slotColumnClass(row, slot, slotIndex)
2835
+ },
2836
+ slot.name
2837
+ )) }, row.map((s) => s.name).join("|"))),
2838
+ !fieldRows && // An empty label keeps the field's own frame (`FieldWrapper` draws no label for it); the bar stands for it.
2839
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYXDHVHB2cjs.FieldWrapper, { label: "", children: [
2840
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "mb-1 w-40" }),
2841
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.Textarea, { tabIndex: -1 })
2842
+ ] }),
2843
+ consent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2844
+ _chunkVRDHAR3Xcjs.CheckboxBlock,
2845
+ {
2846
+ id: consentId,
2847
+ checked: false,
2848
+ onCheckedChange: () => {
2849
+ },
2850
+ required: true,
2851
+ label: consent === true ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-64 max-w-full" }) : consent.label,
2852
+ description: consent === true ? void 0 : consent.description
2853
+ }
2854
+ ),
2855
+ footerNote ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: FOOTER_ROW_CLASS, children: [
2856
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: footerNote }),
2857
+ submitButton
2858
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: FOOTER_BARE_CLASS, children: submitButton })
2859
+ ] })
2860
+ );
2754
2861
  }
2755
2862
  function normalizeFieldRows(fieldRows, resolves = () => true) {
2756
2863
  const seen = /* @__PURE__ */ new Set();
@@ -2769,15 +2876,32 @@ function normalizeFieldRows(fieldRows, resolves = () => true) {
2769
2876
  const unplacedBuiltIns = BUILT_IN_BOOKING_FIELDS.filter((f) => !named.has(f.name));
2770
2877
  return { rows, unplacedBuiltIns, named };
2771
2878
  }
2772
- function skeletonRows(fieldRows) {
2773
- const { rows, unplacedBuiltIns } = normalizeFieldRows(fieldRows);
2879
+ function skeletonRows(fieldRows, optionalFields) {
2880
+ const asks = (name) => !optionalFields || BUILT_IN_BOOKING_FIELDS.some((f) => f.name === name) || optionalFields.includes(name);
2881
+ const { rows, unplacedBuiltIns } = normalizeFieldRows(fieldRows, asks);
2774
2882
  return [...rows, ...unplacedBuiltIns.map((f) => [{ name: f.name }])];
2775
2883
  }
2884
+ function FieldSkeleton({
2885
+ name,
2886
+ fieldCopy,
2887
+ className
2888
+ }) {
2889
+ const builtIn = BUILT_IN_BOOKING_FIELDS.find((f) => f.name === name);
2890
+ const copy = _optionalChain([fieldCopy, 'optionalAccess', _45 => _45[name]]);
2891
+ const label = builtIn ? _nullishCoalesce(_optionalChain([copy, 'optionalAccess', _46 => _46.label]), () => ( builtIn.label)) : _optionalChain([copy, 'optionalAccess', _47 => _47.label]);
2892
+ return (
2893
+ // An empty label keeps the field's own frame; a read label is the bar under it.
2894
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYXDHVHB2cjs.FieldWrapper, { label: _nullishCoalesce(label, () => ( "")), required: _optionalChain([builtIn, 'optionalAccess', _48 => _48.required]), className, children: [
2895
+ label === void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "mb-1 w-32" }),
2896
+ !builtIn && _optionalChain([copy, 'optionalAccess', _49 => _49.display]) === "chips" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CHIP_ROW_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { variant: "default", className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkVRDHAR3Xcjs.TOGGLE_SIZE_CLASS.default, "w-24 rounded-md") }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYXDHVHB2cjs.Input, { tabIndex: -1 })
2897
+ ] })
2898
+ );
2899
+ }
2776
2900
 
2777
2901
  // src/components/meeting-scheduler/confirmation.tsx
2778
2902
 
2779
2903
  function Confirmation({ confirmation, timezone }) {
2780
- const when = _chunkEQZXJUYVcjs.formatDateWithTimezone.call(void 0, confirmation.startTimeMs, timezone, "weekdayDateTimeZoned", {
2904
+ const when = _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, confirmation.startTimeMs, timezone, "weekdayDateTimeZoned", {
2781
2905
  viewerLocale: true
2782
2906
  });
2783
2907
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col items-center justify-center gap-[var(--spacing-system-m)] text-center", children: [
@@ -2787,7 +2911,7 @@ function Confirmation({ confirmation, timezone }) {
2787
2911
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: [
2788
2912
  when,
2789
2913
  " \xB7 ",
2790
- _chunkEQZXJUYVcjs.formatDurationCompact.call(void 0, confirmation.durationMs / 1e3)
2914
+ _chunkJTSUAHDLcjs.formatDurationCompact.call(void 0, confirmation.durationMs / 1e3)
2791
2915
  ] }),
2792
2916
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "A calendar invite is on its way to your email." })
2793
2917
  ] });
@@ -2802,31 +2926,50 @@ var STRIP_MAIN = "flex min-w-0 flex-col gap-[var(--spacing-system-l)] content-md
2802
2926
  var STRIP_ASIDE = "flex flex-col gap-[var(--spacing-system-xxs)] content-md:w-[280px] content-md:shrink-0 content-lg:w-full";
2803
2927
  var BACK_BUTTON_CLASS = "py-0";
2804
2928
  var FIELD_LABEL_CLASS = "text-h4 text-ods-text-primary";
2929
+ var HOST_ROW_CLASS = "flex items-center gap-[var(--spacing-system-xs)]";
2930
+ var HOST_TEXT_CLASS = "flex min-w-0 flex-col";
2931
+ var DURATION_LINE_CLASS = "shrink-0 text-ods-text-secondary text-h6";
2932
+ var DURATION_FIELD_CLASS = "flex flex-col gap-[var(--spacing-system-xxs)]";
2933
+ var DURATION_CHIPS_CLASS = "flex flex-wrap gap-[var(--spacing-system-xs)]";
2934
+ var TIMEZONE_WIDE_ONLY_CLASS = "content-max-lg:hidden";
2805
2935
  function ContextPanelSkeleton({
2806
2936
  className,
2807
2937
  onBack,
2808
- backLabel = "Back"
2938
+ backLabel = "Back",
2939
+ title = true,
2940
+ description = true,
2941
+ durations = 0,
2942
+ timezone = "shown"
2809
2943
  }) {
2810
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, PANEL_STACK, className), children: [
2811
- onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWA4X55XYcjs.BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
2944
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, PANEL_STACK, className), children: [
2945
+ onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZV45VS6Kcjs.BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
2812
2946
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_BODY, children: [
2813
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: STRIP_MAIN, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: IDENTITY_ROW, children: [
2814
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xs)] content-lg:flex-none", children: [
2815
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-8 w-8 shrink-0 rounded-full" }),
2816
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col gap-[var(--spacing-system-xxs)]", children: [
2817
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-5 w-32" }),
2818
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-24" })
2819
- ] })
2947
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_MAIN, children: [
2948
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: IDENTITY_ROW, children: [
2949
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_ROW_CLASS, children: [
2950
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJTSUAHDLcjs.SquareAvatarSkeleton, { variant: "round", size: "sm" }),
2951
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_TEXT_CLASS, children: [
2952
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", className: "w-32" }),
2953
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-24" })
2954
+ ] })
2955
+ ] }),
2956
+ durations <= 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-20 shrink-0" })
2820
2957
  ] }),
2821
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-20 shrink-0" })
2822
- ] }) }),
2823
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_ASIDE, children: [
2958
+ title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", className: "w-3/5" }),
2959
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-4/5" }),
2960
+ durations > 1 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DURATION_FIELD_CLASS, children: [
2961
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS, children: "Duration" }),
2962
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DURATION_CHIPS_CLASS, children: Array.from({ length: durations }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.InteractiveSkeleton.Button, { size: "small-legacy", className: "w-16" }, i)) })
2963
+ ] })
2964
+ ] }),
2965
+ timezone !== "hidden" && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, STRIP_ASIDE, timezone === "wide" && TIMEZONE_WIDE_ONLY_CLASS), children: [
2824
2966
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS, children: "Timezone" }),
2825
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-12 w-full" })
2967
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZV45VS6Kcjs.AutocompleteSkeleton, {})
2826
2968
  ] })
2827
2969
  ] })
2828
2970
  ] });
2829
2971
  }
2972
+ var CONTEXT_PANEL_TYPICAL_DURATIONS = 2;
2830
2973
  function SchedulerContextPanel({
2831
2974
  hosts,
2832
2975
  title,
@@ -2841,16 +2984,31 @@ function SchedulerContextPanel({
2841
2984
  locked = false,
2842
2985
  disabled = false,
2843
2986
  showTimezone = true,
2844
- className
2987
+ className,
2988
+ loading = false
2845
2989
  }) {
2846
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, PANEL_STACK, className), children: [
2847
- onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWA4X55XYcjs.BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
2990
+ if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, ) || loading) {
2991
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2992
+ ContextPanelSkeleton,
2993
+ {
2994
+ onBack,
2995
+ backLabel,
2996
+ title: title !== void 0,
2997
+ description: description !== void 0 && description !== null,
2998
+ durations: locked ? 0 : durationsMs.length || CONTEXT_PANEL_TYPICAL_DURATIONS,
2999
+ timezone: showTimezone ? locked ? "wide" : "shown" : "hidden",
3000
+ className
3001
+ }
3002
+ );
3003
+ }
3004
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, PANEL_STACK, className), children: [
3005
+ onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZV45VS6Kcjs.BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
2848
3006
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_BODY, children: [
2849
3007
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_MAIN, children: [
2850
3008
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: IDENTITY_ROW, children: [
2851
- hosts.length > 0 && hosts.length <= 3 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-s)]", children: hosts.map((host) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
3009
+ hosts.length > 0 && hosts.length <= 3 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-s)]", children: hosts.map((host) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_ROW_CLASS, children: [
2852
3010
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2853
- _chunkEQZXJUYVcjs.SquareAvatar,
3011
+ _chunkJTSUAHDLcjs.SquareAvatar,
2854
3012
  {
2855
3013
  variant: "round",
2856
3014
  size: "sm",
@@ -2859,13 +3017,13 @@ function SchedulerContextPanel({
2859
3017
  fallback: host.name
2860
3018
  }
2861
3019
  ),
2862
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col", children: [
3020
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_TEXT_CLASS, children: [
2863
3021
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-primary text-h4", children: host.name }),
2864
3022
  host.title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: host.title })
2865
3023
  ] })
2866
3024
  ] }, host.name)) }),
2867
3025
  hosts.length > 3 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)]", children: [
2868
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM7YZGRAVcjs.AvatarStack, { people: hosts, max: 4, size: "lg", label: "Hosts" }),
3026
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAAECWUNVcjs.AvatarStack, { people: hosts, max: 4, size: "lg", label: "Hosts" }),
2869
3027
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: [
2870
3028
  hosts.length,
2871
3029
  " hosts on this calendar"
@@ -2874,24 +3032,24 @@ function SchedulerContextPanel({
2874
3032
  locked || durationsMs.length <= 1 ? (
2875
3033
  // Post-selection, or a link that offers one length: a static line,
2876
3034
  // which is what sits beside the host on the header-strip layouts.
2877
- selectedDurationMs != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "shrink-0 text-ods-text-secondary text-h6", children: [
2878
- _chunkEQZXJUYVcjs.formatDurationCompact.call(void 0, selectedDurationMs / 1e3),
3035
+ selectedDurationMs != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: DURATION_LINE_CLASS, children: [
3036
+ _chunkJTSUAHDLcjs.formatDurationCompact.call(void 0, selectedDurationMs / 1e3),
2879
3037
  " call"
2880
3038
  ] })
2881
3039
  ) : null
2882
3040
  ] }),
2883
3041
  title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h3", children: title }),
2884
3042
  description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: description }),
2885
- !locked && durationsMs.length > 1 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xxs)]", children: [
3043
+ !locked && durationsMs.length > 1 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DURATION_FIELD_CLASS, children: [
2886
3044
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS, children: "Duration" }),
2887
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-[var(--spacing-system-xs)]", children: durationsMs.map((ms) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2888
- _chunk2QMBXGMQcjs.Button,
3045
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DURATION_CHIPS_CLASS, children: durationsMs.map((ms) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3046
+ _chunkTF5D5MNOcjs.Button,
2889
3047
  {
2890
3048
  variant: selectedDurationMs === ms ? void 0 : "outline",
2891
3049
  size: "small-legacy",
2892
3050
  disabled,
2893
3051
  onClick: () => onSelectDuration(ms),
2894
- children: _chunkEQZXJUYVcjs.formatDurationCompact.call(void 0, ms / 1e3)
3052
+ children: _chunkJTSUAHDLcjs.formatDurationCompact.call(void 0, ms / 1e3)
2895
3053
  },
2896
3054
  ms
2897
3055
  )) })
@@ -2903,18 +3061,19 @@ function SchedulerContextPanel({
2903
3061
  // summary line states the zone one row below — so the fact survives,
2904
3062
  // only the control steps aside. The 280px sidebar has the room, so
2905
3063
  // there it stays.
2906
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, STRIP_ASIDE, locked && "content-max-lg:hidden"), children: [
3064
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, STRIP_ASIDE, locked && TIMEZONE_WIDE_ONLY_CLASS), children: [
2907
3065
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS, children: "Timezone" }),
2908
- timezone ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2909
- _chunkFMH2DYBCcjs.TimezoneSelect,
3066
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3067
+ _chunkVRDHAR3Xcjs.TimezoneSelect,
2910
3068
  {
2911
- value: timezone,
3069
+ value: _nullishCoalesce(timezone, () => ( null)),
3070
+ loading: !timezone,
2912
3071
  disabled,
2913
3072
  onChange: (tz) => {
2914
- if (tz) _optionalChain([onTimezoneChange, 'optionalCall', _35 => _35(tz)]);
3073
+ if (tz) _optionalChain([onTimezoneChange, 'optionalCall', _50 => _50(tz)]);
2915
3074
  }
2916
3075
  }
2917
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-12 w-full" })
3076
+ )
2918
3077
  ] })
2919
3078
  ] })
2920
3079
  ] });
@@ -2923,22 +3082,27 @@ function SchedulerContextPanel({
2923
3082
  // src/components/meeting-scheduler/modal-header.tsx
2924
3083
 
2925
3084
  var ROW_CLASS = "border-b border-ods-border p-[var(--spacing-system-m)]";
2926
- var STRIP_CLASS = _chunk3ATAYP36cjs.cn.call(void 0, ROW_CLASS, "flex items-center justify-between gap-[var(--spacing-system-m)]");
3085
+ var STRIP_CLASS = _chunk65VVJSQZcjs.cn.call(void 0, ROW_CLASS, "flex items-center justify-between gap-[var(--spacing-system-m)]");
2927
3086
  var FIELD_LABEL_CLASS2 = "text-h4 text-ods-text-primary";
3087
+ var TIMEZONE_ROW_CLASS = _chunk65VVJSQZcjs.cn.call(void 0, ROW_CLASS, "flex flex-col gap-[var(--spacing-system-xxs)]");
3088
+ var HOST_LIST_CLASS = "flex min-w-0 flex-col gap-[var(--spacing-system-s)]";
3089
+ var HOST_ROW_CLASS2 = "flex items-center gap-[var(--spacing-system-xs)]";
3090
+ var HOST_TEXT_CLASS2 = "flex min-w-0 flex-col";
3091
+ var DURATION_LINE_CLASS2 = "shrink-0 text-ods-text-secondary text-h6";
2928
3092
  function HostIdentity({ hosts }) {
2929
3093
  if (hosts.length === 0) return null;
2930
3094
  if (hosts.length > 3) {
2931
3095
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
2932
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM7YZGRAVcjs.AvatarStack, { people: hosts, max: 4, size: "lg", label: "Hosts" }),
3096
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAAECWUNVcjs.AvatarStack, { people: hosts, max: 4, size: "lg", label: "Hosts" }),
2933
3097
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: [
2934
3098
  hosts.length,
2935
3099
  " hosts on this calendar"
2936
3100
  ] })
2937
3101
  ] });
2938
3102
  }
2939
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-col gap-[var(--spacing-system-s)]", children: hosts.map((host) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
3103
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: HOST_LIST_CLASS, children: hosts.map((host) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_ROW_CLASS2, children: [
2940
3104
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2941
- _chunkEQZXJUYVcjs.SquareAvatar,
3105
+ _chunkJTSUAHDLcjs.SquareAvatar,
2942
3106
  {
2943
3107
  variant: "round",
2944
3108
  size: "sm",
@@ -2947,7 +3111,7 @@ function HostIdentity({ hosts }) {
2947
3111
  fallback: host.name
2948
3112
  }
2949
3113
  ),
2950
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col", children: [
3114
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_TEXT_CLASS2, children: [
2951
3115
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-primary text-h4", children: host.name }),
2952
3116
  host.title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: host.title })
2953
3117
  ] })
@@ -2962,57 +3126,60 @@ function SchedulerModalHeader({
2962
3126
  onTimezoneChange,
2963
3127
  locked = false,
2964
3128
  disabled = false,
2965
- showTimezone = true
3129
+ showTimezone = true,
3130
+ loading = false
2966
3131
  }) {
2967
3132
  const chips = !locked && durationsMs.length > 1;
3133
+ if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, ) || loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SchedulerModalHeaderSkeleton, { showTimezone });
2968
3134
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
2969
3135
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_CLASS, children: [
2970
3136
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HostIdentity, { hosts }),
2971
3137
  chips ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 flex-wrap justify-end gap-[var(--spacing-system-xs)]", children: durationsMs.map((ms) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2972
- _chunk2QMBXGMQcjs.Button,
3138
+ _chunkTF5D5MNOcjs.Button,
2973
3139
  {
2974
3140
  variant: selectedDurationMs === ms ? void 0 : "outline",
2975
3141
  size: "small-legacy",
2976
3142
  disabled,
2977
3143
  onClick: () => onSelectDuration(ms),
2978
- children: _chunkEQZXJUYVcjs.formatDurationCompact.call(void 0, ms / 1e3)
3144
+ children: _chunkJTSUAHDLcjs.formatDurationCompact.call(void 0, ms / 1e3)
2979
3145
  },
2980
3146
  ms
2981
- )) }) : selectedDurationMs != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "shrink-0 text-ods-text-secondary text-h6", children: [
2982
- _chunkEQZXJUYVcjs.formatDurationCompact.call(void 0, selectedDurationMs / 1e3),
3147
+ )) }) : selectedDurationMs != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: DURATION_LINE_CLASS2, children: [
3148
+ _chunkJTSUAHDLcjs.formatDurationCompact.call(void 0, selectedDurationMs / 1e3),
2983
3149
  " call"
2984
3150
  ] })
2985
3151
  ] }),
2986
- showTimezone && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, ROW_CLASS, "flex flex-col gap-[var(--spacing-system-xxs)]"), children: [
3152
+ showTimezone && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: TIMEZONE_ROW_CLASS, children: [
2987
3153
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS2, children: "Timezone" }),
2988
- timezone ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2989
- _chunkFMH2DYBCcjs.TimezoneSelect,
3154
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3155
+ _chunkVRDHAR3Xcjs.TimezoneSelect,
2990
3156
  {
2991
3157
  value: timezone,
3158
+ loading: !timezone,
2992
3159
  disabled,
2993
3160
  onChange: (tz) => {
2994
- if (tz) _optionalChain([onTimezoneChange, 'optionalCall', _36 => _36(tz)]);
3161
+ if (tz) _optionalChain([onTimezoneChange, 'optionalCall', _51 => _51(tz)]);
2995
3162
  }
2996
3163
  }
2997
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-12 w-full" })
3164
+ )
2998
3165
  ] })
2999
3166
  ] });
3000
3167
  }
3001
- function SchedulerModalHeaderSkeleton() {
3168
+ function SchedulerModalHeaderSkeleton({ showTimezone = true } = {}) {
3002
3169
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
3003
3170
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_CLASS, children: [
3004
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
3005
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-8 w-8 shrink-0 rounded-full" }),
3006
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xxs)]", children: [
3007
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-5 w-32" }),
3008
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-24" })
3171
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: HOST_LIST_CLASS, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_ROW_CLASS2, children: [
3172
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJTSUAHDLcjs.SquareAvatarSkeleton, { variant: "round", size: "sm" }),
3173
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_TEXT_CLASS2, children: [
3174
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", className: "w-32" }),
3175
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-24" })
3009
3176
  ] })
3010
- ] }),
3011
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-20 shrink-0" })
3177
+ ] }) }),
3178
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: _chunk65VVJSQZcjs.cn.call(void 0, DURATION_LINE_CLASS2, "w-20") })
3012
3179
  ] }),
3013
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, ROW_CLASS, "flex flex-col gap-[var(--spacing-system-xxs)]"), children: [
3180
+ showTimezone && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: TIMEZONE_ROW_CLASS, children: [
3014
3181
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS2, children: "Timezone" }),
3015
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-12 w-full" })
3182
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZV45VS6Kcjs.AutocompleteSkeleton, {})
3016
3183
  ] })
3017
3184
  ] });
3018
3185
  }
@@ -3035,13 +3202,13 @@ function dateFromDayKey(key) {
3035
3202
  return new Date(y, m - 1, d, 12);
3036
3203
  }
3037
3204
  function timeLabelInZone(ms, timeZone) {
3038
- return _chunkEQZXJUYVcjs.formatTimeWithTimezone.call(void 0, ms, timeZone, { viewerLocale: true });
3205
+ return _chunkJTSUAHDLcjs.formatTimeWithTimezone.call(void 0, ms, timeZone, { viewerLocale: true });
3039
3206
  }
3040
3207
  var CALENDAR_W = "content-md:w-[19rem] content-md:shrink-0 content-lg:w-[16rem]";
3041
3208
  var COLUMN_HEADING_CLASS = "shrink-0 text-h4 text-ods-text-primary";
3042
3209
  var COLUMN_STACK = "flex min-h-0 flex-col gap-[var(--spacing-system-xxs)]";
3043
3210
  var SLOT_PICKER_HEADING = "Select Date & Time";
3044
- var CHIP_GRID_CLASS = _chunk3ATAYP36cjs.cn.call(void 0,
3211
+ var CHIP_GRID_CLASS = _chunk65VVJSQZcjs.cn.call(void 0,
3045
3212
  "grid grid-cols-[repeat(auto-fill,minmax(5.5rem,1fr))] content-start gap-[var(--spacing-system-xs)]",
3046
3213
  "overflow-y-auto",
3047
3214
  // PHONE: a stated window (~3 rows, the mock's 156px) that scrolls, rather
@@ -3064,7 +3231,7 @@ var CHIP_GRID_CLASS = _chunk3ATAYP36cjs.cn.call(void 0,
3064
3231
  "min-h-0 flex-1"
3065
3232
  );
3066
3233
  var CHIP_CLASS = "w-full px-[var(--spacing-system-xxs)]";
3067
- var SLOT_ROW_CLASS = _chunk3ATAYP36cjs.cn.call(void 0,
3234
+ var SLOT_ROW_CLASS = _chunk65VVJSQZcjs.cn.call(void 0,
3068
3235
  "flex min-w-0 flex-col content-md:flex-row",
3069
3236
  // Default `stretch` at every width, deliberately. Stacked, that is what
3070
3237
  // makes each section span the card — an `items-start` here (it was here, to
@@ -3081,32 +3248,32 @@ var MODAL_CALENDAR_W = "content-md:w-[19rem] content-md:shrink-0";
3081
3248
  var MODAL_COLUMN_BOX = "p-[var(--spacing-system-m)]";
3082
3249
  var MODAL_COLUMN_DIVIDER = "border-b border-ods-border content-md:border-b-0 content-md:border-r";
3083
3250
  var MODAL_TIMES_H = "content-md:h-[21.5rem]";
3084
- var MODAL_CHIP_GRID_CLASS = _chunk3ATAYP36cjs.cn.call(void 0,
3251
+ var MODAL_CHIP_GRID_CLASS = _chunk65VVJSQZcjs.cn.call(void 0,
3085
3252
  "grid grid-cols-4 content-start gap-[var(--spacing-system-xs)] overflow-y-auto content-md:grid-cols-1",
3086
3253
  "max-h-[9.75rem] min-h-0 flex-1 content-md:max-h-none"
3087
3254
  );
3088
3255
  function monthLabelFor(offset) {
3089
3256
  const now = /* @__PURE__ */ new Date();
3090
3257
  const month = new Date(now.getFullYear(), now.getMonth() + offset, 1);
3091
- return _chunkEQZXJUYVcjs.formatDateWithTimezone.call(void 0, month, _chunkEQZXJUYVcjs.VIEWER_TIMEZONE, "monthYear");
3258
+ return _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, month, _chunkJTSUAHDLcjs.VIEWER_TIMEZONE, "monthYear");
3092
3259
  }
3093
3260
  var DISABLE_EVERY_DAY = () => true;
3094
3261
  var NOOP = () => void 0;
3095
3262
  function DayCalendar({ monthOffset, onMonthOffsetChange, selectedDay, onSelectDay, slotsByDay }) {
3096
3263
  const now = /* @__PURE__ */ new Date();
3097
3264
  const startMonth = new Date(now.getFullYear(), now.getMonth(), 1);
3098
- const endMonth = new Date(now.getFullYear(), now.getMonth() + _chunkT5FRANE6cjs.MAX_MONTH_OFFSET + 1, 0);
3265
+ const endMonth = new Date(now.getFullYear(), now.getMonth() + _chunk7VI7TOGIcjs.MAX_MONTH_OFFSET + 1, 0);
3099
3266
  const visibleMonth = new Date(now.getFullYear(), now.getMonth() + monthOffset, 1);
3100
- const dayHasNoSlots = _react.useCallback.call(void 0, (day) => !_optionalChain([slotsByDay, 'optionalAccess', _37 => _37.has, 'call', _38 => _38(calendarDayKey(day))]), [slotsByDay]);
3267
+ const dayHasNoSlots = _react.useCallback.call(void 0, (day) => !_optionalChain([slotsByDay, 'optionalAccess', _52 => _52.has, 'call', _53 => _53(calendarDayKey(day))]), [slotsByDay]);
3101
3268
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-0 flex-1 flex-col", "aria-busy": slotsByDay === null, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3102
- _chunkFMH2DYBCcjs.DatePickerCalendar,
3269
+ _chunkVRDHAR3Xcjs.DatePickerCalendar,
3103
3270
  {
3104
3271
  mode: "single",
3105
3272
  bare: true,
3106
3273
  month: visibleMonth,
3107
3274
  onMonthChange: (month) => {
3108
3275
  const offset = (month.getFullYear() - now.getFullYear()) * 12 + (month.getMonth() - now.getMonth());
3109
- onMonthOffsetChange(Math.max(0, Math.min(_chunkT5FRANE6cjs.MAX_MONTH_OFFSET, offset)));
3276
+ onMonthOffsetChange(Math.max(0, Math.min(_chunk7VI7TOGIcjs.MAX_MONTH_OFFSET, offset)));
3110
3277
  },
3111
3278
  fromDate: startMonth,
3112
3279
  toDate: endMonth,
@@ -3115,7 +3282,7 @@ function DayCalendar({ monthOffset, onMonthOffsetChange, selectedDay, onSelectDa
3115
3282
  const day = value;
3116
3283
  if (!day) return;
3117
3284
  const key = calendarDayKey(day);
3118
- if (_optionalChain([slotsByDay, 'optionalAccess', _39 => _39.has, 'call', _40 => _40(key)])) onSelectDay(key);
3285
+ if (_optionalChain([slotsByDay, 'optionalAccess', _54 => _54.has, 'call', _55 => _55(key)])) onSelectDay(key);
3119
3286
  },
3120
3287
  disabledDays: slotsByDay === null ? DISABLE_EVERY_DAY : dayHasNoSlots
3121
3288
  }
@@ -3130,7 +3297,7 @@ function SlotPickerSkeleton({
3130
3297
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3131
3298
  "div",
3132
3299
  {
3133
- className: modal ? _chunk3ATAYP36cjs.cn.call(void 0, COLUMN_STACK, MODAL_COLUMN_BOX, MODAL_COLUMN_DIVIDER, MODAL_CALENDAR_W) : _chunk3ATAYP36cjs.cn.call(void 0, COLUMN_STACK, COLUMN_BOX, COLUMN_DIVIDER, CALENDAR_W, "content-md:overflow-y-auto"),
3300
+ className: modal ? _chunk65VVJSQZcjs.cn.call(void 0, COLUMN_STACK, MODAL_COLUMN_BOX, MODAL_COLUMN_DIVIDER, MODAL_CALENDAR_W) : _chunk65VVJSQZcjs.cn.call(void 0, COLUMN_STACK, COLUMN_BOX, COLUMN_DIVIDER, CALENDAR_W, "content-md:overflow-y-auto"),
3134
3301
  children: [
3135
3302
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: COLUMN_HEADING_CLASS, children: SLOT_PICKER_HEADING }),
3136
3303
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -3149,18 +3316,18 @@ function SlotPickerSkeleton({
3149
3316
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3150
3317
  "div",
3151
3318
  {
3152
- className: modal ? _chunk3ATAYP36cjs.cn.call(void 0, COLUMN_STACK, MODAL_COLUMN_BOX, MODAL_TIMES_H, "min-w-0 content-md:flex-1") : _chunk3ATAYP36cjs.cn.call(void 0, COLUMN_STACK, COLUMN_BOX, "min-w-0 content-md:flex-1"),
3153
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TimeChipsSkeleton, {})
3319
+ className: modal ? _chunk65VVJSQZcjs.cn.call(void 0, COLUMN_STACK, MODAL_COLUMN_BOX, MODAL_TIMES_H, "min-w-0 content-md:flex-1") : _chunk65VVJSQZcjs.cn.call(void 0, COLUMN_STACK, COLUMN_BOX, "min-w-0 content-md:flex-1"),
3320
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TimeChipsSkeleton, { layout })
3154
3321
  }
3155
3322
  )
3156
3323
  ] });
3157
3324
  }
3158
- function TimeChipsSkeleton() {
3325
+ function TimeChipsSkeleton({ layout = "card" } = {}) {
3159
3326
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
3160
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: COLUMN_HEADING_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "inline-block h-4 w-40 align-middle" }) }),
3161
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CHIP_GRID_CLASS, children: Array.from({ length: 16 }, (_, i) => (
3327
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: COLUMN_HEADING_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", className: "w-40" }) }),
3328
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: layout === "modal" ? MODAL_CHIP_GRID_CLASS : CHIP_GRID_CLASS, children: Array.from({ length: 16 }, (_, i) => (
3162
3329
  // h-11 content-md:h-12 — the loaded chip's own default-size height.
3163
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: _chunk3ATAYP36cjs.cn.call(void 0, CHIP_CLASS, "h-11 content-md:h-12") }, i)
3330
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, CHIP_CLASS, "h-11 content-md:h-12") }, i)
3164
3331
  )) })
3165
3332
  ] });
3166
3333
  }
@@ -3175,10 +3342,13 @@ function SlotPicker({
3175
3342
  selectedDay,
3176
3343
  onSelectDay,
3177
3344
  isLoading = false,
3178
- isSubmitting = false
3345
+ isSubmitting = false,
3346
+ loading = false
3179
3347
  }) {
3348
+ const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, ) || loading;
3180
3349
  const slotsByDay = _react.useMemo.call(void 0, () => {
3181
3350
  const map = /* @__PURE__ */ new Map();
3351
+ if (timezone == null) return map;
3182
3352
  for (const ms of slots) {
3183
3353
  const key = dayKeyInZone(ms, timezone);
3184
3354
  const list = _nullishCoalesce(map.get(key), () => ( []));
@@ -3196,11 +3366,12 @@ function SlotPicker({
3196
3366
  const monthPrefix = `${visibleMonth.getFullYear()}-${String(visibleMonth.getMonth() + 1).padStart(2, "0")}`;
3197
3367
  const monthHasSlots = [...slotsByDay.keys()].some((key) => key.startsWith(monthPrefix));
3198
3368
  const modal = layout === "modal";
3369
+ if (inScope || timezone == null) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlotPickerSkeleton, { monthOffset, layout });
3199
3370
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: modal ? MODAL_ROW_CLASS : SLOT_ROW_CLASS, children: [
3200
3371
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3201
3372
  "div",
3202
3373
  {
3203
- className: modal ? _chunk3ATAYP36cjs.cn.call(void 0, COLUMN_STACK, MODAL_COLUMN_BOX, MODAL_COLUMN_DIVIDER, MODAL_CALENDAR_W) : _chunk3ATAYP36cjs.cn.call(void 0, COLUMN_STACK, COLUMN_BOX, COLUMN_DIVIDER, CALENDAR_W, "content-md:overflow-y-auto"),
3374
+ className: modal ? _chunk65VVJSQZcjs.cn.call(void 0, COLUMN_STACK, MODAL_COLUMN_BOX, MODAL_COLUMN_DIVIDER, MODAL_CALENDAR_W) : _chunk65VVJSQZcjs.cn.call(void 0, COLUMN_STACK, COLUMN_BOX, COLUMN_DIVIDER, CALENDAR_W, "content-md:overflow-y-auto"),
3204
3375
  children: [
3205
3376
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: COLUMN_HEADING_CLASS, children: SLOT_PICKER_HEADING }),
3206
3377
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -3219,13 +3390,13 @@ function SlotPicker({
3219
3390
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3220
3391
  "div",
3221
3392
  {
3222
- className: modal ? _chunk3ATAYP36cjs.cn.call(void 0, COLUMN_STACK, MODAL_COLUMN_BOX, MODAL_TIMES_H, "min-w-0 content-md:flex-1") : _chunk3ATAYP36cjs.cn.call(void 0, COLUMN_STACK, COLUMN_BOX, "min-w-0 content-md:flex-1"),
3223
- children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TimeChipsSkeleton, {}) : selectedDay ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
3224
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: COLUMN_HEADING_CLASS, children: _chunkEQZXJUYVcjs.formatDateWithTimezone.call(void 0, dateFromDayKey(selectedDay), _chunkEQZXJUYVcjs.VIEWER_TIMEZONE, "weekday", { viewerLocale: true }) }),
3393
+ className: modal ? _chunk65VVJSQZcjs.cn.call(void 0, COLUMN_STACK, MODAL_COLUMN_BOX, MODAL_TIMES_H, "min-w-0 content-md:flex-1") : _chunk65VVJSQZcjs.cn.call(void 0, COLUMN_STACK, COLUMN_BOX, "min-w-0 content-md:flex-1"),
3394
+ children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TimeChipsSkeleton, { layout }) : selectedDay ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
3395
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: COLUMN_HEADING_CLASS, children: _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, dateFromDayKey(selectedDay), _chunkJTSUAHDLcjs.VIEWER_TIMEZONE, "weekday", { viewerLocale: true }) }),
3225
3396
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: modal ? MODAL_CHIP_GRID_CLASS : CHIP_GRID_CLASS, children: daySlots.map((ms) => {
3226
3397
  const isSelected = selectedSlot === ms;
3227
3398
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3228
- _chunk2QMBXGMQcjs.Button,
3399
+ _chunkTF5D5MNOcjs.Button,
3229
3400
  {
3230
3401
  variant: isSelected ? void 0 : "outline",
3231
3402
  disabled: isSubmitting,
@@ -3250,8 +3421,8 @@ function SlotPicker({
3250
3421
  monthLabelFor(monthOffset),
3251
3422
  "."
3252
3423
  ] }),
3253
- monthOffset < _chunkT5FRANE6cjs.MAX_MONTH_OFFSET && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3254
- _chunk2QMBXGMQcjs.Button,
3424
+ monthOffset < _chunk7VI7TOGIcjs.MAX_MONTH_OFFSET && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3425
+ _chunkTF5D5MNOcjs.Button,
3255
3426
  {
3256
3427
  variant: "outline",
3257
3428
  onClick: () => onMonthOffsetChange(monthOffset + 1),
@@ -3274,12 +3445,22 @@ function SlotPicker({
3274
3445
 
3275
3446
 
3276
3447
  function useNextAvailableLabel(ms) {
3277
- const hydrated = _chunk74ALTXXCcjs.useIsHydrated.call(void 0, );
3448
+ const hydrated = _chunkYL6ZB2SRcjs.useIsHydrated.call(void 0, );
3278
3449
  return _react.useMemo.call(void 0, () => {
3279
3450
  if (!hydrated || ms == null) return null;
3280
- return _chunkEQZXJUYVcjs.formatDateWithTimezone.call(void 0, ms, _chunkEQZXJUYVcjs.VIEWER_TIMEZONE, "shortWeekdayDateTime", { viewerLocale: true }) || null;
3451
+ return _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, ms, _chunkJTSUAHDLcjs.VIEWER_TIMEZONE, "shortWeekdayDateTime", { viewerLocale: true }) || null;
3281
3452
  }, [hydrated, ms]);
3282
3453
  }
3454
+ var PAGINATION_SLOT_H = "h-[4.5rem]";
3455
+ var MEETING_DIRECTORY_PAGE_SIZE = 6;
3456
+ var directoryRowsMinHeight = (pageSize) => pageSize * 80 + (pageSize - 1) * 16;
3457
+ var ROW_FRAME_CLASS = "flex min-h-20 w-full items-center gap-4 rounded-lg border border-ods-border bg-ods-card px-4 py-3";
3458
+ var ROW_TITLE_COLUMN_CLASS = "flex min-w-0 flex-1 flex-col justify-center text-left";
3459
+ var ROW_NEXT_COLUMN_CLASS = "hidden w-44 shrink-0 flex-col items-end justify-center content-md:flex";
3460
+ var ROW_NEXT_LABEL_CLASS = "text-ods-text-secondary text-h6";
3461
+ var ROW_CHEVRON_CLASS = "flex size-12 shrink-0 items-center justify-center rounded-md border border-ods-border bg-ods-card";
3462
+ var ROWS_CLASS = "flex w-full flex-col gap-4";
3463
+ var PAGINATION_SLOT_CLASS = "mt-8 flex w-full items-center justify-center";
3283
3464
  function DirectoryRow({
3284
3465
  link,
3285
3466
  audienceLabel,
@@ -3288,7 +3469,7 @@ function DirectoryRow({
3288
3469
  const nextLabel = useNextAvailableLabel(link.nextAvailableMs);
3289
3470
  const subtitle = [
3290
3471
  link.description,
3291
- link.durationsMinutes.length > 0 ? link.durationsMinutes.map((m) => _chunkEQZXJUYVcjs.formatDurationCompact.call(void 0, m * 60)).join(" / ") : null,
3472
+ link.durationsMinutes.length > 0 ? link.durationsMinutes.map((m) => _chunkJTSUAHDLcjs.formatDurationCompact.call(void 0, m * 60)).join(" / ") : null,
3292
3473
  link.kind === "team" ? "Team" : null
3293
3474
  ].filter(Boolean).join(" \u2022 ");
3294
3475
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -3297,43 +3478,51 @@ function DirectoryRow({
3297
3478
  href: `${bookingBasePath}/${link.slug}`,
3298
3479
  prefetch: false,
3299
3480
  className: "block rounded-lg text-inherit no-underline focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
3300
- children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-20 w-full items-center gap-4 rounded-lg border border-ods-border bg-ods-card px-4 py-3 transition-colors duration-150 hover:bg-ods-bg-hover", children: [
3301
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center text-left", children: [
3481
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, ROW_FRAME_CLASS, "transition-colors duration-150 hover:bg-ods-bg-hover"), children: [
3482
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROW_TITLE_COLUMN_CLASS, children: [
3302
3483
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-primary text-h3", children: link.title }),
3303
3484
  subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: subtitle })
3304
3485
  ] }),
3305
- audienceLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk22XAPV6Ncjs.StatusBadge, { text: `For ${audienceLabel}`, singleLine: true, className: "hidden shrink-0 content-sm:inline-flex" }),
3306
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM7YZGRAVcjs.AvatarStack, { people: link.hosts, max: 3, size: "md", label: "Hosts", className: "flex shrink-0" }),
3307
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden w-44 shrink-0 flex-col items-end justify-center content-md:flex", children: [
3308
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "Next available" }),
3486
+ audienceLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNBXZXTcjs.StatusBadge, { text: `For ${audienceLabel}`, singleLine: true, className: "hidden shrink-0 content-sm:inline-flex" }),
3487
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAAECWUNVcjs.AvatarStack, { people: link.hosts, max: 3, size: "md", label: "Hosts", className: "flex shrink-0" }),
3488
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROW_NEXT_COLUMN_CLASS, children: [
3489
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: ROW_NEXT_LABEL_CLASS, children: "Next available" }),
3309
3490
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-h-5 text-ods-text-primary text-h6", children: link.nextAvailableMs == null ? "No times published" : _nullishCoalesce(nextLabel, () => ( " ")) })
3310
3491
  ] }),
3311
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex size-12 shrink-0 items-center justify-center rounded-md border border-ods-border bg-ods-card", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "size-6 text-ods-text-secondary" }) })
3492
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: ROW_CHEVRON_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "size-6 text-ods-text-secondary" }) })
3312
3493
  ] })
3313
3494
  }
3314
3495
  );
3315
3496
  }
3316
3497
  function MeetingSchedulerDirectoryRowSkeleton() {
3317
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-20 w-full items-center gap-4 rounded-lg border border-ods-border bg-ods-card px-4 py-3", children: [
3318
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center gap-1", children: [
3319
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-5 w-1/2" }),
3320
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-1/3" })
3498
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROW_FRAME_CLASS, "aria-hidden": true, children: [
3499
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROW_TITLE_COLUMN_CLASS, children: [
3500
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", className: "w-1/2" }),
3501
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-1/3" })
3321
3502
  ] }),
3322
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "hidden h-6 w-28 shrink-0 content-sm:block" }),
3323
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-10 w-10 shrink-0 rounded-full" }),
3324
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden w-44 shrink-0 flex-col items-end gap-1 content-md:flex", children: [
3325
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-24" }),
3326
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-5 w-32" })
3503
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: "hidden h-6 w-28 shrink-0 content-sm:block" }),
3504
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: "h-10 w-10 shrink-0 rounded-full" }),
3505
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROW_NEXT_COLUMN_CLASS, children: [
3506
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: ROW_NEXT_LABEL_CLASS, children: "Next available" }),
3507
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-32" })
3327
3508
  ] }),
3328
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "size-12 shrink-0 rounded-md" })
3509
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: ROW_CHEVRON_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "size-6 text-ods-text-secondary" }) })
3510
+ ] });
3511
+ }
3512
+ function MeetingSchedulerDirectorySkeleton({
3513
+ pageSize = MEETING_DIRECTORY_PAGE_SIZE,
3514
+ className
3515
+ }) {
3516
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "flex flex-col", className), "aria-hidden": true, children: [
3517
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROWS_CLASS, style: { minHeight: directoryRowsMinHeight(pageSize) }, children: Array.from({ length: pageSize }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MeetingSchedulerDirectoryRowSkeleton, {}, i)) }),
3518
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, PAGINATION_SLOT_CLASS, PAGINATION_SLOT_H), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZRDMGMY7cjs.PaginationSkeleton, {}) })
3329
3519
  ] });
3330
3520
  }
3331
- var PAGINATION_SLOT_H = "h-[4.5rem]";
3332
3521
  function MeetingSchedulerDirectory({
3333
3522
  apiBaseUrl = "",
3334
3523
  initialData = null,
3335
3524
  includeAll = false,
3336
- pageSize = 6,
3525
+ pageSize = MEETING_DIRECTORY_PAGE_SIZE,
3337
3526
  bookingBasePath = "/schedule-a-call",
3338
3527
  contactHref,
3339
3528
  className
@@ -3342,8 +3531,9 @@ function MeetingSchedulerDirectory({
3342
3531
  const [isLoading, setIsLoading] = _react.useState.call(void 0, initialData === null);
3343
3532
  const [error, setError] = _react.useState.call(void 0, null);
3344
3533
  const [page, setPage] = _react.useState.call(void 0, 1);
3534
+ const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
3345
3535
  _react.useEffect.call(void 0, () => {
3346
- if (initialData !== null) return void 0;
3536
+ if (initialData !== null || inScope) return void 0;
3347
3537
  const controller = new AbortController();
3348
3538
  let active = true;
3349
3539
  const load = async () => {
@@ -3367,23 +3557,20 @@ function MeetingSchedulerDirectory({
3367
3557
  active = false;
3368
3558
  controller.abort();
3369
3559
  };
3370
- }, [initialData, includeAll, apiBaseUrl]);
3560
+ }, [initialData, inScope, includeAll, apiBaseUrl]);
3371
3561
  const rows = _react.useMemo.call(void 0, () => {
3372
- const purposes = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _41 => _41.purposes]), () => ( []));
3562
+ const purposes = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _56 => _56.purposes]), () => ( []));
3373
3563
  return purposes.flatMap((p) => p.links.map((link) => ({ link, audienceLabel: p.label })));
3374
3564
  }, [data]);
3375
3565
  const totalPages = _chunkBLH2SFOOcjs.pageCount.call(void 0, rows.length, pageSize);
3376
3566
  const pageRows = rows.slice((page - 1) * pageSize, page * pageSize);
3377
- const rowsMinHeight = pageSize * 80 + (pageSize - 1) * 16;
3378
- if (isLoading && !data) {
3379
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex flex-col", className), children: [
3380
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full flex-col gap-4", style: { minHeight: rowsMinHeight }, children: Array.from({ length: pageSize }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MeetingSchedulerDirectoryRowSkeleton, {}, i)) }),
3381
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "mt-8 flex w-full items-center justify-center", PAGINATION_SLOT_H), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-10 w-64" }) })
3382
- ] });
3567
+ const rowsMinHeight = directoryRowsMinHeight(pageSize);
3568
+ if (inScope || isLoading && !data) {
3569
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MeetingSchedulerDirectorySkeleton, { pageSize, className });
3383
3570
  }
3384
3571
  if (error) {
3385
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex flex-col justify-center", className), style: { minHeight: rowsMinHeight + 104 }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3386
- _chunkTSJUL6IHcjs.EmptyState,
3572
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "flex flex-col justify-center", className), style: { minHeight: rowsMinHeight + 104 }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3573
+ _chunkYRFWOJF4cjs.EmptyState,
3387
3574
  {
3388
3575
  type: "generic",
3389
3576
  title: "We couldn't load available call times",
@@ -3393,8 +3580,8 @@ function MeetingSchedulerDirectory({
3393
3580
  ) });
3394
3581
  }
3395
3582
  if (rows.length === 0) {
3396
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex flex-col justify-center", className), style: { minHeight: rowsMinHeight + 104 }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3397
- _chunkTSJUL6IHcjs.EmptyState,
3583
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "flex flex-col justify-center", className), style: { minHeight: rowsMinHeight + 104 }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3584
+ _chunkYRFWOJF4cjs.EmptyState,
3398
3585
  {
3399
3586
  type: "generic",
3400
3587
  title: "No call times are published right now",
@@ -3403,10 +3590,10 @@ function MeetingSchedulerDirectory({
3403
3590
  }
3404
3591
  ) });
3405
3592
  }
3406
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex flex-col", className), children: [
3407
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full flex-col gap-4", style: { minHeight: rowsMinHeight }, children: pageRows.map(({ link, audienceLabel }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DirectoryRow, { link, audienceLabel, bookingBasePath }, link.id)) }),
3408
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "mt-8 flex w-full items-center justify-center", PAGINATION_SLOT_H), children: totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3409
- _chunkLVKUMVUJcjs.PersistentPaginationWrapper,
3593
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "flex flex-col", className), children: [
3594
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROWS_CLASS, style: { minHeight: rowsMinHeight }, children: pageRows.map(({ link, audienceLabel }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DirectoryRow, { link, audienceLabel, bookingBasePath }, link.id)) }),
3595
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, PAGINATION_SLOT_CLASS, PAGINATION_SLOT_H), children: totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3596
+ _chunkNBVZIHGScjs.PersistentPaginationWrapper,
3410
3597
  {
3411
3598
  isLoading,
3412
3599
  currentPage: page,
@@ -3430,7 +3617,7 @@ var BOOKING_ERROR_COPY = {
3430
3617
  var CONTEXT_PANEL_CLASS = "p-[var(--spacing-system-l)] shrink-0 content-lg:w-[280px] border-b content-lg:border-b-0 content-lg:border-r border-ods-border content-lg:min-h-0 content-lg:overflow-y-auto";
3431
3618
  var ACTION_PANEL_CLASS = "flex-1 min-w-0 flex flex-col content-md:min-h-0 content-lg:p-[var(--spacing-system-l)]";
3432
3619
  var PANEL_STEP_CLASS = "p-[var(--spacing-system-l)] content-md:min-h-0 content-md:overflow-y-auto content-lg:p-0";
3433
- var STEP_PANEL_CLASS = _chunk3ATAYP36cjs.cn.call(void 0, "flex flex-1 flex-col", PANEL_STEP_CLASS);
3620
+ var STEP_PANEL_CLASS = _chunk65VVJSQZcjs.cn.call(void 0, "flex flex-1 flex-col", PANEL_STEP_CLASS);
3434
3621
  var MEETING_SCHEDULER_H = "content-md:h-[34.375rem] content-lg:h-[23.75rem]";
3435
3622
  var MEETING_SCHEDULER_DETAILS_FIRST_H = "h-[50.75rem] content-md:h-[39.875rem]";
3436
3623
  var DEFAULT_SCHEDULER_FLOW = "slot-first";
@@ -3443,7 +3630,7 @@ var SCHEDULER_FLOW_PRESETS = {
3443
3630
  footerNote: "Next step: pick a slot that works. Calendar invite lands right after."
3444
3631
  }
3445
3632
  };
3446
- var CARD_CLASS = _chunk3ATAYP36cjs.cn.call(void 0,
3633
+ var CARD_CLASS = _chunk65VVJSQZcjs.cn.call(void 0,
3447
3634
  "overflow-hidden rounded-md border border-ods-border bg-ods-card",
3448
3635
  "content-md:flex content-md:flex-col"
3449
3636
  // The height is NOT baked in any more: it is chosen per flow at each render
@@ -3451,7 +3638,7 @@ var CARD_CLASS = _chunk3ATAYP36cjs.cn.call(void 0,
3451
3638
  // constants are module scope.
3452
3639
  );
3453
3640
  var CARD_INNER_CLASS = "flex flex-col content-md:min-h-0 content-md:flex-1 content-lg:h-full content-lg:flex-row";
3454
- var CARD_DEGRADED_CLASS = _chunk3ATAYP36cjs.cn.call(void 0,
3641
+ var CARD_DEGRADED_CLASS = _chunk65VVJSQZcjs.cn.call(void 0,
3455
3642
  "flex flex-col items-start gap-[var(--spacing-system-m)] rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-lf)]",
3456
3643
  "content-md:justify-center content-md:overflow-y-auto"
3457
3644
  );
@@ -3462,7 +3649,7 @@ function SchedulerDegradedCard({
3462
3649
  action,
3463
3650
  children
3464
3651
  }) {
3465
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, CARD_DEGRADED_CLASS, SCHEDULER_FLOW_PRESETS[flow].height, className), children: [
3652
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CARD_DEGRADED_CLASS, SCHEDULER_FLOW_PRESETS[flow].height, className), children: [
3466
3653
  message && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: message }),
3467
3654
  action,
3468
3655
  children
@@ -3481,14 +3668,35 @@ var MODAL_STACK_CLASS = "flex flex-col gap-[var(--spacing-system-l)]";
3481
3668
  var MODAL_CARD_CLASS = "flex flex-col overflow-hidden rounded-md border border-ods-border bg-ods-card";
3482
3669
  var MODAL_STEP_CLASS = "flex flex-col p-[var(--spacing-system-m)]";
3483
3670
  var NOOP2 = () => void 0;
3671
+ var NOOP_SUBMIT = () => Promise.resolve();
3484
3672
  var MODAL_FIELD_ROWS = [[{ name: "firstName" }, { name: "lastName" }], [{ name: "email" }]];
3485
3673
  var MODAL_PRIMARY_CLASS = "flex-1 content-md:min-w-[15.5rem] content-md:flex-none";
3486
3674
  function ModalFooter({ onCancel, primary }) {
3487
3675
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-[var(--spacing-system-l)] content-md:justify-end", children: [
3488
- onCancel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2QMBXGMQcjs.Button, { variant: "outline", onClick: onCancel, className: "flex-1 content-md:hidden", children: "Cancel" }),
3676
+ onCancel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { variant: "outline", onClick: onCancel, className: "flex-1 content-md:hidden", children: "Cancel" }),
3489
3677
  primary
3490
3678
  ] });
3491
3679
  }
3680
+ function schedulerCardClasses(flow, step, className) {
3681
+ const detailsFirst = flow === "details-first";
3682
+ const formOnly = detailsFirst && step === "details";
3683
+ const boxed = !formOnly;
3684
+ return {
3685
+ formOnly,
3686
+ cardClass: _chunk65VVJSQZcjs.cn.call(void 0,
3687
+ CARD_CLASS,
3688
+ boxed ? SCHEDULER_FLOW_PRESETS[flow].height : "content-md:h-auto",
3689
+ detailsFirst && "flex flex-col",
3690
+ formOnly && "bg-ods-bg",
3691
+ className
3692
+ ),
3693
+ /** details-first states a height on phones too (see MEETING_SCHEDULER_DETAILS_FIRST_H), so
3694
+ * the wrappers that let content shrink into a stated height run at every width there. */
3695
+ innerClass: _chunk65VVJSQZcjs.cn.call(void 0, CARD_INNER_CLASS, detailsFirst && boxed && "min-h-0 flex-1"),
3696
+ actionPanelClass: _chunk65VVJSQZcjs.cn.call(void 0, ACTION_PANEL_CLASS, detailsFirst && boxed && "min-h-0 overflow-y-auto"),
3697
+ stepPanelClass: _chunk65VVJSQZcjs.cn.call(void 0, STEP_PANEL_CLASS, detailsFirst && boxed && "min-h-0 overflow-y-auto")
3698
+ };
3699
+ }
3492
3700
  function HubSpotMeetingScheduler({
3493
3701
  meetingId,
3494
3702
  apiBaseUrl = "",
@@ -3519,11 +3727,13 @@ function HubSpotMeetingScheduler({
3519
3727
  book,
3520
3728
  isSubmitting
3521
3729
  } = useMeetingBooking({ meetingId, apiBaseUrl, initialAvailability });
3730
+ const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
3731
+ const coldStart = inScope || isLoadingAvailability && !availability;
3522
3732
  const detailsFirst = flow === "details-first";
3523
3733
  const modal = layout === "modal" && !detailsFirst;
3524
3734
  const modalFormId = _react.useId.call(void 0, );
3525
3735
  const [modalFormValid, setModalFormValid] = _react.useState.call(void 0, false);
3526
- const hydrated = _chunk74ALTXXCcjs.useIsHydrated.call(void 0, );
3736
+ const hydrated = _chunkYL6ZB2SRcjs.useIsHydrated.call(void 0, );
3527
3737
  const [pickedTimezone, setTimezone] = _react.useState.call(void 0, null);
3528
3738
  const resolvedLocalTimezone = _react.useMemo.call(void 0, () => {
3529
3739
  if (!hydrated) return null;
@@ -3536,14 +3746,15 @@ function HubSpotMeetingScheduler({
3536
3746
  const timezone = _nullishCoalesce(_nullishCoalesce(pickedTimezone, () => ( displayTimezone)), () => ( resolvedLocalTimezone));
3537
3747
  const preset = SCHEDULER_FLOW_PRESETS[flow];
3538
3748
  const [step, setStep] = _react.useState.call(void 0, preset.initialStep);
3539
- const stage = !(isLoadingAvailability && !availability) && (Boolean(availabilityError) || !availability || !isNativelyBookable(availability)) ? "unavailable" : step;
3749
+ const stage = !coldStart && (Boolean(availabilityError) || !availability || !isNativelyBookable(availability)) ? "unavailable" : step;
3540
3750
  const onStageChangeRef = _react.useRef.call(void 0, onStageChange);
3541
3751
  _react.useEffect.call(void 0, () => {
3542
3752
  onStageChangeRef.current = onStageChange;
3543
3753
  });
3544
3754
  _react.useEffect.call(void 0, () => {
3545
- _optionalChain([onStageChangeRef, 'access', _42 => _42.current, 'optionalCall', _43 => _43(stage)]);
3546
- }, [stage]);
3755
+ if (inScope) return;
3756
+ _optionalChain([onStageChangeRef, 'access', _57 => _57.current, 'optionalCall', _58 => _58(stage)]);
3757
+ }, [stage, inScope]);
3547
3758
  const [stash, setStash] = _react.useState.call(void 0, null);
3548
3759
  const inFlightRef = _react.useRef.call(void 0, false);
3549
3760
  const postInFlight = _react.useCallback.call(void 0,
@@ -3556,8 +3767,8 @@ function HubSpotMeetingScheduler({
3556
3767
  const [selectedSlot, setSelectedSlot] = _react.useState.call(void 0, null);
3557
3768
  const [confirmation, setConfirmation] = _react.useState.call(void 0, null);
3558
3769
  const [bookingError, setBookingError] = _react.useState.call(void 0, null);
3559
- const { honeypotInputProps, getSignals, resetSignals } = _chunkXCH7SPGIcjs.useHumanitySignals.call(void 0, );
3560
- const { toast } = _chunkXCH7SPGIcjs.useToast.call(void 0, );
3770
+ const { honeypotInputProps, getSignals, resetSignals } = _chunkXVFM6SJAcjs.useHumanitySignals.call(void 0, );
3771
+ const { toast } = _chunkXVFM6SJAcjs.useToast.call(void 0, );
3561
3772
  const autoAdvanceCount = _react.useRef.call(void 0, 0);
3562
3773
  const [machineFor, setMachineFor] = _react.useState.call(void 0, meetingId);
3563
3774
  if (machineFor !== meetingId) {
@@ -3573,8 +3784,8 @@ function HubSpotMeetingScheduler({
3573
3784
  _react.useEffect.call(void 0, () => {
3574
3785
  autoAdvanceCount.current = 0;
3575
3786
  }, [meetingId]);
3576
- const durations = _react.useMemo.call(void 0, () => _nullishCoalesce(_optionalChain([availability, 'optionalAccess', _44 => _44.durationsMs]), () => ( [])), [_optionalChain([availability, 'optionalAccess', _45 => _45.durationsMs])]);
3577
- const shownHosts = _nullishCoalesce(_nullishCoalesce(hosts, () => ( _optionalChain([availability, 'optionalAccess', _46 => _46.hosts]))), () => ( []));
3787
+ const durations = _react.useMemo.call(void 0, () => _nullishCoalesce(_optionalChain([availability, 'optionalAccess', _59 => _59.durationsMs]), () => ( [])), [_optionalChain([availability, 'optionalAccess', _60 => _60.durationsMs])]);
3788
+ const shownHosts = _nullishCoalesce(_nullishCoalesce(hosts, () => ( _optionalChain([availability, 'optionalAccess', _61 => _61.hosts]))), () => ( []));
3578
3789
  const durationMs = _nullishCoalesce(_nullishCoalesce(pickedDurationMs, () => ( durations[0])), () => ( null));
3579
3790
  const slots = _react.useMemo.call(void 0, () => {
3580
3791
  if (!availability || durationMs == null) return [];
@@ -3631,10 +3842,10 @@ function HubSpotMeetingScheduler({
3631
3842
  return;
3632
3843
  }
3633
3844
  if (result.ok && result.confirmation) {
3634
- _chunkXCH7SPGIcjs.completeFormRescue.call(void 0, rescue, payload[_chunkNET74KSQcjs.FORM_RESCUE_ATTEMPT_FIELD]);
3845
+ _chunkXVFM6SJAcjs.completeFormRescue.call(void 0, rescue, payload[_chunkTZ4GKUO2cjs.FORM_RESCUE_ATTEMPT_FIELD]);
3635
3846
  setConfirmation(result.confirmation);
3636
3847
  setStep("confirmed");
3637
- _optionalChain([onBooked, 'optionalCall', _47 => _47(result.confirmation)]);
3848
+ _optionalChain([onBooked, 'optionalCall', _62 => _62(result.confirmation)]);
3638
3849
  return;
3639
3850
  }
3640
3851
  const code = _nullishCoalesce(result.code, () => ( "TEMPORARILY_UNAVAILABLE"));
@@ -3658,56 +3869,16 @@ function HubSpotMeetingScheduler({
3658
3869
  },
3659
3870
  [book, bookingError, detailsFirst, onBooked, refetchAvailability, rescue, resetSignals, toast]
3660
3871
  );
3661
- const escapeHatch = fallbackUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2QMBXGMQcjs.Button, { variant: "outline", size: "small-legacy", href: fallbackUrl, openInNewTab: true, children: "Open in HubSpot" }) : null;
3872
+ const escapeHatch = fallbackUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { variant: "outline", size: "small-legacy", href: fallbackUrl, openInNewTab: true, children: "Open in HubSpot" }) : null;
3662
3873
  const backEdge = detailsFirst ? step === "slot" ? backToDetails : onBack : step === "details" ? backToSlot : onBack;
3663
- const boxed = !formOnly;
3664
- const cardClass = _chunk3ATAYP36cjs.cn.call(void 0,
3665
- CARD_CLASS,
3666
- boxed ? preset.height : "content-md:h-auto",
3667
- detailsFirst && "flex flex-col",
3668
- formOnly && "bg-ods-bg",
3669
- className
3670
- );
3671
- const innerClass = _chunk3ATAYP36cjs.cn.call(void 0, CARD_INNER_CLASS, detailsFirst && boxed && "min-h-0 flex-1");
3672
- const actionPanelClass = _chunk3ATAYP36cjs.cn.call(void 0, ACTION_PANEL_CLASS, detailsFirst && boxed && "min-h-0 overflow-y-auto");
3673
- const stepPanelClass = _chunk3ATAYP36cjs.cn.call(void 0, STEP_PANEL_CLASS, detailsFirst && boxed && "min-h-0 overflow-y-auto");
3874
+ const { cardClass, innerClass, actionPanelClass, stepPanelClass } = schedulerCardClasses(flow, step, className);
3674
3875
  const degraded = (message) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SchedulerDegradedCard, { flow, className, message, action: escapeHatch });
3675
3876
  const degradedCard = degraded("We couldn't load available call times. Please try again shortly.");
3676
- if (modal && isLoadingAvailability && !availability) {
3677
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, MODAL_STACK_CLASS, className), children: [
3678
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNO5UJLLQcjs.LoadingRegion, { label: "Loading available times", className: MODAL_CARD_CLASS, children: [
3679
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SchedulerModalHeaderSkeleton, {}),
3680
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlotPickerSkeleton, { monthOffset, layout: "modal" })
3681
- ] }),
3682
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3683
- ModalFooter,
3684
- {
3685
- onCancel: onBack,
3686
- primary: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2QMBXGMQcjs.Button, { disabled: true, onClick: NOOP2, className: MODAL_PRIMARY_CLASS, children: "Continue" })
3687
- }
3688
- )
3689
- ] });
3690
- }
3691
- if (isLoadingAvailability && !availability) {
3692
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: cardClass, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNO5UJLLQcjs.LoadingRegion, { label: "Loading available times", className: innerClass, children: [
3693
- !formOnly && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ContextPanelSkeleton, { onBack: backEdge, className: CONTEXT_PANEL_CLASS }),
3694
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: actionPanelClass, children: formOnly ? (
3695
- // The SAME wrapper the loaded form gets, so the skeleton never
3696
- // states its own inset.
3697
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: stepPanelClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3698
- BookingFormSkeleton,
3699
- {
3700
- fieldRows: _optionalChain([detailsFormProps, 'optionalAccess', _48 => _48.fieldRows]),
3701
- consent: Boolean(_optionalChain([detailsFormProps, 'optionalAccess', _49 => _49.consent])),
3702
- footerNote: preset.footerNote
3703
- }
3704
- ) })
3705
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlotPickerSkeleton, { monthOffset }) })
3706
- ] }) });
3707
- }
3708
- if (availabilityError || !availability) return degradedCard;
3709
- if (!isNativelyBookable(availability)) {
3710
- return degraded("This meeting type is booked directly on HubSpot.");
3877
+ if (!coldStart) {
3878
+ if (availabilityError || !availability) return degradedCard;
3879
+ if (!isNativelyBookable(availability)) {
3880
+ return degraded("This meeting type is booked directly on HubSpot.");
3881
+ }
3711
3882
  }
3712
3883
  if (modal) {
3713
3884
  const modalBack = step === "details" ? backToSlot : onBack;
@@ -3716,14 +3887,14 @@ function HubSpotMeetingScheduler({
3716
3887
  setSelectedDay(null);
3717
3888
  setSelectedSlot(null);
3718
3889
  };
3719
- const summary = selectedSlot != null && durationMs != null && timezone != null ? `${_chunkEQZXJUYVcjs.formatDateWithTimezone.call(void 0, selectedSlot, timezone, "weekdayDateTimeZoned", { viewerLocale: true })} \xB7 ${_chunkEQZXJUYVcjs.formatDurationCompact.call(void 0, durationMs / 1e3)}` : null;
3720
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, MODAL_STACK_CLASS, className), children: [
3721
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: MODAL_CARD_CLASS, children: [
3890
+ const summary = selectedSlot != null && durationMs != null && timezone != null ? `${_chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, selectedSlot, timezone, "weekdayDateTimeZoned", { viewerLocale: true })} \xB7 ${_chunkJTSUAHDLcjs.formatDurationCompact.call(void 0, durationMs / 1e3)}` : null;
3891
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, MODAL_STACK_CLASS, className), children: [
3892
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading available times", announce: coldStart, className: MODAL_CARD_CLASS, children: [
3722
3893
  modalBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3723
- _chunkWA4X55XYcjs.BackButton,
3894
+ _chunkZV45VS6Kcjs.BackButton,
3724
3895
  {
3725
3896
  onClick: modalBack,
3726
- className: _chunk3ATAYP36cjs.cn.call(void 0,
3897
+ className: _chunk65VVJSQZcjs.cn.call(void 0,
3727
3898
  "px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]",
3728
3899
  step === "slot" && "content-md:hidden"
3729
3900
  )
@@ -3732,6 +3903,7 @@ function HubSpotMeetingScheduler({
3732
3903
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3733
3904
  SchedulerModalHeader,
3734
3905
  {
3906
+ loading: coldStart,
3735
3907
  hosts: shownHosts,
3736
3908
  durationsMs: durations,
3737
3909
  selectedDurationMs: durationMs,
@@ -3742,7 +3914,7 @@ function HubSpotMeetingScheduler({
3742
3914
  showTimezone: step === "slot"
3743
3915
  }
3744
3916
  ),
3745
- step === "confirmed" && confirmation && timezone ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: MODAL_STEP_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Confirmation, { confirmation, timezone }) }) : step === "details" && durationMs != null && selectedSlot != null && timezone ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, MODAL_STEP_CLASS, "gap-[var(--spacing-system-m)]"), children: [
3917
+ step === "confirmed" && confirmation && timezone ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: MODAL_STEP_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Confirmation, { confirmation, timezone }) }) : step === "details" && durationMs != null && selectedSlot != null && timezone ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, MODAL_STEP_CLASS, "gap-[var(--spacing-system-m)]"), children: [
3746
3918
  summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: summary }),
3747
3919
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3748
3920
  DetailsForm,
@@ -3765,29 +3937,33 @@ function HubSpotMeetingScheduler({
3765
3937
  }
3766
3938
  )
3767
3939
  ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
3768
- bookingError === "SLOT_TAKEN" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFMH2DYBCcjs.Alert, { variant: "warning", className: "mx-[var(--spacing-system-m)] mt-[var(--spacing-system-m)] w-auto", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFMH2DYBCcjs.AlertDescription, { children: "That time was just taken \u2014 pick another slot below. (If you already submitted, check your email for a confirmation before rebooking.)" }) }),
3769
- timezone && durationMs != null ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3770
- SlotPicker,
3771
- {
3772
- layout: "modal",
3773
- slots,
3774
- timezone,
3775
- monthOffset,
3776
- onMonthOffsetChange: (o) => {
3777
- setSelectedDay(null);
3778
- setSelectedSlot(null);
3779
- setMonthOffset(o);
3780
- },
3781
- selectedSlot,
3782
- onSelectSlot: setSelectedSlot,
3783
- selectedDay,
3784
- onSelectDay: setSelectedDay,
3785
- isLoading: isLoadingAvailability
3786
- }
3787
- ) : durations.length === 0 && !isFetchingAvailability ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, MODAL_STEP_CLASS, "items-start gap-[var(--spacing-system-m)]"), children: [
3940
+ bookingError === "SLOT_TAKEN" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.Alert, { variant: "warning", className: "mx-[var(--spacing-system-m)] mt-[var(--spacing-system-m)] w-auto", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.AlertDescription, { children: "That time was just taken \u2014 pick another slot below. (If you already submitted, check your email for a confirmation before rebooking.)" }) }),
3941
+ !coldStart && (!timezone || durationMs == null) && durations.length === 0 && !isFetchingAvailability ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, MODAL_STEP_CLASS, "items-start gap-[var(--spacing-system-m)]"), children: [
3788
3942
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "No call times are published right now." }),
3789
3943
  escapeHatch
3790
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlotPickerSkeleton, { monthOffset, layout: "modal" })
3944
+ ] }) : (
3945
+ // On a cold start, or waiting for the zone or the length, the picker draws its own skeleton (`loading`).
3946
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3947
+ SlotPicker,
3948
+ {
3949
+ loading: coldStart || !timezone || durationMs == null,
3950
+ layout: "modal",
3951
+ slots,
3952
+ timezone,
3953
+ monthOffset,
3954
+ onMonthOffsetChange: (o) => {
3955
+ setSelectedDay(null);
3956
+ setSelectedSlot(null);
3957
+ setMonthOffset(o);
3958
+ },
3959
+ selectedSlot,
3960
+ onSelectSlot: setSelectedSlot,
3961
+ selectedDay,
3962
+ onSelectDay: setSelectedDay,
3963
+ isLoading: isLoadingAvailability
3964
+ }
3965
+ )
3966
+ )
3791
3967
  ] })
3792
3968
  ] }),
3793
3969
  step === "slot" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -3795,7 +3971,7 @@ function HubSpotMeetingScheduler({
3795
3971
  {
3796
3972
  onCancel: onBack,
3797
3973
  primary: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3798
- _chunk2QMBXGMQcjs.Button,
3974
+ _chunkTF5D5MNOcjs.Button,
3799
3975
  {
3800
3976
  disabled: selectedSlot == null || durationMs == null,
3801
3977
  onClick: () => setStep("details"),
@@ -3810,7 +3986,7 @@ function HubSpotMeetingScheduler({
3810
3986
  {
3811
3987
  onCancel: onBack,
3812
3988
  primary: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3813
- _chunk2QMBXGMQcjs.Button,
3989
+ _chunkTF5D5MNOcjs.Button,
3814
3990
  {
3815
3991
  type: "submit",
3816
3992
  form: modalFormId,
@@ -3824,10 +4000,11 @@ function HubSpotMeetingScheduler({
3824
4000
  )
3825
4001
  ] });
3826
4002
  }
3827
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: cardClass, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: innerClass, children: [
4003
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: cardClass, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading available times", announce: coldStart, className: innerClass, children: [
3828
4004
  !formOnly && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3829
4005
  SchedulerContextPanel,
3830
4006
  {
4007
+ loading: coldStart,
3831
4008
  hosts: shownHosts,
3832
4009
  title,
3833
4010
  description,
@@ -3848,19 +4025,53 @@ function HubSpotMeetingScheduler({
3848
4025
  className: CONTEXT_PANEL_CLASS
3849
4026
  }
3850
4027
  ),
3851
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: actionPanelClass, children: step === "confirmed" && confirmation && timezone ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: stepPanelClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Confirmation, { confirmation, timezone }) }) : step === "details" && (detailsFirst ? (
4028
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: actionPanelClass, children: coldStart ? (
4029
+ // The month is not here yet: the step's own part draws its skeleton in the loaded wrapper. Both terms
4030
+ // matter: without `formOnly` this would be a calendar where the form belongs; paging a month AFTER
4031
+ // Continue (at `step === 'slot'`) keeps the calendar.
4032
+ formOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: stepPanelClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4033
+ DetailsForm,
4034
+ {
4035
+ loading: true,
4036
+ ...detailsFormProps,
4037
+ availability,
4038
+ meetingId,
4039
+ timezone,
4040
+ deferSlot: detailsFirst,
4041
+ submitLabel: preset.submitLabel,
4042
+ footerNote: preset.footerNote,
4043
+ isSubmitting: false,
4044
+ onSubmit: NOOP_SUBMIT,
4045
+ honeypotInputProps,
4046
+ getSignals
4047
+ }
4048
+ ) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-m)] content-md:min-h-0 content-md:flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4049
+ SlotPicker,
4050
+ {
4051
+ loading: true,
4052
+ slots,
4053
+ timezone,
4054
+ monthOffset,
4055
+ onMonthOffsetChange: NOOP2,
4056
+ selectedSlot: null,
4057
+ onSelectSlot: NOOP2,
4058
+ selectedDay: null,
4059
+ onSelectDay: NOOP2
4060
+ }
4061
+ ) })
4062
+ ) : step === "confirmed" && confirmation && timezone ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: stepPanelClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Confirmation, { confirmation, timezone }) }) : step === "details" && (detailsFirst ? (
3852
4063
  // The form is step ONE here: no slot yet, and `timezone` is null
3853
4064
  // on the server render, so neither may gate the PANEL. A link
3854
4065
  // publishing no durations has no form worth showing; it gets the
3855
4066
  // "nothing published" message below at every moment, refetch or
3856
4067
  // not — never a calendar skeleton in the form-only layout.
3857
4068
  durations.length > 0
3858
- ) : durationMs != null && selectedSlot != null && timezone) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, stepPanelClass, "gap-[var(--spacing-system-m)]"), children: [
4069
+ ) : durationMs != null && selectedSlot != null && timezone) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, stepPanelClass, "gap-[var(--spacing-system-m)]"), children: [
3859
4070
  selectedSlot != null && durationMs != null && timezone != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
3860
- _chunkEQZXJUYVcjs.formatDateWithTimezone.call(void 0, selectedSlot, timezone, "weekdayDateTimeZoned", { viewerLocale: true }),
4071
+ _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, selectedSlot, timezone, "weekdayDateTimeZoned", { viewerLocale: true }),
3861
4072
  " \xB7",
3862
4073
  " ",
3863
- _chunkEQZXJUYVcjs.formatDurationCompact.call(void 0, durationMs / 1e3)
4074
+ _chunkJTSUAHDLcjs.formatDurationCompact.call(void 0, durationMs / 1e3)
3864
4075
  ] }),
3865
4076
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3866
4077
  DetailsForm,
@@ -3874,7 +4085,7 @@ function HubSpotMeetingScheduler({
3874
4085
  deferSlot: detailsFirst,
3875
4086
  submitLabel: preset.submitLabel,
3876
4087
  footerNote: preset.footerNote,
3877
- initialValues: detailsFirst ? _optionalChain([stash, 'optionalAccess', _50 => _50.payload]) : void 0,
4088
+ initialValues: detailsFirst ? _optionalChain([stash, 'optionalAccess', _63 => _63.payload]) : void 0,
3878
4089
  isSubmitting,
3879
4090
  onSubmit: detailsFirst ? stashDetails : handleSubmit,
3880
4091
  honeypotInputProps,
@@ -3884,20 +4095,33 @@ function HubSpotMeetingScheduler({
3884
4095
  )
3885
4096
  ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-m)] content-md:min-h-0 content-md:flex-1", children: [
3886
4097
  bookingError === "SLOT_TAKEN" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3887
- _chunkFMH2DYBCcjs.Alert,
4098
+ _chunkVRDHAR3Xcjs.Alert,
3888
4099
  {
3889
4100
  variant: "warning",
3890
4101
  className: "mx-[var(--spacing-system-l)] mt-[var(--spacing-system-l)] w-auto content-lg:m-0 content-lg:w-full",
3891
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFMH2DYBCcjs.AlertDescription, { children: "That time was just taken \u2014 pick another slot below. (If you already submitted, check your email for a confirmation before rebooking.)" })
4102
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVRDHAR3Xcjs.AlertDescription, { children: "That time was just taken \u2014 pick another slot below. (If you already submitted, check your email for a confirmation before rebooking.)" })
3892
4103
  }
3893
4104
  ),
3894
- timezone && durationMs != null ? (
3895
- // The picker owns BOTH the loading and the empty month now —
3896
- // it keeps the calendar up either way, so there is no branch
3897
- // here that can take it off screen mid-flow.
4105
+ (!timezone || durationMs == null) && durations.length === 0 && (!isFetchingAvailability || formOnly) ? (
4106
+ // The LINK publishes nothing at all — a different thing from a
4107
+ // fully-booked month, and the only case the escape hatch is
4108
+ // the right answer to. In the form-only layout it holds through
4109
+ // a refetch too: the alternative frame is a calendar skeleton
4110
+ // where a form belongs.
4111
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-start gap-[var(--spacing-system-m)]", children: [
4112
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "No call times are published right now." }),
4113
+ escapeHatch
4114
+ ] })
4115
+ ) : (
4116
+ // The picker owns the loading and the empty month — it keeps
4117
+ // the calendar up either way, so there is no branch here that
4118
+ // can take it off screen mid-flow. In the pre-mount
4119
+ // timezone-resolution window (every SSR load hits it for one
4120
+ // frame-batch) it draws its own skeleton (`loading`).
3898
4121
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3899
4122
  SlotPicker,
3900
4123
  {
4124
+ loading: !timezone || durationMs == null,
3901
4125
  slots,
3902
4126
  timezone,
3903
4127
  monthOffset,
@@ -3942,21 +4166,6 @@ function HubSpotMeetingScheduler({
3942
4166
  isSubmitting: detailsFirst ? isSubmitting : void 0
3943
4167
  }
3944
4168
  )
3945
- ) : durations.length === 0 && (!isFetchingAvailability || formOnly) ? (
3946
- // The LINK publishes nothing at all — a different thing from a
3947
- // fully-booked month, and the only case the escape hatch is
3948
- // the right answer to. In the form-only layout it holds through
3949
- // a refetch too: the alternative frame is a calendar skeleton
3950
- // where a form belongs.
3951
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-start gap-[var(--spacing-system-m)]", children: [
3952
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "No call times are published right now." }),
3953
- escapeHatch
3954
- ] })
3955
- ) : (
3956
- // Pre-mount timezone-resolution window (every SSR load hits
3957
- // this for one frame-batch) — same layout, real calendar, so
3958
- // nothing shifts when the picker takes over.
3959
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlotPickerSkeleton, { monthOffset })
3960
4169
  )
3961
4170
  ] }) })
3962
4171
  ] }) });
@@ -3972,4 +4181,7 @@ function HubSpotMeetingScheduler({
3972
4181
 
3973
4182
 
3974
4183
 
3975
- exports.BookingForm = BookingForm; exports.BookingFormSkeleton = BookingFormSkeleton; exports.DEFAULT_SCHEDULER_FLOW = DEFAULT_SCHEDULER_FLOW; exports.HubSpotMeetingScheduler = HubSpotMeetingScheduler; exports.MEETING_SCHEDULER_DETAILS_FIRST_H = MEETING_SCHEDULER_DETAILS_FIRST_H; exports.MEETING_SCHEDULER_H = MEETING_SCHEDULER_H; exports.MeetingSchedulerDirectory = MeetingSchedulerDirectory; exports.MeetingSchedulerDirectoryRowSkeleton = MeetingSchedulerDirectoryRowSkeleton; exports.SCHEDULER_FLOW_PRESETS = SCHEDULER_FLOW_PRESETS; exports.SchedulerDegradedCard = SchedulerDegradedCard;
4184
+
4185
+
4186
+
4187
+ exports.BookingForm = BookingForm; exports.BookingFormSkeleton = BookingFormSkeleton; exports.DEFAULT_SCHEDULER_FLOW = DEFAULT_SCHEDULER_FLOW; exports.HubSpotMeetingScheduler = HubSpotMeetingScheduler; exports.MEETING_DIRECTORY_PAGE_SIZE = MEETING_DIRECTORY_PAGE_SIZE; exports.MEETING_SCHEDULER_DETAILS_FIRST_H = MEETING_SCHEDULER_DETAILS_FIRST_H; exports.MEETING_SCHEDULER_H = MEETING_SCHEDULER_H; exports.MeetingSchedulerDirectory = MeetingSchedulerDirectory; exports.MeetingSchedulerDirectoryRowSkeleton = MeetingSchedulerDirectoryRowSkeleton; exports.MeetingSchedulerDirectorySkeleton = MeetingSchedulerDirectorySkeleton; exports.SCHEDULER_FLOW_PRESETS = SCHEDULER_FLOW_PRESETS; exports.SchedulerDegradedCard = SchedulerDegradedCard; exports.formFieldOptionLabel = formFieldOptionLabel;