@flamingo-stack/openframe-frontend-core 0.0.711 → 0.0.713
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.
- package/dist/chunk-2NASBO7O.js +1137 -0
- package/dist/{chunk-RQRX4YC3.cjs → chunk-2RKFMUNW.cjs} +46 -46
- package/dist/chunk-2Y7QZAB2.cjs +158 -0
- package/dist/chunk-34I6XI3N.js +136 -0
- package/dist/{chunk-VWFZRMQR.js → chunk-3BB3IEJI.js} +13 -7
- package/dist/chunk-3K5ZLZE7.js +292 -0
- package/dist/chunk-3LU4UFPS.cjs +14 -0
- package/dist/{chunk-G47AP6LX.cjs → chunk-3QGUDPIH.cjs} +35 -33
- package/dist/{chunk-3UNL26CD.cjs → chunk-3RKBJT6K.cjs} +8 -6
- package/dist/chunk-4HJRHEXD.cjs +1612 -0
- package/dist/{chunk-JPG7OHEG.js → chunk-4QFWGLZO.js} +1 -1
- package/dist/chunk-4R2L3DSA.js +14 -0
- package/dist/{chunk-VMMHJFHG.js → chunk-6F4QOCGB.js} +10 -8
- package/dist/{chunk-Q6B35Y7O.js → chunk-6MNAIQNR.js} +22 -113
- package/dist/{chunk-KUC673HM.js → chunk-6T3BTD6Q.js} +204 -982
- package/dist/{chunk-F57ECE2I.js → chunk-6YPTUHM7.js} +4 -4
- package/dist/chunk-AAYNCJMW.cjs +48 -0
- package/dist/{chunk-FXJ3WWUB.js → chunk-ADBE7QF3.js} +5 -252
- package/dist/chunk-AECTRMGQ.cjs +334 -0
- package/dist/chunk-AGVXKD4K.js +334 -0
- package/dist/chunk-AL2GUHAJ.cjs +18 -0
- package/dist/{chunk-WMX26HB5.js → chunk-APJZBDQN.js} +12 -12
- package/dist/chunk-AUMKE74M.cjs +16 -0
- package/dist/chunk-B4NCVYEQ.cjs +292 -0
- package/dist/{chunk-WJUIXU6Y.js → chunk-CGHOH3GN.js} +28 -22
- package/dist/chunk-CMGFZHCN.js +233 -0
- package/dist/chunk-CMZ3QTFQ.js +1207 -0
- package/dist/chunk-CPA2CKRZ.cjs +125 -0
- package/dist/chunk-CYUUHFXL.js +41 -0
- package/dist/chunk-DC4RTYWK.cjs +1122 -0
- package/dist/{chunk-NF7GNGYG.js → chunk-DDWFCWOE.js} +5 -7
- package/dist/{chunk-QA6TROME.cjs → chunk-EOKSKJSS.cjs} +25 -83
- package/dist/{chunk-6NTPY5QA.cjs → chunk-ETYLOZOB.cjs} +978 -2413
- package/dist/{chunk-6AMIRXKM.cjs → chunk-F2EACDOR.cjs} +93 -87
- package/dist/chunk-F5BPGWGT.cjs +931 -0
- package/dist/chunk-FFT56TYB.cjs +401 -0
- package/dist/chunk-FYEJTF5Y.js +125 -0
- package/dist/chunk-G3GRYDMS.js +16 -0
- package/dist/chunk-G6OHIX5C.cjs +100 -0
- package/dist/{chunk-UDFRUKLC.cjs → chunk-GEDY7HQI.cjs} +2 -2
- package/dist/chunk-GQ7JJUIT.cjs +1207 -0
- package/dist/chunk-H3PKYE4N.js +18 -0
- package/dist/{chunk-EQWD4IJE.js → chunk-H4J72PRA.js} +74 -46
- package/dist/{chunk-AGDVEUVL.js → chunk-H5R7U2D2.js} +206 -5
- package/dist/{chunk-7AM6C6XH.cjs → chunk-HETQETPV.cjs} +9641 -9678
- package/dist/{chunk-Y2GSOUCS.cjs → chunk-HWVUR735.cjs} +2 -2
- package/dist/chunk-II4QMH26.cjs +35 -0
- package/dist/{chunk-XWEBHS7O.cjs → chunk-IJKMILMG.cjs} +82 -54
- package/dist/chunk-ILNN6QRW.js +1612 -0
- package/dist/{chunk-6GLQLTJI.js → chunk-IU4IO3CG.js} +35 -27
- package/dist/chunk-IYVFSLWJ.js +931 -0
- package/dist/{chunk-EX6GGCAC.cjs → chunk-J7YIQJPS.cjs} +15 -15
- package/dist/chunk-JHQ334WS.js +655 -0
- package/dist/{chunk-WCVZCGK5.cjs → chunk-JO5TLJPM.cjs} +129 -907
- package/dist/{chunk-PRX7HVLE.cjs → chunk-JVCAK4W3.cjs} +210 -9
- package/dist/chunk-KBJJQFYU.js +1122 -0
- package/dist/chunk-KEKCQENI.js +48 -0
- package/dist/{chunk-P6G3JZNC.cjs → chunk-KGAFUXGZ.cjs} +57 -148
- package/dist/chunk-KHXZFLIN.cjs +41 -0
- package/dist/{chunk-C4HRRB3V.cjs → chunk-KMB7JHGG.cjs} +23 -17
- package/dist/{chunk-K4PTDK34.js → chunk-KPUHSVJU.js} +322 -428
- package/dist/chunk-KT3U3ZRP.cjs +1137 -0
- package/dist/chunk-L2VUINHN.js +35 -0
- package/dist/{chunk-PLYEKV3N.cjs → chunk-MA4Q5RBP.cjs} +6 -6
- package/dist/chunk-NPAQSMRY.js +2087 -0
- package/dist/{chunk-IFWLJ66M.js → chunk-NQWJAOHO.js} +6 -4
- package/dist/{chunk-FYOKS5RI.cjs → chunk-OQKRXLTZ.cjs} +4719 -6351
- package/dist/chunk-P3JMAMHP.js +401 -0
- package/dist/{chunk-62KNLDXK.js → chunk-P6QCJXLD.js} +3 -3
- package/dist/chunk-PPXR22YC.cjs +2087 -0
- package/dist/chunk-PSVSEN4J.cjs +655 -0
- package/dist/{chunk-CDM7OSFB.cjs → chunk-QQQ46DFT.cjs} +125 -117
- package/dist/{chunk-FEMAJES4.cjs → chunk-QU4AHNRL.cjs} +41 -39
- package/dist/{chunk-2JTGK64G.js → chunk-RBVUIOIM.js} +12 -10
- package/dist/{chunk-SMAAV3HL.js → chunk-ROBQ5TR7.js} +10541 -10578
- package/dist/{chunk-TKZXHVBG.js → chunk-RRYNHAEL.js} +5 -5
- package/dist/{chunk-5HB7FLCV.js → chunk-STPC2AQU.js} +8338 -9970
- package/dist/{chunk-6K7QZDA6.cjs → chunk-TC4W7QDC.cjs} +8 -8
- package/dist/{chunk-FI6GMDO7.js → chunk-TTVOLEUS.js} +3605 -5040
- package/dist/{chunk-LM7TXMLU.cjs → chunk-ULWVKHSI.cjs} +8 -255
- package/dist/chunk-WANCBTUE.js +71 -0
- package/dist/{chunk-BIZNSF3U.cjs → chunk-WBNAEYTQ.cjs} +2 -51
- package/dist/chunk-WFPCCBOM.cjs +71 -0
- package/dist/chunk-WI6FHKD7.js +158 -0
- package/dist/chunk-WMNCVLES.js +100 -0
- package/dist/{chunk-UT4YHQZW.js → chunk-WSDT7LYL.js} +0 -49
- package/dist/chunk-WVOTC7HW.cjs +136 -0
- package/dist/chunk-XXBLN4BP.cjs +233 -0
- package/dist/{chunk-4IBPRIQH.js → chunk-YBQQNDC7.js} +1 -1
- package/dist/{chunk-QGZPZ3RL.js → chunk-YBS5QGON.js} +70 -128
- package/dist/{chunk-K6Y5NX6L.cjs → chunk-YIUSW4DB.cjs} +114 -220
- package/dist/{chunk-YD4LJZV4.cjs → chunk-ZX7SCPLO.cjs} +6 -8
- package/dist/cloud-tenants-HRJYNUJM.cjs +117 -0
- package/dist/cloud-tenants-SM7WLEGG.js +117 -0
- package/dist/components/case-studies/index.cjs +45 -29
- package/dist/components/case-studies/index.js +32 -16
- package/dist/components/chat/ask-prompts.d.ts +64 -0
- package/dist/components/chat/ask-prompts.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/case-study-card.d.ts +6 -3
- package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +27 -8
- package/dist/components/chat/index.d.ts +1 -0
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +57 -38
- package/dist/components/chat/quick-action-chip.d.ts +7 -3
- package/dist/components/chat/quick-action-chip.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +29 -13
- package/dist/components/contact/index.js +28 -12
- package/dist/components/docs/index.cjs +33 -16
- package/dist/components/docs/index.js +33 -16
- package/dist/components/docs/use-scroll-spy.d.ts +23 -1
- package/dist/components/docs/use-scroll-spy.d.ts.map +1 -1
- package/dist/components/embeds/index.cjs +29 -13
- package/dist/components/embeds/index.js +28 -12
- package/dist/components/faq/faq-section.d.ts +8 -1
- package/dist/components/faq/faq-section.d.ts.map +1 -1
- package/dist/components/faq/index.cjs +30 -14
- package/dist/components/faq/index.js +29 -13
- package/dist/components/features/approval-level.d.ts +49 -0
- package/dist/components/features/approval-level.d.ts.map +1 -0
- package/dist/components/features/array-entry-manager.d.ts +5 -1
- package/dist/components/features/array-entry-manager.d.ts.map +1 -1
- package/dist/components/features/board/board.d.ts +2 -0
- package/dist/components/features/board/board.d.ts.map +1 -1
- package/dist/components/features/board/ticket-card.d.ts.map +1 -1
- package/dist/components/features/board/touch-board.d.ts +1 -1
- package/dist/components/features/board/touch-board.d.ts.map +1 -1
- package/dist/components/features/board/types.d.ts +3 -0
- package/dist/components/features/board/types.d.ts.map +1 -1
- package/dist/components/features/board/use-board-collapse.d.ts +6 -1
- package/dist/components/features/board/use-board-collapse.d.ts.map +1 -1
- package/dist/components/features/capability-explorer.d.ts +94 -0
- package/dist/components/features/capability-explorer.d.ts.map +1 -0
- package/dist/components/features/cloud-tenants/index.d.ts +14 -0
- package/dist/components/features/cloud-tenants/index.d.ts.map +1 -0
- package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts +9 -0
- package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts.map +1 -0
- package/dist/components/features/cloud-tenants/tenant-cell.d.ts +8 -0
- package/dist/components/features/cloud-tenants/tenant-cell.d.ts.map +1 -0
- package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts +9 -0
- package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts.map +1 -0
- package/dist/components/features/cloud-tenants/tenant-presentation.d.ts +42 -0
- package/dist/components/features/cloud-tenants/tenant-presentation.d.ts.map +1 -0
- package/dist/components/features/cloud-tenants/tenant-row.d.ts +22 -0
- package/dist/components/features/cloud-tenants/tenant-row.d.ts.map +1 -0
- package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts +42 -0
- package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts.map +1 -0
- package/dist/components/features/cloud-tenants/tenants-table-view.d.ts +26 -0
- package/dist/components/features/cloud-tenants/tenants-table-view.d.ts.map +1 -0
- package/dist/components/features/devices/device-last-online.d.ts +3 -0
- package/dist/components/features/devices/device-last-online.d.ts.map +1 -0
- package/dist/components/features/devices/device-name.d.ts +42 -0
- package/dist/components/features/devices/device-name.d.ts.map +1 -0
- package/dist/components/features/devices/device-selector/device-selection-mode-radio.d.ts +26 -0
- package/dist/components/features/devices/device-selector/device-selection-mode-radio.d.ts.map +1 -0
- package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts +25 -0
- package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts.map +1 -0
- package/dist/components/features/devices/device-selector/device-selector.d.ts +38 -0
- package/dist/components/features/devices/device-selector/device-selector.d.ts.map +1 -0
- package/dist/components/features/devices/device-selector/device-selector.types.d.ts +133 -0
- package/dist/components/features/devices/device-selector/device-selector.types.d.ts.map +1 -0
- package/dist/components/features/devices/device-selector/narrowing.d.ts +13 -0
- package/dist/components/features/devices/device-selector/narrowing.d.ts.map +1 -0
- package/dist/components/features/devices/device-selector/use-device-selector.d.ts +17 -0
- package/dist/components/features/devices/device-selector/use-device-selector.d.ts.map +1 -0
- package/dist/components/features/devices/device-status.d.ts +23 -0
- package/dist/components/features/devices/device-status.d.ts.map +1 -0
- package/dist/components/features/devices/device-statuses.d.ts +40 -0
- package/dist/components/features/devices/device-statuses.d.ts.map +1 -0
- package/dist/components/features/devices/device-tags-filter-button.d.ts +22 -0
- package/dist/components/features/devices/device-tags-filter-button.d.ts.map +1 -0
- package/dist/components/features/devices/device-type-icon.d.ts +11 -0
- package/dist/components/features/devices/device-type-icon.d.ts.map +1 -0
- package/dist/components/features/devices/device-type-tile.d.ts +9 -0
- package/dist/components/features/devices/device-type-tile.d.ts.map +1 -0
- package/dist/components/features/devices/devices-filter-toolbar.d.ts +46 -0
- package/dist/components/features/devices/devices-filter-toolbar.d.ts.map +1 -0
- package/dist/components/features/devices/devices-grid-filters.d.ts +25 -0
- package/dist/components/features/devices/devices-grid-filters.d.ts.map +1 -0
- package/dist/components/features/devices/devices-grid.d.ts +12 -0
- package/dist/components/features/devices/devices-grid.d.ts.map +1 -0
- package/dist/components/features/devices/devices-list.d.ts +131 -0
- package/dist/components/features/devices/devices-list.d.ts.map +1 -0
- package/dist/components/features/devices/devices-panel-header.d.ts +46 -0
- package/dist/components/features/devices/devices-panel-header.d.ts.map +1 -0
- package/dist/components/features/devices/devices-panel-view.d.ts +79 -0
- package/dist/components/features/devices/devices-panel-view.d.ts.map +1 -0
- package/dist/components/features/devices/devices-table-columns.d.ts +76 -0
- package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -0
- package/dist/components/features/devices/devices-view-config.d.ts +25 -0
- package/dist/components/features/devices/devices-view-config.d.ts.map +1 -0
- package/dist/components/features/devices/index.d.ts +24 -0
- package/dist/components/features/devices/index.d.ts.map +1 -0
- package/dist/components/features/devices/types.d.ts +68 -0
- package/dist/components/features/devices/types.d.ts.map +1 -0
- package/dist/components/features/devices/use-tag-filter-modal.d.ts +50 -0
- package/dist/components/features/devices/use-tag-filter-modal.d.ts.map +1 -0
- package/dist/components/features/index.cjs +235 -12
- package/dist/components/features/index.d.ts +8 -0
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/features/index.js +274 -51
- package/dist/components/features/knowledge-base/index.d.ts +7 -0
- package/dist/components/features/knowledge-base/index.d.ts.map +1 -0
- package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts +44 -0
- package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts.map +1 -0
- package/dist/components/features/knowledge-base/knowledge-base-item-icon.d.ts +13 -0
- package/dist/components/features/knowledge-base/knowledge-base-item-icon.d.ts.map +1 -0
- package/dist/components/features/knowledge-base/knowledge-base-status.d.ts +8 -0
- package/dist/components/features/knowledge-base/knowledge-base-status.d.ts.map +1 -0
- package/dist/components/features/knowledge-base/knowledge-base-table.d.ts +52 -0
- package/dist/components/features/knowledge-base/knowledge-base-table.d.ts.map +1 -0
- package/dist/components/features/logs/index.d.ts +12 -0
- package/dist/components/features/logs/index.d.ts.map +1 -0
- package/dist/components/features/logs/log-drawer.d.ts +29 -0
- package/dist/components/features/logs/log-drawer.d.ts.map +1 -0
- package/dist/components/features/logs/log-source-labels.d.ts +11 -0
- package/dist/components/features/logs/log-source-labels.d.ts.map +1 -0
- package/dist/components/features/logs/logs-page-view.d.ts +32 -0
- package/dist/components/features/logs/logs-page-view.d.ts.map +1 -0
- package/dist/components/features/logs/logs-table-columns.d.ts +15 -0
- package/dist/components/features/logs/logs-table-columns.d.ts.map +1 -0
- package/dist/components/features/logs/logs-table-view.d.ts +64 -0
- package/dist/components/features/logs/logs-table-view.d.ts.map +1 -0
- package/dist/components/features/logs/types.d.ts +52 -0
- package/dist/components/features/logs/types.d.ts.map +1 -0
- package/dist/components/features/policies/compute-policy-summary.d.ts +37 -0
- package/dist/components/features/policies/compute-policy-summary.d.ts.map +1 -0
- package/dist/components/features/policies/index.d.ts +8 -0
- package/dist/components/features/policies/index.d.ts.map +1 -0
- package/dist/components/features/policies/policies-table.d.ts +34 -0
- package/dist/components/features/policies/policies-table.d.ts.map +1 -0
- package/dist/components/features/policies/policy-summary-cards.d.ts +17 -0
- package/dist/components/features/policies/policy-summary-cards.d.ts.map +1 -0
- package/dist/components/features/policies/policy-table-row.d.ts +37 -0
- package/dist/components/features/policies/policy-table-row.d.ts.map +1 -0
- package/dist/components/features/policy-configuration-panel.d.ts.map +1 -1
- package/dist/components/features/remote-session/index.d.ts +8 -0
- package/dist/components/features/remote-session/index.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts +21 -0
- package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts.map +1 -0
- package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts +31 -0
- package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts.map +1 -0
- package/dist/components/features/remote-session/remote-desktop-fullscreen-toolbar.d.ts +21 -0
- package/dist/components/features/remote-session/remote-desktop-fullscreen-toolbar.d.ts.map +1 -0
- package/dist/components/features/remote-session/remote-desktop-view.d.ts +50 -0
- package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -0
- package/dist/components/features/software/index.d.ts +8 -0
- package/dist/components/features/software/index.d.ts.map +1 -0
- package/dist/components/features/software/package-managers.d.ts +30 -0
- package/dist/components/features/software/package-managers.d.ts.map +1 -0
- package/dist/components/features/software/package-search-field-placeholder.d.ts +7 -0
- package/dist/components/features/software/package-search-field-placeholder.d.ts.map +1 -0
- package/dist/components/features/software/schedule-fields.d.ts +34 -0
- package/dist/components/features/software/schedule-fields.d.ts.map +1 -0
- package/dist/components/features/software/software-action-copy.d.ts +25 -0
- package/dist/components/features/software/software-action-copy.d.ts.map +1 -0
- package/dist/components/features/software/software-action-form.d.ts +71 -0
- package/dist/components/features/software/software-action-form.d.ts.map +1 -0
- package/dist/components/features/software/software-row-fields.d.ts +23 -0
- package/dist/components/features/software/software-row-fields.d.ts.map +1 -0
- package/dist/components/features/software/software-row.d.ts +18 -0
- package/dist/components/features/software/software-row.d.ts.map +1 -0
- package/dist/components/features/sortable-list/index.d.ts +1 -0
- package/dist/components/features/sortable-list/index.d.ts.map +1 -1
- package/dist/components/features/sortable-list/sortable-drag-handle.d.ts +21 -0
- package/dist/components/features/sortable-list/sortable-drag-handle.d.ts.map +1 -0
- package/dist/components/help-center-pages/index.cjs +133 -114
- package/dist/components/help-center-pages/index.js +58 -39
- package/dist/components/index.cjs +328 -82
- package/dist/components/index.js +459 -213
- package/dist/components/layout/page-heading.d.ts +12 -3
- package/dist/components/layout/page-heading.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +120 -98
- package/dist/components/meeting-scheduler/index.js +50 -28
- package/dist/components/navigation/index.cjs +36 -17
- package/dist/components/navigation/index.d.ts +3 -0
- package/dist/components/navigation/index.d.ts.map +1 -1
- package/dist/components/navigation/index.js +36 -17
- package/dist/components/navigation/mingo-ai-button.d.ts +23 -10
- package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
- package/dist/components/navigation/sticky-section-nav.d.ts +14 -1
- package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +32 -16
- package/dist/components/onboarding-guides/index.js +31 -15
- package/dist/components/product-demo/cast.d.ts +58 -0
- package/dist/components/product-demo/cast.d.ts.map +1 -0
- package/dist/components/product-demo/fixtures/cloud-tenants.d.ts +10 -0
- package/dist/components/product-demo/fixtures/cloud-tenants.d.ts.map +1 -0
- package/dist/components/product-demo/fixtures/devices.d.ts +14 -0
- package/dist/components/product-demo/fixtures/devices.d.ts.map +1 -0
- package/dist/components/product-demo/fixtures/knowledge.d.ts +14 -0
- package/dist/components/product-demo/fixtures/knowledge.d.ts.map +1 -0
- package/dist/components/product-demo/fixtures/logs.d.ts +15 -0
- package/dist/components/product-demo/fixtures/logs.d.ts.map +1 -0
- package/dist/components/product-demo/fixtures/policies.d.ts +13 -0
- package/dist/components/product-demo/fixtures/policies.d.ts.map +1 -0
- package/dist/components/product-demo/fixtures/remote-session.d.ts +20 -0
- package/dist/components/product-demo/fixtures/remote-session.d.ts.map +1 -0
- package/dist/components/product-demo/fixtures/shared.d.ts +156 -0
- package/dist/components/product-demo/fixtures/shared.d.ts.map +1 -0
- package/dist/components/product-demo/fixtures/software-update.d.ts +19 -0
- package/dist/components/product-demo/fixtures/software-update.d.ts.map +1 -0
- package/dist/components/product-demo/fixtures/tickets-board.d.ts +8 -0
- package/dist/components/product-demo/fixtures/tickets-board.d.ts.map +1 -0
- package/dist/components/product-demo/index.cjs +112 -0
- package/dist/components/product-demo/index.d.ts +6 -0
- package/dist/components/product-demo/index.d.ts.map +1 -0
- package/dist/components/product-demo/index.js +112 -0
- package/dist/components/product-demo/product-screen.d.ts +22 -0
- package/dist/components/product-demo/product-screen.d.ts.map +1 -0
- package/dist/components/product-demo/registry.d.ts +13 -0
- package/dist/components/product-demo/registry.d.ts.map +1 -0
- package/dist/components/product-demo/screen-keys.cjs +25 -0
- package/dist/components/product-demo/screen-keys.d.ts +27 -0
- package/dist/components/product-demo/screen-keys.d.ts.map +1 -0
- package/dist/components/product-demo/screen-keys.js +20 -0
- package/dist/components/product-demo/screens/cloud-tenants.d.ts +8 -0
- package/dist/components/product-demo/screens/cloud-tenants.d.ts.map +1 -0
- package/dist/components/product-demo/screens/devices.d.ts +10 -0
- package/dist/components/product-demo/screens/devices.d.ts.map +1 -0
- package/dist/components/product-demo/screens/knowledge.d.ts +9 -0
- package/dist/components/product-demo/screens/knowledge.d.ts.map +1 -0
- package/dist/components/product-demo/screens/logs.d.ts +4 -0
- package/dist/components/product-demo/screens/logs.d.ts.map +1 -0
- package/dist/components/product-demo/screens/policies.d.ts +8 -0
- package/dist/components/product-demo/screens/policies.d.ts.map +1 -0
- package/dist/components/product-demo/screens/remote-desktop-picture.d.ts +11 -0
- package/dist/components/product-demo/screens/remote-desktop-picture.d.ts.map +1 -0
- package/dist/components/product-demo/screens/remote-session.d.ts +8 -0
- package/dist/components/product-demo/screens/remote-session.d.ts.map +1 -0
- package/dist/components/product-demo/screens/software-update.d.ts +12 -0
- package/dist/components/product-demo/screens/software-update.d.ts.map +1 -0
- package/dist/components/product-demo/screens/tickets-board.d.ts +4 -0
- package/dist/components/product-demo/screens/tickets-board.d.ts.map +1 -0
- package/dist/components/product-demo/types.d.ts +9 -0
- package/dist/components/product-demo/types.d.ts.map +1 -0
- package/dist/components/related-content/index.cjs +14 -8
- package/dist/components/related-content/index.js +13 -7
- package/dist/components/tickets/index.cjs +36 -20
- package/dist/components/tickets/index.js +35 -19
- package/dist/components/ui/file-manager/index.cjs +38 -34
- package/dist/components/ui/file-manager/index.js +8 -4
- package/dist/components/ui/index.cjs +57 -17
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +141 -101
- package/dist/components/ui/product-screen-frame.d.ts +45 -0
- package/dist/components/ui/product-screen-frame.d.ts.map +1 -0
- package/dist/components/ui/radio-group.d.ts +5 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/snap-carousel.d.ts +11 -1
- package/dist/components/ui/snap-carousel.d.ts.map +1 -1
- package/dist/components/ui/tag.d.ts +1 -1
- package/dist/components/ui/tag.d.ts.map +1 -1
- package/dist/devices-6XKQTQM5.cjs +81 -0
- package/dist/devices-LXSFGGEZ.js +81 -0
- package/dist/hooks/index.cjs +17 -8
- package/dist/hooks/index.js +32 -23
- package/dist/hooks/ui/index.d.ts +1 -0
- package/dist/hooks/ui/index.d.ts.map +1 -1
- package/dist/hooks/ui/use-header-height.d.ts +12 -0
- package/dist/hooks/ui/use-header-height.d.ts.map +1 -1
- package/dist/hooks/ui/use-sticky-toolbar.d.ts +29 -0
- package/dist/hooks/ui/use-sticky-toolbar.d.ts.map +1 -0
- package/dist/hooks/use-location-hash.d.ts +2 -2
- package/dist/hooks/use-location-hash.d.ts.map +1 -1
- package/dist/hooks/use-scroll-to-hash.d.ts +7 -0
- package/dist/hooks/use-scroll-to-hash.d.ts.map +1 -1
- package/dist/index.cjs +284 -25
- package/dist/index.js +737 -478
- package/dist/knowledge-7PDZLXPO.cjs +108 -0
- package/dist/knowledge-Q4SPFOTN.js +108 -0
- package/dist/logs-SZ4VB4FE.js +216 -0
- package/dist/logs-TO3NELGJ.cjs +216 -0
- package/dist/policies-533GQVFM.cjs +121 -0
- package/dist/policies-LB7VW2UB.js +121 -0
- package/dist/remote-session-GSGZOFDX.js +196 -0
- package/dist/remote-session-R6VAFESR.cjs +196 -0
- package/dist/software-update-DT2XSG7M.cjs +179 -0
- package/dist/software-update-ENZNVGKP.js +179 -0
- package/dist/tickets-board-BHLPAVNJ.cjs +137 -0
- package/dist/tickets-board-PYDNELSK.js +137 -0
- package/dist/types/case-study.d.ts +15 -1
- package/dist/types/case-study.d.ts.map +1 -1
- package/dist/utils/date-utils.d.ts +5 -0
- package/dist/utils/date-utils.d.ts.map +1 -1
- package/dist/utils/index.cjs +45 -2
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +41 -3
- package/dist/utils/open-in-new-tab.d.ts +7 -0
- package/dist/utils/open-in-new-tab.d.ts.map +1 -0
- package/dist/utils/same-page-hash-nav.d.ts +31 -0
- package/dist/utils/same-page-hash-nav.d.ts.map +1 -1
- package/dist/utils/scroll-into-view.d.ts +14 -1
- package/dist/utils/scroll-into-view.d.ts.map +1 -1
- package/package.json +13 -1
- package/src/components/chat/ask-prompts.tsx +226 -0
- package/src/components/chat/embeddable-chat.tsx +36 -2
- package/src/components/chat/entity-cards/case-study-card.tsx +122 -46
- package/src/components/chat/index.ts +1 -0
- package/src/components/chat/quick-action-chip.tsx +33 -9
- package/src/components/docs/use-scroll-spy.ts +93 -18
- package/src/components/faq/faq-section.tsx +82 -43
- package/src/components/features/approval-level.tsx +149 -0
- package/src/components/features/array-entry-manager.tsx +10 -1
- package/src/components/features/board/board.tsx +4 -1
- package/src/components/features/board/ticket-card.tsx +11 -1
- package/src/components/features/board/touch-board.tsx +2 -1
- package/src/components/features/board/types.ts +3 -0
- package/src/components/features/board/use-board-collapse.ts +7 -2
- package/src/components/features/capability-explorer.tsx +412 -0
- package/src/components/features/cloud-tenants/index.ts +28 -0
- package/src/components/features/cloud-tenants/tenant-access-cell.tsx +24 -0
- package/src/components/features/cloud-tenants/tenant-cell.tsx +26 -0
- package/src/components/features/cloud-tenants/tenant-customer-cell.tsx +27 -0
- package/src/components/features/cloud-tenants/tenant-presentation.ts +111 -0
- package/src/components/features/cloud-tenants/tenant-row.ts +21 -0
- package/src/components/features/cloud-tenants/tenants-table-columns.ts +30 -0
- package/src/components/features/cloud-tenants/tenants-table-view.tsx +142 -0
- package/src/components/features/devices/device-last-online.ts +6 -0
- package/src/components/features/devices/device-name.ts +51 -0
- package/src/components/features/devices/device-selector/device-selection-mode-radio.tsx +107 -0
- package/src/components/features/devices/device-selector/device-selector-skeleton.tsx +32 -0
- package/src/components/features/devices/device-selector/device-selector.tsx +799 -0
- package/src/components/features/devices/device-selector/device-selector.types.ts +138 -0
- package/src/components/features/devices/device-selector/narrowing.ts +33 -0
- package/src/components/features/devices/device-selector/use-device-selector.ts +51 -0
- package/src/components/features/devices/device-status.ts +102 -0
- package/src/components/features/devices/device-statuses.ts +88 -0
- package/src/components/features/devices/device-tags-filter-button.tsx +49 -0
- package/src/components/features/devices/device-type-icon.tsx +29 -0
- package/src/components/features/devices/device-type-tile.tsx +17 -0
- package/src/components/features/devices/devices-filter-toolbar.tsx +114 -0
- package/src/components/features/devices/devices-grid-filters.tsx +99 -0
- package/src/components/features/devices/devices-grid.tsx +86 -0
- package/src/components/features/devices/devices-list.tsx +357 -0
- package/src/components/features/devices/devices-panel-header.tsx +97 -0
- package/src/components/features/devices/devices-panel-view.tsx +261 -0
- package/src/components/features/devices/devices-table-columns.tsx +356 -0
- package/src/components/features/devices/devices-view-config.tsx +38 -0
- package/src/components/features/devices/index.ts +89 -0
- package/src/components/features/devices/types.ts +74 -0
- package/src/components/features/devices/use-tag-filter-modal.ts +109 -0
- package/src/components/features/index.ts +10 -0
- package/src/components/features/knowledge-base/index.ts +19 -0
- package/src/components/features/knowledge-base/knowledge-base-article-view.tsx +134 -0
- package/src/components/features/knowledge-base/knowledge-base-item-icon.ts +14 -0
- package/src/components/features/knowledge-base/knowledge-base-status.ts +12 -0
- package/src/components/features/knowledge-base/knowledge-base-table.tsx +180 -0
- package/src/components/features/logs/index.ts +20 -0
- package/src/components/features/logs/log-drawer.tsx +138 -0
- package/src/components/features/logs/log-source-labels.ts +25 -0
- package/src/components/features/logs/logs-page-view.tsx +100 -0
- package/src/components/features/logs/logs-table-columns.ts +16 -0
- package/src/components/features/logs/logs-table-view.tsx +509 -0
- package/src/components/features/logs/types.ts +71 -0
- package/src/components/features/policies/compute-policy-summary.ts +115 -0
- package/src/components/features/policies/index.ts +14 -0
- package/src/components/features/policies/policies-table.tsx +235 -0
- package/src/components/features/policies/policy-summary-cards.tsx +69 -0
- package/src/components/features/policies/policy-table-row.ts +37 -0
- package/src/components/features/policy-configuration-panel.tsx +3 -12
- package/src/components/features/remote-session/index.ts +8 -0
- package/src/components/features/remote-session/remote-desktop-chat-message-row.tsx +56 -0
- package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +102 -0
- package/src/components/features/remote-session/remote-desktop-fullscreen-toolbar.tsx +119 -0
- package/src/components/features/remote-session/remote-desktop-view.tsx +209 -0
- package/src/components/features/software/index.ts +39 -0
- package/src/components/features/software/package-managers.ts +54 -0
- package/src/components/features/software/package-search-field-placeholder.tsx +23 -0
- package/src/components/features/software/schedule-fields.tsx +105 -0
- package/src/components/features/software/software-action-copy.ts +70 -0
- package/src/components/features/software/software-action-form.tsx +199 -0
- package/src/components/features/software/software-row-fields.tsx +105 -0
- package/src/components/features/software/software-row.ts +22 -0
- package/src/components/features/sortable-list/index.ts +1 -0
- package/src/components/features/sortable-list/sortable-drag-handle.tsx +41 -0
- package/src/components/layout/page-heading.tsx +23 -6
- package/src/components/navigation/index.ts +5 -0
- package/src/components/navigation/mingo-ai-button.tsx +37 -13
- package/src/components/navigation/sticky-section-nav.tsx +99 -1
- package/src/components/product-demo/cast.tsx +78 -0
- package/src/components/product-demo/fixtures/cloud-tenants.ts +63 -0
- package/src/components/product-demo/fixtures/devices.ts +87 -0
- package/src/components/product-demo/fixtures/knowledge.ts +48 -0
- package/src/components/product-demo/fixtures/logs.ts +103 -0
- package/src/components/product-demo/fixtures/policies.ts +77 -0
- package/src/components/product-demo/fixtures/remote-session.ts +65 -0
- package/src/components/product-demo/fixtures/shared.ts +53 -0
- package/src/components/product-demo/fixtures/software-update.ts +63 -0
- package/src/components/product-demo/fixtures/tickets-board.ts +100 -0
- package/src/components/product-demo/index.ts +7 -0
- package/src/components/product-demo/product-screen.tsx +94 -0
- package/src/components/product-demo/registry.ts +20 -0
- package/src/components/product-demo/screen-keys.ts +31 -0
- package/src/components/product-demo/screens/cloud-tenants.tsx +23 -0
- package/src/components/product-demo/screens/devices.tsx +41 -0
- package/src/components/product-demo/screens/knowledge.tsx +27 -0
- package/src/components/product-demo/screens/logs.tsx +113 -0
- package/src/components/product-demo/screens/policies.tsx +29 -0
- package/src/components/product-demo/screens/remote-desktop-picture.tsx +118 -0
- package/src/components/product-demo/screens/remote-session.tsx +46 -0
- package/src/components/product-demo/screens/software-update.tsx +97 -0
- package/src/components/product-demo/screens/tickets-board.tsx +28 -0
- package/src/components/product-demo/types.ts +10 -0
- package/src/components/ui/index.ts +1 -0
- package/src/components/ui/product-screen-frame.tsx +136 -0
- package/src/components/ui/radio-group.tsx +16 -4
- package/src/components/ui/snap-carousel.tsx +26 -1
- package/src/components/ui/tag.tsx +5 -0
- package/src/hooks/ui/index.ts +1 -0
- package/src/hooks/ui/use-header-height.ts +51 -2
- package/src/hooks/ui/use-sticky-toolbar.ts +60 -0
- package/src/hooks/use-location-hash.ts +9 -5
- package/src/hooks/use-scroll-to-hash.ts +9 -1
- package/src/types/case-study.ts +21 -1
- package/src/utils/date-utils.ts +8 -1
- package/src/utils/index.ts +5 -0
- package/src/utils/open-in-new-tab.ts +12 -0
- package/src/utils/same-page-hash-nav.ts +57 -0
- package/src/utils/scroll-into-view.ts +21 -5
- package/dist/chunk-BM5MVGH3.cjs +0 -499
- package/dist/chunk-CUME3VTQ.js +0 -144
- package/dist/chunk-CZ7Y7UG4.js +0 -732
- package/dist/chunk-FLKJYMVB.js +0 -499
- package/dist/chunk-OF6GEI5A.cjs +0 -144
- package/dist/chunk-UVTD52MD.cjs +0 -732
|
@@ -1,51 +1,55 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
useOptionalTicketLive
|
|
4
|
-
} from "./chunk-
|
|
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-
|
|
15
|
+
} from "./chunk-STPC2AQU.js";
|
|
18
16
|
import {
|
|
19
17
|
resolveActiveSection,
|
|
20
|
-
shortcutLabel,
|
|
21
18
|
useActiveSection,
|
|
22
19
|
useFocusTrap,
|
|
23
|
-
|
|
24
|
-
|
|
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-
|
|
31
|
+
} from "./chunk-ROBQ5TR7.js";
|
|
32
32
|
import {
|
|
33
33
|
useHeaderHeight
|
|
34
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
206
|
-
var defaultRenderSiteNavLink = ({ link, children, ...rest }) => link.external ? /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
161
|
+
children = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
265
162
|
label,
|
|
266
163
|
counter
|
|
267
164
|
] });
|
|
268
165
|
} else if (variant === "side") {
|
|
269
|
-
children = /* @__PURE__ */
|
|
270
|
-
link.iconName && /* @__PURE__ */
|
|
271
|
-
/* @__PURE__ */
|
|
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__ */
|
|
277
|
-
/* @__PURE__ */
|
|
278
|
-
/* @__PURE__ */
|
|
279
|
-
/* @__PURE__ */
|
|
280
|
-
/* @__PURE__ */
|
|
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__ */
|
|
284
|
-
link.builtOn && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
308
|
-
group.title && /* @__PURE__ */
|
|
309
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
370
|
-
columns.map((group) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
385
|
-
menu.sideTitle && /* @__PURE__ */
|
|
386
|
-
menu.sideLinks.map((link) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
403
|
-
columns.map((group) => /* @__PURE__ */
|
|
404
|
-
socialRow && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
565
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
535
|
+
leading: /* @__PURE__ */ jsxs4(Fragment3, { children: [
|
|
639
536
|
leading,
|
|
640
|
-
mobile && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
666
|
-
mingo && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
753
|
-
/* @__PURE__ */
|
|
754
|
-
/* @__PURE__ */
|
|
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__ */
|
|
660
|
+
children: /* @__PURE__ */ jsx6(XmarkIcon, { "aria-hidden": "true", className: "!h-6 !w-6" })
|
|
764
661
|
}
|
|
765
662
|
)
|
|
766
663
|
] }),
|
|
767
|
-
/* @__PURE__ */
|
|
768
|
-
askAI && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
683
|
+
children: /* @__PURE__ */ jsxs5(Fragment4, { children: [
|
|
787
684
|
menu.label,
|
|
788
|
-
/* @__PURE__ */
|
|
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__ */
|
|
795
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
822
|
-
links.map((link) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
877
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
886
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
914
|
-
] }) : /* @__PURE__ */
|
|
915
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
966
|
-
/* @__PURE__ */
|
|
967
|
-
/* @__PURE__ */
|
|
968
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
976
|
-
/* @__PURE__ */
|
|
977
|
-
/* @__PURE__ */
|
|
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__ */
|
|
876
|
+
typeof name === "string" ? /* @__PURE__ */ jsx7("span", { className: "whitespace-nowrap text-ods-text-primary text-wordmark", children: name }) : name
|
|
980
877
|
] }),
|
|
981
|
-
/* @__PURE__ */
|
|
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__ */
|
|
990
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
902
|
+
children: columns.map((group) => /* @__PURE__ */ jsx7(FooterColumn, { group, accordion, renderLink }, group.id))
|
|
1006
903
|
}
|
|
1007
904
|
)
|
|
1008
905
|
] }),
|
|
1009
|
-
/* @__PURE__ */
|
|
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__ */
|
|
913
|
+
/* @__PURE__ */ jsxs6("span", { children: [
|
|
1017
914
|
"\xA9 ",
|
|
1018
915
|
year,
|
|
1019
916
|
" ",
|
|
1020
917
|
nav.legal.company
|
|
1021
918
|
] }),
|
|
1022
|
-
/* @__PURE__ */
|
|
1023
|
-
nav.legal.notes.length > 0 && /* @__PURE__ */
|
|
1024
|
-
nav.legal.links.map((link) => /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
977
|
+
children: /* @__PURE__ */ jsx8("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
|
|
1081
978
|
}
|
|
1082
979
|
);
|
|
1083
|
-
return /* @__PURE__ */
|
|
1084
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1099
|
-
item.badge !== void 0 && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1139
|
-
item.badge !== void 0 && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1162
|
-
item.badge !== void 0 && /* @__PURE__ */
|
|
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__ */
|
|
1172
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1214
|
-
/* @__PURE__ */
|
|
1215
|
-
config.footer && /* @__PURE__ */
|
|
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
|
|
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
|
|
1123
|
+
import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1227
1124
|
function NavigationSidebarHeader({ minimized }) {
|
|
1228
|
-
return /* @__PURE__ */
|
|
1229
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1152
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
1256
1153
|
function NavigationItemBadge({ label, compact = false, className, ...rest }) {
|
|
1257
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
1319
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1220
|
+
hasUnread && !showLabel && /* @__PURE__ */ jsx11(UnreadDot, { size: "fixed" })
|
|
1324
1221
|
] }),
|
|
1325
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1335
|
-
item.badge && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1245
|
+
return /* @__PURE__ */ jsx11("button", { type: "button", onClick: (event) => onClick(item, event), disabled, ...shared, children: content });
|
|
1349
1246
|
}
|
|
1350
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
1354
|
-
/* @__PURE__ */
|
|
1355
|
-
showLabel && /* @__PURE__ */
|
|
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
|
|
1257
|
+
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1361
1258
|
function NavigationSidebarToggle({ minimized, showLabel, onToggle }) {
|
|
1362
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
1377
|
-
/* @__PURE__ */
|
|
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
|
|
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
|
-
|
|
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__ */
|
|
1502
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1544
|
-
/* @__PURE__ */
|
|
1545
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
1626
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1716
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1729
|
-
/* @__PURE__ */
|
|
1730
|
-
/* @__PURE__ */
|
|
1731
|
-
deviceCount !== void 0 && /* @__PURE__ */
|
|
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__ */
|
|
1740
|
-
/* @__PURE__ */
|
|
1741
|
-
organizations.map((org) => /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
1767
|
-
/* @__PURE__ */
|
|
1768
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1740
|
+
!isMdUp && /* @__PURE__ */ jsx18(
|
|
1844
1741
|
HeaderButton,
|
|
1845
1742
|
{
|
|
1846
1743
|
onClick: onToggleMobileMenu,
|
|
1847
1744
|
isActive: isMobileMenuOpen,
|
|
1848
|
-
icon: isMobileMenuOpen ? /* @__PURE__ */
|
|
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__ */
|
|
1856
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1761
|
+
/* @__PURE__ */ jsx18(OpenFrameText, { textColor: "var(--color-text-primary)", className: "h-4" })
|
|
1865
1762
|
] }),
|
|
1866
1763
|
logoClassName: "gap-2",
|
|
1867
|
-
center: showSearch ? /* @__PURE__ */
|
|
1868
|
-
sideActions: /* @__PURE__ */
|
|
1869
|
-
showSearch && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1888
|
-
showNotifications && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1906
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1935
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1946
|
-
userName && /* @__PURE__ */
|
|
1947
|
-
userEmail && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1956
|
-
/* @__PURE__ */
|
|
1957
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1967
|
-
/* @__PURE__ */
|
|
1968
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1893
|
+
return /* @__PURE__ */ jsx18(
|
|
1997
1894
|
HeaderButton,
|
|
1998
1895
|
{
|
|
1999
|
-
icon: isActive ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2019
|
-
/* @__PURE__ */
|
|
2020
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2040
|
-
/* @__PURE__ */
|
|
2041
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2045
|
-
sideActions: /* @__PURE__ */
|
|
2046
|
-
showSearch && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2406
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2490
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2508
|
-
return /* @__PURE__ */
|
|
2509
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2545
|
-
user && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2566
|
-
/* @__PURE__ */
|
|
2567
|
-
/* @__PURE__ */
|
|
2568
|
-
user.userRole && /* @__PURE__ */
|
|
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__ */
|
|
2467
|
+
user.userEmail && /* @__PURE__ */ jsx20("span", { className: "truncate text-ods-text-secondary text-h6", children: user.userEmail })
|
|
2571
2468
|
] }),
|
|
2572
|
-
/* @__PURE__ */
|
|
2573
|
-
onSearchUser && /* @__PURE__ */
|
|
2574
|
-
onEditProfile && /* @__PURE__ */
|
|
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__ */
|
|
2581
|
-
secondaryItems.length > 0 && /* @__PURE__ */
|
|
2582
|
-
onLogout && /* @__PURE__ */
|
|
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__ */
|
|
2594
|
-
/* @__PURE__ */
|
|
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
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
2673
|
-
/* @__PURE__ */
|
|
2674
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2685
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2695
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2613
|
+
children: /* @__PURE__ */ jsx21(ContentAreaWidthContext.Provider, { value: contentWidth, children: /* @__PURE__ */ jsx21("div", { className: "ods-content-scope", children }) })
|
|
2717
2614
|
}
|
|
2718
2615
|
)
|
|
2719
|
-
) : /* @__PURE__ */
|
|
2720
|
-
sidePanel && sidePanelState && /* @__PURE__ */
|
|
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,
|