@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
@@ -3,14 +3,64 @@ import {
3
3
  useChatRuntime
4
4
  } from "./chunk-E4ABZWTJ.js";
5
5
 
6
+ // src/hooks/ui/use-isomorphic-layout-effect.ts
7
+ import { useEffect, useLayoutEffect } from "react";
8
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
9
+
10
+ // src/hooks/ui/use-media-query.ts
11
+ import { useState } from "react";
12
+
13
+ // src/styles/layout-steps.ts
14
+ var LAYOUT_STEPS = {
15
+ sm: { viewport: 640, content: 640 },
16
+ md: { viewport: 800, content: 720 },
17
+ lg: { viewport: 1280, content: 1024 },
18
+ xl: { viewport: 1440, content: 1216 },
19
+ "2xl": { viewport: 1536, content: 1312 }
20
+ };
21
+
22
+ // src/hooks/ui/use-media-query.ts
23
+ function useMediaQuery(query) {
24
+ const [matches, setMatches] = useState(void 0);
25
+ useIsomorphicLayoutEffect(() => {
26
+ const matchMedia = window.matchMedia(query);
27
+ const handleChange = () => {
28
+ setMatches(matchMedia.matches);
29
+ };
30
+ handleChange();
31
+ matchMedia.addEventListener("change", handleChange);
32
+ return () => {
33
+ matchMedia.removeEventListener("change", handleChange);
34
+ };
35
+ }, [query]);
36
+ return matches;
37
+ }
38
+ var breakpoints = {
39
+ md: `(min-width: ${LAYOUT_STEPS.md.viewport}px)`,
40
+ // Tablet
41
+ lg: `(min-width: ${LAYOUT_STEPS.lg.viewport}px)`
42
+ // Desktop
43
+ };
44
+ function useSmUp() {
45
+ return useMdUp();
46
+ }
47
+ function useMdUp() {
48
+ const matches = useMediaQuery(breakpoints.md);
49
+ return matches === void 0 ? void 0 : matches;
50
+ }
51
+ function useLgUp() {
52
+ const matches = useMediaQuery(breakpoints.lg);
53
+ return matches === void 0 ? void 0 : matches;
54
+ }
55
+
6
56
  // src/hooks/ui/use-is-truncated.ts
7
- import { useCallback, useEffect, useState } from "react";
57
+ import { useCallback, useEffect as useEffect2, useState as useState2 } from "react";
8
58
  function useIsTruncated(value, options) {
9
59
  const multiline = options?.multiline ?? false;
10
- const [element, setElement] = useState(null);
11
- const [isTruncated, setIsTruncated] = useState(false);
60
+ const [element, setElement] = useState2(null);
61
+ const [isTruncated, setIsTruncated] = useState2(false);
12
62
  const ref = useCallback((node) => setElement(node), []);
13
- useEffect(() => {
63
+ useEffect2(() => {
14
64
  if (!element) return void 0;
15
65
  const check = () => {
16
66
  setIsTruncated(
@@ -25,12 +75,38 @@ function useIsTruncated(value, options) {
25
75
  return { ref, isTruncated: element ? isTruncated : false };
26
76
  }
27
77
 
28
- // src/hooks/ui/use-isomorphic-layout-effect.ts
29
- import { useEffect as useEffect2, useLayoutEffect } from "react";
30
- var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect2;
78
+ // src/hooks/ui/use-content-breakpoint.ts
79
+ import { createContext, createElement, useContext } from "react";
80
+ var CONTENT_BREAKPOINTS = { md: LAYOUT_STEPS.md.content, lg: LAYOUT_STEPS.lg.content };
81
+ var ContentAreaWidthContext = createContext(null);
82
+ function ViewportBreakpoints({ children }) {
83
+ return createElement(ContentAreaWidthContext.Provider, { value: null }, children);
84
+ }
85
+ function contentBreakpointFor(width) {
86
+ if (width >= CONTENT_BREAKPOINTS.lg) return "desktop";
87
+ if (width >= CONTENT_BREAKPOINTS.md) return "tablet";
88
+ return "mobile";
89
+ }
90
+ function useContentBreakpoint() {
91
+ const width = useContext(ContentAreaWidthContext);
92
+ const mdUp = useMdUp();
93
+ const lgUp = useLgUp();
94
+ if (width !== null) return contentBreakpointFor(width);
95
+ if (mdUp === void 0) return void 0;
96
+ if (lgUp) return "desktop";
97
+ return mdUp ? "tablet" : "mobile";
98
+ }
99
+ function useContentMdUp() {
100
+ const breakpoint = useContentBreakpoint();
101
+ return breakpoint === void 0 ? void 0 : breakpoint !== "mobile";
102
+ }
103
+ function useContentLgUp() {
104
+ const breakpoint = useContentBreakpoint();
105
+ return breakpoint === void 0 ? void 0 : breakpoint === "desktop";
106
+ }
31
107
 
32
108
  // src/hooks/ui/use-image-edge-color.ts
33
- import { useState as useState2, useEffect as useEffect3 } from "react";
109
+ import { useState as useState3, useEffect as useEffect3 } from "react";
34
110
  function extractEdgeColor(img) {
35
111
  const canvas = document.createElement("canvas");
36
112
  const ctx = canvas.getContext("2d");
@@ -86,8 +162,8 @@ function extractEdgeColor(img) {
86
162
  return `rgb(${r}, ${g}, ${b})`;
87
163
  }
88
164
  function useImageEdgeColor(imageUrl, fallback = "#000000") {
89
- const [color, setColor] = useState2(fallback);
90
- const [resetFor, setResetFor] = useState2({ imageUrl, fallback });
165
+ const [color, setColor] = useState3(fallback);
166
+ const [resetFor, setResetFor] = useState3({ imageUrl, fallback });
91
167
  if (resetFor.imageUrl !== imageUrl || resetFor.fallback !== fallback) {
92
168
  setResetFor({ imageUrl, fallback });
93
169
  if (!imageUrl) setColor(fallback);
@@ -732,8 +808,20 @@ function useOgPlaceholderUrl({
732
808
  }
733
809
 
734
810
  export {
735
- useIsTruncated,
736
811
  useIsomorphicLayoutEffect,
812
+ useMediaQuery,
813
+ breakpoints,
814
+ useSmUp,
815
+ useMdUp,
816
+ useLgUp,
817
+ useIsTruncated,
818
+ CONTENT_BREAKPOINTS,
819
+ ContentAreaWidthContext,
820
+ ViewportBreakpoints,
821
+ contentBreakpointFor,
822
+ useContentBreakpoint,
823
+ useContentMdUp,
824
+ useContentLgUp,
737
825
  useImageEdgeColor,
738
826
  createLocalStorageAdapter,
739
827
  platformDisplayNames,
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
  import {
3
3
  EmbedViewerFrame
4
- } from "./chunk-CZ34HXDW.js";
4
+ } from "./chunk-4KGXLVCF.js";
5
5
  import {
6
6
  toGoogleSheetsEmbedUrl,
7
7
  toGoogleSheetsOriginalUrl
8
- } from "./chunk-KJ5LWATV.js";
8
+ } from "./chunk-IHU5ANUY.js";
9
9
  import {
10
10
  AdobePdfIcon,
11
11
  GoogleSheetsIcon
12
12
  } from "./chunk-Z2VNQQ74.js";
13
13
  import {
14
14
  formatFileSize
15
- } from "./chunk-6YCXA7CN.js";
15
+ } from "./chunk-CH5232HV.js";
16
16
  import {
17
17
  Button
18
18
  } from "./chunk-YDPKUAP4.js";
@@ -59,7 +59,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
59
59
  openInNewTab: true,
60
60
  leftIcon: /* @__PURE__ */ jsx2(GoogleSheetsIcon, { className: "h-4 w-4" }),
61
61
  rightIcon: /* @__PURE__ */ jsx2(ExternalLink, { className: "h-4 w-4" }),
62
- className: "w-full sm:w-auto",
62
+ className: "w-full content-sm:w-auto",
63
63
  children: "Open in Google Sheets"
64
64
  }
65
65
  ),
@@ -85,7 +85,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
85
85
  {
86
86
  icon: /* @__PURE__ */ jsx3(AdobePdfIcon, { className: "h-5 w-5 shrink-0" }),
87
87
  title: displayName,
88
- actions: /* @__PURE__ */ jsxs3("div", { className: "flex w-full items-center gap-2 sm:w-auto", children: [
88
+ actions: /* @__PURE__ */ jsxs3("div", { className: "flex w-full items-center gap-2 content-sm:w-auto", children: [
89
89
  /* @__PURE__ */ jsx3(
90
90
  Button,
91
91
  {
@@ -95,7 +95,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
95
95
  openInNewTab: !onPreview,
96
96
  onClick: onPreview,
97
97
  leftIcon: /* @__PURE__ */ jsx3(Eye, { className: "h-4 w-4" }),
98
- className: "flex-1 sm:flex-initial",
98
+ className: "flex-1 content-sm:flex-initial",
99
99
  children: "Preview"
100
100
  }
101
101
  ),
@@ -108,7 +108,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
108
108
  openInNewTab: !onDownload,
109
109
  onClick: onDownload,
110
110
  leftIcon: /* @__PURE__ */ jsx3(Download2, { className: "h-4 w-4" }),
111
- className: "flex-1 sm:flex-initial",
111
+ className: "flex-1 content-sm:flex-initial",
112
112
  children: "Download"
113
113
  }
114
114
  )
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkBRXOGCH3cjs = require('./chunk-BRXOGCH3.cjs');
4
+ var _chunkBIZNSF3Ucjs = require('./chunk-BIZNSF3U.cjs');
5
5
 
6
6
 
7
- var _chunk4OGAXAEGcjs = require('./chunk-4OGAXAEG.cjs');
7
+ var _chunkABU3TGXAcjs = require('./chunk-ABU3TGXA.cjs');
8
8
 
9
9
 
10
10
 
@@ -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__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center justify-center px-6 py-6 text-center md:py-16", children: [
130
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex items-center justify-center md:mb-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-full border border-ods-border bg-ods-card p-3 md:p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "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__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "mb-2 text-ods-text-primary text-h3 md:mb-3", children: displayTitle }),
132
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mb-4 max-w-md text-ods-text-secondary text-h6 md:mb-8", children: displayDescription }),
129
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center justify-center px-6 py-6 text-center content-md:py-16", children: [
130
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex items-center justify-center content-md:mb-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-full border border-ods-border bg-ods-card p-3 content-md:p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "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__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "mb-2 text-ods-text-primary text-h3 content-md:mb-3", children: displayTitle }),
132
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mb-4 max-w-md text-ods-text-secondary text-h6 content-md:mb-8", children: displayDescription }),
133
133
  showCTA && ctaHref && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 w-full max-w-xs", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDFQYAYBHcjs.Button, { href: ctaHref, variant: ctaButtonVariant, className: "w-full", children: ctaText || "Contact us" }) }),
134
134
  showCTA && !ctaHref && smartCTA && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 w-full max-w-xs", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDFQYAYBHcjs.Button, { onClick: smartCTA.action, variant: ctaButtonVariant, className: "w-full", children: smartCTA.text }) }),
135
135
  showBackButton && onGoBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full max-w-xs", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -164,7 +164,7 @@ function UnifiedPagination({
164
164
  if (syncUrl) {
165
165
  const params = new URLSearchParams(searchParams.toString());
166
166
  params.set("page", page.toString());
167
- window.history.replaceState(null, "", _chunk4OGAXAEGcjs.withQuery.call(void 0, pathname, params.toString()));
167
+ window.history.replaceState(null, "", _chunkABU3TGXAcjs.withQuery.call(void 0, pathname, params.toString()));
168
168
  }
169
169
  setTimeout(() => {
170
170
  window.scrollTo({
@@ -175,10 +175,10 @@ function UnifiedPagination({
175
175
  }, 0);
176
176
  };
177
177
  if (totalPages <= 1) {
178
- return reserveSpace ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, "aria-hidden": "true", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none invisible", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRXOGCH3cjs.Pagination, { currentPage: 1, totalPages: 1, onPageChange: () => {
178
+ return reserveSpace ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, "aria-hidden": "true", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none invisible", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBIZNSF3Ucjs.Pagination, { currentPage: 1, totalPages: 1, onPageChange: () => {
179
179
  } }) }) }) : null;
180
180
  }
181
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRXOGCH3cjs.Pagination, { currentPage, totalPages, onPageChange: handlePageChange }) });
181
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBIZNSF3Ucjs.Pagination, { currentPage, totalPages, onPageChange: handlePageChange }) });
182
182
  }
183
183
 
184
184
 
@@ -1,27 +1,27 @@
1
1
  "use client";
2
2
  import {
3
3
  useSelfFetch
4
- } from "./chunk-5FFNNJM7.js";
4
+ } from "./chunk-VR2ZLFCP.js";
5
5
  import {
6
6
  PageLayout,
7
7
  PageShell
8
- } from "./chunk-CZ34HXDW.js";
8
+ } from "./chunk-4KGXLVCF.js";
9
9
  import {
10
10
  useScrollToHash
11
- } from "./chunk-KJ5LWATV.js";
11
+ } from "./chunk-IHU5ANUY.js";
12
12
  import {
13
13
  buildSuggestionUrl
14
- } from "./chunk-HUMWQMCU.js";
14
+ } from "./chunk-UT4YHQZW.js";
15
15
  import {
16
16
  faqItemAnchor,
17
17
  faqSectionSlug,
18
18
  parseFaqHash
19
- } from "./chunk-6JPQDYYY.js";
19
+ } from "./chunk-2JDVL7UV.js";
20
20
  import {
21
21
  STICKY_HEADER_OFFSET_PX,
22
22
  navigateSamePageHash,
23
23
  serializeJsonLd
24
- } from "./chunk-64O4L7WN.js";
24
+ } from "./chunk-WUJNYGO2.js";
25
25
  import {
26
26
  useRouter
27
27
  } from "./chunk-GY4IZG22.js";
@@ -30,7 +30,7 @@ import {
30
30
  } from "./chunk-Z2VNQQ74.js";
31
31
  import {
32
32
  SECTION_HEADING_CLASS
33
- } from "./chunk-6YCXA7CN.js";
33
+ } from "./chunk-CH5232HV.js";
34
34
  import {
35
35
  cn
36
36
  } from "./chunk-7RXWKTAP.js";
@@ -72,7 +72,7 @@ function FaqAccordion({ items, defaultOpenIds = [] }) {
72
72
  }
73
73
  },
74
74
  "aria-expanded": isOpen,
75
- className: "flex w-full cursor-pointer items-center gap-6 px-6 py-4 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-focus md:gap-10",
75
+ className: "flex w-full cursor-pointer items-center gap-6 px-6 py-4 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-focus content-md:gap-10",
76
76
  children: [
77
77
  /* @__PURE__ */ jsx("h3", { className: "min-w-0 flex-1 break-words", children: item.question }),
78
78
  /* @__PURE__ */ jsx(
@@ -268,8 +268,8 @@ function GroupedFaqList({
268
268
  }
269
269
  function FaqSkeleton() {
270
270
  return /* @__PURE__ */ jsxs2("div", { className: "animate-pulse space-y-8", children: [
271
- /* @__PURE__ */ jsx2("div", { className: "h-12 w-2/3 rounded bg-ods-border md:h-14" }),
272
- /* @__PURE__ */ jsx2("div", { className: "w-full divide-y divide-ods-border overflow-hidden rounded-md border border-ods-border bg-transparent", children: Array.from({ length: 8 }).map((_, idx) => /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between gap-6 px-6 py-4 md:gap-10", children: [
271
+ /* @__PURE__ */ jsx2("div", { className: "h-12 w-2/3 rounded bg-ods-border content-md:h-14" }),
272
+ /* @__PURE__ */ jsx2("div", { className: "w-full divide-y divide-ods-border overflow-hidden rounded-md border border-ods-border bg-transparent", children: Array.from({ length: 8 }).map((_, idx) => /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between gap-6 px-6 py-4 content-md:gap-10", children: [
273
273
  /* @__PURE__ */ jsx2("div", { className: "h-6 w-5/6 rounded bg-ods-border" }),
274
274
  /* @__PURE__ */ jsx2("div", { className: "size-6 rounded bg-ods-border" })
275
275
  ] }, idx)) })
@@ -3,8 +3,58 @@
3
3
 
4
4
  var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
5
5
 
6
- // src/hooks/ui/use-is-truncated.ts
6
+ // src/hooks/ui/use-isomorphic-layout-effect.ts
7
7
  var _react = require('react');
8
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? _react.useLayoutEffect : _react.useEffect;
9
+
10
+ // src/hooks/ui/use-media-query.ts
11
+
12
+
13
+ // src/styles/layout-steps.ts
14
+ var LAYOUT_STEPS = {
15
+ sm: { viewport: 640, content: 640 },
16
+ md: { viewport: 800, content: 720 },
17
+ lg: { viewport: 1280, content: 1024 },
18
+ xl: { viewport: 1440, content: 1216 },
19
+ "2xl": { viewport: 1536, content: 1312 }
20
+ };
21
+
22
+ // src/hooks/ui/use-media-query.ts
23
+ function useMediaQuery(query) {
24
+ const [matches, setMatches] = _react.useState.call(void 0, void 0);
25
+ useIsomorphicLayoutEffect(() => {
26
+ const matchMedia = window.matchMedia(query);
27
+ const handleChange = () => {
28
+ setMatches(matchMedia.matches);
29
+ };
30
+ handleChange();
31
+ matchMedia.addEventListener("change", handleChange);
32
+ return () => {
33
+ matchMedia.removeEventListener("change", handleChange);
34
+ };
35
+ }, [query]);
36
+ return matches;
37
+ }
38
+ var breakpoints = {
39
+ md: `(min-width: ${LAYOUT_STEPS.md.viewport}px)`,
40
+ // Tablet
41
+ lg: `(min-width: ${LAYOUT_STEPS.lg.viewport}px)`
42
+ // Desktop
43
+ };
44
+ function useSmUp() {
45
+ return useMdUp();
46
+ }
47
+ function useMdUp() {
48
+ const matches = useMediaQuery(breakpoints.md);
49
+ return matches === void 0 ? void 0 : matches;
50
+ }
51
+ function useLgUp() {
52
+ const matches = useMediaQuery(breakpoints.lg);
53
+ return matches === void 0 ? void 0 : matches;
54
+ }
55
+
56
+ // src/hooks/ui/use-is-truncated.ts
57
+
8
58
  function useIsTruncated(value, options) {
9
59
  const multiline = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _ => _.multiline]), () => ( false));
10
60
  const [element, setElement] = _react.useState.call(void 0, null);
@@ -25,9 +75,35 @@ function useIsTruncated(value, options) {
25
75
  return { ref, isTruncated: element ? isTruncated : false };
26
76
  }
27
77
 
28
- // src/hooks/ui/use-isomorphic-layout-effect.ts
78
+ // src/hooks/ui/use-content-breakpoint.ts
29
79
 
30
- var useIsomorphicLayoutEffect = typeof window !== "undefined" ? _react.useLayoutEffect : _react.useEffect;
80
+ var CONTENT_BREAKPOINTS = { md: LAYOUT_STEPS.md.content, lg: LAYOUT_STEPS.lg.content };
81
+ var ContentAreaWidthContext = _react.createContext.call(void 0, null);
82
+ function ViewportBreakpoints({ children }) {
83
+ return _react.createElement.call(void 0, ContentAreaWidthContext.Provider, { value: null }, children);
84
+ }
85
+ function contentBreakpointFor(width) {
86
+ if (width >= CONTENT_BREAKPOINTS.lg) return "desktop";
87
+ if (width >= CONTENT_BREAKPOINTS.md) return "tablet";
88
+ return "mobile";
89
+ }
90
+ function useContentBreakpoint() {
91
+ const width = _react.useContext.call(void 0, ContentAreaWidthContext);
92
+ const mdUp = useMdUp();
93
+ const lgUp = useLgUp();
94
+ if (width !== null) return contentBreakpointFor(width);
95
+ if (mdUp === void 0) return void 0;
96
+ if (lgUp) return "desktop";
97
+ return mdUp ? "tablet" : "mobile";
98
+ }
99
+ function useContentMdUp() {
100
+ const breakpoint = useContentBreakpoint();
101
+ return breakpoint === void 0 ? void 0 : breakpoint !== "mobile";
102
+ }
103
+ function useContentLgUp() {
104
+ const breakpoint = useContentBreakpoint();
105
+ return breakpoint === void 0 ? void 0 : breakpoint === "desktop";
106
+ }
31
107
 
32
108
  // src/hooks/ui/use-image-edge-color.ts
33
109
 
@@ -782,4 +858,16 @@ function useOgPlaceholderUrl({
782
858
 
783
859
 
784
860
 
785
- exports.useIsTruncated = useIsTruncated; exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect; exports.useImageEdgeColor = useImageEdgeColor; exports.createLocalStorageAdapter = createLocalStorageAdapter; exports.platformDisplayNames = platformDisplayNames; exports.platformShortNames = platformShortNames; exports.platformDescriptions = platformDescriptions; exports.platformSlogans = platformSlogans; exports.platformIconNames = platformIconNames; exports.getPlatformDisplayName = getPlatformDisplayName; exports.getPlatformShortName = getPlatformShortName; exports.getPlatformDescription = getPlatformDescription; exports.getPlatformSlogan = getPlatformSlogan; exports.getDefaultIconForPlatform = getDefaultIconForPlatform; exports.ODS_STEM_TOKENS = ODS_STEM_TOKENS; exports.ODS_STEM_CLASSES = ODS_STEM_CLASSES; exports.PLATFORM_THEME = PLATFORM_THEME; exports.PLATFORM_SURFACE = PLATFORM_SURFACE; exports.getPlatformBackgroundVarName = getPlatformBackgroundVarName; exports.getPlatformTextVarName = getPlatformTextVarName; exports.PLATFORM_BRAND = PLATFORM_BRAND; exports.getPlatformBrand = getPlatformBrand; exports.platformAccentToken = platformAccentToken; exports.platformSecondaryToken = platformSecondaryToken; exports.platformAccentVarName = platformAccentVarName; exports.platformSecondaryVarName = platformSecondaryVarName; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getPlatformSecondaryColor = getPlatformSecondaryColor; exports.getPlatformBrandClasses = getPlatformBrandClasses; exports.platformColors = platformColors; exports.getPlatformColor = getPlatformColor; exports.platformHexColors = platformHexColors; exports.getDefaultColorForPlatform = getDefaultColorForPlatform; exports.getAppType = getAppType; exports.EMBED_PROXY_OPTIONAL_HEADERS = EMBED_PROXY_OPTIONAL_HEADERS; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.setEmbedAuthAdapter = setEmbedAuthAdapter; exports.hasEmbedAuthAdapter = hasEmbedAuthAdapter; exports.subscribeEmbedCredentialChange = subscribeEmbedCredentialChange; exports.embedAuthedFetch = embedAuthedFetch; exports.clearAuthedAssetCache = clearAuthedAssetCache; exports.useAuthedAssetSrc = useAuthedAssetSrc; exports.useAuthedImageSrc = useAuthedImageSrc; exports.clearAuthedImageCache = clearAuthedImageCache; exports.buildOgPlaceholderUrl = buildOgPlaceholderUrl; exports.useOgPlaceholderUrl = useOgPlaceholderUrl;
861
+
862
+
863
+
864
+
865
+
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+ exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect; exports.useMediaQuery = useMediaQuery; exports.breakpoints = breakpoints; exports.useSmUp = useSmUp; exports.useMdUp = useMdUp; exports.useLgUp = useLgUp; exports.useIsTruncated = useIsTruncated; exports.CONTENT_BREAKPOINTS = CONTENT_BREAKPOINTS; exports.ContentAreaWidthContext = ContentAreaWidthContext; exports.ViewportBreakpoints = ViewportBreakpoints; exports.contentBreakpointFor = contentBreakpointFor; exports.useContentBreakpoint = useContentBreakpoint; exports.useContentMdUp = useContentMdUp; exports.useContentLgUp = useContentLgUp; exports.useImageEdgeColor = useImageEdgeColor; exports.createLocalStorageAdapter = createLocalStorageAdapter; exports.platformDisplayNames = platformDisplayNames; exports.platformShortNames = platformShortNames; exports.platformDescriptions = platformDescriptions; exports.platformSlogans = platformSlogans; exports.platformIconNames = platformIconNames; exports.getPlatformDisplayName = getPlatformDisplayName; exports.getPlatformShortName = getPlatformShortName; exports.getPlatformDescription = getPlatformDescription; exports.getPlatformSlogan = getPlatformSlogan; exports.getDefaultIconForPlatform = getDefaultIconForPlatform; exports.ODS_STEM_TOKENS = ODS_STEM_TOKENS; exports.ODS_STEM_CLASSES = ODS_STEM_CLASSES; exports.PLATFORM_THEME = PLATFORM_THEME; exports.PLATFORM_SURFACE = PLATFORM_SURFACE; exports.getPlatformBackgroundVarName = getPlatformBackgroundVarName; exports.getPlatformTextVarName = getPlatformTextVarName; exports.PLATFORM_BRAND = PLATFORM_BRAND; exports.getPlatformBrand = getPlatformBrand; exports.platformAccentToken = platformAccentToken; exports.platformSecondaryToken = platformSecondaryToken; exports.platformAccentVarName = platformAccentVarName; exports.platformSecondaryVarName = platformSecondaryVarName; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getPlatformSecondaryColor = getPlatformSecondaryColor; exports.getPlatformBrandClasses = getPlatformBrandClasses; exports.platformColors = platformColors; exports.getPlatformColor = getPlatformColor; exports.platformHexColors = platformHexColors; exports.getDefaultColorForPlatform = getDefaultColorForPlatform; exports.getAppType = getAppType; exports.EMBED_PROXY_OPTIONAL_HEADERS = EMBED_PROXY_OPTIONAL_HEADERS; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.setEmbedAuthAdapter = setEmbedAuthAdapter; exports.hasEmbedAuthAdapter = hasEmbedAuthAdapter; exports.subscribeEmbedCredentialChange = subscribeEmbedCredentialChange; exports.embedAuthedFetch = embedAuthedFetch; exports.clearAuthedAssetCache = clearAuthedAssetCache; exports.useAuthedAssetSrc = useAuthedAssetSrc; exports.useAuthedImageSrc = useAuthedImageSrc; exports.clearAuthedImageCache = clearAuthedImageCache; exports.buildOgPlaceholderUrl = buildOgPlaceholderUrl; exports.useOgPlaceholderUrl = useOgPlaceholderUrl;
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
2
2
 
3
3
 
4
- var _chunkHUOLB7ZNcjs = require('./chunk-HUOLB7ZN.cjs');
4
+ var _chunkOHFS7VOUcjs = require('./chunk-OHFS7VOU.cjs');
5
5
 
6
6
 
7
7
 
@@ -10,7 +10,7 @@ var _chunkHUOLB7ZNcjs = require('./chunk-HUOLB7ZN.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkFD4DBTFOcjs = require('./chunk-FD4DBTFO.cjs');
13
+ var _chunkLTSTC3N5cjs = require('./chunk-LTSTC3N5.cjs');
14
14
 
15
15
 
16
16
 
@@ -20,7 +20,7 @@ var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
20
20
 
21
21
 
22
22
 
23
- var _chunkEMCQGFXDcjs = require('./chunk-EMCQGFXD.cjs');
23
+ var _chunkMMOODW57cjs = require('./chunk-MMOODW57.cjs');
24
24
 
25
25
 
26
26
  var _chunkLLRGR4I5cjs = require('./chunk-LLRGR4I5.cjs');
@@ -33,7 +33,7 @@ var _jsxruntime = require('react/jsx-runtime');
33
33
  function ListEmptyState({ isFiltered, filtered, onClearFilters, empty }) {
34
34
  if (isFiltered) {
35
35
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36
- _chunkHUOLB7ZNcjs.EmptyState,
36
+ _chunkOHFS7VOUcjs.EmptyState,
37
37
  {
38
38
  type: "search",
39
39
  title: filtered.title,
@@ -46,7 +46,7 @@ function ListEmptyState({ isFiltered, filtered, onClearFilters, empty }) {
46
46
  }
47
47
  const hasCta = Boolean(empty.ctaText && (empty.onCtaClick || empty.ctaHref));
48
48
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
49
- _chunkHUOLB7ZNcjs.EmptyState,
49
+ _chunkOHFS7VOUcjs.EmptyState,
50
50
  {
51
51
  type: "generic",
52
52
  title: empty.title,
@@ -63,7 +63,7 @@ function ListEmptyState({ isFiltered, filtered, onClearFilters, empty }) {
63
63
  var _react = require('react');
64
64
 
65
65
  function DevSectionView({ sectionKey, hero, preControls, children, showHeading = true }) {
66
- const section = _chunkFD4DBTFOcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
66
+ const section = _chunkLTSTC3N5cjs.OPENFRAME_DEV_SECTIONS[sectionKey];
67
67
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
68
68
  const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
69
69
  const searchParams = _chunk7DNL734Scjs.useSearchParams.call(void 0, );
@@ -107,14 +107,14 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
107
107
  _nullishCoalesce(hero.title, () => ( section.hero.title))
108
108
  ] }),
109
109
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "max-w-3xl text-ods-text-secondary text-h4", children: hero.description })
110
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full items-center justify-between", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "font-['Azeret_Mono'] text-[32px] font-semibold leading-[40px] tracking-[-0.64px] text-ods-text-primary md:text-[40px] md:leading-[48px] md:tracking-[-0.8px] lg:text-[48px] lg:leading-[56px] lg:tracking-[-0.96px]", children: [
110
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full items-center justify-between", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "font-['Azeret_Mono'] text-[32px] font-semibold leading-[40px] tracking-[-0.64px] text-ods-text-primary content-md:text-[40px] content-md:leading-[48px] content-md:tracking-[-0.8px] content-lg:text-[48px] content-lg:leading-[56px] content-lg:tracking-[-0.96px]", children: [
111
111
  section.hero.title,
112
112
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ":" })
113
113
  ] }) })),
114
114
  preControls,
115
115
  (search || filter) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
116
116
  search && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
117
- _chunkFD4DBTFOcjs.SearchInput,
117
+ _chunkLTSTC3N5cjs.SearchInput,
118
118
  {
119
119
  showDropdown: false,
120
120
  placeholder: search.placeholder,
@@ -124,7 +124,7 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
124
124
  }
125
125
  ),
126
126
  filter && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
127
- _chunkFD4DBTFOcjs.StatusFilterComponent,
127
+ _chunkLTSTC3N5cjs.StatusFilterComponent,
128
128
  {
129
129
  selectedStatus: currentFilterValue,
130
130
  onStatusChange: handleFilterChange,
@@ -148,7 +148,7 @@ function DevSectionPage({
148
148
  shell = true
149
149
  }) {
150
150
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
151
- const section = _chunkFD4DBTFOcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
151
+ const section = _chunkLTSTC3N5cjs.OPENFRAME_DEV_SECTIONS[sectionKey];
152
152
  const backCfg = backButton === false ? void 0 : {
153
153
  label: _nullishCoalesce((backButton ? backButton.label : void 0), () => ( "Back to home")),
154
154
  onClick: () => router.push(_nullishCoalesce((backButton ? backButton.href : void 0), () => ( "/")))
@@ -161,7 +161,7 @@ function DevSectionPage({
161
161
  // duplicate title. (The hero icon is intentionally dropped: TitleBlock is
162
162
  // frozen and renders title-only.)
163
163
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
164
- _chunkFD4DBTFOcjs.PageLayout,
164
+ _chunkLTSTC3N5cjs.PageLayout,
165
165
  {
166
166
  title: _nullishCoalesce(title, () => ( section.hero.title)),
167
167
  subtitle: _nullishCoalesce(subtitle, () => ( section.hero.description)),
@@ -172,7 +172,7 @@ function DevSectionPage({
172
172
  }
173
173
  )
174
174
  );
175
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
175
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLTSTC3N5cjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
176
176
  }
177
177
 
178
178
  // src/components/shared/dev-section/dev-card-row.tsx
@@ -184,9 +184,9 @@ function DevCardRowContent({
184
184
  emptyDescription = "No description provided",
185
185
  rightBadges
186
186
  }) {
187
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col items-start justify-between gap-[12px] md:flex-row md:gap-[16px]", children: [
188
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-1 flex-col gap-[12px] md:w-auto md:gap-[16px]", children: [
189
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[24px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 flex-1 break-words tracking-[-0.36px] text-ods-text-primary text-h3 md:truncate", children: title }) }),
187
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]", children: [
188
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-1 flex-col gap-[12px] content-md:w-auto content-md:gap-[16px]", children: [
189
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[24px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 flex-1 break-words tracking-[-0.36px] text-ods-text-primary text-h3 content-md:truncate", children: title }) }),
190
190
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[20px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate uppercase tracking-[-0.28px] text-ods-text-secondary text-h5", children: subtitle }) }),
191
191
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[72px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 break-words text-ods-text-secondary text-h4", children: description || emptyDescription }) })
192
192
  ] }),
@@ -194,8 +194,8 @@ function DevCardRowContent({
194
194
  ] });
195
195
  }
196
196
  function DevCardRowSkeleton() {
197
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border p-[12px] last:border-b-0 md:p-[16px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col items-start justify-between gap-[12px] md:flex-row md:gap-[16px]", children: [
198
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-1 flex-col gap-[12px] md:w-auto md:gap-[16px]", children: [
197
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border p-[12px] last:border-b-0 content-md:p-[16px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]", children: [
198
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-1 flex-col gap-[12px] content-md:w-auto content-md:gap-[16px]", children: [
199
199
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[24px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] w-full animate-pulse rounded bg-ods-border" }) }),
200
200
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[20px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] w-1/2 animate-pulse rounded bg-ods-border" }) }),
201
201
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[72px] items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-1", children: [
@@ -230,21 +230,21 @@ function getRelativeTime(timestamp) {
230
230
  }
231
231
  function DeliveryRow({ item, href, target, caption, id, className }) {
232
232
  const taskType = item.taskType;
233
- const typeBadgeLabel = _chunkFD4DBTFOcjs.TASK_TYPE_LABELS[taskType] || "TASK";
234
- const typeBadgeTextColor = _chunkFD4DBTFOcjs.TASK_TYPE_TEXT_COLORS[taskType] || "";
235
- const statusBadgeScheme = _chunkEMCQGFXDcjs.getStatusColorScheme.call(void 0, item.status);
233
+ const typeBadgeLabel = _chunkLTSTC3N5cjs.TASK_TYPE_LABELS[taskType] || "TASK";
234
+ const typeBadgeTextColor = _chunkLTSTC3N5cjs.TASK_TYPE_TEXT_COLORS[taskType] || "";
235
+ const statusBadgeScheme = _chunkMMOODW57cjs.getStatusColorScheme.call(void 0, item.status);
236
236
  const relativeTime = getRelativeTime(item.dateUpdated);
237
237
  const subtitle = `ACTIVE ${relativeTime}${item.listNames.length > 0 ? `, ${item.listNames.join(", ")}` : ""}, ${item.id}`;
238
- const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col items-start justify-between gap-[12px] md:flex-row md:gap-[16px]", children: [
239
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-1 flex-col gap-[12px] md:w-auto md:gap-[16px]", children: [
238
+ const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col items-start justify-between gap-[12px] content-md:flex-row content-md:gap-[16px]", children: [
239
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-1 flex-col gap-[12px] content-md:w-auto content-md:gap-[16px]", children: [
240
240
  caption && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h5", children: caption }),
241
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[24px] items-center md:min-h-[24px]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 flex-1 break-words tracking-[-0.36px] text-ods-text-primary text-h3 md:truncate", children: item.title }) }),
241
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[24px] items-center content-md:min-h-[24px]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 flex-1 break-words tracking-[-0.36px] text-ods-text-primary text-h3 content-md:truncate", children: item.title }) }),
242
242
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[20px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate uppercase tracking-[-0.28px] text-ods-text-secondary text-h5", suppressHydrationWarning: true, children: subtitle }) }),
243
243
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[72px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 break-words text-ods-text-secondary text-h4", children: item.description || "No description provided" }) })
244
244
  ] }),
245
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-shrink-0 flex-row items-center gap-2 self-stretch md:w-auto md:flex-col md:items-end md:self-start", children: [
245
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-shrink-0 flex-row items-center gap-2 self-stretch content-md:w-auto content-md:flex-col content-md:items-end content-md:self-start", children: [
246
246
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
247
- _chunkEMCQGFXDcjs.StatusBadge,
247
+ _chunkMMOODW57cjs.StatusBadge,
248
248
  {
249
249
  text: item.status.toUpperCase(),
250
250
  colorScheme: statusBadgeScheme,
@@ -253,7 +253,7 @@ function DeliveryRow({ item, href, target, caption, id, className }) {
253
253
  }
254
254
  ),
255
255
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
256
- _chunkEMCQGFXDcjs.StatusBadge,
256
+ _chunkMMOODW57cjs.StatusBadge,
257
257
  {
258
258
  text: typeBadgeLabel,
259
259
  variant: "card",
@@ -261,10 +261,10 @@ function DeliveryRow({ item, href, target, caption, id, className }) {
261
261
  }
262
262
  ),
263
263
  item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
264
- _chunkEMCQGFXDcjs.AvatarStack,
264
+ _chunkMMOODW57cjs.AvatarStack,
265
265
  {
266
266
  size: "xs",
267
- className: "ml-auto md:ml-0",
267
+ className: "ml-auto content-md:ml-0",
268
268
  people: item.assignees.map((a) => ({
269
269
  key: a.id,
270
270
  name: _nullishCoalesce(a.name, () => ( "Unknown")),
@@ -275,7 +275,7 @@ function DeliveryRow({ item, href, target, caption, id, className }) {
275
275
  ] })
276
276
  ] });
277
277
  const baseClass = _chunk3ATAYP36cjs.cn.call(void 0,
278
- "block p-[12px] text-inherit no-underline transition-colors duration-150 md:p-[16px]",
278
+ "block p-[12px] text-inherit no-underline transition-colors duration-150 content-md:p-[16px]",
279
279
  // `scroll-mt-24` is paid for whether `id` is set or not (it's a
280
280
  // single Tailwind utility, no runtime cost). Keeping it
281
281
  // unconditional means a future caller adding `id` doesn't also