@flamingo-stack/openframe-frontend-core 0.0.711 → 0.0.712

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 (523) hide show
  1. package/dist/chunk-2NASBO7O.js +1137 -0
  2. package/dist/{chunk-RQRX4YC3.cjs → chunk-2RKFMUNW.cjs} +46 -46
  3. package/dist/chunk-2Y7QZAB2.cjs +158 -0
  4. package/dist/chunk-34I6XI3N.js +136 -0
  5. package/dist/chunk-3K5ZLZE7.js +292 -0
  6. package/dist/chunk-3LU4UFPS.cjs +14 -0
  7. package/dist/{chunk-3UNL26CD.cjs → chunk-3RKBJT6K.cjs} +8 -6
  8. package/dist/{chunk-6GLQLTJI.js → chunk-3SEEGNRE.js} +35 -27
  9. package/dist/{chunk-FEMAJES4.cjs → chunk-3UAJLO5U.cjs} +41 -39
  10. package/dist/chunk-4HJRHEXD.cjs +1612 -0
  11. package/dist/{chunk-JPG7OHEG.js → chunk-4QFWGLZO.js} +1 -1
  12. package/dist/chunk-4R2L3DSA.js +14 -0
  13. package/dist/{chunk-2JTGK64G.js → chunk-4UYKNOZG.js} +12 -10
  14. package/dist/{chunk-TKZXHVBG.js → chunk-5SDELRH3.js} +5 -5
  15. package/dist/{chunk-Q6B35Y7O.js → chunk-5Y72YQEK.js} +22 -113
  16. package/dist/{chunk-KUC673HM.js → chunk-6T3BTD6Q.js} +204 -982
  17. package/dist/{chunk-F57ECE2I.js → chunk-6YPTUHM7.js} +4 -4
  18. package/dist/{chunk-WJUIXU6Y.js → chunk-7HNYYNKE.js} +28 -22
  19. package/dist/{chunk-P6G3JZNC.cjs → chunk-7NSU5EQD.cjs} +57 -148
  20. package/dist/chunk-AAYNCJMW.cjs +48 -0
  21. package/dist/{chunk-FXJ3WWUB.js → chunk-ADBE7QF3.js} +5 -252
  22. package/dist/chunk-AECTRMGQ.cjs +334 -0
  23. package/dist/chunk-AGVXKD4K.js +334 -0
  24. package/dist/chunk-AL2GUHAJ.cjs +18 -0
  25. package/dist/{chunk-WMX26HB5.js → chunk-APJZBDQN.js} +12 -12
  26. package/dist/chunk-AUMKE74M.cjs +16 -0
  27. package/dist/chunk-B4NCVYEQ.cjs +292 -0
  28. package/dist/{chunk-XWEBHS7O.cjs → chunk-BXSRTBLU.cjs} +82 -54
  29. package/dist/chunk-CMGFZHCN.js +233 -0
  30. package/dist/chunk-CMZ3QTFQ.js +1207 -0
  31. package/dist/chunk-CPA2CKRZ.cjs +125 -0
  32. package/dist/{chunk-G47AP6LX.cjs → chunk-CSCJU6YC.cjs} +35 -33
  33. package/dist/chunk-CYUUHFXL.js +41 -0
  34. package/dist/chunk-DC4RTYWK.cjs +1122 -0
  35. package/dist/{chunk-NF7GNGYG.js → chunk-DDWFCWOE.js} +5 -7
  36. package/dist/{chunk-K4PTDK34.js → chunk-EFNKS5W4.js} +322 -428
  37. package/dist/{chunk-QA6TROME.cjs → chunk-EOKSKJSS.cjs} +25 -83
  38. package/dist/{chunk-6NTPY5QA.cjs → chunk-ETYLOZOB.cjs} +978 -2413
  39. package/dist/chunk-F5BPGWGT.cjs +931 -0
  40. package/dist/{chunk-5HB7FLCV.js → chunk-FCAVAEHF.js} +8277 -9990
  41. package/dist/chunk-FFT56TYB.cjs +401 -0
  42. package/dist/chunk-FYEJTF5Y.js +125 -0
  43. package/dist/chunk-G3GRYDMS.js +16 -0
  44. package/dist/{chunk-VWFZRMQR.js → chunk-G3OMVCID.js} +13 -7
  45. package/dist/chunk-G6OHIX5C.cjs +100 -0
  46. package/dist/{chunk-UDFRUKLC.cjs → chunk-GEDY7HQI.cjs} +2 -2
  47. package/dist/chunk-GQ7JJUIT.cjs +1207 -0
  48. package/dist/chunk-H3PKYE4N.js +18 -0
  49. package/dist/{chunk-AGDVEUVL.js → chunk-H5R7U2D2.js} +206 -5
  50. package/dist/{chunk-7AM6C6XH.cjs → chunk-HETQETPV.cjs} +9641 -9678
  51. package/dist/{chunk-Y2GSOUCS.cjs → chunk-HWVUR735.cjs} +2 -2
  52. package/dist/chunk-II4QMH26.cjs +35 -0
  53. package/dist/chunk-ILNN6QRW.js +1612 -0
  54. package/dist/chunk-IYVFSLWJ.js +931 -0
  55. package/dist/{chunk-C4HRRB3V.cjs → chunk-JGCFRTND.cjs} +23 -17
  56. package/dist/chunk-JHQ334WS.js +655 -0
  57. package/dist/{chunk-WCVZCGK5.cjs → chunk-JO5TLJPM.cjs} +129 -907
  58. package/dist/{chunk-PRX7HVLE.cjs → chunk-JVCAK4W3.cjs} +210 -9
  59. package/dist/chunk-KBJJQFYU.js +1122 -0
  60. package/dist/chunk-KEKCQENI.js +48 -0
  61. package/dist/chunk-KHXZFLIN.cjs +41 -0
  62. package/dist/chunk-KT3U3ZRP.cjs +1137 -0
  63. package/dist/chunk-L2VUINHN.js +35 -0
  64. package/dist/{chunk-FYOKS5RI.cjs → chunk-L6ZQGWCX.cjs} +4521 -6234
  65. package/dist/{chunk-PLYEKV3N.cjs → chunk-MA4Q5RBP.cjs} +6 -6
  66. package/dist/{chunk-VMMHJFHG.js → chunk-N67XG5GY.js} +10 -8
  67. package/dist/chunk-NPAQSMRY.js +2087 -0
  68. package/dist/{chunk-IFWLJ66M.js → chunk-NQWJAOHO.js} +6 -4
  69. package/dist/{chunk-6K7QZDA6.cjs → chunk-OBZJICEA.cjs} +8 -8
  70. package/dist/{chunk-62KNLDXK.js → chunk-OPYODNV2.js} +3 -3
  71. package/dist/chunk-P3JMAMHP.js +401 -0
  72. package/dist/chunk-PPXR22YC.cjs +2087 -0
  73. package/dist/chunk-PSVSEN4J.cjs +655 -0
  74. package/dist/{chunk-EQWD4IJE.js → chunk-RBYVFPER.js} +74 -46
  75. package/dist/{chunk-SMAAV3HL.js → chunk-ROBQ5TR7.js} +10541 -10578
  76. package/dist/{chunk-K6Y5NX6L.cjs → chunk-T3CLXR43.cjs} +114 -220
  77. package/dist/{chunk-FI6GMDO7.js → chunk-TTVOLEUS.js} +3605 -5040
  78. package/dist/{chunk-LM7TXMLU.cjs → chunk-ULWVKHSI.cjs} +8 -255
  79. package/dist/{chunk-EX6GGCAC.cjs → chunk-UT3ODMBU.cjs} +15 -15
  80. package/dist/chunk-WANCBTUE.js +71 -0
  81. package/dist/{chunk-BIZNSF3U.cjs → chunk-WBNAEYTQ.cjs} +2 -51
  82. package/dist/chunk-WFPCCBOM.cjs +71 -0
  83. package/dist/chunk-WI6FHKD7.js +158 -0
  84. package/dist/chunk-WMNCVLES.js +100 -0
  85. package/dist/{chunk-UT4YHQZW.js → chunk-WSDT7LYL.js} +0 -49
  86. package/dist/chunk-WVOTC7HW.cjs +136 -0
  87. package/dist/{chunk-6AMIRXKM.cjs → chunk-WWJG4GVG.cjs} +93 -87
  88. package/dist/chunk-XXBLN4BP.cjs +233 -0
  89. package/dist/{chunk-4IBPRIQH.js → chunk-YBQQNDC7.js} +1 -1
  90. package/dist/{chunk-QGZPZ3RL.js → chunk-YBS5QGON.js} +70 -128
  91. package/dist/{chunk-CDM7OSFB.cjs → chunk-Z5SWJW5Q.cjs} +125 -117
  92. package/dist/{chunk-YD4LJZV4.cjs → chunk-ZX7SCPLO.cjs} +6 -8
  93. package/dist/cloud-tenants-KZUZGD4A.cjs +117 -0
  94. package/dist/cloud-tenants-OGLVVQ7X.js +117 -0
  95. package/dist/components/case-studies/index.cjs +45 -29
  96. package/dist/components/case-studies/index.js +32 -16
  97. package/dist/components/chat/ask-prompts.d.ts +64 -0
  98. package/dist/components/chat/ask-prompts.d.ts.map +1 -0
  99. package/dist/components/chat/entity-cards/case-study-card.d.ts +6 -3
  100. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
  101. package/dist/components/chat/index.cjs +27 -8
  102. package/dist/components/chat/index.d.ts +1 -0
  103. package/dist/components/chat/index.d.ts.map +1 -1
  104. package/dist/components/chat/index.js +57 -38
  105. package/dist/components/chat/quick-action-chip.d.ts +7 -3
  106. package/dist/components/chat/quick-action-chip.d.ts.map +1 -1
  107. package/dist/components/contact/index.cjs +29 -13
  108. package/dist/components/contact/index.js +28 -12
  109. package/dist/components/docs/index.cjs +33 -16
  110. package/dist/components/docs/index.js +33 -16
  111. package/dist/components/docs/use-scroll-spy.d.ts +23 -1
  112. package/dist/components/docs/use-scroll-spy.d.ts.map +1 -1
  113. package/dist/components/embeds/index.cjs +29 -13
  114. package/dist/components/embeds/index.js +28 -12
  115. package/dist/components/faq/faq-section.d.ts +8 -1
  116. package/dist/components/faq/faq-section.d.ts.map +1 -1
  117. package/dist/components/faq/index.cjs +30 -14
  118. package/dist/components/faq/index.js +29 -13
  119. package/dist/components/features/array-entry-manager.d.ts +5 -1
  120. package/dist/components/features/array-entry-manager.d.ts.map +1 -1
  121. package/dist/components/features/board/board.d.ts +2 -0
  122. package/dist/components/features/board/board.d.ts.map +1 -1
  123. package/dist/components/features/board/ticket-card.d.ts.map +1 -1
  124. package/dist/components/features/board/touch-board.d.ts +1 -1
  125. package/dist/components/features/board/touch-board.d.ts.map +1 -1
  126. package/dist/components/features/board/types.d.ts +3 -0
  127. package/dist/components/features/board/types.d.ts.map +1 -1
  128. package/dist/components/features/board/use-board-collapse.d.ts +6 -1
  129. package/dist/components/features/board/use-board-collapse.d.ts.map +1 -1
  130. package/dist/components/features/capability-explorer.d.ts +94 -0
  131. package/dist/components/features/capability-explorer.d.ts.map +1 -0
  132. package/dist/components/features/cloud-tenants/index.d.ts +14 -0
  133. package/dist/components/features/cloud-tenants/index.d.ts.map +1 -0
  134. package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts +9 -0
  135. package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts.map +1 -0
  136. package/dist/components/features/cloud-tenants/tenant-cell.d.ts +8 -0
  137. package/dist/components/features/cloud-tenants/tenant-cell.d.ts.map +1 -0
  138. package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts +9 -0
  139. package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts.map +1 -0
  140. package/dist/components/features/cloud-tenants/tenant-presentation.d.ts +42 -0
  141. package/dist/components/features/cloud-tenants/tenant-presentation.d.ts.map +1 -0
  142. package/dist/components/features/cloud-tenants/tenant-row.d.ts +22 -0
  143. package/dist/components/features/cloud-tenants/tenant-row.d.ts.map +1 -0
  144. package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts +42 -0
  145. package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts.map +1 -0
  146. package/dist/components/features/cloud-tenants/tenants-table-view.d.ts +26 -0
  147. package/dist/components/features/cloud-tenants/tenants-table-view.d.ts.map +1 -0
  148. package/dist/components/features/devices/device-last-online.d.ts +3 -0
  149. package/dist/components/features/devices/device-last-online.d.ts.map +1 -0
  150. package/dist/components/features/devices/device-name.d.ts +42 -0
  151. package/dist/components/features/devices/device-name.d.ts.map +1 -0
  152. package/dist/components/features/devices/device-selector/device-selection-mode-radio.d.ts +26 -0
  153. package/dist/components/features/devices/device-selector/device-selection-mode-radio.d.ts.map +1 -0
  154. package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts +25 -0
  155. package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts.map +1 -0
  156. package/dist/components/features/devices/device-selector/device-selector.d.ts +38 -0
  157. package/dist/components/features/devices/device-selector/device-selector.d.ts.map +1 -0
  158. package/dist/components/features/devices/device-selector/device-selector.types.d.ts +133 -0
  159. package/dist/components/features/devices/device-selector/device-selector.types.d.ts.map +1 -0
  160. package/dist/components/features/devices/device-selector/narrowing.d.ts +13 -0
  161. package/dist/components/features/devices/device-selector/narrowing.d.ts.map +1 -0
  162. package/dist/components/features/devices/device-selector/use-device-selector.d.ts +17 -0
  163. package/dist/components/features/devices/device-selector/use-device-selector.d.ts.map +1 -0
  164. package/dist/components/features/devices/device-status.d.ts +23 -0
  165. package/dist/components/features/devices/device-status.d.ts.map +1 -0
  166. package/dist/components/features/devices/device-statuses.d.ts +40 -0
  167. package/dist/components/features/devices/device-statuses.d.ts.map +1 -0
  168. package/dist/components/features/devices/device-tags-filter-button.d.ts +22 -0
  169. package/dist/components/features/devices/device-tags-filter-button.d.ts.map +1 -0
  170. package/dist/components/features/devices/device-type-icon.d.ts +11 -0
  171. package/dist/components/features/devices/device-type-icon.d.ts.map +1 -0
  172. package/dist/components/features/devices/device-type-tile.d.ts +9 -0
  173. package/dist/components/features/devices/device-type-tile.d.ts.map +1 -0
  174. package/dist/components/features/devices/devices-filter-toolbar.d.ts +46 -0
  175. package/dist/components/features/devices/devices-filter-toolbar.d.ts.map +1 -0
  176. package/dist/components/features/devices/devices-grid-filters.d.ts +25 -0
  177. package/dist/components/features/devices/devices-grid-filters.d.ts.map +1 -0
  178. package/dist/components/features/devices/devices-grid.d.ts +12 -0
  179. package/dist/components/features/devices/devices-grid.d.ts.map +1 -0
  180. package/dist/components/features/devices/devices-list.d.ts +131 -0
  181. package/dist/components/features/devices/devices-list.d.ts.map +1 -0
  182. package/dist/components/features/devices/devices-panel-header.d.ts +46 -0
  183. package/dist/components/features/devices/devices-panel-header.d.ts.map +1 -0
  184. package/dist/components/features/devices/devices-panel-view.d.ts +79 -0
  185. package/dist/components/features/devices/devices-panel-view.d.ts.map +1 -0
  186. package/dist/components/features/devices/devices-table-columns.d.ts +76 -0
  187. package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -0
  188. package/dist/components/features/devices/devices-view-config.d.ts +25 -0
  189. package/dist/components/features/devices/devices-view-config.d.ts.map +1 -0
  190. package/dist/components/features/devices/index.d.ts +24 -0
  191. package/dist/components/features/devices/index.d.ts.map +1 -0
  192. package/dist/components/features/devices/types.d.ts +68 -0
  193. package/dist/components/features/devices/types.d.ts.map +1 -0
  194. package/dist/components/features/devices/use-tag-filter-modal.d.ts +50 -0
  195. package/dist/components/features/devices/use-tag-filter-modal.d.ts.map +1 -0
  196. package/dist/components/features/index.cjs +227 -12
  197. package/dist/components/features/index.d.ts +7 -0
  198. package/dist/components/features/index.d.ts.map +1 -1
  199. package/dist/components/features/index.js +266 -51
  200. package/dist/components/features/knowledge-base/index.d.ts +7 -0
  201. package/dist/components/features/knowledge-base/index.d.ts.map +1 -0
  202. package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts +44 -0
  203. package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts.map +1 -0
  204. package/dist/components/features/knowledge-base/knowledge-base-item-icon.d.ts +13 -0
  205. package/dist/components/features/knowledge-base/knowledge-base-item-icon.d.ts.map +1 -0
  206. package/dist/components/features/knowledge-base/knowledge-base-status.d.ts +8 -0
  207. package/dist/components/features/knowledge-base/knowledge-base-status.d.ts.map +1 -0
  208. package/dist/components/features/knowledge-base/knowledge-base-table.d.ts +52 -0
  209. package/dist/components/features/knowledge-base/knowledge-base-table.d.ts.map +1 -0
  210. package/dist/components/features/logs/index.d.ts +12 -0
  211. package/dist/components/features/logs/index.d.ts.map +1 -0
  212. package/dist/components/features/logs/log-drawer.d.ts +29 -0
  213. package/dist/components/features/logs/log-drawer.d.ts.map +1 -0
  214. package/dist/components/features/logs/log-source-labels.d.ts +11 -0
  215. package/dist/components/features/logs/log-source-labels.d.ts.map +1 -0
  216. package/dist/components/features/logs/logs-page-view.d.ts +32 -0
  217. package/dist/components/features/logs/logs-page-view.d.ts.map +1 -0
  218. package/dist/components/features/logs/logs-table-columns.d.ts +15 -0
  219. package/dist/components/features/logs/logs-table-columns.d.ts.map +1 -0
  220. package/dist/components/features/logs/logs-table-view.d.ts +64 -0
  221. package/dist/components/features/logs/logs-table-view.d.ts.map +1 -0
  222. package/dist/components/features/logs/types.d.ts +52 -0
  223. package/dist/components/features/logs/types.d.ts.map +1 -0
  224. package/dist/components/features/policies/compute-policy-summary.d.ts +37 -0
  225. package/dist/components/features/policies/compute-policy-summary.d.ts.map +1 -0
  226. package/dist/components/features/policies/index.d.ts +8 -0
  227. package/dist/components/features/policies/index.d.ts.map +1 -0
  228. package/dist/components/features/policies/policies-table.d.ts +34 -0
  229. package/dist/components/features/policies/policies-table.d.ts.map +1 -0
  230. package/dist/components/features/policies/policy-summary-cards.d.ts +17 -0
  231. package/dist/components/features/policies/policy-summary-cards.d.ts.map +1 -0
  232. package/dist/components/features/policies/policy-table-row.d.ts +37 -0
  233. package/dist/components/features/policies/policy-table-row.d.ts.map +1 -0
  234. package/dist/components/features/remote-session/index.d.ts +8 -0
  235. package/dist/components/features/remote-session/index.d.ts.map +1 -1
  236. package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts +21 -0
  237. package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts.map +1 -0
  238. package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts +31 -0
  239. package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts.map +1 -0
  240. package/dist/components/features/remote-session/remote-desktop-fullscreen-toolbar.d.ts +21 -0
  241. package/dist/components/features/remote-session/remote-desktop-fullscreen-toolbar.d.ts.map +1 -0
  242. package/dist/components/features/remote-session/remote-desktop-view.d.ts +50 -0
  243. package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -0
  244. package/dist/components/features/software/index.d.ts +8 -0
  245. package/dist/components/features/software/index.d.ts.map +1 -0
  246. package/dist/components/features/software/package-managers.d.ts +30 -0
  247. package/dist/components/features/software/package-managers.d.ts.map +1 -0
  248. package/dist/components/features/software/package-search-field-placeholder.d.ts +7 -0
  249. package/dist/components/features/software/package-search-field-placeholder.d.ts.map +1 -0
  250. package/dist/components/features/software/schedule-fields.d.ts +34 -0
  251. package/dist/components/features/software/schedule-fields.d.ts.map +1 -0
  252. package/dist/components/features/software/software-action-copy.d.ts +25 -0
  253. package/dist/components/features/software/software-action-copy.d.ts.map +1 -0
  254. package/dist/components/features/software/software-action-form.d.ts +71 -0
  255. package/dist/components/features/software/software-action-form.d.ts.map +1 -0
  256. package/dist/components/features/software/software-row-fields.d.ts +23 -0
  257. package/dist/components/features/software/software-row-fields.d.ts.map +1 -0
  258. package/dist/components/features/software/software-row.d.ts +18 -0
  259. package/dist/components/features/software/software-row.d.ts.map +1 -0
  260. package/dist/components/features/sortable-list/index.d.ts +1 -0
  261. package/dist/components/features/sortable-list/index.d.ts.map +1 -1
  262. package/dist/components/features/sortable-list/sortable-drag-handle.d.ts +21 -0
  263. package/dist/components/features/sortable-list/sortable-drag-handle.d.ts.map +1 -0
  264. package/dist/components/help-center-pages/index.cjs +133 -114
  265. package/dist/components/help-center-pages/index.js +58 -39
  266. package/dist/components/index.cjs +320 -82
  267. package/dist/components/index.js +451 -213
  268. package/dist/components/layout/page-heading.d.ts +12 -3
  269. package/dist/components/layout/page-heading.d.ts.map +1 -1
  270. package/dist/components/meeting-scheduler/index.cjs +120 -98
  271. package/dist/components/meeting-scheduler/index.js +50 -28
  272. package/dist/components/navigation/index.cjs +36 -17
  273. package/dist/components/navigation/index.d.ts +3 -0
  274. package/dist/components/navigation/index.d.ts.map +1 -1
  275. package/dist/components/navigation/index.js +36 -17
  276. package/dist/components/navigation/mingo-ai-button.d.ts +23 -10
  277. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  278. package/dist/components/navigation/sticky-section-nav.d.ts +14 -1
  279. package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
  280. package/dist/components/onboarding-guides/index.cjs +32 -16
  281. package/dist/components/onboarding-guides/index.js +31 -15
  282. package/dist/components/product-demo/cast.d.ts +58 -0
  283. package/dist/components/product-demo/cast.d.ts.map +1 -0
  284. package/dist/components/product-demo/fixtures/cloud-tenants.d.ts +10 -0
  285. package/dist/components/product-demo/fixtures/cloud-tenants.d.ts.map +1 -0
  286. package/dist/components/product-demo/fixtures/devices.d.ts +14 -0
  287. package/dist/components/product-demo/fixtures/devices.d.ts.map +1 -0
  288. package/dist/components/product-demo/fixtures/knowledge.d.ts +14 -0
  289. package/dist/components/product-demo/fixtures/knowledge.d.ts.map +1 -0
  290. package/dist/components/product-demo/fixtures/logs.d.ts +15 -0
  291. package/dist/components/product-demo/fixtures/logs.d.ts.map +1 -0
  292. package/dist/components/product-demo/fixtures/policies.d.ts +13 -0
  293. package/dist/components/product-demo/fixtures/policies.d.ts.map +1 -0
  294. package/dist/components/product-demo/fixtures/remote-session.d.ts +20 -0
  295. package/dist/components/product-demo/fixtures/remote-session.d.ts.map +1 -0
  296. package/dist/components/product-demo/fixtures/shared.d.ts +156 -0
  297. package/dist/components/product-demo/fixtures/shared.d.ts.map +1 -0
  298. package/dist/components/product-demo/fixtures/software-update.d.ts +19 -0
  299. package/dist/components/product-demo/fixtures/software-update.d.ts.map +1 -0
  300. package/dist/components/product-demo/fixtures/tickets-board.d.ts +8 -0
  301. package/dist/components/product-demo/fixtures/tickets-board.d.ts.map +1 -0
  302. package/dist/components/product-demo/index.cjs +112 -0
  303. package/dist/components/product-demo/index.d.ts +6 -0
  304. package/dist/components/product-demo/index.d.ts.map +1 -0
  305. package/dist/components/product-demo/index.js +112 -0
  306. package/dist/components/product-demo/product-screen.d.ts +22 -0
  307. package/dist/components/product-demo/product-screen.d.ts.map +1 -0
  308. package/dist/components/product-demo/registry.d.ts +13 -0
  309. package/dist/components/product-demo/registry.d.ts.map +1 -0
  310. package/dist/components/product-demo/screen-keys.cjs +25 -0
  311. package/dist/components/product-demo/screen-keys.d.ts +27 -0
  312. package/dist/components/product-demo/screen-keys.d.ts.map +1 -0
  313. package/dist/components/product-demo/screen-keys.js +20 -0
  314. package/dist/components/product-demo/screens/cloud-tenants.d.ts +8 -0
  315. package/dist/components/product-demo/screens/cloud-tenants.d.ts.map +1 -0
  316. package/dist/components/product-demo/screens/devices.d.ts +10 -0
  317. package/dist/components/product-demo/screens/devices.d.ts.map +1 -0
  318. package/dist/components/product-demo/screens/knowledge.d.ts +9 -0
  319. package/dist/components/product-demo/screens/knowledge.d.ts.map +1 -0
  320. package/dist/components/product-demo/screens/logs.d.ts +4 -0
  321. package/dist/components/product-demo/screens/logs.d.ts.map +1 -0
  322. package/dist/components/product-demo/screens/policies.d.ts +8 -0
  323. package/dist/components/product-demo/screens/policies.d.ts.map +1 -0
  324. package/dist/components/product-demo/screens/remote-desktop-picture.d.ts +11 -0
  325. package/dist/components/product-demo/screens/remote-desktop-picture.d.ts.map +1 -0
  326. package/dist/components/product-demo/screens/remote-session.d.ts +8 -0
  327. package/dist/components/product-demo/screens/remote-session.d.ts.map +1 -0
  328. package/dist/components/product-demo/screens/software-update.d.ts +12 -0
  329. package/dist/components/product-demo/screens/software-update.d.ts.map +1 -0
  330. package/dist/components/product-demo/screens/tickets-board.d.ts +4 -0
  331. package/dist/components/product-demo/screens/tickets-board.d.ts.map +1 -0
  332. package/dist/components/product-demo/types.d.ts +9 -0
  333. package/dist/components/product-demo/types.d.ts.map +1 -0
  334. package/dist/components/related-content/index.cjs +14 -8
  335. package/dist/components/related-content/index.js +13 -7
  336. package/dist/components/tickets/index.cjs +36 -20
  337. package/dist/components/tickets/index.js +35 -19
  338. package/dist/components/ui/file-manager/index.cjs +38 -34
  339. package/dist/components/ui/file-manager/index.js +8 -4
  340. package/dist/components/ui/index.cjs +57 -17
  341. package/dist/components/ui/index.d.ts +1 -0
  342. package/dist/components/ui/index.d.ts.map +1 -1
  343. package/dist/components/ui/index.js +141 -101
  344. package/dist/components/ui/product-screen-frame.d.ts +45 -0
  345. package/dist/components/ui/product-screen-frame.d.ts.map +1 -0
  346. package/dist/components/ui/radio-group.d.ts +5 -0
  347. package/dist/components/ui/radio-group.d.ts.map +1 -1
  348. package/dist/components/ui/snap-carousel.d.ts +11 -1
  349. package/dist/components/ui/snap-carousel.d.ts.map +1 -1
  350. package/dist/components/ui/tag.d.ts +1 -1
  351. package/dist/components/ui/tag.d.ts.map +1 -1
  352. package/dist/devices-LBMG42K6.js +81 -0
  353. package/dist/devices-YGYJIXQY.cjs +81 -0
  354. package/dist/hooks/index.cjs +17 -8
  355. package/dist/hooks/index.js +32 -23
  356. package/dist/hooks/ui/index.d.ts +1 -0
  357. package/dist/hooks/ui/index.d.ts.map +1 -1
  358. package/dist/hooks/ui/use-header-height.d.ts +12 -0
  359. package/dist/hooks/ui/use-header-height.d.ts.map +1 -1
  360. package/dist/hooks/ui/use-sticky-toolbar.d.ts +29 -0
  361. package/dist/hooks/ui/use-sticky-toolbar.d.ts.map +1 -0
  362. package/dist/hooks/use-location-hash.d.ts +2 -2
  363. package/dist/hooks/use-location-hash.d.ts.map +1 -1
  364. package/dist/hooks/use-scroll-to-hash.d.ts +7 -0
  365. package/dist/hooks/use-scroll-to-hash.d.ts.map +1 -1
  366. package/dist/index.cjs +276 -25
  367. package/dist/index.js +729 -478
  368. package/dist/knowledge-H5BIWJVI.js +108 -0
  369. package/dist/knowledge-KTCVJIWN.cjs +108 -0
  370. package/dist/logs-DB5Z7M5Q.js +216 -0
  371. package/dist/logs-RVCC2UQW.cjs +216 -0
  372. package/dist/policies-EWUULFBR.js +121 -0
  373. package/dist/policies-HV4IQCBV.cjs +121 -0
  374. package/dist/remote-session-GSGZOFDX.js +196 -0
  375. package/dist/remote-session-R6VAFESR.cjs +196 -0
  376. package/dist/software-update-6PXKRKBT.js +179 -0
  377. package/dist/software-update-D4OVSWSG.cjs +179 -0
  378. package/dist/tickets-board-BHLPAVNJ.cjs +137 -0
  379. package/dist/tickets-board-PYDNELSK.js +137 -0
  380. package/dist/types/case-study.d.ts +15 -1
  381. package/dist/types/case-study.d.ts.map +1 -1
  382. package/dist/utils/date-utils.d.ts +5 -0
  383. package/dist/utils/date-utils.d.ts.map +1 -1
  384. package/dist/utils/index.cjs +45 -2
  385. package/dist/utils/index.d.ts +2 -1
  386. package/dist/utils/index.d.ts.map +1 -1
  387. package/dist/utils/index.js +41 -3
  388. package/dist/utils/open-in-new-tab.d.ts +7 -0
  389. package/dist/utils/open-in-new-tab.d.ts.map +1 -0
  390. package/dist/utils/same-page-hash-nav.d.ts +31 -0
  391. package/dist/utils/same-page-hash-nav.d.ts.map +1 -1
  392. package/dist/utils/scroll-into-view.d.ts +14 -1
  393. package/dist/utils/scroll-into-view.d.ts.map +1 -1
  394. package/package.json +13 -1
  395. package/src/components/chat/ask-prompts.tsx +226 -0
  396. package/src/components/chat/embeddable-chat.tsx +36 -2
  397. package/src/components/chat/entity-cards/case-study-card.tsx +122 -46
  398. package/src/components/chat/index.ts +1 -0
  399. package/src/components/chat/quick-action-chip.tsx +33 -9
  400. package/src/components/docs/use-scroll-spy.ts +93 -18
  401. package/src/components/faq/faq-section.tsx +82 -43
  402. package/src/components/features/array-entry-manager.tsx +10 -1
  403. package/src/components/features/board/board.tsx +4 -1
  404. package/src/components/features/board/ticket-card.tsx +11 -1
  405. package/src/components/features/board/touch-board.tsx +2 -1
  406. package/src/components/features/board/types.ts +3 -0
  407. package/src/components/features/board/use-board-collapse.ts +7 -2
  408. package/src/components/features/capability-explorer.tsx +412 -0
  409. package/src/components/features/cloud-tenants/index.ts +28 -0
  410. package/src/components/features/cloud-tenants/tenant-access-cell.tsx +24 -0
  411. package/src/components/features/cloud-tenants/tenant-cell.tsx +26 -0
  412. package/src/components/features/cloud-tenants/tenant-customer-cell.tsx +27 -0
  413. package/src/components/features/cloud-tenants/tenant-presentation.ts +111 -0
  414. package/src/components/features/cloud-tenants/tenant-row.ts +21 -0
  415. package/src/components/features/cloud-tenants/tenants-table-columns.ts +30 -0
  416. package/src/components/features/cloud-tenants/tenants-table-view.tsx +142 -0
  417. package/src/components/features/devices/device-last-online.ts +6 -0
  418. package/src/components/features/devices/device-name.ts +51 -0
  419. package/src/components/features/devices/device-selector/device-selection-mode-radio.tsx +107 -0
  420. package/src/components/features/devices/device-selector/device-selector-skeleton.tsx +32 -0
  421. package/src/components/features/devices/device-selector/device-selector.tsx +799 -0
  422. package/src/components/features/devices/device-selector/device-selector.types.ts +138 -0
  423. package/src/components/features/devices/device-selector/narrowing.ts +33 -0
  424. package/src/components/features/devices/device-selector/use-device-selector.ts +51 -0
  425. package/src/components/features/devices/device-status.ts +102 -0
  426. package/src/components/features/devices/device-statuses.ts +88 -0
  427. package/src/components/features/devices/device-tags-filter-button.tsx +49 -0
  428. package/src/components/features/devices/device-type-icon.tsx +29 -0
  429. package/src/components/features/devices/device-type-tile.tsx +17 -0
  430. package/src/components/features/devices/devices-filter-toolbar.tsx +114 -0
  431. package/src/components/features/devices/devices-grid-filters.tsx +99 -0
  432. package/src/components/features/devices/devices-grid.tsx +86 -0
  433. package/src/components/features/devices/devices-list.tsx +357 -0
  434. package/src/components/features/devices/devices-panel-header.tsx +97 -0
  435. package/src/components/features/devices/devices-panel-view.tsx +261 -0
  436. package/src/components/features/devices/devices-table-columns.tsx +356 -0
  437. package/src/components/features/devices/devices-view-config.tsx +38 -0
  438. package/src/components/features/devices/index.ts +89 -0
  439. package/src/components/features/devices/types.ts +74 -0
  440. package/src/components/features/devices/use-tag-filter-modal.ts +109 -0
  441. package/src/components/features/index.ts +9 -0
  442. package/src/components/features/knowledge-base/index.ts +19 -0
  443. package/src/components/features/knowledge-base/knowledge-base-article-view.tsx +134 -0
  444. package/src/components/features/knowledge-base/knowledge-base-item-icon.ts +14 -0
  445. package/src/components/features/knowledge-base/knowledge-base-status.ts +12 -0
  446. package/src/components/features/knowledge-base/knowledge-base-table.tsx +180 -0
  447. package/src/components/features/logs/index.ts +20 -0
  448. package/src/components/features/logs/log-drawer.tsx +138 -0
  449. package/src/components/features/logs/log-source-labels.ts +25 -0
  450. package/src/components/features/logs/logs-page-view.tsx +100 -0
  451. package/src/components/features/logs/logs-table-columns.ts +16 -0
  452. package/src/components/features/logs/logs-table-view.tsx +509 -0
  453. package/src/components/features/logs/types.ts +71 -0
  454. package/src/components/features/policies/compute-policy-summary.ts +115 -0
  455. package/src/components/features/policies/index.ts +14 -0
  456. package/src/components/features/policies/policies-table.tsx +235 -0
  457. package/src/components/features/policies/policy-summary-cards.tsx +69 -0
  458. package/src/components/features/policies/policy-table-row.ts +37 -0
  459. package/src/components/features/remote-session/index.ts +8 -0
  460. package/src/components/features/remote-session/remote-desktop-chat-message-row.tsx +56 -0
  461. package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +102 -0
  462. package/src/components/features/remote-session/remote-desktop-fullscreen-toolbar.tsx +119 -0
  463. package/src/components/features/remote-session/remote-desktop-view.tsx +209 -0
  464. package/src/components/features/software/index.ts +39 -0
  465. package/src/components/features/software/package-managers.ts +54 -0
  466. package/src/components/features/software/package-search-field-placeholder.tsx +23 -0
  467. package/src/components/features/software/schedule-fields.tsx +105 -0
  468. package/src/components/features/software/software-action-copy.ts +70 -0
  469. package/src/components/features/software/software-action-form.tsx +199 -0
  470. package/src/components/features/software/software-row-fields.tsx +105 -0
  471. package/src/components/features/software/software-row.ts +22 -0
  472. package/src/components/features/sortable-list/index.ts +1 -0
  473. package/src/components/features/sortable-list/sortable-drag-handle.tsx +41 -0
  474. package/src/components/layout/page-heading.tsx +23 -6
  475. package/src/components/navigation/index.ts +5 -0
  476. package/src/components/navigation/mingo-ai-button.tsx +37 -13
  477. package/src/components/navigation/sticky-section-nav.tsx +99 -1
  478. package/src/components/product-demo/cast.tsx +78 -0
  479. package/src/components/product-demo/fixtures/cloud-tenants.ts +63 -0
  480. package/src/components/product-demo/fixtures/devices.ts +87 -0
  481. package/src/components/product-demo/fixtures/knowledge.ts +48 -0
  482. package/src/components/product-demo/fixtures/logs.ts +103 -0
  483. package/src/components/product-demo/fixtures/policies.ts +77 -0
  484. package/src/components/product-demo/fixtures/remote-session.ts +65 -0
  485. package/src/components/product-demo/fixtures/shared.ts +53 -0
  486. package/src/components/product-demo/fixtures/software-update.ts +63 -0
  487. package/src/components/product-demo/fixtures/tickets-board.ts +100 -0
  488. package/src/components/product-demo/index.ts +7 -0
  489. package/src/components/product-demo/product-screen.tsx +94 -0
  490. package/src/components/product-demo/registry.ts +20 -0
  491. package/src/components/product-demo/screen-keys.ts +31 -0
  492. package/src/components/product-demo/screens/cloud-tenants.tsx +23 -0
  493. package/src/components/product-demo/screens/devices.tsx +41 -0
  494. package/src/components/product-demo/screens/knowledge.tsx +27 -0
  495. package/src/components/product-demo/screens/logs.tsx +113 -0
  496. package/src/components/product-demo/screens/policies.tsx +29 -0
  497. package/src/components/product-demo/screens/remote-desktop-picture.tsx +118 -0
  498. package/src/components/product-demo/screens/remote-session.tsx +46 -0
  499. package/src/components/product-demo/screens/software-update.tsx +97 -0
  500. package/src/components/product-demo/screens/tickets-board.tsx +28 -0
  501. package/src/components/product-demo/types.ts +10 -0
  502. package/src/components/ui/index.ts +1 -0
  503. package/src/components/ui/product-screen-frame.tsx +136 -0
  504. package/src/components/ui/radio-group.tsx +16 -4
  505. package/src/components/ui/snap-carousel.tsx +26 -1
  506. package/src/components/ui/tag.tsx +5 -0
  507. package/src/hooks/ui/index.ts +1 -0
  508. package/src/hooks/ui/use-header-height.ts +51 -2
  509. package/src/hooks/ui/use-sticky-toolbar.ts +60 -0
  510. package/src/hooks/use-location-hash.ts +9 -5
  511. package/src/hooks/use-scroll-to-hash.ts +9 -1
  512. package/src/types/case-study.ts +21 -1
  513. package/src/utils/date-utils.ts +8 -1
  514. package/src/utils/index.ts +5 -0
  515. package/src/utils/open-in-new-tab.ts +12 -0
  516. package/src/utils/same-page-hash-nav.ts +57 -0
  517. package/src/utils/scroll-into-view.ts +21 -5
  518. package/dist/chunk-BM5MVGH3.cjs +0 -499
  519. package/dist/chunk-CUME3VTQ.js +0 -144
  520. package/dist/chunk-CZ7Y7UG4.js +0 -732
  521. package/dist/chunk-FLKJYMVB.js +0 -499
  522. package/dist/chunk-OF6GEI5A.cjs +0 -144
  523. package/dist/chunk-UVTD52MD.cjs +0 -732
@@ -1,51 +1,55 @@
1
1
  "use client";
2
2
  import {
3
3
  useOptionalTicketLive
4
- } from "./chunk-NF7GNGYG.js";
4
+ } from "./chunk-DDWFCWOE.js";
5
5
  import {
6
6
  AppLayoutDrawerContainerContext,
7
7
  AppLayoutDrawerCoordinationContext,
8
- HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
9
8
  HeaderButton,
10
9
  NotificationDrawer,
11
10
  SocialIconRow,
12
11
  TimeTrackerHeaderButton,
13
12
  UnreadCountBadge,
14
13
  UnreadDot,
15
- buildTicketOpenHref,
16
14
  useOptionalNotifications
17
- } from "./chunk-5HB7FLCV.js";
15
+ } from "./chunk-FCAVAEHF.js";
18
16
  import {
19
17
  resolveActiveSection,
20
- shortcutLabel,
21
18
  useActiveSection,
22
19
  useFocusTrap,
23
- useLocalStorage,
24
- useNavMenus,
25
- useVisitorOs,
26
- usesCommandKey
27
- } from "./chunk-KUC673HM.js";
20
+ useNavMenus
21
+ } from "./chunk-6T3BTD6Q.js";
28
22
  import {
23
+ useLocalStorage
24
+ } from "./chunk-3K5ZLZE7.js";
25
+ import {
26
+ HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
27
+ MingoAiButton,
29
28
  OVERLAY_BACKDROP_CLASS,
29
+ buildTicketOpenHref,
30
30
  useIsHydrated
31
- } from "./chunk-SMAAV3HL.js";
31
+ } from "./chunk-ROBQ5TR7.js";
32
32
  import {
33
33
  useHeaderHeight
34
- } from "./chunk-CZ7Y7UG4.js";
34
+ } from "./chunk-CMZ3QTFQ.js";
35
35
  import {
36
36
  CaseStudyCard,
37
- EntityIcon,
37
+ EntityIcon
38
+ } from "./chunk-TTVOLEUS.js";
39
+ import {
38
40
  SquareAvatar,
39
41
  Tag
40
- } from "./chunk-FI6GMDO7.js";
42
+ } from "./chunk-IYVFSLWJ.js";
43
+ import {
44
+ ContentAreaWidthContext
45
+ } from "./chunk-KEKCQENI.js";
41
46
  import {
42
- ContentAreaWidthContext,
43
47
  breakpoints,
44
48
  useIsomorphicLayoutEffect,
45
49
  useLgUp,
46
50
  useMdUp,
47
51
  useMediaQuery
48
- } from "./chunk-FXJ3WWUB.js";
52
+ } from "./chunk-ADBE7QF3.js";
49
53
  import {
50
54
  LogOutIcon,
51
55
  MingoIcon,
@@ -71,7 +75,7 @@ import {
71
75
  DropdownMenuContent,
72
76
  DropdownMenuItem,
73
77
  DropdownMenuTrigger
74
- } from "./chunk-FLKJYMVB.js";
78
+ } from "./chunk-WI6FHKD7.js";
75
79
  import {
76
80
  SearchIcon
77
81
  } from "./chunk-INS7KZJB.js";
@@ -86,114 +90,7 @@ import {
86
90
  } from "./chunk-7RXWKTAP.js";
87
91
 
88
92
  // src/components/navigation/site-header.tsx
89
- import { useEffect as useEffect2, useRef, useState } from "react";
90
-
91
- // src/components/navigation/mingo-ai-button.tsx
92
- import { useEffect } from "react";
93
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
94
- var MINGO_ACCENT = "var(--ods-flamingo-cyan-base)";
95
- var ASK_AI_OPEN_EVENT = "ask-ai:open";
96
- function openAskAi(source) {
97
- window.dispatchEvent(new CustomEvent(ASK_AI_OPEN_EVENT, { detail: { source: source ?? "" } }));
98
- }
99
- function MingoAiButton({
100
- source,
101
- icon,
102
- label = "Mingo AI",
103
- shortcutHint = false,
104
- variant = "inline",
105
- className,
106
- onClick,
107
- ...props
108
- }) {
109
- const visitor = useVisitorOs();
110
- const field = variant === "field";
111
- const commandKey = visitor.known && usesCommandKey(visitor.os);
112
- useEffect(() => {
113
- if (!shortcutHint) return void 0;
114
- const onKeyDown = (event) => {
115
- if (event.defaultPrevented || event.altKey || event.shiftKey) return;
116
- const modifier = commandKey ? event.metaKey && !event.ctrlKey : event.ctrlKey && !event.metaKey;
117
- if (event.key.toLowerCase() !== "k" || !modifier) return;
118
- event.preventDefault();
119
- openAskAi(source);
120
- };
121
- window.addEventListener("keydown", onKeyDown);
122
- return () => window.removeEventListener("keydown", onKeyDown);
123
- }, [shortcutHint, source, commandKey]);
124
- return /* @__PURE__ */ jsxs(
125
- Button,
126
- {
127
- ...props,
128
- type: "button",
129
- variant: field ? "glyph" : "transparent",
130
- size: "wrap",
131
- font: "regular",
132
- "aria-label": label,
133
- "aria-keyshortcuts": shortcutHint && visitor.known ? commandKey ? "Meta+K" : "Control+K" : void 0,
134
- onClick: (e) => {
135
- openAskAi(source);
136
- onClick?.(e);
137
- },
138
- className: cn(
139
- "group/mingo flex shrink-0 justify-start focus-visible:ring-ods-accent",
140
- field ? (
141
- // A row of the mobile menu like the groups under it: same height,
142
- // type and divider, no surface and no ring of its own.
143
- "min-h-14 w-full gap-[var(--spacing-system-sf)] rounded-none border-b border-ods-border text-left text-h4 [&_svg]:h-6 [&_svg]:w-6"
144
- ) : (
145
- // Transparent at rest so it inherits the bar's background; the hover
146
- // wash is the menu items' own.
147
- "h-10 gap-[var(--spacing-system-xsf)] rounded-md pl-[var(--spacing-system-xsf)] pr-2.5 text-ods-text-secondary hover:text-ods-text-primary"
148
- ),
149
- className
150
- ),
151
- children: [
152
- !field && /* @__PURE__ */ jsxs(Fragment, { children: [
153
- /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "mingo-edge-frame pointer-events-none absolute inset-0 rounded-md", children: /* @__PURE__ */ jsx("span", { className: "mingo-edge" }) }),
154
- /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx(
155
- "span",
156
- {
157
- className: "mingo-shimmer absolute inset-y-0 left-0 w-1/2",
158
- style: {
159
- background: "linear-gradient(105deg, transparent, color-mix(in srgb, var(--ods-system-greys-white) 12%, transparent), transparent)"
160
- }
161
- }
162
- ) })
163
- ] }),
164
- icon ? /* @__PURE__ */ jsx(
165
- "span",
166
- {
167
- className: cn(
168
- "relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full",
169
- field ? "size-6" : "size-5"
170
- ),
171
- children: icon
172
- }
173
- ) : /* @__PURE__ */ jsx(
174
- MingoIcon,
175
- {
176
- color: "currentColor",
177
- eyesColor: MINGO_ACCENT,
178
- cornerColor: MINGO_ACCENT,
179
- className: cn("relative shrink-0 text-ods-text-primary", field ? "size-6" : "size-5")
180
- }
181
- ),
182
- /* @__PURE__ */ jsx(
183
- "span",
184
- {
185
- className: cn("relative whitespace-nowrap", field ? "min-w-0 flex-1 truncate" : "hidden text-h6 lg:inline"),
186
- children: label
187
- }
188
- ),
189
- shortcutHint && !field && // A key cap in the label's own type (never smaller: a hint nobody can
190
- // read is decoration) and the label's colour, which clears 4.5:1 on
191
- // the bar. It keeps its width before the platform is known.
192
- /* @__PURE__ */ jsx("kbd", { className: "relative hidden h-6 min-w-9 items-center justify-center rounded border border-ods-border px-[var(--spacing-system-xxs)] text-h6 lg:inline-flex", children: visitor.known ? shortcutLabel(visitor.os, "K") : "" })
193
- ]
194
- }
195
- );
196
- }
93
+ import { useEffect, useRef, useState } from "react";
197
94
 
198
95
  // src/components/navigation/mobile-nav-sheet-id.ts
199
96
  var MOBILE_NAV_SHEET_ID = "mobile-nav-sheet";
@@ -202,15 +99,15 @@ var MOBILE_NAV_SHEET_ID = "mobile-nav-sheet";
202
99
  import { forwardRef } from "react";
203
100
 
204
101
  // src/components/navigation/site-nav-link.tsx
205
- import { jsx as jsx2 } from "react/jsx-runtime";
206
- var defaultRenderSiteNavLink = ({ link, children, ...rest }) => link.external ? /* @__PURE__ */ jsx2(next_link_default, { href: link.href, target: "_blank", rel: "noopener noreferrer", ...rest, children }) : /* @__PURE__ */ jsx2(next_link_default, { href: link.href, ...rest, children });
102
+ import { jsx } from "react/jsx-runtime";
103
+ var defaultRenderSiteNavLink = ({ link, children, ...rest }) => link.external ? /* @__PURE__ */ jsx(next_link_default, { href: link.href, target: "_blank", rel: "noopener noreferrer", ...rest, children }) : /* @__PURE__ */ jsx(next_link_default, { href: link.href, ...rest, children });
207
104
  function navLinkLabel(link) {
208
105
  return link.count === void 0 ? link.label : link.label.replace("{count}", String(link.count));
209
106
  }
210
107
  var NAV_FOCUS_CLASS = "outline-none focus-visible:ring-2 focus-visible:ring-ods-accent";
211
108
 
212
109
  // src/components/navigation/nav-item-row.tsx
213
- import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
110
+ import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
214
111
  var ROW_CLASSES = {
215
112
  panel: "flex items-start gap-[var(--spacing-system-sf)] rounded-lg p-[var(--spacing-system-sf)] text-ods-text-primary transition-colors hover:bg-ods-bg-hover",
216
113
  sheet: "flex min-h-[52px] items-center gap-[var(--spacing-system-sf)] py-1.5 text-ods-text-primary",
@@ -219,17 +116,17 @@ var ROW_CLASSES = {
219
116
  };
220
117
  function RowGlyph({ link, box, glyph }) {
221
118
  if (link.icon) {
222
- return /* @__PURE__ */ jsx3(
119
+ return /* @__PURE__ */ jsx2(
223
120
  "span",
224
121
  {
225
122
  "aria-hidden": "true",
226
123
  className: cn("flex shrink-0 items-center justify-center overflow-hidden rounded-full", box),
227
- children: /* @__PURE__ */ jsx3(EntityIcon, { icon: link.icon, className: "h-full w-full" })
124
+ children: /* @__PURE__ */ jsx2(EntityIcon, { icon: link.icon, className: "h-full w-full" })
228
125
  }
229
126
  );
230
127
  }
231
128
  if (!link.iconName) return null;
232
- return /* @__PURE__ */ jsx3(
129
+ return /* @__PURE__ */ jsx2(
233
130
  "span",
234
131
  {
235
132
  "aria-hidden": "true",
@@ -237,7 +134,7 @@ function RowGlyph({ link, box, glyph }) {
237
134
  "flex shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-bg text-ods-text-primary",
238
135
  box
239
136
  ),
240
- children: /* @__PURE__ */ jsx3(EntityIcon, { icon: { name: link.iconName }, size: glyph })
137
+ children: /* @__PURE__ */ jsx2(EntityIcon, { icon: { name: link.iconName }, size: glyph })
241
138
  }
242
139
  );
243
140
  }
@@ -250,7 +147,7 @@ function NavItemRow({
250
147
  className
251
148
  }) {
252
149
  const label = navLinkLabel(link);
253
- const counter = badge ? /* @__PURE__ */ jsx3(UnreadCountBadge, { count: badge, className: "static shrink-0" }) : null;
150
+ const counter = badge ? /* @__PURE__ */ jsx2(UnreadCountBadge, { count: badge, className: "static shrink-0" }) : null;
254
151
  const singleLine = !link.description && !link.builtOn;
255
152
  const rowClassName = cn(
256
153
  ROW_CLASSES[variant],
@@ -261,38 +158,38 @@ function NavItemRow({
261
158
  const onClick = onNavigate ? () => onNavigate() : void 0;
262
159
  let children;
263
160
  if (variant === "label") {
264
- children = /* @__PURE__ */ jsxs2(Fragment2, { children: [
161
+ children = /* @__PURE__ */ jsxs(Fragment, { children: [
265
162
  label,
266
163
  counter
267
164
  ] });
268
165
  } else if (variant === "side") {
269
- children = /* @__PURE__ */ jsxs2(Fragment2, { children: [
270
- link.iconName && /* @__PURE__ */ jsx3("span", { "aria-hidden": "true", className: "flex shrink-0", children: /* @__PURE__ */ jsx3(EntityIcon, { icon: { name: link.iconName }, size: 18 }) }),
271
- /* @__PURE__ */ jsx3("span", { className: "min-w-0 flex-1", children: label }),
166
+ children = /* @__PURE__ */ jsxs(Fragment, { children: [
167
+ link.iconName && /* @__PURE__ */ jsx2("span", { "aria-hidden": "true", className: "flex shrink-0", children: /* @__PURE__ */ jsx2(EntityIcon, { icon: { name: link.iconName }, size: 18 }) }),
168
+ /* @__PURE__ */ jsx2("span", { className: "min-w-0 flex-1", children: label }),
272
169
  counter
273
170
  ] });
274
171
  } else {
275
172
  const sheet = variant === "sheet";
276
- children = /* @__PURE__ */ jsxs2(Fragment2, { children: [
277
- /* @__PURE__ */ jsx3(RowGlyph, { link, box: sheet ? "h-8 w-8" : "h-9 w-9", glyph: sheet ? 18 : 20 }),
278
- /* @__PURE__ */ jsxs2("span", { className: "flex min-w-0 flex-1 flex-col", children: [
279
- /* @__PURE__ */ jsxs2("span", { className: "flex items-center gap-[var(--spacing-system-xsf)] text-h6", children: [
280
- /* @__PURE__ */ jsx3("span", { className: "min-w-0", children: label }),
173
+ children = /* @__PURE__ */ jsxs(Fragment, { children: [
174
+ /* @__PURE__ */ jsx2(RowGlyph, { link, box: sheet ? "h-8 w-8" : "h-9 w-9", glyph: sheet ? 18 : 20 }),
175
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 flex-col", children: [
176
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-[var(--spacing-system-xsf)] text-h6", children: [
177
+ /* @__PURE__ */ jsx2("span", { className: "min-w-0", children: label }),
281
178
  counter
282
179
  ] }),
283
- link.description && /* @__PURE__ */ jsx3("span", { className: "text-ods-text-muted text-h6", children: link.description }),
284
- link.builtOn && /* @__PURE__ */ jsxs2("span", { className: "text-ods-text-muted text-h6", children: [
180
+ link.description && /* @__PURE__ */ jsx2("span", { className: "text-ods-text-muted text-h6", children: link.description }),
181
+ link.builtOn && /* @__PURE__ */ jsxs("span", { className: "text-ods-text-muted text-h6", children: [
285
182
  "Built on ",
286
183
  link.builtOn
287
184
  ] })
288
185
  ] })
289
186
  ] });
290
187
  }
291
- return /* @__PURE__ */ jsx3(Fragment2, { children: renderLink({ link, className: rowClassName, children, onClick }) });
188
+ return /* @__PURE__ */ jsx2(Fragment, { children: renderLink({ link, className: rowClassName, children, onClick }) });
292
189
  }
293
190
 
294
191
  // src/components/navigation/nav-panel.tsx
295
- import { Fragment as Fragment3, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
192
+ import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
296
193
  var TWO_COLUMN_OVER = 4;
297
194
  function isMegaMenu(menu) {
298
195
  return (menu.columns?.length ?? 0) > 1 || !!menu.features?.length || !!menu.sideLinks?.length;
@@ -304,13 +201,13 @@ function Column({
304
201
  rowProps
305
202
  }) {
306
203
  const twoColumns = wide && group.links.length > TWO_COLUMN_OVER;
307
- return /* @__PURE__ */ jsxs3("div", { className: cn("flex min-w-0 flex-col", wide && (twoColumns ? "flex-[2]" : "flex-1")), children: [
308
- group.title && /* @__PURE__ */ jsx4("div", { className: HEADING_CLASS, children: group.title }),
309
- /* @__PURE__ */ jsx4(
204
+ return /* @__PURE__ */ jsxs2("div", { className: cn("flex min-w-0 flex-col", wide && (twoColumns ? "flex-[2]" : "flex-1")), children: [
205
+ group.title && /* @__PURE__ */ jsx3("div", { className: HEADING_CLASS, children: group.title }),
206
+ /* @__PURE__ */ jsx3(
310
207
  "div",
311
208
  {
312
209
  className: twoColumns ? "grid grid-cols-2 gap-x-[var(--spacing-system-mf)] gap-y-[var(--spacing-system-xxs)]" : "flex flex-col gap-[var(--spacing-system-xxs)]",
313
- children: group.links.map((link) => /* @__PURE__ */ jsx4(
210
+ children: group.links.map((link) => /* @__PURE__ */ jsx3(
314
211
  NavItemRow,
315
212
  {
316
213
  link,
@@ -340,7 +237,7 @@ var NavPanel = forwardRef(function NavPanelImpl({
340
237
  const mega = isMegaMenu(menu);
341
238
  const rowProps = { renderLink, badges, onNavigate };
342
239
  const socialRow = menu.showSocial && social ? social : null;
343
- return /* @__PURE__ */ jsx4(
240
+ return /* @__PURE__ */ jsx3(
344
241
  "div",
345
242
  {
346
243
  inert: !open,
@@ -360,17 +257,17 @@ var NavPanel = forwardRef(function NavPanelImpl({
360
257
  children: mega ? (
361
258
  // ONE height for every mega menu, so moving between menus (and a
362
259
  // card's cover loading) never resizes the panel under the pointer.
363
- /* @__PURE__ */ jsxs3(
260
+ /* @__PURE__ */ jsxs2(
364
261
  "div",
365
262
  {
366
263
  "data-motion": open ? motion2 : void 0,
367
264
  className: "nav-panel-content flex h-[400px] max-h-[calc(100svh-var(--top-nav-height,72px))] flex-col gap-[var(--spacing-system-mf)] overflow-y-auto px-[var(--spacing-system-lf)] pb-[var(--spacing-system-xlf)] pt-8",
368
265
  children: [
369
- /* @__PURE__ */ jsxs3("div", { className: "flex min-h-0 flex-1 gap-[var(--spacing-system-xlf)]", children: [
370
- columns.map((group) => /* @__PURE__ */ jsx4(Column, { group, wide: true, rowProps }, group.id)),
266
+ /* @__PURE__ */ jsxs2("div", { className: "flex min-h-0 flex-1 gap-[var(--spacing-system-xlf)]", children: [
267
+ columns.map((group) => /* @__PURE__ */ jsx3(Column, { group, wide: true, rowProps }, group.id)),
371
268
  !!menu.features?.length && // One row of cards, as many as the bar's width holds: a card that
372
269
  // would wrap lands on a zero-height row, where its cell clips it.
373
- /* @__PURE__ */ jsx4("div", { className: "grid min-w-0 flex-[3] auto-rows-[0px] grid-cols-[repeat(auto-fit,minmax(240px,1fr))] grid-rows-[minmax(0,1fr)] gap-x-[var(--spacing-system-mf)]", children: menu.features.map((feature) => /* @__PURE__ */ jsx4("div", { className: "min-h-0 min-w-0 overflow-hidden", children: /* @__PURE__ */ jsx4(
270
+ /* @__PURE__ */ jsx3("div", { className: "grid min-w-0 flex-[3] auto-rows-[0px] grid-cols-[repeat(auto-fit,minmax(240px,1fr))] grid-rows-[minmax(0,1fr)] gap-x-[var(--spacing-system-mf)]", children: menu.features.map((feature) => /* @__PURE__ */ jsx3("div", { className: "min-h-0 min-w-0 overflow-hidden", children: /* @__PURE__ */ jsx3(
374
271
  CaseStudyCard,
375
272
  {
376
273
  size: "menu",
@@ -381,9 +278,9 @@ var NavPanel = forwardRef(function NavPanelImpl({
381
278
  className: "h-full"
382
279
  }
383
280
  ) }, feature.id)) }),
384
- !!menu.sideLinks?.length && /* @__PURE__ */ jsxs3("div", { className: "flex w-[260px] shrink-0 flex-col gap-0.5 border-l border-ods-border pl-8 pt-5", children: [
385
- menu.sideTitle && /* @__PURE__ */ jsx4("div", { className: HEADING_CLASS, children: menu.sideTitle }),
386
- menu.sideLinks.map((link) => /* @__PURE__ */ jsx4(
281
+ !!menu.sideLinks?.length && /* @__PURE__ */ jsxs2("div", { className: "flex w-[260px] shrink-0 flex-col gap-0.5 border-l border-ods-border pl-8 pt-5", children: [
282
+ menu.sideTitle && /* @__PURE__ */ jsx3("div", { className: HEADING_CLASS, children: menu.sideTitle }),
283
+ menu.sideLinks.map((link) => /* @__PURE__ */ jsx3(
387
284
  NavItemRow,
388
285
  {
389
286
  link,
@@ -395,13 +292,13 @@ var NavPanel = forwardRef(function NavPanelImpl({
395
292
  ))
396
293
  ] })
397
294
  ] }),
398
- socialRow && /* @__PURE__ */ jsx4("div", { className: "border-t border-ods-border px-[var(--spacing-system-sf)] pt-[var(--spacing-system-mf)]", children: socialRow })
295
+ socialRow && /* @__PURE__ */ jsx3("div", { className: "border-t border-ods-border px-[var(--spacing-system-sf)] pt-[var(--spacing-system-mf)]", children: socialRow })
399
296
  ]
400
297
  }
401
298
  )
402
- ) : /* @__PURE__ */ jsxs3(Fragment3, { children: [
403
- columns.map((group) => /* @__PURE__ */ jsx4(Column, { group, wide: false, rowProps }, group.id)),
404
- socialRow && /* @__PURE__ */ jsx4("div", { className: "mt-[var(--spacing-system-xsf)] border-t border-ods-border px-[var(--spacing-system-sf)] pt-[var(--spacing-system-sf)]", children: socialRow })
299
+ ) : /* @__PURE__ */ jsxs2(Fragment2, { children: [
300
+ columns.map((group) => /* @__PURE__ */ jsx3(Column, { group, wide: false, rowProps }, group.id)),
301
+ socialRow && /* @__PURE__ */ jsx3("div", { className: "mt-[var(--spacing-system-xsf)] border-t border-ods-border px-[var(--spacing-system-sf)] pt-[var(--spacing-system-sf)]", children: socialRow })
405
302
  ] })
406
303
  }
407
304
  );
@@ -409,7 +306,7 @@ var NavPanel = forwardRef(function NavPanelImpl({
409
306
  NavPanel.displayName = "NavPanel";
410
307
 
411
308
  // src/components/navigation/top-navigation.tsx
412
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
309
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
413
310
  var SIZE_CLASSES = {
414
311
  small: "h-14 [--top-nav-cell:3.5rem]",
415
312
  big: "h-[72px] [--top-nav-cell:4.5rem]"
@@ -440,7 +337,7 @@ function TopNavigation({
440
337
  children,
441
338
  ...props
442
339
  }) {
443
- return /* @__PURE__ */ jsxs4(
340
+ return /* @__PURE__ */ jsxs3(
444
341
  "header",
445
342
  {
446
343
  className: cn(
@@ -453,7 +350,7 @@ function TopNavigation({
453
350
  ...props,
454
351
  children: [
455
352
  leading,
456
- hasContent(logo) && /* @__PURE__ */ jsx5(
353
+ hasContent(logo) && /* @__PURE__ */ jsx4(
457
354
  "div",
458
355
  {
459
356
  className: cn(
@@ -465,7 +362,7 @@ function TopNavigation({
465
362
  children: logo
466
363
  }
467
364
  ),
468
- /* @__PURE__ */ jsx5(
365
+ /* @__PURE__ */ jsx4(
469
366
  "div",
470
367
  {
471
368
  className: cn(
@@ -476,7 +373,7 @@ function TopNavigation({
476
373
  children: center
477
374
  }
478
375
  ),
479
- hasContent(cta) && /* @__PURE__ */ jsx5("div", { className: cn("flex h-full shrink-0 items-center px-[var(--spacing-system-m)]", ctaClassName), children: cta }),
376
+ hasContent(cta) && /* @__PURE__ */ jsx4("div", { className: cn("flex h-full shrink-0 items-center px-[var(--spacing-system-m)]", ctaClassName), children: cta }),
480
377
  sideActions,
481
378
  children
482
379
  ]
@@ -485,10 +382,10 @@ function TopNavigation({
485
382
  }
486
383
 
487
384
  // src/components/navigation/site-header.tsx
488
- import { Fragment as Fragment4, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
385
+ import { Fragment as Fragment3, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
489
386
  var TOP_ITEM_CLASS = "relative inline-flex h-10 items-center gap-1.5 whitespace-nowrap rounded-md px-3.5 text-ods-text-secondary transition-colors text-h6 hover:bg-ods-bg-hover hover:text-ods-text-primary";
490
387
  var TOP_ITEM_CURRENT_CLASS = "rounded-b-none bg-gradient-to-b from-transparent to-ods-accent/10 text-ods-text-primary after:absolute after:inset-x-0 after:bottom-0 after:h-0.5 after:bg-ods-accent";
491
- var menuIcon = (menu) => menu.iconName ? /* @__PURE__ */ jsx6(EntityIcon, { icon: { name: menu.iconName }, size: 20, className: "size-5 shrink-0" }) : null;
388
+ var menuIcon = (menu) => menu.iconName ? /* @__PURE__ */ jsx5(EntityIcon, { icon: { name: menu.iconName }, size: 20, className: "size-5 shrink-0" }) : null;
492
389
  function SiteHeader({
493
390
  nav,
494
391
  pathname,
@@ -520,7 +417,7 @@ function SiteHeader({
520
417
  const openMegaIndex = openId === null ? -1 : megaIds.indexOf(openId);
521
418
  const previousMegaIndex = previousId === null ? -1 : megaIds.indexOf(previousId);
522
419
  const megaMotion = openMegaIndex < 0 || previousMegaIndex < 0 ? "open" : openMegaIndex > previousMegaIndex ? "from-end" : "from-start";
523
- useEffect2(() => {
420
+ useEffect(() => {
524
421
  if (!autoHide) return void 0;
525
422
  const handleScroll = () => {
526
423
  const currentScrollY = window.scrollY;
@@ -538,7 +435,7 @@ function SiteHeader({
538
435
  const hasPanel = !!menu.columns?.length || !!menu.features?.length || !!menu.sideLinks?.length;
539
436
  if (!hasPanel) {
540
437
  if (!menu.href) return null;
541
- return /* @__PURE__ */ jsx6("div", { className: "flex", children: /* @__PURE__ */ jsx6(
438
+ return /* @__PURE__ */ jsx5("div", { className: "flex", children: /* @__PURE__ */ jsx5(
542
439
  Button,
543
440
  {
544
441
  asChild: true,
@@ -549,7 +446,7 @@ function SiteHeader({
549
446
  children: renderLink({
550
447
  link: { href: menu.href },
551
448
  "aria-current": current ? "page" : void 0,
552
- children: /* @__PURE__ */ jsxs5(Fragment4, { children: [
449
+ children: /* @__PURE__ */ jsxs4(Fragment3, { children: [
553
450
  menuIcon(menu),
554
451
  menu.label
555
452
  ] })
@@ -561,8 +458,8 @@ function SiteHeader({
561
458
  return (
562
459
  // A dropdown is anchored to its trigger (`relative`); a mega menu to the
563
460
  // bar itself, so its wrapper stays unpositioned.
564
- /* @__PURE__ */ jsxs5("div", { className: cn("flex", !isMegaMenu(menu) && "relative"), children: [
565
- /* @__PURE__ */ jsxs5(
461
+ /* @__PURE__ */ jsxs4("div", { className: cn("flex", !isMegaMenu(menu) && "relative"), children: [
462
+ /* @__PURE__ */ jsxs4(
566
463
  Button,
567
464
  {
568
465
  type: "button",
@@ -580,7 +477,7 @@ function SiteHeader({
580
477
  children: [
581
478
  menuIcon(menu),
582
479
  menu.label,
583
- /* @__PURE__ */ jsx6(
480
+ /* @__PURE__ */ jsx5(
584
481
  Chevron02DownIcon,
585
482
  {
586
483
  "aria-hidden": "true",
@@ -590,7 +487,7 @@ function SiteHeader({
590
487
  ]
591
488
  }
592
489
  ),
593
- /* @__PURE__ */ jsx6(
490
+ /* @__PURE__ */ jsx5(
594
491
  NavPanel,
595
492
  {
596
493
  ...getPanelProps(menu.id),
@@ -607,16 +504,16 @@ function SiteHeader({
607
504
  ] }, menu.id)
608
505
  );
609
506
  };
610
- const primaryCta = typeof nav.primaryCta === "object" ? /* @__PURE__ */ jsx6(Button, { variant: "accent", href: nav.primaryCta.href, children: nav.primaryCta.label }) : nav.primaryCta === "none" ? null : cta ?? null;
507
+ const primaryCta = typeof nav.primaryCta === "object" ? /* @__PURE__ */ jsx5(Button, { variant: "accent", href: nav.primaryCta.href, children: nav.primaryCta.label }) : nav.primaryCta === "none" ? null : cta ?? null;
611
508
  const hasRight = !!mingo || !!nav.signIn || !!actions || !!primaryCta;
612
- return /* @__PURE__ */ jsxs5(
509
+ return /* @__PURE__ */ jsxs4(
613
510
  "div",
614
511
  {
615
512
  "data-site-header": "",
616
513
  className: "sticky top-0 z-[50] w-full transition-transform duration-300 ease-in-out",
617
514
  style: { transform: headerShown ? "translateY(0)" : "translateY(-100%)" },
618
515
  children: [
619
- /* @__PURE__ */ jsx6(
516
+ /* @__PURE__ */ jsx5(
620
517
  next_link_default,
621
518
  {
622
519
  href: `#${skipToContentId}`,
@@ -627,7 +524,7 @@ function SiteHeader({
627
524
  children: "Skip to content"
628
525
  }
629
526
  ),
630
- /* @__PURE__ */ jsx6(
527
+ /* @__PURE__ */ jsx5(
631
528
  TopNavigation,
632
529
  {
633
530
  className: cn("relative", className),
@@ -635,9 +532,9 @@ function SiteHeader({
635
532
  backgroundClassName,
636
533
  centerBreakpoint: "lg",
637
534
  size: "big",
638
- leading: /* @__PURE__ */ jsxs5(Fragment4, { children: [
535
+ leading: /* @__PURE__ */ jsxs4(Fragment3, { children: [
639
536
  leading,
640
- mobile && /* @__PURE__ */ jsx6(
537
+ mobile && /* @__PURE__ */ jsx5(
641
538
  HeaderButton,
642
539
  {
643
540
  className: "border-r border-ods-border lg:hidden",
@@ -646,7 +543,7 @@ function SiteHeader({
646
543
  "aria-label": mobile.isOpen ? "Close menu" : "Open menu",
647
544
  "aria-expanded": mobile.isOpen,
648
545
  "aria-controls": mobile.isOpen ? mobile.controlsId ?? MOBILE_NAV_SHEET_ID : void 0,
649
- icon: mobile.isOpen ? /* @__PURE__ */ jsx6(XmarkIcon, { className: "h-6 w-6" }) : /* @__PURE__ */ jsx6(Menu01Icon, { className: "h-6 w-6" })
546
+ icon: mobile.isOpen ? /* @__PURE__ */ jsx5(XmarkIcon, { className: "h-6 w-6" }) : /* @__PURE__ */ jsx5(Menu01Icon, { className: "h-6 w-6" })
650
547
  }
651
548
  )
652
549
  ] }),
@@ -660,10 +557,10 @@ function SiteHeader({
660
557
  children: logo
661
558
  }) : logo,
662
559
  logoClassName: "shrink pl-[var(--spacing-system-lf)] md:pl-[var(--spacing-system-lf)] lg:pl-[var(--spacing-system-lf)]",
663
- center: nav.menus.length > 0 ? /* @__PURE__ */ jsx6("nav", { "aria-label": "Main", className: "flex items-center gap-[var(--spacing-system-xxs)]", children: nav.menus.map(renderMenu) }) : void 0,
560
+ center: nav.menus.length > 0 ? /* @__PURE__ */ jsx5("nav", { "aria-label": "Main", className: "flex items-center gap-[var(--spacing-system-xxs)]", children: nav.menus.map(renderMenu) }) : void 0,
664
561
  centerClassName: "justify-start pl-[var(--spacing-system-xlf)]",
665
- cta: hasRight ? /* @__PURE__ */ jsxs5(Fragment4, { children: [
666
- mingo && /* @__PURE__ */ jsx6(
562
+ cta: hasRight ? /* @__PURE__ */ jsxs4(Fragment3, { children: [
563
+ mingo && /* @__PURE__ */ jsx5(
667
564
  MingoAiButton,
668
565
  {
669
566
  source: mingo.source,
@@ -672,7 +569,7 @@ function SiteHeader({
672
569
  shortcutHint: mingo.shortcutHint
673
570
  }
674
571
  ),
675
- nav.signIn && /* @__PURE__ */ jsx6("div", { className: "hidden lg:flex", children: /* @__PURE__ */ jsx6(
572
+ nav.signIn && /* @__PURE__ */ jsx5("div", { className: "hidden lg:flex", children: /* @__PURE__ */ jsx5(
676
573
  Button,
677
574
  {
678
575
  asChild: true,
@@ -698,7 +595,7 @@ function SiteHeader({
698
595
  // src/components/navigation/mobile-nav-sheet.tsx
699
596
  import { usePreventScroll } from "@react-aria/overlays";
700
597
  import { useRef as useRef2, useState as useState2 } from "react";
701
- import { Fragment as Fragment5, jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
598
+ import { Fragment as Fragment4, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
702
599
  function siteNavHasMobileMenus(nav) {
703
600
  return (nav.mobileMenus ?? nav.menus).length > 0;
704
601
  }
@@ -709,7 +606,7 @@ var menuLinks = (menu) => [
709
606
  ];
710
607
  function MobileNavSheet(props) {
711
608
  if (!props.isOpen) return null;
712
- return /* @__PURE__ */ jsx7(MobileNavSheetBody, { ...props });
609
+ return /* @__PURE__ */ jsx6(MobileNavSheetBody, { ...props });
713
610
  }
714
611
  function MobileNavSheetBody({
715
612
  nav,
@@ -733,9 +630,9 @@ function MobileNavSheetBody({
733
630
  const active = resolveActiveSection(menus, pathname);
734
631
  return active ? { [active]: true } : {};
735
632
  });
736
- const primaryCta = typeof nav.primaryCta === "object" ? /* @__PURE__ */ jsx7(Button, { variant: "accent", href: nav.primaryCta.href, onClick: onClose, className: "w-full", children: nav.primaryCta.label }) : nav.primaryCta === "none" ? null : cta ?? null;
633
+ const primaryCta = typeof nav.primaryCta === "object" ? /* @__PURE__ */ jsx6(Button, { variant: "accent", href: nav.primaryCta.href, onClick: onClose, className: "w-full", children: nav.primaryCta.label }) : nav.primaryCta === "none" ? null : cta ?? null;
737
634
  const hasFooter = !!actions || !!primaryCta || !!nav.signIn;
738
- return /* @__PURE__ */ jsxs6(
635
+ return /* @__PURE__ */ jsxs5(
739
636
  "div",
740
637
  {
741
638
  ref: sheetRef,
@@ -749,9 +646,9 @@ function MobileNavSheetBody({
749
646
  backgroundClassName ?? "bg-ods-bg"
750
647
  ),
751
648
  children: [
752
- /* @__PURE__ */ jsxs6("div", { className: "flex h-14 shrink-0 items-center justify-between border-b border-ods-border pl-5 pr-[var(--spacing-system-xsf)]", children: [
753
- /* @__PURE__ */ jsx7("div", { className: "flex min-w-0 items-center", children: logo }),
754
- /* @__PURE__ */ jsx7(
649
+ /* @__PURE__ */ jsxs5("div", { className: "flex h-14 shrink-0 items-center justify-between border-b border-ods-border pl-5 pr-[var(--spacing-system-xsf)]", children: [
650
+ /* @__PURE__ */ jsx6("div", { className: "flex min-w-0 items-center", children: logo }),
651
+ /* @__PURE__ */ jsx6(
755
652
  Button,
756
653
  {
757
654
  type: "button",
@@ -760,12 +657,12 @@ function MobileNavSheetBody({
760
657
  "aria-label": "Close menu",
761
658
  onClick: onClose,
762
659
  className: cn("h-11 w-11 shrink-0 md:h-11 md:w-11", NAV_FOCUS_CLASS),
763
- children: /* @__PURE__ */ jsx7(XmarkIcon, { "aria-hidden": "true", className: "!h-6 !w-6" })
660
+ children: /* @__PURE__ */ jsx6(XmarkIcon, { "aria-hidden": "true", className: "!h-6 !w-6" })
764
661
  }
765
662
  )
766
663
  ] }),
767
- /* @__PURE__ */ jsxs6("div", { className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain px-5", children: [
768
- askAI && /* @__PURE__ */ jsx7(
664
+ /* @__PURE__ */ jsxs5("div", { className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain px-5", children: [
665
+ askAI && /* @__PURE__ */ jsx6(
769
666
  MingoAiButton,
770
667
  {
771
668
  variant: "field",
@@ -775,24 +672,24 @@ function MobileNavSheetBody({
775
672
  onClick: onClose
776
673
  }
777
674
  ),
778
- /* @__PURE__ */ jsx7("nav", { "aria-label": "Main", children: menus.map((menu) => {
675
+ /* @__PURE__ */ jsx6("nav", { "aria-label": "Main", children: menus.map((menu) => {
779
676
  const links = menuLinks(menu);
780
677
  if (links.length === 0) {
781
678
  if (!menu.href) return null;
782
- return /* @__PURE__ */ jsx7("div", { className: "border-b border-ods-border", children: renderLink({
679
+ return /* @__PURE__ */ jsx6("div", { className: "border-b border-ods-border", children: renderLink({
783
680
  link: { href: menu.href },
784
681
  className: cn(GROUP_ROW_CLASS, NAV_FOCUS_CLASS),
785
682
  onClick: onClose,
786
- children: /* @__PURE__ */ jsxs6(Fragment5, { children: [
683
+ children: /* @__PURE__ */ jsxs5(Fragment4, { children: [
787
684
  menu.label,
788
- /* @__PURE__ */ jsx7(Chevron02RightIcon, { "aria-hidden": "true", className: "h-5 w-5 shrink-0 text-ods-text-muted" })
685
+ /* @__PURE__ */ jsx6(Chevron02RightIcon, { "aria-hidden": "true", className: "h-5 w-5 shrink-0 text-ods-text-muted" })
789
686
  ] })
790
687
  }) }, menu.id);
791
688
  }
792
689
  const open = !!openGroups[menu.id];
793
690
  const listId = `${MOBILE_NAV_SHEET_ID}-${menu.id}`;
794
- return /* @__PURE__ */ jsxs6("div", { className: "border-b border-ods-border", children: [
795
- /* @__PURE__ */ jsxs6(
691
+ return /* @__PURE__ */ jsxs5("div", { className: "border-b border-ods-border", children: [
692
+ /* @__PURE__ */ jsxs5(
796
693
  Button,
797
694
  {
798
695
  type: "button",
@@ -805,7 +702,7 @@ function MobileNavSheetBody({
805
702
  className: cn(GROUP_ROW_CLASS, NAV_FOCUS_CLASS),
806
703
  children: [
807
704
  menu.label,
808
- /* @__PURE__ */ jsx7(
705
+ /* @__PURE__ */ jsx6(
809
706
  Chevron02DownIcon,
810
707
  {
811
708
  "aria-hidden": "true",
@@ -818,8 +715,8 @@ function MobileNavSheetBody({
818
715
  ]
819
716
  }
820
717
  ),
821
- open && /* @__PURE__ */ jsxs6("div", { id: listId, className: "flex flex-col pb-[var(--spacing-system-sf)]", children: [
822
- links.map((link) => /* @__PURE__ */ jsx7(
718
+ open && /* @__PURE__ */ jsxs5("div", { id: listId, className: "flex flex-col pb-[var(--spacing-system-sf)]", children: [
719
+ links.map((link) => /* @__PURE__ */ jsx6(
823
720
  NavItemRow,
824
721
  {
825
722
  link,
@@ -830,12 +727,12 @@ function MobileNavSheetBody({
830
727
  },
831
728
  link.id
832
729
  )),
833
- menu.showSocial && social && /* @__PURE__ */ jsx7("div", { className: "pt-[var(--spacing-system-xsf)]", children: social })
730
+ menu.showSocial && social && /* @__PURE__ */ jsx6("div", { className: "pt-[var(--spacing-system-xsf)]", children: social })
834
731
  ] })
835
732
  ] }, menu.id);
836
733
  }) })
837
734
  ] }),
838
- hasFooter && /* @__PURE__ */ jsxs6("div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-xxs)] border-t border-ods-border px-5 pb-[max(1.75rem,env(safe-area-inset-bottom))] pt-[var(--spacing-system-mf)] [&_a]:w-full [&_button]:w-full", children: [
735
+ hasFooter && /* @__PURE__ */ jsxs5("div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-xxs)] border-t border-ods-border px-5 pb-[max(1.75rem,env(safe-area-inset-bottom))] pt-[var(--spacing-system-mf)] [&_a]:w-full [&_button]:w-full", children: [
839
736
  actions,
840
737
  primaryCta,
841
738
  nav.signIn && renderLink({
@@ -855,7 +752,7 @@ function MobileNavSheetBody({
855
752
 
856
753
  // src/components/navigation/site-footer.tsx
857
754
  import { useState as useState3 } from "react";
858
- import { Fragment as Fragment6, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
755
+ import { Fragment as Fragment5, jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
859
756
  var ACCORDION_OVER = 2;
860
757
  var DESKTOP_COLUMNS = {
861
758
  1: "md:grid-cols-1",
@@ -873,8 +770,8 @@ function FooterColumn({
873
770
  }) {
874
771
  const [open, setOpen] = useState3(false);
875
772
  const listId = `site-footer-${group.id}`;
876
- const links = group.links.map((link) => /* @__PURE__ */ jsx8("li", { children: /* @__PURE__ */ jsx8(NavItemRow, { link, variant: "label", renderLink }) }, link.id));
877
- return /* @__PURE__ */ jsxs7(
773
+ const links = group.links.map((link) => /* @__PURE__ */ jsx7("li", { children: /* @__PURE__ */ jsx7(NavItemRow, { link, variant: "label", renderLink }) }, link.id));
774
+ return /* @__PURE__ */ jsxs6(
878
775
  "div",
879
776
  {
880
777
  className: cn(
@@ -882,8 +779,8 @@ function FooterColumn({
882
779
  accordion ? "border-b border-ods-border md:border-b-0" : "gap-[var(--spacing-system-mf)]"
883
780
  ),
884
781
  children: [
885
- group.title && (accordion ? /* @__PURE__ */ jsxs7(Fragment6, { children: [
886
- /* @__PURE__ */ jsx8("h3", { className: "md:hidden", children: /* @__PURE__ */ jsxs7(
782
+ group.title && (accordion ? /* @__PURE__ */ jsxs6(Fragment5, { children: [
783
+ /* @__PURE__ */ jsx7("h3", { className: "md:hidden", children: /* @__PURE__ */ jsxs6(
887
784
  Button,
888
785
  {
889
786
  type: "button",
@@ -900,7 +797,7 @@ function FooterColumn({
900
797
  ),
901
798
  children: [
902
799
  group.title,
903
- /* @__PURE__ */ jsx8(
800
+ /* @__PURE__ */ jsx7(
904
801
  Chevron02DownIcon,
905
802
  {
906
803
  "aria-hidden": "true",
@@ -910,9 +807,9 @@ function FooterColumn({
910
807
  ]
911
808
  }
912
809
  ) }),
913
- /* @__PURE__ */ jsx8("h3", { className: cn("hidden md:block", HEADING_CLASS2), children: group.title })
914
- ] }) : /* @__PURE__ */ jsx8("h3", { className: HEADING_CLASS2, children: group.title })),
915
- /* @__PURE__ */ jsx8(
810
+ /* @__PURE__ */ jsx7("h3", { className: cn("hidden md:block", HEADING_CLASS2), children: group.title })
811
+ ] }) : /* @__PURE__ */ jsx7("h3", { className: HEADING_CLASS2, children: group.title })),
812
+ /* @__PURE__ */ jsx7(
916
813
  "ul",
917
814
  {
918
815
  id: listId,
@@ -940,10 +837,10 @@ function SiteFooter({
940
837
  year = (/* @__PURE__ */ new Date()).getFullYear()
941
838
  }) {
942
839
  const band = nav.closingBand;
943
- const bandPrimary = typeof nav.primaryCta === "object" ? /* @__PURE__ */ jsx8(Button, { variant: "accent", href: nav.primaryCta.href, children: nav.primaryCta.label }) : nav.primaryCta === "none" ? null : cta ?? null;
840
+ const bandPrimary = typeof nav.primaryCta === "object" ? /* @__PURE__ */ jsx7(Button, { variant: "accent", href: nav.primaryCta.href, children: nav.primaryCta.label }) : nav.primaryCta === "none" ? null : cta ?? null;
944
841
  const columns = nav.footerColumns;
945
842
  const accordion = columns.length > ACCORDION_OVER;
946
- const socialRow = social ?? (nav.brand.social.length > 0 ? /* @__PURE__ */ jsx8(
843
+ const socialRow = social ?? (nav.brand.social.length > 0 ? /* @__PURE__ */ jsx7(
947
844
  SocialIconRow,
948
845
  {
949
846
  compact: true,
@@ -954,7 +851,7 @@ function SiteFooter({
954
851
  }))
955
852
  }
956
853
  ) : null);
957
- return /* @__PURE__ */ jsxs7(
854
+ return /* @__PURE__ */ jsxs6(
958
855
  "footer",
959
856
  {
960
857
  className: cn(
@@ -962,23 +859,23 @@ function SiteFooter({
962
859
  backgroundClassName ?? "bg-ods-bg"
963
860
  ),
964
861
  children: [
965
- band && /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-[var(--spacing-system-lf)] border-b border-ods-border py-[var(--spacing-system-xlf)] md:flex-row md:items-center md:justify-between md:gap-[var(--spacing-system-xlf)] md:py-14", children: [
966
- /* @__PURE__ */ jsxs7("div", { className: "flex min-w-0 flex-col gap-[var(--spacing-system-xsf)]", children: [
967
- /* @__PURE__ */ jsx8("h2", { className: "text-h2", children: band.heading }),
968
- /* @__PURE__ */ jsx8("p", { className: "text-ods-text-secondary text-h4", children: band.subheading })
862
+ band && /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-[var(--spacing-system-lf)] border-b border-ods-border py-[var(--spacing-system-xlf)] md:flex-row md:items-center md:justify-between md:gap-[var(--spacing-system-xlf)] md:py-14", children: [
863
+ /* @__PURE__ */ jsxs6("div", { className: "flex min-w-0 flex-col gap-[var(--spacing-system-xsf)]", children: [
864
+ /* @__PURE__ */ jsx7("h2", { className: "text-h2", children: band.heading }),
865
+ /* @__PURE__ */ jsx7("p", { className: "text-ods-text-secondary text-h4", children: band.subheading })
969
866
  ] }),
970
- /* @__PURE__ */ jsxs7("div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-sf)] md:flex-row", children: [
867
+ /* @__PURE__ */ jsxs6("div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-sf)] md:flex-row", children: [
971
868
  bandPrimary,
972
- band.secondary && (secondaryCta ?? /* @__PURE__ */ jsx8(Button, { variant: "outline", href: band.secondary.href, openInNewTab: band.secondary.external, children: navLinkLabel(band.secondary) }))
869
+ band.secondary && (secondaryCta ?? /* @__PURE__ */ jsx7(Button, { variant: "outline", href: band.secondary.href, openInNewTab: band.secondary.external, children: navLinkLabel(band.secondary) }))
973
870
  ] })
974
871
  ] }),
975
- /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-8 py-[var(--spacing-system-xlf)] lg:flex-row lg:gap-16 lg:py-14", children: [
976
- /* @__PURE__ */ jsxs7("div", { className: "flex w-full shrink-0 flex-col items-start gap-[var(--spacing-system-mf)] lg:w-60", children: [
977
- /* @__PURE__ */ jsxs7("span", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
872
+ /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-8 py-[var(--spacing-system-xlf)] lg:flex-row lg:gap-16 lg:py-14", children: [
873
+ /* @__PURE__ */ jsxs6("div", { className: "flex w-full shrink-0 flex-col items-start gap-[var(--spacing-system-mf)] lg:w-60", children: [
874
+ /* @__PURE__ */ jsxs6("span", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
978
875
  logo,
979
- typeof name === "string" ? /* @__PURE__ */ jsx8("span", { className: "whitespace-nowrap text-ods-text-primary text-wordmark", children: name }) : name
876
+ typeof name === "string" ? /* @__PURE__ */ jsx7("span", { className: "whitespace-nowrap text-ods-text-primary text-wordmark", children: name }) : name
980
877
  ] }),
981
- /* @__PURE__ */ jsx8("p", { className: "text-ods-text-secondary text-h6", children: nav.brand.tagline }),
878
+ /* @__PURE__ */ jsx7("p", { className: "text-ods-text-secondary text-h6", children: nav.brand.tagline }),
982
879
  socialRow,
983
880
  nav.brand.statusUrl && renderLink({
984
881
  link: { href: nav.brand.statusUrl, external: true },
@@ -986,14 +883,14 @@ function SiteFooter({
986
883
  "inline-flex items-center gap-[var(--spacing-system-xsf)] text-ods-text-secondary transition-colors text-h6 hover:text-ods-text-primary",
987
884
  NAV_FOCUS_CLASS
988
885
  ),
989
- children: /* @__PURE__ */ jsxs7(Fragment6, { children: [
990
- /* @__PURE__ */ jsx8("span", { "aria-hidden": "true", className: "h-2 w-2 rounded-full bg-ods-success" }),
886
+ children: /* @__PURE__ */ jsxs6(Fragment5, { children: [
887
+ /* @__PURE__ */ jsx7("span", { "aria-hidden": "true", className: "h-2 w-2 rounded-full bg-ods-success" }),
991
888
  "System status"
992
889
  ] })
993
890
  }),
994
891
  brandExtra
995
892
  ] }),
996
- columns.length > 0 && /* @__PURE__ */ jsx8(
893
+ columns.length > 0 && /* @__PURE__ */ jsx7(
997
894
  "nav",
998
895
  {
999
896
  "aria-label": "Footer",
@@ -1002,26 +899,26 @@ function SiteFooter({
1002
899
  accordion ? "grid-cols-1" : "grid-cols-2 gap-7",
1003
900
  DESKTOP_COLUMNS[Math.min(columns.length, 6)]
1004
901
  ),
1005
- children: columns.map((group) => /* @__PURE__ */ jsx8(FooterColumn, { group, accordion, renderLink }, group.id))
902
+ children: columns.map((group) => /* @__PURE__ */ jsx7(FooterColumn, { group, accordion, renderLink }, group.id))
1006
903
  }
1007
904
  )
1008
905
  ] }),
1009
- /* @__PURE__ */ jsxs7(
906
+ /* @__PURE__ */ jsxs6(
1010
907
  "div",
1011
908
  {
1012
909
  className: cn(
1013
910
  "flex flex-col gap-[var(--spacing-system-xxs)] border-t border-ods-border pb-[var(--spacing-system-xlf)] pt-[var(--spacing-system-lf)] text-ods-text-muted text-h6 md:flex-row md:items-center md:justify-between md:gap-[var(--spacing-system-lf)]"
1014
911
  ),
1015
912
  children: [
1016
- /* @__PURE__ */ jsxs7("span", { children: [
913
+ /* @__PURE__ */ jsxs6("span", { children: [
1017
914
  "\xA9 ",
1018
915
  year,
1019
916
  " ",
1020
917
  nav.legal.company
1021
918
  ] }),
1022
- /* @__PURE__ */ jsxs7("span", { className: "flex flex-wrap items-center gap-x-[var(--spacing-system-mf)] gap-y-[var(--spacing-system-xxs)]", children: [
1023
- nav.legal.notes.length > 0 && /* @__PURE__ */ jsx8("span", { children: nav.legal.notes.join(" \xB7 ") }),
1024
- nav.legal.links.map((link) => /* @__PURE__ */ jsx8(
919
+ /* @__PURE__ */ jsxs6("span", { className: "flex flex-wrap items-center gap-x-[var(--spacing-system-mf)] gap-y-[var(--spacing-system-xxs)]", children: [
920
+ nav.legal.notes.length > 0 && /* @__PURE__ */ jsx7("span", { children: nav.legal.notes.join(" \xB7 ") }),
921
+ nav.legal.links.map((link) => /* @__PURE__ */ jsx7(
1025
922
  NavItemRow,
1026
923
  {
1027
924
  link,
@@ -1044,7 +941,7 @@ function SiteFooter({
1044
941
  import { usePreventScroll as usePreventScroll2 } from "@react-aria/overlays";
1045
942
  import { motion, AnimatePresence, useReducedMotion } from "framer-motion";
1046
943
  import { useState as useState4, useRef as useRef3 } from "react";
1047
- import { Fragment as Fragment7, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
944
+ import { Fragment as Fragment6, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
1048
945
  function SlidingSidebar({ config }) {
1049
946
  const [expandedItems, setExpandedItems] = useState4(/* @__PURE__ */ new Set());
1050
947
  const mounted = useIsHydrated();
@@ -1064,24 +961,24 @@ function SlidingSidebar({ config }) {
1064
961
  };
1065
962
  const renderMenuItem = (item, level = 0) => {
1066
963
  if (item.element) {
1067
- return /* @__PURE__ */ jsx9("div", { children: item.element }, item.id);
964
+ return /* @__PURE__ */ jsx8("div", { children: item.element }, item.id);
1068
965
  }
1069
966
  const children = item.children ?? [];
1070
967
  const hasChildren = children.length > 0;
1071
968
  const isExpanded = expandedItems.has(item.id);
1072
969
  if (hasChildren) {
1073
- const chevronIcon = /* @__PURE__ */ jsx9(
970
+ const chevronIcon = /* @__PURE__ */ jsx8(
1074
971
  "svg",
1075
972
  {
1076
973
  className: cn("h-4 w-4 transition-transform", isExpanded && "rotate-90"),
1077
974
  fill: "none",
1078
975
  stroke: "currentColor",
1079
976
  viewBox: "0 0 24 24",
1080
- children: /* @__PURE__ */ jsx9("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
977
+ children: /* @__PURE__ */ jsx8("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
1081
978
  }
1082
979
  );
1083
- return /* @__PURE__ */ jsxs8("div", { className: "space-y-1", children: [
1084
- /* @__PURE__ */ jsxs8(
980
+ return /* @__PURE__ */ jsxs7("div", { className: "space-y-1", children: [
981
+ /* @__PURE__ */ jsxs7(
1085
982
  Button,
1086
983
  {
1087
984
  variant: "transparent",
@@ -1095,12 +992,12 @@ function SlidingSidebar({ config }) {
1095
992
  item.isActive ? "bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent/90" : "text-ods-text-primary hover:bg-ods-border"
1096
993
  ),
1097
994
  children: [
1098
- /* @__PURE__ */ jsx9("span", { className: "truncate", children: item.label }),
1099
- item.badge !== void 0 && /* @__PURE__ */ jsx9("span", { className: "ml-auto mr-2 flex-shrink-0", children: item.badge })
995
+ /* @__PURE__ */ jsx8("span", { className: "truncate", children: item.label }),
996
+ item.badge !== void 0 && /* @__PURE__ */ jsx8("span", { className: "ml-auto mr-2 flex-shrink-0", children: item.badge })
1100
997
  ]
1101
998
  }
1102
999
  ),
1103
- /* @__PURE__ */ jsx9(AnimatePresence, { children: isExpanded && /* @__PURE__ */ jsx9(
1000
+ /* @__PURE__ */ jsx8(AnimatePresence, { children: isExpanded && /* @__PURE__ */ jsx8(
1104
1001
  motion.div,
1105
1002
  {
1106
1003
  initial: { height: 0, opacity: 0 },
@@ -1113,13 +1010,13 @@ function SlidingSidebar({ config }) {
1113
1010
  opacity: { duration: 0.1 }
1114
1011
  },
1115
1012
  className: "overflow-hidden",
1116
- children: /* @__PURE__ */ jsx9("div", { className: "space-y-1 pl-4", children: children.map((child) => renderMenuItem(child, level + 1)) })
1013
+ children: /* @__PURE__ */ jsx8("div", { className: "space-y-1 pl-4", children: children.map((child) => renderMenuItem(child, level + 1)) })
1117
1014
  }
1118
1015
  ) })
1119
1016
  ] }, item.id);
1120
1017
  }
1121
1018
  if (item.href) {
1122
- return /* @__PURE__ */ jsxs8(
1019
+ return /* @__PURE__ */ jsxs7(
1123
1020
  Button,
1124
1021
  {
1125
1022
  variant: "transparent",
@@ -1135,14 +1032,14 @@ function SlidingSidebar({ config }) {
1135
1032
  item.isActive ? "bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent/90" : "text-ods-text-primary hover:bg-ods-border"
1136
1033
  ),
1137
1034
  children: [
1138
- /* @__PURE__ */ jsx9("span", { className: "truncate", children: item.label }),
1139
- item.badge !== void 0 && /* @__PURE__ */ jsx9("span", { className: "ml-auto flex-shrink-0", children: item.badge })
1035
+ /* @__PURE__ */ jsx8("span", { className: "truncate", children: item.label }),
1036
+ item.badge !== void 0 && /* @__PURE__ */ jsx8("span", { className: "ml-auto flex-shrink-0", children: item.badge })
1140
1037
  ]
1141
1038
  },
1142
1039
  item.id
1143
1040
  );
1144
1041
  }
1145
- return /* @__PURE__ */ jsxs8(
1042
+ return /* @__PURE__ */ jsxs7(
1146
1043
  Button,
1147
1044
  {
1148
1045
  variant: "transparent",
@@ -1158,8 +1055,8 @@ function SlidingSidebar({ config }) {
1158
1055
  item.isActive ? "bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent/90" : "text-ods-text-primary hover:bg-ods-border"
1159
1056
  ),
1160
1057
  children: [
1161
- /* @__PURE__ */ jsx9("span", { className: "truncate", children: item.label }),
1162
- item.badge !== void 0 && /* @__PURE__ */ jsx9("span", { className: "ml-auto flex-shrink-0", children: item.badge })
1058
+ /* @__PURE__ */ jsx8("span", { className: "truncate", children: item.label }),
1059
+ item.badge !== void 0 && /* @__PURE__ */ jsx8("span", { className: "ml-auto flex-shrink-0", children: item.badge })
1163
1060
  ]
1164
1061
  },
1165
1062
  item.id
@@ -1168,8 +1065,8 @@ function SlidingSidebar({ config }) {
1168
1065
  if (!mounted) {
1169
1066
  return null;
1170
1067
  }
1171
- return /* @__PURE__ */ jsxs8(Fragment7, { children: [
1172
- /* @__PURE__ */ jsx9(AnimatePresence, { children: config.isOpen && /* @__PURE__ */ jsx9(
1068
+ return /* @__PURE__ */ jsxs7(Fragment6, { children: [
1069
+ /* @__PURE__ */ jsx8(AnimatePresence, { children: config.isOpen && /* @__PURE__ */ jsx8(
1173
1070
  motion.div,
1174
1071
  {
1175
1072
  initial: { opacity: 0 },
@@ -1183,7 +1080,7 @@ function SlidingSidebar({ config }) {
1183
1080
  onClick: () => config.onClose()
1184
1081
  }
1185
1082
  ) }),
1186
- /* @__PURE__ */ jsxs8(
1083
+ /* @__PURE__ */ jsxs7(
1187
1084
  motion.aside,
1188
1085
  {
1189
1086
  ref: asideRef,
@@ -1210,9 +1107,9 @@ function SlidingSidebar({ config }) {
1210
1107
  config.className
1211
1108
  ),
1212
1109
  children: [
1213
- /* @__PURE__ */ jsx9("div", { className: "flex-shrink-0", style: { height: `${headerHeight}px` } }),
1214
- /* @__PURE__ */ jsx9("nav", { className: "flex-1 space-y-2 overflow-y-auto overscroll-contain p-4", children: config.items.map((item) => renderMenuItem(item)) }),
1215
- config.footer && /* @__PURE__ */ jsx9("div", { className: "border-t border-ods-border p-4 pb-[max(1rem,env(safe-area-inset-bottom))]", children: config.footer })
1110
+ /* @__PURE__ */ jsx8("div", { className: "flex-shrink-0", style: { height: `${headerHeight}px` } }),
1111
+ /* @__PURE__ */ jsx8("nav", { className: "flex-1 space-y-2 overflow-y-auto overscroll-contain p-4", children: config.items.map((item) => renderMenuItem(item)) }),
1112
+ config.footer && /* @__PURE__ */ jsx8("div", { className: "border-t border-ods-border p-4 pb-[max(1rem,env(safe-area-inset-bottom))]", children: config.footer })
1216
1113
  ]
1217
1114
  }
1218
1115
  )
@@ -1220,13 +1117,13 @@ function SlidingSidebar({ config }) {
1220
1117
  }
1221
1118
 
1222
1119
  // src/components/navigation/navigation-sidebar.tsx
1223
- import { useCallback, useEffect as useEffect3, useMemo, useState as useState5 } from "react";
1120
+ import { useCallback, useEffect as useEffect2, useMemo, useState as useState5 } from "react";
1224
1121
 
1225
1122
  // src/components/navigation/navigation-sidebar-header.tsx
1226
- import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
1123
+ import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
1227
1124
  function NavigationSidebarHeader({ minimized }) {
1228
- return /* @__PURE__ */ jsxs9("div", { className: "flex h-14 items-center justify-start border-b border-ods-border p-[var(--spacing-system-m)]", children: [
1229
- /* @__PURE__ */ jsx10("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx10(
1125
+ return /* @__PURE__ */ jsxs8("div", { className: "flex h-14 items-center justify-start border-b border-ods-border p-[var(--spacing-system-m)]", children: [
1126
+ /* @__PURE__ */ jsx9("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx9(
1230
1127
  OpenFrameLogo,
1231
1128
  {
1232
1129
  className: "h-6 w-6",
@@ -1234,7 +1131,7 @@ function NavigationSidebarHeader({ minimized }) {
1234
1131
  lowerPathColor: "var(--color-accent-primary)"
1235
1132
  }
1236
1133
  ) }),
1237
- /* @__PURE__ */ jsx10(
1134
+ /* @__PURE__ */ jsx9(
1238
1135
  "div",
1239
1136
  {
1240
1137
  className: cn(
@@ -1242,7 +1139,7 @@ function NavigationSidebarHeader({ minimized }) {
1242
1139
  minimized ? "ml-0 opacity-0" : "ml-[var(--spacing-system-xs)] opacity-100"
1243
1140
  ),
1244
1141
  "aria-hidden": minimized,
1245
- children: /* @__PURE__ */ jsx10(OpenFrameText, { textColor: "var(--color-text-primary)" })
1142
+ children: /* @__PURE__ */ jsx9(OpenFrameText, { textColor: "var(--color-text-primary)" })
1246
1143
  }
1247
1144
  )
1248
1145
  ] });
@@ -1252,9 +1149,9 @@ function NavigationSidebarHeader({ minimized }) {
1252
1149
  import { cloneElement, memo } from "react";
1253
1150
 
1254
1151
  // src/components/navigation/navigation-item-badge.tsx
1255
- import { jsx as jsx11 } from "react/jsx-runtime";
1152
+ import { jsx as jsx10 } from "react/jsx-runtime";
1256
1153
  function NavigationItemBadge({ label, compact = false, className, ...rest }) {
1257
- return /* @__PURE__ */ jsx11(
1154
+ return /* @__PURE__ */ jsx10(
1258
1155
  Tag,
1259
1156
  {
1260
1157
  as: "span",
@@ -1268,7 +1165,7 @@ function NavigationItemBadge({ label, compact = false, className, ...rest }) {
1268
1165
  }
1269
1166
 
1270
1167
  // src/components/navigation/navigation-sidebar-item.tsx
1271
- import { Fragment as Fragment8, jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
1168
+ import { Fragment as Fragment7, jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
1272
1169
  var NavigationSidebarItemButton = memo(function NavigationSidebarItemButtonImpl({
1273
1170
  item,
1274
1171
  isActive,
@@ -1315,14 +1212,14 @@ var NavigationSidebarItemButton = memo(function NavigationSidebarItemButtonImpl(
1315
1212
  isActive && disabled && "text-ods-text-secondary [&_svg]:fill-ods-text-secondary",
1316
1213
  disabled && "cursor-not-allowed opacity-50"
1317
1214
  );
1318
- const content = /* @__PURE__ */ jsxs10(Fragment8, { children: [
1319
- /* @__PURE__ */ jsxs10("div", { className: "relative flex flex-shrink-0 items-center justify-center", children: [
1215
+ const content = /* @__PURE__ */ jsxs9(Fragment7, { children: [
1216
+ /* @__PURE__ */ jsxs9("div", { className: "relative flex flex-shrink-0 items-center justify-center", children: [
1320
1217
  cloneElement(item.icon, {
1321
1218
  color: isActive && !disabled ? "text-ods-accent" : "text-ods-text-secondary"
1322
1219
  }),
1323
- hasUnread && !showLabel && /* @__PURE__ */ jsx12(UnreadDot, { size: "fixed" })
1220
+ hasUnread && !showLabel && /* @__PURE__ */ jsx11(UnreadDot, { size: "fixed" })
1324
1221
  ] }),
1325
- /* @__PURE__ */ jsxs10(
1222
+ /* @__PURE__ */ jsxs9(
1326
1223
  "span",
1327
1224
  {
1328
1225
  className: cn(
@@ -1331,12 +1228,12 @@ var NavigationSidebarItemButton = memo(function NavigationSidebarItemButtonImpl(
1331
1228
  ),
1332
1229
  "aria-hidden": !showLabel,
1333
1230
  children: [
1334
- /* @__PURE__ */ jsx12("span", { className: "min-w-0 truncate text-h4", children: item.label }),
1335
- item.badge && /* @__PURE__ */ jsx12(NavigationItemBadge, { label: item.badge, className: "ml-[var(--spacing-system-xs)] shrink-0" })
1231
+ /* @__PURE__ */ jsx11("span", { className: "min-w-0 truncate text-h4", children: item.label }),
1232
+ item.badge && /* @__PURE__ */ jsx11(NavigationItemBadge, { label: item.badge, className: "ml-[var(--spacing-system-xs)] shrink-0" })
1336
1233
  ]
1337
1234
  }
1338
1235
  ),
1339
- hasUnread && showLabel && /* @__PURE__ */ jsx12("span", { className: "ml-[var(--spacing-system-xs)] flex size-6 flex-shrink-0 items-center justify-center rounded-md bg-ods-accent p-2", children: /* @__PURE__ */ jsx12("span", { className: "text-ods-text-on-accent text-h5", children: unreadCount > 99 ? "99+" : unreadCount }) })
1236
+ hasUnread && showLabel && /* @__PURE__ */ jsx11("span", { className: "ml-[var(--spacing-system-xs)] flex size-6 flex-shrink-0 items-center justify-center rounded-md bg-ods-accent p-2", children: /* @__PURE__ */ jsx11("span", { className: "text-ods-text-on-accent text-h5", children: unreadCount > 99 ? "99+" : unreadCount }) })
1340
1237
  ] });
1341
1238
  const shared = {
1342
1239
  className,
@@ -1345,21 +1242,21 @@ var NavigationSidebarItemButton = memo(function NavigationSidebarItemButtonImpl(
1345
1242
  "aria-current": isActive ? "page" : void 0
1346
1243
  };
1347
1244
  if (disabled || !item.path || item.onClick) {
1348
- return /* @__PURE__ */ jsx12("button", { type: "button", onClick: (event) => onClick(item, event), disabled, ...shared, children: content });
1245
+ return /* @__PURE__ */ jsx11("button", { type: "button", onClick: (event) => onClick(item, event), disabled, ...shared, children: content });
1349
1246
  }
1350
- return /* @__PURE__ */ jsx12(next_link_default, { href: item.path, onClick: (event) => onClick(item, event), ...shared, children: content });
1247
+ return /* @__PURE__ */ jsx11(next_link_default, { href: item.path, onClick: (event) => onClick(item, event), ...shared, children: content });
1351
1248
  });
1352
1249
  function NavigationSidebarItemSkeleton({ showLabel }) {
1353
- return /* @__PURE__ */ jsxs10("div", { className: "flex h-14 w-full items-center justify-start p-[var(--spacing-system-m)]", "aria-hidden": "true", children: [
1354
- /* @__PURE__ */ jsx12("div", { className: "relative flex flex-shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx12("div", { className: "h-6 w-6 animate-pulse rounded bg-ods-border" }) }),
1355
- showLabel && /* @__PURE__ */ jsx12("div", { className: "ml-[var(--spacing-system-xs)] h-4 flex-1 animate-pulse rounded bg-ods-border" })
1250
+ return /* @__PURE__ */ jsxs9("div", { className: "flex h-14 w-full items-center justify-start p-[var(--spacing-system-m)]", "aria-hidden": "true", children: [
1251
+ /* @__PURE__ */ jsx11("div", { className: "relative flex flex-shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx11("div", { className: "h-6 w-6 animate-pulse rounded bg-ods-border" }) }),
1252
+ showLabel && /* @__PURE__ */ jsx11("div", { className: "ml-[var(--spacing-system-xs)] h-4 flex-1 animate-pulse rounded bg-ods-border" })
1356
1253
  ] });
1357
1254
  }
1358
1255
 
1359
1256
  // src/components/navigation/navigation-sidebar-toggle.tsx
1360
- import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
1257
+ import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
1361
1258
  function NavigationSidebarToggle({ minimized, showLabel, onToggle }) {
1362
- return /* @__PURE__ */ jsx13("div", { className: "border-t border-ods-border", children: /* @__PURE__ */ jsxs11(
1259
+ return /* @__PURE__ */ jsx12("div", { className: "border-t border-ods-border", children: /* @__PURE__ */ jsxs10(
1363
1260
  "button",
1364
1261
  {
1365
1262
  onClick: onToggle,
@@ -1373,8 +1270,8 @@ function NavigationSidebarToggle({ minimized, showLabel, onToggle }) {
1373
1270
  title: minimized ? "Hide Menu" : void 0,
1374
1271
  "aria-label": "Hide Menu",
1375
1272
  children: [
1376
- /* @__PURE__ */ jsx13("div", { className: "flex flex-shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx13(Chevrons03LeftIcon, { className: "h-6 w-6 rotate-180 text-ods-text-secondary transition-transform duration-300 @[140px]/of-nav-sidebar:rotate-0" }) }),
1377
- /* @__PURE__ */ jsx13(
1273
+ /* @__PURE__ */ jsx12("div", { className: "flex flex-shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx12(Chevrons03LeftIcon, { className: "h-6 w-6 rotate-180 text-ods-text-secondary transition-transform duration-300 @[140px]/of-nav-sidebar:rotate-0" }) }),
1274
+ /* @__PURE__ */ jsx12(
1378
1275
  "span",
1379
1276
  {
1380
1277
  className: cn(
@@ -1391,7 +1288,7 @@ function NavigationSidebarToggle({ minimized, showLabel, onToggle }) {
1391
1288
  }
1392
1289
 
1393
1290
  // src/components/navigation/navigation-sidebar.tsx
1394
- import { Fragment as Fragment9, jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
1291
+ import { Fragment as Fragment8, jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
1395
1292
  var MINIMIZED_WIDTH = 56;
1396
1293
  var EXPANDED_WIDTH = 224;
1397
1294
  var STORAGE_KEY = "of.navigationSidebar.minimized";
@@ -1437,7 +1334,7 @@ function NavigationSidebar({ config, disabled = false, pushOnTablet = false }) {
1437
1334
  const closeOverlay = useCallback(() => {
1438
1335
  setTabletMinimized(true);
1439
1336
  }, []);
1440
- useEffect3(() => {
1337
+ useEffect2(() => {
1441
1338
  if (!isOverlayOpen) return void 0;
1442
1339
  const handleKeyDown = (e) => {
1443
1340
  if (e.key === "Escape") closeOverlay();
@@ -1498,8 +1395,8 @@ function NavigationSidebar({ config, disabled = false, pushOnTablet = false }) {
1498
1395
  });
1499
1396
  return () => cancelAnimationFrame(id);
1500
1397
  }, [transitionsEnabled]);
1501
- return /* @__PURE__ */ jsxs12(Fragment9, { children: [
1502
- /* @__PURE__ */ jsx14(
1398
+ return /* @__PURE__ */ jsxs11(Fragment8, { children: [
1399
+ /* @__PURE__ */ jsx13(
1503
1400
  "div",
1504
1401
  {
1505
1402
  className: cn(
@@ -1512,7 +1409,7 @@ function NavigationSidebar({ config, disabled = false, pushOnTablet = false }) {
1512
1409
  "aria-hidden": "true"
1513
1410
  }
1514
1411
  ),
1515
- /* @__PURE__ */ jsx14(
1412
+ /* @__PURE__ */ jsx13(
1516
1413
  "div",
1517
1414
  {
1518
1415
  className: cn(
@@ -1523,7 +1420,7 @@ function NavigationSidebar({ config, disabled = false, pushOnTablet = false }) {
1523
1420
  "aria-hidden": "true"
1524
1421
  }
1525
1422
  ),
1526
- /* @__PURE__ */ jsxs12(
1423
+ /* @__PURE__ */ jsxs11(
1527
1424
  "aside",
1528
1425
  {
1529
1426
  className: cn(
@@ -1540,11 +1437,11 @@ function NavigationSidebar({ config, disabled = false, pushOnTablet = false }) {
1540
1437
  ),
1541
1438
  "aria-label": "Main navigation sidebar",
1542
1439
  children: [
1543
- /* @__PURE__ */ jsx14(NavigationSidebarHeader, { minimized }),
1544
- /* @__PURE__ */ jsxs12("div", { className: "flex flex-1 flex-col justify-between overflow-y-auto py-4", children: [
1545
- /* @__PURE__ */ jsxs12("div", { className: "flex flex-col", children: [
1440
+ /* @__PURE__ */ jsx13(NavigationSidebarHeader, { minimized }),
1441
+ /* @__PURE__ */ jsxs11("div", { className: "flex flex-1 flex-col justify-between overflow-y-auto py-4", children: [
1442
+ /* @__PURE__ */ jsxs11("div", { className: "flex flex-col", children: [
1546
1443
  config.topSlot?.({ minimized }),
1547
- /* @__PURE__ */ jsx14("nav", { className: "flex flex-col", "aria-label": "Primary navigation", "aria-busy": !!loadingRows, children: loadingRows ? loadingRows.primary.map((key) => /* @__PURE__ */ jsx14(NavigationSidebarItemSkeleton, { showLabel }, key)) : primaryItems.map((item) => /* @__PURE__ */ jsx14(
1444
+ /* @__PURE__ */ jsx13("nav", { className: "flex flex-col", "aria-label": "Primary navigation", "aria-busy": !!loadingRows, children: loadingRows ? loadingRows.primary.map((key) => /* @__PURE__ */ jsx13(NavigationSidebarItemSkeleton, { showLabel }, key)) : primaryItems.map((item) => /* @__PURE__ */ jsx13(
1548
1445
  NavigationSidebarItemButton,
1549
1446
  {
1550
1447
  item,
@@ -1557,7 +1454,7 @@ function NavigationSidebar({ config, disabled = false, pushOnTablet = false }) {
1557
1454
  item.id
1558
1455
  )) })
1559
1456
  ] }),
1560
- (loadingRows ? loadingRows.secondary.length > 0 : secondaryItems.length > 0) && /* @__PURE__ */ jsx14("nav", { className: "flex flex-col", "aria-label": "Secondary navigation", "aria-busy": !!loadingRows, children: loadingRows ? loadingRows.secondary.map((key) => /* @__PURE__ */ jsx14(NavigationSidebarItemSkeleton, { showLabel }, key)) : secondaryItems.map((item) => /* @__PURE__ */ jsx14(
1457
+ (loadingRows ? loadingRows.secondary.length > 0 : secondaryItems.length > 0) && /* @__PURE__ */ jsx13("nav", { className: "flex flex-col", "aria-label": "Secondary navigation", "aria-busy": !!loadingRows, children: loadingRows ? loadingRows.secondary.map((key) => /* @__PURE__ */ jsx13(NavigationSidebarItemSkeleton, { showLabel }, key)) : secondaryItems.map((item) => /* @__PURE__ */ jsx13(
1561
1458
  NavigationSidebarItemButton,
1562
1459
  {
1563
1460
  item,
@@ -1570,7 +1467,7 @@ function NavigationSidebar({ config, disabled = false, pushOnTablet = false }) {
1570
1467
  item.id
1571
1468
  )) })
1572
1469
  ] }),
1573
- /* @__PURE__ */ jsx14(NavigationSidebarToggle, { minimized, showLabel, onToggle: handleToggle })
1470
+ /* @__PURE__ */ jsx13(NavigationSidebarToggle, { minimized, showLabel, onToggle: handleToggle })
1574
1471
  ]
1575
1472
  }
1576
1473
  )
@@ -1582,7 +1479,7 @@ import React2 from "react";
1582
1479
 
1583
1480
  // src/components/navigation/header-global-search.tsx
1584
1481
  import React from "react";
1585
- import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
1482
+ import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
1586
1483
  function HeaderGlobalSearch({
1587
1484
  value = "",
1588
1485
  onChange,
@@ -1609,7 +1506,7 @@ function HeaderGlobalSearch({
1609
1506
  onSubmit?.(currentValue);
1610
1507
  }
1611
1508
  };
1612
- return /* @__PURE__ */ jsxs13(
1509
+ return /* @__PURE__ */ jsxs12(
1613
1510
  "form",
1614
1511
  {
1615
1512
  onSubmit: handleSubmit,
@@ -1622,8 +1519,8 @@ function HeaderGlobalSearch({
1622
1519
  className
1623
1520
  ),
1624
1521
  children: [
1625
- /* @__PURE__ */ jsx15(SearchIcon, { className: "h-6 w-6 shrink-0 text-ods-text-secondary" }),
1626
- /* @__PURE__ */ jsx15(
1522
+ /* @__PURE__ */ jsx14(SearchIcon, { className: "h-6 w-6 shrink-0 text-ods-text-secondary" }),
1523
+ /* @__PURE__ */ jsx14(
1627
1524
  "input",
1628
1525
  {
1629
1526
  type: "text",
@@ -1645,7 +1542,7 @@ function HeaderGlobalSearch({
1645
1542
  }
1646
1543
 
1647
1544
  // src/components/navigation/header-mingo-button.tsx
1648
- import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
1545
+ import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
1649
1546
  function HeaderMingoButton({
1650
1547
  isActive = false,
1651
1548
  iconOnly = false,
@@ -1654,7 +1551,7 @@ function HeaderMingoButton({
1654
1551
  ...props
1655
1552
  }) {
1656
1553
  const showClose = isActive && (iconOnly || closeWhenActive);
1657
- return /* @__PURE__ */ jsxs14(
1554
+ return /* @__PURE__ */ jsxs13(
1658
1555
  "button",
1659
1556
  {
1660
1557
  type: "button",
@@ -1680,11 +1577,11 @@ function HeaderMingoButton({
1680
1577
  // Mobile, drawer open: the icon-only button doubles as the close
1681
1578
  // affordance, so swap the Mingo logo for an X. Match the other header
1682
1579
  // icons (e.g. notifications): secondary color, w-4 h-4 → md:w-6 h-6.
1683
- /* @__PURE__ */ jsx16(XmarkIcon, { className: "h-6 w-6 shrink-0 text-ods-text-secondary" })
1580
+ /* @__PURE__ */ jsx15(XmarkIcon, { className: "h-6 w-6 shrink-0 text-ods-text-secondary" })
1684
1581
  ) : (
1685
1582
  // Outer frame follows the button's text color (currentColor); the eyes
1686
1583
  // and corner block are ODS cyan.
1687
- /* @__PURE__ */ jsx16(
1584
+ /* @__PURE__ */ jsx15(
1688
1585
  MingoIcon,
1689
1586
  {
1690
1587
  color: "currentColor",
@@ -1694,14 +1591,14 @@ function HeaderMingoButton({
1694
1591
  }
1695
1592
  )
1696
1593
  ),
1697
- !iconOnly && /* @__PURE__ */ jsx16("span", { className: "whitespace-nowrap font-bold tracking-[-0.36px] text-h3", children: "Mingo AI" })
1594
+ !iconOnly && /* @__PURE__ */ jsx15("span", { className: "whitespace-nowrap font-bold tracking-[-0.36px] text-h3", children: "Mingo AI" })
1698
1595
  ]
1699
1596
  }
1700
1597
  );
1701
1598
  }
1702
1599
 
1703
1600
  // src/components/navigation/header-organization-filter.tsx
1704
- import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
1601
+ import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
1705
1602
  function HeaderOrganizationFilter({
1706
1603
  organizations = [],
1707
1604
  selectedOrgId,
@@ -1712,8 +1609,8 @@ function HeaderOrganizationFilter({
1712
1609
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
1713
1610
  const displayName = selectedOrg?.name || "All Organizations";
1714
1611
  const deviceCount = selectedOrg?.deviceCount ?? totalDeviceCount;
1715
- return /* @__PURE__ */ jsxs15(DropdownMenu, { children: [
1716
- /* @__PURE__ */ jsx17(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs15(
1612
+ return /* @__PURE__ */ jsxs14(DropdownMenu, { children: [
1613
+ /* @__PURE__ */ jsx16(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs14(
1717
1614
  "button",
1718
1615
  {
1719
1616
  className: cn(
@@ -1725,10 +1622,10 @@ function HeaderOrganizationFilter({
1725
1622
  className
1726
1623
  ),
1727
1624
  children: [
1728
- /* @__PURE__ */ jsx17(Filter02Icon, { className: "h-4 w-4 shrink-0 text-ods-text-secondary" }),
1729
- /* @__PURE__ */ jsxs15("div", { className: "flex min-w-0 flex-col items-start justify-center", children: [
1730
- /* @__PURE__ */ jsx17("span", { className: "truncate text-ods-text-primary text-h5", title: displayName, children: displayName }),
1731
- deviceCount !== void 0 && /* @__PURE__ */ jsxs15("span", { className: "truncate text-ods-text-secondary text-h6", children: [
1625
+ /* @__PURE__ */ jsx16(Filter02Icon, { className: "h-4 w-4 shrink-0 text-ods-text-secondary" }),
1626
+ /* @__PURE__ */ jsxs14("div", { className: "flex min-w-0 flex-col items-start justify-center", children: [
1627
+ /* @__PURE__ */ jsx16("span", { className: "truncate text-ods-text-primary text-h5", title: displayName, children: displayName }),
1628
+ deviceCount !== void 0 && /* @__PURE__ */ jsxs14("span", { className: "truncate text-ods-text-secondary text-h6", children: [
1732
1629
  deviceCount.toLocaleString(),
1733
1630
  " Devices"
1734
1631
  ] })
@@ -1736,15 +1633,15 @@ function HeaderOrganizationFilter({
1736
1633
  ]
1737
1634
  }
1738
1635
  ) }),
1739
- /* @__PURE__ */ jsxs15(DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
1740
- /* @__PURE__ */ jsx17(DropdownMenuItem, { onClick: () => onOrgChange?.(""), children: "All Organizations" }),
1741
- organizations.map((org) => /* @__PURE__ */ jsx17(DropdownMenuItem, { onClick: () => onOrgChange?.(org.id), children: org.name }, org.id))
1636
+ /* @__PURE__ */ jsxs14(DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
1637
+ /* @__PURE__ */ jsx16(DropdownMenuItem, { onClick: () => onOrgChange?.(""), children: "All Organizations" }),
1638
+ organizations.map((org) => /* @__PURE__ */ jsx16(DropdownMenuItem, { onClick: () => onOrgChange?.(org.id), children: org.name }, org.id))
1742
1639
  ] })
1743
1640
  ] });
1744
1641
  }
1745
1642
 
1746
1643
  // src/components/navigation/ticket-alerts-button.tsx
1747
- import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
1644
+ import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
1748
1645
  function TicketAlertsButton({ href, onNavigate, disabled, className }) {
1749
1646
  const live = useOptionalTicketLive();
1750
1647
  if (!live || !live.authed || live.unreadTotal === 0) return null;
@@ -1754,7 +1651,7 @@ function TicketAlertsButton({ href, onNavigate, disabled, className }) {
1754
1651
  if (onNavigate) onNavigate(target);
1755
1652
  else window.location.assign(target);
1756
1653
  };
1757
- return /* @__PURE__ */ jsx18(
1654
+ return /* @__PURE__ */ jsx17(
1758
1655
  HeaderButton,
1759
1656
  {
1760
1657
  icon: (
@@ -1763,9 +1660,9 @@ function TicketAlertsButton({ href, onNavigate, disabled, className }) {
1763
1660
  // bell and time-tracker cells. The indication is carried by the
1764
1661
  // count pill (sidebar count-pill precedent) and by the cell only
1765
1662
  // existing while updates are unread — never by tinting the glyph.
1766
- /* @__PURE__ */ jsxs16("span", { className: "relative inline-flex", children: [
1767
- /* @__PURE__ */ jsx18(LifeBuoyIcon, { className: "h-6 w-6" }),
1768
- /* @__PURE__ */ jsx18(UnreadCountBadge, { count: live.unreadTotal })
1663
+ /* @__PURE__ */ jsxs15("span", { className: "relative inline-flex", children: [
1664
+ /* @__PURE__ */ jsx17(LifeBuoyIcon, { className: "h-6 w-6" }),
1665
+ /* @__PURE__ */ jsx17(UnreadCountBadge, { count: live.unreadTotal })
1769
1666
  ] })
1770
1667
  ),
1771
1668
  "aria-label": `Support tickets \u2014 ${live.unreadTotal} unread ${live.unreadTotal === 1 ? "update" : "updates"}`,
@@ -1777,7 +1674,7 @@ function TicketAlertsButton({ href, onNavigate, disabled, className }) {
1777
1674
  }
1778
1675
 
1779
1676
  // src/components/navigation/app-header.tsx
1780
- import { Fragment as Fragment10, jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
1677
+ import { Fragment as Fragment9, jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
1781
1678
  var AppHeader = React2.memo(function AppHeaderImpl({
1782
1679
  showSearch,
1783
1680
  onSearch,
@@ -1810,7 +1707,7 @@ var AppHeader = React2.memo(function AppHeaderImpl({
1810
1707
  }) {
1811
1708
  const isMdUp = useMdUp() ?? false;
1812
1709
  if (loading) {
1813
- return /* @__PURE__ */ jsx19(
1710
+ return /* @__PURE__ */ jsx18(
1814
1711
  AppHeaderSkeleton,
1815
1712
  {
1816
1713
  showSearch,
@@ -1833,27 +1730,27 @@ var AppHeader = React2.memo(function AppHeaderImpl({
1833
1730
  }
1834
1731
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
1835
1732
  const cellDivider = "border-l border-ods-border";
1836
- return /* @__PURE__ */ jsx19(
1733
+ return /* @__PURE__ */ jsx18(
1837
1734
  TopNavigation,
1838
1735
  {
1839
1736
  className: cn("sticky top-0 z-40", className),
1840
1737
  centerBreakpoint: "md",
1841
1738
  leading: (
1842
1739
  // Mobile: Burger Menu Button
1843
- !isMdUp && /* @__PURE__ */ jsx19(
1740
+ !isMdUp && /* @__PURE__ */ jsx18(
1844
1741
  HeaderButton,
1845
1742
  {
1846
1743
  onClick: onToggleMobileMenu,
1847
1744
  isActive: isMobileMenuOpen,
1848
- icon: isMobileMenuOpen ? /* @__PURE__ */ jsx19(XmarkIcon, { className: "h-6 w-6" }) : /* @__PURE__ */ jsx19(Menu01Icon, { className: "h-6 w-6" }),
1745
+ icon: isMobileMenuOpen ? /* @__PURE__ */ jsx18(XmarkIcon, { className: "h-6 w-6" }) : /* @__PURE__ */ jsx18(Menu01Icon, { className: "h-6 w-6" }),
1849
1746
  "aria-label": isMobileMenuOpen ? "Close menu" : "Open menu",
1850
1747
  "aria-expanded": isMobileMenuOpen,
1851
1748
  className: "border-r border-ods-border"
1852
1749
  }
1853
1750
  )
1854
1751
  ),
1855
- logo: !isMdUp && /* @__PURE__ */ jsxs17(Fragment10, { children: [
1856
- /* @__PURE__ */ jsx19(
1752
+ logo: !isMdUp && /* @__PURE__ */ jsxs16(Fragment9, { children: [
1753
+ /* @__PURE__ */ jsx18(
1857
1754
  OpenFrameLogo,
1858
1755
  {
1859
1756
  className: "h-6 w-6 shrink-0",
@@ -1861,21 +1758,21 @@ var AppHeader = React2.memo(function AppHeaderImpl({
1861
1758
  lowerPathColor: "var(--color-accent-primary)"
1862
1759
  }
1863
1760
  ),
1864
- /* @__PURE__ */ jsx19(OpenFrameText, { textColor: "var(--color-text-primary)", className: "h-4" })
1761
+ /* @__PURE__ */ jsx18(OpenFrameText, { textColor: "var(--color-text-primary)", className: "h-4" })
1865
1762
  ] }),
1866
1763
  logoClassName: "gap-2",
1867
- center: showSearch ? /* @__PURE__ */ jsx19(HeaderGlobalSearch, { onSubmit: onSearch, className: cn("w-full", dimmedClass) }) : void 0,
1868
- sideActions: /* @__PURE__ */ jsxs17(Fragment10, { children: [
1869
- showSearch && /* @__PURE__ */ jsx19(
1764
+ center: showSearch ? /* @__PURE__ */ jsx18(HeaderGlobalSearch, { onSubmit: onSearch, className: cn("w-full", dimmedClass) }) : void 0,
1765
+ sideActions: /* @__PURE__ */ jsxs16(Fragment9, { children: [
1766
+ showSearch && /* @__PURE__ */ jsx18(
1870
1767
  HeaderButton,
1871
1768
  {
1872
- icon: /* @__PURE__ */ jsx19(SearchIcon, { className: "h-6 w-6" }),
1769
+ icon: /* @__PURE__ */ jsx18(SearchIcon, { className: "h-6 w-6" }),
1873
1770
  "aria-label": "Search",
1874
1771
  className: cn("md:hidden", cellDivider, dimmedClass),
1875
1772
  disabled
1876
1773
  }
1877
1774
  ),
1878
- showOrganizations && /* @__PURE__ */ jsx19(
1775
+ showOrganizations && /* @__PURE__ */ jsx18(
1879
1776
  HeaderOrganizationFilter,
1880
1777
  {
1881
1778
  organizations,
@@ -1884,8 +1781,8 @@ var AppHeader = React2.memo(function AppHeaderImpl({
1884
1781
  className: cn("hidden lg:flex", dimmedClass)
1885
1782
  }
1886
1783
  ),
1887
- showTimeTracker && /* @__PURE__ */ jsx19(TimeTrackerHeaderButton, { disabled, className: cn(cellDivider, dimmedClass) }),
1888
- showNotifications && /* @__PURE__ */ jsx19(
1784
+ showTimeTracker && /* @__PURE__ */ jsx18(TimeTrackerHeaderButton, { disabled, className: cn(cellDivider, dimmedClass) }),
1785
+ showNotifications && /* @__PURE__ */ jsx18(
1889
1786
  NotificationsHeaderButton,
1890
1787
  {
1891
1788
  fallbackUnreadCount: unreadCount,
@@ -1893,7 +1790,7 @@ var AppHeader = React2.memo(function AppHeaderImpl({
1893
1790
  dimmedClass: cn(cellDivider, dimmedClass)
1894
1791
  }
1895
1792
  ),
1896
- showTicketAlerts && /* @__PURE__ */ jsx19(
1793
+ showTicketAlerts && /* @__PURE__ */ jsx18(
1897
1794
  TicketAlertsButton,
1898
1795
  {
1899
1796
  href: ticketAlertsHref ?? "/tickets",
@@ -1902,11 +1799,11 @@ var AppHeader = React2.memo(function AppHeaderImpl({
1902
1799
  className: cn(cellDivider, dimmedClass)
1903
1800
  }
1904
1801
  ),
1905
- isMdUp && showUser && /* @__PURE__ */ jsxs17(DropdownMenu, { children: [
1906
- /* @__PURE__ */ jsx19(DropdownMenuTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx19(
1802
+ isMdUp && showUser && /* @__PURE__ */ jsxs16(DropdownMenu, { children: [
1803
+ /* @__PURE__ */ jsx18(DropdownMenuTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx18(
1907
1804
  HeaderButton,
1908
1805
  {
1909
- icon: /* @__PURE__ */ jsx19(
1806
+ icon: /* @__PURE__ */ jsx18(
1910
1807
  SquareAvatar,
1911
1808
  {
1912
1809
  src: userAvatarUrl || void 0,
@@ -1925,14 +1822,14 @@ var AppHeader = React2.memo(function AppHeaderImpl({
1925
1822
  )
1926
1823
  }
1927
1824
  ) }),
1928
- /* @__PURE__ */ jsxs17(
1825
+ /* @__PURE__ */ jsxs16(
1929
1826
  DropdownMenuContent,
1930
1827
  {
1931
1828
  align: "end",
1932
1829
  className: "z-[104] w-[280px] overflow-hidden rounded-[6px] border-ods-border bg-ods-bg p-0",
1933
1830
  children: [
1934
- /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2 border-b border-ods-border bg-ods-card p-3", children: [
1935
- /* @__PURE__ */ jsx19(
1831
+ /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2 border-b border-ods-border bg-ods-card p-3", children: [
1832
+ /* @__PURE__ */ jsx18(
1936
1833
  SquareAvatar,
1937
1834
  {
1938
1835
  src: userAvatarUrl || void 0,
@@ -1942,30 +1839,30 @@ var AppHeader = React2.memo(function AppHeaderImpl({
1942
1839
  className: "shrink-0"
1943
1840
  }
1944
1841
  ),
1945
- /* @__PURE__ */ jsxs17("div", { className: "min-w-0 flex-1", children: [
1946
- userName && /* @__PURE__ */ jsx19("div", { className: "truncate text-ods-text-primary text-h4", children: userName }),
1947
- userEmail && /* @__PURE__ */ jsx19("div", { className: "truncate text-ods-text-secondary text-h6", children: userEmail })
1842
+ /* @__PURE__ */ jsxs16("div", { className: "min-w-0 flex-1", children: [
1843
+ userName && /* @__PURE__ */ jsx18("div", { className: "truncate text-ods-text-primary text-h4", children: userName }),
1844
+ userEmail && /* @__PURE__ */ jsx18("div", { className: "truncate text-ods-text-secondary text-h6", children: userEmail })
1948
1845
  ] })
1949
1846
  ] }),
1950
- /* @__PURE__ */ jsx19(
1847
+ /* @__PURE__ */ jsx18(
1951
1848
  DropdownMenuItem,
1952
1849
  {
1953
1850
  onClick: onProfile,
1954
1851
  className: "cursor-pointer rounded-none border-b border-ods-border bg-ods-card px-3 py-3 hover:bg-ods-card/80 focus:bg-ods-card/80",
1955
- children: /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
1956
- /* @__PURE__ */ jsx19(UserIcon, { className: "h-6 w-6 shrink-0 text-ods-text-primary" }),
1957
- /* @__PURE__ */ jsx19("span", { className: "text-ods-text-primary text-h4", children: "Profile Settings" })
1852
+ children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
1853
+ /* @__PURE__ */ jsx18(UserIcon, { className: "h-6 w-6 shrink-0 text-ods-text-primary" }),
1854
+ /* @__PURE__ */ jsx18("span", { className: "text-ods-text-primary text-h4", children: "Profile Settings" })
1958
1855
  ] })
1959
1856
  }
1960
1857
  ),
1961
- /* @__PURE__ */ jsx19(
1858
+ /* @__PURE__ */ jsx18(
1962
1859
  DropdownMenuItem,
1963
1860
  {
1964
1861
  onClick: onLogout,
1965
1862
  className: "cursor-pointer rounded-none bg-ods-card px-3 py-3 hover:bg-ods-card/80 focus:bg-ods-card/80",
1966
- children: /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
1967
- /* @__PURE__ */ jsx19(LogOutIcon, { className: "shrink-0 text-ods-error", size: 24 }),
1968
- /* @__PURE__ */ jsx19("span", { className: "text-ods-text-primary text-h4", children: "Log Out" })
1863
+ children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
1864
+ /* @__PURE__ */ jsx18(LogOutIcon, { className: "shrink-0 text-ods-error", size: 24 }),
1865
+ /* @__PURE__ */ jsx18("span", { className: "text-ods-text-primary text-h4", children: "Log Out" })
1969
1866
  ] })
1970
1867
  }
1971
1868
  )
@@ -1973,7 +1870,7 @@ var AppHeader = React2.memo(function AppHeaderImpl({
1973
1870
  }
1974
1871
  )
1975
1872
  ] }),
1976
- showMingoAI && /* @__PURE__ */ jsx19(
1873
+ showMingoAI && /* @__PURE__ */ jsx18(
1977
1874
  HeaderMingoButton,
1978
1875
  {
1979
1876
  onClick: onMingoAI,
@@ -1993,10 +1890,10 @@ function NotificationsHeaderButton({ fallbackUnreadCount, disabled, dimmedClass
1993
1890
  const hasUnread = (ctx?.unreadCount ?? fallbackUnreadCount) > 0;
1994
1891
  const isActive = ctx?.isOpen ?? false;
1995
1892
  const onClick = ctx?.toggle;
1996
- return /* @__PURE__ */ jsx19(
1893
+ return /* @__PURE__ */ jsx18(
1997
1894
  HeaderButton,
1998
1895
  {
1999
- icon: isActive ? /* @__PURE__ */ jsx19(XmarkIcon, { className: "h-6 w-6" }) : /* @__PURE__ */ jsx19(BellIcon, { className: "h-6 w-6" }),
1896
+ icon: isActive ? /* @__PURE__ */ jsx18(XmarkIcon, { className: "h-6 w-6" }) : /* @__PURE__ */ jsx18(BellIcon, { className: "h-6 w-6" }),
2000
1897
  showUnreadDot: !isActive && hasUnread,
2001
1898
  "aria-label": isActive ? "Close notifications" : "Notifications",
2002
1899
  onClick,
@@ -2012,12 +1909,12 @@ var CELL_VISIBILITY = {
2012
1909
  "icon-lg": "hidden lg:flex"
2013
1910
  };
2014
1911
  function HeaderCellSkeleton({ className }) {
2015
- return /* @__PURE__ */ jsx19("div", { className: cn("flex h-full w-14 shrink-0 items-center justify-center border-l border-ods-border", className), children: /* @__PURE__ */ jsx19("div", { className: "h-6 w-6 animate-pulse rounded bg-ods-border" }) });
1912
+ return /* @__PURE__ */ jsx18("div", { className: cn("flex h-full w-14 shrink-0 items-center justify-center border-l border-ods-border", className), children: /* @__PURE__ */ jsx18("div", { className: "h-6 w-6 animate-pulse rounded bg-ods-border" }) });
2016
1913
  }
2017
1914
  function HeaderWideCellSkeleton() {
2018
- return /* @__PURE__ */ jsxs17("div", { className: "flex h-full w-14 shrink-0 items-center justify-center gap-2 border-l border-ods-border md:w-[140px] md:px-4", children: [
2019
- /* @__PURE__ */ jsx19("div", { className: "h-6 w-6 shrink-0 animate-pulse rounded bg-ods-border" }),
2020
- /* @__PURE__ */ jsx19("div", { className: "hidden h-5 animate-pulse rounded bg-ods-border md:block md:w-[72px]" })
1915
+ return /* @__PURE__ */ jsxs16("div", { className: "flex h-full w-14 shrink-0 items-center justify-center gap-2 border-l border-ods-border md:w-[140px] md:px-4", children: [
1916
+ /* @__PURE__ */ jsx18("div", { className: "h-6 w-6 shrink-0 animate-pulse rounded bg-ods-border" }),
1917
+ /* @__PURE__ */ jsx18("div", { className: "hidden h-5 animate-pulse rounded bg-ods-border md:block md:w-[72px]" })
2021
1918
  ] });
2022
1919
  }
2023
1920
  function AppHeaderSkeleton({
@@ -2026,7 +1923,7 @@ function AppHeaderSkeleton({
2026
1923
  className
2027
1924
  }) {
2028
1925
  const cells = typeof actionCells === "number" ? Array.from({ length: Math.max(0, actionCells) }, () => "icon") : actionCells;
2029
- return /* @__PURE__ */ jsx19(
1926
+ return /* @__PURE__ */ jsx18(
2030
1927
  TopNavigation,
2031
1928
  {
2032
1929
  className: cn("sticky top-0 z-40", className),
@@ -2034,18 +1931,18 @@ function AppHeaderSkeleton({
2034
1931
  "aria-busy": "true",
2035
1932
  leading: (
2036
1933
  // Burger cell: mobile only, in CSS.
2037
- /* @__PURE__ */ jsx19("div", { className: "flex h-full w-14 shrink-0 items-center justify-center border-r border-ods-border md:hidden", children: /* @__PURE__ */ jsx19("div", { className: "h-6 w-6 animate-pulse rounded bg-ods-border" }) })
1934
+ /* @__PURE__ */ jsx18("div", { className: "flex h-full w-14 shrink-0 items-center justify-center border-r border-ods-border md:hidden", children: /* @__PURE__ */ jsx18("div", { className: "h-6 w-6 animate-pulse rounded bg-ods-border" }) })
2038
1935
  ),
2039
- logo: /* @__PURE__ */ jsxs17(Fragment10, { children: [
2040
- /* @__PURE__ */ jsx19("div", { className: "h-6 w-6 shrink-0 animate-pulse rounded bg-ods-border" }),
2041
- /* @__PURE__ */ jsx19("div", { className: "h-4 w-24 animate-pulse rounded bg-ods-border" })
1936
+ logo: /* @__PURE__ */ jsxs16(Fragment9, { children: [
1937
+ /* @__PURE__ */ jsx18("div", { className: "h-6 w-6 shrink-0 animate-pulse rounded bg-ods-border" }),
1938
+ /* @__PURE__ */ jsx18("div", { className: "h-4 w-24 animate-pulse rounded bg-ods-border" })
2042
1939
  ] }),
2043
1940
  logoClassName: "gap-2 md:hidden",
2044
- center: showSearch ? /* @__PURE__ */ jsx19("div", { className: "h-10 w-full animate-pulse rounded-md bg-ods-border" }) : void 0,
2045
- sideActions: /* @__PURE__ */ jsxs17(Fragment10, { children: [
2046
- showSearch && /* @__PURE__ */ jsx19(HeaderCellSkeleton, { className: "md:hidden" }),
1941
+ center: showSearch ? /* @__PURE__ */ jsx18("div", { className: "h-10 w-full animate-pulse rounded-md bg-ods-border" }) : void 0,
1942
+ sideActions: /* @__PURE__ */ jsxs16(Fragment9, { children: [
1943
+ showSearch && /* @__PURE__ */ jsx18(HeaderCellSkeleton, { className: "md:hidden" }),
2047
1944
  cells.map(
2048
- (cell, i) => cell === "wide" ? /* @__PURE__ */ jsx19(HeaderWideCellSkeleton, {}, i) : /* @__PURE__ */ jsx19(HeaderCellSkeleton, { className: CELL_VISIBILITY[cell] }, i)
1945
+ (cell, i) => cell === "wide" ? /* @__PURE__ */ jsx18(HeaderWideCellSkeleton, {}, i) : /* @__PURE__ */ jsx18(HeaderCellSkeleton, { className: CELL_VISIBILITY[cell] }, i)
2049
1946
  )
2050
1947
  ] })
2051
1948
  }
@@ -2053,17 +1950,17 @@ function AppHeaderSkeleton({
2053
1950
  }
2054
1951
 
2055
1952
  // src/components/navigation/app-layout.tsx
2056
- import { useCallback as useCallback3, useEffect as useEffect5, useMemo as useMemo2, useRef as useRef6, useState as useState7 } from "react";
1953
+ import { useCallback as useCallback3, useEffect as useEffect4, useMemo as useMemo2, useRef as useRef6, useState as useState7 } from "react";
2057
1954
 
2058
1955
  // src/components/navigation/app-layout-side-panel.tsx
2059
1956
  import {
2060
- useEffect as useEffect4,
1957
+ useEffect as useEffect3,
2061
1958
  useId,
2062
1959
  useRef as useRef4,
2063
1960
  useState as useState6,
2064
1961
  useSyncExternalStore
2065
1962
  } from "react";
2066
- import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
1963
+ import { jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
2067
1964
  var SIDE_PANEL_INSET = 16;
2068
1965
  var SIDE_PANEL_FRAME_WIDTH = 2;
2069
1966
  var MOBILE_QUERY = `not all and ${breakpoints.md}`;
@@ -2183,7 +2080,7 @@ function useAppLayoutSidePanel(config, row) {
2183
2080
  setOwnIsOpen(false);
2184
2081
  }
2185
2082
  const prevCanDockRef = useRef4(layout.canDock);
2186
- useEffect4(() => {
2083
+ useEffect3(() => {
2187
2084
  const couldDock = prevCanDockRef.current;
2188
2085
  prevCanDockRef.current = layout.canDock;
2189
2086
  if (!couldDock && layout.canDock && config?.open) onOpenChange?.(false);
@@ -2266,7 +2163,7 @@ function SidePanelResizeHandle({ state, label, controls }) {
2266
2163
  const pendingRef = useRef4(null);
2267
2164
  const measured = Number.isFinite(maxDockedWidth);
2268
2165
  const current = peekWidth ?? (mode === "full" && measured ? maxDockedWidth + 1 : width);
2269
- useEffect4(
2166
+ useEffect3(
2270
2167
  () => () => {
2271
2168
  if (frameRef.current !== null) cancelAnimationFrame(frameRef.current);
2272
2169
  },
@@ -2323,7 +2220,7 @@ function SidePanelResizeHandle({ state, label, controls }) {
2323
2220
  event.preventDefault();
2324
2221
  resize(next);
2325
2222
  };
2326
- return /* @__PURE__ */ jsx20(
2223
+ return /* @__PURE__ */ jsx19(
2327
2224
  "div",
2328
2225
  {
2329
2226
  role: "separator",
@@ -2341,12 +2238,12 @@ function SidePanelResizeHandle({ state, label, controls }) {
2341
2238
  onPointerCancel: endDrag,
2342
2239
  onKeyDown: handleKeyDown,
2343
2240
  className: "group absolute inset-y-0 left-0 z-10 flex w-4 -translate-x-1/2 cursor-col-resize touch-none select-none items-center justify-center outline-none",
2344
- children: /* @__PURE__ */ jsx20(
2241
+ children: /* @__PURE__ */ jsx19(
2345
2242
  "span",
2346
2243
  {
2347
2244
  "aria-hidden": true,
2348
2245
  className: "flex h-8 w-4 items-center justify-center rounded-sm border border-ods-border bg-ods-card text-ods-text-secondary transition-colors group-hover:border-ods-border-hover group-focus-visible:border-ods-accent group-focus-visible:text-ods-accent",
2349
- children: /* @__PURE__ */ jsx20(Menu01Icon, { size: 12 })
2246
+ children: /* @__PURE__ */ jsx19(Menu01Icon, { size: 12 })
2350
2247
  }
2351
2248
  )
2352
2249
  }
@@ -2355,7 +2252,7 @@ function SidePanelResizeHandle({ state, label, controls }) {
2355
2252
  function AppLayoutSidePanel({ config, state }) {
2356
2253
  const panelId = useId();
2357
2254
  const { mode, width, dockedWidth, canDock, isOpen, close, morph, endMorph, peekWidth } = state;
2358
- useEffect4(() => {
2255
+ useEffect3(() => {
2359
2256
  if (!morph) return void 0;
2360
2257
  const timer = window.setTimeout(endMorph, MORPH_MS * 3);
2361
2258
  return () => window.clearTimeout(timer);
@@ -2368,7 +2265,7 @@ function AppLayoutSidePanel({ config, state }) {
2368
2265
  event.preventDefault();
2369
2266
  close();
2370
2267
  };
2371
- return /* @__PURE__ */ jsx20(
2268
+ return /* @__PURE__ */ jsx19(
2372
2269
  "aside",
2373
2270
  {
2374
2271
  id: panelId,
@@ -2386,7 +2283,7 @@ function AppLayoutSidePanel({ config, state }) {
2386
2283
  mode === "overlay" && "absolute inset-0 z-[99] bg-ods-bg"
2387
2284
  ),
2388
2285
  style: mode !== "overlay" && inColumn ? { width: dockedWidth + SIDE_PANEL_INSET } : void 0,
2389
- children: /* @__PURE__ */ jsxs18(
2286
+ children: /* @__PURE__ */ jsxs17(
2390
2287
  "div",
2391
2288
  {
2392
2289
  onTransitionEnd: (event) => {
@@ -2402,8 +2299,8 @@ function AppLayoutSidePanel({ config, state }) {
2402
2299
  ),
2403
2300
  style: mode === "overlay" ? void 0 : { width: peekWidth ?? width },
2404
2301
  children: [
2405
- canDock && /* @__PURE__ */ jsx20(SidePanelResizeHandle, { state, label: `Resize ${label}`, controls: panelId }),
2406
- /* @__PURE__ */ jsx20(
2302
+ canDock && /* @__PURE__ */ jsx19(SidePanelResizeHandle, { state, label: `Resize ${label}`, controls: panelId }),
2303
+ /* @__PURE__ */ jsx19(
2407
2304
  "div",
2408
2305
  {
2409
2306
  className: cn(
@@ -2432,7 +2329,7 @@ function AppLayoutSidePanel({ config, state }) {
2432
2329
  // src/components/navigation/mobile-burger-menu.tsx
2433
2330
  import { usePreventScroll as usePreventScroll3 } from "@react-aria/overlays";
2434
2331
  import React3, { useCallback as useCallback2, useRef as useRef5 } from "react";
2435
- import { Fragment as Fragment11, jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
2332
+ import { Fragment as Fragment10, jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
2436
2333
  var HEADER_HEIGHT = 56;
2437
2334
  var MobileBurgerMenu = React3.memo(function MobileBurgerMenuImpl({
2438
2335
  isOpen,
@@ -2462,7 +2359,7 @@ var MobileBurgerMenu = React3.memo(function MobileBurgerMenuImpl({
2462
2359
  const secondaryItems = config.items.filter((item) => item.section === "secondary");
2463
2360
  const renderNavigationItem = (item, isGridItem = false) => {
2464
2361
  const isActive = item.isActive ?? false;
2465
- return /* @__PURE__ */ jsxs19(
2362
+ return /* @__PURE__ */ jsxs18(
2466
2363
  "button",
2467
2364
  {
2468
2365
  onClick: () => handleItemClick(item),
@@ -2482,12 +2379,12 @@ var MobileBurgerMenu = React3.memo(function MobileBurgerMenuImpl({
2482
2379
  "aria-current": isActive ? "page" : void 0,
2483
2380
  "aria-label": item.badge ? `${item.label} (${item.badge})` : void 0,
2484
2381
  children: [
2485
- item.icon && /* @__PURE__ */ jsx21("div", { className: "flex size-4 flex-shrink-0 items-center justify-center", children: React3.cloneElement(item.icon, {
2382
+ item.icon && /* @__PURE__ */ jsx20("div", { className: "flex size-4 flex-shrink-0 items-center justify-center", children: React3.cloneElement(item.icon, {
2486
2383
  size: 16,
2487
2384
  color: isActive && !disabled ? "var(--color-accent-primary)" : "var(--color-text-secondary)"
2488
2385
  }) }),
2489
- /* @__PURE__ */ jsxs19("span", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xxs)]", children: [
2490
- /* @__PURE__ */ jsx21(
2386
+ /* @__PURE__ */ jsxs18("span", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xxs)]", children: [
2387
+ /* @__PURE__ */ jsx20(
2491
2388
  "span",
2492
2389
  {
2493
2390
  className: cn(
@@ -2497,16 +2394,16 @@ var MobileBurgerMenu = React3.memo(function MobileBurgerMenuImpl({
2497
2394
  children: item.label
2498
2395
  }
2499
2396
  ),
2500
- item.badge && /* @__PURE__ */ jsx21(NavigationItemBadge, { compact: true, label: item.badge })
2397
+ item.badge && /* @__PURE__ */ jsx20(NavigationItemBadge, { compact: true, label: item.badge })
2501
2398
  ] })
2502
2399
  ]
2503
2400
  },
2504
2401
  item.id
2505
2402
  );
2506
2403
  };
2507
- const renderNavigationGrid = (items) => /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-2 gap-3", children: items.map((item) => /* @__PURE__ */ jsx21(React3.Fragment, { children: renderNavigationItem(item, true) }, item.id)) });
2508
- return /* @__PURE__ */ jsxs19(Fragment11, { children: [
2509
- /* @__PURE__ */ jsx21(
2404
+ const renderNavigationGrid = (items) => /* @__PURE__ */ jsx20("div", { className: "grid grid-cols-2 gap-3", children: items.map((item) => /* @__PURE__ */ jsx20(React3.Fragment, { children: renderNavigationItem(item, true) }, item.id)) });
2405
+ return /* @__PURE__ */ jsxs18(Fragment10, { children: [
2406
+ /* @__PURE__ */ jsx20(
2510
2407
  "div",
2511
2408
  {
2512
2409
  className: cn(
@@ -2520,7 +2417,7 @@ var MobileBurgerMenu = React3.memo(function MobileBurgerMenuImpl({
2520
2417
  "aria-hidden": "true"
2521
2418
  }
2522
2419
  ),
2523
- /* @__PURE__ */ jsx21(
2420
+ /* @__PURE__ */ jsx20(
2524
2421
  "div",
2525
2422
  {
2526
2423
  ref: panelRef,
@@ -2541,8 +2438,8 @@ var MobileBurgerMenu = React3.memo(function MobileBurgerMenuImpl({
2541
2438
  "aria-label": "Mobile navigation menu",
2542
2439
  tabIndex: -1,
2543
2440
  inert: !isOpen || void 0,
2544
- children: /* @__PURE__ */ jsxs19("div", { className: "flex flex-1 flex-col gap-4 overflow-y-auto overflow-x-hidden overscroll-contain p-4", children: [
2545
- user && /* @__PURE__ */ jsxs19(
2441
+ children: /* @__PURE__ */ jsxs18("div", { className: "flex flex-1 flex-col gap-4 overflow-y-auto overflow-x-hidden overscroll-contain p-4", children: [
2442
+ user && /* @__PURE__ */ jsxs18(
2546
2443
  "div",
2547
2444
  {
2548
2445
  className: cn(
@@ -2551,7 +2448,7 @@ var MobileBurgerMenu = React3.memo(function MobileBurgerMenuImpl({
2551
2448
  ),
2552
2449
  "aria-disabled": disabled || void 0,
2553
2450
  children: [
2554
- /* @__PURE__ */ jsx21(
2451
+ /* @__PURE__ */ jsx20(
2555
2452
  SquareAvatar,
2556
2453
  {
2557
2454
  src: user.userAvatarUrl || void 0,
@@ -2562,24 +2459,24 @@ var MobileBurgerMenu = React3.memo(function MobileBurgerMenuImpl({
2562
2459
  className: "h-14 w-14 shrink-0"
2563
2460
  }
2564
2461
  ),
2565
- /* @__PURE__ */ jsxs19("div", { className: "flex min-w-0 flex-1 flex-col", children: [
2566
- /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
2567
- /* @__PURE__ */ jsx21("span", { className: "truncate text-ods-text-primary text-h6", children: user.userName || "User" }),
2568
- user.userRole && /* @__PURE__ */ jsx21("span", { className: "shrink-0 rounded-md border border-ods-border bg-ods-card px-2 py-0.5 uppercase text-ods-text-primary text-h6", children: user.userRole })
2462
+ /* @__PURE__ */ jsxs18("div", { className: "flex min-w-0 flex-1 flex-col", children: [
2463
+ /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2", children: [
2464
+ /* @__PURE__ */ jsx20("span", { className: "truncate text-ods-text-primary text-h6", children: user.userName || "User" }),
2465
+ user.userRole && /* @__PURE__ */ jsx20("span", { className: "shrink-0 rounded-md border border-ods-border bg-ods-card px-2 py-0.5 uppercase text-ods-text-primary text-h6", children: user.userRole })
2569
2466
  ] }),
2570
- user.userEmail && /* @__PURE__ */ jsx21("span", { className: "truncate text-ods-text-secondary text-h6", children: user.userEmail })
2467
+ user.userEmail && /* @__PURE__ */ jsx20("span", { className: "truncate text-ods-text-secondary text-h6", children: user.userEmail })
2571
2468
  ] }),
2572
- /* @__PURE__ */ jsxs19("div", { className: "flex shrink-0 items-center gap-2", children: [
2573
- onSearchUser && /* @__PURE__ */ jsx21(Button, { size: "icon", onClick: onSearchUser, variant: "outline", "aria-label": "Search users", children: /* @__PURE__ */ jsx21(UserSearchIcon, { className: "size-4 text-ods-text-primary" }) }),
2574
- onEditProfile && /* @__PURE__ */ jsx21(Button, { size: "icon", onClick: onEditProfile, variant: "outline", "aria-label": "Edit profile", children: /* @__PURE__ */ jsx21(PenEditIcon, { className: "size-4 text-ods-text-primary" }) })
2469
+ /* @__PURE__ */ jsxs18("div", { className: "flex shrink-0 items-center gap-2", children: [
2470
+ onSearchUser && /* @__PURE__ */ jsx20(Button, { size: "icon", onClick: onSearchUser, variant: "outline", "aria-label": "Search users", children: /* @__PURE__ */ jsx20(UserSearchIcon, { className: "size-4 text-ods-text-primary" }) }),
2471
+ onEditProfile && /* @__PURE__ */ jsx20(Button, { size: "icon", onClick: onEditProfile, variant: "outline", "aria-label": "Edit profile", children: /* @__PURE__ */ jsx20(PenEditIcon, { className: "size-4 text-ods-text-primary" }) })
2575
2472
  ] })
2576
2473
  ]
2577
2474
  }
2578
2475
  ),
2579
2476
  config.topSlot?.({ minimized: false }),
2580
- /* @__PURE__ */ jsx21("nav", { "aria-label": "Primary navigation", children: renderNavigationGrid(primaryItems) }),
2581
- secondaryItems.length > 0 && /* @__PURE__ */ jsx21("nav", { "aria-label": "Secondary navigation", className: "flex flex-col gap-3", children: secondaryItems.map((item) => /* @__PURE__ */ jsx21(React3.Fragment, { children: renderNavigationItem(item, false) }, item.id)) }),
2582
- onLogout && /* @__PURE__ */ jsxs19(
2477
+ /* @__PURE__ */ jsx20("nav", { "aria-label": "Primary navigation", children: renderNavigationGrid(primaryItems) }),
2478
+ secondaryItems.length > 0 && /* @__PURE__ */ jsx20("nav", { "aria-label": "Secondary navigation", className: "flex flex-col gap-3", children: secondaryItems.map((item) => /* @__PURE__ */ jsx20(React3.Fragment, { children: renderNavigationItem(item, false) }, item.id)) }),
2479
+ onLogout && /* @__PURE__ */ jsxs18(
2583
2480
  "button",
2584
2481
  {
2585
2482
  onClick: onLogout,
@@ -2590,8 +2487,8 @@ var MobileBurgerMenu = React3.memo(function MobileBurgerMenuImpl({
2590
2487
  disabled && "cursor-not-allowed opacity-50"
2591
2488
  ),
2592
2489
  children: [
2593
- /* @__PURE__ */ jsx21(Logout02Icon, { className: "size-4 text-ods-error" }),
2594
- /* @__PURE__ */ jsx21("span", { className: "flex-1 text-left text-ods-text-primary text-h6", children: "Log Out" })
2490
+ /* @__PURE__ */ jsx20(Logout02Icon, { className: "size-4 text-ods-error" }),
2491
+ /* @__PURE__ */ jsx20("span", { className: "flex-1 text-left text-ods-text-primary text-h6", children: "Log Out" })
2595
2492
  ]
2596
2493
  }
2597
2494
  )
@@ -2602,7 +2499,7 @@ var MobileBurgerMenu = React3.memo(function MobileBurgerMenuImpl({
2602
2499
  });
2603
2500
 
2604
2501
  // src/components/navigation/app-layout.tsx
2605
- import { jsx as jsx22, jsxs as jsxs20 } from "react/jsx-runtime";
2502
+ import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
2606
2503
  function AppLayout({
2607
2504
  children,
2608
2505
  sidebarConfig,
@@ -2638,7 +2535,7 @@ function AppLayout({
2638
2535
  };
2639
2536
  const contentCovered = sidePanelState?.coversContent === true;
2640
2537
  const mobileMenuOpenRef = useRef6(mobileMenuOpen);
2641
- useEffect5(() => {
2538
+ useEffect4(() => {
2642
2539
  mobileMenuOpenRef.current = mobileMenuOpen;
2643
2540
  });
2644
2541
  const drawerHandlesRef = useRef6(/* @__PURE__ */ new Set());
@@ -2667,11 +2564,11 @@ function AppLayout({
2667
2564
  }),
2668
2565
  []
2669
2566
  );
2670
- return /* @__PURE__ */ jsx22(AppLayoutDrawerContainerContext.Provider, { value: drawerContainer, children: /* @__PURE__ */ jsx22(AppLayoutDrawerCoordinationContext.Provider, { value: drawerCoordination, children: /* @__PURE__ */ jsxs20("div", { className: cn("flex h-screen flex-col bg-ods-bg", className), children: [
2567
+ return /* @__PURE__ */ jsx21(AppLayoutDrawerContainerContext.Provider, { value: drawerContainer, children: /* @__PURE__ */ jsx21(AppLayoutDrawerCoordinationContext.Provider, { value: drawerCoordination, children: /* @__PURE__ */ jsxs19("div", { className: cn("flex h-screen flex-col bg-ods-bg", className), children: [
2671
2568
  topBar,
2672
- /* @__PURE__ */ jsxs20("div", { className: "relative flex min-h-0 flex-1", children: [
2673
- /* @__PURE__ */ jsx22(NavigationSidebar, { config: sidebarConfig, disabled, pushOnTablet: hasSidePanel }),
2674
- /* @__PURE__ */ jsx22(
2569
+ /* @__PURE__ */ jsxs19("div", { className: "relative flex min-h-0 flex-1", children: [
2570
+ /* @__PURE__ */ jsx21(NavigationSidebar, { config: sidebarConfig, disabled, pushOnTablet: hasSidePanel }),
2571
+ /* @__PURE__ */ jsx21(
2675
2572
  MobileBurgerMenu,
2676
2573
  {
2677
2574
  ...mobileBurgerMenuProps,
@@ -2681,8 +2578,8 @@ function AppLayout({
2681
2578
  disabled
2682
2579
  }
2683
2580
  ),
2684
- /* @__PURE__ */ jsxs20("div", { className: "flex flex-1 flex-col overflow-hidden", children: [
2685
- /* @__PURE__ */ jsx22(
2581
+ /* @__PURE__ */ jsxs19("div", { className: "flex flex-1 flex-col overflow-hidden", children: [
2582
+ /* @__PURE__ */ jsx21(
2686
2583
  AppHeader,
2687
2584
  {
2688
2585
  ...resolvedHeaderProps,
@@ -2691,8 +2588,8 @@ function AppLayout({
2691
2588
  disabled
2692
2589
  }
2693
2590
  ),
2694
- /* @__PURE__ */ jsx22(NotificationDrawer, {}),
2695
- /* @__PURE__ */ jsxs20(
2591
+ /* @__PURE__ */ jsx21(NotificationDrawer, {}),
2592
+ /* @__PURE__ */ jsxs19(
2696
2593
  "div",
2697
2594
  {
2698
2595
  ref: setDrawerContainer,
@@ -2701,7 +2598,7 @@ function AppLayout({
2701
2598
  sidePanel ? (
2702
2599
  // `hidden` while the panel covers the area: the page stays
2703
2600
  // mounted, it just takes no room.
2704
- /* @__PURE__ */ jsx22(
2601
+ /* @__PURE__ */ jsx21(
2705
2602
  "main",
2706
2603
  {
2707
2604
  ref: setMainElement,
@@ -2713,11 +2610,11 @@ function AppLayout({
2713
2610
  sidePanelState?.overlapsContent && "isolate",
2714
2611
  mainClassName
2715
2612
  ),
2716
- children: /* @__PURE__ */ jsx22(ContentAreaWidthContext.Provider, { value: contentWidth, children: /* @__PURE__ */ jsx22("div", { className: "ods-content-scope", children }) })
2613
+ children: /* @__PURE__ */ jsx21(ContentAreaWidthContext.Provider, { value: contentWidth, children: /* @__PURE__ */ jsx21("div", { className: "ods-content-scope", children }) })
2717
2614
  }
2718
2615
  )
2719
- ) : /* @__PURE__ */ jsx22("main", { className: cn("flex-1 overflow-y-auto", mainClassName), children }),
2720
- sidePanel && sidePanelState && /* @__PURE__ */ jsx22(AppLayoutSidePanel, { config: sidePanel, state: sidePanelState }),
2616
+ ) : /* @__PURE__ */ jsx21("main", { className: cn("flex-1 overflow-y-auto", mainClassName), children }),
2617
+ sidePanel && sidePanelState && /* @__PURE__ */ jsx21(AppLayoutSidePanel, { config: sidePanel, state: sidePanelState }),
2721
2618
  drawer
2722
2619
  ]
2723
2620
  }
@@ -2728,9 +2625,6 @@ function AppLayout({
2728
2625
  }
2729
2626
 
2730
2627
  export {
2731
- ASK_AI_OPEN_EVENT,
2732
- openAskAi,
2733
- MingoAiButton,
2734
2628
  MOBILE_NAV_SHEET_ID,
2735
2629
  defaultRenderSiteNavLink,
2736
2630
  navLinkLabel,