@flamingo-stack/openframe-frontend-core 0.0.702 → 0.0.703-snapshot.20261006080901

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 (341) hide show
  1. package/dist/{chunk-CYYTD5ZK.cjs → chunk-262YQFOS.cjs} +47 -47
  2. package/dist/{chunk-SAA7B3DA.js → chunk-2G546OND.js} +500 -67
  3. package/dist/{chunk-6JPQDYYY.js → chunk-2JDVL7UV.js} +2614 -2001
  4. package/dist/{chunk-ASN65P3F.cjs → chunk-4DQMTBMK.cjs} +15 -15
  5. package/dist/{chunk-CZ34HXDW.js → chunk-4KGXLVCF.js} +686 -725
  6. package/dist/{chunk-TCZCMD5Q.js → chunk-5HBHO5TB.js} +1 -1
  7. package/dist/{chunk-446KS5BG.js → chunk-5QJDM6UV.js} +5 -5
  8. package/dist/{chunk-UJJWTJ6S.js → chunk-6WQIUQUC.js} +30 -16
  9. package/dist/{chunk-YR6JPJF4.js → chunk-6XIF2Z7I.js} +4 -4
  10. package/dist/{chunk-YGRHITPY.cjs → chunk-7JIL3WOH.cjs} +24 -24
  11. package/dist/{chunk-RS7HWAYX.js → chunk-7LFIKJX2.js} +3 -3
  12. package/dist/{chunk-4OGAXAEG.cjs → chunk-ABU3TGXA.cjs} +3 -3
  13. package/dist/{chunk-3WSFIV5G.cjs → chunk-AMYY3PNL.cjs} +69 -55
  14. package/dist/{chunk-BRXOGCH3.cjs → chunk-BIZNSF3U.cjs} +3 -3
  15. package/dist/{chunk-2A4XES7R.cjs → chunk-BM5MVGH3.cjs} +3 -3
  16. package/dist/{chunk-IIMICN7L.cjs → chunk-C3BWIU7R.cjs} +4 -44
  17. package/dist/{chunk-LZNJH23A.cjs → chunk-C7XGRLT5.cjs} +12 -12
  18. package/dist/{chunk-6YCXA7CN.js → chunk-CH5232HV.js} +20 -19
  19. package/dist/{chunk-UIBSSVON.cjs → chunk-D7BTSVMS.cjs} +2 -2
  20. package/dist/{chunk-BO5ZHDA4.js → chunk-ERCV6HHJ.js} +7 -7
  21. package/dist/{chunk-5V6O73EH.js → chunk-FLKJYMVB.js} +3 -3
  22. package/dist/{chunk-Z5HDCZAS.js → chunk-FXENTYE5.js} +15 -15
  23. package/dist/{chunk-HIXGAY2L.cjs → chunk-HFJW24JJ.cjs} +121 -121
  24. package/dist/{chunk-HPJ4XS2L.js → chunk-HJAYVKWQ.js} +24 -24
  25. package/dist/{chunk-PLK6GHN7.js → chunk-I7DFUQMN.js} +10 -10
  26. package/dist/{chunk-KJ5LWATV.js → chunk-IHU5ANUY.js} +7 -7
  27. package/dist/{chunk-AEQANLBW.cjs → chunk-IZGDG5X6.cjs} +505 -72
  28. package/dist/{chunk-2V4Z44G6.js → chunk-JEYRXT5L.js} +17 -17
  29. package/dist/{chunk-B3LZJ6J3.cjs → chunk-L3IC42IF.cjs} +32 -32
  30. package/dist/{chunk-RTGPIHVO.cjs → chunk-LDPEQGKT.cjs} +2243 -1630
  31. package/dist/{chunk-FD4DBTFO.cjs → chunk-LTSTC3N5.cjs} +1253 -1292
  32. package/dist/{chunk-OGLCD3UL.js → chunk-MFFCUVWG.js} +6 -6
  33. package/dist/{chunk-3L7KCOGO.cjs → chunk-MGGGBHYD.cjs} +30 -30
  34. package/dist/{chunk-QFW3RUZS.cjs → chunk-MI3JUJ75.cjs} +33 -33
  35. package/dist/{chunk-EMCQGFXD.cjs → chunk-MMOODW57.cjs} +28 -27
  36. package/dist/{chunk-Q76ZTHNV.js → chunk-MP2C3LJ4.js} +1 -1
  37. package/dist/{chunk-E3DH543A.cjs → chunk-N3TO7JV3.cjs} +98 -98
  38. package/dist/{chunk-2T6QWNXU.js → chunk-NDESEPW5.js} +99 -11
  39. package/dist/{chunk-ETFFEA3J.js → chunk-NRLJUBCS.js} +7 -7
  40. package/dist/{chunk-HUOLB7ZN.cjs → chunk-OHFS7VOU.cjs} +9 -9
  41. package/dist/{chunk-MWUBBBWZ.js → chunk-QVSFBSWV.js} +10 -10
  42. package/dist/{chunk-MDBHZBW7.cjs → chunk-RKV5B7EU.cjs} +92 -4
  43. package/dist/{chunk-3G76LRGL.cjs → chunk-SYXQLETR.cjs} +29 -29
  44. package/dist/{chunk-FHM7GD5B.cjs → chunk-UK62YTH6.cjs} +28 -14
  45. package/dist/{chunk-HUMWQMCU.js → chunk-UT4YHQZW.js} +3 -3
  46. package/dist/{chunk-NGJCWEYX.cjs → chunk-VHCACDKP.cjs} +46 -46
  47. package/dist/{chunk-5FFNNJM7.js → chunk-VR2ZLFCP.js} +1 -1
  48. package/dist/{chunk-IZKOQVXO.js → chunk-VTASHWER.js} +14 -14
  49. package/dist/{chunk-64O4L7WN.js → chunk-WUJNYGO2.js} +11 -51
  50. package/dist/{chunk-JOY6HVPV.js → chunk-XATTBO5X.js} +25 -11
  51. package/dist/{chunk-L7KZA7ZD.cjs → chunk-XIFOBQRQ.cjs} +6 -6
  52. package/dist/{chunk-CXDJUKC6.cjs → chunk-XJKZ4IKT.cjs} +4 -4
  53. package/dist/{chunk-XCIFHW4E.cjs → chunk-XOYH2YQE.cjs} +2 -2
  54. package/dist/{chunk-HYFLTFFB.js → chunk-ZQFZSFQI.js} +2 -2
  55. package/dist/components/case-studies/index.cjs +24 -24
  56. package/dist/components/case-studies/index.js +10 -10
  57. package/dist/components/chat/chat-archive-page.d.ts +3 -3
  58. package/dist/components/chat/chat-archive-page.d.ts.map +1 -1
  59. package/dist/components/chat/chat-nav-sidebar.d.ts +4 -0
  60. package/dist/components/chat/chat-nav-sidebar.d.ts.map +1 -1
  61. package/dist/components/chat/chat-panel-header.d.ts +3 -2
  62. package/dist/components/chat/chat-panel-header.d.ts.map +1 -1
  63. package/dist/components/chat/embeddable-chat.d.ts +36 -2
  64. package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
  65. package/dist/components/chat/index.cjs +14 -6
  66. package/dist/components/chat/index.d.ts +4 -1
  67. package/dist/components/chat/index.d.ts.map +1 -1
  68. package/dist/components/chat/index.js +13 -5
  69. package/dist/components/chat/mingo-archive-list.d.ts +17 -0
  70. package/dist/components/chat/mingo-archive-list.d.ts.map +1 -0
  71. package/dist/components/chat/mingo-chat-header.d.ts +31 -0
  72. package/dist/components/chat/mingo-chat-header.d.ts.map +1 -0
  73. package/dist/components/chat/mingo-chat-rail.d.ts +54 -0
  74. package/dist/components/chat/mingo-chat-rail.d.ts.map +1 -0
  75. package/dist/components/chat/model-display.d.ts.map +1 -1
  76. package/dist/components/contact/contact-form.d.ts.map +1 -1
  77. package/dist/components/contact/index.cjs +11 -11
  78. package/dist/components/contact/index.js +10 -10
  79. package/dist/components/content-loading-container.d.ts +1 -1
  80. package/dist/components/content-loading-container.d.ts.map +1 -1
  81. package/dist/components/docs/index.cjs +14 -14
  82. package/dist/components/docs/index.js +13 -13
  83. package/dist/components/docs/skeletons.d.ts.map +1 -1
  84. package/dist/components/embeds/index.cjs +11 -11
  85. package/dist/components/embeds/index.js +10 -10
  86. package/dist/components/faq/index.cjs +12 -12
  87. package/dist/components/faq/index.js +11 -11
  88. package/dist/components/features/figma-prototype-viewer.d.ts.map +1 -1
  89. package/dist/components/features/index.cjs +10 -10
  90. package/dist/components/features/index.js +9 -9
  91. package/dist/components/features/media-gallery-manager.d.ts.map +1 -1
  92. package/dist/components/features/parallax-image-showcase.d.ts.map +1 -1
  93. package/dist/components/features/policy-configuration-panel.d.ts.map +1 -1
  94. package/dist/components/features/section-selector.d.ts.map +1 -1
  95. package/dist/components/help-center-pages/index.cjs +119 -119
  96. package/dist/components/help-center-pages/index.js +39 -39
  97. package/dist/components/help-center-pages/trust-center-sections.d.ts +2 -2
  98. package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
  99. package/dist/components/index.cjs +94 -86
  100. package/dist/components/index.js +32 -24
  101. package/dist/components/layout/article-detail-layout.d.ts +1 -1
  102. package/dist/components/layout/article-detail-layout.d.ts.map +1 -1
  103. package/dist/components/layout/page-container.d.ts.map +1 -1
  104. package/dist/components/layout/title-block.d.ts +2 -2
  105. package/dist/components/layout/title-block.d.ts.map +1 -1
  106. package/dist/components/loading/page-layout-skeleton.d.ts.map +1 -1
  107. package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
  108. package/dist/components/meeting-scheduler/booking-form.d.ts +4 -4
  109. package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
  110. package/dist/components/meeting-scheduler/context-panel.d.ts.map +1 -1
  111. package/dist/components/meeting-scheduler/index.cjs +127 -127
  112. package/dist/components/meeting-scheduler/index.d.ts +2 -2
  113. package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
  114. package/dist/components/meeting-scheduler/index.js +50 -50
  115. package/dist/components/navigation/app-header.d.ts +4 -0
  116. package/dist/components/navigation/app-header.d.ts.map +1 -1
  117. package/dist/components/navigation/app-layout-drawer.d.ts.map +1 -1
  118. package/dist/components/navigation/app-layout-side-panel.d.ts +142 -0
  119. package/dist/components/navigation/app-layout-side-panel.d.ts.map +1 -0
  120. package/dist/components/navigation/app-layout.d.ts +11 -1
  121. package/dist/components/navigation/app-layout.d.ts.map +1 -1
  122. package/dist/components/navigation/header-mingo-button.d.ts +4 -1
  123. package/dist/components/navigation/header-mingo-button.d.ts.map +1 -1
  124. package/dist/components/navigation/index.cjs +13 -13
  125. package/dist/components/navigation/index.d.ts +1 -0
  126. package/dist/components/navigation/index.d.ts.map +1 -1
  127. package/dist/components/navigation/index.js +12 -12
  128. package/dist/components/navigation/navigation-sidebar.d.ts +8 -1
  129. package/dist/components/navigation/navigation-sidebar.d.ts.map +1 -1
  130. package/dist/components/navigation/sliding-sidebar.d.ts.map +1 -1
  131. package/dist/components/onboarding-guides/index.cjs +14 -14
  132. package/dist/components/onboarding-guides/index.js +13 -13
  133. package/dist/components/persistent-filter-controls.d.ts.map +1 -1
  134. package/dist/components/related-content/index.cjs +7 -7
  135. package/dist/components/related-content/index.js +6 -6
  136. package/dist/components/shared/detail-page-skeleton.d.ts.map +1 -1
  137. package/dist/components/tickets/help-center-create-form.d.ts +4 -4
  138. package/dist/components/tickets/index.cjs +15 -15
  139. package/dist/components/tickets/index.js +14 -14
  140. package/dist/components/ui/announcement-bar-view.d.ts.map +1 -1
  141. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  142. package/dist/components/ui/checkbox-block.d.ts.map +1 -1
  143. package/dist/components/ui/dashboard-info-card.d.ts +1 -1
  144. package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
  145. package/dist/components/ui/data-table/data-table-body.d.ts +2 -2
  146. package/dist/components/ui/data-table/data-table-skeleton.d.ts +2 -2
  147. package/dist/components/ui/data-table/data-table-skeleton.d.ts.map +1 -1
  148. package/dist/components/ui/data-table/utils.d.ts +2 -2
  149. package/dist/components/ui/dialog.d.ts.map +1 -1
  150. package/dist/components/ui/drawer.d.ts +7 -3
  151. package/dist/components/ui/drawer.d.ts.map +1 -1
  152. package/dist/components/ui/entity-image.d.ts +2 -2
  153. package/dist/components/ui/file-manager/index.cjs +36 -36
  154. package/dist/components/ui/file-manager/index.js +3 -3
  155. package/dist/components/ui/filter-modal.d.ts.map +1 -1
  156. package/dist/components/ui/index.cjs +18 -10
  157. package/dist/components/ui/index.js +17 -9
  158. package/dist/components/ui/info-card-row.d.ts.map +1 -1
  159. package/dist/components/ui/menubar.d.ts +1 -1
  160. package/dist/components/ui/menubar.d.ts.map +1 -1
  161. package/dist/components/ui/modal-v2.d.ts.map +1 -1
  162. package/dist/components/ui/modal.d.ts.map +1 -1
  163. package/dist/components/ui/no-data/no-data-actions.d.ts.map +1 -1
  164. package/dist/components/ui/no-data/no-data-styles.d.ts +1 -1
  165. package/dist/components/ui/no-data/no-data-styles.d.ts.map +1 -1
  166. package/dist/components/ui/page-actions.d.ts.map +1 -1
  167. package/dist/components/ui/panel-resize-handle.d.ts +25 -0
  168. package/dist/components/ui/panel-resize-handle.d.ts.map +1 -0
  169. package/dist/components/ui/sheet.d.ts.map +1 -1
  170. package/dist/components/ui/table/table-skeleton.d.ts +1 -1
  171. package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
  172. package/dist/hooks/index.cjs +23 -9
  173. package/dist/hooks/index.js +24 -10
  174. package/dist/hooks/ui/index.d.ts +1 -0
  175. package/dist/hooks/ui/index.d.ts.map +1 -1
  176. package/dist/hooks/ui/use-content-breakpoint.d.ts +32 -0
  177. package/dist/hooks/ui/use-content-breakpoint.d.ts.map +1 -0
  178. package/dist/hooks/ui/use-isomorphic-layout-effect.d.ts +2 -2
  179. package/dist/hooks/ui/use-isomorphic-layout-effect.d.ts.map +1 -1
  180. package/dist/hooks/ui/use-media-query.d.ts.map +1 -1
  181. package/dist/hooks/ui/use-resizable-panel-size.d.ts +46 -0
  182. package/dist/hooks/ui/use-resizable-panel-size.d.ts.map +1 -0
  183. package/dist/index.cjs +39 -17
  184. package/dist/index.js +41 -19
  185. package/dist/styles/layout-steps.d.ts +30 -0
  186. package/dist/styles/layout-steps.d.ts.map +1 -0
  187. package/dist/tailwind.config.cjs +36 -11
  188. package/dist/tailwind.config.js +36 -11
  189. package/eslint-config/README.md +9 -0
  190. package/eslint-config/base.js +17 -1
  191. package/eslint-config/layout-variants.js +57 -0
  192. package/package.json +3 -1
  193. package/src/ODS_TOKEN_RULES.md +40 -0
  194. package/src/components/chat/chat-archive-page.tsx +9 -7
  195. package/src/components/chat/chat-nav-sidebar.tsx +10 -4
  196. package/src/components/chat/chat-panel-header.tsx +8 -5
  197. package/src/components/chat/embeddable-chat.tsx +686 -494
  198. package/src/components/chat/index.ts +4 -0
  199. package/src/components/chat/mingo-archive-list.tsx +108 -0
  200. package/src/components/chat/mingo-chat-header.tsx +104 -0
  201. package/src/components/chat/mingo-chat-rail.tsx +361 -0
  202. package/src/components/chat/model-display.tsx +8 -1
  203. package/src/components/contact/contact-form.tsx +11 -9
  204. package/src/components/content-loading-container.tsx +4 -2
  205. package/src/components/docs/doc-viewer.tsx +7 -7
  206. package/src/components/docs/skeletons.tsx +7 -4
  207. package/src/components/dynamic-skeleton.tsx +1 -1
  208. package/src/components/embeds/claude-embed.tsx +1 -1
  209. package/src/components/embeds/embed-viewer-frame.tsx +4 -4
  210. package/src/components/embeds/figma-embed.tsx +2 -2
  211. package/src/components/embeds/google-sheets-viewer.tsx +1 -1
  212. package/src/components/embeds/pdf-viewer.tsx +3 -3
  213. package/src/components/empty-state.tsx +6 -6
  214. package/src/components/faq/faq-section.tsx +2 -2
  215. package/src/components/faq-accordion.tsx +1 -1
  216. package/src/components/features/board/board-column-header.tsx +1 -1
  217. package/src/components/features/command-box.tsx +3 -3
  218. package/src/components/features/entity-video-section.tsx +2 -2
  219. package/src/components/features/figma-prototype-viewer.tsx +4 -1
  220. package/src/components/features/media-gallery-manager.tsx +3 -1
  221. package/src/components/features/parallax-image-showcase.tsx +9 -6
  222. package/src/components/features/policy-configuration-panel.tsx +9 -7
  223. package/src/components/features/provider-button.tsx +1 -1
  224. package/src/components/features/section-selector.tsx +11 -6
  225. package/src/components/features/select-button.tsx +4 -4
  226. package/src/components/features/seo-editor-preview.tsx +2 -2
  227. package/src/components/features/video-ratio-tabs.tsx +3 -3
  228. package/src/components/features/waitlist-form.tsx +1 -1
  229. package/src/components/help-center-pages/trust-center-page.tsx +1 -1
  230. package/src/components/help-center-pages/trust-center-sections.tsx +14 -14
  231. package/src/components/icon-display.tsx +1 -1
  232. package/src/components/layout/article-detail-layout.tsx +4 -2
  233. package/src/components/layout/list-page-layout.tsx +2 -2
  234. package/src/components/layout/page-container.tsx +26 -14
  235. package/src/components/layout/page-heading.tsx +1 -1
  236. package/src/components/layout/page-layout.tsx +1 -1
  237. package/src/components/layout/title-block.tsx +13 -13
  238. package/src/components/loading/card-skeleton.tsx +11 -11
  239. package/src/components/loading/category-vendor-selector-skeleton.tsx +1 -1
  240. package/src/components/loading/content-skeleton.tsx +6 -6
  241. package/src/components/loading/device-card-skeleton.tsx +1 -1
  242. package/src/components/loading/margin-report-skeleton.tsx +7 -7
  243. package/src/components/loading/msp-profile-form-skeleton.tsx +3 -3
  244. package/src/components/loading/organization-card-skeleton.tsx +2 -2
  245. package/src/components/loading/page-layout-skeleton.tsx +80 -68
  246. package/src/components/loading/unified-skeleton.tsx +16 -6
  247. package/src/components/media-carousel.tsx +3 -3
  248. package/src/components/meeting-scheduler/booking-form.tsx +9 -8
  249. package/src/components/meeting-scheduler/context-panel.tsx +8 -6
  250. package/src/components/meeting-scheduler/directory.tsx +4 -4
  251. package/src/components/meeting-scheduler/index.tsx +15 -15
  252. package/src/components/meeting-scheduler/slot-picker.tsx +12 -12
  253. package/src/components/navigation/app-header.tsx +6 -0
  254. package/src/components/navigation/app-layout-drawer.tsx +14 -237
  255. package/src/components/navigation/app-layout-side-panel.tsx +594 -0
  256. package/src/components/navigation/app-layout.tsx +69 -4
  257. package/src/components/navigation/header-mingo-button.tsx +13 -3
  258. package/src/components/navigation/index.ts +5 -0
  259. package/src/components/navigation/navigation-sidebar.tsx +17 -3
  260. package/src/components/navigation/sliding-sidebar.tsx +2 -1
  261. package/src/components/pagination.tsx +3 -3
  262. package/src/components/persistent-filter-controls.tsx +6 -2
  263. package/src/components/platform/ScriptArguments.tsx +1 -1
  264. package/src/components/platform/ScriptInfoSection.tsx +4 -4
  265. package/src/components/shared/article-author-byline.tsx +1 -1
  266. package/src/components/shared/delivery/delivery-lists.tsx +2 -2
  267. package/src/components/shared/delivery/delivery-row.tsx +7 -7
  268. package/src/components/shared/delivery/delivery-table.tsx +3 -3
  269. package/src/components/shared/detail-page-skeleton.tsx +11 -5
  270. package/src/components/shared/dev-section/dev-card-row.tsx +6 -6
  271. package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
  272. package/src/components/shared/product-release/product-release-card-skeleton.tsx +8 -8
  273. package/src/components/shared/product-release/product-release-card.tsx +9 -9
  274. package/src/components/shared/product-release/product-releases-view.tsx +1 -1
  275. package/src/components/shared/product-release/release-detail-page.tsx +5 -5
  276. package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +1 -1
  277. package/src/components/shared/roadmap/roadmap-grid.tsx +3 -3
  278. package/src/components/tickets/help-center-card.tsx +1 -1
  279. package/src/components/tickets/help-center-create-form.tsx +12 -12
  280. package/src/components/ui/announcement-bar-view.tsx +2 -10
  281. package/src/components/ui/benefit-card.tsx +18 -18
  282. package/src/components/ui/brand-association-grid.tsx +4 -4
  283. package/src/components/ui/breadcrumb.tsx +4 -1
  284. package/src/components/ui/card.tsx +1 -1
  285. package/src/components/ui/checkbox-block.tsx +9 -7
  286. package/src/components/ui/content-loader.tsx +3 -3
  287. package/src/components/ui/cursor-pagination.tsx +3 -3
  288. package/src/components/ui/dashboard-info-card.tsx +13 -9
  289. package/src/components/ui/data-attribution.tsx +2 -2
  290. package/src/components/ui/data-table/data-table-body.tsx +2 -2
  291. package/src/components/ui/data-table/data-table-header.tsx +15 -15
  292. package/src/components/ui/data-table/data-table-skeleton.tsx +6 -6
  293. package/src/components/ui/data-table/utils.ts +5 -5
  294. package/src/components/ui/dialog.tsx +4 -1
  295. package/src/components/ui/drawer.tsx +43 -189
  296. package/src/components/ui/duration-input.tsx +1 -1
  297. package/src/components/ui/entity-image.tsx +3 -3
  298. package/src/components/ui/feature-card.tsx +10 -10
  299. package/src/components/ui/file-manager/file-manager-action-bar.tsx +1 -1
  300. package/src/components/ui/file-manager/file-manager.tsx +1 -1
  301. package/src/components/ui/filter-modal.tsx +8 -1
  302. package/src/components/ui/highlight-card.tsx +7 -7
  303. package/src/components/ui/info-card-row.tsx +10 -6
  304. package/src/components/ui/modal-v2.tsx +7 -2
  305. package/src/components/ui/modal.tsx +3 -2
  306. package/src/components/ui/no-data/no-data-actions.tsx +10 -4
  307. package/src/components/ui/no-data/no-data-styles.ts +1 -1
  308. package/src/components/ui/no-data/no-data.tsx +1 -1
  309. package/src/components/ui/organization-card.tsx +1 -1
  310. package/src/components/ui/page-actions.tsx +34 -5
  311. package/src/components/ui/panel-resize-handle.tsx +184 -0
  312. package/src/components/ui/progress-bar.tsx +2 -2
  313. package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
  314. package/src/components/ui/search-input.tsx +2 -2
  315. package/src/components/ui/service-card.tsx +2 -2
  316. package/src/components/ui/sheet.tsx +2 -1
  317. package/src/components/ui/skeleton.tsx +3 -3
  318. package/src/components/ui/stacked-rows-panel.tsx +4 -4
  319. package/src/components/ui/tab-navigation.tsx +2 -2
  320. package/src/components/ui/tab-selector.tsx +2 -2
  321. package/src/components/ui/table/table-header.tsx +3 -3
  322. package/src/components/ui/table/table-skeleton.tsx +3 -3
  323. package/src/components/ui/table/utils.ts +5 -5
  324. package/src/components/ui/tag-search-input.tsx +3 -3
  325. package/src/components/ui/tags-manager.tsx +5 -5
  326. package/src/components/ui/test-run.tsx +2 -2
  327. package/src/components/ui/ticket-info-section.tsx +1 -1
  328. package/src/components/ui/ticket-notes-section.tsx +1 -1
  329. package/src/components/ui/ticket-status-config-row.tsx +15 -15
  330. package/src/hooks/ui/index.ts +1 -0
  331. package/src/hooks/ui/use-content-breakpoint.ts +58 -0
  332. package/src/hooks/ui/use-media-query.ts +3 -2
  333. package/src/hooks/ui/use-resizable-panel-size.ts +114 -0
  334. package/src/styles/index.css +2 -0
  335. package/src/styles/layout-steps.ts +14 -0
  336. package/src/styles/ods-colors.css +15 -0
  337. package/src/styles/ods-content-area-tokens.css +27 -0
  338. package/src/styles/ods-content-area.css +31 -0
  339. package/src/styles/ods-effects.css +4 -2
  340. package/src/styles/ods-responsive-tokens.css +14 -4
  341. package/tailwind.config.ts +42 -7
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  Pagination
4
- } from "./chunk-HUMWQMCU.js";
4
+ } from "./chunk-UT4YHQZW.js";
5
5
  import {
6
6
  withQuery
7
- } from "./chunk-Q76ZTHNV.js";
7
+ } from "./chunk-MP2C3LJ4.js";
8
8
  import {
9
9
  usePathname,
10
10
  useRouter,
@@ -126,10 +126,10 @@ function EmptyState({
126
126
  const displayDescription = description || defaultContent.description;
127
127
  const smartCTA = ctaHref ? null : getSmartCTA();
128
128
  const ctaButtonVariant = ctaVariant === "primary" ? "accent" : "outline";
129
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center px-6 py-6 text-center md:py-16", children: [
130
- /* @__PURE__ */ jsx("div", { className: "mb-3 flex items-center justify-center md:mb-6", children: /* @__PURE__ */ jsx("div", { className: "rounded-full border border-ods-border bg-ods-card p-3 md:p-6", children: /* @__PURE__ */ jsx("div", { className: "flex h-8 w-8 items-center justify-center text-ods-text-secondary md:h-16 md:w-16", children: defaultContent.icon }) }) }),
131
- /* @__PURE__ */ jsx("h2", { className: "mb-2 text-ods-text-primary text-h3 md:mb-3", children: displayTitle }),
132
- /* @__PURE__ */ jsx("p", { className: "mb-4 max-w-md text-ods-text-secondary text-h6 md:mb-8", children: displayDescription }),
129
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center px-6 py-6 text-center content-md:py-16", children: [
130
+ /* @__PURE__ */ jsx("div", { className: "mb-3 flex items-center justify-center content-md:mb-6", children: /* @__PURE__ */ jsx("div", { className: "rounded-full border border-ods-border bg-ods-card p-3 content-md:p-6", children: /* @__PURE__ */ jsx("div", { className: "flex h-8 w-8 items-center justify-center text-ods-text-secondary content-md:h-16 content-md:w-16", children: defaultContent.icon }) }) }),
131
+ /* @__PURE__ */ jsx("h2", { className: "mb-2 text-ods-text-primary text-h3 content-md:mb-3", children: displayTitle }),
132
+ /* @__PURE__ */ jsx("p", { className: "mb-4 max-w-md text-ods-text-secondary text-h6 content-md:mb-8", children: displayDescription }),
133
133
  showCTA && ctaHref && /* @__PURE__ */ jsx("div", { className: "mb-3 w-full max-w-xs", children: /* @__PURE__ */ jsx(Button, { href: ctaHref, variant: ctaButtonVariant, className: "w-full", children: ctaText || "Contact us" }) }),
134
134
  showCTA && !ctaHref && smartCTA && /* @__PURE__ */ jsx("div", { className: "mb-3 w-full max-w-xs", children: /* @__PURE__ */ jsx(Button, { onClick: smartCTA.action, variant: ctaButtonVariant, className: "w-full", children: smartCTA.text }) }),
135
135
  showBackButton && onGoBack && /* @__PURE__ */ jsx("div", { className: "w-full max-w-xs", children: /* @__PURE__ */ jsx(
@@ -9,7 +9,7 @@ var _chunkMZ4KBSH7cjs = require('./chunk-MZ4KBSH7.cjs');
9
9
 
10
10
 
11
11
 
12
- var _chunk4OGAXAEGcjs = require('./chunk-4OGAXAEG.cjs');
12
+ var _chunkABU3TGXAcjs = require('./chunk-ABU3TGXA.cjs');
13
13
 
14
14
 
15
15
 
@@ -18,9 +18,7 @@ var _chunk4OGAXAEGcjs = require('./chunk-4OGAXAEG.cjs');
18
18
 
19
19
 
20
20
 
21
-
22
-
23
- var _chunkIIMICN7Lcjs = require('./chunk-IIMICN7L.cjs');
21
+ var _chunkC3BWIU7Rcjs = require('./chunk-C3BWIU7R.cjs');
24
22
 
25
23
 
26
24
 
@@ -37,7 +35,9 @@ var _chunkN3COXDBHcjs = require('./chunk-N3COXDBH.cjs');
37
35
 
38
36
 
39
37
 
40
- var _chunkMDBHZBW7cjs = require('./chunk-MDBHZBW7.cjs');
38
+
39
+
40
+ var _chunkRKV5B7EUcjs = require('./chunk-RKV5B7EU.cjs');
41
41
 
42
42
 
43
43
 
@@ -145,9 +145,9 @@ function useDeferredError(error, value, delay = 1500) {
145
145
  }
146
146
 
147
147
  // src/hooks/ui/use-drag-and-drop-enabled.ts
148
- var DRAG_AND_DROP_MEDIA_QUERY = `(pointer: fine) and (hover: hover) and ${_chunkIIMICN7Lcjs.breakpoints.md}`;
148
+ var DRAG_AND_DROP_MEDIA_QUERY = `(pointer: fine) and (hover: hover) and ${_chunkRKV5B7EUcjs.breakpoints.md}`;
149
149
  function useDragAndDropEnabled() {
150
- return _nullishCoalesce(_chunkIIMICN7Lcjs.useMediaQuery.call(void 0, DRAG_AND_DROP_MEDIA_QUERY), () => ( false));
150
+ return _nullishCoalesce(_chunkRKV5B7EUcjs.useMediaQuery.call(void 0, DRAG_AND_DROP_MEDIA_QUERY), () => ( false));
151
151
  }
152
152
 
153
153
  // src/hooks/ui/use-focus-trap.ts
@@ -483,7 +483,7 @@ function useLocalStorage(key, initialValue, options) {
483
483
  });
484
484
  const validate = _optionalChain([options, 'optionalAccess', _17 => _17.validate]);
485
485
  const storage = _react.useMemo.call(void 0,
486
- () => _chunkMDBHZBW7cjs.createLocalStorageAdapter.call(void 0, { key, validate, logTag: `[useLocalStorage:${key}]` }),
486
+ () => _chunkRKV5B7EUcjs.createLocalStorageAdapter.call(void 0, { key, validate, logTag: `[useLocalStorage:${key}]` }),
487
487
  [key, validate]
488
488
  );
489
489
  const [storedValue, setStoredValue] = _react.useState.call(void 0, () => _nullishCoalesce(storage.load(), () => ( initialValue)));
@@ -767,7 +767,7 @@ function useSearch(config) {
767
767
  searchFnRef.current = searchFn;
768
768
  mapResultRef.current = mapResult;
769
769
  });
770
- const debouncedQuery = _chunkIIMICN7Lcjs.useDebounce.call(void 0, query, debounceMs);
770
+ const debouncedQuery = _chunkC3BWIU7Rcjs.useDebounce.call(void 0, query, debounceMs);
771
771
  const clearResults = _react.useCallback.call(void 0, () => {
772
772
  setResults(NO_RESULTS);
773
773
  setError(null);
@@ -904,7 +904,7 @@ var _overlays = require('@react-aria/overlays');
904
904
  var _lucidereact = require('lucide-react');
905
905
  var _jsxruntime = require('react/jsx-runtime');
906
906
  function renderPlatformIcon(platformName, className) {
907
- const tinted = _chunk3ATAYP36cjs.cn.call(void 0, className, _chunkMDBHZBW7cjs.getPlatformBrandClasses.call(void 0, platformName).accentText);
907
+ const tinted = _chunk3ATAYP36cjs.cn.call(void 0, className, _chunkRKV5B7EUcjs.getPlatformBrandClasses.call(void 0, platformName).accentText);
908
908
  switch (platformName) {
909
909
  case "openframe":
910
910
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -972,7 +972,7 @@ function getPlatformIconComponent(platformName, className = "h-6 w-6") {
972
972
  return renderPlatformIcon(platformName, className);
973
973
  }
974
974
  function getPlatformColorClass(platformName) {
975
- return _chunkMDBHZBW7cjs.getPlatformBrandClasses.call(void 0, platformName).accentBg;
975
+ return _chunkRKV5B7EUcjs.getPlatformBrandClasses.call(void 0, platformName).accentBg;
976
976
  }
977
977
 
978
978
  // src/hooks/platform/use-platform-config.ts
@@ -1238,7 +1238,7 @@ function CommandApprovalToast({
1238
1238
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "overflow-hidden", children: [
1239
1239
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-11 w-full items-center gap-2 border-b border-ods-border bg-ods-card px-3 py-2", children: [
1240
1240
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-w-0 flex-1 truncate text-ods-text-primary text-h6", title: command, children: command }),
1241
- toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIIMICN7Lcjs.ToolIcon, { toolType, size: 16 }) : null
1241
+ toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC3BWIU7Rcjs.ToolIcon, { toolType, size: 16 }) : null
1242
1242
  ] }),
1243
1243
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2 bg-ods-bg p-3", children: [
1244
1244
  approvalDescription ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: approvalDescription }) : null,
@@ -1411,7 +1411,7 @@ function useContactSubmission(options = {}) {
1411
1411
  if (isSubmitting) return;
1412
1412
  setIsSubmitting(true);
1413
1413
  try {
1414
- const response = await _chunk4OGAXAEGcjs.contentFetch.call(void 0, contactUrl, {
1414
+ const response = await _chunkABU3TGXAcjs.contentFetch.call(void 0, contactUrl, {
1415
1415
  method: "POST",
1416
1416
  headers: { "Content-Type": "application/json" },
1417
1417
  body: JSON.stringify({
@@ -1421,7 +1421,7 @@ function useContactSubmission(options = {}) {
1421
1421
  });
1422
1422
  if (!response.ok) {
1423
1423
  const failure = await response.json().catch(() => null);
1424
- throw new Error(_chunkIIMICN7Lcjs.apiErrorMessage.call(void 0, failure, "Failed to submit contact form"));
1424
+ throw new Error(_chunkC3BWIU7Rcjs.apiErrorMessage.call(void 0, failure, "Failed to submit contact form"));
1425
1425
  }
1426
1426
  setIsSuccess(true);
1427
1427
  const message = successToastMessage ? `Thank you! Your message has been sent. ${successToastMessage}` : "Thank you! Your message has been sent successfully.";
@@ -2106,7 +2106,7 @@ function variablesToUrlParams(variables, schema) {
2106
2106
  const params = new URLSearchParams();
2107
2107
  for (const [paramName, paramConfig] of Object.entries(schema)) {
2108
2108
  const value = getNestedValue(variables, paramConfig.graphqlPath);
2109
- if (!_chunk4OGAXAEGcjs.shouldIncludeInUrl.call(void 0, value, paramConfig)) {
2109
+ if (!_chunkABU3TGXAcjs.shouldIncludeInUrl.call(void 0, value, paramConfig)) {
2110
2110
  continue;
2111
2111
  }
2112
2112
  if (Array.isArray(value)) {
@@ -2135,7 +2135,7 @@ function coerceScalar(value, type) {
2135
2135
  return isNaN(num) ? null : num;
2136
2136
  }
2137
2137
  case "int":
2138
- return _chunk4OGAXAEGcjs.positiveInt.call(void 0, value, null);
2138
+ return _chunkABU3TGXAcjs.positiveInt.call(void 0, value, null);
2139
2139
  case "boolean":
2140
2140
  return value === "true" || value === "1";
2141
2141
  case "string":
@@ -2441,7 +2441,7 @@ function useApiParams(schema, options = {}) {
2441
2441
  return flattened;
2442
2442
  }, [stableSchema]);
2443
2443
  const rawParams = _react.useMemo.call(void 0, () => {
2444
- const result = _chunk4OGAXAEGcjs.parseSchemaParams.call(void 0, stableSchema, new URLSearchParams(searchString), {
2444
+ const result = _chunkABU3TGXAcjs.parseSchemaParams.call(void 0, stableSchema, new URLSearchParams(searchString), {
2445
2445
  absent: options.absent === "null" ? "null" : "undefined"
2446
2446
  });
2447
2447
  if (debug) {
@@ -2457,14 +2457,14 @@ function useApiParams(schema, options = {}) {
2457
2457
  }
2458
2458
  const params = stableParams;
2459
2459
  const addParamToSearchParams = _react.useCallback.call(void 0, (searchParams, key, value) => {
2460
- for (const [k, v] of _chunk4OGAXAEGcjs.createSearchParams.call(void 0, { [key]: value })) searchParams.append(k, v);
2460
+ for (const [k, v] of _chunkABU3TGXAcjs.createSearchParams.call(void 0, { [key]: value })) searchParams.append(k, v);
2461
2461
  }, []);
2462
2462
  const urlSearchParams = _react.useMemo.call(void 0, () => {
2463
2463
  const newParams = new URLSearchParams();
2464
2464
  for (const key of Object.keys(stableSchema)) {
2465
2465
  const value = params[key];
2466
2466
  const paramConfig = flattenedSchema[key];
2467
- if (!_chunk4OGAXAEGcjs.shouldIncludeInUrl.call(void 0, value, paramConfig)) {
2467
+ if (!_chunkABU3TGXAcjs.shouldIncludeInUrl.call(void 0, value, paramConfig)) {
2468
2468
  continue;
2469
2469
  }
2470
2470
  addParamToSearchParams(newParams, key, value);
@@ -2521,7 +2521,7 @@ function useApiParams(schema, options = {}) {
2521
2521
  return;
2522
2522
  }
2523
2523
  const newParams = new URLSearchParams();
2524
- if (_chunk4OGAXAEGcjs.shouldIncludeInUrl.call(void 0, value, config)) {
2524
+ if (_chunkABU3TGXAcjs.shouldIncludeInUrl.call(void 0, value, config)) {
2525
2525
  addParamToSearchParams(newParams, key, value);
2526
2526
  updateUrl(newParams);
2527
2527
  } else {
@@ -2540,7 +2540,7 @@ function useApiParams(schema, options = {}) {
2540
2540
  console.warn(`[useApiParams] Unknown parameter: ${key}`);
2541
2541
  continue;
2542
2542
  }
2543
- if (_chunk4OGAXAEGcjs.shouldIncludeInUrl.call(void 0, value, flattenedSchema[key])) {
2543
+ if (_chunkABU3TGXAcjs.shouldIncludeInUrl.call(void 0, value, flattenedSchema[key])) {
2544
2544
  addParamToSearchParams(newParams, key, value);
2545
2545
  } else {
2546
2546
  keysToRemove.push(key);
@@ -2565,7 +2565,7 @@ function useApiParams(schema, options = {}) {
2565
2565
  }, [router, debug]);
2566
2566
  const pendingParams = _react.useMemo.call(void 0, () => {
2567
2567
  if (pendingTail === void 0 || pendingTail === searchString) return params;
2568
- return _chunk4OGAXAEGcjs.parseSchemaParams.call(void 0, stableSchema, new URLSearchParams(pendingTail), {
2568
+ return _chunkABU3TGXAcjs.parseSchemaParams.call(void 0, stableSchema, new URLSearchParams(pendingTail), {
2569
2569
  absent: options.absent === "null" ? "null" : "undefined"
2570
2570
  });
2571
2571
  }, [pendingTail, searchString, params, stableSchema, options.absent]);
@@ -2736,7 +2736,7 @@ function useScenarioPlayer({
2736
2736
  initialScenario = 0,
2737
2737
  startAtEnd = false
2738
2738
  }) {
2739
- const auto = _chunkIIMICN7Lcjs.useAutoplay.call(void 0, enabled);
2739
+ const auto = _chunkC3BWIU7Rcjs.useAutoplay.call(void 0, enabled);
2740
2740
  const { reducedMotion, paused, setPaused } = auto;
2741
2741
  const [scenario, setScenario] = _react.useState.call(void 0, initialScenario);
2742
2742
  const [rawStep, setRawStep] = _react.useState.call(void 0, startAtEnd ? Number.MAX_SAFE_INTEGER : 0);
@@ -2798,7 +2798,7 @@ async function validateAccessCode(email, code, endpoints) {
2798
2798
  });
2799
2799
  if (!response.ok) {
2800
2800
  const failure = await response.json().catch(() => null);
2801
- throw new Error(_chunkIIMICN7Lcjs.apiErrorMessage.call(void 0, failure, "Validation request failed"));
2801
+ throw new Error(_chunkC3BWIU7Rcjs.apiErrorMessage.call(void 0, failure, "Validation request failed"));
2802
2802
  }
2803
2803
  return await response.json();
2804
2804
  } catch (error) {
@@ -2819,7 +2819,7 @@ async function consumeAccessCode(email, code, endpoints) {
2819
2819
  });
2820
2820
  if (!response.ok) {
2821
2821
  const failure = await response.json().catch(() => null);
2822
- throw new Error(_chunkIIMICN7Lcjs.apiErrorMessage.call(void 0, failure, "Consumption request failed"));
2822
+ throw new Error(_chunkC3BWIU7Rcjs.apiErrorMessage.call(void 0, failure, "Consumption request failed"));
2823
2823
  }
2824
2824
  return await response.json();
2825
2825
  } catch (error) {
@@ -3020,15 +3020,15 @@ function useScrollToHash(readyDep = true, options) {
3020
3020
  }
3021
3021
  };
3022
3022
  const tryScrollToHash = () => {
3023
- const hash = _chunkIIMICN7Lcjs.normalizeHashFragment.call(void 0, window.location.hash).slice(1);
3023
+ const hash = _chunkC3BWIU7Rcjs.normalizeHashFragment.call(void 0, window.location.hash).slice(1);
3024
3024
  if (!hash) return;
3025
3025
  cancelPoll();
3026
3026
  let frames = 0;
3027
3027
  const tick = () => {
3028
- const el = _chunkIIMICN7Lcjs.getHashTargetElement.call(void 0, hash);
3028
+ const el = _chunkC3BWIU7Rcjs.getHashTargetElement.call(void 0, hash);
3029
3029
  if (el) {
3030
3030
  rafId = null;
3031
- _chunkIIMICN7Lcjs.scrollElementIntoView.call(void 0, el, { headerOffset });
3031
+ _chunkC3BWIU7Rcjs.scrollElementIntoView.call(void 0, el, { headerOffset });
3032
3032
  return;
3033
3033
  }
3034
3034
  if (frames++ < MAX_POLL_FRAMES) {
@@ -3376,7 +3376,7 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
3376
3376
  ...resumeTokenRef.current ? { resume_token: resumeTokenRef.current } : {}
3377
3377
  };
3378
3378
  try {
3379
- void _chunk4OGAXAEGcjs.contentFetch.call(void 0, draftsUrl, {
3379
+ void _chunkABU3TGXAcjs.contentFetch.call(void 0, draftsUrl, {
3380
3380
  method: "POST",
3381
3381
  headers: { "Content-Type": "application/json" },
3382
3382
  body: JSON.stringify({ ...body, ..._nullishCoalesce(_optionalChain([getSignalsRef, 'access', _68 => _68.current, 'optionalCall', _69 => _69()]), () => ( {})) }),
@@ -3405,7 +3405,7 @@ function useFormRescue({ form, fieldNames, onRestore, getSignals }) {
3405
3405
  if (Object.keys(local.values).length) _optionalChain([onRestoreRef, 'access', _70 => _70.current, 'optionalCall', _71 => _71(local.values)]);
3406
3406
  };
3407
3407
  if (isResumeToken(token) && draftsUrl) {
3408
- _chunk4OGAXAEGcjs.contentFetch.call(void 0, `${draftsUrl}/resume/${encodeURIComponent(token)}`).then(async (res) => res.ok ? await res.json() : null).then((data) => {
3408
+ _chunkABU3TGXAcjs.contentFetch.call(void 0, `${draftsUrl}/resume/${encodeURIComponent(token)}`).then(async (res) => res.ok ? await res.json() : null).then((data) => {
3409
3409
  if (cancelled) return;
3410
3410
  if (!data || data.form_id !== formId) {
3411
3411
  restoreLocal();
@@ -2,14 +2,14 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkFHM7GD5Bcjs = require('./chunk-FHM7GD5B.cjs');
5
+ var _chunkUK62YTH6cjs = require('./chunk-UK62YTH6.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkASN65P3Fcjs = require('./chunk-ASN65P3F.cjs');
9
+ var _chunk4DQMTBMKcjs = require('./chunk-4DQMTBMK.cjs');
10
10
 
11
11
 
12
- var _chunkXCIFHW4Ecjs = require('./chunk-XCIFHW4E.cjs');
12
+ var _chunkXOYH2YQEcjs = require('./chunk-XOYH2YQE.cjs');
13
13
 
14
14
 
15
15
 
@@ -18,13 +18,13 @@ var _chunkXCIFHW4Ecjs = require('./chunk-XCIFHW4E.cjs');
18
18
 
19
19
 
20
20
 
21
- var _chunkFD4DBTFOcjs = require('./chunk-FD4DBTFO.cjs');
21
+ var _chunkLTSTC3N5cjs = require('./chunk-LTSTC3N5.cjs');
22
22
 
23
23
 
24
24
 
25
25
 
26
26
 
27
- var _chunkRTGPIHVOcjs = require('./chunk-RTGPIHVO.cjs');
27
+ var _chunkLDPEQGKTcjs = require('./chunk-LDPEQGKT.cjs');
28
28
 
29
29
 
30
30
 
@@ -34,10 +34,10 @@ var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
34
34
 
35
35
 
36
36
 
37
- var _chunkEMCQGFXDcjs = require('./chunk-EMCQGFXD.cjs');
37
+ var _chunkMMOODW57cjs = require('./chunk-MMOODW57.cjs');
38
38
 
39
39
 
40
- var _chunkMDBHZBW7cjs = require('./chunk-MDBHZBW7.cjs');
40
+ var _chunkRKV5B7EUcjs = require('./chunk-RKV5B7EU.cjs');
41
41
 
42
42
 
43
43
  var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
@@ -62,7 +62,7 @@ function OnboardingGuidesCatalogSkeleton() {
62
62
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-6 w-40 rounded bg-ods-border/70" }),
63
63
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-5 w-8 rounded-full bg-ods-text-secondary/20" })
64
64
  ] }),
65
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMCQGFXDcjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
65
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMMOODW57cjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
66
66
  ] }, sectionIdx)) })
67
67
  ] });
68
68
  }
@@ -86,10 +86,10 @@ function OnboardingGuidesCatalogView({
86
86
  const sectionValue = selfFetch ? _nullishCoalesce(searchParams.get("section"), () => ( "")) : initialSection;
87
87
  const activeSection = sectionValue || "all";
88
88
  const guidesQs = sectionValue ? `?section=${encodeURIComponent(sectionValue)}` : "";
89
- const guidesRes = _chunkXCIFHW4Ecjs.useSelfFetch.call(void 0,
89
+ const guidesRes = _chunkXOYH2YQEcjs.useSelfFetch.call(void 0,
90
90
  selfFetch && guidesEndpoint ? `${guidesEndpoint}${guidesQs}` : null
91
91
  );
92
- const sectionsRes = _chunkXCIFHW4Ecjs.useSelfFetch.call(void 0, selfFetch && sectionsEndpoint ? sectionsEndpoint : null);
92
+ const sectionsRes = _chunkXOYH2YQEcjs.useSelfFetch.call(void 0, selfFetch && sectionsEndpoint ? sectionsEndpoint : null);
93
93
  const guides = _react.useMemo.call(void 0, () => _nullishCoalesce(_nullishCoalesce(initialGuides, () => ( _optionalChain([guidesRes, 'access', _2 => _2.data, 'optionalAccess', _3 => _3.data]))), () => ( [])), [initialGuides, _optionalChain([guidesRes, 'access', _4 => _4.data, 'optionalAccess', _5 => _5.data])]);
94
94
  const sections = _react.useMemo.call(void 0,
95
95
  () => _nullishCoalesce(initialSections, () => ( (Array.isArray(sectionsRes.data) ? sectionsRes.data : []))),
@@ -132,25 +132,25 @@ function OnboardingGuidesCatalogView({
132
132
  });
133
133
  };
134
134
  const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _6 => _6.source]), () => ( "openframe"));
135
- const docSearch = _chunkASN65P3Fcjs.useDocSearch.call(void 0, {
135
+ const docSearch = _chunk4DQMTBMKcjs.useDocSearch.call(void 0, {
136
136
  source,
137
137
  baseRoute: basePath,
138
138
  onNavigate: (path) => router.push(path),
139
139
  tableIds: ["onboarding-guides"]
140
140
  });
141
141
  const defaultRenderCard = (guide) => {
142
- const cta = _chunkFD4DBTFOcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
142
+ const cta = _chunkLTSTC3N5cjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
143
143
  type: "onboarding_guide",
144
144
  slug: guide.slug,
145
145
  basePath,
146
146
  platforms: guide.onboarding_guide_platforms
147
147
  });
148
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMCQGFXDcjs.OnboardingGuideCard, { guide, href: cta.href, targetPlatform: cta.targetPlatform, size: "catalog" });
148
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMMOODW57cjs.OnboardingGuideCard, { guide, href: cta.href, targetPlatform: cta.targetPlatform, size: "catalog" });
149
149
  };
150
150
  const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
151
151
  const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
152
152
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
153
- _chunkASN65P3Fcjs.DocSearchBar,
153
+ _chunk4DQMTBMKcjs.DocSearchBar,
154
154
  {
155
155
  placeholder: "Search onboarding guides, releases, case studies\u2026",
156
156
  query: docSearch.query,
@@ -162,7 +162,7 @@ function OnboardingGuidesCatalogView({
162
162
  }
163
163
  ),
164
164
  sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
165
- _chunkFD4DBTFOcjs.FilterPillRow,
165
+ _chunkLTSTC3N5cjs.FilterPillRow,
166
166
  {
167
167
  label: "Section",
168
168
  selectedValue: activeSection,
@@ -172,7 +172,7 @@ function OnboardingGuidesCatalogView({
172
172
  )
173
173
  ] });
174
174
  if (selfFetch && guidesRes.error) {
175
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
175
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLTSTC3N5cjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
176
176
  }
177
177
  if (selfFetch && guidesRes.data == null && isLoading) {
178
178
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
@@ -204,7 +204,7 @@ function OnboardingGuideDetailView({
204
204
  slug,
205
205
  guideEndpoint,
206
206
  related = [],
207
- MarkdownRenderer = _chunkFD4DBTFOcjs.RichMarkdownRenderer,
207
+ MarkdownRenderer = _chunkLTSTC3N5cjs.RichMarkdownRenderer,
208
208
  renderRelatedCard,
209
209
  backHref,
210
210
  backLabel = "Back to Getting Started",
@@ -214,51 +214,51 @@ function OnboardingGuideDetailView({
214
214
  }) {
215
215
  const resolvedBackHref = _nullishCoalesce(backHref, () => ( basePath));
216
216
  const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
217
- const captions = _chunkRTGPIHVOcjs.useCaptions.call(void 0, );
217
+ const captions = _chunkLDPEQGKTcjs.useCaptions.call(void 0, );
218
218
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
219
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
219
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLTSTC3N5cjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
220
220
  const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
221
- const { data: guide, isLoading, error, reload } = _chunkXCIFHW4Ecjs.useSelfFetch.call(void 0, url, { initialData });
222
- const { ref: videoWarmupRef } = _chunkRTGPIHVOcjs.useVideoWarmup.call(void 0, {
221
+ const { data: guide, isLoading, error, reload } = _chunkXOYH2YQEcjs.useSelfFetch.call(void 0, url, { initialData });
222
+ const { ref: videoWarmupRef } = _chunkLDPEQGKTcjs.useVideoWarmup.call(void 0, {
223
223
  videoUrl: _optionalChain([guide, 'optionalAccess', _8 => _8.main_video_url]),
224
224
  supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints, 'access', _10 => _10.supabaseStorageOrigin])
225
225
  });
226
226
  if (error || !guide && !isLoading) {
227
- return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
227
+ return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLTSTC3N5cjs.LoadError, { message: "Guide not found.", onRetry: reload }));
228
228
  }
229
229
  if (!guide) {
230
230
  return renderShell(
231
231
  // Match the loaded page's top offset (TitleBlock's
232
232
  // `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
233
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFHM7GD5Bcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
233
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUK62YTH6cjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
234
234
  );
235
235
  }
236
236
  const { captionsUrl, highlightCaptionsUrl } = captions.forEntity("onboarding_guide", guide);
237
237
  const videoPoster = guide.main_video_thumbnail || guide.featured_image || guide.og_image_url || // `buildOgPlaceholderUrl` always returns a usable string (relative route at
238
238
  // worst), so it's the terminal fallback — no trailing `|| undefined` needed.
239
- _chunkMDBHZBW7cjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _11 => _11.endpoints]), guide.title, { aspect: "wide" });
239
+ _chunkRKV5B7EUcjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _11 => _11.endpoints]), guide.title, { aspect: "wide" });
240
240
  const defaultRenderRelatedCard = (g) => {
241
- const cta = _chunkFD4DBTFOcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
241
+ const cta = _chunkLTSTC3N5cjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
242
242
  type: "onboarding_guide",
243
243
  slug: g.slug,
244
244
  basePath,
245
245
  platforms: g.onboarding_guide_platforms
246
246
  });
247
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMCQGFXDcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
247
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMMOODW57cjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
248
248
  };
249
249
  const renderRelatedCardFn = _nullishCoalesce(renderRelatedCard, () => ( defaultRenderRelatedCard));
250
250
  return renderShell(
251
251
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
252
- _chunkFD4DBTFOcjs.PageLayout,
252
+ _chunkLTSTC3N5cjs.PageLayout,
253
253
  {
254
254
  title: guide.title,
255
255
  titleSize: "h1",
256
256
  titleWrap: true,
257
257
  backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) },
258
258
  children: [
259
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
259
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLTSTC3N5cjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
260
260
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
261
- _chunkEMCQGFXDcjs.EntityAuthorCard,
261
+ _chunkMMOODW57cjs.EntityAuthorCard,
262
262
  {
263
263
  author: guide.author,
264
264
  authorHref,
@@ -273,7 +273,7 @@ function OnboardingGuideDetailView({
273
273
  }
274
274
  ),
275
275
  (guide.main_video_url || guide.youtube_url) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: videoWarmupRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
276
- _chunkRTGPIHVOcjs.EntityVideoSection,
276
+ _chunkLDPEQGKTcjs.EntityVideoSection,
277
277
  {
278
278
  mainVideoUrl: guide.main_video_url,
279
279
  youtubeUrl: guide.youtube_url || void 0,
@@ -291,17 +291,17 @@ function OnboardingGuideDetailView({
291
291
  ) }),
292
292
  guide.content && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: guide.content }) }),
293
293
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
294
- _chunkRTGPIHVOcjs.VideoBitesStrip,
294
+ _chunkLDPEQGKTcjs.VideoBitesStrip,
295
295
  {
296
296
  bites: _nullishCoalesce(guide.video_bites, () => ( [])),
297
297
  filterPublished: true,
298
298
  showTitle: false,
299
- profile: _chunkEMCQGFXDcjs.toStripProfile.call(void 0, guide.author),
299
+ profile: _chunkMMOODW57cjs.toStripProfile.call(void 0, guide.author),
300
300
  href: `/onboarding-guides/${guide.slug}`
301
301
  }
302
302
  ),
303
303
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
304
- _chunkFHM7GD5Bcjs.ArticleAuthorByline,
304
+ _chunkUK62YTH6cjs.ArticleAuthorByline,
305
305
  {
306
306
  author: _nullishCoalesce(_optionalChain([guide, 'access', _13 => _13.author, 'optionalAccess', _14 => _14.full_name]), () => ( null)),
307
307
  avatar: _optionalChain([guide, 'access', _15 => _15.author, 'optionalAccess', _16 => _16.avatar_url]),