@flamingo-stack/openframe-frontend-core 0.0.776 → 0.0.781
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/build/export-map.json +1 -1
- package/dist/case-study-card-CYJ3JXU6.cjs +23 -0
- package/dist/{chunk-57B5RUYD.cjs → chunk-2OYKOHFK.cjs} +2 -2
- package/dist/{chunk-CZIMISAR.cjs → chunk-3IHGS44W.cjs} +8 -8
- package/dist/{chunk-E76ONBKF.cjs → chunk-3VINTJPE.cjs} +5 -5
- package/dist/{chunk-RB7VLVMD.cjs → chunk-4XDYSGRL.cjs} +31 -23
- package/dist/{chunk-6HY2NH7D.cjs → chunk-57NE7SHG.cjs} +8 -10
- package/dist/{chunk-DGFDBPO7.cjs → chunk-5GJM7VRR.cjs} +1 -94
- package/dist/{chunk-IXZNBDXT.cjs → chunk-5PBWAF2D.cjs} +44 -44
- package/dist/{chunk-WEANWBJH.cjs → chunk-63OCO2G5.cjs} +4 -3
- package/dist/{chunk-ASMNNSUQ.cjs → chunk-7PNRXJX2.cjs} +3 -3
- package/dist/{chunk-YFTQ2ALU.cjs → chunk-A7FSNBNV.cjs} +278 -302
- package/dist/{chunk-HY6BCZH7.cjs → chunk-AFJEUBDS.cjs} +64 -36
- package/dist/{chunk-5QP3K2CE.cjs → chunk-AKCBLZAO.cjs} +351 -80
- package/dist/{chunk-VFZFCRAL.cjs → chunk-AQXKXZWB.cjs} +4 -4
- package/dist/{chunk-L55XLH5A.cjs → chunk-B6EQVH7D.cjs} +53 -64
- package/dist/{chunk-TF5D5MNO.cjs → chunk-CDBFQVPA.cjs} +84 -127
- package/dist/{chunk-3V27UHSH.cjs → chunk-D46WFWWI.cjs} +76 -88
- package/dist/{chunk-LNCBN4BL.cjs → chunk-DIY4SJZI.cjs} +20 -30
- package/dist/{chunk-3LW5TD54.cjs → chunk-DJTPDK3W.cjs} +4 -4
- package/dist/{chunk-2YB4X5WT.cjs → chunk-EYNQE2XN.cjs} +6 -6
- package/dist/{chunk-KM2TVQCH.cjs → chunk-FWJ5YECN.cjs} +1371 -1542
- package/dist/{chunk-NWZSYG4S.cjs → chunk-HLZUBJPL.cjs} +614 -658
- package/dist/{chunk-AMVI5VXM.cjs → chunk-HPGCUYAZ.cjs} +217 -238
- package/dist/{chunk-SETFUCZA.cjs → chunk-HTSRCFXP.cjs} +7 -7
- package/dist/{chunk-5P4TDV7V.cjs → chunk-IYU2ZH2J.cjs} +7 -95
- package/dist/chunk-JHDPEYZH.cjs +385 -0
- package/dist/chunk-JQWYXC2E.cjs +1488 -0
- package/dist/{chunk-YXDHVHB2.cjs → chunk-KWV23THO.cjs} +34 -17
- package/dist/{chunk-XIFEZ2JT.cjs → chunk-L4XOCV7S.cjs} +10 -10
- package/dist/{chunk-WAQPW4CB.cjs → chunk-LDGR5VCK.cjs} +6 -6
- package/dist/chunk-N6YCOBLK.cjs +252 -0
- package/dist/{chunk-XN6LXMH5.cjs → chunk-ODZ5XGWA.cjs} +4659 -5110
- package/dist/{chunk-BDYI6HBT.cjs → chunk-OFX6XEVN.cjs} +18 -16
- package/dist/{chunk-MYHS4W2H.cjs → chunk-OHXB6HUX.cjs} +828 -1876
- package/dist/{chunk-XXJL5GY3.cjs → chunk-OJZBZH56.cjs} +3 -3
- package/dist/{chunk-24OYQQZC.cjs → chunk-PID7LUDP.cjs} +66 -64
- package/dist/{chunk-R3JX4MXD.cjs → chunk-Q7HXTF2C.cjs} +10 -10
- package/dist/{chunk-KKAY6GPU.cjs → chunk-QD7SKYCQ.cjs} +3 -3
- package/dist/{chunk-DDXQGTWB.cjs → chunk-RJX33Y4Q.cjs} +24 -25
- package/dist/{chunk-VFUMM6JC.cjs → chunk-RYIWADIB.cjs} +23 -20
- package/dist/chunk-SMEX3BWO.cjs +49 -0
- package/dist/chunk-SZHDXXMK.cjs +102 -0
- package/dist/{chunk-FL2RMEDX.cjs → chunk-T4ZVKEDP.cjs} +10 -7
- package/dist/{chunk-EHJE3UWZ.cjs → chunk-T7SDYBST.cjs} +104 -104
- package/dist/{chunk-MWH5ZTMB.cjs → chunk-TH5X2BXK.cjs} +172 -176
- package/dist/{chunk-UM6HFGTI.cjs → chunk-TZ6MTHUC.cjs} +69 -86
- package/dist/{chunk-V3W56L2D.cjs → chunk-UONQCE5N.cjs} +353 -378
- package/dist/chunk-V4FXUIMH.cjs +92 -0
- package/dist/{chunk-OTZQP53Y.cjs → chunk-VDTLVFCV.cjs} +13 -13
- package/dist/{chunk-2JRSYWFP.cjs → chunk-VXAKQRV7.cjs} +5 -5
- package/dist/{chunk-LELS4XMX.cjs → chunk-VZKAAXU3.cjs} +54 -56
- package/dist/{chunk-2AZAJ7RK.cjs → chunk-X6TXMWBV.cjs} +76 -79
- package/dist/{chunk-2MF547RG.cjs → chunk-XHJI7R4J.cjs} +56 -84
- package/dist/{chunk-XT5WEHFM.cjs → chunk-XYKVOBIP.cjs} +3 -3
- package/dist/{chunk-LJT2KRE2.cjs → chunk-YEJWNHD3.cjs} +214 -215
- package/dist/{chunk-F65RSJVV.cjs → chunk-YKJ4JN6T.cjs} +45 -43
- package/dist/{chunk-XFRBEXQN.cjs → chunk-YNDH72VU.cjs} +21 -48
- package/dist/{chunk-Z5KX56TK.cjs → chunk-ZPYFPLPD.cjs} +10 -10
- package/dist/{chunk-E64HPPRH.cjs → chunk-ZV6RQNXE.cjs} +76 -78
- package/dist/{cloud-tenants-QFE6QMR5.cjs → cloud-tenants-UAFVHKX7.cjs} +39 -37
- package/dist/components/agent-mark.d.ts +4 -6
- package/dist/components/agent-mark.d.ts.map +1 -1
- package/dist/components/agent-mark.js +3 -2
- package/dist/components/authors/author-detail-view.js +3 -5
- package/dist/components/calendar.cjs +11 -11
- package/dist/components/case-studies/entity-quotes-panel.d.ts +0 -7
- package/dist/components/case-studies/entity-quotes-panel.d.ts.map +1 -1
- package/dist/components/case-studies/entity-quotes-panel.js +1 -25
- package/dist/components/case-studies/index.cjs +65 -88
- package/dist/components/case-studies/index.d.ts +2 -2
- package/dist/components/case-studies/index.d.ts.map +1 -1
- package/dist/components/case-studies/index.js +1 -4
- package/dist/components/case-studies/quote-cards-strip.d.ts +13 -9
- package/dist/components/case-studies/quote-cards-strip.d.ts.map +1 -1
- package/dist/components/case-studies/quote-cards-strip.js +7 -7
- package/dist/components/categories-cart.d.ts +0 -9
- package/dist/components/categories-cart.d.ts.map +1 -1
- package/dist/components/categories-cart.js +24 -9
- package/dist/components/category-card.d.ts.map +1 -1
- package/dist/components/category-card.js +57 -11
- package/dist/components/chat/approval-batch-message.d.ts.map +1 -1
- package/dist/components/chat/approval-batch-message.js +14 -22
- package/dist/components/chat/ask-display.d.ts.map +1 -1
- package/dist/components/chat/ask-display.js +9 -10
- package/dist/components/chat/ask-prompts.d.ts +3 -3
- package/dist/components/chat/ask-prompts.d.ts.map +1 -1
- package/dist/components/chat/ask-prompts.js +20 -20
- package/dist/components/chat/chat-archive-page.d.ts +5 -4
- package/dist/components/chat/chat-archive-page.d.ts.map +1 -1
- package/dist/components/chat/chat-archive-page.js +33 -22
- package/dist/components/chat/chat-container.d.ts.map +1 -1
- package/dist/components/chat/chat-container.js +18 -15
- package/dist/components/chat/chat-context-memory-bar.d.ts.map +1 -1
- package/dist/components/chat/chat-context-memory-bar.js +10 -9
- package/dist/components/chat/chat-context-picker.d.ts.map +1 -1
- package/dist/components/chat/chat-context-picker.js +40 -35
- package/dist/components/chat/chat-input.d.ts.map +1 -1
- package/dist/components/chat/chat-input.js +5 -13
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-enhanced.js +33 -16
- package/dist/components/chat/chat-message-layout.d.ts +35 -0
- package/dist/components/chat/chat-message-layout.d.ts.map +1 -0
- package/dist/components/chat/chat-message-layout.js +34 -0
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/chat-message-list.js +30 -16
- package/dist/components/chat/chat-message-row.d.ts +9 -8
- package/dist/components/chat/chat-message-row.d.ts.map +1 -1
- package/dist/components/chat/chat-message-row.js +40 -19
- package/dist/components/chat/chat-message-skeleton.d.ts +34 -13
- package/dist/components/chat/chat-message-skeleton.d.ts.map +1 -1
- package/dist/components/chat/chat-message-skeleton.js +57 -29
- package/dist/components/chat/chat-nav-sidebar.d.ts +20 -2
- package/dist/components/chat/chat-nav-sidebar.d.ts.map +1 -1
- package/dist/components/chat/chat-nav-sidebar.js +66 -34
- package/dist/components/chat/chat-panel-header.d.ts.map +1 -1
- package/dist/components/chat/chat-panel-header.js +18 -8
- package/dist/components/chat/chat-sidebar.d.ts +4 -0
- package/dist/components/chat/chat-sidebar.d.ts.map +1 -1
- package/dist/components/chat/chat-sidebar.js +34 -26
- package/dist/components/chat/chat-ticket-list.d.ts +4 -1
- package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
- package/dist/components/chat/chat-ticket-list.js +18 -13
- package/dist/components/chat/chat-top-navigation.d.ts +2 -1
- package/dist/components/chat/chat-top-navigation.d.ts.map +1 -1
- package/dist/components/chat/chat-top-navigation.js +55 -47
- package/dist/components/chat/chat-turn.d.ts +11 -11
- package/dist/components/chat/chat-turn.d.ts.map +1 -1
- package/dist/components/chat/chat-turn.js +9 -13
- package/dist/components/chat/context-items-list.d.ts +11 -7
- package/dist/components/chat/context-items-list.d.ts.map +1 -1
- package/dist/components/chat/context-items-list.js +53 -51
- package/dist/components/chat/embeddable-chat.d.ts +8 -0
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
- package/dist/components/chat/embeddable-chat.js +81 -81
- package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts +8 -29
- package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/admin-content-card-grid.js +27 -22
- package/dist/components/chat/entity-cards/admin-content-card.d.ts +6 -15
- package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/admin-content-card.js +9 -8
- package/dist/components/chat/entity-cards/ai-prompt-card.d.ts +10 -5
- package/dist/components/chat/entity-cards/ai-prompt-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/ai-prompt-card.js +5 -9
- package/dist/components/chat/entity-cards/blog-card.d.ts +11 -11
- package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/blog-card.js +20 -6
- package/dist/components/chat/entity-cards/campaign-card-admin.d.ts +0 -3
- package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/campaign-card-admin.js +1 -2
- package/dist/components/chat/entity-cards/case-study-card.d.ts +0 -10
- package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/case-study-card.js +13 -4
- package/dist/components/chat/entity-cards/chat-ticket-item.d.ts +6 -8
- package/dist/components/chat/entity-cards/chat-ticket-item.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/chat-ticket-item.js +69 -85
- package/dist/components/chat/entity-cards/customer-interview-card.d.ts +11 -11
- package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/customer-interview-card.js +48 -21
- package/dist/components/chat/entity-cards/data-room-doc-card.d.ts +0 -3
- package/dist/components/chat/entity-cards/data-room-doc-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/data-room-doc-card.js +1 -2
- package/dist/components/chat/entity-cards/design-doc-card.d.ts +0 -8
- package/dist/components/chat/entity-cards/design-doc-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/design-doc-card.js +5 -6
- package/dist/components/chat/entity-cards/dispatch.d.ts +2 -2
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/dispatch.js +23 -26
- package/dist/components/chat/entity-cards/employee-entry-card.d.ts +14 -21
- package/dist/components/chat/entity-cards/employee-entry-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/employee-entry-card.js +19 -7
- package/dist/components/chat/entity-cards/entity-author-card.d.ts +13 -29
- package/dist/components/chat/entity-cards/entity-author-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/entity-author-card.js +7 -8
- package/dist/components/chat/entity-cards/entity-portrait-card.d.ts +4 -10
- package/dist/components/chat/entity-cards/entity-portrait-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/entity-portrait-card.js +22 -13
- package/dist/components/chat/entity-cards/generic-entity-card.d.ts +0 -3
- package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/generic-entity-card.js +1 -2
- package/dist/components/chat/entity-cards/github-activity-card.d.ts +0 -4
- package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/github-activity-card.js +0 -1
- package/dist/components/chat/entity-cards/how-i-work-card.d.ts +10 -6
- package/dist/components/chat/entity-cards/how-i-work-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/how-i-work-card.js +5 -9
- package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts +0 -4
- package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/hubspot-ticket-card.js +1 -2
- package/dist/components/chat/entity-cards/index.d.ts +23 -24
- package/dist/components/chat/entity-cards/index.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/index.js +26 -78
- package/dist/components/chat/entity-cards/investor-update-card.d.ts +11 -10
- package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/investor-update-card.js +16 -10
- package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +14 -14
- package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/onboarding-guide-card.js +34 -12
- package/dist/components/chat/entity-cards/program-card.d.ts +18 -17
- package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/program-card.js +47 -36
- package/dist/components/chat/entity-cards/roadmap-card.d.ts +12 -14
- package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/roadmap-card.js +19 -9
- package/dist/components/chat/entity-cards/slack-message-card.d.ts +0 -4
- package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/slack-message-card.js +1 -2
- package/dist/components/chat/entity-cards/what-i-shipped-card.d.ts +10 -6
- package/dist/components/chat/entity-cards/what-i-shipped-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/what-i-shipped-card.js +5 -5
- package/dist/components/chat/error-message-display.d.ts.map +1 -1
- package/dist/components/chat/error-message-display.js +3 -5
- package/dist/components/chat/guide-mode-banner.d.ts.map +1 -1
- package/dist/components/chat/guide-mode-banner.js +2 -9
- package/dist/components/chat/guide-welcome.d.ts +1 -1
- package/dist/components/chat/guide-welcome.d.ts.map +1 -1
- package/dist/components/chat/guide-welcome.js +4 -2
- package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat-dialog-manager.js +2 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.js +2 -1
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-sse-chat-adapter.js +2 -1
- package/dist/components/chat/index.cjs +32 -90
- package/dist/components/chat/index.d.ts +1 -4
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +2 -4
- package/dist/components/chat/mingo-archive-list.d.ts +4 -2
- package/dist/components/chat/mingo-archive-list.d.ts.map +1 -1
- package/dist/components/chat/mingo-archive-list.js +8 -4
- package/dist/components/chat/mingo-chat-header.d.ts.map +1 -1
- package/dist/components/chat/mingo-chat-header.js +9 -8
- package/dist/components/chat/mingo-chat-history.d.ts +15 -14
- package/dist/components/chat/mingo-chat-history.d.ts.map +1 -1
- package/dist/components/chat/mingo-chat-history.js +63 -46
- package/dist/components/chat/mingo-chat-modals.d.ts.map +1 -1
- package/dist/components/chat/mingo-chat-modals.js +10 -12
- package/dist/components/chat/mingo-chat-rail.d.ts +4 -2
- package/dist/components/chat/mingo-chat-rail.d.ts.map +1 -1
- package/dist/components/chat/mingo-chat-rail.js +10 -6
- package/dist/components/chat/mingo-history-rail.d.ts +6 -3
- package/dist/components/chat/mingo-history-rail.d.ts.map +1 -1
- package/dist/components/chat/mingo-history-rail.js +7 -2
- package/dist/components/chat/mingo-info-card.d.ts +6 -7
- package/dist/components/chat/mingo-info-card.d.ts.map +1 -1
- package/dist/components/chat/mingo-info-card.js +21 -16
- package/dist/components/chat/mingo-onboarding-card.d.ts +8 -1
- package/dist/components/chat/mingo-onboarding-card.d.ts.map +1 -1
- package/dist/components/chat/mingo-onboarding-card.js +70 -32
- package/dist/components/chat/mingo-welcome.d.ts +4 -1
- package/dist/components/chat/mingo-welcome.d.ts.map +1 -1
- package/dist/components/chat/mingo-welcome.js +15 -5
- package/dist/components/chat/model-display.d.ts +1 -15
- package/dist/components/chat/model-display.d.ts.map +1 -1
- package/dist/components/chat/model-display.js +16 -13
- package/dist/components/chat/msp-organization-card.d.ts +8 -1
- package/dist/components/chat/msp-organization-card.d.ts.map +1 -1
- package/dist/components/chat/msp-organization-card.js +34 -39
- package/dist/components/chat/quick-action-chip.d.ts +10 -24
- package/dist/components/chat/quick-action-chip.d.ts.map +1 -1
- package/dist/components/chat/quick-action-chip.js +42 -8
- package/dist/components/chat/quick-action-wall.d.ts +3 -3
- package/dist/components/chat/quick-action-wall.d.ts.map +1 -1
- package/dist/components/chat/quick-action-wall.js +17 -10
- package/dist/components/chat/tool-execution-display.d.ts.map +1 -1
- package/dist/components/chat/tool-execution-display.js +2 -9
- package/dist/components/chat/types/component.types.d.ts +26 -0
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/chat/types/entities/program-types.d.ts +3 -0
- package/dist/components/chat/types/entities/program-types.d.ts.map +1 -1
- package/dist/components/chat/utils/compact-card-skeleton.d.ts +1 -1
- package/dist/components/chat/utils/compact-card-skeleton.js +2 -2
- package/dist/components/command.d.ts +7 -7
- package/dist/components/comment-card.d.ts +15 -16
- package/dist/components/comment-card.d.ts.map +1 -1
- package/dist/components/comment-card.js +121 -127
- package/dist/components/comment-thread.d.ts +9 -27
- package/dist/components/comment-thread.d.ts.map +1 -1
- package/dist/components/comment-thread.js +36 -24
- package/dist/components/contact/index.cjs +40 -38
- package/dist/components/docs/docs-hub-page.d.ts +1 -4
- package/dist/components/docs/docs-hub-page.d.ts.map +1 -1
- package/dist/components/docs/docs-hub-page.js +2 -3
- package/dist/components/docs/index.cjs +43 -45
- package/dist/components/docs/index.d.ts +0 -1
- package/dist/components/docs/index.d.ts.map +1 -1
- package/dist/components/docs/index.js +0 -3
- package/dist/components/embeds/embed-viewer-frame.d.ts +1 -1
- package/dist/components/embeds/embed-viewer-frame.d.ts.map +1 -1
- package/dist/components/embeds/embed-viewer-frame.js +3 -1
- package/dist/components/embeds/index.cjs +40 -42
- package/dist/components/embeds/index.d.ts +1 -1
- package/dist/components/embeds/index.d.ts.map +1 -1
- package/dist/components/embeds/index.js +1 -3
- package/dist/components/embeds/og-link-preview.d.ts +0 -10
- package/dist/components/embeds/og-link-preview.d.ts.map +1 -1
- package/dist/components/embeds/og-link-preview.js +1 -3
- package/dist/components/faq/faq-section.d.ts +0 -7
- package/dist/components/faq/faq-section.d.ts.map +1 -1
- package/dist/components/faq/faq-section.js +13 -9
- package/dist/components/faq/index.cjs +41 -41
- package/dist/components/faq/index.d.ts +1 -1
- package/dist/components/faq/index.d.ts.map +1 -1
- package/dist/components/faq/index.js +0 -2
- package/dist/components/faq-accordion.d.ts +6 -9
- package/dist/components/faq-accordion.d.ts.map +1 -1
- package/dist/components/faq-accordion.js +14 -17
- package/dist/components/features/ai-enrich/AIEnrichSection.d.ts.map +1 -1
- package/dist/components/features/ai-enrich/AIEnrichSection.js +2 -1
- package/dist/components/features/approval-level.d.ts +0 -12
- package/dist/components/features/approval-level.d.ts.map +1 -1
- package/dist/components/features/approval-level.js +0 -1
- package/dist/components/features/auth/back-to-login-link.js +2 -2
- package/dist/components/features/auth/complete-account-form.d.ts +4 -1
- package/dist/components/features/auth/complete-account-form.d.ts.map +1 -1
- package/dist/components/features/auth/complete-account-form.js +5 -3
- package/dist/components/features/auth/create-organization-form.d.ts +5 -3
- package/dist/components/features/auth/create-organization-form.d.ts.map +1 -1
- package/dist/components/features/auth/create-organization-form.js +12 -2
- package/dist/components/features/auth/invite-link-invalid-modal.d.ts.map +1 -1
- package/dist/components/features/auth/invite-link-invalid-modal.js +5 -3
- package/dist/components/features/auth/login-form.d.ts +6 -1
- package/dist/components/features/auth/login-form.d.ts.map +1 -1
- package/dist/components/features/auth/login-form.js +5 -3
- package/dist/components/features/auth/sso-join-form.d.ts +7 -10
- package/dist/components/features/auth/sso-join-form.d.ts.map +1 -1
- package/dist/components/features/auth/sso-join-form.js +16 -6
- package/dist/components/features/auth/sso-providers.d.ts +9 -1
- package/dist/components/features/auth/sso-providers.d.ts.map +1 -1
- package/dist/components/features/auth/sso-providers.js +14 -2
- package/dist/components/features/board/board-column.d.ts +1 -1
- package/dist/components/features/board/board-column.d.ts.map +1 -1
- package/dist/components/features/board/board-column.js +9 -7
- package/dist/components/features/board/board-ticket-approval.d.ts.map +1 -1
- package/dist/components/features/board/board-ticket-approval.js +16 -24
- package/dist/components/features/board/board.d.ts +5 -3
- package/dist/components/features/board/board.d.ts.map +1 -1
- package/dist/components/features/board/board.js +17 -8
- package/dist/components/features/board/index.d.ts +1 -3
- package/dist/components/features/board/index.d.ts.map +1 -1
- package/dist/components/features/board/index.js +2 -3
- package/dist/components/features/board/ticket-card.d.ts +9 -6
- package/dist/components/features/board/ticket-card.d.ts.map +1 -1
- package/dist/components/features/board/ticket-card.js +41 -8
- package/dist/components/features/board/types.d.ts +5 -0
- package/dist/components/features/board/types.d.ts.map +1 -1
- package/dist/components/features/board/types.js +2 -0
- package/dist/components/features/capability-explorer.d.ts +2 -16
- package/dist/components/features/capability-explorer.d.ts.map +1 -1
- package/dist/components/features/capability-explorer.js +106 -121
- package/dist/components/features/card-hit-layer.d.ts.map +1 -1
- package/dist/components/features/card-hit-layer.js +4 -2
- package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/tenant-access-cell.js +4 -2
- package/dist/components/features/cloud-tenants/tenant-cell.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/tenant-cell.js +5 -2
- package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/tenant-customer-cell.js +3 -1
- package/dist/components/features/cloud-tenants/tenants-table-view.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/tenants-table-view.js +39 -20
- package/dist/components/features/command-box.d.ts +4 -20
- package/dist/components/features/command-box.d.ts.map +1 -1
- package/dist/components/features/command-box.js +28 -8
- package/dist/components/features/conversation-card.d.ts +3 -28
- package/dist/components/features/conversation-card.d.ts.map +1 -1
- package/dist/components/features/conversation-card.js +73 -30
- package/dist/components/features/devices/device-selector/device-selector.d.ts +1 -1
- package/dist/components/features/devices/device-selector/device-selector.d.ts.map +1 -1
- package/dist/components/features/devices/device-selector/device-selector.js +45 -45
- package/dist/components/features/devices/device-selector/device-selector.types.d.ts +5 -0
- package/dist/components/features/devices/device-selector/device-selector.types.d.ts.map +1 -1
- package/dist/components/features/devices/device-type-tile.d.ts.map +1 -1
- package/dist/components/features/devices/device-type-tile.js +4 -1
- package/dist/components/features/devices/devices-grid-filters.d.ts.map +1 -1
- package/dist/components/features/devices/devices-grid-filters.js +5 -20
- package/dist/components/features/devices/devices-grid.d.ts +8 -1
- package/dist/components/features/devices/devices-grid.d.ts.map +1 -1
- package/dist/components/features/devices/devices-grid.js +22 -12
- package/dist/components/features/devices/devices-list.d.ts +1 -1
- package/dist/components/features/devices/devices-list.d.ts.map +1 -1
- package/dist/components/features/devices/devices-list.js +5 -2
- package/dist/components/features/devices/devices-panel-view.d.ts +7 -1
- package/dist/components/features/devices/devices-panel-view.d.ts.map +1 -1
- package/dist/components/features/devices/devices-panel-view.js +11 -6
- package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -1
- package/dist/components/features/devices/devices-table-columns.js +29 -8
- package/dist/components/features/devices/index.d.ts +0 -1
- package/dist/components/features/devices/index.d.ts.map +1 -1
- package/dist/components/features/devices/index.js +0 -2
- package/dist/components/features/entity-tag-badges.d.ts +3 -20
- package/dist/components/features/entity-tag-badges.d.ts.map +1 -1
- package/dist/components/features/entity-tag-badges.js +12 -27
- package/dist/components/features/entity-video-section.d.ts +0 -8
- package/dist/components/features/entity-video-section.d.ts.map +1 -1
- package/dist/components/features/entity-video-section.js +4 -5
- package/dist/components/features/filters-dropdown.d.ts.map +1 -1
- package/dist/components/features/filters-dropdown.js +14 -17
- package/dist/components/features/highlight-video-section.d.ts.map +1 -1
- package/dist/components/features/highlight-video-section.js +7 -7
- package/dist/components/features/index.cjs +39 -68
- package/dist/components/features/knowledge-base/knowledge-base-table.d.ts.map +1 -1
- package/dist/components/features/knowledge-base/knowledge-base-table.js +78 -47
- package/dist/components/features/logs/index.d.ts +2 -2
- package/dist/components/features/logs/index.d.ts.map +1 -1
- package/dist/components/features/logs/index.js +1 -2
- package/dist/components/features/logs/logs-page-view.d.ts.map +1 -1
- package/dist/components/features/logs/logs-page-view.js +1 -0
- package/dist/components/features/logs/logs-table-columns.d.ts +2 -3
- package/dist/components/features/logs/logs-table-columns.d.ts.map +1 -1
- package/dist/components/features/logs/logs-table-view.d.ts +6 -12
- package/dist/components/features/logs/logs-table-view.d.ts.map +1 -1
- package/dist/components/features/logs/logs-table-view.js +75 -98
- package/dist/components/features/model-token-rates.d.ts +0 -5
- package/dist/components/features/model-token-rates.d.ts.map +1 -1
- package/dist/components/features/model-token-rates.js +18 -20
- package/dist/components/features/notifications/index.d.ts +2 -2
- package/dist/components/features/notifications/index.d.ts.map +1 -1
- package/dist/components/features/notifications/index.js +1 -2
- package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
- package/dist/components/features/notifications/notification-drawer.js +6 -3
- package/dist/components/features/notifications/notification-tile.d.ts +21 -20
- package/dist/components/features/notifications/notification-tile.d.ts.map +1 -1
- package/dist/components/features/notifications/notification-tile.js +24 -6
- package/dist/components/features/os-type-badge-group.d.ts +3 -1
- package/dist/components/features/os-type-badge-group.d.ts.map +1 -1
- package/dist/components/features/os-type-badge-group.js +12 -1
- package/dist/components/features/os-type-badge.d.ts.map +1 -1
- package/dist/components/features/os-type-badge.js +10 -0
- package/dist/components/features/paths-display.d.ts +0 -7
- package/dist/components/features/paths-display.d.ts.map +1 -1
- package/dist/components/features/paths-display.js +17 -9
- package/dist/components/features/platform-badge.d.ts +4 -3
- package/dist/components/features/platform-badge.d.ts.map +1 -1
- package/dist/components/features/platform-badge.js +4 -4
- package/dist/components/features/policies/policies-table.d.ts.map +1 -1
- package/dist/components/features/policies/policies-table.js +49 -27
- package/dist/components/features/policy-configuration-panel.d.ts +2 -0
- package/dist/components/features/policy-configuration-panel.d.ts.map +1 -1
- package/dist/components/features/policy-configuration-panel.js +56 -34
- package/dist/components/features/push-button-selector.d.ts +0 -19
- package/dist/components/features/push-button-selector.d.ts.map +1 -1
- package/dist/components/features/push-button-selector.js +13 -11
- package/dist/components/features/remote-session/index.d.ts +1 -1
- package/dist/components/features/remote-session/index.d.ts.map +1 -1
- package/dist/components/features/remote-session/index.js +1 -2
- package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts +9 -3
- package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-desktop-chat-message-row.js +31 -17
- package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts +1 -1
- package/dist/components/features/remote-session/remote-desktop-chat-panel.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-desktop-chat-panel.js +20 -7
- package/dist/components/features/remote-session/remote-desktop-fullscreen-toolbar.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-desktop-fullscreen-toolbar.js +5 -13
- package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-desktop-view.js +7 -15
- package/dist/components/features/remote-session/remote-session-block.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-block.js +18 -28
- package/dist/components/features/remote-session/remote-session-chat-panel.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-chat-panel.js +5 -3
- package/dist/components/features/remote-session/remote-session-events.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-events.js +9 -8
- package/dist/components/features/remote-session/remote-session-overlay.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-overlay.js +5 -12
- package/dist/components/features/scripts/execution-cells.d.ts +4 -1
- package/dist/components/features/scripts/execution-cells.d.ts.map +1 -1
- package/dist/components/features/scripts/execution-cells.js +9 -3
- package/dist/components/features/scripts/schedule-form/schedule-script-picker-card.js +4 -2
- package/dist/components/features/scripts/schedule-form/schedule-timing-fields.d.ts.map +1 -1
- package/dist/components/features/scripts/schedule-form/schedule-timing-fields.js +5 -2
- package/dist/components/features/scripts/script-executions-table.d.ts.map +1 -1
- package/dist/components/features/scripts/script-executions-table.js +24 -7
- package/dist/components/features/scripts/script-schedules-table.d.ts.map +1 -1
- package/dist/components/features/scripts/script-schedules-table.js +36 -9
- package/dist/components/features/scripts/script-shell-badge.d.ts.map +1 -1
- package/dist/components/features/scripts/script-shell-badge.js +8 -0
- package/dist/components/features/scripts/scripts-table-shared.d.ts +4 -1
- package/dist/components/features/scripts/scripts-table-shared.d.ts.map +1 -1
- package/dist/components/features/scripts/scripts-table-shared.js +4 -1
- package/dist/components/features/scripts/scripts-table.d.ts.map +1 -1
- package/dist/components/features/scripts/scripts-table.js +23 -7
- package/dist/components/features/select-button.d.ts.map +1 -1
- package/dist/components/features/select-button.js +5 -12
- package/dist/components/features/status-filter-component.d.ts +0 -14
- package/dist/components/features/status-filter-component.d.ts.map +1 -1
- package/dist/components/features/status-filter-component.js +1 -2
- package/dist/components/features/tags-selector.d.ts.map +1 -1
- package/dist/components/features/tags-selector.js +4 -3
- package/dist/components/features/ticket-status-config-list/ticket-status-config-list.d.ts +10 -1
- package/dist/components/features/ticket-status-config-list/ticket-status-config-list.d.ts.map +1 -1
- package/dist/components/features/ticket-status-config-list/ticket-status-config-list.js +34 -9
- package/dist/components/features/video-bites-strip.d.ts +0 -31
- package/dist/components/features/video-bites-strip.d.ts.map +1 -1
- package/dist/components/features/video-bites-strip.js +2 -9
- package/dist/components/features/video-hover-preview.d.ts.map +1 -1
- package/dist/components/features/video-hover-preview.js +2 -5
- package/dist/components/features/video-shared.d.ts +3 -0
- package/dist/components/features/video-shared.d.ts.map +1 -1
- package/dist/components/features/video-source-selector.d.ts.map +1 -1
- package/dist/components/features/video-source-selector.js +5 -3
- package/dist/components/features/video.d.ts +1 -9
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/features/video.js +5 -47
- package/dist/components/features/walkthrough-video.d.ts +0 -7
- package/dist/components/features/walkthrough-video.d.ts.map +1 -1
- package/dist/components/features/walkthrough-video.js +1 -2
- package/dist/components/filter-chip.d.ts.map +1 -1
- package/dist/components/filter-chip.js +5 -9
- package/dist/components/help-center-pages/download-apps-page.d.ts.map +1 -1
- package/dist/components/help-center-pages/download-apps-page.js +19 -13
- package/dist/components/help-center-pages/index.cjs +198 -198
- package/dist/components/help-center-pages/index.d.ts +1 -1
- package/dist/components/help-center-pages/index.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.js +2 -3
- package/dist/components/help-center-pages/trust-center-page.d.ts +0 -9
- package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
- package/dist/components/help-center-pages/trust-center-page.js +4 -11
- package/dist/components/help-center-pages/trust-center-sections.js +10 -10
- package/dist/components/index.cjs +504 -1305
- package/dist/components/index.d.ts +2 -3
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -9
- package/dist/components/interactive-wrapper.d.ts +0 -4
- package/dist/components/interactive-wrapper.d.ts.map +1 -1
- package/dist/components/interactive-wrapper.js +0 -21
- package/dist/components/layout/back-button.d.ts +5 -2
- package/dist/components/layout/back-button.d.ts.map +1 -1
- package/dist/components/layout/back-button.js +5 -18
- package/dist/components/layout/list-page-layout.d.ts +3 -3
- package/dist/components/layout/list-page-layout.d.ts.map +1 -1
- package/dist/components/layout/list-page-layout.js +1 -0
- package/dist/components/layout/page-container.d.ts +0 -8
- package/dist/components/layout/page-container.d.ts.map +1 -1
- package/dist/components/layout/page-container.js +0 -2
- package/dist/components/layout/page-heading.d.ts +11 -21
- package/dist/components/layout/page-heading.d.ts.map +1 -1
- package/dist/components/layout/page-heading.js +18 -2
- package/dist/components/loading/index.d.ts +2 -13
- package/dist/components/loading/index.d.ts.map +1 -1
- package/dist/components/loading/index.js +5 -42
- package/dist/components/loading/loading-fallback.d.ts +46 -0
- package/dist/components/loading/loading-fallback.d.ts.map +1 -0
- package/dist/components/loading/loading-fallback.js +33 -0
- package/dist/components/loading/loading-region.d.ts.map +1 -1
- package/dist/components/loading/loading-region.js +2 -2
- package/dist/components/log-severity-dot.d.ts +0 -2
- package/dist/components/log-severity-dot.d.ts.map +1 -1
- package/dist/components/log-severity-dot.js +4 -3
- package/dist/components/logs-list.d.ts.map +1 -1
- package/dist/components/logs-list.js +6 -8
- package/dist/components/meeting-scheduler/booking-form.d.ts +1 -28
- package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/booking-form.js +4 -6
- package/dist/components/meeting-scheduler/context-panel.d.ts +1 -24
- package/dist/components/meeting-scheduler/context-panel.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/context-panel.js +8 -39
- package/dist/components/meeting-scheduler/directory.d.ts +0 -10
- package/dist/components/meeting-scheduler/directory.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/directory.js +6 -7
- package/dist/components/meeting-scheduler/host-identity.d.ts +12 -0
- package/dist/components/meeting-scheduler/host-identity.d.ts.map +1 -0
- package/dist/components/meeting-scheduler/host-identity.js +51 -0
- package/dist/components/meeting-scheduler/index.cjs +288 -313
- package/dist/components/meeting-scheduler/index.d.ts +3 -3
- package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/index.js +4 -11
- package/dist/components/meeting-scheduler/modal-header.d.ts +1 -4
- package/dist/components/meeting-scheduler/modal-header.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/modal-header.js +6 -45
- package/dist/components/meeting-scheduler/slot-picker.d.ts +0 -16
- package/dist/components/meeting-scheduler/slot-picker.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/slot-picker.js +7 -14
- package/dist/components/metric-value.d.ts +0 -5
- package/dist/components/metric-value.d.ts.map +1 -1
- package/dist/components/metric-value.js +1 -2
- package/dist/components/msp-display.d.ts +0 -5
- package/dist/components/msp-display.d.ts.map +1 -1
- package/dist/components/msp-display.js +3 -4
- package/dist/components/navigation/app-header.d.ts.map +1 -1
- package/dist/components/navigation/app-header.js +3 -1
- package/dist/components/navigation/header-button.d.ts.map +1 -1
- package/dist/components/navigation/header-button.js +5 -9
- package/dist/components/navigation/header-mingo-button.d.ts.map +1 -1
- package/dist/components/navigation/header-mingo-button.js +4 -8
- package/dist/components/navigation/header-organization-filter.d.ts.map +1 -1
- package/dist/components/navigation/header-organization-filter.js +11 -23
- package/dist/components/navigation/index.cjs +42 -40
- package/dist/components/navigation/mobile-burger-menu.d.ts.map +1 -1
- package/dist/components/navigation/mobile-burger-menu.js +8 -29
- package/dist/components/navigation/multi-level-navigation.d.ts +0 -10
- package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -1
- package/dist/components/navigation/multi-level-navigation.js +26 -37
- package/dist/components/navigation/nav-panel.d.ts.map +1 -1
- package/dist/components/navigation/nav-panel.js +47 -13
- package/dist/components/navigation/navigation-sidebar-item.d.ts +12 -14
- package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
- package/dist/components/navigation/navigation-sidebar-item.js +29 -44
- package/dist/components/navigation/navigation-sidebar-toggle.d.ts.map +1 -1
- package/dist/components/navigation/navigation-sidebar-toggle.js +4 -8
- package/dist/components/navigation/navigation-sidebar.d.ts.map +1 -1
- package/dist/components/navigation/navigation-sidebar.js +3 -3
- package/dist/components/navigation/sticky-section-nav.d.ts +0 -7
- package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
- package/dist/components/navigation/sticky-section-nav.js +9 -15
- package/dist/components/onboarding-guides/index.cjs +42 -40
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.js +3 -5
- package/dist/components/onboarding-guides/onboarding-guides-catalog-view.d.ts.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guides-catalog-view.js +22 -14
- package/dist/components/pagination.d.ts.map +1 -1
- package/dist/components/pagination.js +1 -11
- package/dist/components/platform/ToolBadge.d.ts +0 -8
- package/dist/components/platform/ToolBadge.d.ts.map +1 -1
- package/dist/components/platform/ToolBadge.js +1 -2
- package/dist/components/platform/index.d.ts +2 -2
- package/dist/components/platform/index.d.ts.map +1 -1
- package/dist/components/platform/index.js +2 -3
- package/dist/components/product-demo/index.cjs +73 -58
- package/dist/components/product-demo/product-screen.d.ts.map +1 -1
- package/dist/components/product-demo/product-screen.js +22 -9
- package/dist/components/product-demo/screen-loading.d.ts.map +1 -1
- package/dist/components/product-demo/screen-loading.js +2 -4
- package/dist/components/related-content/card-registry.d.ts.map +1 -1
- package/dist/components/related-content/card-registry.js +23 -36
- package/dist/components/related-content/index.cjs +22 -21
- package/dist/components/related-content/index.d.ts +1 -1
- package/dist/components/related-content/index.d.ts.map +1 -1
- package/dist/components/related-content/index.js +2 -4
- package/dist/components/related-content/related-content-section.d.ts +0 -14
- package/dist/components/related-content/related-content-section.d.ts.map +1 -1
- package/dist/components/related-content/related-content-section.js +1 -2
- package/dist/components/resizable.d.ts +1 -1
- package/dist/components/results-count.d.ts +0 -5
- package/dist/components/results-count.d.ts.map +1 -1
- package/dist/components/results-count.js +1 -2
- package/dist/components/shared/article-author-byline.d.ts +0 -8
- package/dist/components/shared/article-author-byline.d.ts.map +1 -1
- package/dist/components/shared/article-author-byline.js +1 -2
- package/dist/components/shared/delivery/delivery-row.d.ts +12 -8
- package/dist/components/shared/delivery/delivery-row.d.ts.map +1 -1
- package/dist/components/shared/delivery/delivery-row.js +7 -7
- package/dist/components/shared/delivery/delivery-table.d.ts +1 -3
- package/dist/components/shared/delivery/delivery-table.d.ts.map +1 -1
- package/dist/components/shared/delivery/delivery-table.js +6 -6
- package/dist/components/shared/dev-section/dev-card-row.d.ts +10 -22
- package/dist/components/shared/dev-section/dev-card-row.d.ts.map +1 -1
- package/dist/components/shared/dev-section/dev-card-row.js +10 -39
- package/dist/components/shared/dev-section/index.d.ts +1 -1
- package/dist/components/shared/dev-section/index.d.ts.map +1 -1
- package/dist/components/shared/dev-section/index.js +1 -7
- package/dist/components/shared/legal-document/index.d.ts +1 -1
- package/dist/components/shared/legal-document/index.d.ts.map +1 -1
- package/dist/components/shared/legal-document/index.js +0 -2
- package/dist/components/shared/legal-document/legal-document-page.d.ts +0 -7
- package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
- package/dist/components/shared/legal-document/legal-document-page.js +2 -3
- package/dist/components/shared/media-gallery-strip.d.ts +0 -5
- package/dist/components/shared/media-gallery-strip.d.ts.map +1 -1
- package/dist/components/shared/media-gallery-strip.js +15 -14
- package/dist/components/shared/onboarding/onboarding-walkthrough.d.ts +1 -1
- package/dist/components/shared/onboarding/onboarding-walkthrough.d.ts.map +1 -1
- package/dist/components/shared/onboarding/onboarding-walkthrough.js +3 -1
- package/dist/components/shared/product-release/index.d.ts +0 -1
- package/dist/components/shared/product-release/index.d.ts.map +1 -1
- package/dist/components/shared/product-release/index.js +0 -2
- package/dist/components/shared/product-release/product-release-card-skeleton.js +4 -4
- package/dist/components/shared/product-release/product-release-card.d.ts +9 -4
- package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
- package/dist/components/shared/product-release/product-release-card.js +8 -4
- package/dist/components/shared/product-release/product-releases-view.d.ts +3 -3
- package/dist/components/shared/product-release/product-releases-view.d.ts.map +1 -1
- package/dist/components/shared/product-release/product-releases-view.js +8 -8
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.js +3 -5
- package/dist/components/shared/roadmap/index.d.ts +0 -1
- package/dist/components/shared/roadmap/index.d.ts.map +1 -1
- package/dist/components/shared/roadmap/index.js +0 -2
- package/dist/components/shared/roadmap/roadmap-grid.d.ts +2 -12
- package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -1
- package/dist/components/shared/roadmap/roadmap-grid.js +16 -7
- package/dist/components/shared/roadmap/roadmap-view.d.ts.map +1 -1
- package/dist/components/shared/roadmap/roadmap-view.js +3 -2
- package/dist/components/smooth-accordion.d.ts.map +1 -1
- package/dist/components/smooth-accordion.js +0 -2
- package/dist/components/social-icon-row.d.ts +6 -1
- package/dist/components/social-icon-row.d.ts.map +1 -1
- package/dist/components/social-icon-row.js +5 -1
- package/dist/components/tickets/help-center-card.d.ts +16 -2
- package/dist/components/tickets/help-center-card.d.ts.map +1 -1
- package/dist/components/tickets/help-center-card.js +28 -9
- package/dist/components/tickets/help-center-create-form.d.ts +15 -37
- package/dist/components/tickets/help-center-create-form.d.ts.map +1 -1
- package/dist/components/tickets/help-center-create-form.js +10 -41
- package/dist/components/tickets/help-center-list.d.ts.map +1 -1
- package/dist/components/tickets/help-center-list.js +27 -40
- package/dist/components/tickets/index.cjs +46 -45
- package/dist/components/tickets/index.d.ts +1 -1
- package/dist/components/tickets/index.d.ts.map +1 -1
- package/dist/components/tickets/index.js +1 -5
- package/dist/components/tickets/ticket-center.d.ts.map +1 -1
- package/dist/components/tickets/ticket-center.js +6 -14
- package/dist/components/tickets/ticket-detail-drawer.d.ts.map +1 -1
- package/dist/components/tickets/ticket-detail-drawer.js +5 -2
- package/dist/components/tickets/ticket-open-form.d.ts.map +1 -1
- package/dist/components/tickets/ticket-open-form.js +3 -2
- package/dist/components/tickets/ticket-row.d.ts +17 -2
- package/dist/components/tickets/ticket-row.d.ts.map +1 -1
- package/dist/components/tickets/ticket-row.js +13 -3
- package/dist/components/ui/actions-menu.d.ts +3 -0
- package/dist/components/ui/actions-menu.d.ts.map +1 -1
- package/dist/components/ui/actions-menu.js +36 -39
- package/dist/components/ui/alert.d.ts +1 -1
- package/dist/components/ui/allowed-domains-input.d.ts.map +1 -1
- package/dist/components/ui/allowed-domains-input.js +7 -10
- package/dist/components/ui/assignee-dropdown.d.ts.map +1 -1
- package/dist/components/ui/assignee-dropdown.js +23 -23
- package/dist/components/ui/autocomplete.d.ts +0 -8
- package/dist/components/ui/autocomplete.d.ts.map +1 -1
- package/dist/components/ui/autocomplete.js +16 -20
- package/dist/components/ui/avatar-stack.d.ts +4 -8
- package/dist/components/ui/avatar-stack.d.ts.map +1 -1
- package/dist/components/ui/avatar-stack.js +13 -11
- package/dist/components/ui/badge.d.ts +5 -10
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/badge.js +3 -2
- package/dist/components/ui/breadcrumb.d.ts +2 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb.js +5 -1
- package/dist/components/ui/button/button-styles.d.ts +21 -0
- package/dist/components/ui/button/button-styles.d.ts.map +1 -1
- package/dist/components/ui/button/button-styles.js +63 -0
- package/dist/components/ui/button/button.d.ts +1 -1
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/button/button.js +33 -3
- package/dist/components/ui/button/index.d.ts +1 -1
- package/dist/components/ui/button/index.d.ts.map +1 -1
- package/dist/components/ui/button/index.js +2 -1
- package/dist/components/ui/button/split-button.d.ts +2 -9
- package/dist/components/ui/button/split-button.d.ts.map +1 -1
- package/dist/components/ui/button/split-button.js +18 -91
- package/dist/components/ui/checkbox-block.d.ts +9 -1
- package/dist/components/ui/checkbox-block.d.ts.map +1 -1
- package/dist/components/ui/checkbox-block.js +110 -93
- package/dist/components/ui/checkbox-with-description.d.ts +5 -0
- package/dist/components/ui/checkbox-with-description.d.ts.map +1 -1
- package/dist/components/ui/checkbox-with-description.js +36 -36
- package/dist/components/ui/checkbox.d.ts +10 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +21 -14
- package/dist/components/ui/chevron-button.d.ts +2 -2
- package/dist/components/ui/chevron-button.d.ts.map +1 -1
- package/dist/components/ui/chevron-button.js +13 -20
- package/dist/components/ui/color-preset-select.d.ts +4 -1
- package/dist/components/ui/color-preset-select.d.ts.map +1 -1
- package/dist/components/ui/color-preset-select.js +24 -12
- package/dist/components/ui/color-swatch.d.ts +2 -1
- package/dist/components/ui/color-swatch.d.ts.map +1 -1
- package/dist/components/ui/color-swatch.js +5 -8
- package/dist/components/ui/content-loader.d.ts.map +1 -1
- package/dist/components/ui/content-loader.js +12 -9
- package/dist/components/ui/cursor-pagination.d.ts +5 -8
- package/dist/components/ui/cursor-pagination.d.ts.map +1 -1
- package/dist/components/ui/cursor-pagination.js +6 -8
- package/dist/components/ui/dashboard-info-card.d.ts +13 -7
- package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
- package/dist/components/ui/dashboard-info-card.js +19 -10
- package/dist/components/ui/data-attribution.d.ts +0 -6
- package/dist/components/ui/data-attribution.d.ts.map +1 -1
- package/dist/components/ui/data-attribution.js +0 -1
- package/dist/components/ui/data-table/data-table-body.d.ts +7 -1
- package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-body.js +47 -15
- package/dist/components/ui/data-table/data-table-cursor-footer.d.ts +1 -1
- package/dist/components/ui/data-table/data-table-header.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-header.js +5 -0
- package/dist/components/ui/data-table/data-table-infinite-footer.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-infinite-footer.js +7 -5
- package/dist/components/ui/data-table/data-table-reserved-rows.d.ts +27 -0
- package/dist/components/ui/data-table/data-table-reserved-rows.d.ts.map +1 -0
- package/dist/components/ui/data-table/data-table-reserved-rows.js +73 -0
- package/dist/components/ui/data-table/data-table-row-classes.d.ts +34 -0
- package/dist/components/ui/data-table/data-table-row-classes.d.ts.map +1 -0
- package/dist/components/ui/data-table/data-table-row-classes.js +20 -0
- package/dist/components/ui/data-table/data-table-row-count.d.ts +3 -6
- package/dist/components/ui/data-table/data-table-row-count.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-row-count.js +3 -3
- package/dist/components/ui/data-table/data-table-row.d.ts +18 -38
- package/dist/components/ui/data-table/data-table-row.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-row.js +109 -9
- package/dist/components/ui/data-table/index.d.ts +6 -9
- package/dist/components/ui/data-table/index.d.ts.map +1 -1
- package/dist/components/ui/data-table/index.js +12 -7
- package/dist/components/ui/data-table/types.d.ts +13 -0
- package/dist/components/ui/data-table/types.d.ts.map +1 -1
- package/dist/components/ui/data-table/utils.d.ts +8 -0
- package/dist/components/ui/data-table/utils.d.ts.map +1 -1
- package/dist/components/ui/data-table/utils.js +6 -0
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/date-picker.js +12 -47
- package/dist/components/ui/device-card.d.ts +7 -1
- package/dist/components/ui/device-card.d.ts.map +1 -1
- package/dist/components/ui/device-card.js +40 -27
- package/dist/components/ui/entity-image.d.ts +0 -2
- package/dist/components/ui/entity-image.d.ts.map +1 -1
- package/dist/components/ui/entity-image.js +2 -6
- package/dist/components/ui/feature-card.d.ts +0 -5
- package/dist/components/ui/feature-card.d.ts.map +1 -1
- package/dist/components/ui/feature-card.js +12 -9
- package/dist/components/ui/feature-list.d.ts +0 -10
- package/dist/components/ui/feature-list.d.ts.map +1 -1
- package/dist/components/ui/feature-list.js +3 -4
- package/dist/components/ui/field-value-skeleton.d.ts +7 -0
- package/dist/components/ui/field-value-skeleton.d.ts.map +1 -0
- package/dist/components/ui/field-value-skeleton.js +10 -0
- package/dist/components/ui/file-manager/file-manager-breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/file-manager/file-manager-breadcrumb.js +8 -6
- package/dist/components/ui/file-manager/file-manager-table-row.d.ts +12 -1
- package/dist/components/ui/file-manager/file-manager-table-row.d.ts.map +1 -1
- package/dist/components/ui/file-manager/file-manager-table-row.js +100 -31
- package/dist/components/ui/file-manager/file-manager-table.d.ts +1 -1
- package/dist/components/ui/file-manager/file-manager-table.d.ts.map +1 -1
- package/dist/components/ui/file-manager/file-manager-table.js +41 -39
- package/dist/components/ui/file-manager/file-manager.d.ts +1 -1
- package/dist/components/ui/file-manager/file-manager.d.ts.map +1 -1
- package/dist/components/ui/file-manager/file-manager.js +62 -44
- package/dist/components/ui/file-manager/index.cjs +240 -217
- package/dist/components/ui/file-manager/index.d.ts +0 -1
- package/dist/components/ui/file-manager/index.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.js +0 -2
- package/dist/components/ui/file-manager/types.d.ts +12 -1
- package/dist/components/ui/file-manager/types.d.ts.map +1 -1
- package/dist/components/ui/file-upload.d.ts.map +1 -1
- package/dist/components/ui/file-upload.js +38 -26
- package/dist/components/ui/filter-checkbox-item.d.ts +1 -10
- package/dist/components/ui/filter-checkbox-item.d.ts.map +1 -1
- package/dist/components/ui/filter-checkbox-item.js +11 -7
- package/dist/components/ui/filter-modal.d.ts +3 -3
- package/dist/components/ui/filter-modal.d.ts.map +1 -1
- package/dist/components/ui/filter-modal.js +74 -67
- package/dist/components/ui/filter-pill-row.d.ts +0 -13
- package/dist/components/ui/filter-pill-row.d.ts.map +1 -1
- package/dist/components/ui/filter-pill-row.js +3 -3
- package/dist/components/ui/hidden-tags-popup.d.ts.map +1 -1
- package/dist/components/ui/hidden-tags-popup.js +6 -3
- package/dist/components/ui/hover-dropdown.d.ts.map +1 -1
- package/dist/components/ui/hover-dropdown.js +7 -3
- package/dist/components/ui/image-uploader.d.ts.map +1 -1
- package/dist/components/ui/image-uploader.js +7 -12
- package/dist/components/ui/index.cjs +42 -163
- package/dist/components/ui/index.d.ts +5 -6
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +3 -23
- package/dist/components/ui/info-card-row.d.ts +0 -12
- package/dist/components/ui/info-card-row.d.ts.map +1 -1
- package/dist/components/ui/info-card-row.js +1 -2
- package/dist/components/ui/info-card.d.ts +32 -21
- package/dist/components/ui/info-card.d.ts.map +1 -1
- package/dist/components/ui/info-card.js +91 -76
- package/dist/components/ui/info-section.d.ts +8 -1
- package/dist/components/ui/info-section.d.ts.map +1 -1
- package/dist/components/ui/info-section.js +39 -18
- package/dist/components/ui/input-styles.d.ts +3 -0
- package/dist/components/ui/input-styles.d.ts.map +1 -1
- package/dist/components/ui/input-styles.js +2 -0
- package/dist/components/ui/input-trigger.d.ts +3 -0
- package/dist/components/ui/input-trigger.d.ts.map +1 -1
- package/dist/components/ui/input-trigger.js +13 -21
- package/dist/components/ui/input.d.ts +7 -1
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/input.js +14 -4
- package/dist/components/ui/label.d.ts +2 -2
- package/dist/components/ui/label.d.ts.map +1 -1
- package/dist/components/ui/label.js +8 -5
- package/dist/components/ui/leader-row.d.ts +17 -13
- package/dist/components/ui/leader-row.d.ts.map +1 -1
- package/dist/components/ui/leader-row.js +34 -25
- package/dist/components/ui/loading-scope.d.ts +82 -3
- package/dist/components/ui/loading-scope.d.ts.map +1 -1
- package/dist/components/ui/loading-scope.js +56 -4
- package/dist/components/ui/markdown/engine.d.ts +5 -0
- package/dist/components/ui/markdown/engine.d.ts.map +1 -1
- package/dist/components/ui/markdown/engine.js +10 -6
- package/dist/components/ui/markdown/index.d.ts +1 -1
- package/dist/components/ui/markdown/index.d.ts.map +1 -1
- package/dist/components/ui/markdown/index.js +1 -5
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +0 -10
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +1 -1
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.js +2 -10
- package/dist/components/ui/modal-v2.d.ts.map +1 -1
- package/dist/components/ui/modal-v2.js +7 -3
- package/dist/components/ui/numbered-step.d.ts +9 -11
- package/dist/components/ui/numbered-step.d.ts.map +1 -1
- package/dist/components/ui/numbered-step.js +12 -2
- package/dist/components/ui/organization-card.d.ts +14 -1
- package/dist/components/ui/organization-card.d.ts.map +1 -1
- package/dist/components/ui/organization-card.js +70 -29
- package/dist/components/ui/page-actions.d.ts +5 -5
- package/dist/components/ui/page-actions.d.ts.map +1 -1
- package/dist/components/ui/page-actions.js +45 -50
- package/dist/components/ui/password-input.d.ts.map +1 -1
- package/dist/components/ui/password-input.js +5 -3
- package/dist/components/ui/people-cell.d.ts +3 -5
- package/dist/components/ui/people-cell.d.ts.map +1 -1
- package/dist/components/ui/people-cell.js +6 -6
- package/dist/components/ui/product-screen-frame.d.ts.map +1 -1
- package/dist/components/ui/product-screen-frame.js +19 -6
- package/dist/components/ui/progress-bar.d.ts +3 -4
- package/dist/components/ui/progress-bar.d.ts.map +1 -1
- package/dist/components/ui/progress-bar.js +7 -4
- package/dist/components/ui/query-report-table/index.d.ts +1 -2
- package/dist/components/ui/query-report-table/index.d.ts.map +1 -1
- package/dist/components/ui/query-report-table/index.js +0 -2
- package/dist/components/ui/query-report-table/query-report-table-header.d.ts.map +1 -1
- package/dist/components/ui/query-report-table/query-report-table-header.js +3 -2
- package/dist/components/ui/query-report-table/query-report-table-row.d.ts +15 -1
- package/dist/components/ui/query-report-table/query-report-table-row.d.ts.map +1 -1
- package/dist/components/ui/query-report-table/query-report-table-row.js +30 -21
- package/dist/components/ui/query-report-table/query-report-table-skeleton.d.ts.map +1 -1
- package/dist/components/ui/query-report-table/query-report-table-skeleton.js +20 -28
- package/dist/components/ui/query-report-table/query-report-table.d.ts +1 -1
- package/dist/components/ui/query-report-table/query-report-table.d.ts.map +1 -1
- package/dist/components/ui/query-report-table/query-report-table.js +19 -14
- package/dist/components/ui/query-report-table/types.d.ts +5 -1
- package/dist/components/ui/query-report-table/types.d.ts.map +1 -1
- package/dist/components/ui/radio-group.d.ts +14 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +51 -33
- package/dist/components/ui/release-changelog-section.d.ts +0 -19
- package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
- package/dist/components/ui/release-changelog-section.js +11 -16
- package/dist/components/ui/search-input.d.ts.map +1 -1
- package/dist/components/ui/search-input.js +11 -14
- package/dist/components/ui/searchable-select.d.ts.map +1 -1
- package/dist/components/ui/searchable-select.js +30 -33
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +4 -1
- package/dist/components/ui/service-card.d.ts +9 -1
- package/dist/components/ui/service-card.d.ts.map +1 -1
- package/dist/components/ui/service-card.js +89 -66
- package/dist/components/ui/slack-channel-chip.d.ts +0 -4
- package/dist/components/ui/slack-channel-chip.d.ts.map +1 -1
- package/dist/components/ui/slack-channel-chip.js +1 -2
- package/dist/components/ui/snap-carousel.d.ts +38 -6
- package/dist/components/ui/snap-carousel.d.ts.map +1 -1
- package/dist/components/ui/snap-carousel.js +122 -63
- package/dist/components/ui/square-avatar.d.ts +3 -2
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.js +18 -6
- package/dist/components/ui/stacked-rows-panel.d.ts +21 -23
- package/dist/components/ui/stacked-rows-panel.d.ts.map +1 -1
- package/dist/components/ui/stacked-rows-panel.js +36 -38
- package/dist/components/ui/status-badge.d.ts +9 -11
- package/dist/components/ui/status-badge.d.ts.map +1 -1
- package/dist/components/ui/status-badge.js +14 -3
- package/dist/components/ui/status-indicator.d.ts +0 -4
- package/dist/components/ui/status-indicator.d.ts.map +1 -1
- package/dist/components/ui/status-indicator.js +1 -2
- package/dist/components/ui/strip-card.d.ts +0 -9
- package/dist/components/ui/strip-card.d.ts.map +1 -1
- package/dist/components/ui/strip-card.js +1 -2
- package/dist/components/ui/super-user-banner-view.d.ts +4 -1
- package/dist/components/ui/super-user-banner-view.d.ts.map +1 -1
- package/dist/components/ui/super-user-banner-view.js +10 -2
- package/dist/components/ui/switch.d.ts +3 -0
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +15 -10
- package/dist/components/ui/tab-navigation.d.ts +11 -17
- package/dist/components/ui/tab-navigation.d.ts.map +1 -1
- package/dist/components/ui/tab-navigation.js +28 -33
- package/dist/components/ui/tab-selector.d.ts.map +1 -1
- package/dist/components/ui/tab-selector.js +7 -11
- package/dist/components/ui/tabs.d.ts +1 -22
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +1 -16
- package/dist/components/ui/tag-search-input.d.ts.map +1 -1
- package/dist/components/ui/tag-search-input.js +9 -10
- package/dist/components/ui/tag-select-dropdown.d.ts.map +1 -1
- package/dist/components/ui/tag-select-dropdown.js +14 -26
- package/dist/components/ui/tag.d.ts +6 -10
- package/dist/components/ui/tag.d.ts.map +1 -1
- package/dist/components/ui/tag.js +23 -9
- package/dist/components/ui/tags-input.d.ts +5 -7
- package/dist/components/ui/tags-input.d.ts.map +1 -1
- package/dist/components/ui/tags-input.js +14 -11
- package/dist/components/ui/tags-manager.d.ts.map +1 -1
- package/dist/components/ui/tags-manager.js +8 -3
- package/dist/components/ui/test-run.d.ts +1 -8
- package/dist/components/ui/test-run.d.ts.map +1 -1
- package/dist/components/ui/test-run.js +17 -11
- package/dist/components/ui/textarea.d.ts +1 -10
- package/dist/components/ui/textarea.d.ts.map +1 -1
- package/dist/components/ui/textarea.js +38 -35
- package/dist/components/ui/ticket-attachments-list.d.ts.map +1 -1
- package/dist/components/ui/ticket-attachments-list.js +11 -6
- package/dist/components/ui/ticket-info-section.d.ts.map +1 -1
- package/dist/components/ui/ticket-info-section.js +13 -18
- package/dist/components/ui/ticket-note-card.d.ts.map +1 -1
- package/dist/components/ui/ticket-note-card.js +19 -12
- package/dist/components/ui/ticket-notes-section.d.ts.map +1 -1
- package/dist/components/ui/ticket-notes-section.js +6 -8
- package/dist/components/ui/ticket-status-config-row.d.ts +6 -1
- package/dist/components/ui/ticket-status-config-row.d.ts.map +1 -1
- package/dist/components/ui/ticket-status-config-row.js +41 -23
- package/dist/components/ui/ticket-status-tag.d.ts +3 -1
- package/dist/components/ui/ticket-status-tag.d.ts.map +1 -1
- package/dist/components/ui/ticket-status-tag.js +42 -28
- package/dist/components/ui/timezone-select.d.ts +3 -2
- package/dist/components/ui/timezone-select.d.ts.map +1 -1
- package/dist/components/ui/timezone-select.js +3 -1
- package/dist/components/ui/toaster.d.ts.map +1 -1
- package/dist/components/ui/toaster.js +18 -20
- package/dist/components/ui/truncate-text.d.ts +6 -1
- package/dist/components/ui/truncate-text.d.ts.map +1 -1
- package/dist/components/ui/truncate-text.js +7 -1
- package/dist/components/user-display.d.ts +0 -11
- package/dist/components/user-display.d.ts.map +1 -1
- package/dist/components/user-display.js +3 -4
- package/dist/components/vendor-display-button.d.ts +4 -4
- package/dist/components/vendor-display-button.d.ts.map +1 -1
- package/dist/components/vendor-display-button.js +21 -34
- package/dist/components/vendor-icon.d.ts +3 -6
- package/dist/components/vendor-icon.d.ts.map +1 -1
- package/dist/components/vendor-icon.js +21 -9
- package/dist/components/vendor-tag.d.ts +0 -5
- package/dist/components/vendor-tag.d.ts.map +1 -1
- package/dist/components/vendor-tag.js +4 -2
- package/dist/{devices-SFJDLXSW.cjs → devices-TDKCKWRP.cjs} +40 -38
- package/dist/embed-shims/index.cjs +4 -4
- package/dist/embed-shims/next-image.cjs +4 -4
- package/dist/embed-shims/next-image.d.ts +1 -1
- package/dist/{embeddable-chat-XZUWAK4W.cjs → embeddable-chat-HEL4Z2FL.cjs} +192 -186
- package/dist/hooks/index.cjs +18 -14
- package/dist/hooks/use-toast.d.ts +1 -1
- package/dist/index.cjs +73 -228
- package/dist/{knowledge-SAK3ZGCO.cjs → knowledge-A5KJ4CAD.cjs} +40 -38
- package/dist/loading-standard/engine.d.mts +131 -0
- package/dist/loading-standard/engine.d.mts.map +1 -0
- package/dist/loading-standard/rule-examples.d.mts +13 -0
- package/dist/loading-standard/rule-examples.d.mts.map +1 -0
- package/dist/{logs-CYBGMFA5.cjs → logs-6WRBPIMM.cjs} +48 -46
- package/dist/{policies-XXDOICWF.cjs → policies-ICRXHW3H.cjs} +43 -41
- package/dist/{remote-session-TC3BZDBZ.cjs → remote-session-MEV5JL2Z.cjs} +21 -19
- package/dist/{scripts-C5T2AQPA.cjs → scripts-AZVCZE6C.cjs} +46 -44
- package/dist/{software-update-XU5AI4TP.cjs → software-update-4ZBCGJGA.cjs} +43 -41
- package/dist/{tickets-board-YT25IX3O.cjs → tickets-board-BJPQD3HE.cjs} +22 -20
- package/dist/types/logs.types.d.ts +9 -3
- package/dist/types/logs.types.d.ts.map +1 -1
- package/dist/types/permissions.d.ts +10 -0
- package/dist/types/permissions.d.ts.map +1 -1
- package/dist/{video-file-player-6ZFOZFER.cjs → video-file-player-DETXW4OJ.cjs} +17 -16
- package/package.json +1 -1
- package/src/components/agent-mark.tsx +9 -2
- package/src/components/authors/author-detail-view.tsx +5 -5
- package/src/components/case-studies/entity-quotes-panel.tsx +0 -34
- package/src/components/case-studies/index.ts +1 -2
- package/src/components/case-studies/quote-cards-strip.tsx +15 -12
- package/src/components/categories-cart.tsx +23 -8
- package/src/components/category-card.tsx +80 -14
- package/src/components/chat/approval-batch-message.tsx +2 -6
- package/src/components/chat/ask-display.tsx +12 -13
- package/src/components/chat/ask-prompts.tsx +26 -22
- package/src/components/chat/chat-archive-page.tsx +33 -30
- package/src/components/chat/chat-container.tsx +39 -41
- package/src/components/chat/chat-context-memory-bar.tsx +12 -11
- package/src/components/chat/chat-context-picker.tsx +50 -41
- package/src/components/chat/chat-input.tsx +6 -14
- package/src/components/chat/chat-message-enhanced.tsx +36 -18
- package/src/components/chat/chat-message-layout.ts +39 -0
- package/src/components/chat/chat-message-list.tsx +35 -18
- package/src/components/chat/chat-message-row.tsx +57 -25
- package/src/components/chat/chat-message-skeleton.tsx +109 -56
- package/src/components/chat/chat-nav-sidebar.tsx +116 -39
- package/src/components/chat/chat-panel-header.tsx +21 -15
- package/src/components/chat/chat-sidebar.tsx +80 -48
- package/src/components/chat/chat-ticket-list.tsx +32 -23
- package/src/components/chat/chat-top-navigation.tsx +57 -49
- package/src/components/chat/chat-turn.tsx +20 -17
- package/src/components/chat/context-items-list.tsx +64 -33
- package/src/components/chat/embeddable-chat.tsx +133 -138
- package/src/components/chat/entity-cards/admin-content-card-grid.tsx +64 -34
- package/src/components/chat/entity-cards/admin-content-card.tsx +14 -8
- package/src/components/chat/entity-cards/ai-prompt-card.tsx +9 -11
- package/src/components/chat/entity-cards/blog-card.tsx +28 -7
- package/src/components/chat/entity-cards/campaign-card-admin.tsx +1 -1
- package/src/components/chat/entity-cards/case-study-card.tsx +10 -3
- package/src/components/chat/entity-cards/chat-ticket-item.tsx +86 -79
- package/src/components/chat/entity-cards/customer-interview-card.tsx +47 -13
- package/src/components/chat/entity-cards/data-room-doc-card.tsx +1 -1
- package/src/components/chat/entity-cards/design-doc-card.tsx +6 -6
- package/src/components/chat/entity-cards/dispatch.tsx +25 -30
- package/src/components/chat/entity-cards/employee-entry-card.tsx +30 -15
- package/src/components/chat/entity-cards/entity-author-card.tsx +16 -8
- package/src/components/chat/entity-cards/entity-portrait-card.tsx +12 -3
- package/src/components/chat/entity-cards/generic-entity-card.tsx +1 -1
- package/src/components/chat/entity-cards/github-activity-card.tsx +1 -1
- package/src/components/chat/entity-cards/how-i-work-card.tsx +9 -12
- package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +1 -1
- package/src/components/chat/entity-cards/index.ts +21 -61
- package/src/components/chat/entity-cards/investor-update-card.tsx +30 -11
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +45 -13
- package/src/components/chat/entity-cards/program-card.tsx +69 -41
- package/src/components/chat/entity-cards/roadmap-card.tsx +27 -10
- package/src/components/chat/entity-cards/slack-message-card.tsx +1 -1
- package/src/components/chat/entity-cards/what-i-shipped-card.tsx +9 -7
- package/src/components/chat/error-message-display.tsx +4 -6
- package/src/components/chat/guide-mode-banner.tsx +4 -7
- package/src/components/chat/guide-welcome.tsx +9 -6
- package/src/components/chat/hooks/use-chat-dialog-manager.ts +2 -1
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +2 -1
- package/src/components/chat/hooks/use-sse-chat-adapter.ts +2 -1
- package/src/components/chat/index.ts +1 -4
- package/src/components/chat/mingo-archive-list.tsx +14 -8
- package/src/components/chat/mingo-chat-header.tsx +14 -13
- package/src/components/chat/mingo-chat-history.tsx +122 -78
- package/src/components/chat/mingo-chat-modals.tsx +18 -22
- package/src/components/chat/mingo-chat-rail.tsx +16 -9
- package/src/components/chat/mingo-history-rail.tsx +12 -6
- package/src/components/chat/mingo-info-card.tsx +26 -18
- package/src/components/chat/mingo-onboarding-card.tsx +117 -36
- package/src/components/chat/mingo-welcome.tsx +22 -7
- package/src/components/chat/model-display.tsx +29 -33
- package/src/components/chat/msp-organization-card.tsx +64 -46
- package/src/components/chat/quick-action-chip.tsx +52 -7
- package/src/components/chat/quick-action-wall.tsx +29 -13
- package/src/components/chat/tool-execution-display.tsx +3 -6
- package/src/components/chat/types/component.types.ts +26 -0
- package/src/components/chat/types/entities/program-types.ts +3 -0
- package/src/components/chat/utils/compact-card-skeleton.tsx +3 -3
- package/src/components/comment-card.tsx +79 -49
- package/src/components/comment-thread.tsx +56 -47
- package/src/components/docs/docs-hub-page.tsx +3 -7
- package/src/components/docs/index.ts +0 -2
- package/src/components/embeds/embed-viewer-frame.tsx +4 -1
- package/src/components/embeds/index.ts +1 -1
- package/src/components/embeds/og-link-preview.tsx +2 -2
- package/src/components/faq/faq-section.tsx +20 -12
- package/src/components/faq/index.ts +0 -2
- package/src/components/faq-accordion.tsx +33 -23
- package/src/components/features/ai-enrich/AIEnrichSection.tsx +2 -3
- package/src/components/features/approval-level.tsx +2 -2
- package/src/components/features/auth/back-to-login-link.tsx +3 -3
- package/src/components/features/auth/complete-account-form.tsx +8 -3
- package/src/components/features/auth/create-organization-form.tsx +27 -6
- package/src/components/features/auth/invite-link-invalid-modal.tsx +6 -4
- package/src/components/features/auth/login-form.tsx +9 -2
- package/src/components/features/auth/sso-join-form.tsx +35 -7
- package/src/components/features/auth/sso-providers.tsx +30 -1
- package/src/components/features/board/board-column.tsx +9 -17
- package/src/components/features/board/board-ticket-approval.tsx +4 -8
- package/src/components/features/board/board.tsx +41 -11
- package/src/components/features/board/index.ts +1 -3
- package/src/components/features/board/ticket-card.tsx +60 -8
- package/src/components/features/board/types.ts +6 -0
- package/src/components/features/capability-explorer.tsx +88 -71
- package/src/components/features/card-hit-layer.tsx +4 -2
- package/src/components/features/cloud-tenants/tenant-access-cell.tsx +5 -2
- package/src/components/features/cloud-tenants/tenant-cell.tsx +10 -2
- package/src/components/features/cloud-tenants/tenant-customer-cell.tsx +4 -1
- package/src/components/features/cloud-tenants/tenants-table-view.tsx +44 -16
- package/src/components/features/command-box.tsx +25 -10
- package/src/components/features/conversation-card.tsx +101 -48
- package/src/components/features/devices/device-selector/device-selector.tsx +135 -105
- package/src/components/features/devices/device-selector/device-selector.types.ts +5 -0
- package/src/components/features/devices/device-type-tile.tsx +11 -1
- package/src/components/features/devices/devices-grid-filters.tsx +5 -15
- package/src/components/features/devices/devices-grid.tsx +40 -10
- package/src/components/features/devices/devices-list.tsx +9 -2
- package/src/components/features/devices/devices-panel-view.tsx +17 -4
- package/src/components/features/devices/devices-table-columns.tsx +42 -8
- package/src/components/features/devices/index.ts +0 -1
- package/src/components/features/entity-tag-badges.tsx +24 -37
- package/src/components/features/entity-video-section.tsx +5 -5
- package/src/components/features/filters-dropdown.tsx +17 -22
- package/src/components/features/highlight-video-section.tsx +7 -5
- package/src/components/features/knowledge-base/knowledge-base-table.tsx +101 -60
- package/src/components/features/logs/index.ts +2 -2
- package/src/components/features/logs/logs-page-view.tsx +1 -0
- package/src/components/features/logs/logs-table-columns.ts +2 -3
- package/src/components/features/logs/logs-table-view.tsx +98 -135
- package/src/components/features/model-token-rates.tsx +31 -28
- package/src/components/features/notifications/index.ts +2 -2
- package/src/components/features/notifications/notification-drawer.tsx +7 -4
- package/src/components/features/notifications/notification-tile.tsx +53 -12
- package/src/components/features/os-type-badge-group.tsx +19 -1
- package/src/components/features/os-type-badge.tsx +13 -0
- package/src/components/features/paths-display.tsx +26 -20
- package/src/components/features/platform-badge.tsx +7 -3
- package/src/components/features/policies/policies-table.tsx +62 -27
- package/src/components/features/policy-configuration-panel.tsx +94 -32
- package/src/components/features/push-button-selector.tsx +21 -10
- package/src/components/features/remote-session/index.ts +1 -1
- package/src/components/features/remote-session/remote-desktop-chat-message-row.tsx +41 -25
- package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +21 -7
- package/src/components/features/remote-session/remote-desktop-fullscreen-toolbar.tsx +5 -13
- package/src/components/features/remote-session/remote-desktop-view.tsx +13 -15
- package/src/components/features/remote-session/remote-session-block.tsx +34 -36
- package/src/components/features/remote-session/remote-session-chat-panel.tsx +6 -4
- package/src/components/features/remote-session/remote-session-events.tsx +12 -10
- package/src/components/features/remote-session/remote-session-overlay.tsx +4 -7
- package/src/components/features/scripts/execution-cells.tsx +18 -4
- package/src/components/features/scripts/schedule-form/schedule-script-picker-card.tsx +5 -5
- package/src/components/features/scripts/schedule-form/schedule-timing-fields.tsx +6 -3
- package/src/components/features/scripts/script-executions-table.tsx +29 -7
- package/src/components/features/scripts/script-schedules-table.tsx +42 -9
- package/src/components/features/scripts/script-shell-badge.tsx +11 -0
- package/src/components/features/scripts/scripts-table-shared.tsx +8 -2
- package/src/components/features/scripts/scripts-table.tsx +28 -7
- package/src/components/features/select-button.tsx +7 -15
- package/src/components/features/status-filter-component.tsx +1 -1
- package/src/components/features/tags-selector.tsx +5 -4
- package/src/components/features/ticket-status-config-list/ticket-status-config-list.tsx +52 -5
- package/src/components/features/video-bites-strip.tsx +4 -9
- package/src/components/features/video-hover-preview.tsx +37 -46
- package/src/components/features/video-shared.tsx +3 -0
- package/src/components/features/video-source-selector.tsx +6 -4
- package/src/components/features/video.tsx +7 -65
- package/src/components/features/walkthrough-video.tsx +1 -1
- package/src/components/filter-chip.tsx +6 -16
- package/src/components/help-center-pages/download-apps-page.tsx +21 -13
- package/src/components/help-center-pages/index.ts +1 -1
- package/src/components/help-center-pages/trust-center-page.tsx +5 -25
- package/src/components/help-center-pages/trust-center-sections.tsx +14 -11
- package/src/components/index.ts +1 -9
- package/src/components/interactive-wrapper.tsx +0 -21
- package/src/components/layout/back-button.tsx +15 -18
- package/src/components/layout/list-page-layout.tsx +4 -3
- package/src/components/layout/page-container.tsx +2 -2
- package/src/components/layout/page-heading.tsx +26 -2
- package/src/components/loading/index.ts +4 -34
- package/src/components/loading/loading-fallback.tsx +81 -0
- package/src/components/loading/loading-region.tsx +2 -6
- package/src/components/log-severity-dot.tsx +7 -2
- package/src/components/logs-list.tsx +6 -8
- package/src/components/meeting-scheduler/booking-form.tsx +5 -5
- package/src/components/meeting-scheduler/context-panel.tsx +13 -47
- package/src/components/meeting-scheduler/directory.tsx +6 -7
- package/src/components/meeting-scheduler/host-identity.tsx +68 -0
- package/src/components/meeting-scheduler/index.tsx +5 -9
- package/src/components/meeting-scheduler/modal-header.tsx +8 -50
- package/src/components/meeting-scheduler/slot-picker.tsx +13 -16
- package/src/components/metric-value.tsx +1 -1
- package/src/components/msp-display.tsx +3 -3
- package/src/components/navigation/app-header.tsx +4 -2
- package/src/components/navigation/header-button.tsx +6 -10
- package/src/components/navigation/header-mingo-button.tsx +5 -9
- package/src/components/navigation/header-organization-filter.tsx +3 -11
- package/src/components/navigation/mobile-burger-menu.tsx +7 -24
- package/src/components/navigation/multi-level-navigation.tsx +33 -44
- package/src/components/navigation/nav-panel.tsx +74 -14
- package/src/components/navigation/navigation-sidebar-item.tsx +47 -50
- package/src/components/navigation/navigation-sidebar-toggle.tsx +6 -9
- package/src/components/navigation/navigation-sidebar.tsx +7 -3
- package/src/components/navigation/sticky-section-nav.tsx +12 -16
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +3 -11
- package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +52 -18
- package/src/components/pagination.tsx +1 -10
- package/src/components/platform/ToolBadge.tsx +2 -2
- package/src/components/platform/index.ts +2 -2
- package/src/components/product-demo/product-screen.tsx +36 -16
- package/src/components/product-demo/screen-loading.tsx +2 -6
- package/src/components/related-content/card-registry.tsx +23 -35
- package/src/components/related-content/index.ts +0 -2
- package/src/components/related-content/related-content-section.tsx +2 -2
- package/src/components/results-count.tsx +1 -1
- package/src/components/shared/article-author-byline.tsx +1 -1
- package/src/components/shared/delivery/delivery-row.tsx +14 -9
- package/src/components/shared/delivery/delivery-table.tsx +14 -11
- package/src/components/shared/dev-section/dev-card-row.tsx +22 -59
- package/src/components/shared/dev-section/index.ts +1 -6
- package/src/components/shared/legal-document/index.ts +0 -1
- package/src/components/shared/legal-document/legal-document-page.tsx +4 -4
- package/src/components/shared/media-gallery-strip.tsx +28 -20
- package/src/components/shared/onboarding/onboarding-walkthrough.tsx +4 -1
- package/src/components/shared/product-release/index.ts +0 -1
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +4 -4
- package/src/components/shared/product-release/product-release-card.tsx +16 -8
- package/src/components/shared/product-release/product-releases-view.tsx +27 -22
- package/src/components/shared/product-release/release-detail-page.tsx +3 -11
- package/src/components/shared/roadmap/index.ts +0 -1
- package/src/components/shared/roadmap/roadmap-grid.tsx +56 -7
- package/src/components/shared/roadmap/roadmap-view.tsx +5 -3
- package/src/components/smooth-accordion.tsx +0 -2
- package/src/components/social-icon-row.tsx +9 -0
- package/src/components/tickets/help-center-card.tsx +62 -14
- package/src/components/tickets/help-center-create-form.tsx +29 -112
- package/src/components/tickets/help-center-list.tsx +26 -24
- package/src/components/tickets/index.ts +1 -5
- package/src/components/tickets/ticket-center.tsx +16 -27
- package/src/components/tickets/ticket-detail-drawer.tsx +8 -5
- package/src/components/tickets/ticket-open-form.tsx +5 -4
- package/src/components/tickets/ticket-row.tsx +42 -5
- package/src/components/ui/actions-menu.tsx +45 -44
- package/src/components/ui/allowed-domains-input.tsx +7 -8
- package/src/components/ui/assignee-dropdown.tsx +26 -24
- package/src/components/ui/autocomplete.tsx +26 -25
- package/src/components/ui/avatar-stack.tsx +24 -15
- package/src/components/ui/badge.tsx +9 -3
- package/src/components/ui/breadcrumb.tsx +8 -1
- package/src/components/ui/button/button-styles.ts +79 -0
- package/src/components/ui/button/button.tsx +36 -2
- package/src/components/ui/button/index.ts +1 -1
- package/src/components/ui/button/split-button.tsx +21 -102
- package/src/components/ui/checkbox-block.tsx +118 -88
- package/src/components/ui/checkbox-with-description.tsx +39 -33
- package/src/components/ui/checkbox.tsx +34 -16
- package/src/components/ui/chevron-button.tsx +16 -23
- package/src/components/ui/color-preset-select.tsx +34 -11
- package/src/components/ui/color-swatch.tsx +9 -8
- package/src/components/ui/content-loader.tsx +42 -29
- package/src/components/ui/cursor-pagination.tsx +10 -24
- package/src/components/ui/dashboard-info-card.tsx +35 -16
- package/src/components/ui/data-attribution.tsx +1 -1
- package/src/components/ui/data-table/data-table-body.tsx +62 -15
- package/src/components/ui/data-table/data-table-cursor-footer.tsx +1 -1
- package/src/components/ui/data-table/data-table-header.tsx +13 -1
- package/src/components/ui/data-table/data-table-infinite-footer.tsx +10 -5
- package/src/components/ui/data-table/data-table-reserved-rows.tsx +111 -0
- package/src/components/ui/data-table/data-table-row-classes.ts +48 -0
- package/src/components/ui/data-table/data-table-row-count.tsx +5 -2
- package/src/components/ui/data-table/data-table-row.tsx +136 -10
- package/src/components/ui/data-table/index.ts +10 -9
- package/src/components/ui/data-table/types.ts +14 -0
- package/src/components/ui/data-table/utils.ts +12 -0
- package/src/components/ui/date-picker.tsx +23 -55
- package/src/components/ui/device-card.tsx +99 -43
- package/src/components/ui/entity-image.tsx +1 -4
- package/src/components/ui/feature-card.tsx +15 -8
- package/src/components/ui/feature-list.tsx +3 -3
- package/src/components/ui/field-value-skeleton.tsx +11 -0
- package/src/components/ui/file-manager/file-manager-breadcrumb.tsx +9 -7
- package/src/components/ui/file-manager/file-manager-table-row.tsx +126 -32
- package/src/components/ui/file-manager/file-manager-table.tsx +69 -96
- package/src/components/ui/file-manager/file-manager.tsx +19 -5
- package/src/components/ui/file-manager/index.ts +0 -1
- package/src/components/ui/file-manager/types.ts +12 -1
- package/src/components/ui/file-upload.tsx +40 -29
- package/src/components/ui/filter-checkbox-item.tsx +9 -3
- package/src/components/ui/filter-modal.tsx +66 -51
- package/src/components/ui/filter-pill-row.tsx +5 -2
- package/src/components/ui/hidden-tags-popup.tsx +7 -4
- package/src/components/ui/hover-dropdown.tsx +9 -5
- package/src/components/ui/image-uploader.tsx +8 -13
- package/src/components/ui/index.ts +4 -31
- package/src/components/ui/info-card-row.tsx +1 -1
- package/src/components/ui/info-card.tsx +193 -134
- package/src/components/ui/info-section.tsx +61 -24
- package/src/components/ui/input-styles.ts +3 -0
- package/src/components/ui/input-trigger.tsx +26 -26
- package/src/components/ui/input.tsx +24 -6
- package/src/components/ui/label.tsx +13 -8
- package/src/components/ui/leader-row.tsx +61 -46
- package/src/components/ui/loading-scope.tsx +147 -4
- package/src/components/ui/markdown/engine.tsx +21 -12
- package/src/components/ui/markdown/index.ts +1 -5
- package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +1 -18
- package/src/components/ui/modal-v2.tsx +8 -4
- package/src/components/ui/numbered-step.tsx +18 -1
- package/src/components/ui/organization-card.tsx +115 -32
- package/src/components/ui/page-actions.tsx +82 -127
- package/src/components/ui/password-input.tsx +6 -4
- package/src/components/ui/people-cell.tsx +8 -5
- package/src/components/ui/product-screen-frame.tsx +20 -10
- package/src/components/ui/progress-bar.tsx +12 -2
- package/src/components/ui/query-report-table/index.ts +0 -2
- package/src/components/ui/query-report-table/query-report-table-header.tsx +3 -2
- package/src/components/ui/query-report-table/query-report-table-row.tsx +31 -12
- package/src/components/ui/query-report-table/query-report-table-skeleton.tsx +41 -34
- package/src/components/ui/query-report-table/query-report-table.tsx +42 -26
- package/src/components/ui/query-report-table/types.ts +5 -1
- package/src/components/ui/radio-group.tsx +111 -50
- package/src/components/ui/release-changelog-section.tsx +23 -24
- package/src/components/ui/search-input.tsx +19 -18
- package/src/components/ui/searchable-select.tsx +36 -39
- package/src/components/ui/select.tsx +6 -1
- package/src/components/ui/service-card.tsx +118 -55
- package/src/components/ui/slack-channel-chip.tsx +1 -1
- package/src/components/ui/snap-carousel.tsx +146 -61
- package/src/components/ui/square-avatar.tsx +25 -6
- package/src/components/ui/stacked-rows-panel.tsx +94 -70
- package/src/components/ui/status-badge.tsx +21 -3
- package/src/components/ui/status-indicator.tsx +1 -1
- package/src/components/ui/strip-card.tsx +1 -1
- package/src/components/ui/super-user-banner-view.tsx +18 -2
- package/src/components/ui/switch.tsx +25 -13
- package/src/components/ui/tab-navigation.tsx +63 -55
- package/src/components/ui/tab-selector.tsx +10 -20
- package/src/components/ui/tabs.tsx +1 -30
- package/src/components/ui/tag-search-input.tsx +11 -12
- package/src/components/ui/tag-select-dropdown.tsx +9 -17
- package/src/components/ui/tag.tsx +32 -10
- package/src/components/ui/tags-input.tsx +19 -11
- package/src/components/ui/tags-manager.tsx +10 -5
- package/src/components/ui/test-run.tsx +40 -28
- package/src/components/ui/textarea.tsx +27 -20
- package/src/components/ui/ticket-attachments-list.tsx +13 -8
- package/src/components/ui/ticket-info-section.tsx +15 -17
- package/src/components/ui/ticket-note-card.tsx +23 -16
- package/src/components/ui/ticket-notes-section.tsx +7 -9
- package/src/components/ui/ticket-status-config-row.tsx +65 -34
- package/src/components/ui/ticket-status-tag.tsx +35 -22
- package/src/components/ui/timezone-select.tsx +6 -2
- package/src/components/ui/toaster.tsx +19 -17
- package/src/components/ui/truncate-text.tsx +12 -0
- package/src/components/user-display.tsx +4 -4
- package/src/components/vendor-display-button.tsx +12 -17
- package/src/components/vendor-icon.tsx +25 -7
- package/src/components/vendor-tag.tsx +5 -1
- package/src/loading-standard/engine.mjs +3124 -0
- package/src/loading-standard/rule-examples.mjs +580 -0
- package/src/styles/index.css +1 -0
- package/src/styles/product-screen-frame.css +33 -0
- package/src/types/logs.types.ts +3 -3
- package/src/types/permissions.ts +10 -0
- package/dist/chunk-65VVJSQZ.cjs +0 -109
- package/dist/chunk-C42WIUH6.cjs +0 -42
- package/dist/chunk-OJLZ7PGO.cjs +0 -697
- package/dist/components/chat/chat-header-icon-button.d.ts +0 -18
- package/dist/components/chat/chat-header-icon-button.d.ts.map +0 -1
- package/dist/components/chat/chat-header-icon-button.js +0 -27
- package/dist/components/chat/chat-sidebar-skeleton.d.ts +0 -12
- package/dist/components/chat/chat-sidebar-skeleton.d.ts.map +0 -1
- package/dist/components/chat/chat-sidebar-skeleton.js +0 -63
- package/dist/components/chat/mingo-onboarding-card-skeleton.d.ts +0 -45
- package/dist/components/chat/mingo-onboarding-card-skeleton.d.ts.map +0 -1
- package/dist/components/chat/mingo-onboarding-card-skeleton.js +0 -70
- package/dist/components/chat/msp-organization-card-skeleton.d.ts +0 -12
- package/dist/components/chat/msp-organization-card-skeleton.d.ts.map +0 -1
- package/dist/components/chat/msp-organization-card-skeleton.js +0 -26
- package/dist/components/features/board/ticket-card-skeleton.d.ts +0 -5
- package/dist/components/features/board/ticket-card-skeleton.d.ts.map +0 -1
- package/dist/components/features/board/ticket-card-skeleton.js +0 -41
- package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts +0 -28
- package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts.map +0 -1
- package/dist/components/features/devices/device-selector/device-selector-skeleton.js +0 -10
- package/dist/components/loading/card-skeleton.d.ts +0 -41
- package/dist/components/loading/card-skeleton.d.ts.map +0 -1
- package/dist/components/loading/card-skeleton.js +0 -141
- package/dist/components/loading/category-card-skeleton.d.ts +0 -6
- package/dist/components/loading/category-card-skeleton.d.ts.map +0 -1
- package/dist/components/loading/category-card-skeleton.js +0 -27
- package/dist/components/loading/category-vendor-selector-skeleton.d.ts +0 -13
- package/dist/components/loading/category-vendor-selector-skeleton.d.ts.map +0 -1
- package/dist/components/loading/category-vendor-selector-skeleton.js +0 -32
- package/dist/components/loading/deprecated-layout-skeletons.d.ts +0 -25
- package/dist/components/loading/deprecated-layout-skeletons.d.ts.map +0 -1
- package/dist/components/loading/deprecated-layout-skeletons.js +0 -78
- package/dist/components/loading/device-card-skeleton.d.ts +0 -40
- package/dist/components/loading/device-card-skeleton.d.ts.map +0 -1
- package/dist/components/loading/device-card-skeleton.js +0 -54
- package/dist/components/loading/margin-report-skeleton.d.ts +0 -14
- package/dist/components/loading/margin-report-skeleton.d.ts.map +0 -1
- package/dist/components/loading/margin-report-skeleton.js +0 -99
- package/dist/components/loading/msp-profile-form-skeleton.d.ts +0 -28
- package/dist/components/loading/msp-profile-form-skeleton.d.ts.map +0 -1
- package/dist/components/loading/msp-profile-form-skeleton.js +0 -28
- package/dist/components/loading/organization-card-skeleton.d.ts +0 -51
- package/dist/components/loading/organization-card-skeleton.d.ts.map +0 -1
- package/dist/components/loading/organization-card-skeleton.js +0 -88
- package/dist/components/loading/organization-icon-skeleton.d.ts +0 -49
- package/dist/components/loading/organization-icon-skeleton.d.ts.map +0 -1
- package/dist/components/loading/organization-icon-skeleton.js +0 -35
- package/dist/components/loading/page-layout-skeleton.d.ts +0 -45
- package/dist/components/loading/page-layout-skeleton.d.ts.map +0 -1
- package/dist/components/loading/page-layout-skeleton.js +0 -124
- package/dist/components/loading/settings-form-skeleton.d.ts +0 -19
- package/dist/components/loading/settings-form-skeleton.d.ts.map +0 -1
- package/dist/components/loading/settings-form-skeleton.js +0 -42
- package/dist/components/loading/wizard-layout-skeleton.d.ts +0 -9
- package/dist/components/loading/wizard-layout-skeleton.d.ts.map +0 -1
- package/dist/components/loading/wizard-layout-skeleton.js +0 -21
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +0 -21
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +0 -1
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.js +0 -35
- package/dist/components/profile/ProfileLoadingSkeleton.d.ts +0 -8
- package/dist/components/profile/ProfileLoadingSkeleton.d.ts.map +0 -1
- package/dist/components/profile/ProfileLoadingSkeleton.js +0 -24
- package/dist/components/shared/detail-page-skeleton.d.ts +0 -18
- package/dist/components/shared/detail-page-skeleton.d.ts.map +0 -1
- package/dist/components/shared/detail-page-skeleton.js +0 -68
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +0 -30
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +0 -1
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.js +0 -21
- package/dist/components/ui/data-table/data-table-skeleton.d.ts +0 -74
- package/dist/components/ui/data-table/data-table-skeleton.d.ts.map +0 -1
- package/dist/components/ui/data-table/data-table-skeleton.js +0 -150
- package/dist/components/ui/file-manager/file-manager-skeleton.d.ts +0 -10
- package/dist/components/ui/file-manager/file-manager-skeleton.d.ts.map +0 -1
- package/dist/components/ui/file-manager/file-manager-skeleton.js +0 -55
- package/dist/components/ui/table/index.d.ts +0 -17
- package/dist/components/ui/table/index.d.ts.map +0 -1
- package/dist/components/ui/table/index.js +0 -25
- package/dist/components/ui/table/table-cell.d.ts +0 -4
- package/dist/components/ui/table/table-cell.d.ts.map +0 -1
- package/dist/components/ui/table/table-cell.js +0 -19
- package/dist/components/ui/table/table-column-filter-dropdown.d.ts +0 -21
- package/dist/components/ui/table/table-column-filter-dropdown.d.ts.map +0 -1
- package/dist/components/ui/table/table-column-filter-dropdown.js +0 -63
- package/dist/components/ui/table/table-description-cell.d.ts +0 -21
- package/dist/components/ui/table/table-description-cell.d.ts.map +0 -1
- package/dist/components/ui/table/table-description-cell.js +0 -24
- package/dist/components/ui/table/table-empty-state.d.ts +0 -4
- package/dist/components/ui/table/table-empty-state.d.ts.map +0 -1
- package/dist/components/ui/table/table-empty-state.js +0 -22
- package/dist/components/ui/table/table-header.d.ts +0 -4
- package/dist/components/ui/table/table-header.d.ts.map +0 -1
- package/dist/components/ui/table/table-header.js +0 -158
- package/dist/components/ui/table/table-row.d.ts +0 -5
- package/dist/components/ui/table/table-row.d.ts.map +0 -1
- package/dist/components/ui/table/table-row.js +0 -112
- package/dist/components/ui/table/table-skeleton.d.ts +0 -22
- package/dist/components/ui/table/table-skeleton.d.ts.map +0 -1
- package/dist/components/ui/table/table-skeleton.js +0 -64
- package/dist/components/ui/table/table-timestamp-cell.d.ts +0 -28
- package/dist/components/ui/table/table-timestamp-cell.d.ts.map +0 -1
- package/dist/components/ui/table/table-timestamp-cell.js +0 -36
- package/dist/components/ui/table/table.d.ts +0 -4
- package/dist/components/ui/table/table.d.ts.map +0 -1
- package/dist/components/ui/table/table.js +0 -326
- package/dist/components/ui/table/types.d.ts +0 -289
- package/dist/components/ui/table/types.d.ts.map +0 -1
- package/dist/components/ui/table/types.js +0 -1
- package/dist/components/ui/table/use-table-motion.d.ts +0 -24
- package/dist/components/ui/table/use-table-motion.d.ts.map +0 -1
- package/dist/components/ui/table/use-table-motion.js +0 -20
- package/dist/components/ui/table/utils.d.ts +0 -10
- package/dist/components/ui/table/utils.d.ts.map +0 -1
- package/dist/components/ui/table/utils.js +0 -34
- package/src/components/chat/chat-header-icon-button.tsx +0 -41
- package/src/components/chat/chat-sidebar-skeleton.tsx +0 -89
- package/src/components/chat/mingo-onboarding-card-skeleton.tsx +0 -146
- package/src/components/chat/msp-organization-card-skeleton.tsx +0 -33
- package/src/components/features/board/ticket-card-skeleton.tsx +0 -41
- package/src/components/features/devices/device-selector/device-selector-skeleton.tsx +0 -38
- package/src/components/loading/card-skeleton.tsx +0 -259
- package/src/components/loading/category-card-skeleton.tsx +0 -36
- package/src/components/loading/category-vendor-selector-skeleton.tsx +0 -51
- package/src/components/loading/deprecated-layout-skeletons.tsx +0 -133
- package/src/components/loading/device-card-skeleton.tsx +0 -100
- package/src/components/loading/margin-report-skeleton.tsx +0 -153
- package/src/components/loading/msp-profile-form-skeleton.tsx +0 -59
- package/src/components/loading/organization-card-skeleton.tsx +0 -130
- package/src/components/loading/organization-icon-skeleton.tsx +0 -95
- package/src/components/loading/page-layout-skeleton.tsx +0 -192
- package/src/components/loading/settings-form-skeleton.tsx +0 -55
- package/src/components/loading/wizard-layout-skeleton.tsx +0 -35
- package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +0 -48
- package/src/components/profile/ProfileLoadingSkeleton.tsx +0 -31
- package/src/components/shared/detail-page-skeleton.tsx +0 -105
- package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +0 -54
- package/src/components/ui/data-table/data-table-skeleton.tsx +0 -229
- package/src/components/ui/file-manager/file-manager-skeleton.tsx +0 -110
- package/src/components/ui/table/index.ts +0 -34
- package/src/components/ui/table/table-cell.tsx +0 -28
- package/src/components/ui/table/table-column-filter-dropdown.tsx +0 -76
- package/src/components/ui/table/table-description-cell.tsx +0 -46
- package/src/components/ui/table/table-empty-state.tsx +0 -24
- package/src/components/ui/table/table-header.tsx +0 -182
- package/src/components/ui/table/table-row.tsx +0 -133
- package/src/components/ui/table/table-skeleton.tsx +0 -102
- package/src/components/ui/table/table-timestamp-cell.tsx +0 -81
- package/src/components/ui/table/table.tsx +0 -410
- package/src/components/ui/table/types.ts +0 -335
- package/src/components/ui/table/use-table-motion.ts +0 -48
- package/src/components/ui/table/utils.ts +0 -55
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var _chunkR3JX4MXDcjs = require('./chunk-R3JX4MXD.cjs');
|
|
7
6
|
|
|
8
7
|
|
|
9
8
|
|
|
@@ -12,10 +11,8 @@ var _chunkR3JX4MXDcjs = require('./chunk-R3JX4MXD.cjs');
|
|
|
12
11
|
|
|
13
12
|
|
|
14
13
|
|
|
15
|
-
var _chunkSETFUCZAcjs = require('./chunk-SETFUCZA.cjs');
|
|
16
14
|
|
|
17
15
|
|
|
18
|
-
var _chunkVFUMM6JCcjs = require('./chunk-VFUMM6JC.cjs');
|
|
19
16
|
|
|
20
17
|
|
|
21
18
|
|
|
@@ -27,41 +24,50 @@ var _chunkVFUMM6JCcjs = require('./chunk-VFUMM6JC.cjs');
|
|
|
27
24
|
|
|
28
25
|
|
|
29
26
|
|
|
27
|
+
var _chunkJQWYXC2Ecjs = require('./chunk-JQWYXC2E.cjs');
|
|
30
28
|
|
|
31
29
|
|
|
32
|
-
var
|
|
30
|
+
var _chunkHTSRCFXPcjs = require('./chunk-HTSRCFXP.cjs');
|
|
33
31
|
|
|
34
32
|
|
|
35
|
-
var
|
|
33
|
+
var _chunkRYIWADIBcjs = require('./chunk-RYIWADIB.cjs');
|
|
36
34
|
|
|
37
35
|
|
|
38
|
-
var _chunkOOYBIS7Dcjs = require('./chunk-OOYBIS7D.cjs');
|
|
39
36
|
|
|
40
37
|
|
|
41
|
-
var _chunk6VOOPMP5cjs = require('./chunk-6VOOPMP5.cjs');
|
|
42
38
|
|
|
43
39
|
|
|
44
|
-
var _chunkORO54HDFcjs = require('./chunk-ORO54HDF.cjs');
|
|
45
40
|
|
|
46
41
|
|
|
47
42
|
|
|
48
|
-
var _chunk3LW5TD54cjs = require('./chunk-3LW5TD54.cjs');
|
|
49
43
|
|
|
50
44
|
|
|
45
|
+
var _chunkAFJEUBDScjs = require('./chunk-AFJEUBDS.cjs');
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
var _chunk32ASZMTVcjs = require('./chunk-32ASZMTV.cjs');
|
|
49
|
+
|
|
51
50
|
|
|
52
|
-
var
|
|
51
|
+
var _chunkOOYBIS7Dcjs = require('./chunk-OOYBIS7D.cjs');
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
var _chunk6VOOPMP5cjs = require('./chunk-6VOOPMP5.cjs');
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
var _chunkORO54HDFcjs = require('./chunk-ORO54HDF.cjs');
|
|
53
58
|
|
|
54
59
|
|
|
55
|
-
var
|
|
60
|
+
var _chunkDJTPDK3Wcjs = require('./chunk-DJTPDK3W.cjs');
|
|
56
61
|
|
|
57
62
|
|
|
63
|
+
var _chunkAQXKXZWBcjs = require('./chunk-AQXKXZWB.cjs');
|
|
58
64
|
|
|
59
65
|
|
|
60
|
-
var _chunk5P4TDV7Vcjs = require('./chunk-5P4TDV7V.cjs');
|
|
61
66
|
|
|
67
|
+
var _chunkIYU2ZH2Jcjs = require('./chunk-IYU2ZH2J.cjs');
|
|
62
68
|
|
|
63
69
|
|
|
64
|
-
var
|
|
70
|
+
var _chunk3VINTJPEcjs = require('./chunk-3VINTJPE.cjs');
|
|
65
71
|
|
|
66
72
|
|
|
67
73
|
var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
|
|
@@ -74,73 +80,92 @@ var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
|
|
|
74
80
|
|
|
75
81
|
|
|
76
82
|
|
|
83
|
+
var _chunkYNDH72VUcjs = require('./chunk-YNDH72VU.cjs');
|
|
77
84
|
|
|
78
85
|
|
|
79
|
-
var
|
|
86
|
+
var _chunkCDBFQVPAcjs = require('./chunk-CDBFQVPA.cjs');
|
|
80
87
|
|
|
81
88
|
|
|
82
|
-
var _chunkTF5D5MNOcjs = require('./chunk-TF5D5MNO.cjs');
|
|
83
89
|
|
|
84
90
|
|
|
85
|
-
var
|
|
91
|
+
var _chunkN6YCOBLKcjs = require('./chunk-N6YCOBLK.cjs');
|
|
86
92
|
|
|
87
93
|
|
|
88
|
-
var
|
|
94
|
+
var _chunkV45KLJQPcjs = require('./chunk-V45KLJQP.cjs');
|
|
89
95
|
|
|
90
|
-
// src/components/ui/card.tsx
|
|
91
|
-
var _react = require('react');
|
|
96
|
+
// src/components/ui/interactive-card.tsx
|
|
97
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
92
98
|
var _jsxruntime = require('react/jsx-runtime');
|
|
93
|
-
var
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
99
|
+
var InteractiveCard = _react2.default.forwardRef(
|
|
100
|
+
({ children, onClick, clickable, hoverAccentColor, className, ...props }, ref) => {
|
|
101
|
+
const isClickable = clickable !== void 0 ? clickable : !!onClick;
|
|
102
|
+
const handleClick = (e) => {
|
|
103
|
+
if (isClickable && onClick) {
|
|
104
|
+
onClick(e);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const handleMouseEnter = (e) => {
|
|
108
|
+
if (hoverAccentColor && isClickable) {
|
|
109
|
+
const card = e.currentTarget;
|
|
110
|
+
card.style.borderColor = hoverAccentColor;
|
|
111
|
+
const title = card.querySelector("h3");
|
|
112
|
+
if (title) {
|
|
113
|
+
title.style.color = hoverAccentColor;
|
|
114
|
+
}
|
|
115
|
+
const primaryTexts = card.querySelectorAll(".text-ods-text-primary:not(button):not(button *)");
|
|
116
|
+
for (const text of primaryTexts) {
|
|
117
|
+
text.style.color = hoverAccentColor;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
const handleMouseLeave = (e) => {
|
|
122
|
+
if (hoverAccentColor && isClickable) {
|
|
123
|
+
const card = e.currentTarget;
|
|
124
|
+
card.style.borderColor = "";
|
|
125
|
+
const title = card.querySelector("h3");
|
|
126
|
+
if (title) {
|
|
127
|
+
title.style.color = "";
|
|
128
|
+
}
|
|
129
|
+
const primaryTexts = card.querySelectorAll(".text-ods-text-primary:not(button):not(button *)");
|
|
130
|
+
for (const text of primaryTexts) {
|
|
131
|
+
text.style.color = "";
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
136
|
+
"div",
|
|
137
|
+
{
|
|
138
|
+
ref,
|
|
139
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
140
|
+
"transition-all",
|
|
141
|
+
isClickable && [
|
|
142
|
+
"cursor-pointer",
|
|
143
|
+
"group",
|
|
144
|
+
!hoverAccentColor && [
|
|
145
|
+
"hover:border-ods-accent",
|
|
146
|
+
// H3 titles turn accent on hover
|
|
147
|
+
"[&:hover_h3]:text-ods-accent",
|
|
148
|
+
// Primary text turns accent on hover (but not inside buttons)
|
|
149
|
+
"[&:hover_.text-ods-text-primary:not(button):not(button_*)]:text-ods-accent"
|
|
150
|
+
]
|
|
151
|
+
],
|
|
152
|
+
className
|
|
153
|
+
),
|
|
154
|
+
onClick: handleClick,
|
|
155
|
+
onMouseEnter: handleMouseEnter,
|
|
156
|
+
onMouseLeave: handleMouseLeave,
|
|
157
|
+
style: hoverAccentColor ? (
|
|
158
|
+
// A CSS custom property — React accepts it at runtime but
|
|
159
|
+
// `CSSProperties` has no index signature for `--*`.
|
|
160
|
+
{ "--hover-accent": hoverAccentColor }
|
|
161
|
+
) : void 0,
|
|
162
|
+
...props,
|
|
163
|
+
children
|
|
164
|
+
}
|
|
165
|
+
);
|
|
166
|
+
}
|
|
113
167
|
);
|
|
114
|
-
|
|
115
|
-
var CardHeader = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "flex flex-col space-y-1.5 p-6", className), ...props }));
|
|
116
|
-
CardHeader.displayName = "CardHeader";
|
|
117
|
-
var CardTitle = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "text-h2", className), ...props }));
|
|
118
|
-
CardTitle.displayName = "CardTitle";
|
|
119
|
-
var CardDescription = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "text-muted-foreground text-h6", className), ...props }));
|
|
120
|
-
CardDescription.displayName = "CardDescription";
|
|
121
|
-
var CardContent = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "p-6 pt-0", className), ...props }));
|
|
122
|
-
CardContent.displayName = "CardContent";
|
|
123
|
-
var CardFooter = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "flex items-center p-6 pt-0", className), ...props }));
|
|
124
|
-
CardFooter.displayName = "CardFooter";
|
|
125
|
-
function CardHorizontal({ icon, title, description, className = "", borderLeft = true }) {
|
|
126
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
127
|
-
"div",
|
|
128
|
-
{
|
|
129
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
130
|
-
"flex min-h-[80px] w-full flex-row items-center gap-3 bg-ods-card p-4 content-md:gap-4 content-md:p-6",
|
|
131
|
-
borderLeft ? "border-l border-ods-border" : "",
|
|
132
|
-
className
|
|
133
|
-
),
|
|
134
|
-
children: [
|
|
135
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-5 flex-shrink-0", children: icon }),
|
|
136
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col", children: [
|
|
137
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mb-0.5 text-left text-ods-text-primary text-h6", children: title }),
|
|
138
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-left text-ods-text-secondary text-h6", children: description })
|
|
139
|
-
] })
|
|
140
|
-
]
|
|
141
|
-
}
|
|
142
|
-
);
|
|
143
|
-
}
|
|
168
|
+
InteractiveCard.displayName = "InteractiveCard";
|
|
144
169
|
|
|
145
170
|
// src/components/ui/modal.tsx
|
|
146
171
|
var _overlays = require('@react-aria/overlays');
|
|
@@ -165,25 +190,25 @@ var Modal = _react.forwardRef.call(void 0, ({ isOpen, onClose, children, classNa
|
|
|
165
190
|
"div",
|
|
166
191
|
{
|
|
167
192
|
ref,
|
|
168
|
-
className:
|
|
193
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
169
194
|
"relative z-10 mx-4 flex max-h-[90vh] w-full max-w-md flex-col overflow-hidden rounded-lg border border-ods-border bg-ods-card shadow-xl",
|
|
170
195
|
className
|
|
171
196
|
),
|
|
172
197
|
role: "dialog",
|
|
173
198
|
"aria-modal": "true",
|
|
174
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
199
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAQXKXZWBcjs.ViewportBreakpoints, { children })
|
|
175
200
|
}
|
|
176
201
|
)
|
|
177
202
|
] });
|
|
178
203
|
});
|
|
179
204
|
Modal.displayName = "Modal";
|
|
180
|
-
var ModalContent = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
205
|
+
var ModalContent = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunkN6YCOBLKcjs.cn.call(void 0, "min-h-0 flex-1 overflow-y-auto", className), children }));
|
|
181
206
|
ModalContent.displayName = "ModalContent";
|
|
182
|
-
var ModalHeader = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
207
|
+
var ModalHeader = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunkN6YCOBLKcjs.cn.call(void 0, "shrink-0 border-b border-ods-border px-6 py-4", className), children }));
|
|
183
208
|
ModalHeader.displayName = "ModalHeader";
|
|
184
|
-
var ModalTitle = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { ref, className:
|
|
209
|
+
var ModalTitle = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { ref, className: _chunkN6YCOBLKcjs.cn.call(void 0, "font-semibold text-ods-text-primary", className), children }));
|
|
185
210
|
ModalTitle.displayName = "ModalTitle";
|
|
186
|
-
var ModalFooter = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
211
|
+
var ModalFooter = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunkN6YCOBLKcjs.cn.call(void 0, "flex shrink-0 justify-end gap-3 px-6 py-4", className), children }));
|
|
187
212
|
ModalFooter.displayName = "ModalFooter";
|
|
188
213
|
|
|
189
214
|
// src/components/ui/image-gallery-modal.tsx
|
|
@@ -236,7 +261,7 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
|
|
|
236
261
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Modal, { isOpen, onClose, className: "max-w-[95vw]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex items-center justify-center rounded-lg bg-black", children: [
|
|
237
262
|
images.length > 1 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
238
263
|
selectedImageIndex > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute left-4 top-1/2 z-[10000] -translate-y-1/2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
239
|
-
|
|
264
|
+
_chunkCDBFQVPAcjs.Button,
|
|
240
265
|
{
|
|
241
266
|
variant: "transparent",
|
|
242
267
|
size: "small-legacy",
|
|
@@ -246,7 +271,7 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
|
|
|
246
271
|
}
|
|
247
272
|
) }),
|
|
248
273
|
selectedImageIndex < images.length - 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute right-4 top-1/2 z-[10000] -translate-y-1/2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
249
|
-
|
|
274
|
+
_chunkCDBFQVPAcjs.Button,
|
|
250
275
|
{
|
|
251
276
|
variant: "transparent",
|
|
252
277
|
size: "small-legacy",
|
|
@@ -257,7 +282,7 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
|
|
|
257
282
|
) })
|
|
258
283
|
] }),
|
|
259
284
|
images[selectedImageIndex] && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative flex h-[90vh] w-[90vw] max-w-none items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
260
|
-
|
|
285
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
261
286
|
{
|
|
262
287
|
src: images[selectedImageIndex],
|
|
263
288
|
alt: `Screenshot ${selectedImageIndex + 1}`,
|
|
@@ -294,597 +319,12 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
|
|
|
294
319
|
] }) });
|
|
295
320
|
}
|
|
296
321
|
|
|
297
|
-
// src/components/features/video.tsx
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
var filePlayer = null;
|
|
310
|
-
var filePlayerLoad = null;
|
|
311
|
-
var filePlayerListeners = /* @__PURE__ */ new Set();
|
|
312
|
-
function loadFilePlayer() {
|
|
313
|
-
if (filePlayer || filePlayerLoad) return;
|
|
314
|
-
filePlayerLoad = Promise.resolve().then(() => _interopRequireWildcard(require("./video-file-player-6ZFOZFER.cjs"))).then((module) => {
|
|
315
|
-
filePlayer = module.default;
|
|
316
|
-
for (const listener of filePlayerListeners) listener();
|
|
317
|
-
}).catch(() => void 0).finally(() => {
|
|
318
|
-
filePlayerLoad = null;
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
function subscribeToFilePlayer(listener) {
|
|
322
|
-
filePlayerListeners.add(listener);
|
|
323
|
-
loadFilePlayer();
|
|
324
|
-
return () => {
|
|
325
|
-
filePlayerListeners.delete(listener);
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
var loadedFilePlayer = () => filePlayer;
|
|
329
|
-
var noFilePlayer = () => null;
|
|
330
|
-
var PosterBox = _react.forwardRef.call(void 0, function PosterBoxView({ poster, className, priority, fill }, ref) {
|
|
331
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
332
|
-
"div",
|
|
333
|
-
{
|
|
334
|
-
ref,
|
|
335
|
-
"aria-hidden": "true",
|
|
336
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, "relative overflow-hidden", className),
|
|
337
|
-
style: fill ? { width: "100%", height: "100%" } : void 0,
|
|
338
|
-
children: poster ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE76ONBKFcjs.next_image_default, { src: poster, alt: "", fill: true, sizes: "100vw", priority, unoptimized: true, className: "object-cover" }) : null
|
|
339
|
-
}
|
|
340
|
-
);
|
|
341
|
-
});
|
|
342
|
-
function FilePlayerFallback({
|
|
343
|
-
poster,
|
|
344
|
-
className,
|
|
345
|
-
priority
|
|
346
|
-
}) {
|
|
347
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PosterBox, { poster, className, priority, fill: true });
|
|
348
|
-
}
|
|
349
|
-
function waitsForPlay(props) {
|
|
350
|
-
return !props.autoPlay && !props.autoPlayUnmuted && !props.playOnHover && props.playWhenHovered === void 0 && props.startTime === void 0 && !props.playerHandleRef && !props.chromeless;
|
|
351
|
-
}
|
|
352
|
-
function FilePlayer({
|
|
353
|
-
title,
|
|
354
|
-
priority,
|
|
355
|
-
...props
|
|
356
|
-
}) {
|
|
357
|
-
const [facade] = _react.useState.call(void 0, () => waitsForPlay(props));
|
|
358
|
-
const [pressed, setPressed] = _react.useState.call(void 0, false);
|
|
359
|
-
if (facade && !pressed) {
|
|
360
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "relative", props.className), style: { width: "100%", height: "100%" }, children: [
|
|
361
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, FilePlayerFallback, { poster: props.poster, className: "absolute inset-0", priority }),
|
|
362
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
363
|
-
_chunkTF5D5MNOcjs.Button,
|
|
364
|
-
{
|
|
365
|
-
type: "button",
|
|
366
|
-
variant: "glyph",
|
|
367
|
-
size: "wrap",
|
|
368
|
-
"aria-label": title ? `Play: ${title}` : "Play video",
|
|
369
|
-
onPointerEnter: loadFilePlayer,
|
|
370
|
-
onFocus: loadFilePlayer,
|
|
371
|
-
onTouchStart: loadFilePlayer,
|
|
372
|
-
onClick: () => {
|
|
373
|
-
loadFilePlayer();
|
|
374
|
-
setPressed(true);
|
|
375
|
-
},
|
|
376
|
-
className: "group absolute inset-0 rounded-none",
|
|
377
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
378
|
-
_chunkSETFUCZAcjs.VideoPlayBadge,
|
|
379
|
-
{
|
|
380
|
-
size: "lg",
|
|
381
|
-
className: "transition-transform duration-200 group-hover:scale-110 group-hover:text-ods-accent"
|
|
382
|
-
}
|
|
383
|
-
)
|
|
384
|
-
}
|
|
385
|
-
)
|
|
386
|
-
] });
|
|
387
|
-
}
|
|
388
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedFilePlayer, { ...props, priority, ...facade ? { autoPlayUnmuted: true } : {} });
|
|
389
|
-
}
|
|
390
|
-
function LoadedFilePlayer({ priority, ...props }) {
|
|
391
|
-
const arrived = _react.useSyncExternalStore.call(void 0, subscribeToFilePlayer, loadedFilePlayer, noFilePlayer);
|
|
392
|
-
if (arrived) return _react.createElement.call(void 0, arrived, props);
|
|
393
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FilePlayerFallback, { poster: props.poster, className: props.className, priority });
|
|
394
|
-
}
|
|
395
|
-
var YT_HOSTS = /* @__PURE__ */ new Set([
|
|
396
|
-
"youtube.com",
|
|
397
|
-
"www.youtube.com",
|
|
398
|
-
"m.youtube.com",
|
|
399
|
-
"youtu.be",
|
|
400
|
-
"youtube-nocookie.com",
|
|
401
|
-
"www.youtube-nocookie.com"
|
|
402
|
-
]);
|
|
403
|
-
function isYouTubeUrl(url) {
|
|
404
|
-
try {
|
|
405
|
-
return YT_HOSTS.has(new URL(url, "http://placeholder.local").hostname.toLowerCase());
|
|
406
|
-
} catch (e2) {
|
|
407
|
-
return false;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
var YT_PATH_RE = /^\/(?:embed|v|shorts)\/([^/]+)\/?$/;
|
|
411
|
-
var BARE_YT_ID_RE = /^[A-Za-z0-9_-]{11}$/;
|
|
412
|
-
function extractYouTubeId(url) {
|
|
413
|
-
if (!url) return null;
|
|
414
|
-
if (BARE_YT_ID_RE.test(url)) return url;
|
|
415
|
-
let u;
|
|
416
|
-
try {
|
|
417
|
-
u = new URL(url, "http://placeholder.local");
|
|
418
|
-
} catch (e3) {
|
|
419
|
-
return null;
|
|
420
|
-
}
|
|
421
|
-
if (!YT_HOSTS.has(u.hostname.toLowerCase())) return null;
|
|
422
|
-
if (u.hostname.toLowerCase().endsWith("youtu.be")) {
|
|
423
|
-
return _nullishCoalesce(u.pathname.split("/").filter(Boolean)[0], () => ( null));
|
|
424
|
-
}
|
|
425
|
-
const v = u.searchParams.get("v");
|
|
426
|
-
if (v) return v;
|
|
427
|
-
const m = u.pathname.match(YT_PATH_RE);
|
|
428
|
-
return m ? m[1] : null;
|
|
429
|
-
}
|
|
430
|
-
function Video(props) {
|
|
431
|
-
const { ref: nearRef, isNear } = _chunkNTPX5GXIcjs.useNearViewport.call(void 0, );
|
|
432
|
-
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
433
|
-
const url = props.url;
|
|
434
|
-
const layout = _nullishCoalesce(props.layout, () => ( "native"));
|
|
435
|
-
if (loading && !url) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoSkeleton, { layout, className: props.className });
|
|
436
|
-
if (!url) return null;
|
|
437
|
-
const effectiveKind = resolveKind(props, url);
|
|
438
|
-
if ((_nullishCoalesce(props.lazy, () => ( true))) && !isNear) {
|
|
439
|
-
return wrapWithLayout(
|
|
440
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
441
|
-
PosterBox,
|
|
442
|
-
{
|
|
443
|
-
ref: nearRef,
|
|
444
|
-
poster: props.poster,
|
|
445
|
-
className: props.className,
|
|
446
|
-
priority: "priority" in props ? props.priority : void 0
|
|
447
|
-
}
|
|
448
|
-
),
|
|
449
|
-
layout
|
|
450
|
-
);
|
|
451
|
-
}
|
|
452
|
-
const inner = effectiveKind === "youtube" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
453
|
-
YouTubeFacade,
|
|
454
|
-
{
|
|
455
|
-
url,
|
|
456
|
-
title: props.title,
|
|
457
|
-
priority: props.priority,
|
|
458
|
-
className: props.className,
|
|
459
|
-
minimalControls: props.minimalControls,
|
|
460
|
-
muted: props.muted,
|
|
461
|
-
..._chunkSETFUCZAcjs.pickYouTube.call(void 0, props)
|
|
462
|
-
}
|
|
463
|
-
) : "firstFrameOnly" in props && props.firstFrameOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
464
|
-
FirstFramePreview,
|
|
465
|
-
{
|
|
466
|
-
url,
|
|
467
|
-
poster: props.poster,
|
|
468
|
-
fit: "fit" in props ? props.fit : void 0,
|
|
469
|
-
className: props.className
|
|
470
|
-
}
|
|
471
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
472
|
-
FilePlayer,
|
|
473
|
-
{
|
|
474
|
-
url,
|
|
475
|
-
poster: props.poster,
|
|
476
|
-
title: props.title,
|
|
477
|
-
priority: props.priority,
|
|
478
|
-
muted: props.muted,
|
|
479
|
-
..._chunkSETFUCZAcjs.pickFilePlayback.call(void 0, props),
|
|
480
|
-
className: props.className
|
|
481
|
-
}
|
|
482
|
-
);
|
|
483
|
-
return wrapWithLayout(inner, layout);
|
|
484
|
-
}
|
|
485
|
-
function resolveKind(props, url) {
|
|
486
|
-
if ("kind" in props) {
|
|
487
|
-
if (props.kind === "youtube") return "youtube";
|
|
488
|
-
if (props.kind === "file") return "file";
|
|
489
|
-
}
|
|
490
|
-
if (BARE_YT_ID_RE.test(url)) return "youtube";
|
|
491
|
-
return isYouTubeUrl(url) ? "youtube" : "file";
|
|
492
|
-
}
|
|
493
|
-
function VideoSkeleton({ layout = "native", className }) {
|
|
494
|
-
return wrapWithLayout(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { variant: "rectangular", className: _chunk65VVJSQZcjs.cn.call(void 0, "h-full w-full", className) }), layout);
|
|
495
|
-
}
|
|
496
|
-
function wrapWithLayout(inner, layout) {
|
|
497
|
-
switch (layout) {
|
|
498
|
-
case "centered":
|
|
499
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full max-w-3xl overflow-hidden rounded-lg border border-ods-border", children: inner }) });
|
|
500
|
-
case "fill":
|
|
501
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 h-full w-full", children: inner });
|
|
502
|
-
case "wide":
|
|
503
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full overflow-hidden rounded-lg bg-ods-bg", children: inner });
|
|
504
|
-
case "native":
|
|
505
|
-
default:
|
|
506
|
-
return inner;
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
function FirstFramePreview({
|
|
510
|
-
url,
|
|
511
|
-
poster,
|
|
512
|
-
fit,
|
|
513
|
-
className
|
|
514
|
-
}) {
|
|
515
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
516
|
-
"div",
|
|
517
|
-
{
|
|
518
|
-
"aria-hidden": true,
|
|
519
|
-
className: "h-full w-full",
|
|
520
|
-
style: { "--media-background-color": "transparent" },
|
|
521
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FilePlayer, { url: `${url}#t=0.1`, poster, fit, muted: true, chromeless: true, className })
|
|
522
|
-
}
|
|
523
|
-
);
|
|
524
|
-
}
|
|
525
|
-
function YouTubeFacade({
|
|
526
|
-
url,
|
|
527
|
-
title = "YouTube Video",
|
|
528
|
-
priority,
|
|
529
|
-
className,
|
|
530
|
-
minimalControls,
|
|
531
|
-
muted,
|
|
532
|
-
// `...facade` rather than naming each one: this hop is invisible to the
|
|
533
|
-
// build-time forwarding proof, so a prop added to VideoYouTubeFacadeProps
|
|
534
|
-
// would reach here and silently stop before Inner.
|
|
535
|
-
...facade
|
|
536
|
-
}) {
|
|
537
|
-
const videoId = extractYouTubeId(url);
|
|
538
|
-
if (!videoId) return null;
|
|
539
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
540
|
-
YouTubeFacadeInner,
|
|
541
|
-
{
|
|
542
|
-
videoId,
|
|
543
|
-
title,
|
|
544
|
-
priority,
|
|
545
|
-
className,
|
|
546
|
-
minimalControls,
|
|
547
|
-
muted,
|
|
548
|
-
...facade
|
|
549
|
-
}
|
|
550
|
-
);
|
|
551
|
-
}
|
|
552
|
-
var YT_NOCOOKIE_ORIGIN = "https://www.youtube-nocookie.com";
|
|
553
|
-
var YT_POSTER_TIERS = ["maxresdefault", "mqdefault"];
|
|
554
|
-
var YT_STATE_ENDED = 0;
|
|
555
|
-
var YT_STATE_PLAYING = 1;
|
|
556
|
-
var YT_PLAYING_BLUR_DELAY_MS = 1e3;
|
|
557
|
-
function toYouTubeMessage(parsed) {
|
|
558
|
-
if (typeof parsed !== "object" || parsed === null) return null;
|
|
559
|
-
const event = "event" in parsed ? parsed.event : void 0;
|
|
560
|
-
const info = "info" in parsed ? parsed.info : void 0;
|
|
561
|
-
const playerState = typeof info === "object" && info !== null && "playerState" in info ? info.playerState : void 0;
|
|
562
|
-
return {
|
|
563
|
-
event: typeof event === "string" ? event : void 0,
|
|
564
|
-
info: { playerState: typeof playerState === "number" ? playerState : void 0 },
|
|
565
|
-
errorCode: typeof info === "number" ? info : void 0
|
|
566
|
-
};
|
|
567
|
-
}
|
|
568
|
-
function YouTubeFacadeInner({
|
|
569
|
-
videoId,
|
|
570
|
-
title,
|
|
571
|
-
priority,
|
|
572
|
-
className,
|
|
573
|
-
minimalControls,
|
|
574
|
-
muted,
|
|
575
|
-
autoActivate,
|
|
576
|
-
suspended
|
|
577
|
-
}) {
|
|
578
|
-
const [activated, setActivated] = _react.useState.call(void 0, Boolean(autoActivate));
|
|
579
|
-
const [prevAutoActivate, setPrevAutoActivate] = _react.useState.call(void 0, Boolean(autoActivate));
|
|
580
|
-
if (Boolean(autoActivate) !== prevAutoActivate) {
|
|
581
|
-
setPrevAutoActivate(Boolean(autoActivate));
|
|
582
|
-
if (autoActivate) setActivated(true);
|
|
583
|
-
}
|
|
584
|
-
const [failed, setFailed] = _react.useState.call(void 0, false);
|
|
585
|
-
const [reloadNonce, setReloadNonce] = _react.useState.call(void 0, 0);
|
|
586
|
-
const iframeRef = _react.useRef.call(void 0, null);
|
|
587
|
-
const retry = _react.useCallback.call(void 0, () => {
|
|
588
|
-
setFailed(false);
|
|
589
|
-
setReloadNonce((n) => n + 1);
|
|
590
|
-
}, []);
|
|
591
|
-
const embedUrl = _react.useMemo.call(void 0, () => {
|
|
592
|
-
const params = new URLSearchParams({
|
|
593
|
-
autoplay: "1",
|
|
594
|
-
rel: "0",
|
|
595
|
-
modestbranding: "1",
|
|
596
|
-
playsinline: "1",
|
|
597
|
-
enablejsapi: "1"
|
|
598
|
-
});
|
|
599
|
-
if (muted) params.set("mute", "1");
|
|
600
|
-
if (typeof window !== "undefined") {
|
|
601
|
-
params.set("origin", window.location.origin);
|
|
602
|
-
}
|
|
603
|
-
if (minimalControls) {
|
|
604
|
-
params.set("controls", "0");
|
|
605
|
-
params.set("fs", "0");
|
|
606
|
-
params.set("iv_load_policy", "3");
|
|
607
|
-
params.set("cc_load_policy", "0");
|
|
608
|
-
params.set("disablekb", "1");
|
|
609
|
-
}
|
|
610
|
-
return `${YT_NOCOOKIE_ORIGIN}/embed/${videoId}?${params.toString()}`;
|
|
611
|
-
}, [videoId, minimalControls, muted]);
|
|
612
|
-
const [posterTier, setPosterTier] = _react.useState.call(void 0, 0);
|
|
613
|
-
const [posterTierFor, setPosterTierFor] = _react.useState.call(void 0, videoId);
|
|
614
|
-
if (posterTierFor !== videoId) {
|
|
615
|
-
setPosterTierFor(videoId);
|
|
616
|
-
setPosterTier(0);
|
|
617
|
-
}
|
|
618
|
-
const posterQuality = YT_POSTER_TIERS[posterTier];
|
|
619
|
-
const posterJpg = `https://i.ytimg.com/vi/${videoId}/${posterQuality}.jpg`;
|
|
620
|
-
const posterWebp = `https://i.ytimg.com/vi_webp/${videoId}/${posterQuality}.webp`;
|
|
621
|
-
const handlePosterError = () => setPosterTier((tier) => Math.min(tier + 1, YT_POSTER_TIERS.length - 1));
|
|
622
|
-
_react.useEffect.call(void 0, () => {
|
|
623
|
-
if (!activated || failed) return void 0;
|
|
624
|
-
const iframe = iframeRef.current;
|
|
625
|
-
if (!iframe) return void 0;
|
|
626
|
-
function subscribe() {
|
|
627
|
-
_optionalChain([iframe, 'optionalAccess', _2 => _2.contentWindow, 'optionalAccess', _3 => _3.postMessage, 'call', _4 => _4('{"event":"listening"}', YT_NOCOOKIE_ORIGIN)]);
|
|
628
|
-
}
|
|
629
|
-
iframe.addEventListener("load", subscribe);
|
|
630
|
-
subscribe();
|
|
631
|
-
let blurTimer = null;
|
|
632
|
-
function handleMessage(event) {
|
|
633
|
-
if (event.origin !== YT_NOCOOKIE_ORIGIN) return;
|
|
634
|
-
if (typeof event.data !== "string") return;
|
|
635
|
-
let payload = null;
|
|
636
|
-
try {
|
|
637
|
-
payload = toYouTubeMessage(JSON.parse(event.data));
|
|
638
|
-
} catch (e4) {
|
|
639
|
-
return;
|
|
640
|
-
}
|
|
641
|
-
if (!payload) return;
|
|
642
|
-
if (payload.event === "onError") {
|
|
643
|
-
setFailed(true);
|
|
644
|
-
_chunkSETFUCZAcjs.reportPlaybackFailure.call(void 0, { kind: "youtube", src: videoId, reason: "error", errorCode: payload.errorCode });
|
|
645
|
-
return;
|
|
646
|
-
}
|
|
647
|
-
if (payload.event !== "infoDelivery") return;
|
|
648
|
-
const state = _optionalChain([payload, 'access', _5 => _5.info, 'optionalAccess', _6 => _6.playerState]);
|
|
649
|
-
if (typeof state !== "number") return;
|
|
650
|
-
if (state === YT_STATE_PLAYING) {
|
|
651
|
-
if (blurTimer !== null) return;
|
|
652
|
-
blurTimer = setTimeout(() => {
|
|
653
|
-
blurTimer = null;
|
|
654
|
-
_optionalChain([iframeRef, 'access', _7 => _7.current, 'optionalAccess', _8 => _8.blur, 'call', _9 => _9()]);
|
|
655
|
-
}, YT_PLAYING_BLUR_DELAY_MS);
|
|
656
|
-
return;
|
|
657
|
-
}
|
|
658
|
-
if (state === YT_STATE_ENDED) {
|
|
659
|
-
setActivated(false);
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
|
-
window.addEventListener("message", handleMessage);
|
|
663
|
-
return () => {
|
|
664
|
-
iframe.removeEventListener("load", subscribe);
|
|
665
|
-
window.removeEventListener("message", handleMessage);
|
|
666
|
-
if (blurTimer !== null) clearTimeout(blurTimer);
|
|
667
|
-
};
|
|
668
|
-
}, [activated, failed, reloadNonce, videoId]);
|
|
669
|
-
const prevSuspendedRef = _react.useRef.call(void 0, false);
|
|
670
|
-
_react.useEffect.call(void 0, () => {
|
|
671
|
-
const wasSuspended = prevSuspendedRef.current;
|
|
672
|
-
prevSuspendedRef.current = Boolean(suspended);
|
|
673
|
-
if (!activated || Boolean(suspended) === wasSuspended) return;
|
|
674
|
-
_optionalChain([iframeRef, 'access', _10 => _10.current, 'optionalAccess', _11 => _11.contentWindow, 'optionalAccess', _12 => _12.postMessage, 'call', _13 => _13(
|
|
675
|
-
`{"event":"command","func":"${suspended ? "pauseVideo" : "playVideo"}","args":[]}`,
|
|
676
|
-
YT_NOCOOKIE_ORIGIN
|
|
677
|
-
)]);
|
|
678
|
-
}, [suspended, activated]);
|
|
679
|
-
const wrapperClass = `relative w-full ${_nullishCoalesce(className, () => ( ""))}`;
|
|
680
|
-
const wrapperStyle = { paddingBottom: "56.25%" };
|
|
681
|
-
if (activated && failed) {
|
|
682
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.VideoErrorOverlay, { onRetry: retry, watchOnYouTubeId: videoId }) });
|
|
683
|
-
}
|
|
684
|
-
if (activated) {
|
|
685
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
686
|
-
"iframe",
|
|
687
|
-
{
|
|
688
|
-
ref: iframeRef,
|
|
689
|
-
src: embedUrl,
|
|
690
|
-
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
|
|
691
|
-
allowFullScreen: true,
|
|
692
|
-
referrerPolicy: "strict-origin-when-cross-origin",
|
|
693
|
-
title,
|
|
694
|
-
className: "absolute inset-0 h-full w-full rounded-lg border-0"
|
|
695
|
-
},
|
|
696
|
-
reloadNonce
|
|
697
|
-
) });
|
|
698
|
-
}
|
|
699
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
700
|
-
"button",
|
|
701
|
-
{
|
|
702
|
-
type: "button",
|
|
703
|
-
"aria-label": `Play: ${title}`,
|
|
704
|
-
onClick: () => setActivated(true),
|
|
705
|
-
className: "group absolute inset-0 m-0 cursor-pointer overflow-hidden rounded-lg border border-ods-border bg-ods-card p-0",
|
|
706
|
-
children: [
|
|
707
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "picture", { children: [
|
|
708
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "source", { type: "image/webp", srcSet: posterWebp }),
|
|
709
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
710
|
-
"img",
|
|
711
|
-
{
|
|
712
|
-
src: posterJpg,
|
|
713
|
-
alt: title,
|
|
714
|
-
width: 1280,
|
|
715
|
-
height: 720,
|
|
716
|
-
loading: "lazy",
|
|
717
|
-
onError: handlePosterError,
|
|
718
|
-
..._chunkE76ONBKFcjs.fetchPriorityProp.call(void 0, priority),
|
|
719
|
-
decoding: priority ? "sync" : "async",
|
|
720
|
-
className: "absolute inset-0 h-full w-full object-cover"
|
|
721
|
-
}
|
|
722
|
-
)
|
|
723
|
-
] }),
|
|
724
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-ods-bg bg-opacity-20 transition-opacity duration-200 group-hover:bg-opacity-30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
725
|
-
_chunkSETFUCZAcjs.VideoPlayBadge,
|
|
726
|
-
{
|
|
727
|
-
size: "lg",
|
|
728
|
-
className: "transition-transform duration-200 group-hover:scale-110 group-hover:text-ods-accent"
|
|
729
|
-
}
|
|
730
|
-
) })
|
|
731
|
-
]
|
|
732
|
-
}
|
|
733
|
-
) });
|
|
734
|
-
}
|
|
735
|
-
|
|
736
|
-
// src/components/ui/status-badge.tsx
|
|
737
|
-
var _classvarianceauthority = require('class-variance-authority');
|
|
738
|
-
|
|
739
|
-
var statusBadgeVariants = _classvarianceauthority.cva.call(void 0, "inline-flex items-center justify-center rounded", {
|
|
740
|
-
variants: {
|
|
741
|
-
// Two densities, not one style at two paddings. Both are the ODS h5
|
|
742
|
-
// label treatment (Azeret Mono 500, uppercase, -0.02em); they differ in
|
|
743
|
-
// scale. Putting BOTH on `text-h5` is what regressed the stamp: at
|
|
744
|
-
// 14/20 on desktop every inline badge grew ~40% and its box doubled,
|
|
745
|
-
// because the caption line-height replaced `leading-none`.
|
|
746
|
-
variant: {
|
|
747
|
-
// Standalone badge — the ODS caption composite, unmodified.
|
|
748
|
-
card: "px-3 py-1.5 text-h5",
|
|
749
|
-
// Dense inline stamp. Family, weight and casing come from the SAME h5
|
|
750
|
-
// tokens as `card`; only the scale is set here, because ODS has no
|
|
751
|
-
// step below the 12/14px caption and this stamp is 10px by design.
|
|
752
|
-
button: "px-2 py-0.5 font-[family-name:var(--font-h5-family)] font-[number:var(--font-h5-weight)] uppercase tracking-[-0.02em] text-badge"
|
|
753
|
-
},
|
|
754
|
-
colorScheme: {
|
|
755
|
-
cyan: "bg-ods-flamingo-cyan text-ods-text-on-accent",
|
|
756
|
-
pink: "bg-ods-flamingo-pink text-ods-text-on-accent",
|
|
757
|
-
yellow: "border border-ods-border bg-ods-accent text-ods-text-on-accent",
|
|
758
|
-
green: "bg-ods-success text-ods-text-on-accent",
|
|
759
|
-
purple: "bg-ods-flamingo-pink text-ods-text-on-accent",
|
|
760
|
-
// Solid and soft ODS palette fills (`BADGE_PALETTE`): tokens only, no hex.
|
|
761
|
-
cyanSoft: "bg-ods-flamingo-cyan-secondary text-ods-flamingo-cyan",
|
|
762
|
-
pinkSoft: "bg-ods-flamingo-pink-secondary text-ods-flamingo-pink",
|
|
763
|
-
openYellow: "bg-ods-open-yellow text-ods-text-on-accent",
|
|
764
|
-
red: "bg-ods-error text-ods-text-on-accent",
|
|
765
|
-
success: "bg-ods-success-secondary text-ods-success",
|
|
766
|
-
error: "bg-ods-error-secondary text-ods-error",
|
|
767
|
-
warning: "bg-ods-warning-secondary text-ods-warning",
|
|
768
|
-
default: "bg-ods-bg-surface text-ods-text-primary",
|
|
769
|
-
// Border-only variants (no background) - for task type badges
|
|
770
|
-
accentBorder: "border-2 border-ods-accent bg-transparent text-ods-accent",
|
|
771
|
-
errorBorder: "border-2 border-ods-error bg-transparent text-ods-error",
|
|
772
|
-
whiteBorder: "border-2 border-ods-text-primary bg-transparent text-ods-text-primary"
|
|
773
|
-
}
|
|
774
|
-
},
|
|
775
|
-
defaultVariants: {
|
|
776
|
-
variant: "card",
|
|
777
|
-
colorScheme: "default"
|
|
778
|
-
}
|
|
779
|
-
});
|
|
780
|
-
function genBadgeBgOpacity(gen) {
|
|
781
|
-
if (gen <= 1) return 10;
|
|
782
|
-
if (gen === 2) return 7;
|
|
783
|
-
return Math.max(4 - (gen - 3), 2);
|
|
784
|
-
}
|
|
785
|
-
function generationTierFromLabel(label) {
|
|
786
|
-
const m = /(\d+)/.exec(_nullishCoalesce(label, () => ( "")));
|
|
787
|
-
const n = m ? parseInt(m[1], 10) : 1;
|
|
788
|
-
return Number.isFinite(n) && n > 0 ? n : 1;
|
|
789
|
-
}
|
|
790
|
-
function StatusBadgeSkeleton({ variant, className }) {
|
|
791
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
792
|
-
_chunkXFRBEXQNcjs.UnifiedSkeleton,
|
|
793
|
-
{
|
|
794
|
-
as: "span",
|
|
795
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
796
|
-
statusBadgeVariants({ variant, colorScheme: null }),
|
|
797
|
-
"box-content h-[1lh] w-12 border-transparent",
|
|
798
|
-
className
|
|
799
|
-
)
|
|
800
|
-
}
|
|
801
|
-
);
|
|
802
|
-
}
|
|
803
|
-
function StatusBadge({ text, variant, colorScheme, className, singleLine, gen, style, ...props }) {
|
|
804
|
-
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
805
|
-
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, { variant, className });
|
|
806
|
-
const genStyle = gen != null ? {
|
|
807
|
-
textTransform: "none",
|
|
808
|
-
color: "var(--ods-accent)",
|
|
809
|
-
backgroundColor: `color-mix(in srgb, var(--ods-accent) ${genBadgeBgOpacity(gen)}%, transparent)`
|
|
810
|
-
} : void 0;
|
|
811
|
-
const renderText = () => {
|
|
812
|
-
if (singleLine) return text;
|
|
813
|
-
if (variant === "button" && text.includes(" ")) {
|
|
814
|
-
const words = text.split(" ");
|
|
815
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex flex-col items-center justify-center gap-0 text-center", children: words.map((word, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "block", children: word }, index)) });
|
|
816
|
-
}
|
|
817
|
-
return text;
|
|
818
|
-
};
|
|
819
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
820
|
-
"span",
|
|
821
|
-
{
|
|
822
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, statusBadgeVariants({ variant, colorScheme: gen != null ? void 0 : colorScheme }), className),
|
|
823
|
-
style: genStyle ? { ...genStyle, ...style } : style,
|
|
824
|
-
...props,
|
|
825
|
-
children: renderText()
|
|
826
|
-
}
|
|
827
|
-
);
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
// src/components/icon-display.tsx
|
|
831
|
-
|
|
832
|
-
function EntityIcon({
|
|
833
|
-
icon,
|
|
834
|
-
size = 20,
|
|
835
|
-
className
|
|
836
|
-
}) {
|
|
837
|
-
const identity = _chunkR3JX4MXDcjs.useAgentIdentityIcon.call(void 0, _optionalChain([icon, 'optionalAccess', _14 => _14.url]) ? null : _optionalChain([icon, 'optionalAccess', _15 => _15.name]));
|
|
838
|
-
const held = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
839
|
-
if (held) {
|
|
840
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
841
|
-
_chunkXFRBEXQNcjs.UnifiedSkeleton,
|
|
842
|
-
{
|
|
843
|
-
as: "span",
|
|
844
|
-
width: size,
|
|
845
|
-
height: size,
|
|
846
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, "inline-block shrink-0 rounded-md", className)
|
|
847
|
-
}
|
|
848
|
-
);
|
|
849
|
-
}
|
|
850
|
-
if (!_optionalChain([icon, 'optionalAccess', _16 => _16.url]) && _optionalChain([identity, 'optionalAccess', _17 => _17.url])) {
|
|
851
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
852
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
853
|
-
{
|
|
854
|
-
src: identity.url,
|
|
855
|
-
alt: "",
|
|
856
|
-
width: size,
|
|
857
|
-
height: size,
|
|
858
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkR3JX4MXDcjs.AGENT_PICTURE_CLASS, className),
|
|
859
|
-
unoptimized: true
|
|
860
|
-
}
|
|
861
|
-
);
|
|
862
|
-
}
|
|
863
|
-
if (_optionalChain([icon, 'optionalAccess', _18 => _18.url])) {
|
|
864
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
865
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
866
|
-
{
|
|
867
|
-
src: icon.url,
|
|
868
|
-
alt: "",
|
|
869
|
-
width: size,
|
|
870
|
-
height: size,
|
|
871
|
-
className,
|
|
872
|
-
style: { objectFit: "contain" },
|
|
873
|
-
unoptimized: true
|
|
874
|
-
}
|
|
875
|
-
);
|
|
876
|
-
}
|
|
877
|
-
const Glyph = _chunk5P4TDV7Vcjs.resolveIcon.call(void 0, _nullishCoalesce(_nullishCoalesce(_optionalChain([identity, 'optionalAccess', _19 => _19.name]), () => ( _optionalChain([icon, 'optionalAccess', _20 => _20.name]))), () => ( void 0)));
|
|
878
|
-
const agentColor = identity ? { color: _chunkR3JX4MXDcjs.AGENT_GLYPH_COLOR } : {};
|
|
879
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Glyph, { size, className, ...agentColor, ..._nullishCoalesce(_optionalChain([identity, 'optionalAccess', _21 => _21.props]), () => ( {})), ..._nullishCoalesce(_optionalChain([icon, 'optionalAccess', _22 => _22.props]), () => ( {})) });
|
|
880
|
-
}
|
|
881
|
-
|
|
882
322
|
// src/utils/image-proxy.ts
|
|
883
323
|
function getProxiedImageUrl(imageUrl, options) {
|
|
884
324
|
if (!imageUrl) return null;
|
|
885
|
-
const proxyPrefix = _optionalChain([options, 'optionalAccess',
|
|
886
|
-
const skipDomains = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
887
|
-
const directHttps = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
325
|
+
const proxyPrefix = _optionalChain([options, 'optionalAccess', _2 => _2.proxyPrefix]);
|
|
326
|
+
const skipDomains = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _3 => _3.skipDomains]), () => ( []));
|
|
327
|
+
const directHttps = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _4 => _4.directHttps]), () => ( false));
|
|
888
328
|
if (proxyPrefix && imageUrl.includes(proxyPrefix)) {
|
|
889
329
|
return imageUrl;
|
|
890
330
|
}
|
|
@@ -907,7 +347,7 @@ function getProxiedImageUrl(imageUrl, options) {
|
|
|
907
347
|
function urlPathLooksLikeSvg(imageUrl) {
|
|
908
348
|
try {
|
|
909
349
|
return /\.svg$/i.test(new URL(imageUrl).pathname);
|
|
910
|
-
} catch (
|
|
350
|
+
} catch (e2) {
|
|
911
351
|
return /\.svg(\?|#|$)/i.test(imageUrl);
|
|
912
352
|
}
|
|
913
353
|
}
|
|
@@ -926,7 +366,7 @@ function skipsImageOptimizer(url) {
|
|
|
926
366
|
try {
|
|
927
367
|
const hostname = new URL(url.startsWith("//") ? `https:${url}` : url).hostname.toLowerCase();
|
|
928
368
|
return hostname === "googleusercontent.com" || hostname.endsWith(".googleusercontent.com");
|
|
929
|
-
} catch (
|
|
369
|
+
} catch (e3) {
|
|
930
370
|
return false;
|
|
931
371
|
}
|
|
932
372
|
}
|
|
@@ -935,11 +375,11 @@ function skipsImageOptimizer(url) {
|
|
|
935
375
|
function useProxiedImageUrl(url, options) {
|
|
936
376
|
const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
937
377
|
if (!url) return "";
|
|
938
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
378
|
+
if (_optionalChain([options, 'optionalAccess', _5 => _5.proxyImageUrl])) return options.proxyImageUrl(url);
|
|
939
379
|
return _nullishCoalesce(getProxiedImageUrl(url, {
|
|
940
|
-
proxyPrefix: _optionalChain([runtime, 'optionalAccess',
|
|
941
|
-
skipDomains: _optionalChain([runtime, 'optionalAccess',
|
|
942
|
-
directHttps: _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
380
|
+
proxyPrefix: _optionalChain([runtime, 'optionalAccess', _6 => _6.endpoints, 'access', _7 => _7.imageProxyUrlPrefix]),
|
|
381
|
+
skipDomains: _optionalChain([runtime, 'optionalAccess', _8 => _8.endpoints, 'access', _9 => _9.imageProxySkipDomains]),
|
|
382
|
+
directHttps: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _10 => _10.directHttps]), () => ( true))
|
|
943
383
|
}), () => ( url));
|
|
944
384
|
}
|
|
945
385
|
|
|
@@ -952,7 +392,7 @@ function escapeRegExp(value) {
|
|
|
952
392
|
function formatDayHead(dateString, style) {
|
|
953
393
|
const ymd = splitYmd(dateString);
|
|
954
394
|
if (!ymd) return dateString;
|
|
955
|
-
return
|
|
395
|
+
return _chunkAFJEUBDScjs.formatDateWithTimezone.call(void 0, ymd.join("-"), null, style) || dateString;
|
|
956
396
|
}
|
|
957
397
|
function splitYmd(dateString) {
|
|
958
398
|
const head = dateString.split("T")[0];
|
|
@@ -1048,7 +488,7 @@ function getTaskTypeLabel(customItemId) {
|
|
|
1048
488
|
|
|
1049
489
|
// src/components/chat/utils/agent-status-message.ts
|
|
1050
490
|
function getStatusColorScheme(status) {
|
|
1051
|
-
const s = _optionalChain([status, 'optionalAccess',
|
|
491
|
+
const s = _optionalChain([status, 'optionalAccess', _11 => _11.toLowerCase, 'call', _12 => _12()]) || "";
|
|
1052
492
|
switch (status) {
|
|
1053
493
|
case "completed":
|
|
1054
494
|
case "success":
|
|
@@ -1078,14 +518,6 @@ function getStatusColorScheme(status) {
|
|
|
1078
518
|
return "default";
|
|
1079
519
|
}
|
|
1080
520
|
|
|
1081
|
-
// src/components/chat/utils/is-cross-origin-url.ts
|
|
1082
|
-
function isCrossOriginUrl(url) {
|
|
1083
|
-
if (!url) return false;
|
|
1084
|
-
if (url.startsWith("#") || url.startsWith("?")) return false;
|
|
1085
|
-
if (url.startsWith("/") && !url.startsWith("//")) return false;
|
|
1086
|
-
return true;
|
|
1087
|
-
}
|
|
1088
|
-
|
|
1089
521
|
// src/types/trust-center.ts
|
|
1090
522
|
var TRUST_FRAMEWORK_MONITORING = [
|
|
1091
523
|
{ state: "monitored", label: "Monitored", color: "cyan", icon: "shield-check" },
|
|
@@ -1314,10 +746,10 @@ var MEDIA_TYPE = {
|
|
|
1314
746
|
VIDEO: "video"
|
|
1315
747
|
};
|
|
1316
748
|
function isVideoMedia(media) {
|
|
1317
|
-
return _optionalChain([media, 'optionalAccess',
|
|
749
|
+
return _optionalChain([media, 'optionalAccess', _13 => _13.media_type]) === MEDIA_TYPE.VIDEO;
|
|
1318
750
|
}
|
|
1319
751
|
function isImageMedia(media) {
|
|
1320
|
-
return _optionalChain([media, 'optionalAccess',
|
|
752
|
+
return _optionalChain([media, 'optionalAccess', _14 => _14.media_type]) === MEDIA_TYPE.IMAGE;
|
|
1321
753
|
}
|
|
1322
754
|
function isPublishableMediaType(mediaType) {
|
|
1323
755
|
return mediaType === MEDIA_TYPE.VIDEO || mediaType === MEDIA_TYPE.IMAGE;
|
|
@@ -1407,9 +839,9 @@ function programMetaFormatters(fmt, opts = {}) {
|
|
|
1407
839
|
|
|
1408
840
|
// src/utils/program-meta-renderers.ts
|
|
1409
841
|
var PROGRAM_META_RENDERERS = {
|
|
1410
|
-
date:
|
|
1411
|
-
duration:
|
|
1412
|
-
webinarMeta:
|
|
842
|
+
date: _chunkAFJEUBDScjs.formatProgramDate,
|
|
843
|
+
duration: _chunkAFJEUBDScjs.formatDurationCompact,
|
|
844
|
+
webinarMeta: _chunkAFJEUBDScjs.formatWebinarTimeMeta
|
|
1413
845
|
};
|
|
1414
846
|
|
|
1415
847
|
// src/components/chat/utils/chat-nav-resolution.ts
|
|
@@ -1422,7 +854,7 @@ function stripSameOriginToPath(href) {
|
|
|
1422
854
|
try {
|
|
1423
855
|
const u = new URL(href);
|
|
1424
856
|
return u.pathname + u.search + u.hash;
|
|
1425
|
-
} catch (
|
|
857
|
+
} catch (e4) {
|
|
1426
858
|
return href;
|
|
1427
859
|
}
|
|
1428
860
|
}
|
|
@@ -1459,46 +891,6 @@ function resolveExternalNavigation(args) {
|
|
|
1459
891
|
return { href: abs, open };
|
|
1460
892
|
}
|
|
1461
893
|
|
|
1462
|
-
// src/components/chat/utils/decide-new-tab.ts
|
|
1463
|
-
function decideNewTab(input) {
|
|
1464
|
-
const { href, targetPlatform, openIn, alwaysNewTab, runtimeMode, currentSource } = input;
|
|
1465
|
-
if (runtimeMode === "embed") return true;
|
|
1466
|
-
if (openIn === "new-tab") return true;
|
|
1467
|
-
if (alwaysNewTab === true) return true;
|
|
1468
|
-
if (openIn === "same-tab") return false;
|
|
1469
|
-
if (targetPlatform !== void 0 && targetPlatform !== null && currentSource) {
|
|
1470
|
-
return targetPlatform !== currentSource;
|
|
1471
|
-
}
|
|
1472
|
-
if (!href) return false;
|
|
1473
|
-
return isCrossOriginUrl(href);
|
|
1474
|
-
}
|
|
1475
|
-
|
|
1476
|
-
// src/components/chat/utils/nav-anchor-props.ts
|
|
1477
|
-
function isSameOriginAbsoluteHref(href) {
|
|
1478
|
-
if (typeof window === "undefined") return false;
|
|
1479
|
-
if (!/^https?:\/\//i.test(href)) return false;
|
|
1480
|
-
try {
|
|
1481
|
-
return new URL(href).origin === new URL(window.location.href).origin;
|
|
1482
|
-
} catch (e8) {
|
|
1483
|
-
return false;
|
|
1484
|
-
}
|
|
1485
|
-
}
|
|
1486
|
-
function computeIsNewTab(runtime, href, targetPlatform) {
|
|
1487
|
-
if (!href) return false;
|
|
1488
|
-
if (runtime.navigation.mode === "embed") return !isSameOriginAbsoluteHref(href);
|
|
1489
|
-
return _nullishCoalesce(_optionalChain([runtime, 'access', _36 => _36.navigation, 'access', _37 => _37.decideNewTab, 'optionalCall', _38 => _38({ href, targetPlatform })]), () => ( decideNewTab({
|
|
1490
|
-
href,
|
|
1491
|
-
targetPlatform,
|
|
1492
|
-
currentSource: _nullishCoalesce(runtime.source, () => ( ""))
|
|
1493
|
-
})));
|
|
1494
|
-
}
|
|
1495
|
-
function newTabAnchorAttrs(isNewTab) {
|
|
1496
|
-
return isNewTab ? { target: "_blank", rel: "noopener noreferrer" } : {};
|
|
1497
|
-
}
|
|
1498
|
-
function buildAnchorProps(href, isNewTab) {
|
|
1499
|
-
return href ? { href, ...newTabAnchorAttrs(isNewTab) } : void 0;
|
|
1500
|
-
}
|
|
1501
|
-
|
|
1502
894
|
// src/components/chat/entity-cards/entity-author-card.tsx
|
|
1503
895
|
|
|
1504
896
|
var EMPTY_AUTHOR_PLACEHOLDER = {
|
|
@@ -1527,15 +919,15 @@ function EntityMetadataValueCell({
|
|
|
1527
919
|
uppercase = true,
|
|
1528
920
|
optional = false
|
|
1529
921
|
}) {
|
|
1530
|
-
if (
|
|
1531
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
922
|
+
if (_chunkN6YCOBLKcjs.useLoadingScope.call(void 0, )) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataValueCellSkeleton, { label, className });
|
|
923
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, VALUE_CELL_CLASS, className), "data-loading-optional": optional || void 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CELL_STACK_CLASS, children: [
|
|
1532
924
|
typeof value === "string" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: VALUE_TEXT_CLASS, children: uppercase ? value.toLocaleUpperCase() : value }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: VALUE_NODE_CLASS, children: value }),
|
|
1533
925
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: LABEL_TEXT_CLASS, children: label })
|
|
1534
926
|
] }) });
|
|
1535
927
|
}
|
|
1536
928
|
function EntityMetadataValueCellSkeleton({ label, className }) {
|
|
1537
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
1538
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: VALUE_TEXT_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
929
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, VALUE_CELL_CLASS, className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CELL_STACK_CLASS, children: [
|
|
930
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: VALUE_TEXT_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-24" }) }),
|
|
1539
931
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: LABEL_TEXT_CLASS, children: label })
|
|
1540
932
|
] }) });
|
|
1541
933
|
}
|
|
@@ -1543,19 +935,20 @@ function EntityMetadataAuthorCell({
|
|
|
1543
935
|
author,
|
|
1544
936
|
roleLabel = "Author",
|
|
1545
937
|
authorHref,
|
|
1546
|
-
className
|
|
938
|
+
className,
|
|
939
|
+
loading: loadingProp
|
|
1547
940
|
}) {
|
|
1548
|
-
const loading =
|
|
941
|
+
const loading = _chunkN6YCOBLKcjs.useLoadingScope.call(void 0, ) || loadingProp || !author;
|
|
1549
942
|
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataAuthorCellSkeleton, { className });
|
|
1550
943
|
const trimmedName = typeof author.full_name === "string" ? author.full_name.trim() : "";
|
|
1551
944
|
const fullName = trimmedName || "Unknown Author";
|
|
1552
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
945
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, AUTHOR_CELL_CLASS, className), children: [
|
|
1553
946
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1554
|
-
|
|
947
|
+
_chunkAFJEUBDScjs.SquareAvatar,
|
|
1555
948
|
{
|
|
1556
949
|
src: author.avatar_url || "",
|
|
1557
950
|
alt: fullName,
|
|
1558
|
-
fallback:
|
|
951
|
+
fallback: _chunkAFJEUBDScjs.nameInitials.call(void 0, fullName, ""),
|
|
1559
952
|
size: AUTHOR_AVATAR_SIZE,
|
|
1560
953
|
variant: "round"
|
|
1561
954
|
}
|
|
@@ -1567,11 +960,11 @@ function EntityMetadataAuthorCell({
|
|
|
1567
960
|
] });
|
|
1568
961
|
}
|
|
1569
962
|
function EntityMetadataAuthorCellSkeleton({ className }) {
|
|
1570
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1571
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
963
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, AUTHOR_CELL_CLASS, className), children: [
|
|
964
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { variant: "circular", className: _chunkN6YCOBLKcjs.cn.call(void 0, "shrink-0", _chunkYNDH72VUcjs.AVATAR_SIZE[AUTHOR_AVATAR_SIZE]) }),
|
|
1572
965
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: AUTHOR_TEXT_CLASS, children: [
|
|
1573
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1574
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
966
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h3", className: "w-32" }),
|
|
967
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", className: "w-20" })
|
|
1575
968
|
] })
|
|
1576
969
|
] });
|
|
1577
970
|
}
|
|
@@ -1582,7 +975,7 @@ function EntityAuthorCardSkeleton({
|
|
|
1582
975
|
className
|
|
1583
976
|
}) {
|
|
1584
977
|
const totalCells = extraCellLabels.length + optionalCells + (publishedLabel === null ? 0 : 1) + 1;
|
|
1585
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
978
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, GRID_FRAME_CLASS, gridColsClass(totalCells), className), children: [
|
|
1586
979
|
extraCellLabels.map((label, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataValueCellSkeleton, { label, className: CELL_DIVIDER_CLASS }, `${label}-${i}`)),
|
|
1587
980
|
publishedLabel !== null && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataValueCellSkeleton, { label: publishedLabel, className: CELL_DIVIDER_CLASS }),
|
|
1588
981
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataAuthorCellSkeleton, {})
|
|
@@ -1596,9 +989,10 @@ function EntityAuthorCard({
|
|
|
1596
989
|
publishedLabel = "Published",
|
|
1597
990
|
extraCells,
|
|
1598
991
|
renderEmptyAuthor = false,
|
|
1599
|
-
className
|
|
992
|
+
className,
|
|
993
|
+
loading: loadingProp
|
|
1600
994
|
}) {
|
|
1601
|
-
const loading =
|
|
995
|
+
const loading = _chunkN6YCOBLKcjs.useLoadingScope.call(void 0, ) || !!loadingProp;
|
|
1602
996
|
if (loading) {
|
|
1603
997
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1604
998
|
EntityAuthorCardSkeleton,
|
|
@@ -1610,15 +1004,15 @@ function EntityAuthorCard({
|
|
|
1610
1004
|
}
|
|
1611
1005
|
);
|
|
1612
1006
|
}
|
|
1613
|
-
const hasAuthor = !!_optionalChain([author, 'optionalAccess',
|
|
1007
|
+
const hasAuthor = !!_optionalChain([author, 'optionalAccess', _15 => _15.full_name]);
|
|
1614
1008
|
if (!hasAuthor && !renderEmptyAuthor) return null;
|
|
1615
1009
|
const effectiveAuthor = hasAuthor ? author : EMPTY_AUTHOR_PLACEHOLDER;
|
|
1616
|
-
const formatted = publishedAt ?
|
|
1010
|
+
const formatted = publishedAt ? _chunkAFJEUBDScjs.formatDate.call(void 0, publishedAt) : "";
|
|
1617
1011
|
const dateLabel = formatted === "Invalid Date" ? "" : formatted;
|
|
1618
1012
|
const showDateCell = !!dateLabel;
|
|
1619
1013
|
const extras = _nullishCoalesce(extraCells, () => ( []));
|
|
1620
1014
|
const totalCells = extras.length + (showDateCell ? 1 : 0) + 1;
|
|
1621
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1015
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, GRID_FRAME_CLASS, gridColsClass(totalCells), className), children: [
|
|
1622
1016
|
extras.map((cell, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1623
1017
|
EntityMetadataValueCell,
|
|
1624
1018
|
{
|
|
@@ -1648,7 +1042,7 @@ function EntityAuthorCard({
|
|
|
1648
1042
|
function BlogImagePlaceholder({ imageUrl, title, className = "" }) {
|
|
1649
1043
|
if (!imageUrl) return null;
|
|
1650
1044
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `relative block h-full w-full overflow-hidden bg-ods-bg ${className}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1651
|
-
|
|
1045
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
1652
1046
|
{
|
|
1653
1047
|
src: imageUrl,
|
|
1654
1048
|
alt: `Cover image for ${title}`,
|
|
@@ -1665,166 +1059,6 @@ function BlogImagePlaceholder({ imageUrl, title, className = "" }) {
|
|
|
1665
1059
|
) });
|
|
1666
1060
|
}
|
|
1667
1061
|
|
|
1668
|
-
// src/components/chat/entity-cards/content-card-frame.tsx
|
|
1669
|
-
|
|
1670
|
-
var CONTENT_CARD_FRAME_CLASS = _chunk65VVJSQZcjs.cn.call(void 0,
|
|
1671
|
-
"group isolate overflow-hidden rounded-2xl",
|
|
1672
|
-
"border border-ods-border bg-transparent",
|
|
1673
|
-
"transition-[border-color,box-shadow] duration-300 ease-out",
|
|
1674
|
-
"hover:border-ods-accent hover:shadow-lg hover:shadow-ods-accent/[0.08]"
|
|
1675
|
-
);
|
|
1676
|
-
var CONTENT_CARD_SKELETON_FRAME_CLASS = "overflow-hidden rounded-2xl border border-ods-border bg-transparent";
|
|
1677
|
-
function ContentCardFrame({ as: Tag2 = "article", className, children, ...rest }) {
|
|
1678
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Tag2, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, Tag2 === "a" && "no-underline", className), ...rest, children });
|
|
1679
|
-
}
|
|
1680
|
-
|
|
1681
|
-
// src/components/chat/entity-cards/use-cover-image-fallback.ts
|
|
1682
|
-
|
|
1683
|
-
function useCoverImageFallback(imageUrl, placeholderUrl) {
|
|
1684
|
-
const [failed, setFailed] = _react.useState.call(void 0, () => /* @__PURE__ */ new Set());
|
|
1685
|
-
const src = imageUrl && !failed.has(imageUrl) ? imageUrl : placeholderUrl && !failed.has(placeholderUrl) ? placeholderUrl : null;
|
|
1686
|
-
const onError = _react.useCallback.call(void 0, () => {
|
|
1687
|
-
if (!src) return;
|
|
1688
|
-
setFailed((prev) => new Set(prev).add(src));
|
|
1689
|
-
}, [src]);
|
|
1690
|
-
return { src, onError };
|
|
1691
|
-
}
|
|
1692
|
-
var hideOnError = (e) => {
|
|
1693
|
-
const img = e.currentTarget;
|
|
1694
|
-
img.style.display = "none";
|
|
1695
|
-
};
|
|
1696
|
-
|
|
1697
|
-
// src/components/chat/entity-cards/entity-portrait-card.tsx
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
var MIN_WIDE_RATIO = 1.3;
|
|
1701
|
-
var PORTRAIT_BODY = "flex h-full flex-col gap-6 p-6";
|
|
1702
|
-
var PORTRAIT_MEDIA = "relative flex aspect-[1200/630] w-full shrink-0 items-center justify-center overflow-hidden rounded-sm";
|
|
1703
|
-
var PORTRAIT_TITLE_ZONE = "flex h-[72px] shrink-0 flex-col justify-center gap-1.5";
|
|
1704
|
-
var PORTRAIT_TITLE_LEADING = "leading-6";
|
|
1705
|
-
var PORTRAIT_TITLE = _chunk65VVJSQZcjs.cn.call(void 0, "break-words text-ods-text-primary text-h4", PORTRAIT_TITLE_LEADING);
|
|
1706
|
-
var PORTRAIT_FOOTER = "flex h-[60px] shrink-0 items-center";
|
|
1707
|
-
var PORTRAIT_PERSON_ROW = "flex w-full min-w-0 items-center gap-3";
|
|
1708
|
-
var PORTRAIT_PERSON_TEXT = "flex min-w-0 flex-col";
|
|
1709
|
-
function EntityPortraitCard({
|
|
1710
|
-
href,
|
|
1711
|
-
target,
|
|
1712
|
-
rel,
|
|
1713
|
-
typeLabel,
|
|
1714
|
-
imageUrl,
|
|
1715
|
-
placeholderUrl,
|
|
1716
|
-
imageAlt,
|
|
1717
|
-
title,
|
|
1718
|
-
titleClassName,
|
|
1719
|
-
person,
|
|
1720
|
-
priority,
|
|
1721
|
-
className
|
|
1722
|
-
}) {
|
|
1723
|
-
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
1724
|
-
const { src, onError: onMediaError } = useCoverImageFallback(imageUrl, placeholderUrl);
|
|
1725
|
-
const [measured, setMeasured] = _react.useState.call(void 0, null);
|
|
1726
|
-
const isWide = _optionalChain([measured, 'optionalAccess', _40 => _40.src]) === src ? measured.isWide : null;
|
|
1727
|
-
const onMediaLoad = (e) => {
|
|
1728
|
-
const img = e.currentTarget;
|
|
1729
|
-
if (img.naturalWidth > 0 && img.naturalHeight > 0) {
|
|
1730
|
-
setMeasured({ src, isWide: img.naturalWidth / img.naturalHeight >= MIN_WIDE_RATIO });
|
|
1731
|
-
}
|
|
1732
|
-
};
|
|
1733
|
-
const edgeColor = _chunk3LW5TD54cjs.useImageEdgeColor.call(void 0, isWide === false ? src : null, "var(--color-bg-surface)");
|
|
1734
|
-
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel, className });
|
|
1735
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, PORTRAIT_BODY), children: [
|
|
1736
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1737
|
-
"div",
|
|
1738
|
-
{
|
|
1739
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_MEDIA, "bg-ods-bg transition-colors duration-300"),
|
|
1740
|
-
style: isWide === false ? { backgroundColor: edgeColor } : void 0,
|
|
1741
|
-
children: src && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1742
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
1743
|
-
{
|
|
1744
|
-
src,
|
|
1745
|
-
alt: imageAlt,
|
|
1746
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, "h-full w-full", isWide === false ? "object-contain" : "object-cover"),
|
|
1747
|
-
sizes: "(min-width: 800px) 400px, 100vw",
|
|
1748
|
-
fill: true,
|
|
1749
|
-
priority,
|
|
1750
|
-
unoptimized: true,
|
|
1751
|
-
onLoad: onMediaLoad,
|
|
1752
|
-
onError: onMediaError
|
|
1753
|
-
}
|
|
1754
|
-
)
|
|
1755
|
-
}
|
|
1756
|
-
),
|
|
1757
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_TITLE_ZONE, children: [
|
|
1758
|
-
typeLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1759
|
-
StatusBadge,
|
|
1760
|
-
{
|
|
1761
|
-
variant: "button",
|
|
1762
|
-
colorScheme: "accentBorder",
|
|
1763
|
-
singleLine: true,
|
|
1764
|
-
text: typeLabel,
|
|
1765
|
-
className: "self-start"
|
|
1766
|
-
}
|
|
1767
|
-
),
|
|
1768
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_TITLE, typeLabel ? "line-clamp-2" : "line-clamp-3", titleClassName), children: title })
|
|
1769
|
-
] }),
|
|
1770
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: PORTRAIT_FOOTER, children: person && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_PERSON_ROW, children: [
|
|
1771
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
1772
|
-
person.avatarUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1773
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
1774
|
-
{
|
|
1775
|
-
src: person.avatarUrl,
|
|
1776
|
-
alt: person.name,
|
|
1777
|
-
className: "h-12 w-12 rounded-full border border-ods-border bg-ods-bg object-cover",
|
|
1778
|
-
width: 48,
|
|
1779
|
-
height: 48,
|
|
1780
|
-
unoptimized: true
|
|
1781
|
-
}
|
|
1782
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: person.name.charAt(0).toUpperCase() }) }),
|
|
1783
|
-
person.iconOverlayUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 flex h-6 w-6 items-center justify-center overflow-hidden rounded-full bg-ods-text-primary ring-1 ring-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1784
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
1785
|
-
{
|
|
1786
|
-
src: person.iconOverlayUrl,
|
|
1787
|
-
alt: "",
|
|
1788
|
-
className: "h-full w-full object-cover",
|
|
1789
|
-
width: 24,
|
|
1790
|
-
height: 24,
|
|
1791
|
-
unoptimized: true
|
|
1792
|
-
}
|
|
1793
|
-
) })
|
|
1794
|
-
] }),
|
|
1795
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_PERSON_TEXT, children: [
|
|
1796
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate font-bold text-ods-text-primary text-h6", children: person.name }),
|
|
1797
|
-
person.subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: person.subtitle })
|
|
1798
|
-
] })
|
|
1799
|
-
] }) })
|
|
1800
|
-
] }) });
|
|
1801
|
-
}
|
|
1802
|
-
function EntityPortraitCardSkeleton({ typeLabel, className }) {
|
|
1803
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, PORTRAIT_BODY), children: [
|
|
1804
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_MEDIA, "rounded-sm") }),
|
|
1805
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_TITLE_ZONE, children: [
|
|
1806
|
-
typeLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1807
|
-
StatusBadge,
|
|
1808
|
-
{
|
|
1809
|
-
variant: "button",
|
|
1810
|
-
colorScheme: "accentBorder",
|
|
1811
|
-
singleLine: true,
|
|
1812
|
-
text: typeLabel,
|
|
1813
|
-
className: "self-start"
|
|
1814
|
-
}
|
|
1815
|
-
),
|
|
1816
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", lines: typeLabel ? 2 : 3, className: _chunk65VVJSQZcjs.cn.call(void 0, "w-full", PORTRAIT_TITLE_LEADING) })
|
|
1817
|
-
] }),
|
|
1818
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: PORTRAIT_FOOTER, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_PERSON_ROW, children: [
|
|
1819
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.MediaSkeleton.Avatar, { size: "md", className: "shrink-0" }),
|
|
1820
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_PERSON_TEXT, "gap-0"), children: [
|
|
1821
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-32" }),
|
|
1822
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-24" })
|
|
1823
|
-
] })
|
|
1824
|
-
] }) })
|
|
1825
|
-
] }) });
|
|
1826
|
-
}
|
|
1827
|
-
|
|
1828
1062
|
// src/components/features/platform-badge.tsx
|
|
1829
1063
|
|
|
1830
1064
|
var sizeClasses = {
|
|
@@ -1845,19 +1079,20 @@ var sizeClasses = {
|
|
|
1845
1079
|
}
|
|
1846
1080
|
};
|
|
1847
1081
|
var PLATFORM_BADGE_FRAME_CLASS = "inline-flex items-center rounded-full border";
|
|
1848
|
-
function PlatformBadge({ platform, size = "sm", showLabel = true, className }) {
|
|
1849
|
-
|
|
1082
|
+
function PlatformBadge({ platform, size = "sm", showLabel = true, className, loading }) {
|
|
1083
|
+
const inScope = _chunkN6YCOBLKcjs.useLoadingScope.call(void 0, );
|
|
1084
|
+
if (loading || inScope && !platform) {
|
|
1850
1085
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PlatformBadgeSkeleton, { size, showLabel, className });
|
|
1851
1086
|
}
|
|
1852
1087
|
if (!platform) {
|
|
1853
1088
|
return null;
|
|
1854
1089
|
}
|
|
1855
1090
|
const sizes = sizeClasses[size];
|
|
1856
|
-
const colors =
|
|
1091
|
+
const colors = _chunkIYU2ZH2Jcjs.getPlatformBrandClasses.call(void 0, platform.name);
|
|
1857
1092
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1858
1093
|
"div",
|
|
1859
1094
|
{
|
|
1860
|
-
className:
|
|
1095
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
1861
1096
|
PLATFORM_BADGE_FRAME_CLASS,
|
|
1862
1097
|
sizes.container,
|
|
1863
1098
|
colors.accentBgSoft,
|
|
@@ -1867,7 +1102,7 @@ function PlatformBadge({ platform, size = "sm", showLabel = true, className }) {
|
|
|
1867
1102
|
className
|
|
1868
1103
|
),
|
|
1869
1104
|
children: [
|
|
1870
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1105
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIYU2ZH2Jcjs.PlatformMark, { platform: platform.name, className: sizes.icon }),
|
|
1871
1106
|
showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: sizes.text, children: platform.display_name || platform.name })
|
|
1872
1107
|
]
|
|
1873
1108
|
}
|
|
@@ -1885,10 +1120,10 @@ function PlatformBadgeSkeleton({
|
|
|
1885
1120
|
}) {
|
|
1886
1121
|
const box = PLATFORM_BADGE_SKELETON_SIZE[size];
|
|
1887
1122
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1888
|
-
|
|
1123
|
+
_chunkYNDH72VUcjs.UnifiedSkeleton,
|
|
1889
1124
|
{
|
|
1890
1125
|
as: "span",
|
|
1891
|
-
className:
|
|
1126
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
1892
1127
|
"inline-block rounded-full align-middle text-h6",
|
|
1893
1128
|
box.height,
|
|
1894
1129
|
showLabel ? box.width : box.iconOnly,
|
|
@@ -1902,7 +1137,7 @@ function PlatformBadgeSkeleton({
|
|
|
1902
1137
|
|
|
1903
1138
|
|
|
1904
1139
|
var ADMIN_CARD_FRAME = "flex h-full flex-col";
|
|
1905
|
-
var ADMIN_CARD_COVER = `relative ${
|
|
1140
|
+
var ADMIN_CARD_COVER = `relative ${_chunkYNDH72VUcjs.MEDIA_ASPECT.photo} w-full shrink-0 overflow-hidden`;
|
|
1906
1141
|
var ADMIN_CARD_BODY = "flex flex-1 flex-col gap-3 p-5";
|
|
1907
1142
|
var ADMIN_CARD_BADGES = "flex flex-wrap items-center gap-2";
|
|
1908
1143
|
var ADMIN_CARD_BADGES_RESERVED = "min-h-7";
|
|
@@ -1920,27 +1155,29 @@ function AdminContentCard({
|
|
|
1920
1155
|
actions,
|
|
1921
1156
|
reserveRows = false,
|
|
1922
1157
|
subtitleRow = true,
|
|
1923
|
-
className
|
|
1158
|
+
className,
|
|
1159
|
+
loading
|
|
1924
1160
|
}) {
|
|
1925
1161
|
const [imageError, setImageError] = _react.useState.call(void 0, false);
|
|
1926
1162
|
const [loadedUrl, setLoadedUrl] = _react.useState.call(void 0, null);
|
|
1927
1163
|
const displayUrl = imageUrl && !imageError ? imageUrl : placeholderUrl;
|
|
1928
1164
|
const imageLoaded = Boolean(displayUrl) && loadedUrl === displayUrl;
|
|
1929
|
-
const imageBgColor =
|
|
1930
|
-
|
|
1931
|
-
|
|
1165
|
+
const imageBgColor = _chunkDJTPDK3Wcjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
|
|
1166
|
+
const inScope = _chunkN6YCOBLKcjs.useLoadingScope.call(void 0, );
|
|
1167
|
+
if (inScope || loading) {
|
|
1168
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AdminContentCardSkeleton, { className, subtitleRow, actions: actions || false });
|
|
1932
1169
|
}
|
|
1933
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className:
|
|
1170
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_FRAME_CLASS, ADMIN_CARD_FRAME, className), children: [
|
|
1934
1171
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ADMIN_CARD_COVER, style: { backgroundColor: imageBgColor }, children: displayUrl ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1935
|
-
!imageLoaded && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1172
|
+
!imageLoaded && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { className: "absolute inset-0 h-full rounded-none" }),
|
|
1936
1173
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1937
|
-
|
|
1174
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
1938
1175
|
{
|
|
1939
1176
|
src: displayUrl,
|
|
1940
1177
|
alt: title,
|
|
1941
1178
|
fill: true,
|
|
1942
1179
|
sizes: "(min-width: 1280px) 33vw, (min-width: 768px) 50vw, 100vw",
|
|
1943
|
-
className:
|
|
1180
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
1944
1181
|
"object-contain object-center",
|
|
1945
1182
|
"transition-transform duration-500 ease-out",
|
|
1946
1183
|
"group-hover:scale-[1.03]",
|
|
@@ -1953,11 +1190,11 @@ function AdminContentCard({
|
|
|
1953
1190
|
)
|
|
1954
1191
|
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 bg-ods-bg" }) }),
|
|
1955
1192
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ADMIN_CARD_BODY, children: [
|
|
1956
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className:
|
|
1957
|
-
(subtitle || reserveRows && subtitleRow) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className:
|
|
1958
|
-
(summary || reserveRows) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className:
|
|
1959
|
-
(Number(_optionalChain([platforms, 'optionalAccess',
|
|
1960
|
-
_optionalChain([platforms, 'optionalAccess',
|
|
1193
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunkN6YCOBLKcjs.cn.call(void 0, "line-clamp-2 break-words text-ods-text-primary text-h3", reserveRows && "min-h-[2lh]"), children: title }),
|
|
1194
|
+
(subtitle || reserveRows && subtitleRow) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkN6YCOBLKcjs.cn.call(void 0, "truncate text-ods-text-secondary text-h6", reserveRows && "min-h-[1lh]"), children: subtitle }),
|
|
1195
|
+
(summary || reserveRows) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkN6YCOBLKcjs.cn.call(void 0, "line-clamp-2 text-ods-text-secondary text-h6", reserveRows && "min-h-[2lh]"), children: summary }),
|
|
1196
|
+
(Number(_optionalChain([platforms, 'optionalAccess', _16 => _16.length])) > 0 || badges || reserveRows) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, ADMIN_CARD_BADGES, reserveRows && ADMIN_CARD_BADGES_RESERVED), children: [
|
|
1197
|
+
_optionalChain([platforms, 'optionalAccess', _17 => _17.map, 'call', _18 => _18((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1961
1198
|
PlatformBadge,
|
|
1962
1199
|
{
|
|
1963
1200
|
platform: { id: p.id || p.platform_id || "", name: p.name, display_name: p.display_name || p.name },
|
|
@@ -1967,7 +1204,7 @@ function AdminContentCard({
|
|
|
1967
1204
|
))]),
|
|
1968
1205
|
badges
|
|
1969
1206
|
] }),
|
|
1970
|
-
(meta || reserveRows) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
1207
|
+
(meta || reserveRows) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, ADMIN_CARD_META, reserveRows && "min-h-[1lh]"), children: meta }),
|
|
1971
1208
|
actions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ADMIN_CARD_ACTIONS, children: actions })
|
|
1972
1209
|
] })
|
|
1973
1210
|
] });
|
|
@@ -1977,22 +1214,22 @@ function AdminContentCardSkeleton({
|
|
|
1977
1214
|
actions = true,
|
|
1978
1215
|
subtitleRow = true
|
|
1979
1216
|
}) {
|
|
1980
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1981
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1217
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_SKELETON_FRAME_CLASS, ADMIN_CARD_FRAME, className), "aria-hidden": true, children: [
|
|
1218
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { className: _chunkN6YCOBLKcjs.cn.call(void 0, ADMIN_CARD_COVER, "rounded-none") }),
|
|
1982
1219
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ADMIN_CARD_BODY, children: [
|
|
1983
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1984
|
-
subtitleRow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1985
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1986
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1987
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1988
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1220
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-full" }),
|
|
1221
|
+
subtitleRow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", className: "w-1/2" }),
|
|
1222
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-full" }),
|
|
1223
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, ADMIN_CARD_BADGES, ADMIN_CARD_BADGES_RESERVED), children: [
|
|
1224
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PlatformBadge, { loading: true, size: "xs" }),
|
|
1225
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PlatformBadge, { loading: true, size: "xs" })
|
|
1989
1226
|
] }),
|
|
1990
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ADMIN_CARD_META, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1227
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ADMIN_CARD_META, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", className: "w-32" }) }),
|
|
1991
1228
|
actions === true ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ADMIN_CARD_ACTIONS, children: [
|
|
1992
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1229
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.InteractiveSkeleton.Button, { size: "small-legacy" }),
|
|
1993
1230
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-[var(--spacing-system-xsf)]", children: [
|
|
1994
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1995
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1231
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.InteractiveSkeleton.Button, { size: "small-legacy", className: "w-20" }),
|
|
1232
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.InteractiveSkeleton.Button, { size: "small-legacy", className: "w-20" })
|
|
1996
1233
|
] })
|
|
1997
1234
|
] }) : actions ? (
|
|
1998
1235
|
// The caller's own controls, drawn as they are but never focused while the card is a skeleton.
|
|
@@ -2039,7 +1276,7 @@ var SENTENCE_MARK = /([.:?!]+)(?=\s|$)/g;
|
|
|
2039
1276
|
var ONLY_MARKS = /^\s*[.:?!]+\s*$/;
|
|
2040
1277
|
function headingAccentClass(platform, tone = "accent") {
|
|
2041
1278
|
if (!platform) return "text-ods-accent";
|
|
2042
|
-
const classes =
|
|
1279
|
+
const classes = _chunkIYU2ZH2Jcjs.getPlatformBrandClasses.call(void 0, platform);
|
|
2043
1280
|
return tone === "secondary" ? classes.secondaryText : classes.accentText;
|
|
2044
1281
|
}
|
|
2045
1282
|
function accentSentenceMarks(node, platform, tone = "accent") {
|
|
@@ -2103,8 +1340,25 @@ function SectionHeading({
|
|
|
2103
1340
|
presentational = false,
|
|
2104
1341
|
platform,
|
|
2105
1342
|
tone = "accent",
|
|
2106
|
-
className
|
|
1343
|
+
className,
|
|
1344
|
+
loading
|
|
2107
1345
|
}) {
|
|
1346
|
+
if (loading) {
|
|
1347
|
+
const shape = loading === true ? {} : loading;
|
|
1348
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1349
|
+
SectionHeadingSkeleton,
|
|
1350
|
+
{
|
|
1351
|
+
level,
|
|
1352
|
+
eyebrow,
|
|
1353
|
+
titleWidth: shape.titleWidth,
|
|
1354
|
+
intro: shape.intro,
|
|
1355
|
+
action,
|
|
1356
|
+
platform,
|
|
1357
|
+
tone,
|
|
1358
|
+
className
|
|
1359
|
+
}
|
|
1360
|
+
);
|
|
1361
|
+
}
|
|
2108
1362
|
const accentClassName = headingAccentClass(platform, tone);
|
|
2109
1363
|
const layout = SECTION_HEADING_LAYOUT[level];
|
|
2110
1364
|
const Tag2 = presentational ? "div" : level === "page" ? "h1" : "h2";
|
|
@@ -2153,11 +1407,11 @@ function SectionHeadingSkeleton({
|
|
|
2153
1407
|
const introLines = intro === true ? 2 : intro || 0;
|
|
2154
1408
|
const stack = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: layout.stack, "aria-hidden": true, children: [
|
|
2155
1409
|
eyebrow ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SectionEyebrow, { platform, tone, children: eyebrow }) : null,
|
|
2156
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: layout.heading, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1410
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: layout.heading, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "inherit", className: titleWidth }) }),
|
|
2157
1411
|
introLines > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: layout.intro, children: Array.from({ length: introLines }, (_, i) => (
|
|
2158
1412
|
// biome-ignore lint/suspicious/noArrayIndexKey: skeleton lines never reorder
|
|
2159
1413
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2160
|
-
|
|
1414
|
+
_chunkYNDH72VUcjs.TextLineSkeleton,
|
|
2161
1415
|
{
|
|
2162
1416
|
type: "inherit",
|
|
2163
1417
|
className: i === introLines - 1 && introLines > 1 ? "w-2/3" : "w-full"
|
|
@@ -2179,135 +1433,14 @@ function SectionHeadingSkeleton({
|
|
|
2179
1433
|
);
|
|
2180
1434
|
}
|
|
2181
1435
|
|
|
2182
|
-
// src/components/
|
|
2183
|
-
var DEFAULT_VIDEO_BITES_TITLE = "Key Moments";
|
|
2184
|
-
function toStripProfile(p, fallbackSubtitle) {
|
|
2185
|
-
if (!_optionalChain([p, 'optionalAccess', _44 => _44.full_name])) return null;
|
|
2186
|
-
return {
|
|
2187
|
-
name: p.full_name,
|
|
2188
|
-
avatarUrl: _nullishCoalesce(p.avatar_url, () => ( null)),
|
|
2189
|
-
subtitle: _nullishCoalesce(_nullishCoalesce(p.job_title, () => ( fallbackSubtitle)), () => ( null))
|
|
2190
|
-
};
|
|
2191
|
-
}
|
|
2192
|
-
function sortBitesByCreatedAtDesc(a, b) {
|
|
2193
|
-
if (!a.created_at && !b.created_at) return 0;
|
|
2194
|
-
if (!a.created_at) return 1;
|
|
2195
|
-
if (!b.created_at) return -1;
|
|
2196
|
-
return new Date(b.created_at).getTime() - new Date(a.created_at).getTime();
|
|
2197
|
-
}
|
|
2198
|
-
function sortBitesByFeaturedAtDesc(a, b) {
|
|
2199
|
-
if (!a.featured_at && !b.featured_at) return 0;
|
|
2200
|
-
if (!a.featured_at) return 1;
|
|
2201
|
-
if (!b.featured_at) return -1;
|
|
2202
|
-
return new Date(b.featured_at).getTime() - new Date(a.featured_at).getTime();
|
|
2203
|
-
}
|
|
2204
|
-
function programItemToStripProfile(item) {
|
|
2205
|
-
const fromAuthor = toStripProfile(item.author);
|
|
2206
|
-
if (fromAuthor) return fromAuthor;
|
|
2207
|
-
const host = _nullishCoalesce(_optionalChain([item, 'access', _45 => _45.hosts, 'optionalAccess', _46 => _46[0]]), () => ( null));
|
|
2208
|
-
if (!_optionalChain([host, 'optionalAccess', _47 => _47.name])) return null;
|
|
2209
|
-
return toStripProfile({ full_name: host.name, avatar_url: _nullishCoalesce(host.avatar_url, () => ( null)) });
|
|
2210
|
-
}
|
|
1436
|
+
// src/components/shared/product-release/product-release-card.tsx
|
|
2211
1437
|
|
|
2212
|
-
// src/components/features/video-hover-preview.tsx
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
function VideoHoverPreviewSurface({
|
|
2216
|
-
url,
|
|
2217
|
-
posterUrl = null,
|
|
2218
|
-
active,
|
|
2219
|
-
playerMounted,
|
|
2220
|
-
isClone = false,
|
|
2221
|
-
badge = "play",
|
|
2222
|
-
fit,
|
|
2223
|
-
posterSizes = "234px",
|
|
2224
|
-
posterInView = false,
|
|
2225
|
-
preload,
|
|
2226
|
-
hideMutedBadge,
|
|
2227
|
-
onMutedFallbackChange,
|
|
2228
|
-
previewHandleRef,
|
|
2229
|
-
mutedIntent = false,
|
|
2230
|
-
continuation = false,
|
|
2231
|
-
startTime,
|
|
2232
|
-
autoPlay = false,
|
|
2233
|
-
startMuted = false,
|
|
2234
|
-
onEnded,
|
|
2235
|
-
className
|
|
2236
|
-
}) {
|
|
2237
|
-
const previewUrl = _chunkSETFUCZAcjs.toMuxPreviewUrl.call(void 0, url);
|
|
2238
|
-
const gateControlled = playerMounted !== void 0;
|
|
2239
|
-
const rootElRef = _react.useRef.call(void 0, null);
|
|
2240
|
-
const [isNear, setIsNear] = _react.useState.call(void 0, false);
|
|
2241
|
-
_react.useEffect.call(void 0, () => {
|
|
2242
|
-
if (gateControlled) return void 0;
|
|
2243
|
-
const el = rootElRef.current;
|
|
2244
|
-
if (!el || typeof IntersectionObserver === "undefined") return void 0;
|
|
2245
|
-
const io = new IntersectionObserver((entries) => setIsNear(_nullishCoalesce(_optionalChain([entries, 'access', _48 => _48[0], 'optionalAccess', _49 => _49.isIntersecting]), () => ( false))), {
|
|
2246
|
-
rootMargin: _chunkNTPX5GXIcjs.NEAR_VIEWPORT_ROOT_MARGIN
|
|
2247
|
-
});
|
|
2248
|
-
io.observe(el);
|
|
2249
|
-
return () => io.disconnect();
|
|
2250
|
-
}, [gateControlled]);
|
|
2251
|
-
const showMedia = continuation || (gateControlled ? playerMounted : isNear);
|
|
2252
|
-
const [engaged, setEngaged] = _react.useState.call(void 0, false);
|
|
2253
|
-
if ((active || continuation) && !engaged) setEngaged(true);
|
|
2254
|
-
const showPlayer = continuation || engaged;
|
|
2255
|
-
const { src: posterSrc, onError: onPosterError } = useCoverImageFallback(posterUrl);
|
|
2256
|
-
const facadeSkipped = preload === "none" && !posterSrc;
|
|
2257
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rootElRef, className: _chunk65VVJSQZcjs.cn.call(void 0, "absolute inset-0", className), inert: isClone || void 0, children: showMedia ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
2258
|
-
posterSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2259
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
2260
|
-
{
|
|
2261
|
-
src: posterSrc,
|
|
2262
|
-
alt: "",
|
|
2263
|
-
fill: true,
|
|
2264
|
-
sizes: posterSizes,
|
|
2265
|
-
loading: posterInView ? "eager" : "lazy",
|
|
2266
|
-
unoptimized: true,
|
|
2267
|
-
onError: onPosterError,
|
|
2268
|
-
className: "object-cover"
|
|
2269
|
-
}
|
|
2270
|
-
) : facadeSkipped ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 bg-ods-card" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Video, { kind: "file", url: previewUrl, firstFrameOnly: true, layout: "fill", fit }),
|
|
2271
|
-
badge === "play" && !active && !continuation && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.VideoPlayBadge, { className: "absolute inset-0 z-10 m-auto" }),
|
|
2272
|
-
showPlayer ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2273
|
-
"div",
|
|
2274
|
-
{
|
|
2275
|
-
className: "absolute inset-0",
|
|
2276
|
-
style: { "--media-background-color": "transparent" },
|
|
2277
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2278
|
-
Video,
|
|
2279
|
-
{
|
|
2280
|
-
kind: "file",
|
|
2281
|
-
url: previewUrl,
|
|
2282
|
-
poster: posterUrl,
|
|
2283
|
-
...continuation ? {
|
|
2284
|
-
startTime,
|
|
2285
|
-
autoPlay: autoPlay && startMuted,
|
|
2286
|
-
startMuted,
|
|
2287
|
-
autoPlayUnmuted: autoPlay && !startMuted
|
|
2288
|
-
} : { playWhenHovered: active },
|
|
2289
|
-
chromeless: true,
|
|
2290
|
-
layout: "fill",
|
|
2291
|
-
fit,
|
|
2292
|
-
preload,
|
|
2293
|
-
mutedIntent,
|
|
2294
|
-
hideMutedBadge,
|
|
2295
|
-
onMutedFallbackChange,
|
|
2296
|
-
onEnded,
|
|
2297
|
-
playerHandleRef: previewHandleRef
|
|
2298
|
-
},
|
|
2299
|
-
continuation ? "continuation" : "preview"
|
|
2300
|
-
)
|
|
2301
|
-
}
|
|
2302
|
-
) : null
|
|
2303
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 bg-ods-card" }) });
|
|
2304
|
-
}
|
|
2305
1438
|
|
|
2306
1439
|
// src/components/shared/product-release/product-release-card-classes.ts
|
|
2307
1440
|
var RELEASE_CARD_LG_FRAME_CLASS = "flex flex-col gap-4 p-6";
|
|
2308
1441
|
var RELEASE_CARD_HERO_CLASS = "flex flex-col gap-4 content-md:flex-row content-md:gap-6";
|
|
2309
1442
|
var RELEASE_CARD_COVER_COLUMN_CLASS = "w-full flex-shrink-0 content-md:w-[256px]";
|
|
2310
|
-
var RELEASE_CARD_COVER_BOX_CLASS = `relative ${
|
|
1443
|
+
var RELEASE_CARD_COVER_BOX_CLASS = `relative ${_chunkYNDH72VUcjs.MEDIA_ASPECT.og} w-full overflow-hidden rounded-lg`;
|
|
2311
1444
|
var RELEASE_CARD_TEXT_COLUMN_CLASS = "flex min-w-0 flex-1 flex-col";
|
|
2312
1445
|
var RELEASE_CARD_VERSION_ROW_CLASS = "mb-3 flex items-center gap-3";
|
|
2313
1446
|
var RELEASE_CARD_VERSION_CLASS = "truncate font-semibold text-ods-text-primary text-code";
|
|
@@ -2327,22 +1460,22 @@ var RELEASE_CARD_CELL_LABELS = ["Type", "Status", "Released"];
|
|
|
2327
1460
|
|
|
2328
1461
|
function ProductReleaseCardSkeleton({ className, size = "lg" }) {
|
|
2329
1462
|
if (size === "lg") {
|
|
2330
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1463
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_SKELETON_FRAME_CLASS, RELEASE_CARD_LG_FRAME_CLASS, className), "aria-hidden": true, children: [
|
|
2331
1464
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_HERO_CLASS, children: [
|
|
2332
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_COVER_COLUMN_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1465
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_COVER_COLUMN_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { className: RELEASE_CARD_COVER_BOX_CLASS }) }),
|
|
2333
1466
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_TEXT_COLUMN_CLASS, children: [
|
|
2334
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_VERSION_ROW_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: RELEASE_CARD_VERSION_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2335
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_TITLE_BOX_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className:
|
|
2336
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_SUMMARY_BOX_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: RELEASE_CARD_SUMMARY_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1467
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_VERSION_ROW_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: RELEASE_CARD_VERSION_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-16" }) }) }),
|
|
1468
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_TITLE_BOX_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunkN6YCOBLKcjs.cn.call(void 0, RELEASE_CARD_TITLE_CLASS, "w-full"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "inherit", as: "span", lines: 2, className: "w-3/4" }) }) }),
|
|
1469
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_SUMMARY_BOX_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: RELEASE_CARD_SUMMARY_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "inherit", as: "span", lines: 3, className: "w-full" }) }) })
|
|
2337
1470
|
] })
|
|
2338
1471
|
] }),
|
|
2339
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_CHANGELOG_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-loading-item": true, className: "inline-flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1472
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_CHANGELOG_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-loading-item": true, className: "inline-flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-24" }) }) }),
|
|
2340
1473
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_GRID_CLASS, children: [
|
|
2341
|
-
RELEASE_CARD_CELL_LABELS.map((label, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2342
|
-
i === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1474
|
+
RELEASE_CARD_CELL_LABELS.map((label, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, RELEASE_CARD_CELL_CLASS, RELEASE_CARD_CELL_DIVIDER_CLASS), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_CELL_STACK_CLASS, children: [
|
|
1475
|
+
i === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJQWYXC2Ecjs.StatusBadge, { loading: true, text: "", variant: "card", className: "justify-self-start" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-24" }) }),
|
|
2343
1476
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: RELEASE_CARD_CELL_LABEL_CLASS, children: label })
|
|
2344
1477
|
] }) }, label)),
|
|
2345
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1478
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataAuthorCell, { loading: true })
|
|
2346
1479
|
] })
|
|
2347
1480
|
] });
|
|
2348
1481
|
}
|
|
@@ -2350,20 +1483,20 @@ function ProductReleaseCardSkeleton({ className, size = "lg" }) {
|
|
|
2350
1483
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2351
1484
|
"span",
|
|
2352
1485
|
{
|
|
2353
|
-
className:
|
|
1486
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
2354
1487
|
"my-1.5 flex w-full items-start gap-3",
|
|
2355
1488
|
"rounded-lg border border-ods-border bg-ods-card p-2",
|
|
2356
1489
|
className
|
|
2357
1490
|
),
|
|
2358
1491
|
children: [
|
|
2359
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1492
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { as: "span", className: "block aspect-square h-14 w-14 shrink-0 self-start rounded-md" }),
|
|
2360
1493
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-h-14 min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
2361
1494
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex h-5 min-w-0 items-center gap-2", children: [
|
|
2362
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2363
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1495
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-3/5 rounded" }),
|
|
1496
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { as: "span", className: "h-4 w-12 shrink-0 rounded" })
|
|
2364
1497
|
] }),
|
|
2365
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2366
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1498
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-1/3 rounded" }) }),
|
|
1499
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-11/12 rounded" }) })
|
|
2367
1500
|
] })
|
|
2368
1501
|
]
|
|
2369
1502
|
}
|
|
@@ -2372,6 +1505,229 @@ function ProductReleaseCardSkeleton({ className, size = "lg" }) {
|
|
|
2372
1505
|
throw new Error(`ProductReleaseCardSkeleton: unsupported size '${size}'`);
|
|
2373
1506
|
}
|
|
2374
1507
|
|
|
1508
|
+
// src/components/shared/product-release/product-release-card.tsx
|
|
1509
|
+
|
|
1510
|
+
function ProductReleaseCard(props) {
|
|
1511
|
+
if (_chunkN6YCOBLKcjs.useLoadingScope.call(void 0, ) || props.loading) {
|
|
1512
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: _nullishCoalesce(props.size, () => ( "lg")), className: props.className });
|
|
1513
|
+
}
|
|
1514
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedProductReleaseCard, { ...props });
|
|
1515
|
+
}
|
|
1516
|
+
function LoadedProductReleaseCard({
|
|
1517
|
+
title,
|
|
1518
|
+
summary,
|
|
1519
|
+
version,
|
|
1520
|
+
formattedDate,
|
|
1521
|
+
onClick,
|
|
1522
|
+
anchorProps,
|
|
1523
|
+
className,
|
|
1524
|
+
size = "lg",
|
|
1525
|
+
coverImage,
|
|
1526
|
+
hasVideoCover,
|
|
1527
|
+
releaseType,
|
|
1528
|
+
releaseStatus,
|
|
1529
|
+
releaseTypeBadgeColor,
|
|
1530
|
+
viewCount,
|
|
1531
|
+
author,
|
|
1532
|
+
changelogCounts
|
|
1533
|
+
}) {
|
|
1534
|
+
if (size === "lg") {
|
|
1535
|
+
const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _19 => _19.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _20 => _20.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _21 => _21.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _22 => _22.breaking]), () => ( 0)));
|
|
1536
|
+
const valueCells = [
|
|
1537
|
+
releaseType && releaseTypeBadgeColor ? {
|
|
1538
|
+
value: releaseType.toUpperCase(),
|
|
1539
|
+
label: RELEASE_CARD_CELL_LABELS[0],
|
|
1540
|
+
uppercase: true,
|
|
1541
|
+
colorScheme: releaseTypeBadgeColor
|
|
1542
|
+
} : { value: "\u2014", label: RELEASE_CARD_CELL_LABELS[0], uppercase: false },
|
|
1543
|
+
releaseStatus ? {
|
|
1544
|
+
value: releaseStatus.toUpperCase(),
|
|
1545
|
+
label: RELEASE_CARD_CELL_LABELS[1],
|
|
1546
|
+
uppercase: true
|
|
1547
|
+
} : { value: "\u2014", label: RELEASE_CARD_CELL_LABELS[1], uppercase: false },
|
|
1548
|
+
formattedDate ? {
|
|
1549
|
+
value: formattedDate,
|
|
1550
|
+
label: RELEASE_CARD_CELL_LABELS[2],
|
|
1551
|
+
uppercase: false
|
|
1552
|
+
} : { value: "\u2014", label: RELEASE_CARD_CELL_LABELS[2], uppercase: false }
|
|
1553
|
+
];
|
|
1554
|
+
const effectiveAuthor = _optionalChain([author, 'optionalAccess', _23 => _23.full_name]) ? author : { full_name: "\u2014", avatar_url: null, job_title: "Unknown" };
|
|
1555
|
+
const dividerClass = RELEASE_CARD_CELL_DIVIDER_CLASS;
|
|
1556
|
+
const interactive = !!anchorProps || !!onClick;
|
|
1557
|
+
const frameClass = _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
1558
|
+
interactive ? _chunkJQWYXC2Ecjs.CONTENT_CARD_FRAME_CLASS : _chunkJQWYXC2Ecjs.CONTENT_CARD_SKELETON_FRAME_CLASS,
|
|
1559
|
+
RELEASE_CARD_LG_FRAME_CLASS,
|
|
1560
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-2 focus-visible:ring-offset-ods-bg",
|
|
1561
|
+
"no-underline",
|
|
1562
|
+
className
|
|
1563
|
+
);
|
|
1564
|
+
const innerLayout = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1565
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_HERO_CLASS, children: [
|
|
1566
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_COVER_COLUMN_CLASS, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, RELEASE_CARD_COVER_BOX_CLASS, "bg-ods-bg"), children: [
|
|
1567
|
+
coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1568
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
1569
|
+
{
|
|
1570
|
+
src: coverImage,
|
|
1571
|
+
alt: title,
|
|
1572
|
+
fill: true,
|
|
1573
|
+
sizes: "(max-width: 768px) 100vw, 256px",
|
|
1574
|
+
className: "object-cover",
|
|
1575
|
+
unoptimized: true
|
|
1576
|
+
}
|
|
1577
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Package, { className: "h-8 w-8" }) }),
|
|
1578
|
+
hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTSRCFXPcjs.CardHoverPlay, { size: "md" })
|
|
1579
|
+
] }) }),
|
|
1580
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_TEXT_COLUMN_CLASS, children: [
|
|
1581
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_VERSION_ROW_CLASS, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: RELEASE_CARD_VERSION_CLASS, children: [
|
|
1582
|
+
"v",
|
|
1583
|
+
version
|
|
1584
|
+
] }) }),
|
|
1585
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_TITLE_BOX_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: RELEASE_CARD_TITLE_CLASS, children: title }) }),
|
|
1586
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_SUMMARY_BOX_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: RELEASE_CARD_SUMMARY_CLASS, children: _nullishCoalesce(summary, () => ( "")) }) })
|
|
1587
|
+
] })
|
|
1588
|
+
] }),
|
|
1589
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_CHANGELOG_CLASS, children: totalChangelog > 0 && changelogCounts ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1590
|
+
changelogCounts.features > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { "data-loading-item": true, className: "inline-flex items-center gap-1.5", children: [
|
|
1591
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "h-3.5 w-3.5" }),
|
|
1592
|
+
changelogCounts.features,
|
|
1593
|
+
" ",
|
|
1594
|
+
changelogCounts.features === 1 ? "feature" : "features"
|
|
1595
|
+
] }),
|
|
1596
|
+
changelogCounts.fixes > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { "data-loading-item": true, className: "inline-flex items-center gap-1.5", children: [
|
|
1597
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wrench, { className: "h-3.5 w-3.5" }),
|
|
1598
|
+
changelogCounts.fixes,
|
|
1599
|
+
" ",
|
|
1600
|
+
changelogCounts.fixes === 1 ? "fix" : "fixes"
|
|
1601
|
+
] }),
|
|
1602
|
+
changelogCounts.improvements > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { "data-loading-item": true, className: "inline-flex items-center gap-1.5", children: [
|
|
1603
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TrendingUp, { className: "h-3.5 w-3.5" }),
|
|
1604
|
+
changelogCounts.improvements,
|
|
1605
|
+
" ",
|
|
1606
|
+
changelogCounts.improvements === 1 ? "improvement" : "improvements"
|
|
1607
|
+
] }),
|
|
1608
|
+
changelogCounts.breaking > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { "data-loading-item": true, className: "inline-flex items-center gap-1.5 text-ods-warning", children: [
|
|
1609
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "h-3.5 w-3.5" }),
|
|
1610
|
+
changelogCounts.breaking,
|
|
1611
|
+
" breaking"
|
|
1612
|
+
] })
|
|
1613
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-loading-item": true, className: "text-ods-text-secondary", children: "No changelog entries yet" }) }),
|
|
1614
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_GRID_CLASS, children: [
|
|
1615
|
+
valueCells.map((cell, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, RELEASE_CARD_CELL_CLASS, dividerClass), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_CELL_STACK_CLASS, children: [
|
|
1616
|
+
cell.colorScheme ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1617
|
+
_chunkJQWYXC2Ecjs.StatusBadge,
|
|
1618
|
+
{
|
|
1619
|
+
text: cell.value,
|
|
1620
|
+
variant: "card",
|
|
1621
|
+
colorScheme: cell.colorScheme,
|
|
1622
|
+
singleLine: true,
|
|
1623
|
+
className: "justify-self-start"
|
|
1624
|
+
}
|
|
1625
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1626
|
+
"p",
|
|
1627
|
+
{
|
|
1628
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
1629
|
+
"text-h4",
|
|
1630
|
+
// Em-dash placeholder reads as secondary text;
|
|
1631
|
+
// populated values stay primary.
|
|
1632
|
+
cell.value === "\u2014" ? "text-ods-text-secondary" : "text-ods-text-primary"
|
|
1633
|
+
),
|
|
1634
|
+
children: cell.uppercase ? cell.value.toLocaleUpperCase() : cell.value
|
|
1635
|
+
}
|
|
1636
|
+
),
|
|
1637
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: RELEASE_CARD_CELL_LABEL_CLASS, children: cell.label })
|
|
1638
|
+
] }) }, `${cell.label}-${i}`)),
|
|
1639
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 p-4", children: [
|
|
1640
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1641
|
+
_chunkAFJEUBDScjs.SquareAvatar,
|
|
1642
|
+
{
|
|
1643
|
+
src: _nullishCoalesce(effectiveAuthor.avatar_url, () => ( void 0)),
|
|
1644
|
+
alt: effectiveAuthor.full_name,
|
|
1645
|
+
fallback: effectiveAuthor.full_name.charAt(0).toUpperCase(),
|
|
1646
|
+
size: "md",
|
|
1647
|
+
variant: "round"
|
|
1648
|
+
}
|
|
1649
|
+
),
|
|
1650
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-0", children: [
|
|
1651
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate tracking-[-0.36px] text-ods-text-primary text-h3", children: effectiveAuthor.full_name }),
|
|
1652
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: effectiveAuthor.job_title || "Author" })
|
|
1653
|
+
] })
|
|
1654
|
+
] })
|
|
1655
|
+
] }),
|
|
1656
|
+
typeof viewCount === "number" && viewCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5 text-ods-text-secondary text-h6", children: [
|
|
1657
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Eye, { className: "h-3.5 w-3.5" }),
|
|
1658
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
|
|
1659
|
+
viewCount.toLocaleString(),
|
|
1660
|
+
" views"
|
|
1661
|
+
] })
|
|
1662
|
+
] })
|
|
1663
|
+
] });
|
|
1664
|
+
if (anchorProps) {
|
|
1665
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { ...anchorProps, className: frameClass, children: innerLayout });
|
|
1666
|
+
}
|
|
1667
|
+
if (onClick) {
|
|
1668
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveCard, { clickable: true, onClick, className: frameClass, children: innerLayout });
|
|
1669
|
+
}
|
|
1670
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: frameClass, children: innerLayout });
|
|
1671
|
+
}
|
|
1672
|
+
if (size === "sm") {
|
|
1673
|
+
const handleKey = (e) => {
|
|
1674
|
+
if (!onClick) return;
|
|
1675
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
1676
|
+
e.preventDefault();
|
|
1677
|
+
onClick();
|
|
1678
|
+
}
|
|
1679
|
+
};
|
|
1680
|
+
const isInteractive = !!anchorProps || !!onClick;
|
|
1681
|
+
const outerClassName = _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
1682
|
+
// The base frame (`my-1.5 flex … no-underline`) mirrors the
|
|
1683
|
+
// hub's `COMPACT_CARD_OUTER` in `components/shared/compact-
|
|
1684
|
+
// card/compact-card-classes.ts` byte-for-byte. The OSS lib
|
|
1685
|
+
// can't import from the consumer, so the two strings are
|
|
1686
|
+
// kept identical by hand — if you edit one, edit the other.
|
|
1687
|
+
//
|
|
1688
|
+
// The interactive branch ADDS `cursor-pointer` + a focus-
|
|
1689
|
+
// visible ring. The `<Link>` form would normally get focus styling
|
|
1690
|
+
// from the browser, but `no-underline` strips the default
|
|
1691
|
+
// affordance, so explicit ring styles match the `<span role>` form.
|
|
1692
|
+
"my-1.5 flex w-full items-start gap-3 p-2",
|
|
1693
|
+
"rounded-lg border border-ods-border bg-ods-card no-underline",
|
|
1694
|
+
// The play mark on a video cover shows on the card's hover.
|
|
1695
|
+
"group",
|
|
1696
|
+
isInteractive ? "cursor-pointer transition-colors hover:border-ods-text-secondary/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-1 focus-visible:ring-offset-ods-card" : "cursor-default",
|
|
1697
|
+
className
|
|
1698
|
+
);
|
|
1699
|
+
const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1700
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative flex aspect-square h-14 w-14 shrink-0 items-center justify-center self-start overflow-hidden rounded-md bg-ods-bg text-ods-accent", children: [
|
|
1701
|
+
coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3VINTJPEcjs.next_image_default, { src: coverImage, alt: title, fill: true, sizes: "56px", className: "object-contain", unoptimized: true }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Package, { className: "h-5 w-5" }),
|
|
1702
|
+
hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTSRCFXPcjs.CardHoverPlay, { size: "sm" })
|
|
1703
|
+
] }),
|
|
1704
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-h-14 min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
1705
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex h-5 min-w-0 items-center gap-2", children: [
|
|
1706
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate font-semibold text-ods-text-primary text-h6", title, children: title }),
|
|
1707
|
+
version ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 text-ods-accent text-code", children: version }) : null
|
|
1708
|
+
] }),
|
|
1709
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: formattedDate || "Product release" }) }),
|
|
1710
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary/80 text-h6", title: summary || void 0, children: summary || "\xA0" }) })
|
|
1711
|
+
] })
|
|
1712
|
+
] });
|
|
1713
|
+
if (anchorProps) {
|
|
1714
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { ...anchorProps, className: outerClassName, children: innerChildren });
|
|
1715
|
+
}
|
|
1716
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1717
|
+
"span",
|
|
1718
|
+
{
|
|
1719
|
+
role: onClick ? "button" : void 0,
|
|
1720
|
+
tabIndex: onClick ? 0 : void 0,
|
|
1721
|
+
onClick,
|
|
1722
|
+
onKeyDown: onClick ? handleKey : void 0,
|
|
1723
|
+
className: outerClassName,
|
|
1724
|
+
children: innerChildren
|
|
1725
|
+
}
|
|
1726
|
+
);
|
|
1727
|
+
}
|
|
1728
|
+
throw new Error(`ProductReleaseCard: unsupported size '${size}'`);
|
|
1729
|
+
}
|
|
1730
|
+
|
|
2375
1731
|
// src/components/chat/entity-cards/product-release-card-defaults.ts
|
|
2376
1732
|
function pickCover(item) {
|
|
2377
1733
|
const hasVideo = Boolean(item.main_video_url || item.youtube_url);
|
|
@@ -2414,146 +1770,26 @@ function buildProductReleaseCardProps(item) {
|
|
|
2414
1770
|
job_title: release.author.job_title
|
|
2415
1771
|
} : void 0,
|
|
2416
1772
|
changelogCounts: {
|
|
2417
|
-
features: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2418
|
-
fixes: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2419
|
-
improvements: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2420
|
-
breaking: _nullishCoalesce(_optionalChain([release, 'access',
|
|
1773
|
+
features: _nullishCoalesce(_optionalChain([release, 'access', _24 => _24.features_added, 'optionalAccess', _25 => _25.length]), () => ( 0)),
|
|
1774
|
+
fixes: _nullishCoalesce(_optionalChain([release, 'access', _26 => _26.bugs_fixed, 'optionalAccess', _27 => _27.length]), () => ( 0)),
|
|
1775
|
+
improvements: _nullishCoalesce(_optionalChain([release, 'access', _28 => _28.improvements, 'optionalAccess', _29 => _29.length]), () => ( 0)),
|
|
1776
|
+
breaking: _nullishCoalesce(_optionalChain([release, 'access', _30 => _30.breaking_changes, 'optionalAccess', _31 => _31.length]), () => ( 0))
|
|
2421
1777
|
}
|
|
2422
1778
|
};
|
|
2423
1779
|
}
|
|
2424
1780
|
|
|
2425
|
-
// src/utils/url-safety.ts
|
|
2426
|
-
var UNSAFE_URL_CHARS = /[\u0000-\u001f\u007f\u200b-\u200d\u2028\u2029\ufeff]/;
|
|
2427
|
-
var SAME_ORIGIN_PROBE = "https://_sameorigin_.invalid";
|
|
2428
|
-
function isSameOriginPath(candidate) {
|
|
2429
|
-
try {
|
|
2430
|
-
return new URL(candidate, SAME_ORIGIN_PROBE).origin === SAME_ORIGIN_PROBE;
|
|
2431
|
-
} catch (e9) {
|
|
2432
|
-
return false;
|
|
2433
|
-
}
|
|
2434
|
-
}
|
|
2435
|
-
|
|
2436
|
-
// src/components/chat/utils/compact-card-classes.ts
|
|
2437
|
-
var COMPACT_CARD_OUTER = "my-1.5 flex items-start gap-3 w-full p-2 rounded-lg border border-ods-border bg-ods-card no-underline transition-colors hover:border-ods-text-secondary/40";
|
|
2438
|
-
var COMPACT_CARD_OUTER_STATIC = "my-1.5 flex items-start gap-3 w-full p-2 rounded-lg border border-ods-border bg-ods-card no-underline cursor-default";
|
|
2439
|
-
var COMPACT_CARD_SKELETON_OUTER = "my-1.5 flex w-full items-start gap-3 rounded-lg border border-ods-border bg-ods-card p-2";
|
|
2440
|
-
var COMPACT_CARD_IMAGE_SLOT = "relative block shrink-0 self-start w-14 h-14 aspect-square overflow-hidden rounded-md bg-ods-bg";
|
|
2441
|
-
var COMPACT_CARD_SKELETON_IMAGE_SLOT = `block ${_chunkXFRBEXQNcjs.TILE_SIZE.thumb} ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.square} shrink-0 self-start rounded-md`;
|
|
2442
|
-
var COMPACT_CARD_ICON_SLOT = "flex h-14 w-14 aspect-square shrink-0 self-start items-center justify-center rounded-md bg-ods-bg text-ods-accent";
|
|
2443
|
-
var COMPACT_CARD_TEXT_COL = "flex min-w-0 flex-1 flex-col gap-0.5 min-h-14";
|
|
2444
|
-
var COMPACT_CARD_TITLE_ROW = "flex items-center min-w-0 h-5";
|
|
2445
|
-
var COMPACT_CARD_META_ROW_BOX = "flex items-center min-w-0 h-4";
|
|
2446
|
-
var COMPACT_CARD_TITLE_TYPE = "text-sm font-semibold leading-5";
|
|
2447
|
-
var COMPACT_CARD_TITLE = `truncate ${COMPACT_CARD_TITLE_TYPE} text-ods-text-primary`;
|
|
2448
|
-
var COMPACT_CARD_TITLE_WRAP_ROW = "flex min-w-0 flex-wrap items-center gap-1.5";
|
|
2449
|
-
var COMPACT_CARD_TRAILING_ICON = "flex h-5 shrink-0 items-center self-start text-ods-text-secondary";
|
|
2450
|
-
var COMPACT_CARD_SUBTITLE = "truncate text-h6 text-ods-text-secondary";
|
|
2451
|
-
var COMPACT_CARD_SUMMARY = "truncate text-h6 text-ods-text-secondary/80";
|
|
2452
|
-
var COMPACT_CARD_META_ROW = "flex items-center gap-1.5 min-w-0 text-h6 text-ods-text-secondary";
|
|
2453
|
-
var COMPACT_CARD_ROW_FILLER = "\xA0";
|
|
2454
|
-
var SAFE_URL_SCHEMES = ["http:", "https:", "mailto:"];
|
|
2455
|
-
function safeHref(url) {
|
|
2456
|
-
if (!url) return null;
|
|
2457
|
-
if (UNSAFE_URL_CHARS.test(url)) return null;
|
|
2458
|
-
const trimmed = url.trim();
|
|
2459
|
-
if (!trimmed) return null;
|
|
2460
|
-
if (trimmed.startsWith("/")) return isSameOriginPath(trimmed) ? trimmed : null;
|
|
2461
|
-
if (trimmed.startsWith("#")) return trimmed;
|
|
2462
|
-
if (/^[a-z][a-z0-9+.-]*:$/i.test(trimmed)) return null;
|
|
2463
|
-
try {
|
|
2464
|
-
const parsed = new URL(trimmed, "https://_safehref_base.invalid");
|
|
2465
|
-
if (!SAFE_URL_SCHEMES.includes(parsed.protocol)) return null;
|
|
2466
|
-
if ((parsed.protocol === "https:" || parsed.protocol === "http:") && !parsed.hostname) return null;
|
|
2467
|
-
return trimmed;
|
|
2468
|
-
} catch (e10) {
|
|
2469
|
-
return null;
|
|
2470
|
-
}
|
|
2471
|
-
}
|
|
2472
|
-
|
|
2473
1781
|
// src/components/chat/entity-cards/blog-card.tsx
|
|
2474
1782
|
|
|
2475
1783
|
|
|
2476
|
-
// src/components/chat/utils/compact-card-skeleton.tsx
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
var DEFAULT_ROWS = [{ width: "w-2/5" }, { width: "w-11/12" }];
|
|
2480
|
-
function CompactCardSkeleton({
|
|
2481
|
-
slot = true,
|
|
2482
|
-
slotClassName,
|
|
2483
|
-
titleWidth = "w-3/5",
|
|
2484
|
-
titleBadges = [],
|
|
2485
|
-
rows = DEFAULT_ROWS,
|
|
2486
|
-
trailingIcon = false,
|
|
2487
|
-
className
|
|
2488
|
-
}) {
|
|
2489
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_SKELETON_OUTER, className), "aria-hidden": true, children: [
|
|
2490
|
-
slot && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: _nullishCoalesce(slotClassName, () => ( COMPACT_CARD_SKELETON_IMAGE_SLOT)) }),
|
|
2491
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2492
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: titleBadges.length > 0 ? COMPACT_CARD_TITLE_WRAP_ROW : COMPACT_CARD_TITLE_ROW, children: [
|
|
2493
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE_TYPE, titleWidth) }),
|
|
2494
|
-
titleBadges.map((width, i) => (
|
|
2495
|
-
// The compact cards' title badges are `StatusBadge variant="button"` stamps: their own skeleton.
|
|
2496
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, { variant: "button", className: _chunk65VVJSQZcjs.cn.call(void 0, "shrink-0", width) }, i)
|
|
2497
|
-
))
|
|
2498
|
-
] }),
|
|
2499
|
-
rows.map(
|
|
2500
|
-
(row, i) => (_nullishCoalesce(row.lines, () => ( 1))) > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h6", lines: row.lines, className: row.width }, i) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_META_ROW_BOX, row.after ? "gap-2" : void 0), children: [
|
|
2501
|
-
row.width && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h6", className: row.width }),
|
|
2502
|
-
row.after
|
|
2503
|
-
] }, i)
|
|
2504
|
-
)
|
|
2505
|
-
] }),
|
|
2506
|
-
trailingIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TRAILING_ICON, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) })
|
|
2507
|
-
] });
|
|
2508
|
-
}
|
|
2509
|
-
function ActivityRowSkeleton({
|
|
2510
|
-
lead,
|
|
2511
|
-
trailingWidths,
|
|
2512
|
-
className
|
|
2513
|
-
}) {
|
|
2514
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "flex min-w-0 items-center gap-3", className), children: [
|
|
2515
|
-
lead,
|
|
2516
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: "h-3 w-2/3 flex-1 rounded" }),
|
|
2517
|
-
trailingWidths.map((width, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, "h-3 shrink-0 rounded", width) }, i))
|
|
2518
|
-
] });
|
|
2519
|
-
}
|
|
2520
|
-
|
|
2521
|
-
// src/components/chat/entity-cards/use-entity-card-link.ts
|
|
2522
|
-
|
|
2523
|
-
function useEntityCardLink({ href, targetPlatform, target, rel }) {
|
|
2524
|
-
const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
2525
|
-
return _react.useMemo.call(void 0, () => {
|
|
2526
|
-
if (target !== void 0 || rel !== void 0) {
|
|
2527
|
-
const safeRel = _nullishCoalesce(rel, () => ( (target === "_blank" ? "noopener noreferrer" : void 0)));
|
|
2528
|
-
return { target, rel: safeRel };
|
|
2529
|
-
}
|
|
2530
|
-
const newTab = runtime ? computeIsNewTab(runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
|
|
2531
|
-
return newTab ? { target: "_blank", rel: "noopener noreferrer" } : { target: void 0, rel: void 0 };
|
|
2532
|
-
}, [target, rel, href, targetPlatform, runtime]);
|
|
2533
|
-
}
|
|
2534
|
-
|
|
2535
|
-
// src/components/chat/entity-cards/use-entity-card-placeholder.ts
|
|
2536
|
-
function useEntityCardPlaceholder({
|
|
2537
|
-
title,
|
|
2538
|
-
placeholderUrl,
|
|
2539
|
-
siteName = "",
|
|
2540
|
-
aspect = "wide"
|
|
2541
|
-
}) {
|
|
2542
|
-
const derived = _chunk3LW5TD54cjs.useOgPlaceholderUrl.call(void 0, { title, siteName, aspect });
|
|
2543
|
-
return placeholderUrl !== void 0 ? placeholderUrl : derived;
|
|
2544
|
-
}
|
|
2545
|
-
|
|
2546
|
-
// src/components/chat/entity-cards/blog-card.tsx
|
|
2547
|
-
|
|
2548
1784
|
var BLOG_CARD_FRAME = "flex h-full flex-col";
|
|
2549
|
-
var BLOG_CARD_COVER = `relative ${
|
|
1785
|
+
var BLOG_CARD_COVER = `relative ${_chunkYNDH72VUcjs.MEDIA_ASPECT.og} w-full overflow-hidden`;
|
|
2550
1786
|
var BLOG_CARD_BODY = "flex flex-grow flex-col p-4";
|
|
2551
|
-
var BLOG_CARD_TITLE_ROW = `mb-3 flex items-center text-h3 ${
|
|
2552
|
-
var BLOG_CARD_SUMMARY_ROW = `mb-3 flex items-center text-h6 ${
|
|
1787
|
+
var BLOG_CARD_TITLE_ROW = `mb-3 flex items-center text-h3 ${_chunkYNDH72VUcjs.TEXT_LINES_MIN[2]}`;
|
|
1788
|
+
var BLOG_CARD_SUMMARY_ROW = `mb-3 flex items-center text-h6 ${_chunkYNDH72VUcjs.TEXT_LINES_MIN[2]}`;
|
|
2553
1789
|
var BLOG_CARD_BYLINE = "mt-auto flex items-center justify-between gap-2 text-ods-text-secondary text-h6";
|
|
2554
1790
|
var BLOG_CARD_BYLINE_PERSON = "flex min-w-0 items-center gap-2";
|
|
2555
1791
|
var BLOG_CARD_VIEWS = "flex shrink-0 items-center gap-1";
|
|
2556
|
-
var BLOG_CARD_AVATAR = `${
|
|
1792
|
+
var BLOG_CARD_AVATAR = `${_chunkYNDH72VUcjs.AVATAR_SIZE.sm} shrink-0 rounded-full object-cover`;
|
|
2557
1793
|
var BLOG_POST_TYPE_LABEL = "Blog Post";
|
|
2558
1794
|
function BlogCardSkeleton({
|
|
2559
1795
|
size = "default",
|
|
@@ -2561,30 +1797,46 @@ function BlogCardSkeleton({
|
|
|
2561
1797
|
className
|
|
2562
1798
|
}) {
|
|
2563
1799
|
if (size === "portrait") {
|
|
2564
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1800
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1801
|
+
_chunkJQWYXC2Ecjs.EntityPortraitCard,
|
|
1802
|
+
{
|
|
1803
|
+
loading: true,
|
|
1804
|
+
href: "",
|
|
1805
|
+
imageAlt: "",
|
|
1806
|
+
title: "",
|
|
1807
|
+
typeLabel: showTypeBadge ? BLOG_POST_TYPE_LABEL : void 0,
|
|
1808
|
+
className
|
|
1809
|
+
}
|
|
1810
|
+
);
|
|
2565
1811
|
}
|
|
2566
1812
|
if (size === "sm") {
|
|
2567
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { className });
|
|
1813
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJQWYXC2Ecjs.CompactCardSkeleton, { className });
|
|
2568
1814
|
}
|
|
2569
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className:
|
|
2570
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1815
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_SKELETON_FRAME_CLASS, BLOG_CARD_FRAME, className), "aria-hidden": true, children: [
|
|
1816
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { className: _chunkN6YCOBLKcjs.cn.call(void 0, BLOG_CARD_COVER, "rounded-none") }),
|
|
2571
1817
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BODY, children: [
|
|
2572
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2573
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1818
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-full" }) }),
|
|
1819
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-full" }) }),
|
|
2574
1820
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BYLINE, children: [
|
|
2575
1821
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BYLINE_PERSON, children: [
|
|
2576
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2577
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1822
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.MediaSkeleton.Avatar, { size: "sm", className: BLOG_CARD_AVATAR }),
|
|
1823
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", className: "w-40" })
|
|
2578
1824
|
] }),
|
|
2579
1825
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_VIEWS, children: [
|
|
2580
1826
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Eye, { className: "h-4 w-4 shrink-0" }),
|
|
2581
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1827
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", className: "w-8" })
|
|
2582
1828
|
] })
|
|
2583
1829
|
] })
|
|
2584
1830
|
] })
|
|
2585
1831
|
] });
|
|
2586
1832
|
}
|
|
2587
|
-
function BlogCard({
|
|
1833
|
+
function BlogCard(props) {
|
|
1834
|
+
if (_chunkN6YCOBLKcjs.useLoadingScope.call(void 0, ) || props.loading) {
|
|
1835
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BlogCardSkeleton, { size: props.size, showTypeBadge: props.showTypeBadge, className: props.className });
|
|
1836
|
+
}
|
|
1837
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedBlogCard, { ...props });
|
|
1838
|
+
}
|
|
1839
|
+
function LoadedBlogCard({
|
|
2588
1840
|
post,
|
|
2589
1841
|
href,
|
|
2590
1842
|
target: targetProp,
|
|
@@ -2597,25 +1849,24 @@ function BlogCard({
|
|
|
2597
1849
|
hasEmbeddedVideo = false,
|
|
2598
1850
|
priority = false
|
|
2599
1851
|
}) {
|
|
2600
|
-
const { target, rel } = useEntityCardLink({
|
|
1852
|
+
const { target, rel } = _chunkJQWYXC2Ecjs.useEntityCardLink.call(void 0, {
|
|
2601
1853
|
href,
|
|
2602
1854
|
targetPlatform,
|
|
2603
1855
|
target: targetProp,
|
|
2604
1856
|
rel: relProp
|
|
2605
1857
|
});
|
|
2606
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
1858
|
+
const placeholderUrl = _chunkJQWYXC2Ecjs.useEntityCardPlaceholder.call(void 0, {
|
|
2607
1859
|
title: post.title,
|
|
2608
1860
|
placeholderUrl: placeholderUrlProp,
|
|
2609
1861
|
aspect: size === "sm" ? "square" : "wide"
|
|
2610
1862
|
});
|
|
2611
|
-
const { src: displayImage, onError: onImageError } = useCoverImageFallback(post.featured_image, placeholderUrl);
|
|
2612
|
-
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BlogCardSkeleton, { size, showTypeBadge, className });
|
|
1863
|
+
const { src: displayImage, onError: onImageError } = _chunkJQWYXC2Ecjs.useCoverImageFallback.call(void 0, post.featured_image, placeholderUrl);
|
|
2613
1864
|
if (size === "sm") {
|
|
2614
|
-
const dateStr2 = post.published_at ?
|
|
2615
|
-
const firstCategory = _optionalChain([post, 'access',
|
|
2616
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
2617
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: displayImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2618
|
-
|
|
1865
|
+
const dateStr2 = post.published_at ? _chunkAFJEUBDScjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
|
|
1866
|
+
const firstCategory = _optionalChain([post, 'access', _32 => _32.categories, 'optionalAccess', _33 => _33.find, 'call', _34 => _34((c) => c && c.name), 'optionalAccess', _35 => _35.name]);
|
|
1867
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.COMPACT_CARD_OUTER, className), children: [
|
|
1868
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_IMAGE_SLOT, children: displayImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1869
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
2619
1870
|
{
|
|
2620
1871
|
src: displayImage,
|
|
2621
1872
|
alt: post.title,
|
|
@@ -2626,24 +1877,24 @@ function BlogCard({
|
|
|
2626
1877
|
onError: onImageError
|
|
2627
1878
|
}
|
|
2628
1879
|
) : null }),
|
|
2629
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2630
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
2631
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
2632
|
-
hasEmbeddedVideo ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadge, { text: "Video", variant: "button", colorScheme: "cyan", className: "shrink-0" }) : null
|
|
1880
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_TEXT_COL, children: [
|
|
1881
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE_ROW, "gap-1.5"), children: [
|
|
1882
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE, "font-body"), children: post.title }),
|
|
1883
|
+
hasEmbeddedVideo ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJQWYXC2Ecjs.StatusBadge, { text: "Video", variant: "button", colorScheme: "cyan", className: "shrink-0" }) : null
|
|
2633
1884
|
] }),
|
|
2634
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [
|
|
1885
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_SUBTITLE, children: [
|
|
2635
1886
|
dateStr2,
|
|
2636
1887
|
dateStr2 && firstCategory ? " \xB7 " : "",
|
|
2637
1888
|
_nullishCoalesce(firstCategory, () => ( "Blog Post"))
|
|
2638
1889
|
] }) }),
|
|
2639
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: post.summary || COMPACT_CARD_ROW_FILLER }) })
|
|
1890
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_SUMMARY, children: post.summary || _chunkJQWYXC2Ecjs.COMPACT_CARD_ROW_FILLER }) })
|
|
2640
1891
|
] })
|
|
2641
1892
|
] });
|
|
2642
1893
|
}
|
|
2643
1894
|
if (size === "portrait") {
|
|
2644
|
-
const dateStr2 = post.published_at ?
|
|
1895
|
+
const dateStr2 = post.published_at ? _chunkAFJEUBDScjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
|
|
2645
1896
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2646
|
-
EntityPortraitCard,
|
|
1897
|
+
_chunkJQWYXC2Ecjs.EntityPortraitCard,
|
|
2647
1898
|
{
|
|
2648
1899
|
href,
|
|
2649
1900
|
target,
|
|
@@ -2662,17 +1913,17 @@ function BlogCard({
|
|
|
2662
1913
|
}
|
|
2663
1914
|
);
|
|
2664
1915
|
}
|
|
2665
|
-
const dateStr = post.published_at ?
|
|
2666
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className:
|
|
2667
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2668
|
-
|
|
1916
|
+
const dateStr = post.published_at ? _chunkAFJEUBDScjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
|
|
1917
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_FRAME_CLASS, BLOG_CARD_FRAME, className), role: "article", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: "flex h-full flex-col focus:outline-none", children: [
|
|
1918
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, BLOG_CARD_COVER, "bg-ods-bg"), children: displayImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1919
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
2669
1920
|
{
|
|
2670
1921
|
src: displayImage,
|
|
2671
1922
|
alt: post.title,
|
|
2672
1923
|
fill: true,
|
|
2673
1924
|
priority,
|
|
2674
1925
|
quality: priority ? 85 : 75,
|
|
2675
|
-
className:
|
|
1926
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0, "object-cover object-center", "duration-400 transition-all ease-out", "hover:scale-[1.02]"),
|
|
2676
1927
|
sizes: "(max-width: 768px) 100vw, (max-width: 1519px) 50vw, 33vw",
|
|
2677
1928
|
unoptimized: true,
|
|
2678
1929
|
onError: onImageError
|
|
@@ -2682,7 +1933,7 @@ function BlogCard({
|
|
|
2682
1933
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2683
1934
|
"h3",
|
|
2684
1935
|
{
|
|
2685
|
-
className:
|
|
1936
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
2686
1937
|
"text-ods-text-primary text-h3",
|
|
2687
1938
|
"line-clamp-2",
|
|
2688
1939
|
"transition-colors duration-300 ease-out",
|
|
@@ -2691,11 +1942,11 @@ function BlogCard({
|
|
|
2691
1942
|
children: post.title
|
|
2692
1943
|
}
|
|
2693
1944
|
) }),
|
|
2694
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className:
|
|
1945
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkN6YCOBLKcjs.cn.call(void 0, "text-ods-text-primary text-h6", "line-clamp-2"), children: post.summary || "" }) }),
|
|
2695
1946
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BYLINE, children: [
|
|
2696
1947
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BYLINE_PERSON, children: [
|
|
2697
1948
|
post.author_avatar ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2698
|
-
|
|
1949
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
2699
1950
|
{
|
|
2700
1951
|
src: post.author_avatar,
|
|
2701
1952
|
alt: post.author_name || "",
|
|
@@ -2729,306 +1980,11 @@ function BlogCard({
|
|
|
2729
1980
|
] }) });
|
|
2730
1981
|
}
|
|
2731
1982
|
|
|
2732
|
-
// src/components/chat/entity-cards/case-study-card.tsx
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
var CASE_STUDY_RESULT_STACK = "flex h-full flex-col gap-5 p-6";
|
|
2736
|
-
var CASE_STUDY_RESULT_METRIC_BOX = "flex h-[112px] shrink-0 flex-col justify-start gap-1 overflow-hidden";
|
|
2737
|
-
var CASE_STUDY_RESULT_FOOTER_BOX = "mt-auto flex h-[60px] shrink-0 items-center justify-between gap-3 border-t border-ods-border pt-4";
|
|
2738
|
-
var CASE_STUDY_DEFAULT_BODY = "flex flex-col gap-6 p-6";
|
|
2739
|
-
var CASE_STUDY_COVER = `relative ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.og} w-full shrink-0 overflow-hidden rounded-sm`;
|
|
2740
|
-
var CASE_STUDY_TITLE_ZONE = "flex h-[72px] shrink-0 items-center";
|
|
2741
|
-
var CASE_STUDY_PERSON_ZONE = "flex h-[60px] shrink-0 items-center";
|
|
2742
|
-
var CASE_STUDY_PERSON_ROW = "flex w-full min-w-0 items-center gap-3";
|
|
2743
|
-
var CASE_STUDY_PERSON_TEXT = "min-w-0 flex-1";
|
|
2744
|
-
var CASE_STUDY_MENU_FRAME = "group/card group flex min-w-0 flex-col gap-[var(--spacing-system-sf)] rounded-xl border border-ods-border bg-ods-bg p-[var(--spacing-system-mf)] text-ods-text-primary transition-colors hover:bg-ods-bg-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent";
|
|
2745
|
-
var CASE_STUDY_MENU_SKELETON_FRAME = "flex min-w-0 flex-col gap-[var(--spacing-system-sf)] rounded-xl border border-ods-border bg-ods-bg p-[var(--spacing-system-mf)]";
|
|
2746
|
-
var CASE_STUDY_MENU_MEDIA = `relative block ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.video} w-full shrink-0 overflow-hidden rounded-md`;
|
|
2747
|
-
var CASE_STUDY_MENU_MSP_ROW = "flex items-center gap-[var(--spacing-system-xsf)] text-ods-text-secondary text-h6";
|
|
2748
|
-
var MSP_ICON_PX = 20;
|
|
2749
|
-
var MSP_ICON_CLASS = `${_chunkXFRBEXQNcjs.ICON_SIZE.md} shrink-0 rounded`;
|
|
2750
|
-
var CASE_STUDY_TYPE_LABEL = "Case Study";
|
|
2751
|
-
function headlineMetric(study) {
|
|
2752
|
-
const metric = _optionalChain([study, 'access', _62 => _62.metrics, 'optionalAccess', _63 => _63[0]]);
|
|
2753
|
-
return _optionalChain([metric, 'optionalAccess', _64 => _64.value]) && metric.label ? metric : null;
|
|
2754
|
-
}
|
|
2755
|
-
function CaseStudyPersonRow({ study }) {
|
|
2756
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CASE_STUDY_PERSON_ZONE, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_PERSON_ROW, children: [
|
|
2757
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
2758
|
-
_optionalChain([study, 'access', _65 => _65.user, 'optionalAccess', _66 => _66.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2759
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
2760
|
-
{
|
|
2761
|
-
src: study.user.avatar_url,
|
|
2762
|
-
alt: _optionalChain([study, 'access', _67 => _67.user, 'optionalAccess', _68 => _68.full_name]) || "User",
|
|
2763
|
-
className: "h-12 w-12 rounded-full border border-ods-border bg-ods-bg object-cover",
|
|
2764
|
-
width: 48,
|
|
2765
|
-
height: 48,
|
|
2766
|
-
unoptimized: true
|
|
2767
|
-
}
|
|
2768
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: (_optionalChain([study, 'access', _69 => _69.user, 'optionalAccess', _70 => _70.full_name]) || "A").charAt(0).toUpperCase() }) }),
|
|
2769
|
-
_optionalChain([study, 'access', _71 => _71.msp, 'optionalAccess', _72 => _72.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 flex h-6 w-6 items-center justify-center overflow-hidden rounded-full bg-ods-text-primary ring-1 ring-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2770
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
2771
|
-
{
|
|
2772
|
-
src: study.msp.icon_url,
|
|
2773
|
-
alt: study.msp.name || "MSP",
|
|
2774
|
-
className: "h-full w-full object-cover",
|
|
2775
|
-
width: 24,
|
|
2776
|
-
height: 24,
|
|
2777
|
-
unoptimized: true
|
|
2778
|
-
}
|
|
2779
|
-
) })
|
|
2780
|
-
] }),
|
|
2781
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_PERSON_TEXT, children: [
|
|
2782
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-primary text-h6", children: [
|
|
2783
|
-
_optionalChain([study, 'access', _73 => _73.user, 'optionalAccess', _74 => _74.full_name]) || "Anonymous",
|
|
2784
|
-
_optionalChain([study, 'access', _75 => _75.msp, 'optionalAccess', _76 => _76.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
|
|
2785
|
-
" \u2022 ",
|
|
2786
|
-
study.msp.name
|
|
2787
|
-
] })
|
|
2788
|
-
] }),
|
|
2789
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([study, 'access', _77 => _77.user, 'optionalAccess', _78 => _78.job_title]) || "\xA0" })
|
|
2790
|
-
] })
|
|
2791
|
-
] }) });
|
|
2792
|
-
}
|
|
2793
|
-
function CaseStudyPersonRowSkeleton() {
|
|
2794
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CASE_STUDY_PERSON_ZONE, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_PERSON_ROW, children: [
|
|
2795
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.MediaSkeleton.Avatar, { size: "md", className: "shrink-0" }),
|
|
2796
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_PERSON_TEXT, children: [
|
|
2797
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-2/3" }),
|
|
2798
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-1/2" })
|
|
2799
|
-
] })
|
|
2800
|
-
] }) });
|
|
2801
|
-
}
|
|
2802
|
-
function CaseStudyCardSkeleton({
|
|
2803
|
-
size = "default",
|
|
2804
|
-
showTypeBadge = true,
|
|
2805
|
-
className
|
|
2806
|
-
}) {
|
|
2807
|
-
if (size === "portrait") {
|
|
2808
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? CASE_STUDY_TYPE_LABEL : void 0, className });
|
|
2809
|
-
}
|
|
2810
|
-
if (size === "result") {
|
|
2811
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, CASE_STUDY_RESULT_STACK, className), "aria-hidden": true, children: [
|
|
2812
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRowSkeleton, {}),
|
|
2813
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_METRIC_BOX, "data-testid": "case-study-result-skeleton-metric", children: [
|
|
2814
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h1", className: "w-1/3" }),
|
|
2815
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", lines: 2, className: "w-3/4" })
|
|
2816
|
-
] }),
|
|
2817
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_FOOTER_BOX, children: [
|
|
2818
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-2/3" }),
|
|
2819
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-ods-accent text-h6", children: "Read" })
|
|
2820
|
-
] })
|
|
2821
|
-
] });
|
|
2822
|
-
}
|
|
2823
|
-
if (size === "menu") {
|
|
2824
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_MENU_SKELETON_FRAME, className), "aria-hidden": true, children: [
|
|
2825
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: CASE_STUDY_MENU_MEDIA }),
|
|
2826
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_MENU_MSP_ROW, children: [
|
|
2827
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: MSP_ICON_CLASS }),
|
|
2828
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-28" })
|
|
2829
|
-
] }),
|
|
2830
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-full" }),
|
|
2831
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-3/4" }),
|
|
2832
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "mt-auto w-28" })
|
|
2833
|
-
] });
|
|
2834
|
-
}
|
|
2835
|
-
if (size === "sm") {
|
|
2836
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { rows: [{ width: "w-1/2" }, { width: "w-11/12" }], className });
|
|
2837
|
-
}
|
|
2838
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, CASE_STUDY_DEFAULT_BODY), children: [
|
|
2839
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_COVER, "rounded-sm") }),
|
|
2840
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CASE_STUDY_TITLE_ZONE, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", lines: 3, className: "w-full" }) }),
|
|
2841
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRowSkeleton, {})
|
|
2842
|
-
] }) });
|
|
2843
|
-
}
|
|
2844
|
-
function caseStudyHighlight(study) {
|
|
2845
|
-
if (study.highlight_video_url) {
|
|
2846
|
-
return { url: study.highlight_video_url, posterUrl: _nullishCoalesce(study.highlight_video_thumbnail, () => ( null)) };
|
|
2847
|
-
}
|
|
2848
|
-
const bite = (_nullishCoalesce(study.video_bites, () => ( []))).filter((candidate) => candidate.featured === true && candidate.url).sort(sortBitesByFeaturedAtDesc)[0];
|
|
2849
|
-
return bite ? { url: bite.url, posterUrl: _nullishCoalesce(bite.thumbnail_url, () => ( null)) } : null;
|
|
2850
|
-
}
|
|
2851
|
-
function CaseStudyCard(props) {
|
|
2852
|
-
const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
2853
|
-
if (inScope || props.loading) {
|
|
2854
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyCardSkeleton, { size: props.size, showTypeBadge: props.showTypeBadge, className: props.className });
|
|
2855
|
-
}
|
|
2856
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedCaseStudyCard, { ...props });
|
|
2857
|
-
}
|
|
2858
|
-
function LoadedCaseStudyCard({
|
|
2859
|
-
study,
|
|
2860
|
-
href,
|
|
2861
|
-
target: targetProp,
|
|
2862
|
-
rel: relProp,
|
|
2863
|
-
targetPlatform,
|
|
2864
|
-
placeholderUrl: placeholderUrlProp,
|
|
2865
|
-
size = "default",
|
|
2866
|
-
showTypeBadge = true,
|
|
2867
|
-
accentClassName = "text-ods-accent",
|
|
2868
|
-
mediaMounted,
|
|
2869
|
-
onNavigate,
|
|
2870
|
-
className
|
|
2871
|
-
}) {
|
|
2872
|
-
const [hovered, setHovered] = _react.useState.call(void 0, false);
|
|
2873
|
-
const { target, rel } = useEntityCardLink({
|
|
2874
|
-
href,
|
|
2875
|
-
targetPlatform,
|
|
2876
|
-
target: targetProp,
|
|
2877
|
-
rel: relProp
|
|
2878
|
-
});
|
|
2879
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
2880
|
-
title: study.title,
|
|
2881
|
-
placeholderUrl: placeholderUrlProp,
|
|
2882
|
-
aspect: size === "sm" ? "square" : "wide"
|
|
2883
|
-
});
|
|
2884
|
-
const coverImage = study.featured_image || placeholderUrl || null;
|
|
2885
|
-
if (size === "sm") {
|
|
2886
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
|
|
2887
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2888
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
2889
|
-
{
|
|
2890
|
-
src: coverImage,
|
|
2891
|
-
alt: `${_optionalChain([study, 'access', _79 => _79.msp, 'optionalAccess', _80 => _80.name]) || study.title} cover`,
|
|
2892
|
-
className: "object-contain",
|
|
2893
|
-
fill: true,
|
|
2894
|
-
sizes: "56px",
|
|
2895
|
-
unoptimized: true,
|
|
2896
|
-
onError: hideOnError
|
|
2897
|
-
}
|
|
2898
|
-
) : null }),
|
|
2899
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2900
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: study.title }) }),
|
|
2901
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([study, 'access', _81 => _81.msp, 'optionalAccess', _82 => _82.name]), _optionalChain([study, 'access', _83 => _83.user, 'optionalAccess', _84 => _84.full_name])].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
|
|
2902
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: study.summary || COMPACT_CARD_ROW_FILLER }) })
|
|
2903
|
-
] })
|
|
2904
|
-
] });
|
|
2905
|
-
}
|
|
2906
|
-
if (size === "menu") {
|
|
2907
|
-
const preview = caseStudyHighlight(study);
|
|
2908
|
-
const videoUrl = _nullishCoalesce(_optionalChain([preview, 'optionalAccess', _85 => _85.url]), () => ( null));
|
|
2909
|
-
const hasAnyVideo = !!(videoUrl || study.main_video_url);
|
|
2910
|
-
const poster = study.main_video_thumbnail || study.featured_image || _optionalChain([preview, 'optionalAccess', _86 => _86.posterUrl]) || null;
|
|
2911
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2912
|
-
_chunkV45KLJQPcjs.next_link_default,
|
|
2913
|
-
{
|
|
2914
|
-
href,
|
|
2915
|
-
target,
|
|
2916
|
-
rel,
|
|
2917
|
-
onClick: onNavigate,
|
|
2918
|
-
onPointerEnter: () => setHovered(true),
|
|
2919
|
-
onPointerLeave: () => setHovered(false),
|
|
2920
|
-
onFocus: () => setHovered(true),
|
|
2921
|
-
onBlur: () => setHovered(false),
|
|
2922
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_MENU_FRAME, className),
|
|
2923
|
-
children: [
|
|
2924
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "pointer-events-none bg-ods-bg", CASE_STUDY_MENU_MEDIA), children: videoUrl ? (
|
|
2925
|
-
// The shared hover surface, filled the way the walkthrough card fills
|
|
2926
|
-
// its own 16:9 slot (`cover`): an upright cut is cropped to the slot,
|
|
2927
|
-
// never letterboxed. Sound on hover, muted when the browser blocks it.
|
|
2928
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2929
|
-
VideoHoverPreviewSurface,
|
|
2930
|
-
{
|
|
2931
|
-
url: videoUrl,
|
|
2932
|
-
posterUrl: poster,
|
|
2933
|
-
active: hovered,
|
|
2934
|
-
playerMounted: mediaMounted,
|
|
2935
|
-
fit: "cover",
|
|
2936
|
-
posterSizes: "360px"
|
|
2937
|
-
}
|
|
2938
|
-
)
|
|
2939
|
-
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
2940
|
-
(_nullishCoalesce(poster, () => ( placeholderUrl))) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2941
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
2942
|
-
{
|
|
2943
|
-
src: _nullishCoalesce(_nullishCoalesce(poster, () => ( placeholderUrl)), () => ( "")),
|
|
2944
|
-
alt: "",
|
|
2945
|
-
className: "object-cover",
|
|
2946
|
-
fill: true,
|
|
2947
|
-
sizes: "360px",
|
|
2948
|
-
unoptimized: true,
|
|
2949
|
-
onError: hideOnError
|
|
2950
|
-
}
|
|
2951
|
-
),
|
|
2952
|
-
hasAnyVideo && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "md" })
|
|
2953
|
-
] }) }),
|
|
2954
|
-
_optionalChain([study, 'access', _87 => _87.msp, 'optionalAccess', _88 => _88.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: CASE_STUDY_MENU_MSP_ROW, children: [
|
|
2955
|
-
study.msp.icon_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2956
|
-
EntityIcon,
|
|
2957
|
-
{
|
|
2958
|
-
icon: { url: study.msp.icon_url },
|
|
2959
|
-
size: MSP_ICON_PX,
|
|
2960
|
-
className: _chunk65VVJSQZcjs.cn.call(void 0, MSP_ICON_CLASS, "object-contain")
|
|
2961
|
-
}
|
|
2962
|
-
),
|
|
2963
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: study.msp.name })
|
|
2964
|
-
] }),
|
|
2965
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 text-h6", children: study.title }),
|
|
2966
|
-
_optionalChain([study, 'access', _89 => _89.user, 'optionalAccess', _90 => _90.full_name]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-muted text-h6", children: study.user.job_title ? `${study.user.full_name}, ${study.user.job_title}` : study.user.full_name }),
|
|
2967
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mt-auto text-ods-accent text-h6", children: hasAnyVideo ? "Watch the story" : "Read the story" })
|
|
2968
|
-
]
|
|
2969
|
-
}
|
|
2970
|
-
);
|
|
2971
|
-
}
|
|
2972
|
-
if (size === "result") {
|
|
2973
|
-
const metric = headlineMetric(study);
|
|
2974
|
-
if (!metric) return null;
|
|
2975
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, CASE_STUDY_RESULT_STACK), children: [
|
|
2976
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRow, { study }),
|
|
2977
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_METRIC_BOX, "data-testid": "case-study-metric", children: [
|
|
2978
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "truncate text-h1", accentClassName), children: metric.value }),
|
|
2979
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 text-ods-text-secondary text-h4", children: metric.label })
|
|
2980
|
-
] }),
|
|
2981
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_FOOTER_BOX, children: [
|
|
2982
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 min-w-0 text-ods-text-secondary text-h6", children: study.title }),
|
|
2983
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "shrink-0 text-h6", accentClassName), children: "Read" })
|
|
2984
|
-
] })
|
|
2985
|
-
] }) });
|
|
2986
|
-
}
|
|
2987
|
-
if (size === "portrait") {
|
|
2988
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2989
|
-
EntityPortraitCard,
|
|
2990
|
-
{
|
|
2991
|
-
href,
|
|
2992
|
-
target,
|
|
2993
|
-
rel,
|
|
2994
|
-
typeLabel: showTypeBadge ? CASE_STUDY_TYPE_LABEL : void 0,
|
|
2995
|
-
imageUrl: study.featured_image,
|
|
2996
|
-
placeholderUrl,
|
|
2997
|
-
imageAlt: _optionalChain([study, 'access', _91 => _91.msp, 'optionalAccess', _92 => _92.name]) || study.title,
|
|
2998
|
-
title: study.title,
|
|
2999
|
-
person: {
|
|
3000
|
-
name: _optionalChain([study, 'access', _93 => _93.user, 'optionalAccess', _94 => _94.full_name]) || "Anonymous",
|
|
3001
|
-
avatarUrl: _optionalChain([study, 'access', _95 => _95.user, 'optionalAccess', _96 => _96.avatar_url]),
|
|
3002
|
-
subtitle: _nullishCoalesce(_optionalChain([study, 'access', _97 => _97.msp, 'optionalAccess', _98 => _98.name]), () => ( null)),
|
|
3003
|
-
iconOverlayUrl: _nullishCoalesce(_optionalChain([study, 'access', _99 => _99.msp, 'optionalAccess', _100 => _100.icon_url]), () => ( null))
|
|
3004
|
-
},
|
|
3005
|
-
className
|
|
3006
|
-
}
|
|
3007
|
-
);
|
|
3008
|
-
}
|
|
3009
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, CASE_STUDY_DEFAULT_BODY), children: [
|
|
3010
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_COVER, "bg-ods-bg"), children: coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3011
|
-
_chunkE76ONBKFcjs.next_image_default,
|
|
3012
|
-
{
|
|
3013
|
-
src: coverImage,
|
|
3014
|
-
alt: _optionalChain([study, 'access', _101 => _101.msp, 'optionalAccess', _102 => _102.name]) || study.title,
|
|
3015
|
-
className: "h-full w-full object-cover",
|
|
3016
|
-
sizes: "(min-width: 1545px) 515px, (min-width: 1280px) 33vw, (min-width: 800px) 50vw, 100vw",
|
|
3017
|
-
fill: true,
|
|
3018
|
-
unoptimized: true,
|
|
3019
|
-
onError: hideOnError
|
|
3020
|
-
}
|
|
3021
|
-
) }),
|
|
3022
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CASE_STUDY_TITLE_ZONE, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 break-words text-ods-text-primary text-h4", children: study.title }) }),
|
|
3023
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRow, { study })
|
|
3024
|
-
] }) });
|
|
3025
|
-
}
|
|
3026
|
-
|
|
3027
1983
|
// src/components/chat/entity-cards/customer-interview-card.tsx
|
|
3028
1984
|
|
|
3029
1985
|
|
|
3030
1986
|
var INTERVIEW_CARD_BODY = "flex flex-col gap-6 p-6";
|
|
3031
|
-
var INTERVIEW_CARD_COVER = `relative ${
|
|
1987
|
+
var INTERVIEW_CARD_COVER = `relative ${_chunkYNDH72VUcjs.MEDIA_ASPECT.og} w-full shrink-0 overflow-hidden rounded-sm`;
|
|
3032
1988
|
var INTERVIEW_CARD_PERSON_ZONE = "mt-auto flex h-[60px] shrink-0 items-center";
|
|
3033
1989
|
var INTERVIEW_CARD_PERSON_ROW = "flex w-full min-w-0 items-center gap-3";
|
|
3034
1990
|
var INTERVIEW_CARD_PERSON_TEXT = "min-w-0 flex-1";
|
|
@@ -3039,25 +1995,48 @@ function CustomerInterviewCardSkeleton({
|
|
|
3039
1995
|
className
|
|
3040
1996
|
}) {
|
|
3041
1997
|
if (size === "portrait") {
|
|
3042
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1998
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1999
|
+
_chunkJQWYXC2Ecjs.EntityPortraitCard,
|
|
2000
|
+
{
|
|
2001
|
+
loading: true,
|
|
2002
|
+
href: "",
|
|
2003
|
+
imageAlt: "",
|
|
2004
|
+
title: "",
|
|
2005
|
+
typeLabel: showTypeBadge ? INTERVIEW_TYPE_LABEL : void 0,
|
|
2006
|
+
className
|
|
2007
|
+
}
|
|
2008
|
+
);
|
|
3043
2009
|
}
|
|
3044
2010
|
if (size === "sm") {
|
|
3045
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { className });
|
|
2011
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJQWYXC2Ecjs.CompactCardSkeleton, { className });
|
|
3046
2012
|
}
|
|
3047
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
3048
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3049
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3050
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2013
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, "block h-full", className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJQWYXC2Ecjs.Card, { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_SKELETON_FRAME_CLASS, INTERVIEW_CARD_BODY), children: [
|
|
2014
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { className: _chunkN6YCOBLKcjs.cn.call(void 0, INTERVIEW_CARD_COVER, "rounded-sm") }),
|
|
2015
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-full" }) }),
|
|
2016
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", lines: 3, className: "w-full" }) }),
|
|
3051
2017
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_ZONE, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_ROW, children: [
|
|
3052
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2018
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.MediaSkeleton.Avatar, { size: "md", className: "shrink-0" }),
|
|
3053
2019
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_TEXT, children: [
|
|
3054
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3055
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2020
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", className: "w-2/3" }),
|
|
2021
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", className: "w-1/2" })
|
|
3056
2022
|
] })
|
|
3057
2023
|
] }) })
|
|
3058
2024
|
] }) });
|
|
3059
2025
|
}
|
|
3060
|
-
function CustomerInterviewCard({
|
|
2026
|
+
function CustomerInterviewCard(props) {
|
|
2027
|
+
if (_chunkN6YCOBLKcjs.useLoadingScope.call(void 0, ) || props.loading) {
|
|
2028
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2029
|
+
CustomerInterviewCardSkeleton,
|
|
2030
|
+
{
|
|
2031
|
+
size: props.size,
|
|
2032
|
+
showTypeBadge: props.showTypeBadge,
|
|
2033
|
+
className: props.className
|
|
2034
|
+
}
|
|
2035
|
+
);
|
|
2036
|
+
}
|
|
2037
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedCustomerInterviewCard, { ...props });
|
|
2038
|
+
}
|
|
2039
|
+
function LoadedCustomerInterviewCard({
|
|
3061
2040
|
interview,
|
|
3062
2041
|
href,
|
|
3063
2042
|
target: targetProp,
|
|
@@ -3068,26 +2047,23 @@ function CustomerInterviewCard({
|
|
|
3068
2047
|
showTypeBadge = true,
|
|
3069
2048
|
className
|
|
3070
2049
|
}) {
|
|
3071
|
-
const { target, rel } = useEntityCardLink({
|
|
2050
|
+
const { target, rel } = _chunkJQWYXC2Ecjs.useEntityCardLink.call(void 0, {
|
|
3072
2051
|
href,
|
|
3073
2052
|
targetPlatform,
|
|
3074
2053
|
target: targetProp,
|
|
3075
2054
|
rel: relProp
|
|
3076
2055
|
});
|
|
3077
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
2056
|
+
const placeholderUrl = _chunkJQWYXC2Ecjs.useEntityCardPlaceholder.call(void 0, {
|
|
3078
2057
|
title: interview.title,
|
|
3079
2058
|
placeholderUrl: placeholderUrlProp,
|
|
3080
2059
|
aspect: size === "sm" ? "square" : "wide"
|
|
3081
2060
|
});
|
|
3082
2061
|
const thumbnailUrl = interview.featured_image || placeholderUrl || null;
|
|
3083
|
-
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
|
|
3084
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CustomerInterviewCardSkeleton, { size, showTypeBadge, className });
|
|
3085
|
-
}
|
|
3086
2062
|
if (size === "sm") {
|
|
3087
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
3088
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
2063
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.COMPACT_CARD_OUTER, className), children: [
|
|
2064
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_IMAGE_SLOT, children: [
|
|
3089
2065
|
thumbnailUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3090
|
-
|
|
2066
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
3091
2067
|
{
|
|
3092
2068
|
src: thumbnailUrl,
|
|
3093
2069
|
alt: interview.title,
|
|
@@ -3095,21 +2071,21 @@ function CustomerInterviewCard({
|
|
|
3095
2071
|
fill: true,
|
|
3096
2072
|
sizes: "56px",
|
|
3097
2073
|
unoptimized: true,
|
|
3098
|
-
onError: hideOnError
|
|
2074
|
+
onError: _chunkJQWYXC2Ecjs.hideOnError
|
|
3099
2075
|
}
|
|
3100
2076
|
) : null,
|
|
3101
|
-
interview.main_video_url ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-4 w-4 text-ods-text-on-dark" }) }) : null
|
|
2077
|
+
interview.main_video_url ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-loading-optional": true, className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-4 w-4 text-ods-text-on-dark" }) }) : null
|
|
3102
2078
|
] }),
|
|
3103
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3104
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: interview.title }) }),
|
|
3105
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([interview, 'access',
|
|
3106
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: interview.video_summary || COMPACT_CARD_ROW_FILLER }) })
|
|
2079
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_TEXT_COL, children: [
|
|
2080
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE, children: interview.title }) }),
|
|
2081
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_SUBTITLE, children: [_optionalChain([interview, 'access', _36 => _36.user, 'optionalAccess', _37 => _37.full_name]), _optionalChain([interview, 'access', _38 => _38.msp, 'optionalAccess', _39 => _39.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
|
|
2082
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_SUMMARY, children: interview.video_summary || _chunkJQWYXC2Ecjs.COMPACT_CARD_ROW_FILLER }) })
|
|
3107
2083
|
] })
|
|
3108
2084
|
] });
|
|
3109
2085
|
}
|
|
3110
2086
|
if (size === "portrait") {
|
|
3111
2087
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3112
|
-
EntityPortraitCard,
|
|
2088
|
+
_chunkJQWYXC2Ecjs.EntityPortraitCard,
|
|
3113
2089
|
{
|
|
3114
2090
|
href,
|
|
3115
2091
|
target,
|
|
@@ -3120,19 +2096,19 @@ function CustomerInterviewCard({
|
|
|
3120
2096
|
imageAlt: interview.title,
|
|
3121
2097
|
title: interview.title,
|
|
3122
2098
|
person: {
|
|
3123
|
-
name: _optionalChain([interview, 'access',
|
|
3124
|
-
avatarUrl: _optionalChain([interview, 'access',
|
|
3125
|
-
subtitle: _nullishCoalesce(_optionalChain([interview, 'access',
|
|
3126
|
-
iconOverlayUrl: _nullishCoalesce(_optionalChain([interview, 'access',
|
|
2099
|
+
name: _optionalChain([interview, 'access', _40 => _40.user, 'optionalAccess', _41 => _41.full_name]) || "Customer",
|
|
2100
|
+
avatarUrl: _optionalChain([interview, 'access', _42 => _42.user, 'optionalAccess', _43 => _43.avatar_url]),
|
|
2101
|
+
subtitle: _nullishCoalesce(_optionalChain([interview, 'access', _44 => _44.msp, 'optionalAccess', _45 => _45.name]), () => ( null)),
|
|
2102
|
+
iconOverlayUrl: _nullishCoalesce(_optionalChain([interview, 'access', _46 => _46.msp, 'optionalAccess', _47 => _47.icon_url]), () => ( null))
|
|
3127
2103
|
},
|
|
3128
2104
|
className
|
|
3129
2105
|
}
|
|
3130
2106
|
);
|
|
3131
2107
|
}
|
|
3132
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
3133
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2108
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunkN6YCOBLKcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJQWYXC2Ecjs.Card, { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_FRAME_CLASS, INTERVIEW_CARD_BODY), children: [
|
|
2109
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, INTERVIEW_CARD_COVER, "bg-ods-bg"), children: thumbnailUrl ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3134
2110
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3135
|
-
|
|
2111
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
3136
2112
|
{
|
|
3137
2113
|
src: thumbnailUrl,
|
|
3138
2114
|
alt: interview.title,
|
|
@@ -3140,47 +2116,55 @@ function CustomerInterviewCard({
|
|
|
3140
2116
|
fill: true,
|
|
3141
2117
|
sizes: "(max-width: 768px) 100vw, 50vw",
|
|
3142
2118
|
unoptimized: true,
|
|
3143
|
-
onError: hideOnError
|
|
2119
|
+
onError: _chunkJQWYXC2Ecjs.hideOnError
|
|
3144
2120
|
}
|
|
3145
2121
|
),
|
|
3146
|
-
interview.main_video_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-black/40", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-ods-accent/90", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-8 w-8 text-ods-text-on-accent" }) }) })
|
|
2122
|
+
interview.main_video_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-loading-optional": true, className: "absolute inset-0 flex items-center justify-center bg-black/40", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-ods-accent/90", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-8 w-8 text-ods-text-on-accent" }) }) })
|
|
3147
2123
|
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-full w-full items-center justify-center bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-12 w-12 text-ods-text-secondary" }) }) }),
|
|
3148
2124
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 break-words text-ods-text-primary text-h3", children: interview.title }) }),
|
|
3149
2125
|
interview.video_summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 text-ods-text-secondary text-h6", children: interview.video_summary }) }),
|
|
3150
2126
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_ZONE, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_ROW, children: [
|
|
3151
2127
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
3152
|
-
_optionalChain([interview, 'access',
|
|
3153
|
-
|
|
2128
|
+
_optionalChain([interview, 'access', _48 => _48.user, 'optionalAccess', _49 => _49.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2129
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
3154
2130
|
{
|
|
3155
2131
|
src: interview.user.avatar_url,
|
|
3156
|
-
alt: _optionalChain([interview, 'access',
|
|
2132
|
+
alt: _optionalChain([interview, 'access', _50 => _50.user, 'optionalAccess', _51 => _51.full_name]) || "Customer",
|
|
3157
2133
|
className: "h-12 w-12 rounded-full border border-ods-border bg-ods-bg object-cover",
|
|
3158
2134
|
width: 48,
|
|
3159
2135
|
height: 48,
|
|
3160
2136
|
unoptimized: true
|
|
3161
2137
|
}
|
|
3162
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: (_optionalChain([interview, 'access',
|
|
3163
|
-
_optionalChain([interview, 'access',
|
|
3164
|
-
|
|
2138
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-full border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h4", children: (_optionalChain([interview, 'access', _52 => _52.user, 'optionalAccess', _53 => _53.full_name]) || "A").charAt(0).toUpperCase() }) }),
|
|
2139
|
+
_optionalChain([interview, 'access', _54 => _54.msp, 'optionalAccess', _55 => _55.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2140
|
+
"div",
|
|
3165
2141
|
{
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
2142
|
+
"data-loading-optional": true,
|
|
2143
|
+
className: "absolute -bottom-1 -right-1 flex h-6 w-6 items-center justify-center overflow-hidden rounded-full bg-ods-text-primary ring-1 ring-ods-bg",
|
|
2144
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2145
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
2146
|
+
{
|
|
2147
|
+
src: interview.msp.icon_url,
|
|
2148
|
+
alt: interview.msp.name || "MSP",
|
|
2149
|
+
className: "h-full w-full object-cover",
|
|
2150
|
+
width: 24,
|
|
2151
|
+
height: 24,
|
|
2152
|
+
unoptimized: true
|
|
2153
|
+
}
|
|
2154
|
+
)
|
|
3172
2155
|
}
|
|
3173
|
-
)
|
|
2156
|
+
)
|
|
3174
2157
|
] }),
|
|
3175
2158
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_TEXT, children: [
|
|
3176
2159
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-primary text-h6", children: [
|
|
3177
|
-
_optionalChain([interview, 'access',
|
|
3178
|
-
_optionalChain([interview, 'access',
|
|
3179
|
-
"
|
|
2160
|
+
_optionalChain([interview, 'access', _56 => _56.user, 'optionalAccess', _57 => _57.full_name]) || "Anonymous",
|
|
2161
|
+
_optionalChain([interview, 'access', _58 => _58.msp, 'optionalAccess', _59 => _59.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { "data-loading-optional": true, className: "text-ods-text-secondary", children: [
|
|
2162
|
+
" ",
|
|
2163
|
+
"\u2022 ",
|
|
3180
2164
|
interview.msp.name
|
|
3181
2165
|
] })
|
|
3182
2166
|
] }),
|
|
3183
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([interview, 'access',
|
|
2167
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([interview, 'access', _60 => _60.user, 'optionalAccess', _61 => _61.job_title]) || " " })
|
|
3184
2168
|
] })
|
|
3185
2169
|
] }) })
|
|
3186
2170
|
] }) });
|
|
@@ -3189,7 +2173,7 @@ function CustomerInterviewCard({
|
|
|
3189
2173
|
// src/components/chat/types/entities/investor-update.ts
|
|
3190
2174
|
function formatInvestorUpdatePeriod(start, end, options) {
|
|
3191
2175
|
if (!start && !end) return "";
|
|
3192
|
-
const fmt = (d) =>
|
|
2176
|
+
const fmt = (d) => _chunkAFJEUBDScjs.formatDateWithTimezone.call(void 0, d, null, _optionalChain([options, 'optionalAccess', _62 => _62.monthFormat]) === "long" ? "monthYear" : "monthYearShort") || "?";
|
|
3193
2177
|
const s = start ? fmt(start) : "?";
|
|
3194
2178
|
const e = end ? fmt(end) : "?";
|
|
3195
2179
|
return `${s} - ${e}`;
|
|
@@ -3206,19 +2190,23 @@ function InvestorUpdateCardSkeleton({
|
|
|
3206
2190
|
}) {
|
|
3207
2191
|
if (size === "portrait") {
|
|
3208
2192
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3209
|
-
|
|
2193
|
+
_chunkJQWYXC2Ecjs.EntityPortraitCard,
|
|
3210
2194
|
{
|
|
2195
|
+
loading: true,
|
|
2196
|
+
href: "",
|
|
2197
|
+
imageAlt: "",
|
|
2198
|
+
title: "",
|
|
3211
2199
|
typeLabel: showTypeBadge ? INVESTOR_UPDATE_TYPE_LABEL : void 0,
|
|
3212
2200
|
className
|
|
3213
2201
|
}
|
|
3214
2202
|
);
|
|
3215
2203
|
}
|
|
3216
2204
|
if (size === "default") {
|
|
3217
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `block h-full ${_nullishCoalesce(className, () => ( ""))}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2205
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `block h-full ${_nullishCoalesce(className, () => ( ""))}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AdminContentCard, { loading: true, title: "", subtitleRow: false }) });
|
|
3218
2206
|
}
|
|
3219
2207
|
if (size === "sm") {
|
|
3220
2208
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3221
|
-
CompactCardSkeleton,
|
|
2209
|
+
_chunkJQWYXC2Ecjs.CompactCardSkeleton,
|
|
3222
2210
|
{
|
|
3223
2211
|
titleWidth: "w-1/2",
|
|
3224
2212
|
titleBadges: ["w-8"],
|
|
@@ -3229,7 +2217,13 @@ function InvestorUpdateCardSkeleton({
|
|
|
3229
2217
|
}
|
|
3230
2218
|
return null;
|
|
3231
2219
|
}
|
|
3232
|
-
function InvestorUpdateCard({
|
|
2220
|
+
function InvestorUpdateCard(props) {
|
|
2221
|
+
if (_chunkN6YCOBLKcjs.useLoadingScope.call(void 0, ) || props.loading) {
|
|
2222
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InvestorUpdateCardSkeleton, { size: props.size, showTypeBadge: props.showTypeBadge, className: props.className });
|
|
2223
|
+
}
|
|
2224
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedInvestorUpdateCard, { ...props });
|
|
2225
|
+
}
|
|
2226
|
+
function LoadedInvestorUpdateCard({
|
|
3233
2227
|
update,
|
|
3234
2228
|
href,
|
|
3235
2229
|
target: targetProp,
|
|
@@ -3240,26 +2234,23 @@ function InvestorUpdateCard({
|
|
|
3240
2234
|
showTypeBadge = true,
|
|
3241
2235
|
className
|
|
3242
2236
|
}) {
|
|
3243
|
-
const { target, rel } = useEntityCardLink({
|
|
2237
|
+
const { target, rel } = _chunkJQWYXC2Ecjs.useEntityCardLink.call(void 0, {
|
|
3244
2238
|
href,
|
|
3245
2239
|
targetPlatform,
|
|
3246
2240
|
target: targetProp,
|
|
3247
2241
|
rel: relProp
|
|
3248
2242
|
});
|
|
3249
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
2243
|
+
const placeholderUrl = _chunkJQWYXC2Ecjs.useEntityCardPlaceholder.call(void 0, {
|
|
3250
2244
|
title: _nullishCoalesce(update.title, () => ( `Update #${_nullishCoalesce(update.update_number, () => ( ""))}`)),
|
|
3251
2245
|
placeholderUrl: placeholderUrlProp,
|
|
3252
2246
|
aspect: size === "sm" ? "square" : "wide"
|
|
3253
2247
|
});
|
|
3254
2248
|
const coverImage = update.featured_image || placeholderUrl || null;
|
|
3255
|
-
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
|
|
3256
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InvestorUpdateCardSkeleton, { size, showTypeBadge, className });
|
|
3257
|
-
}
|
|
3258
2249
|
if (size === "sm") {
|
|
3259
2250
|
const periodText = formatInvestorUpdatePeriod(update.period_start, update.period_end);
|
|
3260
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: `${COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
|
|
3261
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3262
|
-
|
|
2251
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: `${_chunkJQWYXC2Ecjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
|
|
2252
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2253
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
3263
2254
|
{
|
|
3264
2255
|
src: coverImage,
|
|
3265
2256
|
alt: _nullishCoalesce(update.title, () => ( "Investor update")),
|
|
@@ -3273,23 +2264,23 @@ function InvestorUpdateCard({
|
|
|
3273
2264
|
}
|
|
3274
2265
|
}
|
|
3275
2266
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Calendar, { className: "h-4 w-4" }) }) }),
|
|
3276
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3277
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${COMPACT_CARD_TITLE_ROW} gap-2`, children: [
|
|
3278
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_TITLE} min-w-0`, children: update.title || `Update #${_nullishCoalesce(update.update_number, () => ( "?"))}` }),
|
|
2267
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_TEXT_COL, children: [
|
|
2268
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE_ROW} gap-2`, children: [
|
|
2269
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE} min-w-0`, children: update.title || `Update #${_nullishCoalesce(update.update_number, () => ( "?"))}` }),
|
|
3279
2270
|
update.update_number ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 text-ods-accent text-h6", children: [
|
|
3280
2271
|
"#",
|
|
3281
2272
|
update.update_number
|
|
3282
2273
|
] }) : null
|
|
3283
2274
|
] }),
|
|
3284
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: periodText || "Investor update" }) }),
|
|
3285
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: (update.strategic_update || update.content || "").slice(0, 120) || COMPACT_CARD_ROW_FILLER }) })
|
|
2275
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_SUBTITLE, children: periodText || "Investor update" }) }),
|
|
2276
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_SUMMARY, children: (update.strategic_update || update.content || "").slice(0, 120) || _chunkJQWYXC2Ecjs.COMPACT_CARD_ROW_FILLER }) })
|
|
3286
2277
|
] })
|
|
3287
2278
|
] });
|
|
3288
2279
|
}
|
|
3289
2280
|
if (size === "portrait") {
|
|
3290
2281
|
const periodText = formatInvestorUpdatePeriod(update.period_start, update.period_end);
|
|
3291
2282
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3292
|
-
EntityPortraitCard,
|
|
2283
|
+
_chunkJQWYXC2Ecjs.EntityPortraitCard,
|
|
3293
2284
|
{
|
|
3294
2285
|
href,
|
|
3295
2286
|
target,
|
|
@@ -3310,7 +2301,7 @@ function InvestorUpdateCard({
|
|
|
3310
2301
|
imageUrl: update.featured_image,
|
|
3311
2302
|
placeholderUrl,
|
|
3312
2303
|
title: update.title || `Update #${update.update_number || "?"}`,
|
|
3313
|
-
summary: _optionalChain([update, 'access',
|
|
2304
|
+
summary: _optionalChain([update, 'access', _63 => _63.strategic_update, 'optionalAccess', _64 => _64.slice, 'call', _65 => _65(0, 120)]) || _optionalChain([update, 'access', _66 => _66.content, 'optionalAccess', _67 => _67.slice, 'call', _68 => _68(0, 120)]) || "No description",
|
|
3314
2305
|
badges: update.update_number ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rounded bg-ods-accent/10 px-2 py-0.5 text-xs font-medium text-ods-accent", children: [
|
|
3315
2306
|
"#",
|
|
3316
2307
|
update.update_number
|
|
@@ -3333,10 +2324,10 @@ function stripMarkdownPreview(text) {
|
|
|
3333
2324
|
var CATALOG_BODY = "flex flex-col gap-4 p-6";
|
|
3334
2325
|
var CATALOG_ROW = "flex flex-col gap-4 md:flex-row md:gap-6";
|
|
3335
2326
|
var CATALOG_COVER_COL = "w-full flex-shrink-0 md:w-[256px]";
|
|
3336
|
-
var CATALOG_COVER = `relative ${
|
|
2327
|
+
var CATALOG_COVER = `relative ${_chunkYNDH72VUcjs.MEDIA_ASPECT.og} w-full overflow-hidden rounded-lg`;
|
|
3337
2328
|
var CATALOG_TEXT = "flex min-w-0 flex-1 flex-col";
|
|
3338
|
-
var CATALOG_TITLE_ROW = `mb-3 flex items-start text-h2 ${
|
|
3339
|
-
var CATALOG_SUMMARY_ROW = `text-h6 ${
|
|
2329
|
+
var CATALOG_TITLE_ROW = `mb-3 flex items-start text-h2 ${_chunkYNDH72VUcjs.TEXT_LINES_MIN[2]}`;
|
|
2330
|
+
var CATALOG_SUMMARY_ROW = `text-h6 ${_chunkYNDH72VUcjs.TEXT_LINES_MIN[2]}`;
|
|
3340
2331
|
var CATALOG_EXTRA_CELL_LABELS = ["Section"];
|
|
3341
2332
|
var HORIZONTAL_SIZE_TOKENS = {
|
|
3342
2333
|
default: {
|
|
@@ -3353,49 +2344,75 @@ function OnboardingGuideCardSkeleton({
|
|
|
3353
2344
|
className
|
|
3354
2345
|
}) {
|
|
3355
2346
|
if (size === "portrait") {
|
|
3356
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2347
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2348
|
+
_chunkJQWYXC2Ecjs.EntityPortraitCard,
|
|
2349
|
+
{
|
|
2350
|
+
loading: true,
|
|
2351
|
+
href: "",
|
|
2352
|
+
imageAlt: "",
|
|
2353
|
+
title: "",
|
|
2354
|
+
typeLabel: showTypeBadge ? GUIDE_TYPE_LABEL : void 0,
|
|
2355
|
+
className
|
|
2356
|
+
}
|
|
2357
|
+
);
|
|
3357
2358
|
}
|
|
3358
2359
|
if (size === "catalog") {
|
|
3359
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2360
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_SKELETON_FRAME_CLASS, "block", className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_BODY, children: [
|
|
3360
2361
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_ROW, children: [
|
|
3361
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_COVER_COL, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2362
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_COVER_COL, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { className: CATALOG_COVER }) }),
|
|
3362
2363
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_TEXT, children: [
|
|
3363
2364
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_TITLE_ROW, children: [
|
|
3364
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3365
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2365
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h2", lines: 2, className: "w-3/4 lg:hidden" }),
|
|
2366
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h2", className: "hidden w-3/4 lg:flex" })
|
|
3366
2367
|
] }),
|
|
3367
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2368
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-full" }) })
|
|
3368
2369
|
] })
|
|
3369
2370
|
] }),
|
|
3370
2371
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3371
|
-
|
|
2372
|
+
EntityAuthorCard,
|
|
3372
2373
|
{
|
|
3373
|
-
|
|
3374
|
-
|
|
2374
|
+
loading: true,
|
|
2375
|
+
author: null,
|
|
2376
|
+
extraCells: CATALOG_EXTRA_CELL_LABELS.map((label) => ({ value: "", label })),
|
|
2377
|
+
publishedAt: published ? null : void 0
|
|
3375
2378
|
}
|
|
3376
2379
|
)
|
|
3377
2380
|
] }) });
|
|
3378
2381
|
}
|
|
3379
2382
|
if (size === "sm") {
|
|
3380
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { trailingIcon: true, className });
|
|
2383
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJQWYXC2Ecjs.CompactCardSkeleton, { trailingIcon: true, className });
|
|
3381
2384
|
}
|
|
3382
2385
|
const t = HORIZONTAL_SIZE_TOKENS.default;
|
|
3383
2386
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
3384
2387
|
"span",
|
|
3385
2388
|
{
|
|
3386
|
-
className:
|
|
2389
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0, `flex items-start gap-3 rounded-md border border-ods-border bg-ods-card ${t.padding}`, className),
|
|
3387
2390
|
children: [
|
|
3388
2391
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `inline-flex shrink-0 items-center justify-center rounded-full bg-ods-bg ${t.step}` }),
|
|
3389
2392
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
|
|
3390
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3391
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3392
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2393
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { as: "span", className: "block h-4 w-2/3 rounded" }),
|
|
2394
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { as: "span", className: "block h-3 w-1/3 rounded" }),
|
|
2395
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { as: "span", className: "block h-3 w-full rounded" })
|
|
3393
2396
|
] })
|
|
3394
2397
|
]
|
|
3395
2398
|
}
|
|
3396
2399
|
);
|
|
3397
2400
|
}
|
|
3398
|
-
function OnboardingGuideCard({
|
|
2401
|
+
function OnboardingGuideCard(props) {
|
|
2402
|
+
if (_chunkN6YCOBLKcjs.useLoadingScope.call(void 0, ) || props.loading) {
|
|
2403
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2404
|
+
OnboardingGuideCardSkeleton,
|
|
2405
|
+
{
|
|
2406
|
+
size: props.size,
|
|
2407
|
+
showTypeBadge: props.showTypeBadge !== false,
|
|
2408
|
+
published: "published" in props ? props.published : props.guide ? props.guide.published_at != null : true,
|
|
2409
|
+
className: props.className
|
|
2410
|
+
}
|
|
2411
|
+
);
|
|
2412
|
+
}
|
|
2413
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedOnboardingGuideCard, { ...props });
|
|
2414
|
+
}
|
|
2415
|
+
function LoadedOnboardingGuideCard({
|
|
3399
2416
|
guide,
|
|
3400
2417
|
href,
|
|
3401
2418
|
target: targetProp,
|
|
@@ -3406,24 +2423,21 @@ function OnboardingGuideCard({
|
|
|
3406
2423
|
showTypeBadge = true,
|
|
3407
2424
|
className
|
|
3408
2425
|
}) {
|
|
3409
|
-
const { target, rel } = useEntityCardLink({
|
|
2426
|
+
const { target, rel } = _chunkJQWYXC2Ecjs.useEntityCardLink.call(void 0, {
|
|
3410
2427
|
href,
|
|
3411
2428
|
targetPlatform,
|
|
3412
2429
|
target: targetProp,
|
|
3413
2430
|
rel: relProp
|
|
3414
2431
|
});
|
|
3415
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
2432
|
+
const placeholderUrl = _chunkJQWYXC2Ecjs.useEntityCardPlaceholder.call(void 0, {
|
|
3416
2433
|
title: guide.title,
|
|
3417
2434
|
placeholderUrl: placeholderUrlProp,
|
|
3418
2435
|
aspect: size === "sm" ? "square" : "wide"
|
|
3419
2436
|
});
|
|
3420
|
-
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
|
|
3421
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuideCardSkeleton, { size, showTypeBadge: showTypeBadge !== false, className });
|
|
3422
|
-
}
|
|
3423
2437
|
if (size === "portrait") {
|
|
3424
2438
|
const coverImage = guide.featured_image || guide.main_video_thumbnail || guide.og_image_url || null;
|
|
3425
2439
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3426
|
-
EntityPortraitCard,
|
|
2440
|
+
_chunkJQWYXC2Ecjs.EntityPortraitCard,
|
|
3427
2441
|
{
|
|
3428
2442
|
href,
|
|
3429
2443
|
target,
|
|
@@ -3442,7 +2456,7 @@ function OnboardingGuideCard({
|
|
|
3442
2456
|
const coverImage = guide.featured_image || guide.main_video_thumbnail || guide.og_image_url || null;
|
|
3443
2457
|
const hasVideoCover = !!(guide.main_video_thumbnail || guide.highlight_video_thumbnail);
|
|
3444
2458
|
const stepLabel = typeof guide.step_order === "number" ? String(guide.step_order).padStart(2, "0") : "\u2014";
|
|
3445
|
-
const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ?
|
|
2459
|
+
const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ? _chunkAFJEUBDScjs.formatDurationMMSS.call(void 0, Math.floor(guide.highlight_video_duration_ms / 1e3)) : "";
|
|
3446
2460
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3447
2461
|
_chunkV45KLJQPcjs.next_link_default,
|
|
3448
2462
|
{
|
|
@@ -3450,12 +2464,12 @@ function OnboardingGuideCard({
|
|
|
3450
2464
|
target,
|
|
3451
2465
|
rel,
|
|
3452
2466
|
prefetch: false,
|
|
3453
|
-
className:
|
|
2467
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_FRAME_CLASS, "block no-underline", className),
|
|
3454
2468
|
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_BODY, children: [
|
|
3455
2469
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_ROW, children: [
|
|
3456
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_COVER_COL, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2470
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_COVER_COL, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, CATALOG_COVER, "bg-ods-bg"), children: [
|
|
3457
2471
|
coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3458
|
-
|
|
2472
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
3459
2473
|
{
|
|
3460
2474
|
src: coverImage,
|
|
3461
2475
|
alt: guide.title,
|
|
@@ -3472,7 +2486,7 @@ function OnboardingGuideCard({
|
|
|
3472
2486
|
className: "absolute inset-0"
|
|
3473
2487
|
}
|
|
3474
2488
|
),
|
|
3475
|
-
hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2489
|
+
hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTSRCFXPcjs.CardHoverPlay, { size: "md" }),
|
|
3476
2490
|
durationLabel && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "absolute bottom-2 right-2 inline-flex items-center gap-1 rounded bg-black/60 px-2 py-1 text-ods-text-on-dark text-code", children: [
|
|
3477
2491
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Clock, { className: "h-3 w-3" }),
|
|
3478
2492
|
durationLabel
|
|
@@ -3507,7 +2521,7 @@ function OnboardingGuideCard({
|
|
|
3507
2521
|
const compactCover = coverImage || placeholderUrl || null;
|
|
3508
2522
|
const hasVideoCover = !guide.featured_image && !!guide.main_video_thumbnail;
|
|
3509
2523
|
const summary2 = stripMarkdownPreview(guide.video_summary || guide.content || "");
|
|
3510
|
-
const author = _optionalChain([guide, 'access',
|
|
2524
|
+
const author = _optionalChain([guide, 'access', _69 => _69.author, 'optionalAccess', _70 => _70.full_name, 'optionalAccess', _71 => _71.trim, 'call', _72 => _72()]) || "";
|
|
3511
2525
|
const subtitleParts = [`Step ${guide.step_order}`, guide.section, author].filter(
|
|
3512
2526
|
(s) => typeof s === "string" && s.length > 0
|
|
3513
2527
|
);
|
|
@@ -3518,16 +2532,16 @@ function OnboardingGuideCard({
|
|
|
3518
2532
|
target,
|
|
3519
2533
|
rel,
|
|
3520
2534
|
prefetch: false,
|
|
3521
|
-
className:
|
|
2535
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.COMPACT_CARD_OUTER, "group", className),
|
|
3522
2536
|
children: [
|
|
3523
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
3524
|
-
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3525
|
-
hasVideoCover && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2537
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_IMAGE_SLOT, children: [
|
|
2538
|
+
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3VINTJPEcjs.next_image_default, { src: compactCover, alt: guide.title, fill: true, sizes: "56px", className: "object-contain", unoptimized: true }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.GraduationCap, { className: "h-4 w-4" }) }),
|
|
2539
|
+
hasVideoCover && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTSRCFXPcjs.CardHoverPlay, { size: "sm" })
|
|
3526
2540
|
] }),
|
|
3527
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3528
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
3529
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
|
|
3530
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: summary2 || COMPACT_CARD_ROW_FILLER }) })
|
|
2541
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_TEXT_COL, children: [
|
|
2542
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE, "font-heading"), children: guide.title }) }),
|
|
2543
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
|
|
2544
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_SUMMARY, children: summary2 || _chunkJQWYXC2Ecjs.COMPACT_CARD_ROW_FILLER }) })
|
|
3531
2545
|
] }),
|
|
3532
2546
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) })
|
|
3533
2547
|
]
|
|
@@ -3543,7 +2557,7 @@ function OnboardingGuideCard({
|
|
|
3543
2557
|
target,
|
|
3544
2558
|
rel,
|
|
3545
2559
|
prefetch: false,
|
|
3546
|
-
className:
|
|
2560
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
3547
2561
|
`flex items-start gap-3 rounded-md border border-ods-border bg-ods-card transition-colors hover:border-ods-accent ${t.padding}`,
|
|
3548
2562
|
className
|
|
3549
2563
|
),
|
|
@@ -3582,23 +2596,23 @@ function RoadmapVoteButton({
|
|
|
3582
2596
|
className
|
|
3583
2597
|
}) {
|
|
3584
2598
|
const Icon = voteType === "up" ? _chunkOOYBIS7Dcjs.ThumbsUpClassicIcon : _chunk32ASZMTVcjs.ThumbsDownClassicIcon;
|
|
3585
|
-
const loading =
|
|
2599
|
+
const loading = _chunkN6YCOBLKcjs.useLoadingScope.call(void 0, );
|
|
3586
2600
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3587
|
-
|
|
2601
|
+
_chunkCDBFQVPAcjs.Button,
|
|
3588
2602
|
{
|
|
3589
2603
|
variant: "outline",
|
|
3590
2604
|
onClick,
|
|
3591
2605
|
disabled,
|
|
3592
2606
|
...loading ? { tabIndex: -1, "aria-hidden": true } : {},
|
|
3593
2607
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: "h-5 w-5", color }),
|
|
3594
|
-
className:
|
|
2608
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0,
|
|
3595
2609
|
className,
|
|
3596
2610
|
"flex h-full items-center justify-center gap-[2px] border-0 border-ods-border bg-ods-bg p-[12px]",
|
|
3597
2611
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
3598
2612
|
"transition-all hover:bg-ods-border",
|
|
3599
2613
|
isActive && "bg-ods-border"
|
|
3600
2614
|
),
|
|
3601
|
-
children: showCount && (loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2615
|
+
children: showCount && (loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "h6", className: "inline-block w-4" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6", children: count }))
|
|
3602
2616
|
}
|
|
3603
2617
|
);
|
|
3604
2618
|
}
|
|
@@ -3662,14 +2676,14 @@ function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
|
|
|
3662
2676
|
|
|
3663
2677
|
|
|
3664
2678
|
|
|
3665
|
-
var ROADMAP_COMPACT_SLOT = `${
|
|
2679
|
+
var ROADMAP_COMPACT_SLOT = `${_chunkYNDH72VUcjs.MEDIA_ASPECT.square} ${_chunkYNDH72VUcjs.TILE_SIZE.xl} shrink-0 self-start overflow-hidden rounded-md border border-ods-border p-1.5`;
|
|
3666
2680
|
var ROADMAP_CARD_BODY = "flex h-full scroll-mt-24 flex-col gap-[var(--spacing-system-mf)] p-[var(--spacing-system-lf)]";
|
|
3667
2681
|
var ROADMAP_CARD_HEADER = "flex w-full items-center gap-[16px]";
|
|
3668
|
-
var ROADMAP_CARD_ICON_BOX = `flex ${
|
|
2682
|
+
var ROADMAP_CARD_ICON_BOX = `flex ${_chunkYNDH72VUcjs.TILE_SIZE.feature} flex-shrink-0 items-center justify-center rounded-lg`;
|
|
3669
2683
|
var ROADMAP_CARD_HEADING = "flex min-w-0 flex-1 flex-col";
|
|
3670
|
-
var ROADMAP_CARD_TITLE_ROW = `flex items-center text-h3 ${
|
|
3671
|
-
var ROADMAP_CARD_META_ROW = `flex items-center text-h5 ${
|
|
3672
|
-
var ROADMAP_CARD_SUMMARY_ROW = `flex items-center text-h4 ${
|
|
2684
|
+
var ROADMAP_CARD_TITLE_ROW = `flex items-center text-h3 ${_chunkYNDH72VUcjs.TEXT_LINES_MIN[2]}`;
|
|
2685
|
+
var ROADMAP_CARD_META_ROW = `flex items-center text-h5 ${_chunkYNDH72VUcjs.TEXT_LINES_MIN[1]}`;
|
|
2686
|
+
var ROADMAP_CARD_SUMMARY_ROW = `flex items-center text-h4 ${_chunkYNDH72VUcjs.TEXT_LINES_MIN[3]}`;
|
|
3673
2687
|
var ROADMAP_CARD_FOOTER = "flex w-full items-center justify-between";
|
|
3674
2688
|
var ROADMAP_CARD_VOTES = "flex h-[48px] overflow-hidden rounded-[6px]";
|
|
3675
2689
|
var ROADMAP_CARD_FOOTER_END = "flex min-w-0 items-center gap-2";
|
|
@@ -3680,7 +2694,7 @@ function RoadmapCardSkeleton({
|
|
|
3680
2694
|
}) {
|
|
3681
2695
|
if (size === "sm") {
|
|
3682
2696
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3683
|
-
CompactCardSkeleton,
|
|
2697
|
+
_chunkJQWYXC2Ecjs.CompactCardSkeleton,
|
|
3684
2698
|
{
|
|
3685
2699
|
slotClassName: ROADMAP_COMPACT_SLOT,
|
|
3686
2700
|
titleWidth: "w-1/2",
|
|
@@ -3694,19 +2708,19 @@ function RoadmapCardSkeleton({
|
|
|
3694
2708
|
}
|
|
3695
2709
|
);
|
|
3696
2710
|
}
|
|
3697
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2711
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_SKELETON_FRAME_CLASS, ROADMAP_CARD_BODY, className), "aria-hidden": true, children: [
|
|
3698
2712
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADER, children: [
|
|
3699
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2713
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { className: ROADMAP_CARD_ICON_BOX }),
|
|
3700
2714
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADING, children: [
|
|
3701
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3702
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2715
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-3/4" }) }),
|
|
2716
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h5", className: "w-1/3" }) })
|
|
3703
2717
|
] }),
|
|
3704
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:block", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2718
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:block", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJQWYXC2Ecjs.StatusBadge, { loading: true, text: "" }) })
|
|
3705
2719
|
] }),
|
|
3706
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3707
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2720
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJQWYXC2Ecjs.StatusBadge, { loading: true, text: "" }) }),
|
|
2721
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { type: "h4", lines: 3, className: "w-full" }) }),
|
|
3708
2722
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
|
|
3709
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_FOOTER, children: votes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2723
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_FOOTER, children: votes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { className: _chunkN6YCOBLKcjs.cn.call(void 0, ROADMAP_CARD_VOTES, "w-32") }) })
|
|
3710
2724
|
] });
|
|
3711
2725
|
}
|
|
3712
2726
|
function assigneePeople(assignees) {
|
|
@@ -3716,7 +2730,13 @@ function assigneePeople(assignees) {
|
|
|
3716
2730
|
avatarUrl: a.avatarUrl
|
|
3717
2731
|
}));
|
|
3718
2732
|
}
|
|
3719
|
-
function RoadmapCard({
|
|
2733
|
+
function RoadmapCard(props) {
|
|
2734
|
+
if (_chunkN6YCOBLKcjs.useLoadingScope.call(void 0, ) || props.loading) {
|
|
2735
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapCardSkeleton, { size: props.size, votes: !!props.onVote, className: props.className });
|
|
2736
|
+
}
|
|
2737
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedRoadmapCard, { ...props });
|
|
2738
|
+
}
|
|
2739
|
+
function LoadedRoadmapCard({
|
|
3720
2740
|
item,
|
|
3721
2741
|
href,
|
|
3722
2742
|
target,
|
|
@@ -3730,25 +2750,23 @@ function RoadmapCard({
|
|
|
3730
2750
|
isVoting = false
|
|
3731
2751
|
}) {
|
|
3732
2752
|
const [showScreenshots, setShowScreenshots] = _react.useState.call(void 0, false);
|
|
3733
|
-
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
3734
2753
|
const logoUrl = item.icon && item.icon.startsWith("http") ? item.icon : null;
|
|
3735
2754
|
const iconSrc = useProxiedImageUrl(logoUrl) || null;
|
|
3736
|
-
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapCardSkeleton, { size, votes: !!onVote, className });
|
|
3737
2755
|
if (size === "sm") {
|
|
3738
|
-
const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
|
|
2756
|
+
const compactHref = _chunkJQWYXC2Ecjs.safeHref.call(void 0, _nullishCoalesce(href, () => ( null)));
|
|
3739
2757
|
const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
|
|
3740
2758
|
const hasFigma = !!item.figmaUrl;
|
|
3741
|
-
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access',
|
|
2759
|
+
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _73 => _73.screenshots, 'optionalAccess', _74 => _74.length]), () => ( 0))) > 0;
|
|
3742
2760
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
3743
2761
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
3744
2762
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3745
2763
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3746
2764
|
"span",
|
|
3747
2765
|
{
|
|
3748
|
-
className:
|
|
2766
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0, ROADMAP_COMPACT_SLOT, "flex items-center justify-center bg-ods-bg text-ods-accent"),
|
|
3749
2767
|
title: _nullishCoalesce(typeLabel, () => ( void 0)),
|
|
3750
2768
|
children: useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: item.customItemId, className: "h-6 w-6" }) : iconSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3751
|
-
|
|
2769
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
3752
2770
|
{
|
|
3753
2771
|
src: iconSrc,
|
|
3754
2772
|
alt: `${item.title} logo`,
|
|
@@ -3757,14 +2775,14 @@ function RoadmapCard({
|
|
|
3757
2775
|
unoptimized: true,
|
|
3758
2776
|
className: "h-8 w-8 object-contain"
|
|
3759
2777
|
}
|
|
3760
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase text-ods-text-secondary text-h6", children: _optionalChain([item, 'access',
|
|
2778
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase text-ods-text-secondary text-h6", children: _optionalChain([item, 'access', _75 => _75.title, 'optionalAccess', _76 => _76.substring, 'call', _77 => _77(0, 2)]) || "??" })
|
|
3761
2779
|
}
|
|
3762
2780
|
),
|
|
3763
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3764
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${COMPACT_CARD_TITLE_ROW} gap-2`, children: [
|
|
3765
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_TITLE} min-w-0`, children: item.title }),
|
|
2781
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_TEXT_COL, children: [
|
|
2782
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE_ROW} gap-2`, children: [
|
|
2783
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE} min-w-0`, children: item.title }),
|
|
3766
2784
|
item.status && item.status.trim().length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3767
|
-
StatusBadge,
|
|
2785
|
+
_chunkJQWYXC2Ecjs.StatusBadge,
|
|
3768
2786
|
{
|
|
3769
2787
|
text: item.status.toUpperCase(),
|
|
3770
2788
|
colorScheme: getStatusColorScheme(item.status),
|
|
@@ -3774,7 +2792,7 @@ function RoadmapCard({
|
|
|
3774
2792
|
}
|
|
3775
2793
|
) : null
|
|
3776
2794
|
] }),
|
|
3777
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${COMPACT_CARD_META_ROW_BOX} gap-2 text-ods-text-secondary`, children: [
|
|
2795
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX} gap-2 text-ods-text-secondary`, children: [
|
|
3778
2796
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1 truncate text-h6", children: (() => {
|
|
3779
2797
|
const parts = [item.quarter, item.targetVersion ? `${item.targetVersion} version` : null].filter(
|
|
3780
2798
|
Boolean
|
|
@@ -3810,20 +2828,20 @@ function RoadmapCard({
|
|
|
3810
2828
|
]
|
|
3811
2829
|
}
|
|
3812
2830
|
) : null,
|
|
3813
|
-
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2831
|
+
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRYIWADIBcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null
|
|
3814
2832
|
] }),
|
|
3815
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
|
|
2833
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_SUMMARY, children: item.description || _chunkJQWYXC2Ecjs.COMPACT_CARD_ROW_FILLER }) })
|
|
3816
2834
|
] })
|
|
3817
2835
|
] });
|
|
3818
2836
|
if (!compactHref) {
|
|
3819
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
2837
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJQWYXC2Ecjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
3820
2838
|
}
|
|
3821
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: compactHref, target, rel, className: `${COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
|
|
2839
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: compactHref, target, rel, className: `${_chunkJQWYXC2Ecjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
|
|
3822
2840
|
}
|
|
3823
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { id, className:
|
|
2841
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { id, className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_FRAME_CLASS, ROADMAP_CARD_BODY, className), children: [
|
|
3824
2842
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADER, children: [
|
|
3825
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
3826
|
-
|
|
2843
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, ROADMAP_CARD_ICON_BOX, "border border-ods-border bg-ods-bg"), children: iconSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2844
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
3827
2845
|
{
|
|
3828
2846
|
src: iconSrc,
|
|
3829
2847
|
alt: `${item.title} logo`,
|
|
@@ -3832,7 +2850,7 @@ function RoadmapCard({
|
|
|
3832
2850
|
unoptimized: true,
|
|
3833
2851
|
className: "object-contain p-1"
|
|
3834
2852
|
}
|
|
3835
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
2853
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _78 => _78.title, 'optionalAccess', _79 => _79.substring, 'call', _80 => _80(0, 2)]) || "??" }) }),
|
|
3836
2854
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADING, children: [
|
|
3837
2855
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 flex-1 text-ods-text-primary text-h3", children: item.title }) }),
|
|
3838
2856
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h5", children: [
|
|
@@ -3842,7 +2860,7 @@ function RoadmapCard({
|
|
|
3842
2860
|
] }) })
|
|
3843
2861
|
] }),
|
|
3844
2862
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:block", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3845
|
-
StatusBadge,
|
|
2863
|
+
_chunkJQWYXC2Ecjs.StatusBadge,
|
|
3846
2864
|
{
|
|
3847
2865
|
text: item.status.toUpperCase(),
|
|
3848
2866
|
colorScheme: getStatusColorScheme(item.status),
|
|
@@ -3851,7 +2869,7 @@ function RoadmapCard({
|
|
|
3851
2869
|
) })
|
|
3852
2870
|
] }),
|
|
3853
2871
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3854
|
-
StatusBadge,
|
|
2872
|
+
_chunkJQWYXC2Ecjs.StatusBadge,
|
|
3855
2873
|
{
|
|
3856
2874
|
text: item.status.toUpperCase(),
|
|
3857
2875
|
colorScheme: getStatusColorScheme(item.status),
|
|
@@ -3861,7 +2879,7 @@ function RoadmapCard({
|
|
|
3861
2879
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 text-ods-text-secondary text-h4", children: item.description || "" }) }),
|
|
3862
2880
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
|
|
3863
2881
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_FOOTER, children: [
|
|
3864
|
-
onVote && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2882
|
+
onVote && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, ROADMAP_CARD_VOTES, "border border-ods-border bg-ods-card"), children: [
|
|
3865
2883
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3866
2884
|
RoadmapVoteButton,
|
|
3867
2885
|
{
|
|
@@ -3888,9 +2906,9 @@ function RoadmapCard({
|
|
|
3888
2906
|
)
|
|
3889
2907
|
] }),
|
|
3890
2908
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_FOOTER_END, children: [
|
|
3891
|
-
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2909
|
+
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRYIWADIBcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null,
|
|
3892
2910
|
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3893
|
-
|
|
2911
|
+
_chunkCDBFQVPAcjs.Button,
|
|
3894
2912
|
{
|
|
3895
2913
|
variant: "outline",
|
|
3896
2914
|
size: "small-legacy",
|
|
@@ -3899,9 +2917,9 @@ function RoadmapCard({
|
|
|
3899
2917
|
}
|
|
3900
2918
|
),
|
|
3901
2919
|
(() => {
|
|
3902
|
-
const figmaSafe = safeHref(item.figmaUrl);
|
|
2920
|
+
const figmaSafe = _chunkJQWYXC2Ecjs.safeHref.call(void 0, item.figmaUrl);
|
|
3903
2921
|
return figmaSafe ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3904
|
-
|
|
2922
|
+
_chunkCDBFQVPAcjs.Button,
|
|
3905
2923
|
{
|
|
3906
2924
|
variant: "outline",
|
|
3907
2925
|
size: "small-legacy",
|
|
@@ -3911,7 +2929,14 @@ function RoadmapCard({
|
|
|
3911
2929
|
}
|
|
3912
2930
|
) : null;
|
|
3913
2931
|
})(),
|
|
3914
|
-
item.targetVersion && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2932
|
+
item.targetVersion && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2933
|
+
_chunkJQWYXC2Ecjs.StatusBadge,
|
|
2934
|
+
{
|
|
2935
|
+
"data-loading-optional": true,
|
|
2936
|
+
gen: _chunkJQWYXC2Ecjs.generationTierFromLabel.call(void 0, item.targetVersion),
|
|
2937
|
+
text: item.targetVersion
|
|
2938
|
+
}
|
|
2939
|
+
)
|
|
3915
2940
|
] })
|
|
3916
2941
|
] }),
|
|
3917
2942
|
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -3929,11 +2954,11 @@ function RoadmapCard({
|
|
|
3929
2954
|
|
|
3930
2955
|
|
|
3931
2956
|
|
|
3932
|
-
var EDITORIAL_FRAME = CONTENT_CARD_SKELETON_FRAME_CLASS;
|
|
2957
|
+
var EDITORIAL_FRAME = _chunkJQWYXC2Ecjs.CONTENT_CARD_SKELETON_FRAME_CLASS;
|
|
3933
2958
|
var EDITORIAL_ROW_GRID = "grid grid-cols-[88px_minmax(0,1fr)] items-center gap-[var(--spacing-system-m)] p-[var(--spacing-system-m)] sm:grid-cols-[120px_minmax(0,1fr)] sm:gap-[var(--spacing-system-l)]";
|
|
3934
|
-
var EDITORIAL_ROW_THUMB = `relative block ${
|
|
2959
|
+
var EDITORIAL_ROW_THUMB = `relative block ${_chunkYNDH72VUcjs.MEDIA_ASPECT.square} w-full overflow-hidden rounded-md`;
|
|
3935
2960
|
var EDITORIAL_ROW_TEXT = "flex min-w-0 flex-col gap-[var(--spacing-system-xs)]";
|
|
3936
|
-
var EDITORIAL_FEATURE_COVER = `relative block ${
|
|
2961
|
+
var EDITORIAL_FEATURE_COVER = `relative block ${_chunkYNDH72VUcjs.MEDIA_ASPECT.video} w-full overflow-hidden`;
|
|
3937
2962
|
var EDITORIAL_FEATURE_BODY = "flex flex-col gap-[var(--spacing-system-s)] p-[var(--spacing-system-l)]";
|
|
3938
2963
|
var EDITORIAL_META_ROW = "flex h-[1lh] min-w-0 items-center gap-x-[var(--spacing-system-s)] overflow-hidden whitespace-nowrap text-h6";
|
|
3939
2964
|
var EDITORIAL_PERSON_ROW = "flex h-8 min-w-0 items-center gap-[var(--spacing-system-s)]";
|
|
@@ -3950,71 +2975,92 @@ var DEFAULT_GALLERY_THUMB = "relative h-24 w-24 flex-shrink-0 overflow-hidden ro
|
|
|
3950
2975
|
var DEFAULT_FOOTER = "flex justify-end border-t border-ods-border pt-[var(--spacing-system-lf)]";
|
|
3951
2976
|
var DEFAULT_HOSTS_ROW = "flex flex-wrap gap-2 md:justify-end";
|
|
3952
2977
|
var DEFAULT_SKELETON_TAGS = 2;
|
|
2978
|
+
var PROGRAM_CARD_SKELETON_HOSTS = 1;
|
|
2979
|
+
var PROGRAM_CARD_SKELETON_MEDIA = 4;
|
|
3953
2980
|
var EDITORIAL_PERSON_AVATAR = { variant: "round", size: "sm" };
|
|
3954
2981
|
var programActionLabel = (singular) => `View ${singular.toLowerCase()}`;
|
|
3955
2982
|
function ProgramActionButton({ label, href, newTab }) {
|
|
3956
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2983
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCDBFQVPAcjs.Button, { variant: "outline", href, openInNewTab: newTab, rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ArrowRight, { className: "h-5 w-5" }), children: label });
|
|
3957
2984
|
}
|
|
3958
2985
|
function ProgramCardSkeleton({
|
|
3959
2986
|
size = "default",
|
|
3960
2987
|
eyebrow = true,
|
|
3961
2988
|
media = 0,
|
|
3962
2989
|
tags = false,
|
|
3963
|
-
hosts =
|
|
2990
|
+
hosts = PROGRAM_CARD_SKELETON_HOSTS,
|
|
3964
2991
|
typeLabel,
|
|
3965
2992
|
actionLabel,
|
|
3966
2993
|
className
|
|
3967
2994
|
}) {
|
|
3968
|
-
if (size === "portrait")
|
|
2995
|
+
if (size === "portrait")
|
|
2996
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJQWYXC2Ecjs.EntityPortraitCard, { loading: true, href: "", imageAlt: "", title: "", typeLabel, className });
|
|
3969
2997
|
if (size === "row") {
|
|
3970
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
3971
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2998
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkN6YCOBLKcjs.cn.call(void 0, EDITORIAL_FRAME, EDITORIAL_ROW_GRID, className), children: [
|
|
2999
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { as: "span", className: EDITORIAL_ROW_THUMB }),
|
|
3972
3000
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: EDITORIAL_ROW_TEXT, children: [
|
|
3973
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3974
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3975
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3001
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "h3", lines: 2, className: "w-full" }),
|
|
3002
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-40" }) }),
|
|
3003
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "h6", lines: 2, className: "w-full" })
|
|
3976
3004
|
] })
|
|
3977
3005
|
] });
|
|
3978
3006
|
}
|
|
3979
3007
|
if (size === "feature") {
|
|
3980
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
3981
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3008
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkN6YCOBLKcjs.cn.call(void 0, EDITORIAL_FRAME, "flex flex-col", className), children: [
|
|
3009
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { as: "span", className: _chunkN6YCOBLKcjs.cn.call(void 0, EDITORIAL_FEATURE_COVER, "rounded-none") }),
|
|
3982
3010
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: EDITORIAL_FEATURE_BODY, children: [
|
|
3983
|
-
eyebrow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3984
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3985
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3986
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3011
|
+
eyebrow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "h5", className: "w-28" }),
|
|
3012
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "h3", lines: 2, className: "w-full" }),
|
|
3013
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-40" }) }),
|
|
3014
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "h4", lines: 3, className: "w-full" }),
|
|
3987
3015
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: EDITORIAL_PERSON_ROW, children: [
|
|
3988
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3989
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3016
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAFJEUBDScjs.SquareAvatar, { loading: true, ...EDITORIAL_PERSON_AVATAR, className: "shrink-0" }),
|
|
3017
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "h6", className: "w-40" })
|
|
3990
3018
|
] })
|
|
3991
3019
|
] })
|
|
3992
3020
|
] });
|
|
3993
3021
|
}
|
|
3994
3022
|
if (size === "sm") {
|
|
3995
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { trailingIcon: true, className });
|
|
3023
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJQWYXC2Ecjs.CompactCardSkeleton, { trailingIcon: true, className });
|
|
3996
3024
|
}
|
|
3997
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3025
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.CONTENT_CARD_SKELETON_FRAME_CLASS, DEFAULT_BODY, className), children: [
|
|
3998
3026
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_HEADER, children: [
|
|
3999
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3027
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { className: DEFAULT_COVER_FRAME }),
|
|
4000
3028
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_TEXT, children: [
|
|
4001
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TITLE, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3029
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TITLE, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "inherit", lines: 2, className: "w-3/4" }) }),
|
|
4002
3030
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_META_ROW, children: [
|
|
4003
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4004
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3031
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-32" }),
|
|
3032
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-40" })
|
|
4005
3033
|
] }),
|
|
4006
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_DESCRIPTION, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4007
|
-
tags && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children:
|
|
3034
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_DESCRIPTION, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.TextLineSkeleton, { as: "span", type: "inherit", lines: 3, className: "w-full" }) }),
|
|
3035
|
+
tags && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN6YCOBLKcjs.LoadingItems, { count: DEFAULT_SKELETON_TAGS, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAFJEUBDScjs.Tag, { loading: true, as: "span", label: "", variant: "outline", "data-loading-item": true }) }) })
|
|
4008
3036
|
] }),
|
|
4009
|
-
hosts > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_HOSTS_ROW, children:
|
|
3037
|
+
hosts > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_HOSTS_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN6YCOBLKcjs.LoadingItems, { count: hosts, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAFJEUBDScjs.SquareAvatar, { loading: true, variant: "round", size: "sm", "data-loading-item": true }) }) })
|
|
4010
3038
|
] }),
|
|
4011
|
-
media > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_GALLERY_ROW, children:
|
|
3039
|
+
media > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_GALLERY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN6YCOBLKcjs.LoadingItems, { count: media, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.UnifiedSkeleton, { className: DEFAULT_GALLERY_THUMB, "data-loading-item": true }) }) }),
|
|
4012
3040
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children: actionLabel ? (
|
|
4013
3041
|
// The action's words are copy: the real button, not a control while it loads.
|
|
4014
3042
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { inert: true, "aria-hidden": true, className: "flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProgramActionButton, { label: actionLabel }) })
|
|
4015
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3043
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNDH72VUcjs.InteractiveSkeleton.Button, { size: "default", className: "w-40" }) })
|
|
4016
3044
|
] });
|
|
4017
3045
|
}
|
|
3046
|
+
function ProgramCard(props) {
|
|
3047
|
+
if (_chunkN6YCOBLKcjs.useLoadingScope.call(void 0, ) || props.loading) {
|
|
3048
|
+
const { config, size = "default", showTypeBadge = true, eyebrow, className } = props;
|
|
3049
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3050
|
+
ProgramCardSkeleton,
|
|
3051
|
+
{
|
|
3052
|
+
size,
|
|
3053
|
+
eyebrow: !!eyebrow,
|
|
3054
|
+
media: _optionalChain([config, 'optionalAccess', _81 => _81.cardShowsGallery]) ? PROGRAM_CARD_SKELETON_MEDIA : 0,
|
|
3055
|
+
hosts: _optionalChain([config, 'optionalAccess', _82 => _82.cardShowsHosts]) ? PROGRAM_CARD_SKELETON_HOSTS : 0,
|
|
3056
|
+
typeLabel: config && size === "portrait" && showTypeBadge ? config.labels.singular : void 0,
|
|
3057
|
+
actionLabel: config ? programActionLabel(config.labels.singular) : void 0,
|
|
3058
|
+
className
|
|
3059
|
+
}
|
|
3060
|
+
);
|
|
3061
|
+
}
|
|
3062
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedProgramCard, { ...props });
|
|
3063
|
+
}
|
|
4018
3064
|
function getHosts(hosts) {
|
|
4019
3065
|
if (!hosts) return [];
|
|
4020
3066
|
try {
|
|
@@ -4043,7 +3089,7 @@ function getHosts(hosts) {
|
|
|
4043
3089
|
}
|
|
4044
3090
|
return [];
|
|
4045
3091
|
}
|
|
4046
|
-
function MediaGallery({ images, title }) {
|
|
3092
|
+
function MediaGallery({ images, title, optional }) {
|
|
4047
3093
|
const [selectedImageIndex, setSelectedImageIndex] = _react.useState.call(void 0, null);
|
|
4048
3094
|
const [isModalOpen, setIsModalOpen] = _react.useState.call(void 0, false);
|
|
4049
3095
|
const openImageModal = (index, event) => {
|
|
@@ -4056,13 +3102,14 @@ function MediaGallery({ images, title }) {
|
|
|
4056
3102
|
setSelectedImageIndex(null);
|
|
4057
3103
|
};
|
|
4058
3104
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
4059
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_GALLERY_ROW, style: { width: "max-content" }, children: images.map((mediaItem, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3105
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto", "data-loading-optional": optional || void 0, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_GALLERY_ROW, style: { width: "max-content" }, children: images.map((mediaItem, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4060
3106
|
"div",
|
|
4061
3107
|
{
|
|
4062
|
-
className:
|
|
3108
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0, DEFAULT_GALLERY_THUMB, "group/thumb cursor-pointer"),
|
|
4063
3109
|
onClick: (e) => openImageModal(index, e),
|
|
3110
|
+
"data-loading-item": true,
|
|
4064
3111
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4065
|
-
|
|
3112
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
4066
3113
|
{
|
|
4067
3114
|
src: mediaItem.media_url,
|
|
4068
3115
|
alt: `${title} photo ${index + 1}`,
|
|
@@ -4103,19 +3150,19 @@ function ProgramEditorialCard({
|
|
|
4103
3150
|
priority,
|
|
4104
3151
|
className
|
|
4105
3152
|
}) {
|
|
4106
|
-
const edgeColor =
|
|
3153
|
+
const edgeColor = _chunkDJTPDK3Wcjs.useImageEdgeColor.call(void 0, feature ? cover : null, "transparent");
|
|
4107
3154
|
const meta = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: EDITORIAL_META_ROW, children: [
|
|
4108
3155
|
date && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-flamingo-pink", children: date }),
|
|
4109
|
-
[typeMeta, feature ? null : _optionalChain([profile, 'optionalAccess',
|
|
3156
|
+
[typeMeta, feature ? null : _optionalChain([profile, 'optionalAccess', _83 => _83.name])].filter((part) => !!part).map((part) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-s)] text-ods-text-secondary", children: [
|
|
4110
3157
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", children: "\u2022" }),
|
|
4111
3158
|
part
|
|
4112
3159
|
] }, part))
|
|
4113
3160
|
] });
|
|
4114
3161
|
if (!feature) {
|
|
4115
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className:
|
|
4116
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
4117
|
-
cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4118
|
-
playable && cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3162
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJQWYXC2Ecjs.ContentCardFrame, { as: "a", href, target, rel, className: _chunkN6YCOBLKcjs.cn.call(void 0, EDITORIAL_ROW_GRID, className), children: [
|
|
3163
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkN6YCOBLKcjs.cn.call(void 0, EDITORIAL_ROW_THUMB, "bg-ods-bg"), children: [
|
|
3164
|
+
cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3VINTJPEcjs.next_image_default, { src: cover, alt: "", fill: true, sizes: "120px", className: "object-cover", priority, unoptimized: true }),
|
|
3165
|
+
playable && cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTSRCFXPcjs.CardHoverPlay, { size: "md" })
|
|
4119
3166
|
] }),
|
|
4120
3167
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: EDITORIAL_ROW_TEXT, children: [
|
|
4121
3168
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 min-h-[2lh] text-ods-text-primary text-h3", children: title }),
|
|
@@ -4124,15 +3171,15 @@ function ProgramEditorialCard({
|
|
|
4124
3171
|
] })
|
|
4125
3172
|
] });
|
|
4126
3173
|
}
|
|
4127
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className:
|
|
3174
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJQWYXC2Ecjs.ContentCardFrame, { as: "a", href, target, rel, className: _chunkN6YCOBLKcjs.cn.call(void 0, "flex flex-col", className), children: [
|
|
4128
3175
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4129
3176
|
"span",
|
|
4130
3177
|
{
|
|
4131
|
-
className:
|
|
3178
|
+
className: _chunkN6YCOBLKcjs.cn.call(void 0, EDITORIAL_FEATURE_COVER, "transition-colors duration-300"),
|
|
4132
3179
|
style: { backgroundColor: edgeColor },
|
|
4133
3180
|
children: [
|
|
4134
3181
|
cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4135
|
-
|
|
3182
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
4136
3183
|
{
|
|
4137
3184
|
src: cover,
|
|
4138
3185
|
alt: "",
|
|
@@ -4143,7 +3190,7 @@ function ProgramEditorialCard({
|
|
|
4143
3190
|
unoptimized: true
|
|
4144
3191
|
}
|
|
4145
3192
|
),
|
|
4146
|
-
playable && cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3193
|
+
playable && cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTSRCFXPcjs.CardHoverPlay, { size: "lg" })
|
|
4147
3194
|
]
|
|
4148
3195
|
}
|
|
4149
3196
|
),
|
|
@@ -4154,7 +3201,7 @@ function ProgramEditorialCard({
|
|
|
4154
3201
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-3 min-h-[3lh] text-ods-text-secondary text-h4", children: description }),
|
|
4155
3202
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_PERSON_ROW, children: profile && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
4156
3203
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4157
|
-
|
|
3204
|
+
_chunkAFJEUBDScjs.SquareAvatar,
|
|
4158
3205
|
{
|
|
4159
3206
|
...EDITORIAL_PERSON_AVATAR,
|
|
4160
3207
|
src: profile.avatarUrl || void 0,
|
|
@@ -4164,8 +3211,9 @@ function ProgramEditorialCard({
|
|
|
4164
3211
|
),
|
|
4165
3212
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "truncate text-h6", children: [
|
|
4166
3213
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary", children: profile.name }),
|
|
4167
|
-
profile.subtitle && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
|
|
4168
|
-
"
|
|
3214
|
+
profile.subtitle && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { "data-loading-optional": true, className: "text-ods-text-secondary", children: [
|
|
3215
|
+
" ",
|
|
3216
|
+
"\xB7 ",
|
|
4169
3217
|
profile.subtitle
|
|
4170
3218
|
] })
|
|
4171
3219
|
] })
|
|
@@ -4173,7 +3221,7 @@ function ProgramEditorialCard({
|
|
|
4173
3221
|
] })
|
|
4174
3222
|
] });
|
|
4175
3223
|
}
|
|
4176
|
-
function
|
|
3224
|
+
function LoadedProgramCard({
|
|
4177
3225
|
config,
|
|
4178
3226
|
item,
|
|
4179
3227
|
media = [],
|
|
@@ -4191,32 +3239,17 @@ function ProgramCard({
|
|
|
4191
3239
|
priority,
|
|
4192
3240
|
className
|
|
4193
3241
|
}) {
|
|
4194
|
-
const { target, rel } = useEntityCardLink({
|
|
3242
|
+
const { target, rel } = _chunkJQWYXC2Ecjs.useEntityCardLink.call(void 0, {
|
|
4195
3243
|
href,
|
|
4196
3244
|
targetPlatform,
|
|
4197
3245
|
target: targetProp,
|
|
4198
3246
|
rel: relProp
|
|
4199
3247
|
});
|
|
4200
|
-
const placeholderUrl = useEntityCardPlaceholder({
|
|
3248
|
+
const placeholderUrl = _chunkJQWYXC2Ecjs.useEntityCardPlaceholder.call(void 0, {
|
|
4201
3249
|
title: item.title,
|
|
4202
3250
|
placeholderUrl: placeholderUrlProp,
|
|
4203
3251
|
aspect: size === "sm" || size === "row" ? "square" : "wide"
|
|
4204
3252
|
});
|
|
4205
|
-
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
|
|
4206
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4207
|
-
ProgramCardSkeleton,
|
|
4208
|
-
{
|
|
4209
|
-
size,
|
|
4210
|
-
eyebrow: !!eyebrow,
|
|
4211
|
-
media: media.filter((m) => isImageMedia(m)).length,
|
|
4212
|
-
tags: tags.length > 0,
|
|
4213
|
-
hosts: getHosts(item.hosts).length,
|
|
4214
|
-
typeLabel: size === "portrait" && showTypeBadge ? config.labels.singular : void 0,
|
|
4215
|
-
actionLabel: programActionLabel(config.labels.singular),
|
|
4216
|
-
className
|
|
4217
|
-
}
|
|
4218
|
-
);
|
|
4219
|
-
}
|
|
4220
3253
|
const coverImage = item.cover_url;
|
|
4221
3254
|
const images = media.filter((m) => isImageMedia(m));
|
|
4222
3255
|
const hosts = getHosts(item.hosts);
|
|
@@ -4229,12 +3262,12 @@ function ProgramCard({
|
|
|
4229
3262
|
// Compact densities join plain strings, so the zone rides inline here; the
|
|
4230
3263
|
// default density below renders it as its own styled span instead.
|
|
4231
3264
|
} = programMetaLine(item, config.type, programMetaFormatters(PROGRAM_META_RENDERERS));
|
|
4232
|
-
const compactDate =
|
|
3265
|
+
const compactDate = _chunkAFJEUBDScjs.formatProgramDate.call(void 0, zonedDate, "medium");
|
|
4233
3266
|
if (size === "portrait") {
|
|
4234
|
-
const profile = programItemToStripProfile(item);
|
|
3267
|
+
const profile = _chunkJQWYXC2Ecjs.programItemToStripProfile.call(void 0, item);
|
|
4235
3268
|
const dateMeta = compactMetaLine;
|
|
4236
3269
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4237
|
-
EntityPortraitCard,
|
|
3270
|
+
_chunkJQWYXC2Ecjs.EntityPortraitCard,
|
|
4238
3271
|
{
|
|
4239
3272
|
href,
|
|
4240
3273
|
target,
|
|
@@ -4263,9 +3296,9 @@ function ProgramCard({
|
|
|
4263
3296
|
description: item.description,
|
|
4264
3297
|
cover: coverImage || placeholderUrl || null,
|
|
4265
3298
|
eyebrow,
|
|
4266
|
-
date:
|
|
3299
|
+
date: _chunkAFJEUBDScjs.formatProgramDate.call(void 0, zonedDate, "weekday"),
|
|
4267
3300
|
typeMeta: compactTypeMetaValue,
|
|
4268
|
-
profile: programItemToStripProfile(item),
|
|
3301
|
+
profile: _chunkJQWYXC2Ecjs.programItemToStripProfile.call(void 0, item),
|
|
4269
3302
|
playable: isPlayable,
|
|
4270
3303
|
priority,
|
|
4271
3304
|
className
|
|
@@ -4276,13 +3309,13 @@ function ProgramCard({
|
|
|
4276
3309
|
const itemDate = compactDate;
|
|
4277
3310
|
const compactCover = coverImage || placeholderUrl || null;
|
|
4278
3311
|
const typeMeta = compactTypeMetaValue;
|
|
4279
|
-
const subtitleParts = [itemDate, typeMeta, _optionalChain([config, 'access',
|
|
3312
|
+
const subtitleParts = [itemDate, typeMeta, _optionalChain([config, 'access', _84 => _84.labels, 'optionalAccess', _85 => _85.singular])].filter(
|
|
4280
3313
|
(s) => typeof s === "string" && s.length > 0
|
|
4281
3314
|
);
|
|
4282
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
4283
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
3315
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.COMPACT_CARD_OUTER, "group", className), children: [
|
|
3316
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_IMAGE_SLOT, children: [
|
|
4284
3317
|
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4285
|
-
|
|
3318
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
4286
3319
|
{
|
|
4287
3320
|
src: compactCover,
|
|
4288
3321
|
alt: item.title,
|
|
@@ -4293,17 +3326,17 @@ function ProgramCard({
|
|
|
4293
3326
|
unoptimized: true
|
|
4294
3327
|
}
|
|
4295
3328
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: config.type === "podcast" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Play, { className: "h-4 w-4" }) : config.type === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-4 w-4" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Clock, { className: "h-4 w-4" }) }),
|
|
4296
|
-
isPlayable && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3329
|
+
isPlayable && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTSRCFXPcjs.CardHoverPlay, { size: "sm" })
|
|
4297
3330
|
] }),
|
|
4298
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
4299
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
4300
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
|
|
4301
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
|
|
3331
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_TEXT_COL, children: [
|
|
3332
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkN6YCOBLKcjs.cn.call(void 0, _chunkJQWYXC2Ecjs.COMPACT_CARD_TITLE, "font-heading"), children: item.title }) }),
|
|
3333
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-accent text-h6", children: subtitleParts.join(" \xB7 ") }) }),
|
|
3334
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJQWYXC2Ecjs.COMPACT_CARD_SUMMARY, children: item.description || _chunkJQWYXC2Ecjs.COMPACT_CARD_ROW_FILLER }) })
|
|
4302
3335
|
] }),
|
|
4303
3336
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) })
|
|
4304
3337
|
] });
|
|
4305
3338
|
}
|
|
4306
|
-
const dateFormat =
|
|
3339
|
+
const dateFormat = _chunkAFJEUBDScjs.formatProgramDate.call(void 0, zonedDate, "weekday");
|
|
4307
3340
|
const { typeMeta: defaultTypeMeta, audience: defaultAudience } = programMetaLine(
|
|
4308
3341
|
item,
|
|
4309
3342
|
config.type,
|
|
@@ -4334,11 +3367,11 @@ function ProgramCard({
|
|
|
4334
3367
|
return null;
|
|
4335
3368
|
};
|
|
4336
3369
|
const endAt = "end_at" in item && typeof item.end_at === "string" ? item.end_at : null;
|
|
4337
|
-
const dateLabel = _nullishCoalesce(
|
|
3370
|
+
const dateLabel = _nullishCoalesce(_chunkAFJEUBDScjs.formatProgramDateRange.call(void 0, zonedDate, endAt), () => ( dateFormat));
|
|
4338
3371
|
const cardHeader = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_HEADER, children: [
|
|
4339
3372
|
coverImage && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_COVER_FRAME, children: [
|
|
4340
3373
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4341
|
-
|
|
3374
|
+
_chunk3VINTJPEcjs.next_image_default,
|
|
4342
3375
|
{
|
|
4343
3376
|
src: coverImage,
|
|
4344
3377
|
alt: item.title,
|
|
@@ -4349,7 +3382,7 @@ function ProgramCard({
|
|
|
4349
3382
|
unoptimized: true
|
|
4350
3383
|
}
|
|
4351
3384
|
),
|
|
4352
|
-
isPlayable && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3385
|
+
isPlayable && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTSRCFXPcjs.CardHoverPlay, { size: "md" })
|
|
4353
3386
|
] }),
|
|
4354
3387
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_TEXT, children: [
|
|
4355
3388
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: DEFAULT_TITLE, children: item.title }),
|
|
@@ -4364,28 +3397,30 @@ function ProgramCard({
|
|
|
4364
3397
|
] })
|
|
4365
3398
|
] }),
|
|
4366
3399
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: DEFAULT_DESCRIPTION, children: item.description }),
|
|
4367
|
-
tags.length > 0 &&
|
|
3400
|
+
tags.length > 0 && // Only some records carry tags: the loading card leaves the row out.
|
|
3401
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, "data-loading-optional": true, children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAFJEUBDScjs.Tag, { as: "span", label: tag, variant: "outline", "data-loading-item": true }, tag)) })
|
|
4368
3402
|
] }),
|
|
4369
3403
|
hosts.length > 0 && // A type whose cards always show hosts (`cardShowsHosts`) draws them while loading; elsewhere only some
|
|
4370
3404
|
// records have hosts, so the row is record-dependent.
|
|
4371
3405
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_HOSTS_ROW, "data-loading-optional": config.cardShowsHosts ? void 0 : true, children: hosts.map((host, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4372
|
-
|
|
3406
|
+
_chunkAFJEUBDScjs.SquareAvatar,
|
|
4373
3407
|
{
|
|
4374
3408
|
variant: "round",
|
|
4375
3409
|
src: host.avatar || void 0,
|
|
4376
3410
|
alt: host.name,
|
|
4377
3411
|
fallback: host.name.charAt(0).toUpperCase(),
|
|
4378
|
-
size: "sm"
|
|
3412
|
+
size: "sm",
|
|
3413
|
+
"data-loading-item": true
|
|
4379
3414
|
},
|
|
4380
3415
|
`${item.id}-host-${index}`
|
|
4381
3416
|
)) })
|
|
4382
3417
|
] });
|
|
4383
|
-
const cardFrameClass =
|
|
3418
|
+
const cardFrameClass = _chunkN6YCOBLKcjs.cn.call(void 0, DEFAULT_BODY, className);
|
|
4384
3419
|
const actionLabel = programActionLabel(config.labels.singular);
|
|
4385
3420
|
if (wholeCardClickable) {
|
|
4386
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className: cardFrameClass, children: [
|
|
3421
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJQWYXC2Ecjs.ContentCardFrame, { as: "a", href, target, rel, className: cardFrameClass, children: [
|
|
4387
3422
|
cardHeader,
|
|
4388
|
-
images.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGallery, { images, title: item.title }),
|
|
3423
|
+
images.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGallery, { images, title: item.title, optional: !config.cardShowsGallery }),
|
|
4389
3424
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4390
3425
|
"span",
|
|
4391
3426
|
{
|
|
@@ -4399,9 +3434,9 @@ function ProgramCard({
|
|
|
4399
3434
|
) })
|
|
4400
3435
|
] });
|
|
4401
3436
|
}
|
|
4402
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "div", className: cardFrameClass, children: [
|
|
3437
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJQWYXC2Ecjs.ContentCardFrame, { as: "div", className: cardFrameClass, children: [
|
|
4403
3438
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: "block", children: cardHeader }),
|
|
4404
|
-
images.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGallery, { images, title: item.title }),
|
|
3439
|
+
images.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGallery, { images, title: item.title, optional: !config.cardShowsGallery }),
|
|
4405
3440
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProgramActionButton, { label: actionLabel, href, newTab: target === "_blank" }) })
|
|
4406
3441
|
] });
|
|
4407
3442
|
}
|
|
@@ -4511,87 +3546,4 @@ function ProgramCard({
|
|
|
4511
3546
|
|
|
4512
3547
|
|
|
4513
3548
|
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
|
|
4521
|
-
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
|
|
4538
|
-
|
|
4539
|
-
|
|
4540
|
-
|
|
4541
|
-
|
|
4542
|
-
|
|
4543
|
-
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4562
|
-
|
|
4563
|
-
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4590
|
-
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
|
|
4597
|
-
exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.ImageGalleryModal = ImageGalleryModal; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.VideoSkeleton = VideoSkeleton; exports.statusBadgeVariants = statusBadgeVariants; exports.genBadgeBgOpacity = genBadgeBgOpacity; exports.generationTierFromLabel = generationTierFromLabel; exports.StatusBadgeSkeleton = StatusBadgeSkeleton; exports.StatusBadge = StatusBadge; exports.EntityIcon = EntityIcon; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.skipsImageOptimizer = skipsImageOptimizer; exports.useProxiedImageUrl = useProxiedImageUrl; exports.escapeRegExp = escapeRegExp; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.resolveReleaseCover = resolveReleaseCover; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.getStatusColorScheme = getStatusColorScheme; exports.isCrossOriginUrl = isCrossOriginUrl; exports.TRUST_FRAMEWORK_MONITORING = TRUST_FRAMEWORK_MONITORING; exports.trustFrameworkMonitoringEntry = trustFrameworkMonitoringEntry; exports.trustFrameworkBadge = trustFrameworkBadge; exports.TRUST_CENTER_SECTIONS = TRUST_CENTER_SECTIONS; exports.TRUST_CENTER_TITLE = TRUST_CENTER_TITLE; exports.TRUST_CENTER_TAGLINE = TRUST_CENTER_TAGLINE; exports.TRUST_CENTER_API_PATH = TRUST_CENTER_API_PATH; exports.TRUST_CENTER_CACHE_SECONDS = TRUST_CENTER_CACHE_SECONDS; exports.TRUST_CENTER_DOCUMENT_CACHE_SECONDS = TRUST_CENTER_DOCUMENT_CACHE_SECONDS; exports.TRUST_CENTER_CARD_ID = TRUST_CENTER_CARD_ID; exports.TRUST_CENTER_DOCUMENT_TYPE = TRUST_CENTER_DOCUMENT_TYPE; exports.TRUST_CENTER_PAGE_PATH = TRUST_CENTER_PAGE_PATH; exports.isTrustCenterMonitored = isTrustCenterMonitored; exports.trustCenterMonitoringStatus = trustCenterMonitoringStatus; exports.trustFrameworksSummary = trustFrameworksSummary; exports.trustCenterDocumentUrl = trustCenterDocumentUrl; exports.trustCenterPdfUrl = trustCenterPdfUrl; exports.visibleTrustCenterSections = visibleTrustCenterSections; exports.TRUST_CENTER_SEARCH_PARAM = TRUST_CENTER_SEARCH_PARAM; exports.TRUST_CENTER_SEARCH_MAX_CHARS = TRUST_CENTER_SEARCH_MAX_CHARS; exports.TRUST_CENTER_SEARCH_DEBOUNCE_MS = TRUST_CENTER_SEARCH_DEBOUNCE_MS; exports.TRUST_CENTER_DOMAIN_PARAM = TRUST_CENTER_DOMAIN_PARAM; exports.normalizeTrustControlQuery = normalizeTrustControlQuery; exports.trustControlQueryMatcher = trustControlQueryMatcher; exports.filterTrustControlDomains = filterTrustControlDomains; exports.trustCenterControlsUrl = trustCenterControlsUrl; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.extractCardItems = extractCardItems; exports.MEDIA_TYPE = MEDIA_TYPE; exports.isVideoMedia = isVideoMedia; exports.isImageMedia = isImageMedia; exports.isPublishableMediaType = isPublishableMediaType; exports.partitionMediaByType = partitionMediaByType; exports.IMAGE_FILE_ACCEPT = IMAGE_FILE_ACCEPT; exports.MEDIA_FILE_ACCEPT = MEDIA_FILE_ACCEPT; exports.fileMediaType = fileMediaType; exports.mediaNameKey = mediaNameKey; exports.fileContentKey = fileContentKey; exports.programStr = programStr; exports.programDateInstant = programDateInstant; exports.webinarTiming = webinarTiming; exports.programMetaLine = programMetaLine; exports.eventAudience = eventAudience; exports.programMetaFormatters = programMetaFormatters; exports.PROGRAM_META_RENDERERS = PROGRAM_META_RENDERERS; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveHrefForRuntime = resolveHrefForRuntime; exports.resolveExternalNavigation = resolveExternalNavigation; exports.decideNewTab = decideNewTab; exports.isSameOriginAbsoluteHref = isSameOriginAbsoluteHref; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataValueCellSkeleton = EntityMetadataValueCellSkeleton; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityMetadataAuthorCellSkeleton = EntityMetadataAuthorCellSkeleton; exports.EntityAuthorCardSkeleton = EntityAuthorCardSkeleton; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.CONTENT_CARD_FRAME_CLASS = CONTENT_CARD_FRAME_CLASS; exports.CONTENT_CARD_SKELETON_FRAME_CLASS = CONTENT_CARD_SKELETON_FRAME_CLASS; exports.ContentCardFrame = ContentCardFrame; exports.useCoverImageFallback = useCoverImageFallback; exports.hideOnError = hideOnError; exports.EntityPortraitCard = EntityPortraitCard; exports.EntityPortraitCardSkeleton = EntityPortraitCardSkeleton; exports.PlatformBadge = PlatformBadge; exports.PlatformBadgeSkeleton = PlatformBadgeSkeleton; exports.AdminContentCard = AdminContentCard; exports.AdminContentCardSkeleton = AdminContentCardSkeleton; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.HeadingLines = HeadingLines; exports.headingAccentClass = headingAccentClass; exports.accentSentenceMarks = accentSentenceMarks; exports.SectionEyebrow = SectionEyebrow; exports.SectionHeading = SectionHeading; exports.SectionHeadingSkeleton = SectionHeadingSkeleton; exports.DEFAULT_VIDEO_BITES_TITLE = DEFAULT_VIDEO_BITES_TITLE; exports.toStripProfile = toStripProfile; exports.sortBitesByCreatedAtDesc = sortBitesByCreatedAtDesc; exports.sortBitesByFeaturedAtDesc = sortBitesByFeaturedAtDesc; exports.programItemToStripProfile = programItemToStripProfile; exports.VideoHoverPreviewSurface = VideoHoverPreviewSurface; exports.RELEASE_CARD_LG_FRAME_CLASS = RELEASE_CARD_LG_FRAME_CLASS; exports.RELEASE_CARD_HERO_CLASS = RELEASE_CARD_HERO_CLASS; exports.RELEASE_CARD_COVER_COLUMN_CLASS = RELEASE_CARD_COVER_COLUMN_CLASS; exports.RELEASE_CARD_COVER_BOX_CLASS = RELEASE_CARD_COVER_BOX_CLASS; exports.RELEASE_CARD_TEXT_COLUMN_CLASS = RELEASE_CARD_TEXT_COLUMN_CLASS; exports.RELEASE_CARD_VERSION_ROW_CLASS = RELEASE_CARD_VERSION_ROW_CLASS; exports.RELEASE_CARD_VERSION_CLASS = RELEASE_CARD_VERSION_CLASS; exports.RELEASE_CARD_TITLE_BOX_CLASS = RELEASE_CARD_TITLE_BOX_CLASS; exports.RELEASE_CARD_TITLE_CLASS = RELEASE_CARD_TITLE_CLASS; exports.RELEASE_CARD_SUMMARY_BOX_CLASS = RELEASE_CARD_SUMMARY_BOX_CLASS; exports.RELEASE_CARD_SUMMARY_CLASS = RELEASE_CARD_SUMMARY_CLASS; exports.RELEASE_CARD_CHANGELOG_CLASS = RELEASE_CARD_CHANGELOG_CLASS; exports.RELEASE_CARD_GRID_CLASS = RELEASE_CARD_GRID_CLASS; exports.RELEASE_CARD_CELL_DIVIDER_CLASS = RELEASE_CARD_CELL_DIVIDER_CLASS; exports.RELEASE_CARD_CELL_CLASS = RELEASE_CARD_CELL_CLASS; exports.RELEASE_CARD_CELL_STACK_CLASS = RELEASE_CARD_CELL_STACK_CLASS; exports.RELEASE_CARD_CELL_LABEL_CLASS = RELEASE_CARD_CELL_LABEL_CLASS; exports.RELEASE_CARD_CELL_LABELS = RELEASE_CARD_CELL_LABELS; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.UNSAFE_URL_CHARS = UNSAFE_URL_CHARS; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.CompactCardSkeleton = CompactCardSkeleton; exports.ActivityRowSkeleton = ActivityRowSkeleton; exports.useEntityCardLink = useEntityCardLink; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard;
|
|
3549
|
+
exports.InteractiveCard = InteractiveCard; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.ImageGalleryModal = ImageGalleryModal; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.skipsImageOptimizer = skipsImageOptimizer; exports.useProxiedImageUrl = useProxiedImageUrl; exports.escapeRegExp = escapeRegExp; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.resolveReleaseCover = resolveReleaseCover; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.getStatusColorScheme = getStatusColorScheme; exports.TRUST_FRAMEWORK_MONITORING = TRUST_FRAMEWORK_MONITORING; exports.trustFrameworkMonitoringEntry = trustFrameworkMonitoringEntry; exports.trustFrameworkBadge = trustFrameworkBadge; exports.TRUST_CENTER_SECTIONS = TRUST_CENTER_SECTIONS; exports.TRUST_CENTER_TITLE = TRUST_CENTER_TITLE; exports.TRUST_CENTER_TAGLINE = TRUST_CENTER_TAGLINE; exports.TRUST_CENTER_API_PATH = TRUST_CENTER_API_PATH; exports.TRUST_CENTER_CACHE_SECONDS = TRUST_CENTER_CACHE_SECONDS; exports.TRUST_CENTER_DOCUMENT_CACHE_SECONDS = TRUST_CENTER_DOCUMENT_CACHE_SECONDS; exports.TRUST_CENTER_CARD_ID = TRUST_CENTER_CARD_ID; exports.TRUST_CENTER_DOCUMENT_TYPE = TRUST_CENTER_DOCUMENT_TYPE; exports.TRUST_CENTER_PAGE_PATH = TRUST_CENTER_PAGE_PATH; exports.isTrustCenterMonitored = isTrustCenterMonitored; exports.trustCenterMonitoringStatus = trustCenterMonitoringStatus; exports.trustFrameworksSummary = trustFrameworksSummary; exports.trustCenterDocumentUrl = trustCenterDocumentUrl; exports.trustCenterPdfUrl = trustCenterPdfUrl; exports.visibleTrustCenterSections = visibleTrustCenterSections; exports.TRUST_CENTER_SEARCH_PARAM = TRUST_CENTER_SEARCH_PARAM; exports.TRUST_CENTER_SEARCH_MAX_CHARS = TRUST_CENTER_SEARCH_MAX_CHARS; exports.TRUST_CENTER_SEARCH_DEBOUNCE_MS = TRUST_CENTER_SEARCH_DEBOUNCE_MS; exports.TRUST_CENTER_DOMAIN_PARAM = TRUST_CENTER_DOMAIN_PARAM; exports.normalizeTrustControlQuery = normalizeTrustControlQuery; exports.trustControlQueryMatcher = trustControlQueryMatcher; exports.filterTrustControlDomains = filterTrustControlDomains; exports.trustCenterControlsUrl = trustCenterControlsUrl; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.extractCardItems = extractCardItems; exports.MEDIA_TYPE = MEDIA_TYPE; exports.isVideoMedia = isVideoMedia; exports.isImageMedia = isImageMedia; exports.isPublishableMediaType = isPublishableMediaType; exports.partitionMediaByType = partitionMediaByType; exports.IMAGE_FILE_ACCEPT = IMAGE_FILE_ACCEPT; exports.MEDIA_FILE_ACCEPT = MEDIA_FILE_ACCEPT; exports.fileMediaType = fileMediaType; exports.mediaNameKey = mediaNameKey; exports.fileContentKey = fileContentKey; exports.programStr = programStr; exports.programDateInstant = programDateInstant; exports.webinarTiming = webinarTiming; exports.programMetaLine = programMetaLine; exports.eventAudience = eventAudience; exports.programMetaFormatters = programMetaFormatters; exports.PROGRAM_META_RENDERERS = PROGRAM_META_RENDERERS; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveHrefForRuntime = resolveHrefForRuntime; exports.resolveExternalNavigation = resolveExternalNavigation; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.HeadingLines = HeadingLines; exports.headingAccentClass = headingAccentClass; exports.accentSentenceMarks = accentSentenceMarks; exports.SectionEyebrow = SectionEyebrow; exports.SectionHeading = SectionHeading; exports.ProductReleaseCard = ProductReleaseCard; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.BlogCard = BlogCard; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCard = RoadmapCard; exports.PROGRAM_CARD_SKELETON_HOSTS = PROGRAM_CARD_SKELETON_HOSTS; exports.PROGRAM_CARD_SKELETON_MEDIA = PROGRAM_CARD_SKELETON_MEDIA; exports.ProgramCard = ProgramCard;
|