@flamingo-stack/openframe-frontend-core 0.0.702 → 0.0.703-snapshot.20261006080901
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-CYYTD5ZK.cjs → chunk-262YQFOS.cjs} +47 -47
- package/dist/{chunk-SAA7B3DA.js → chunk-2G546OND.js} +500 -67
- package/dist/{chunk-6JPQDYYY.js → chunk-2JDVL7UV.js} +2614 -2001
- package/dist/{chunk-ASN65P3F.cjs → chunk-4DQMTBMK.cjs} +15 -15
- package/dist/{chunk-CZ34HXDW.js → chunk-4KGXLVCF.js} +686 -725
- package/dist/{chunk-TCZCMD5Q.js → chunk-5HBHO5TB.js} +1 -1
- package/dist/{chunk-446KS5BG.js → chunk-5QJDM6UV.js} +5 -5
- package/dist/{chunk-UJJWTJ6S.js → chunk-6WQIUQUC.js} +30 -16
- package/dist/{chunk-YR6JPJF4.js → chunk-6XIF2Z7I.js} +4 -4
- package/dist/{chunk-YGRHITPY.cjs → chunk-7JIL3WOH.cjs} +24 -24
- package/dist/{chunk-RS7HWAYX.js → chunk-7LFIKJX2.js} +3 -3
- package/dist/{chunk-4OGAXAEG.cjs → chunk-ABU3TGXA.cjs} +3 -3
- package/dist/{chunk-3WSFIV5G.cjs → chunk-AMYY3PNL.cjs} +69 -55
- package/dist/{chunk-BRXOGCH3.cjs → chunk-BIZNSF3U.cjs} +3 -3
- package/dist/{chunk-2A4XES7R.cjs → chunk-BM5MVGH3.cjs} +3 -3
- package/dist/{chunk-IIMICN7L.cjs → chunk-C3BWIU7R.cjs} +4 -44
- package/dist/{chunk-LZNJH23A.cjs → chunk-C7XGRLT5.cjs} +12 -12
- package/dist/{chunk-6YCXA7CN.js → chunk-CH5232HV.js} +20 -19
- package/dist/{chunk-UIBSSVON.cjs → chunk-D7BTSVMS.cjs} +2 -2
- package/dist/{chunk-BO5ZHDA4.js → chunk-ERCV6HHJ.js} +7 -7
- package/dist/{chunk-5V6O73EH.js → chunk-FLKJYMVB.js} +3 -3
- package/dist/{chunk-Z5HDCZAS.js → chunk-FXENTYE5.js} +15 -15
- package/dist/{chunk-HIXGAY2L.cjs → chunk-HFJW24JJ.cjs} +121 -121
- package/dist/{chunk-HPJ4XS2L.js → chunk-HJAYVKWQ.js} +24 -24
- package/dist/{chunk-PLK6GHN7.js → chunk-I7DFUQMN.js} +10 -10
- package/dist/{chunk-KJ5LWATV.js → chunk-IHU5ANUY.js} +7 -7
- package/dist/{chunk-AEQANLBW.cjs → chunk-IZGDG5X6.cjs} +505 -72
- package/dist/{chunk-2V4Z44G6.js → chunk-JEYRXT5L.js} +17 -17
- package/dist/{chunk-B3LZJ6J3.cjs → chunk-L3IC42IF.cjs} +32 -32
- package/dist/{chunk-RTGPIHVO.cjs → chunk-LDPEQGKT.cjs} +2243 -1630
- package/dist/{chunk-FD4DBTFO.cjs → chunk-LTSTC3N5.cjs} +1253 -1292
- package/dist/{chunk-OGLCD3UL.js → chunk-MFFCUVWG.js} +6 -6
- package/dist/{chunk-3L7KCOGO.cjs → chunk-MGGGBHYD.cjs} +30 -30
- package/dist/{chunk-QFW3RUZS.cjs → chunk-MI3JUJ75.cjs} +33 -33
- package/dist/{chunk-EMCQGFXD.cjs → chunk-MMOODW57.cjs} +28 -27
- package/dist/{chunk-Q76ZTHNV.js → chunk-MP2C3LJ4.js} +1 -1
- package/dist/{chunk-E3DH543A.cjs → chunk-N3TO7JV3.cjs} +98 -98
- package/dist/{chunk-2T6QWNXU.js → chunk-NDESEPW5.js} +99 -11
- package/dist/{chunk-ETFFEA3J.js → chunk-NRLJUBCS.js} +7 -7
- package/dist/{chunk-HUOLB7ZN.cjs → chunk-OHFS7VOU.cjs} +9 -9
- package/dist/{chunk-MWUBBBWZ.js → chunk-QVSFBSWV.js} +10 -10
- package/dist/{chunk-MDBHZBW7.cjs → chunk-RKV5B7EU.cjs} +92 -4
- package/dist/{chunk-3G76LRGL.cjs → chunk-SYXQLETR.cjs} +29 -29
- package/dist/{chunk-FHM7GD5B.cjs → chunk-UK62YTH6.cjs} +28 -14
- package/dist/{chunk-HUMWQMCU.js → chunk-UT4YHQZW.js} +3 -3
- package/dist/{chunk-NGJCWEYX.cjs → chunk-VHCACDKP.cjs} +46 -46
- package/dist/{chunk-5FFNNJM7.js → chunk-VR2ZLFCP.js} +1 -1
- package/dist/{chunk-IZKOQVXO.js → chunk-VTASHWER.js} +14 -14
- package/dist/{chunk-64O4L7WN.js → chunk-WUJNYGO2.js} +11 -51
- package/dist/{chunk-JOY6HVPV.js → chunk-XATTBO5X.js} +25 -11
- package/dist/{chunk-L7KZA7ZD.cjs → chunk-XIFOBQRQ.cjs} +6 -6
- package/dist/{chunk-CXDJUKC6.cjs → chunk-XJKZ4IKT.cjs} +4 -4
- package/dist/{chunk-XCIFHW4E.cjs → chunk-XOYH2YQE.cjs} +2 -2
- package/dist/{chunk-HYFLTFFB.js → chunk-ZQFZSFQI.js} +2 -2
- package/dist/components/case-studies/index.cjs +24 -24
- package/dist/components/case-studies/index.js +10 -10
- package/dist/components/chat/chat-archive-page.d.ts +3 -3
- package/dist/components/chat/chat-archive-page.d.ts.map +1 -1
- package/dist/components/chat/chat-nav-sidebar.d.ts +4 -0
- package/dist/components/chat/chat-nav-sidebar.d.ts.map +1 -1
- package/dist/components/chat/chat-panel-header.d.ts +3 -2
- package/dist/components/chat/chat-panel-header.d.ts.map +1 -1
- package/dist/components/chat/embeddable-chat.d.ts +36 -2
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +14 -6
- package/dist/components/chat/index.d.ts +4 -1
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +13 -5
- package/dist/components/chat/mingo-archive-list.d.ts +17 -0
- package/dist/components/chat/mingo-archive-list.d.ts.map +1 -0
- package/dist/components/chat/mingo-chat-header.d.ts +31 -0
- package/dist/components/chat/mingo-chat-header.d.ts.map +1 -0
- package/dist/components/chat/mingo-chat-rail.d.ts +54 -0
- package/dist/components/chat/mingo-chat-rail.d.ts.map +1 -0
- package/dist/components/chat/model-display.d.ts.map +1 -1
- package/dist/components/contact/contact-form.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +11 -11
- package/dist/components/contact/index.js +10 -10
- package/dist/components/content-loading-container.d.ts +1 -1
- package/dist/components/content-loading-container.d.ts.map +1 -1
- package/dist/components/docs/index.cjs +14 -14
- package/dist/components/docs/index.js +13 -13
- package/dist/components/docs/skeletons.d.ts.map +1 -1
- package/dist/components/embeds/index.cjs +11 -11
- package/dist/components/embeds/index.js +10 -10
- package/dist/components/faq/index.cjs +12 -12
- package/dist/components/faq/index.js +11 -11
- package/dist/components/features/figma-prototype-viewer.d.ts.map +1 -1
- package/dist/components/features/index.cjs +10 -10
- package/dist/components/features/index.js +9 -9
- package/dist/components/features/media-gallery-manager.d.ts.map +1 -1
- package/dist/components/features/parallax-image-showcase.d.ts.map +1 -1
- package/dist/components/features/policy-configuration-panel.d.ts.map +1 -1
- package/dist/components/features/section-selector.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +119 -119
- package/dist/components/help-center-pages/index.js +39 -39
- package/dist/components/help-center-pages/trust-center-sections.d.ts +2 -2
- package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
- package/dist/components/index.cjs +94 -86
- package/dist/components/index.js +32 -24
- package/dist/components/layout/article-detail-layout.d.ts +1 -1
- package/dist/components/layout/article-detail-layout.d.ts.map +1 -1
- package/dist/components/layout/page-container.d.ts.map +1 -1
- package/dist/components/layout/title-block.d.ts +2 -2
- package/dist/components/layout/title-block.d.ts.map +1 -1
- package/dist/components/loading/page-layout-skeleton.d.ts.map +1 -1
- package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/booking-form.d.ts +4 -4
- package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/context-panel.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +127 -127
- package/dist/components/meeting-scheduler/index.d.ts +2 -2
- package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/index.js +50 -50
- package/dist/components/navigation/app-header.d.ts +4 -0
- package/dist/components/navigation/app-header.d.ts.map +1 -1
- package/dist/components/navigation/app-layout-drawer.d.ts.map +1 -1
- package/dist/components/navigation/app-layout-side-panel.d.ts +142 -0
- package/dist/components/navigation/app-layout-side-panel.d.ts.map +1 -0
- package/dist/components/navigation/app-layout.d.ts +11 -1
- package/dist/components/navigation/app-layout.d.ts.map +1 -1
- package/dist/components/navigation/header-mingo-button.d.ts +4 -1
- package/dist/components/navigation/header-mingo-button.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +13 -13
- package/dist/components/navigation/index.d.ts +1 -0
- package/dist/components/navigation/index.d.ts.map +1 -1
- package/dist/components/navigation/index.js +12 -12
- package/dist/components/navigation/navigation-sidebar.d.ts +8 -1
- package/dist/components/navigation/navigation-sidebar.d.ts.map +1 -1
- package/dist/components/navigation/sliding-sidebar.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +14 -14
- package/dist/components/onboarding-guides/index.js +13 -13
- package/dist/components/persistent-filter-controls.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +7 -7
- package/dist/components/related-content/index.js +6 -6
- package/dist/components/shared/detail-page-skeleton.d.ts.map +1 -1
- package/dist/components/tickets/help-center-create-form.d.ts +4 -4
- package/dist/components/tickets/index.cjs +15 -15
- package/dist/components/tickets/index.js +14 -14
- package/dist/components/ui/announcement-bar-view.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/checkbox-block.d.ts.map +1 -1
- package/dist/components/ui/dashboard-info-card.d.ts +1 -1
- package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-body.d.ts +2 -2
- package/dist/components/ui/data-table/data-table-skeleton.d.ts +2 -2
- package/dist/components/ui/data-table/data-table-skeleton.d.ts.map +1 -1
- package/dist/components/ui/data-table/utils.d.ts +2 -2
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts +7 -3
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/entity-image.d.ts +2 -2
- package/dist/components/ui/file-manager/index.cjs +36 -36
- package/dist/components/ui/file-manager/index.js +3 -3
- package/dist/components/ui/filter-modal.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +18 -10
- package/dist/components/ui/index.js +17 -9
- package/dist/components/ui/info-card-row.d.ts.map +1 -1
- package/dist/components/ui/menubar.d.ts +1 -1
- package/dist/components/ui/menubar.d.ts.map +1 -1
- package/dist/components/ui/modal-v2.d.ts.map +1 -1
- package/dist/components/ui/modal.d.ts.map +1 -1
- package/dist/components/ui/no-data/no-data-actions.d.ts.map +1 -1
- package/dist/components/ui/no-data/no-data-styles.d.ts +1 -1
- package/dist/components/ui/no-data/no-data-styles.d.ts.map +1 -1
- package/dist/components/ui/page-actions.d.ts.map +1 -1
- package/dist/components/ui/panel-resize-handle.d.ts +25 -0
- package/dist/components/ui/panel-resize-handle.d.ts.map +1 -0
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/table/table-skeleton.d.ts +1 -1
- package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
- package/dist/hooks/index.cjs +23 -9
- package/dist/hooks/index.js +24 -10
- package/dist/hooks/ui/index.d.ts +1 -0
- package/dist/hooks/ui/index.d.ts.map +1 -1
- package/dist/hooks/ui/use-content-breakpoint.d.ts +32 -0
- package/dist/hooks/ui/use-content-breakpoint.d.ts.map +1 -0
- package/dist/hooks/ui/use-isomorphic-layout-effect.d.ts +2 -2
- package/dist/hooks/ui/use-isomorphic-layout-effect.d.ts.map +1 -1
- package/dist/hooks/ui/use-media-query.d.ts.map +1 -1
- package/dist/hooks/ui/use-resizable-panel-size.d.ts +46 -0
- package/dist/hooks/ui/use-resizable-panel-size.d.ts.map +1 -0
- package/dist/index.cjs +39 -17
- package/dist/index.js +41 -19
- package/dist/styles/layout-steps.d.ts +30 -0
- package/dist/styles/layout-steps.d.ts.map +1 -0
- package/dist/tailwind.config.cjs +36 -11
- package/dist/tailwind.config.js +36 -11
- package/eslint-config/README.md +9 -0
- package/eslint-config/base.js +17 -1
- package/eslint-config/layout-variants.js +57 -0
- package/package.json +3 -1
- package/src/ODS_TOKEN_RULES.md +40 -0
- package/src/components/chat/chat-archive-page.tsx +9 -7
- package/src/components/chat/chat-nav-sidebar.tsx +10 -4
- package/src/components/chat/chat-panel-header.tsx +8 -5
- package/src/components/chat/embeddable-chat.tsx +686 -494
- package/src/components/chat/index.ts +4 -0
- package/src/components/chat/mingo-archive-list.tsx +108 -0
- package/src/components/chat/mingo-chat-header.tsx +104 -0
- package/src/components/chat/mingo-chat-rail.tsx +361 -0
- package/src/components/chat/model-display.tsx +8 -1
- package/src/components/contact/contact-form.tsx +11 -9
- package/src/components/content-loading-container.tsx +4 -2
- package/src/components/docs/doc-viewer.tsx +7 -7
- package/src/components/docs/skeletons.tsx +7 -4
- package/src/components/dynamic-skeleton.tsx +1 -1
- package/src/components/embeds/claude-embed.tsx +1 -1
- package/src/components/embeds/embed-viewer-frame.tsx +4 -4
- package/src/components/embeds/figma-embed.tsx +2 -2
- package/src/components/embeds/google-sheets-viewer.tsx +1 -1
- package/src/components/embeds/pdf-viewer.tsx +3 -3
- package/src/components/empty-state.tsx +6 -6
- package/src/components/faq/faq-section.tsx +2 -2
- package/src/components/faq-accordion.tsx +1 -1
- package/src/components/features/board/board-column-header.tsx +1 -1
- package/src/components/features/command-box.tsx +3 -3
- package/src/components/features/entity-video-section.tsx +2 -2
- package/src/components/features/figma-prototype-viewer.tsx +4 -1
- package/src/components/features/media-gallery-manager.tsx +3 -1
- package/src/components/features/parallax-image-showcase.tsx +9 -6
- package/src/components/features/policy-configuration-panel.tsx +9 -7
- package/src/components/features/provider-button.tsx +1 -1
- package/src/components/features/section-selector.tsx +11 -6
- package/src/components/features/select-button.tsx +4 -4
- package/src/components/features/seo-editor-preview.tsx +2 -2
- package/src/components/features/video-ratio-tabs.tsx +3 -3
- package/src/components/features/waitlist-form.tsx +1 -1
- package/src/components/help-center-pages/trust-center-page.tsx +1 -1
- package/src/components/help-center-pages/trust-center-sections.tsx +14 -14
- package/src/components/icon-display.tsx +1 -1
- package/src/components/layout/article-detail-layout.tsx +4 -2
- package/src/components/layout/list-page-layout.tsx +2 -2
- package/src/components/layout/page-container.tsx +26 -14
- package/src/components/layout/page-heading.tsx +1 -1
- package/src/components/layout/page-layout.tsx +1 -1
- package/src/components/layout/title-block.tsx +13 -13
- package/src/components/loading/card-skeleton.tsx +11 -11
- package/src/components/loading/category-vendor-selector-skeleton.tsx +1 -1
- package/src/components/loading/content-skeleton.tsx +6 -6
- package/src/components/loading/device-card-skeleton.tsx +1 -1
- package/src/components/loading/margin-report-skeleton.tsx +7 -7
- package/src/components/loading/msp-profile-form-skeleton.tsx +3 -3
- package/src/components/loading/organization-card-skeleton.tsx +2 -2
- package/src/components/loading/page-layout-skeleton.tsx +80 -68
- package/src/components/loading/unified-skeleton.tsx +16 -6
- package/src/components/media-carousel.tsx +3 -3
- package/src/components/meeting-scheduler/booking-form.tsx +9 -8
- package/src/components/meeting-scheduler/context-panel.tsx +8 -6
- package/src/components/meeting-scheduler/directory.tsx +4 -4
- package/src/components/meeting-scheduler/index.tsx +15 -15
- package/src/components/meeting-scheduler/slot-picker.tsx +12 -12
- package/src/components/navigation/app-header.tsx +6 -0
- package/src/components/navigation/app-layout-drawer.tsx +14 -237
- package/src/components/navigation/app-layout-side-panel.tsx +594 -0
- package/src/components/navigation/app-layout.tsx +69 -4
- package/src/components/navigation/header-mingo-button.tsx +13 -3
- package/src/components/navigation/index.ts +5 -0
- package/src/components/navigation/navigation-sidebar.tsx +17 -3
- package/src/components/navigation/sliding-sidebar.tsx +2 -1
- package/src/components/pagination.tsx +3 -3
- package/src/components/persistent-filter-controls.tsx +6 -2
- package/src/components/platform/ScriptArguments.tsx +1 -1
- package/src/components/platform/ScriptInfoSection.tsx +4 -4
- package/src/components/shared/article-author-byline.tsx +1 -1
- package/src/components/shared/delivery/delivery-lists.tsx +2 -2
- package/src/components/shared/delivery/delivery-row.tsx +7 -7
- package/src/components/shared/delivery/delivery-table.tsx +3 -3
- package/src/components/shared/detail-page-skeleton.tsx +11 -5
- package/src/components/shared/dev-section/dev-card-row.tsx +6 -6
- package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +8 -8
- package/src/components/shared/product-release/product-release-card.tsx +9 -9
- package/src/components/shared/product-release/product-releases-view.tsx +1 -1
- package/src/components/shared/product-release/release-detail-page.tsx +5 -5
- package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +1 -1
- package/src/components/shared/roadmap/roadmap-grid.tsx +3 -3
- package/src/components/tickets/help-center-card.tsx +1 -1
- package/src/components/tickets/help-center-create-form.tsx +12 -12
- package/src/components/ui/announcement-bar-view.tsx +2 -10
- package/src/components/ui/benefit-card.tsx +18 -18
- package/src/components/ui/brand-association-grid.tsx +4 -4
- package/src/components/ui/breadcrumb.tsx +4 -1
- package/src/components/ui/card.tsx +1 -1
- package/src/components/ui/checkbox-block.tsx +9 -7
- package/src/components/ui/content-loader.tsx +3 -3
- package/src/components/ui/cursor-pagination.tsx +3 -3
- package/src/components/ui/dashboard-info-card.tsx +13 -9
- package/src/components/ui/data-attribution.tsx +2 -2
- package/src/components/ui/data-table/data-table-body.tsx +2 -2
- package/src/components/ui/data-table/data-table-header.tsx +15 -15
- package/src/components/ui/data-table/data-table-skeleton.tsx +6 -6
- package/src/components/ui/data-table/utils.ts +5 -5
- package/src/components/ui/dialog.tsx +4 -1
- package/src/components/ui/drawer.tsx +43 -189
- package/src/components/ui/duration-input.tsx +1 -1
- package/src/components/ui/entity-image.tsx +3 -3
- package/src/components/ui/feature-card.tsx +10 -10
- package/src/components/ui/file-manager/file-manager-action-bar.tsx +1 -1
- package/src/components/ui/file-manager/file-manager.tsx +1 -1
- package/src/components/ui/filter-modal.tsx +8 -1
- package/src/components/ui/highlight-card.tsx +7 -7
- package/src/components/ui/info-card-row.tsx +10 -6
- package/src/components/ui/modal-v2.tsx +7 -2
- package/src/components/ui/modal.tsx +3 -2
- package/src/components/ui/no-data/no-data-actions.tsx +10 -4
- package/src/components/ui/no-data/no-data-styles.ts +1 -1
- package/src/components/ui/no-data/no-data.tsx +1 -1
- package/src/components/ui/organization-card.tsx +1 -1
- package/src/components/ui/page-actions.tsx +34 -5
- package/src/components/ui/panel-resize-handle.tsx +184 -0
- package/src/components/ui/progress-bar.tsx +2 -2
- package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
- package/src/components/ui/search-input.tsx +2 -2
- package/src/components/ui/service-card.tsx +2 -2
- package/src/components/ui/sheet.tsx +2 -1
- package/src/components/ui/skeleton.tsx +3 -3
- package/src/components/ui/stacked-rows-panel.tsx +4 -4
- package/src/components/ui/tab-navigation.tsx +2 -2
- package/src/components/ui/tab-selector.tsx +2 -2
- package/src/components/ui/table/table-header.tsx +3 -3
- package/src/components/ui/table/table-skeleton.tsx +3 -3
- package/src/components/ui/table/utils.ts +5 -5
- package/src/components/ui/tag-search-input.tsx +3 -3
- package/src/components/ui/tags-manager.tsx +5 -5
- package/src/components/ui/test-run.tsx +2 -2
- package/src/components/ui/ticket-info-section.tsx +1 -1
- package/src/components/ui/ticket-notes-section.tsx +1 -1
- package/src/components/ui/ticket-status-config-row.tsx +15 -15
- package/src/hooks/ui/index.ts +1 -0
- package/src/hooks/ui/use-content-breakpoint.ts +58 -0
- package/src/hooks/ui/use-media-query.ts +3 -2
- package/src/hooks/ui/use-resizable-panel-size.ts +114 -0
- package/src/styles/index.css +2 -0
- package/src/styles/layout-steps.ts +14 -0
- package/src/styles/ods-colors.css +15 -0
- package/src/styles/ods-content-area-tokens.css +27 -0
- package/src/styles/ods-content-area.css +31 -0
- package/src/styles/ods-effects.css +4 -2
- package/src/styles/ods-responsive-tokens.css +14 -4
- package/tailwind.config.ts +42 -7
|
@@ -125,7 +125,7 @@ export type SchedulerStage = Step | 'unavailable';
|
|
|
125
125
|
* video take the leftover space at 16:9; a stand-in that just stacks fixed
|
|
126
126
|
* blocks will overflow the shorter of the two.
|
|
127
127
|
*/
|
|
128
|
-
export declare const MEETING_SCHEDULER_H = "md:h-[34.375rem] lg:h-[23.75rem]";
|
|
128
|
+
export declare const MEETING_SCHEDULER_H = "content-md:h-[34.375rem] content-lg:h-[23.75rem]";
|
|
129
129
|
/**
|
|
130
130
|
* The box for `flow="details-first"`'s CALENDAR and confirmation stages (and its
|
|
131
131
|
* degraded stand-in), 638px from `md` (`4904:118213`), 812px on phones (the
|
|
@@ -141,7 +141,7 @@ export declare const MEETING_SCHEDULER_H = "md:h-[34.375rem] lg:h-[23.75rem]";
|
|
|
141
141
|
*
|
|
142
142
|
* Hosts read it through `SCHEDULER_FLOW_PRESETS[flow].height`, never directly.
|
|
143
143
|
*/
|
|
144
|
-
export declare const MEETING_SCHEDULER_DETAILS_FIRST_H = "h-[50.75rem] md:h-[39.875rem]";
|
|
144
|
+
export declare const MEETING_SCHEDULER_DETAILS_FIRST_H = "h-[50.75rem] content-md:h-[39.875rem]";
|
|
145
145
|
export type SchedulerFlow = 'slot-first' | 'details-first';
|
|
146
146
|
/** The flow every existing embed gets — the ONE spelling of the default. */
|
|
147
147
|
export declare const DEFAULT_SCHEDULER_FLOW: SchedulerFlow;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/meeting-scheduler/index.tsx"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMtD,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EACjB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/F,OAAO,EAA0D,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAwB/G,MAAM,WAAW,4BAA4B;IAC3C,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mEAAmE;IACnE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,sFAAsF;IACtF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,oBAAoB,CAAC,CAAC;IACxG;2CACuC;IACvC,MAAM,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACtC;AAED,KAAK,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;AAC7C,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,aAAa,CAAC;AA4ClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/meeting-scheduler/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import {
|
|
4
4
|
PersistentPaginationWrapper
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-5HBHO5TB.js";
|
|
6
6
|
import {
|
|
7
7
|
EmptyState
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-MFFCUVWG.js";
|
|
9
9
|
import {
|
|
10
10
|
Alert,
|
|
11
11
|
AlertDescription,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
SelectValue,
|
|
25
25
|
Textarea,
|
|
26
26
|
TimezoneSelect
|
|
27
|
-
} from "../../chunk-
|
|
27
|
+
} from "../../chunk-4KGXLVCF.js";
|
|
28
28
|
import "../../chunk-LQYXMEYF.js";
|
|
29
29
|
import "../../chunk-4JPLYOS6.js";
|
|
30
30
|
import {
|
|
@@ -33,20 +33,20 @@ import {
|
|
|
33
33
|
useHumanitySignals,
|
|
34
34
|
useRescuedForm,
|
|
35
35
|
useToast
|
|
36
|
-
} from "../../chunk-
|
|
36
|
+
} from "../../chunk-IHU5ANUY.js";
|
|
37
37
|
import "../../chunk-HFL2F4RM.js";
|
|
38
|
-
import "../../chunk-
|
|
38
|
+
import "../../chunk-UT4YHQZW.js";
|
|
39
39
|
import {
|
|
40
40
|
contentFetch,
|
|
41
41
|
pageCount
|
|
42
|
-
} from "../../chunk-
|
|
42
|
+
} from "../../chunk-MP2C3LJ4.js";
|
|
43
43
|
import {
|
|
44
44
|
Checkbox
|
|
45
45
|
} from "../../chunk-PLWMIU72.js";
|
|
46
46
|
import {
|
|
47
47
|
useIsHydrated
|
|
48
|
-
} from "../../chunk-
|
|
49
|
-
import "../../chunk-
|
|
48
|
+
} from "../../chunk-2JDVL7UV.js";
|
|
49
|
+
import "../../chunk-WUJNYGO2.js";
|
|
50
50
|
import "../../chunk-GY4IZG22.js";
|
|
51
51
|
import "../../chunk-2YXVWZVF.js";
|
|
52
52
|
import "../../chunk-Z2VNQQ74.js";
|
|
@@ -59,9 +59,9 @@ import {
|
|
|
59
59
|
formatDateWithTimezone,
|
|
60
60
|
formatDurationCompact,
|
|
61
61
|
formatTimeWithTimezone
|
|
62
|
-
} from "../../chunk-
|
|
62
|
+
} from "../../chunk-CH5232HV.js";
|
|
63
63
|
import "../../chunk-FBZMAPWO.js";
|
|
64
|
-
import "../../chunk-
|
|
64
|
+
import "../../chunk-NDESEPW5.js";
|
|
65
65
|
import "../../chunk-O43V3EOS.js";
|
|
66
66
|
import "../../chunk-LMBC5FFP.js";
|
|
67
67
|
import "../../chunk-E4ABZWTJ.js";
|
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
Input,
|
|
71
71
|
Label,
|
|
72
72
|
Skeleton
|
|
73
|
-
} from "../../chunk-
|
|
73
|
+
} from "../../chunk-FLKJYMVB.js";
|
|
74
74
|
import "../../chunk-INS7KZJB.js";
|
|
75
75
|
import {
|
|
76
76
|
Button
|
|
@@ -442,20 +442,20 @@ import { Fragment, useEffect, useMemo, useState as useState2 } from "react";
|
|
|
442
442
|
import { useForm, Controller } from "react-hook-form";
|
|
443
443
|
import { Fragment as Fragment2, jsx, jsxs } from "react/jsx-runtime";
|
|
444
444
|
var FORM_STACK = "flex flex-col gap-[var(--spacing-system-l)]";
|
|
445
|
-
var ROW_GRID = "grid grid-cols-2 gap-x-[var(--spacing-system-m)] gap-y-[var(--spacing-system-lf)] md:grid-cols-4";
|
|
445
|
+
var ROW_GRID = "grid grid-cols-2 gap-x-[var(--spacing-system-m)] gap-y-[var(--spacing-system-lf)] content-md:grid-cols-4";
|
|
446
446
|
var HOST_CONSENT_KEY = "hostConsent";
|
|
447
447
|
var GRID_COLUMNS = 4;
|
|
448
448
|
var SPAN_CLASS = {
|
|
449
|
-
1: "md:col-span-1",
|
|
450
|
-
2: "md:col-span-2",
|
|
451
|
-
3: "md:col-span-3",
|
|
452
|
-
4: "md:col-span-4"
|
|
449
|
+
1: "content-md:col-span-1",
|
|
450
|
+
2: "content-md:col-span-2",
|
|
451
|
+
3: "content-md:col-span-3",
|
|
452
|
+
4: "content-md:col-span-4"
|
|
453
453
|
};
|
|
454
454
|
var FIELD_SKELETON_CLASS = "h-[4.75rem] w-full";
|
|
455
455
|
var DEFAULT_SUBMIT_LABEL = "Confirm Booking";
|
|
456
456
|
var FOOTER_ROW_CLASS = "flex flex-wrap items-center justify-between gap-[var(--spacing-system-m)]";
|
|
457
457
|
var FOOTER_BARE_CLASS = "flex";
|
|
458
|
-
var SUBMIT_WIDE_CLASS = "md:w-60";
|
|
458
|
+
var SUBMIT_WIDE_CLASS = "content-md:w-60";
|
|
459
459
|
var DEFAULT_FIELD_ROWS = [[{ name: "email" }], [{ name: "firstName" }, { name: "lastName" }]];
|
|
460
460
|
var evenSpan = (count, index) => {
|
|
461
461
|
const base = Math.floor(GRID_COLUMNS / Math.max(1, count));
|
|
@@ -943,10 +943,10 @@ function Confirmation({ confirmation, timezone }) {
|
|
|
943
943
|
// src/components/meeting-scheduler/context-panel.tsx
|
|
944
944
|
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
945
945
|
var PANEL_STACK = "flex flex-col gap-[var(--spacing-system-l)]";
|
|
946
|
-
var IDENTITY_ROW = "flex items-center justify-between gap-[var(--spacing-system-m)] lg:flex-col lg:items-stretch lg:gap-[var(--spacing-system-l)]";
|
|
947
|
-
var STRIP_BODY = "flex flex-col gap-[var(--spacing-system-l)] md:flex-row md:items-start lg:flex-col";
|
|
948
|
-
var STRIP_MAIN = "flex min-w-0 flex-col gap-[var(--spacing-system-l)] md:flex-1";
|
|
949
|
-
var STRIP_ASIDE = "flex flex-col gap-[var(--spacing-system-xxs)] md:w-[280px] md:shrink-0 lg:w-full";
|
|
946
|
+
var IDENTITY_ROW = "flex items-center justify-between gap-[var(--spacing-system-m)] content-lg:flex-col content-lg:items-stretch content-lg:gap-[var(--spacing-system-l)]";
|
|
947
|
+
var STRIP_BODY = "flex flex-col gap-[var(--spacing-system-l)] content-md:flex-row content-md:items-start content-lg:flex-col";
|
|
948
|
+
var STRIP_MAIN = "flex min-w-0 flex-col gap-[var(--spacing-system-l)] content-md:flex-1";
|
|
949
|
+
var STRIP_ASIDE = "flex flex-col gap-[var(--spacing-system-xxs)] content-md:w-[280px] content-md:shrink-0 content-lg:w-full";
|
|
950
950
|
var BACK_BUTTON_CLASS = "py-0";
|
|
951
951
|
var FIELD_LABEL_CLASS = "text-h4 text-ods-text-primary";
|
|
952
952
|
function ContextPanelSkeleton({
|
|
@@ -958,7 +958,7 @@ function ContextPanelSkeleton({
|
|
|
958
958
|
onBack && /* @__PURE__ */ jsx3(BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
|
|
959
959
|
/* @__PURE__ */ jsxs3("div", { className: STRIP_BODY, children: [
|
|
960
960
|
/* @__PURE__ */ jsx3("div", { className: STRIP_MAIN, children: /* @__PURE__ */ jsxs3("div", { className: IDENTITY_ROW, children: [
|
|
961
|
-
/* @__PURE__ */ jsxs3("div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xs)] lg:flex-none", children: [
|
|
961
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xs)] content-lg:flex-none", children: [
|
|
962
962
|
/* @__PURE__ */ jsx3(Skeleton, { className: "h-8 w-8 shrink-0 rounded-full" }),
|
|
963
963
|
/* @__PURE__ */ jsxs3("div", { className: "flex flex-1 flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
964
964
|
/* @__PURE__ */ jsx3(Skeleton, { className: "h-5 w-32" }),
|
|
@@ -1050,7 +1050,7 @@ function SchedulerContextPanel({
|
|
|
1050
1050
|
// summary line states the zone one row below — so the fact survives,
|
|
1051
1051
|
// only the control steps aside. The 280px sidebar has the room, so
|
|
1052
1052
|
// there it stays.
|
|
1053
|
-
/* @__PURE__ */ jsxs3("div", { className: cn(STRIP_ASIDE, locked && "max-lg:hidden"), children: [
|
|
1053
|
+
/* @__PURE__ */ jsxs3("div", { className: cn(STRIP_ASIDE, locked && "content-max-lg:hidden"), children: [
|
|
1054
1054
|
/* @__PURE__ */ jsx3("p", { className: FIELD_LABEL_CLASS, children: "Timezone" }),
|
|
1055
1055
|
timezone ? /* @__PURE__ */ jsx3(
|
|
1056
1056
|
TimezoneSelect,
|
|
@@ -1087,7 +1087,7 @@ function dateFromDayKey(key) {
|
|
|
1087
1087
|
function timeLabelInZone(ms, timeZone) {
|
|
1088
1088
|
return formatTimeWithTimezone(ms, timeZone, { viewerLocale: true });
|
|
1089
1089
|
}
|
|
1090
|
-
var CALENDAR_W = "md:w-[19rem] md:shrink-0 lg:w-[16rem]";
|
|
1090
|
+
var CALENDAR_W = "content-md:w-[19rem] content-md:shrink-0 content-lg:w-[16rem]";
|
|
1091
1091
|
var COLUMN_HEADING_CLASS = "shrink-0 text-h4 text-ods-text-primary";
|
|
1092
1092
|
var COLUMN_STACK = "flex min-h-0 flex-col gap-[var(--spacing-system-xxs)]";
|
|
1093
1093
|
var SLOT_PICKER_HEADING = "Select Date & Time";
|
|
@@ -1101,7 +1101,7 @@ var CHIP_GRID_CLASS = cn(
|
|
|
1101
1101
|
// 700px card into a 1500px one and buries whatever the page puts below
|
|
1102
1102
|
// it. This is the one nested scroller worth having: a small, obviously
|
|
1103
1103
|
// bounded list with a visible edge, exactly as drawn.
|
|
1104
|
-
"max-h-[9.75rem] md:max-h-none",
|
|
1104
|
+
"max-h-[9.75rem] content-md:max-h-none",
|
|
1105
1105
|
// No height of its own, and none borrowed from the calendar either: the card
|
|
1106
1106
|
// states one height, the panel and this row pass it down, and what is left
|
|
1107
1107
|
// after the column heading IS the scroll box. A long day scrolls inside it.
|
|
@@ -1115,17 +1115,17 @@ var CHIP_GRID_CLASS = cn(
|
|
|
1115
1115
|
);
|
|
1116
1116
|
var CHIP_CLASS = "w-full px-[var(--spacing-system-xxs)]";
|
|
1117
1117
|
var SLOT_ROW_CLASS = cn(
|
|
1118
|
-
"flex min-w-0 flex-col md:flex-row",
|
|
1118
|
+
"flex min-w-0 flex-col content-md:flex-row",
|
|
1119
1119
|
// Default `stretch` at every width, deliberately. Stacked, that is what
|
|
1120
1120
|
// makes each section span the card — an `items-start` here (it was here, to
|
|
1121
1121
|
// stop a column growing taller than its month) collapses both sections to
|
|
1122
1122
|
// their intrinsic WIDTH instead, which on a phone left the calendar and the
|
|
1123
1123
|
// chips huddled against the left edge with half the card empty. The
|
|
1124
1124
|
// calendar no longer needs protecting: its height is fixed, not derived.
|
|
1125
|
-
"md:min-h-0 md:flex-1 lg:gap-[var(--spacing-system-lf)]"
|
|
1125
|
+
"content-md:min-h-0 content-md:flex-1 content-lg:gap-[var(--spacing-system-lf)]"
|
|
1126
1126
|
);
|
|
1127
|
-
var COLUMN_BOX = "p-[var(--spacing-system-l)] lg:p-0";
|
|
1128
|
-
var COLUMN_DIVIDER = "border-b border-ods-border md:border-b-0 md:border-r lg:border-0";
|
|
1127
|
+
var COLUMN_BOX = "p-[var(--spacing-system-l)] content-lg:p-0";
|
|
1128
|
+
var COLUMN_DIVIDER = "border-b border-ods-border content-md:border-b-0 content-md:border-r content-lg:border-0";
|
|
1129
1129
|
function monthLabelFor(offset) {
|
|
1130
1130
|
const now = /* @__PURE__ */ new Date();
|
|
1131
1131
|
const month = new Date(now.getFullYear(), now.getMonth() + offset, 1);
|
|
@@ -1164,7 +1164,7 @@ function DayCalendar({ monthOffset, onMonthOffsetChange, selectedDay, onSelectDa
|
|
|
1164
1164
|
}
|
|
1165
1165
|
function SlotPickerSkeleton({ monthOffset = 0 }) {
|
|
1166
1166
|
return /* @__PURE__ */ jsxs4("div", { className: SLOT_ROW_CLASS, children: [
|
|
1167
|
-
/* @__PURE__ */ jsxs4("div", { className: cn(COLUMN_STACK, COLUMN_BOX, COLUMN_DIVIDER, CALENDAR_W, "md:overflow-y-auto"), children: [
|
|
1167
|
+
/* @__PURE__ */ jsxs4("div", { className: cn(COLUMN_STACK, COLUMN_BOX, COLUMN_DIVIDER, CALENDAR_W, "content-md:overflow-y-auto"), children: [
|
|
1168
1168
|
/* @__PURE__ */ jsx4("p", { className: COLUMN_HEADING_CLASS, children: SLOT_PICKER_HEADING }),
|
|
1169
1169
|
/* @__PURE__ */ jsx4(
|
|
1170
1170
|
DayCalendar,
|
|
@@ -1177,15 +1177,15 @@ function SlotPickerSkeleton({ monthOffset = 0 }) {
|
|
|
1177
1177
|
}
|
|
1178
1178
|
)
|
|
1179
1179
|
] }),
|
|
1180
|
-
/* @__PURE__ */ jsx4("div", { className: cn(COLUMN_STACK, COLUMN_BOX, "min-w-0 md:flex-1"), children: /* @__PURE__ */ jsx4(TimeChipsSkeleton, {}) })
|
|
1180
|
+
/* @__PURE__ */ jsx4("div", { className: cn(COLUMN_STACK, COLUMN_BOX, "min-w-0 content-md:flex-1"), children: /* @__PURE__ */ jsx4(TimeChipsSkeleton, {}) })
|
|
1181
1181
|
] });
|
|
1182
1182
|
}
|
|
1183
1183
|
function TimeChipsSkeleton() {
|
|
1184
1184
|
return /* @__PURE__ */ jsxs4(Fragment3, { children: [
|
|
1185
1185
|
/* @__PURE__ */ jsx4("div", { className: COLUMN_HEADING_CLASS, children: /* @__PURE__ */ jsx4(Skeleton, { className: "inline-block h-4 w-40 align-middle" }) }),
|
|
1186
1186
|
/* @__PURE__ */ jsx4("div", { className: CHIP_GRID_CLASS, children: Array.from({ length: 16 }, (_, i) => (
|
|
1187
|
-
// h-11 md:h-12 — the loaded chip's own default-size height.
|
|
1188
|
-
/* @__PURE__ */ jsx4(Skeleton, { className: cn(CHIP_CLASS, "h-11 md:h-12") }, i)
|
|
1187
|
+
// h-11 content-md:h-12 — the loaded chip's own default-size height.
|
|
1188
|
+
/* @__PURE__ */ jsx4(Skeleton, { className: cn(CHIP_CLASS, "h-11 content-md:h-12") }, i)
|
|
1189
1189
|
)) })
|
|
1190
1190
|
] });
|
|
1191
1191
|
}
|
|
@@ -1220,7 +1220,7 @@ function SlotPicker({
|
|
|
1220
1220
|
const monthPrefix = `${visibleMonth.getFullYear()}-${String(visibleMonth.getMonth() + 1).padStart(2, "0")}`;
|
|
1221
1221
|
const monthHasSlots = [...slotsByDay.keys()].some((key) => key.startsWith(monthPrefix));
|
|
1222
1222
|
return /* @__PURE__ */ jsxs4("div", { className: SLOT_ROW_CLASS, children: [
|
|
1223
|
-
/* @__PURE__ */ jsxs4("div", { className: cn(COLUMN_STACK, COLUMN_BOX, COLUMN_DIVIDER, CALENDAR_W, "md:overflow-y-auto"), children: [
|
|
1223
|
+
/* @__PURE__ */ jsxs4("div", { className: cn(COLUMN_STACK, COLUMN_BOX, COLUMN_DIVIDER, CALENDAR_W, "content-md:overflow-y-auto"), children: [
|
|
1224
1224
|
/* @__PURE__ */ jsx4("p", { className: COLUMN_HEADING_CLASS, children: SLOT_PICKER_HEADING }),
|
|
1225
1225
|
/* @__PURE__ */ jsx4(
|
|
1226
1226
|
DayCalendar,
|
|
@@ -1233,7 +1233,7 @@ function SlotPicker({
|
|
|
1233
1233
|
}
|
|
1234
1234
|
)
|
|
1235
1235
|
] }),
|
|
1236
|
-
/* @__PURE__ */ jsx4("div", { className: cn(COLUMN_STACK, COLUMN_BOX, "min-w-0 md:flex-1"), children: isLoading ? /* @__PURE__ */ jsx4(TimeChipsSkeleton, {}) : selectedDay ? /* @__PURE__ */ jsxs4(Fragment3, { children: [
|
|
1236
|
+
/* @__PURE__ */ jsx4("div", { className: cn(COLUMN_STACK, COLUMN_BOX, "min-w-0 content-md:flex-1"), children: isLoading ? /* @__PURE__ */ jsx4(TimeChipsSkeleton, {}) : selectedDay ? /* @__PURE__ */ jsxs4(Fragment3, { children: [
|
|
1237
1237
|
/* @__PURE__ */ jsx4("p", { className: COLUMN_HEADING_CLASS, children: formatDateWithTimezone(dateFromDayKey(selectedDay), VIEWER_TIMEZONE, "weekday", { viewerLocale: true }) }),
|
|
1238
1238
|
/* @__PURE__ */ jsx4("div", { className: CHIP_GRID_CLASS, children: daySlots.map((ms) => {
|
|
1239
1239
|
const isSelected = selectedSlot === ms;
|
|
@@ -1313,9 +1313,9 @@ function DirectoryRow({
|
|
|
1313
1313
|
/* @__PURE__ */ jsx5("p", { className: "truncate text-ods-text-primary text-h3", children: link.title }),
|
|
1314
1314
|
subtitle && /* @__PURE__ */ jsx5("p", { className: "truncate text-ods-text-secondary text-h6", children: subtitle })
|
|
1315
1315
|
] }),
|
|
1316
|
-
audienceLabel && /* @__PURE__ */ jsx5(StatusBadge, { text: `For ${audienceLabel}`, singleLine: true, className: "hidden shrink-0 sm:inline-flex" }),
|
|
1316
|
+
audienceLabel && /* @__PURE__ */ jsx5(StatusBadge, { text: `For ${audienceLabel}`, singleLine: true, className: "hidden shrink-0 content-sm:inline-flex" }),
|
|
1317
1317
|
/* @__PURE__ */ jsx5(AvatarStack, { people: link.hosts, max: 3, size: "md", label: "Hosts", className: "flex shrink-0" }),
|
|
1318
|
-
/* @__PURE__ */ jsxs5("div", { className: "hidden w-44 shrink-0 flex-col items-end justify-center md:flex", children: [
|
|
1318
|
+
/* @__PURE__ */ jsxs5("div", { className: "hidden w-44 shrink-0 flex-col items-end justify-center content-md:flex", children: [
|
|
1319
1319
|
/* @__PURE__ */ jsx5("p", { className: "text-ods-text-secondary text-h6", children: "Next available" }),
|
|
1320
1320
|
/* @__PURE__ */ jsx5("p", { className: "min-h-5 text-ods-text-primary text-h6", children: link.nextAvailableMs == null ? "No times published" : nextLabel ?? " " })
|
|
1321
1321
|
] }),
|
|
@@ -1330,9 +1330,9 @@ function MeetingSchedulerDirectoryRowSkeleton() {
|
|
|
1330
1330
|
/* @__PURE__ */ jsx5(Skeleton, { className: "h-5 w-1/2" }),
|
|
1331
1331
|
/* @__PURE__ */ jsx5(Skeleton, { className: "h-4 w-1/3" })
|
|
1332
1332
|
] }),
|
|
1333
|
-
/* @__PURE__ */ jsx5(Skeleton, { className: "hidden h-6 w-28 shrink-0 sm:block" }),
|
|
1333
|
+
/* @__PURE__ */ jsx5(Skeleton, { className: "hidden h-6 w-28 shrink-0 content-sm:block" }),
|
|
1334
1334
|
/* @__PURE__ */ jsx5(Skeleton, { className: "h-10 w-10 shrink-0 rounded-full" }),
|
|
1335
|
-
/* @__PURE__ */ jsxs5("div", { className: "hidden w-44 shrink-0 flex-col items-end gap-1 md:flex", children: [
|
|
1335
|
+
/* @__PURE__ */ jsxs5("div", { className: "hidden w-44 shrink-0 flex-col items-end gap-1 content-md:flex", children: [
|
|
1336
1336
|
/* @__PURE__ */ jsx5(Skeleton, { className: "h-4 w-24" }),
|
|
1337
1337
|
/* @__PURE__ */ jsx5(Skeleton, { className: "h-5 w-32" })
|
|
1338
1338
|
] }),
|
|
@@ -1438,12 +1438,12 @@ var BOOKING_ERROR_COPY = {
|
|
|
1438
1438
|
MEETING_UNAVAILABLE: "This meeting type has reached its booking limit for today \u2014 try another time or contact us.",
|
|
1439
1439
|
LINK_GONE: "This meeting type is no longer available."
|
|
1440
1440
|
};
|
|
1441
|
-
var CONTEXT_PANEL_CLASS = "p-[var(--spacing-system-l)] shrink-0 lg:w-[280px] border-b lg:border-b-0 lg:border-r border-ods-border lg:min-h-0 lg:overflow-y-auto";
|
|
1442
|
-
var ACTION_PANEL_CLASS = "flex-1 min-w-0 flex flex-col md:min-h-0 lg:p-[var(--spacing-system-l)]";
|
|
1443
|
-
var PANEL_STEP_CLASS = "p-[var(--spacing-system-l)] md:min-h-0 md:overflow-y-auto lg:p-0";
|
|
1441
|
+
var CONTEXT_PANEL_CLASS = "p-[var(--spacing-system-l)] shrink-0 content-lg:w-[280px] border-b content-lg:border-b-0 content-lg:border-r border-ods-border content-lg:min-h-0 content-lg:overflow-y-auto";
|
|
1442
|
+
var ACTION_PANEL_CLASS = "flex-1 min-w-0 flex flex-col content-md:min-h-0 content-lg:p-[var(--spacing-system-l)]";
|
|
1443
|
+
var PANEL_STEP_CLASS = "p-[var(--spacing-system-l)] content-md:min-h-0 content-md:overflow-y-auto content-lg:p-0";
|
|
1444
1444
|
var STEP_PANEL_CLASS = cn("flex flex-1 flex-col", PANEL_STEP_CLASS);
|
|
1445
|
-
var MEETING_SCHEDULER_H = "md:h-[34.375rem] lg:h-[23.75rem]";
|
|
1446
|
-
var MEETING_SCHEDULER_DETAILS_FIRST_H = "h-[50.75rem] md:h-[39.875rem]";
|
|
1445
|
+
var MEETING_SCHEDULER_H = "content-md:h-[34.375rem] content-lg:h-[23.75rem]";
|
|
1446
|
+
var MEETING_SCHEDULER_DETAILS_FIRST_H = "h-[50.75rem] content-md:h-[39.875rem]";
|
|
1447
1447
|
var DEFAULT_SCHEDULER_FLOW = "slot-first";
|
|
1448
1448
|
var SCHEDULER_FLOW_PRESETS = {
|
|
1449
1449
|
"slot-first": { initialStep: "slot", height: MEETING_SCHEDULER_H, submitLabel: DEFAULT_SUBMIT_LABEL },
|
|
@@ -1456,15 +1456,15 @@ var SCHEDULER_FLOW_PRESETS = {
|
|
|
1456
1456
|
};
|
|
1457
1457
|
var CARD_CLASS = cn(
|
|
1458
1458
|
"overflow-hidden rounded-md border border-ods-border bg-ods-card",
|
|
1459
|
-
"md:flex md:flex-col"
|
|
1459
|
+
"content-md:flex content-md:flex-col"
|
|
1460
1460
|
// The height is NOT baked in any more: it is chosen per flow at each render
|
|
1461
1461
|
// site (`cardClass`), because details-first needs a taller box and both
|
|
1462
1462
|
// constants are module scope.
|
|
1463
1463
|
);
|
|
1464
|
-
var CARD_INNER_CLASS = "flex flex-col md:min-h-0 md:flex-1 lg:h-full lg:flex-row";
|
|
1464
|
+
var CARD_INNER_CLASS = "flex flex-col content-md:min-h-0 content-md:flex-1 content-lg:h-full content-lg:flex-row";
|
|
1465
1465
|
var CARD_DEGRADED_CLASS = cn(
|
|
1466
1466
|
"flex flex-col items-start gap-[var(--spacing-system-m)] rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-lf)]",
|
|
1467
|
-
"md:justify-center md:overflow-y-auto"
|
|
1467
|
+
"content-md:justify-center content-md:overflow-y-auto"
|
|
1468
1468
|
);
|
|
1469
1469
|
function SchedulerDegradedCard({
|
|
1470
1470
|
flow = DEFAULT_SCHEDULER_FLOW,
|
|
@@ -1658,7 +1658,7 @@ function HubSpotMeetingScheduler({
|
|
|
1658
1658
|
const boxed = !formOnly;
|
|
1659
1659
|
const cardClass = cn(
|
|
1660
1660
|
CARD_CLASS,
|
|
1661
|
-
boxed ? preset.height : "md:h-auto",
|
|
1661
|
+
boxed ? preset.height : "content-md:h-auto",
|
|
1662
1662
|
detailsFirst && "flex flex-col",
|
|
1663
1663
|
formOnly && "bg-ods-bg",
|
|
1664
1664
|
className
|
|
@@ -1747,12 +1747,12 @@ function HubSpotMeetingScheduler({
|
|
|
1747
1747
|
rescue
|
|
1748
1748
|
}
|
|
1749
1749
|
)
|
|
1750
|
-
] }) : /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-[var(--spacing-system-m)] md:min-h-0 md:flex-1", children: [
|
|
1750
|
+
] }) : /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-[var(--spacing-system-m)] content-md:min-h-0 content-md:flex-1", children: [
|
|
1751
1751
|
bookingError === "SLOT_TAKEN" && /* @__PURE__ */ jsx6(
|
|
1752
1752
|
Alert,
|
|
1753
1753
|
{
|
|
1754
1754
|
variant: "warning",
|
|
1755
|
-
className: "mx-[var(--spacing-system-l)] mt-[var(--spacing-system-l)] w-auto lg:m-0 lg:w-full",
|
|
1755
|
+
className: "mx-[var(--spacing-system-l)] mt-[var(--spacing-system-l)] w-auto content-lg:m-0 content-lg:w-full",
|
|
1756
1756
|
children: /* @__PURE__ */ jsx6(AlertDescription, { children: "That time was just taken \u2014 pick another slot below. (If you already submitted, check your email for a confirmation before rebooking.)" })
|
|
1757
1757
|
}
|
|
1758
1758
|
),
|
|
@@ -33,6 +33,10 @@ export interface AppHeaderProps {
|
|
|
33
33
|
onMingoAI?: () => void;
|
|
34
34
|
/** Whether the Mingo drawer is currently open (visually pressed state). */
|
|
35
35
|
isMingoAIActive?: boolean;
|
|
36
|
+
/** Swap the Mingo logo for a close "X" while active, beside the wordmark
|
|
37
|
+
* too (icon-only mode always does). For a panel the button both opens and
|
|
38
|
+
* closes. */
|
|
39
|
+
mingoAICloseWhenActive?: boolean;
|
|
36
40
|
showUser?: boolean;
|
|
37
41
|
userName?: string;
|
|
38
42
|
userEmail?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-header.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/app-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;4CAGwC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;oCAGgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;gDAC4C;IAC5C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,oGAAoG;IACpG,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;gFAC4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"app-header.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/app-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;4CAGwC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;oCAGgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;gDAC4C;IAC5C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,oGAAoG;IACpG,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;gFAC4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;kBAEc;IACd,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;;;;;;OAiBG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;CAChE;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAExE,eAAO,MAAM,SAAS,4CA+NpB,CAAC;AA6BH,eAAe,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-layout-drawer.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/app-layout-drawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"app-layout-drawer.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/app-layout-drawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAS9B,MAAM,OAAO,CAAC;AA8Cf,UAAU,wBAAyB,SAAQ,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;CAAG;AAEnG,QAAA,MAAM,mBAAmB;8EAOtB,wBAAwB;;CAsD1B,CAAC;AAGF,QAAA,MAAM,sBAAsB,kIAA0B,CAAC;AACvD,QAAA,MAAM,oBAAoB,gIAAwB,CAAC;AAMnD,QAAA,MAAM,uBAAuB;;;8EAgC5B,CAAC;AAoEF,MAAM,WAAW,2BACf,SACE,IAAI,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EACvE,YAAY,CAAC,OAAO,uBAAuB,CAAC;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;oDAGgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;+DAC2D;IAC3D,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B;;;;;gCAK4B;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;mFAK+E;IAC/E,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;uEAKmE;IACnE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,QAAA,MAAM,sBAAsB,wHA8O3B,CAAC;AAKF,QAAA,MAAM,qBAAqB;;;CAAe,CAAC;AAC3C,QAAA,MAAM,oBAAoB,8HAAc,CAAC;AACzC,QAAA,MAAM,0BAA0B,4MAAoB,CAAC;AACrD,QAAA,MAAM,mBAAmB;;;CAAa,CAAC;AACvC,QAAA,MAAM,qBAAqB;;;CAAe,CAAC;AAE3C,OAAO,EACL,mBAAmB,IAAI,eAAe,EACtC,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,GACtB,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* - `docked`: a column beside the content, resizable.
|
|
4
|
+
* - `full`: covers the content area (not the navigation). Reached by dragging
|
|
5
|
+
* past the content's minimum width, or from the header toggle when there is
|
|
6
|
+
* no room to dock.
|
|
7
|
+
* - `hidden`: no room to dock (or a phone) and not opened from the header.
|
|
8
|
+
* - `overlay`: a phone, opened from the header; covers the content area.
|
|
9
|
+
*/
|
|
10
|
+
export type AppLayoutSidePanelMode = 'docked' | 'full' | 'hidden' | 'overlay';
|
|
11
|
+
export interface AppLayoutSidePanelRenderState {
|
|
12
|
+
/** Width the panel body is drawn at, in px. */
|
|
13
|
+
width: number;
|
|
14
|
+
mode: AppLayoutSidePanelMode;
|
|
15
|
+
/**
|
|
16
|
+
* The panel was opened from the header (no room to dock, or a phone) and can
|
|
17
|
+
* be put away again: offer a close control. A docked panel cannot close.
|
|
18
|
+
*/
|
|
19
|
+
canClose: boolean;
|
|
20
|
+
/** Put the panel away again; a no-op while it is docked. */
|
|
21
|
+
close: () => void;
|
|
22
|
+
/**
|
|
23
|
+
* Where `collapse` takes the panel, one step back at a time: from the whole
|
|
24
|
+
* area to the column it was in before (`column`), from the column to its
|
|
25
|
+
* minimum (`minimum`, e.g. a list alone). Null when there is no step back.
|
|
26
|
+
*/
|
|
27
|
+
collapsesTo: 'column' | 'minimum' | null;
|
|
28
|
+
/** Step the panel back (see `collapsesTo`), animated. */
|
|
29
|
+
collapse: () => void;
|
|
30
|
+
}
|
|
31
|
+
export interface AppLayoutSidePanelConfig {
|
|
32
|
+
/** Panel body. Told its width so it can choose what fits. */
|
|
33
|
+
children: (state: AppLayoutSidePanelRenderState) => ReactNode;
|
|
34
|
+
/** Narrowest docked width, and the width it starts at: the narrowest its content draws. */
|
|
35
|
+
minWidth: number;
|
|
36
|
+
/** Narrowest the content may get before the panel takes over. Default 400. */
|
|
37
|
+
minContentWidth?: number;
|
|
38
|
+
/** localStorage key for the chosen width. Without it the width lasts the session. */
|
|
39
|
+
storageKey?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Pages that need the whole content width set this: the panel starts at its
|
|
42
|
+
* minimum there. The user can still widen it; the width they chose
|
|
43
|
+
* elsewhere is kept for the other pages.
|
|
44
|
+
*/
|
|
45
|
+
collapsed?: boolean;
|
|
46
|
+
/** Accessible name of the panel region. Default "Side panel". */
|
|
47
|
+
label?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Opened from the header while it cannot dock (or on a phone). Pass it to
|
|
50
|
+
* open the panel from elsewhere (a deep link, a "send to chat" action);
|
|
51
|
+
* omit to let the header own it. Docked, it has no effect.
|
|
52
|
+
*/
|
|
53
|
+
open?: boolean;
|
|
54
|
+
/** Called whenever the header-open state should change. */
|
|
55
|
+
onOpenChange?: (open: boolean) => void;
|
|
56
|
+
}
|
|
57
|
+
/** Inset of the docked card from the window edge and the header. */
|
|
58
|
+
export declare const SIDE_PANEL_INSET = 16;
|
|
59
|
+
export interface SidePanelSize {
|
|
60
|
+
/** Docked width the user chose. */
|
|
61
|
+
width: number;
|
|
62
|
+
/** Dragged past the content minimum: the panel takes the whole area. */
|
|
63
|
+
expanded: boolean;
|
|
64
|
+
}
|
|
65
|
+
export interface SidePanelLayoutInput {
|
|
66
|
+
/** Width of the row the content and the panel share; 0 before it is measured. */
|
|
67
|
+
rowWidth: number;
|
|
68
|
+
isMobile: boolean;
|
|
69
|
+
/** Opened from the header (only meaningful while it cannot dock). */
|
|
70
|
+
isOpen: boolean;
|
|
71
|
+
size: SidePanelSize;
|
|
72
|
+
minWidth: number;
|
|
73
|
+
minContentWidth: number;
|
|
74
|
+
}
|
|
75
|
+
export interface SidePanelLayout {
|
|
76
|
+
mode: AppLayoutSidePanelMode;
|
|
77
|
+
/** Width the panel body is drawn at. */
|
|
78
|
+
width: number;
|
|
79
|
+
/** The panel can sit beside the content. */
|
|
80
|
+
canDock: boolean;
|
|
81
|
+
/** Widest docked width; one pixel more takes the whole area. */
|
|
82
|
+
maxDockedWidth: number;
|
|
83
|
+
/** Width the panel docks at, kept while it is full so it can return there. */
|
|
84
|
+
dockedWidth: number;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Where the panel goes for a given room. Pure, so the rules read in one place:
|
|
88
|
+
* a phone gets the overlay; a row with room for both minimums docks (or is
|
|
89
|
+
* full when dragged past); otherwise it hides until opened from the header.
|
|
90
|
+
* An unmeasured row docks, so the first paint matches the common case.
|
|
91
|
+
*/
|
|
92
|
+
export declare function resolveSidePanelLayout({ rowWidth, isMobile, isOpen, size, minWidth, minContentWidth, }: SidePanelLayoutInput): SidePanelLayout;
|
|
93
|
+
/**
|
|
94
|
+
* The panel is growing into the whole area (`expand`), shrinking back into the
|
|
95
|
+
* column (`collapse`) or narrowing within it (`narrow`). While it grows the
|
|
96
|
+
* content stays where it is under it, and is hidden only once the panel covers
|
|
97
|
+
* it; while it shrinks the content is already laid out at its new width.
|
|
98
|
+
*/
|
|
99
|
+
export type SidePanelMorph = 'expand' | 'collapse' | 'narrow';
|
|
100
|
+
export interface AppLayoutSidePanelState extends SidePanelLayout {
|
|
101
|
+
minWidth: number;
|
|
102
|
+
/** Opened from the header while it cannot dock. */
|
|
103
|
+
isOpen: boolean;
|
|
104
|
+
morph: SidePanelMorph | null;
|
|
105
|
+
/**
|
|
106
|
+
* Dragged wider than any column can be and not yet let go: the panel follows
|
|
107
|
+
* the pointer over the content, laid out at its narrowest beneath it.
|
|
108
|
+
*/
|
|
109
|
+
peekWidth: number | null;
|
|
110
|
+
/** The panel covers the content area: the content can be hidden. */
|
|
111
|
+
coversContent: boolean;
|
|
112
|
+
/** The panel is drawn over part of the content (a morph or a peek). */
|
|
113
|
+
overlapsContent: boolean;
|
|
114
|
+
endMorph: () => void;
|
|
115
|
+
collapsesTo: AppLayoutSidePanelRenderState['collapsesTo'];
|
|
116
|
+
collapse: () => void;
|
|
117
|
+
toggle: () => void;
|
|
118
|
+
close: () => void;
|
|
119
|
+
resize: (next: number) => void;
|
|
120
|
+
/**
|
|
121
|
+
* A pointer drag to `next`. Wider than any column can be, the panel follows
|
|
122
|
+
* the pointer over the content instead of jumping to the whole area.
|
|
123
|
+
*/
|
|
124
|
+
drag: (next: number) => void;
|
|
125
|
+
/**
|
|
126
|
+
* The drag ended at `next`: a panel left between the widest column and the
|
|
127
|
+
* whole area settles on the nearer of the two, animated.
|
|
128
|
+
*/
|
|
129
|
+
release: (next: number) => void;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Owns the side panel's geometry. Lives in `AppLayout`, not the panel, because
|
|
133
|
+
* the header's toggle reads it too. Returns null without a config.
|
|
134
|
+
*/
|
|
135
|
+
export declare function useAppLayoutSidePanel(config: AppLayoutSidePanelConfig | undefined, row: HTMLElement | null): AppLayoutSidePanelState | null;
|
|
136
|
+
interface AppLayoutSidePanelProps {
|
|
137
|
+
config: AppLayoutSidePanelConfig;
|
|
138
|
+
state: AppLayoutSidePanelState;
|
|
139
|
+
}
|
|
140
|
+
export declare function AppLayoutSidePanel({ config, state }: AppLayoutSidePanelProps): import("react").JSX.Element | null;
|
|
141
|
+
export {};
|
|
142
|
+
//# sourceMappingURL=app-layout-side-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-layout-side-panel.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/app-layout-side-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { NavigationSidebarConfig } from '../../types/navigation';
|
|
3
3
|
import { type AppHeaderProps } from './app-header';
|
|
4
|
+
import { type AppLayoutSidePanelConfig } from './app-layout-side-panel';
|
|
4
5
|
import { type MobileBurgerMenuProps } from './mobile-burger-menu';
|
|
5
6
|
export { useAppLayoutDrawerContainer, useAppLayoutDrawerCoordination } from './app-layout-context';
|
|
6
7
|
export type { AppLayoutDrawerHandle } from './app-layout-context';
|
|
@@ -32,6 +33,15 @@ export interface AppLayoutProps {
|
|
|
32
33
|
* area occupy the remaining height below it.
|
|
33
34
|
*/
|
|
34
35
|
topBar?: ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* A panel docked beside the content (the Mingo chat). It narrows the
|
|
38
|
+
* content instead of covering it, and the content then lays out by its own
|
|
39
|
+
* width: `<main>` becomes an `ods-content-area` whose tokens and
|
|
40
|
+
* `content-md:` / `content-lg:` classes follow the room the panel leaves.
|
|
41
|
+
* Without room to dock (or on a phone) the header's Mingo button opens it
|
|
42
|
+
* over the content area. Optional; without it the layout is unchanged.
|
|
43
|
+
*/
|
|
44
|
+
sidePanel?: AppLayoutSidePanelConfig;
|
|
35
45
|
}
|
|
36
|
-
export declare function AppLayout({ children, sidebarConfig, headerProps, mainClassName, className, mobileBurgerMenuProps, disabled, drawer, topBar, }: AppLayoutProps): import("react").JSX.Element;
|
|
46
|
+
export declare function AppLayout({ children, sidebarConfig, headerProps, mainClassName, className, mobileBurgerMenuProps, disabled, drawer, topBar, sidePanel, }: AppLayoutProps): import("react").JSX.Element;
|
|
37
47
|
//# sourceMappingURL=app-layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-layout.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/app-layout.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"app-layout.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/app-layout.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAO9D,OAAO,EAAsB,KAAK,wBAAwB,EAAyB,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACnG,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,EAAE,uBAAuB,CAAC;IACvC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,UAAU,CAAC,CAAC;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC;IACjG;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAC;CACtC;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,QAAgB,EAChB,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE,cAAc,+BAqJhB"}
|
|
@@ -6,6 +6,9 @@ export interface HeaderMingoButtonProps extends React.ButtonHTMLAttributes<HTMLB
|
|
|
6
6
|
* control collapses to a square `HeaderButton`-sized affordance on narrow
|
|
7
7
|
* viewports). Defaults to `false`. */
|
|
8
8
|
iconOnly?: boolean;
|
|
9
|
+
/** Show the close "X" while active with the wordmark too, not only in
|
|
10
|
+
* `iconOnly` mode. Defaults to `false`. */
|
|
11
|
+
closeWhenActive?: boolean;
|
|
9
12
|
className?: string;
|
|
10
13
|
}
|
|
11
14
|
/**
|
|
@@ -18,6 +21,6 @@ export interface HeaderMingoButtonProps extends React.ButtonHTMLAttributes<HTMLB
|
|
|
18
21
|
*
|
|
19
22
|
* Figma: 7532:222103 — `button-full`.
|
|
20
23
|
*/
|
|
21
|
-
export declare function HeaderMingoButton({ isActive, iconOnly, className, ...props }: HeaderMingoButtonProps): React.JSX.Element;
|
|
24
|
+
export declare function HeaderMingoButton({ isActive, iconOnly, closeWhenActive, className, ...props }: HeaderMingoButtonProps): React.JSX.Element;
|
|
22
25
|
export default HeaderMingoButton;
|
|
23
26
|
//# sourceMappingURL=header-mingo-button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-mingo-button.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/header-mingo-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IAC3F,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;2CAEuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"header-mingo-button.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/header-mingo-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IAC3F,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;2CAEuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;gDAC4C;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,QAAgB,EAChB,QAAgB,EAChB,eAAuB,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,sBAAsB,qBAyCxB;AAED,eAAe,iBAAiB,CAAC"}
|