@flamingo-stack/openframe-frontend-core 0.0.764 → 0.0.766
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/chat-protocol/decode.d.ts +0 -1
- package/dist/chat-protocol/decode.d.ts.map +1 -1
- package/dist/chat-protocol/decode.js +1 -3
- package/dist/chat-protocol/index.d.ts +1 -0
- package/dist/chat-protocol/index.d.ts.map +1 -1
- package/dist/chat-protocol/index.js +2 -0
- package/dist/{chunk-FQSXZC2K.cjs → chunk-2JRSYWFP.cjs} +3 -3
- package/dist/{chunk-I5MSCD57.cjs → chunk-3LW5TD54.cjs} +7 -3
- package/dist/{chunk-7AM3AFM4.cjs → chunk-4YIDZCTL.cjs} +1 -3
- package/dist/{chunk-SVP6DJFL.cjs → chunk-57B5RUYD.cjs} +2 -2
- package/dist/{chunk-R3TWQ3ZJ.cjs → chunk-5P4TDV7V.cjs} +16 -7
- package/dist/chunk-65VVJSQZ.cjs +109 -0
- package/dist/{chunk-LNGR4DXA.cjs → chunk-7U3ELNGC.cjs} +103 -61
- package/dist/{chunk-T5FRANE6.cjs → chunk-7VI7TOGI.cjs} +509 -353
- package/dist/{chunk-5AV5R5RC.cjs → chunk-7XFVUUVZ.cjs} +14 -14
- package/dist/{chunk-M7YZGRAV.cjs → chunk-AAECWUNV.cjs} +35 -8
- package/dist/{chunk-YUMFVQIN.cjs → chunk-C42WIUH6.cjs} +11 -5
- package/dist/{chunk-22XAPV6N.cjs → chunk-DGNBXZXT.cjs} +1069 -1020
- package/dist/{chunk-HOTM4UM6.cjs → chunk-E76ONBKF.cjs} +28 -0
- package/dist/{chunk-PERN37KO.cjs → chunk-F7R3U5EN.cjs} +5 -25
- package/dist/{chunk-K6VWTUCH.cjs → chunk-FL2RMEDX.cjs} +2 -2
- package/dist/chunk-FZB4RMRK.cjs +695 -0
- package/dist/{chunk-BIA77I6B.cjs → chunk-GTONIRJU.cjs} +56 -54
- package/dist/{chunk-3FC6AKEJ.cjs → chunk-HNQRY6RU.cjs} +200 -87
- package/dist/chunk-INI4ADPT.cjs +495 -0
- package/dist/{chunk-JD7CL2I6.cjs → chunk-JGWN6GH5.cjs} +11 -7
- package/dist/{chunk-RYSNH2VY.cjs → chunk-JKQVKWLB.cjs} +258 -179
- package/dist/{chunk-EQZXJUYV.cjs → chunk-JTSUAHDL.cjs} +73 -51
- package/dist/chunk-K3IHNXR4.cjs +40 -0
- package/dist/{chunk-EFTUFJS2.cjs → chunk-LELS4XMX.cjs} +20 -22
- package/dist/{chunk-ZCU2PYCW.cjs → chunk-MPTMT773.cjs} +62 -62
- package/dist/{chunk-LVKUMVUJ.cjs → chunk-NBVZIHGS.cjs} +12 -8
- package/dist/{chunk-IDGOMHTC.cjs → chunk-NF3PBWDJ.cjs} +521 -413
- package/dist/{chunk-7GUWPGB4.cjs → chunk-NJMZ3N7Q.cjs} +44 -44
- package/dist/{chunk-OJJ4RL2T.cjs → chunk-R3JX4MXD.cjs} +4 -4
- package/dist/{chunk-GY2JESOC.cjs → chunk-RB7VLVMD.cjs} +15 -15
- package/dist/{chunk-47GZ33ND.cjs → chunk-REJMFXGD.cjs} +198 -73
- package/dist/chunk-RMUSPTJN.cjs +102 -0
- package/dist/{chunk-3RFQPQ7Z.cjs → chunk-RNLRS4ID.cjs} +3 -3
- package/dist/{chunk-ZG6F5A3A.cjs → chunk-RTBYQWAV.cjs} +286 -201
- package/dist/{chunk-63N4FN5V.cjs → chunk-SETFUCZA.cjs} +7 -7
- package/dist/{chunk-2QMBXGMQ.cjs → chunk-TF5D5MNO.cjs} +222 -120
- package/dist/{chunk-NET74KSQ.cjs → chunk-TZ4GKUO2.cjs} +5 -5
- package/dist/{chunk-JJ2S6C5U.cjs → chunk-UW7UWUZU.cjs} +105 -117
- package/dist/{chunk-MWLD6NXV.cjs → chunk-VFZFCRAL.cjs} +4 -6
- package/dist/{chunk-VL6IXTAI.cjs → chunk-VRDHAR3X.cjs} +4229 -3918
- package/dist/{chunk-NJS7FQRW.cjs → chunk-VYYLYZUC.cjs} +207 -74
- package/dist/{chunk-NO5UJLLQ.cjs → chunk-WEANWBJH.cjs} +6 -1
- package/dist/{chunk-XFNWHCRM.cjs → chunk-WO3XO27C.cjs} +13 -13
- package/dist/{chunk-L2V7K7RR.cjs → chunk-X7ECVSVN.cjs} +43 -41
- package/dist/chunk-XFRBEXQN.cjs +304 -0
- package/dist/{chunk-AKK3EO37.cjs → chunk-XIFEZ2JT.cjs} +35 -23
- package/dist/{chunk-XCH7SPGI.cjs → chunk-XVFM6SJA.cjs} +61 -52
- package/dist/{chunk-3RYIF4OW.cjs → chunk-XXJL5GY3.cjs} +3 -3
- package/dist/{chunk-GZKWF6NH.cjs → chunk-XZ6DKGT4.cjs} +34 -34
- package/dist/{chunk-74ALTXXC.cjs → chunk-YL6ZB2SR.cjs} +1624 -1440
- package/dist/{chunk-TSJUL6IH.cjs → chunk-YRFWOJF4.cjs} +16 -8
- package/dist/{chunk-HTRILBJD.cjs → chunk-YXDHVHB2.cjs} +30 -13
- package/dist/{chunk-RO72PRQI.cjs → chunk-ZRDMGMY7.cjs} +75 -50
- package/dist/{chunk-2IFCRPNP.cjs → chunk-ZV45VS6K.cjs} +369 -433
- package/dist/{cloud-tenants-N5CLYDPU.cjs → cloud-tenants-U2KMEIO7.cjs} +35 -39
- package/dist/components/agent-identity.d.ts +1 -2
- package/dist/components/agent-identity.d.ts.map +1 -1
- package/dist/components/agent-identity.js +0 -1
- 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 +7 -8
- package/dist/components/authors/author-detail-view.d.ts.map +1 -1
- package/dist/components/authors/author-detail-view.js +51 -18
- package/dist/components/calendar.cjs +10 -10
- package/dist/components/case-studies/entity-quotes-panel.d.ts +6 -4
- package/dist/components/case-studies/entity-quotes-panel.d.ts.map +1 -1
- package/dist/components/case-studies/entity-quotes-panel.js +44 -11
- package/dist/components/case-studies/index.cjs +140 -70
- 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 +5 -2
- package/dist/components/case-studies/quote-cards-strip.d.ts +23 -2
- package/dist/components/case-studies/quote-cards-strip.d.ts.map +1 -1
- package/dist/components/case-studies/quote-cards-strip.js +48 -10
- package/dist/components/categories-cart.d.ts +7 -0
- package/dist/components/categories-cart.d.ts.map +1 -1
- package/dist/components/categories-cart.js +58 -36
- package/dist/components/category-card.js +1 -1
- package/dist/components/chat/chat-attachment-bar.js +1 -1
- package/dist/components/chat/chat-container.d.ts.map +1 -1
- package/dist/components/chat/chat-container.js +2 -1
- package/dist/components/chat/chat-ticket-list.d.ts +0 -1
- package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
- package/dist/components/chat/chat-turn.d.ts +31 -1
- package/dist/components/chat/chat-turn.d.ts.map +1 -1
- package/dist/components/chat/chat-turn.js +85 -19
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
- package/dist/components/chat/embeddable-chat.js +1 -1
- package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts +0 -15
- 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 +2 -38
- package/dist/components/chat/entity-cards/admin-content-card.d.ts +15 -0
- package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/admin-content-card.js +52 -10
- package/dist/components/chat/entity-cards/blog-card.d.ts +9 -2
- package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/blog-card.js +49 -33
- package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/campaign-card-admin.js +4 -11
- package/dist/components/chat/entity-cards/case-study-card.d.ts +27 -9
- package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/case-study-card.js +80 -54
- package/dist/components/chat/entity-cards/chat-ticket-item.d.ts +7 -0
- package/dist/components/chat/entity-cards/chat-ticket-item.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/chat-ticket-item.js +24 -28
- package/dist/components/chat/entity-cards/customer-interview-card.d.ts +9 -2
- package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/customer-interview-card.js +39 -36
- 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 +14 -16
- package/dist/components/chat/entity-cards/design-doc-card.d.ts +8 -2
- package/dist/components/chat/entity-cards/design-doc-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/design-doc-card.js +37 -43
- package/dist/components/chat/entity-cards/dispatch.d.ts +2 -5
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/dispatch.js +6 -6
- package/dist/components/chat/entity-cards/employee-entry-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/employee-entry-card.js +5 -5
- package/dist/components/chat/entity-cards/entity-author-card.d.ts +33 -6
- package/dist/components/chat/entity-cards/entity-author-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/entity-author-card.js +98 -32
- package/dist/components/chat/entity-cards/entity-portrait-card.d.ts +9 -0
- package/dist/components/chat/entity-cards/entity-portrait-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/entity-portrait-card.js +46 -18
- package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/generic-entity-card.js +14 -17
- package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/github-activity-card.js +15 -20
- package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/hubspot-ticket-card.js +14 -19
- package/dist/components/chat/entity-cards/index.d.ts +8 -7
- package/dist/components/chat/entity-cards/index.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/index.js +21 -8
- package/dist/components/chat/entity-cards/investor-update-card.d.ts +9 -3
- package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/investor-update-card.js +28 -28
- package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +11 -2
- package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/onboarding-guide-card.js +66 -63
- package/dist/components/chat/entity-cards/program-card.d.ts +9 -2
- package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/program-card.js +69 -58
- package/dist/components/chat/entity-cards/roadmap-card.d.ts +10 -1
- package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/roadmap-card.js +148 -156
- package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/roadmap-vote-button.js +5 -1
- package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/slack-message-card.js +23 -18
- package/dist/components/chat/hooks/index.d.ts +7 -1
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/index.js +8 -1
- package/dist/components/chat/hooks/use-ask-prompts.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-ask-prompts.js +3 -1
- package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts +1 -1
- package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat-history-hydration.d.ts +1 -1
- package/dist/components/chat/hooks/use-chat-history-hydration.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat.d.ts +1 -2
- package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +0 -2
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.js +0 -8
- package/dist/components/chat/hooks/use-proxied-image-url.d.ts +17 -13
- package/dist/components/chat/hooks/use-proxied-image-url.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-proxied-image-url.js +10 -8
- package/dist/components/chat/hooks/use-slash-commands.d.ts +1 -2
- package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +1 -8
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-sse-chat-adapter.js +1 -1
- package/dist/components/chat/index.cjs +44 -29
- package/dist/components/chat/stream/chat-stream-reducer.d.ts +1 -1
- package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -1
- package/dist/components/chat/stream/chat-stream-reducer.js +1 -1
- package/dist/components/chat/types/entities/index.d.ts +6 -4
- package/dist/components/chat/types/entities/index.d.ts.map +1 -1
- package/dist/components/chat/types/entities/index.js +4 -4
- package/dist/components/chat/types/entities/investor-update.d.ts +1 -1
- package/dist/components/chat/types/entities/investor-update.d.ts.map +1 -1
- package/dist/components/chat/types/entities/program-types.d.ts +2 -1
- package/dist/components/chat/types/entities/program-types.d.ts.map +1 -1
- package/dist/components/chat/types/entities/program-types.js +1 -4
- package/dist/components/chat/utils/compact-card-classes.d.ts +9 -1
- package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
- package/dist/components/chat/utils/compact-card-classes.js +11 -2
- package/dist/components/chat/utils/compact-card-skeleton.d.ts +40 -0
- package/dist/components/chat/utils/compact-card-skeleton.d.ts.map +1 -0
- package/dist/components/chat/utils/compact-card-skeleton.js +61 -0
- package/dist/components/chat/utils/icon-library.d.ts +0 -1
- package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
- package/dist/components/chat/utils/index.d.ts +5 -3
- package/dist/components/chat/utils/index.d.ts.map +1 -1
- package/dist/components/chat/utils/index.js +3 -2
- package/dist/components/chat/utils/scroll-anchor.d.ts +1 -2
- package/dist/components/chat/utils/scroll-anchor.d.ts.map +1 -1
- package/dist/components/chat/utils/scroll-anchor.js +0 -1
- package/dist/components/chat/utils/source-row-cta.d.ts +0 -2
- package/dist/components/chat/utils/source-row-cta.d.ts.map +1 -1
- package/dist/components/chat/utils/source-row-cta.js +1 -2
- package/dist/components/comment-card.d.ts +15 -0
- package/dist/components/comment-card.d.ts.map +1 -1
- package/dist/components/comment-card.js +178 -119
- package/dist/components/comment-thread.d.ts +29 -0
- package/dist/components/comment-thread.d.ts.map +1 -1
- package/dist/components/comment-thread.js +76 -18
- package/dist/components/contact/index.cjs +36 -40
- package/dist/components/content-loading-container.d.ts +1 -1
- package/dist/components/docs/doc-viewer.d.ts.map +1 -1
- package/dist/components/docs/doc-viewer.js +10 -9
- package/dist/components/docs/index.cjs +39 -43
- package/dist/components/docs/skeletons.d.ts +0 -5
- package/dist/components/docs/skeletons.d.ts.map +1 -1
- package/dist/components/docs/skeletons.js +30 -50
- package/dist/components/docs/use-document-tree.d.ts +0 -1
- package/dist/components/docs/use-document-tree.d.ts.map +1 -1
- package/dist/components/docs/use-document-tree.js +6 -1
- package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
- package/dist/components/embeds/embed-iframe.js +3 -0
- package/dist/components/embeds/index.cjs +38 -40
- 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 +2 -1
- package/dist/components/embeds/markdown-image.d.ts.map +1 -1
- package/dist/components/embeds/markdown-image.js +5 -2
- package/dist/components/embeds/og-link-preview.d.ts +7 -3
- package/dist/components/embeds/og-link-preview.d.ts.map +1 -1
- package/dist/components/embeds/og-link-preview.js +106 -62
- package/dist/components/faq/faq-document-page.d.ts +5 -1
- package/dist/components/faq/faq-document-page.d.ts.map +1 -1
- package/dist/components/faq/faq-document-page.js +5 -1
- package/dist/components/faq/faq-section.d.ts +34 -1
- package/dist/components/faq/faq-section.d.ts.map +1 -1
- package/dist/components/faq/faq-section.js +146 -59
- 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 +9 -1
- package/dist/components/faq-accordion.d.ts +15 -0
- package/dist/components/faq-accordion.d.ts.map +1 -1
- package/dist/components/faq-accordion.js +37 -9
- package/dist/components/features/ai-enrich/AIStatusIndicator.d.ts.map +1 -1
- package/dist/components/features/ai-enrich/AIStatusIndicator.js +2 -1
- package/dist/components/features/approval-level.d.ts +15 -1
- package/dist/components/features/approval-level.d.ts.map +1 -1
- package/dist/components/features/approval-level.js +42 -6
- package/dist/components/features/capability-explorer.d.ts +5 -1
- package/dist/components/features/capability-explorer.d.ts.map +1 -1
- package/dist/components/features/capability-explorer.js +42 -37
- package/dist/components/features/cards-strip.d.ts +9 -0
- package/dist/components/features/cards-strip.d.ts.map +1 -1
- package/dist/components/features/cards-strip.js +35 -11
- package/dist/components/features/command-box.d.ts +19 -0
- package/dist/components/features/command-box.d.ts.map +1 -1
- package/dist/components/features/command-box.js +103 -11
- package/dist/components/features/conversation-card.d.ts +70 -5
- package/dist/components/features/conversation-card.d.ts.map +1 -1
- package/dist/components/features/conversation-card.js +146 -13
- package/dist/components/features/devices/device-selector/device-selector.d.ts.map +1 -1
- package/dist/components/features/devices/device-selector/device-selector.js +1 -0
- package/dist/components/features/devices/devices-panel-view.d.ts +1 -1
- package/dist/components/features/devices/devices-panel-view.js +1 -1
- package/dist/components/features/entity-tag-badges.d.ts +32 -7
- package/dist/components/features/entity-tag-badges.d.ts.map +1 -1
- package/dist/components/features/entity-tag-badges.js +73 -9
- package/dist/components/features/entity-video-section.d.ts +14 -14
- package/dist/components/features/entity-video-section.d.ts.map +1 -1
- package/dist/components/features/entity-video-section.js +29 -22
- package/dist/components/features/figma-prototype-viewer.d.ts.map +1 -1
- package/dist/components/features/figma-prototype-viewer.js +3 -10
- package/dist/components/features/index.cjs +77 -39
- package/dist/components/features/index.d.ts +3 -0
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/features/index.js +5 -0
- package/dist/components/features/knowledge-base/index.d.ts +2 -1
- package/dist/components/features/knowledge-base/index.d.ts.map +1 -1
- package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts +0 -1
- package/dist/components/features/knowledge-base/knowledge-base-article-view.d.ts.map +1 -1
- package/dist/components/features/model-token-rates.d.ts.map +1 -1
- package/dist/components/features/model-token-rates.js +50 -78
- package/dist/components/features/notifications/approval-request-notification-tile.d.ts.map +1 -1
- package/dist/components/features/notifications/approval-request-notification-tile.js +9 -5
- package/dist/components/features/notifications/notification-tile.d.ts +22 -7
- package/dist/components/features/notifications/notification-tile.d.ts.map +1 -1
- package/dist/components/features/notifications/notification-tile.js +42 -15
- package/dist/components/features/paths-display.d.ts +9 -0
- package/dist/components/features/paths-display.d.ts.map +1 -1
- package/dist/components/features/paths-display.js +50 -5
- package/dist/components/features/platform-badge.d.ts +2 -0
- package/dist/components/features/platform-badge.d.ts.map +1 -1
- package/dist/components/features/platform-badge.js +33 -2
- package/dist/components/features/push-button-selector.d.ts +23 -1
- package/dist/components/features/push-button-selector.d.ts.map +1 -1
- package/dist/components/features/push-button-selector.js +114 -41
- package/dist/components/features/remote-session/index.d.ts +2 -2
- package/dist/components/features/remote-session/index.d.ts.map +1 -1
- package/dist/components/features/remote-session/index.js +3 -3
- package/dist/components/features/remote-session/remote-desktop-chat-message-row.d.ts +2 -0
- 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 +18 -4
- 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 +11 -2
- package/dist/components/features/remote-session/remote-desktop-view.d.ts +6 -6
- package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-desktop-view.js +27 -27
- package/dist/components/features/remote-session/remote-session-chat-panel.js +1 -1
- package/dist/components/features/status-filter-component.d.ts +19 -1
- package/dist/components/features/status-filter-component.d.ts.map +1 -1
- package/dist/components/features/status-filter-component.js +106 -43
- package/dist/components/features/use-video-warmup.d.ts +1 -1
- package/dist/components/features/use-video-warmup.d.ts.map +1 -1
- package/dist/components/features/use-video-warmup.js +2 -5
- package/dist/components/features/use-walkthrough-video.d.ts.map +1 -1
- package/dist/components/features/use-walkthrough-video.js +4 -1
- package/dist/components/features/video-bites-strip.d.ts +42 -1
- package/dist/components/features/video-bites-strip.d.ts.map +1 -1
- package/dist/components/features/video-bites-strip.js +100 -21
- package/dist/components/features/video-hover-preview.d.ts +1 -1
- package/dist/components/features/video-hover-preview.d.ts.map +1 -1
- package/dist/components/features/video.d.ts +9 -2
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/features/video.js +10 -5
- package/dist/components/features/walkthrough-video.d.ts.map +1 -1
- package/dist/components/features/walkthrough-video.js +5 -1
- package/dist/components/help-center-pages/download-apps-page.d.ts.map +1 -1
- package/dist/components/help-center-pages/download-apps-page.js +65 -33
- package/dist/components/help-center-pages/index.cjs +410 -316
- package/dist/components/help-center-pages/trust-center-page.d.ts +21 -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 +100 -67
- package/dist/components/help-center-pages/trust-center-sections.d.ts +19 -14
- package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
- package/dist/components/help-center-pages/trust-center-sections.js +124 -97
- package/dist/components/icon-display.d.ts.map +1 -1
- package/dist/components/icon-display.js +6 -0
- package/dist/components/index.cjs +1505 -380
- package/dist/components/index.d.ts +5 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +12 -2
- package/dist/components/interactive-wrapper.d.ts.map +1 -1
- package/dist/components/interactive-wrapper.js +2 -1
- 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/page-container.d.ts +8 -1
- package/dist/components/layout/page-container.d.ts.map +1 -1
- package/dist/components/layout/page-container.js +25 -10
- package/dist/components/layout/page-data-sync.d.ts +7 -1
- package/dist/components/layout/page-data-sync.d.ts.map +1 -1
- package/dist/components/layout/page-data-sync.js +13 -4
- package/dist/components/layout/page-heading.d.ts +31 -0
- package/dist/components/layout/page-heading.d.ts.map +1 -1
- package/dist/components/layout/page-heading.js +44 -1
- package/dist/components/layout/page-layout.d.ts +4 -4
- package/dist/components/layout/page-layout.d.ts.map +1 -1
- package/dist/components/layout/page-layout.js +4 -5
- package/dist/components/layout/title-block.d.ts +12 -1
- package/dist/components/layout/title-block.d.ts.map +1 -1
- package/dist/components/layout/title-block.js +50 -12
- package/dist/components/loading/category-vendor-selector-skeleton.d.ts +3 -0
- package/dist/components/loading/category-vendor-selector-skeleton.d.ts.map +1 -1
- package/dist/components/loading/deprecated-layout-skeletons.d.ts +25 -0
- package/dist/components/loading/deprecated-layout-skeletons.d.ts.map +1 -0
- package/dist/components/loading/deprecated-layout-skeletons.js +78 -0
- package/dist/components/loading/device-card-skeleton.js +4 -4
- package/dist/components/loading/index.d.ts +4 -3
- package/dist/components/loading/index.d.ts.map +1 -1
- package/dist/components/loading/index.js +10 -16
- package/dist/components/loading/loading-region.d.ts +10 -9
- package/dist/components/loading/loading-region.d.ts.map +1 -1
- package/dist/components/loading/loading-region.js +4 -1
- package/dist/components/loading/msp-profile-form-skeleton.d.ts +2 -0
- package/dist/components/loading/msp-profile-form-skeleton.d.ts.map +1 -1
- package/dist/components/loading/organization-card-skeleton.d.ts +14 -10
- package/dist/components/loading/organization-card-skeleton.d.ts.map +1 -1
- package/dist/components/loading/organization-card-skeleton.js +38 -40
- package/dist/components/loading/page-layout-skeleton.d.ts +7 -51
- package/dist/components/loading/page-layout-skeleton.d.ts.map +1 -1
- package/dist/components/loading/page-layout-skeleton.js +2 -411
- package/dist/components/loading/settings-form-skeleton.d.ts +2 -0
- package/dist/components/loading/settings-form-skeleton.d.ts.map +1 -1
- package/dist/components/loading/unified-skeleton.d.ts +57 -9
- package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
- package/dist/components/loading/unified-skeleton.js +57 -8
- package/dist/components/log-severity-dot.d.ts +2 -0
- package/dist/components/log-severity-dot.d.ts.map +1 -1
- package/dist/components/log-severity-dot.js +11 -13
- package/dist/components/logs-list.d.ts.map +1 -1
- package/dist/components/logs-list.js +34 -43
- package/dist/components/media-carousel.d.ts +0 -1
- package/dist/components/media-carousel.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/booking-form.d.ts +52 -8
- package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/booking-form.js +150 -30
- package/dist/components/meeting-scheduler/context-panel.d.ts +18 -2
- package/dist/components/meeting-scheduler/context-panel.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/context-panel.js +61 -23
- package/dist/components/meeting-scheduler/directory.d.ts +11 -1
- package/dist/components/meeting-scheduler/directory.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/directory.js +47 -27
- package/dist/components/meeting-scheduler/index.cjs +556 -344
- package/dist/components/meeting-scheduler/index.d.ts +5 -4
- package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/index.js +127 -102
- package/dist/components/meeting-scheduler/modal-header.d.ts +7 -3
- package/dist/components/meeting-scheduler/modal-header.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/modal-header.js +29 -18
- package/dist/components/meeting-scheduler/slot-picker.d.ts +11 -4
- package/dist/components/meeting-scheduler/slot-picker.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/slot-picker.js +12 -7
- package/dist/components/metric-value.d.ts +5 -0
- package/dist/components/metric-value.d.ts.map +1 -1
- package/dist/components/metric-value.js +15 -3
- package/dist/components/msp-display.d.ts +5 -0
- package/dist/components/msp-display.d.ts.map +1 -1
- package/dist/components/msp-display.js +19 -14
- package/dist/components/navigation/app-layout.d.ts +0 -2
- package/dist/components/navigation/app-layout.d.ts.map +1 -1
- package/dist/components/navigation/app-layout.js +1 -4
- package/dist/components/navigation/index.cjs +48 -42
- package/dist/components/navigation/index.d.ts +8 -3
- package/dist/components/navigation/index.d.ts.map +1 -1
- package/dist/components/navigation/index.js +18 -3
- package/dist/components/navigation/mingo-ai-button.d.ts +0 -2
- package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
- package/dist/components/navigation/mingo-ai-button.js +2 -4
- package/dist/components/navigation/mobile-nav-sheet.d.ts +0 -1
- package/dist/components/navigation/mobile-nav-sheet.d.ts.map +1 -1
- package/dist/components/navigation/mobile-nav-sheet.js +0 -2
- package/dist/components/navigation/multi-level-navigation.d.ts +21 -0
- package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -1
- package/dist/components/navigation/multi-level-navigation.js +98 -24
- package/dist/components/navigation/page-section-bar.d.ts +50 -0
- package/dist/components/navigation/page-section-bar.d.ts.map +1 -0
- package/dist/components/navigation/page-section-bar.js +85 -0
- package/dist/components/navigation/sticky-section-nav.d.ts +12 -0
- package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
- package/dist/components/navigation/sticky-section-nav.js +87 -20
- package/dist/components/navigation/ticket-alerts-button.js +1 -1
- package/dist/components/onboarding-guides/hooks/use-onboarding-guides.d.ts.map +1 -1
- package/dist/components/onboarding-guides/hooks/use-onboarding-guides.js +7 -1
- package/dist/components/onboarding-guides/index.cjs +38 -42
- package/dist/components/onboarding-guides/index.d.ts +1 -2
- package/dist/components/onboarding-guides/index.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.js +5 -3
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +8 -0
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.js +142 -84
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +18 -17
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.js +28 -21
- package/dist/components/onboarding-guides/onboarding-guides-catalog-view.d.ts.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guides-catalog-view.js +57 -18
- package/dist/components/pagination.d.ts +26 -2
- package/dist/components/pagination.d.ts.map +1 -1
- package/dist/components/pagination.js +61 -38
- package/dist/components/persistent-filter-controls.d.ts.map +1 -1
- package/dist/components/persistent-filter-controls.js +1 -2
- package/dist/components/persistent-pagination.d.ts.map +1 -1
- package/dist/components/persistent-pagination.js +3 -1
- package/dist/components/platform/ToolBadge.d.ts +13 -1
- package/dist/components/platform/ToolBadge.d.ts.map +1 -1
- package/dist/components/platform/ToolBadge.js +38 -9
- 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 +4 -2
- package/dist/components/platform/tool-badge-mark.d.ts +6 -0
- package/dist/components/platform/tool-badge-mark.d.ts.map +1 -0
- package/dist/components/platform/tool-badge-mark.js +6 -0
- package/dist/components/product-demo/fixtures/devices.d.ts +0 -2
- package/dist/components/product-demo/fixtures/devices.d.ts.map +1 -1
- package/dist/components/product-demo/fixtures/devices.js +0 -2
- package/dist/components/product-demo/index.cjs +1889 -32
- package/dist/components/product-demo/product-screen.d.ts +5 -5
- package/dist/components/product-demo/product-screen.d.ts.map +1 -1
- package/dist/components/product-demo/product-screen.js +19 -15
- package/dist/components/product-demo/screen-loading.d.ts +10 -0
- package/dist/components/product-demo/screen-loading.d.ts.map +1 -0
- package/dist/components/product-demo/screen-loading.js +12 -0
- package/dist/components/product-demo/screens/devices-view.d.ts +22 -0
- package/dist/components/product-demo/screens/devices-view.d.ts.map +1 -0
- package/dist/components/product-demo/screens/devices-view.js +35 -0
- package/dist/components/product-demo/screens/devices.d.ts +1 -7
- package/dist/components/product-demo/screens/devices.d.ts.map +1 -1
- package/dist/components/product-demo/screens/devices.js +8 -15
- package/dist/components/related-content/card-registry.d.ts +3 -2
- package/dist/components/related-content/card-registry.d.ts.map +1 -1
- package/dist/components/related-content/card-registry.js +15 -3
- package/dist/components/related-content/index.cjs +19 -18
- package/dist/components/related-content/index.d.ts +2 -1
- package/dist/components/related-content/index.d.ts.map +1 -1
- package/dist/components/related-content/index.js +3 -1
- package/dist/components/related-content/related-content-section.d.ts +14 -1
- package/dist/components/related-content/related-content-section.d.ts.map +1 -1
- package/dist/components/related-content/related-content-section.js +144 -32
- package/dist/components/results-count.d.ts +5 -0
- package/dist/components/results-count.d.ts.map +1 -1
- package/dist/components/results-count.js +30 -6
- package/dist/components/shared/article-author-byline.d.ts +8 -0
- package/dist/components/shared/article-author-byline.d.ts.map +1 -1
- package/dist/components/shared/article-author-byline.js +54 -52
- package/dist/components/shared/delivery/delivery-lists.d.ts.map +1 -1
- package/dist/components/shared/delivery/delivery-lists.js +14 -2
- package/dist/components/shared/delivery/delivery-row.d.ts +5 -0
- package/dist/components/shared/delivery/delivery-row.d.ts.map +1 -1
- package/dist/components/shared/delivery/delivery-row.js +37 -10
- package/dist/components/shared/delivery/delivery-table.d.ts +4 -0
- package/dist/components/shared/delivery/delivery-table.d.ts.map +1 -1
- package/dist/components/shared/delivery/delivery-table.js +14 -26
- package/dist/components/shared/detail-page-skeleton.d.ts +3 -0
- package/dist/components/shared/detail-page-skeleton.d.ts.map +1 -1
- package/dist/components/shared/detail-page-skeleton.js +9 -1
- package/dist/components/shared/dev-section/dev-card-row.d.ts +2 -0
- package/dist/components/shared/dev-section/dev-card-row.d.ts.map +1 -1
- package/dist/components/shared/dev-section/dev-card-row.js +31 -21
- package/dist/components/shared/dev-section/dev-section-view.js +1 -1
- 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 +5 -1
- package/dist/components/shared/legal-document/legal-document-page.d.ts +14 -0
- package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
- package/dist/components/shared/legal-document/legal-document-page.js +47 -42
- package/dist/components/shared/legal-document/use-legal-docs.d.ts.map +1 -1
- package/dist/components/shared/legal-document/use-legal-docs.js +4 -1
- package/dist/components/shared/legal-document/use-legal-documents.d.ts.map +1 -1
- package/dist/components/shared/legal-document/use-legal-documents.js +3 -1
- package/dist/components/shared/media-gallery-strip.d.ts +7 -0
- package/dist/components/shared/media-gallery-strip.d.ts.map +1 -1
- package/dist/components/shared/media-gallery-strip.js +22 -3
- package/dist/components/shared/onboarding/index.d.ts +2 -1
- package/dist/components/shared/onboarding/index.d.ts.map +1 -1
- package/dist/components/shared/onboarding/index.js +1 -3
- package/dist/components/shared/product-release/index.d.ts +2 -1
- package/dist/components/shared/product-release/index.d.ts.map +1 -1
- package/dist/components/shared/product-release/product-release-card-classes.d.ts +26 -0
- package/dist/components/shared/product-release/product-release-card-classes.d.ts.map +1 -0
- package/dist/components/shared/product-release/product-release-card-classes.js +40 -0
- package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
- package/dist/components/shared/product-release/product-release-card-skeleton.js +37 -35
- package/dist/components/shared/product-release/product-release-card.d.ts +3 -1
- package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
- package/dist/components/shared/product-release/product-release-card.js +86 -73
- package/dist/components/shared/product-release/product-releases-view.d.ts.map +1 -1
- package/dist/components/shared/product-release/product-releases-view.js +26 -13
- package/dist/components/shared/product-release/release-detail-page.d.ts +0 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.js +281 -215
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +9 -1
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -1
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.js +12 -11
- package/dist/components/shared/roadmap/roadmap-grid.d.ts +13 -1
- package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -1
- package/dist/components/shared/roadmap/roadmap-grid.js +45 -29
- package/dist/components/shared/roadmap/roadmap-view.d.ts.map +1 -1
- package/dist/components/shared/roadmap/roadmap-view.js +2 -3
- package/dist/components/social-icon-row.d.ts +9 -2
- package/dist/components/social-icon-row.d.ts.map +1 -1
- package/dist/components/social-icon-row.js +12 -6
- package/dist/components/tickets/help-center-list.d.ts.map +1 -1
- package/dist/components/tickets/help-center-list.js +6 -2
- package/dist/components/tickets/hooks/use-ticket-actions.d.ts +2 -2
- package/dist/components/tickets/hooks/use-ticket-actions.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +42 -46
- package/dist/components/tickets/index.d.ts +2 -1
- package/dist/components/tickets/index.d.ts.map +1 -1
- package/dist/components/tickets/index.js +2 -3
- package/dist/components/tickets/ticket-center.d.ts.map +1 -1
- package/dist/components/tickets/ticket-center.js +117 -58
- package/dist/components/tickets/types.d.ts +0 -8
- package/dist/components/tickets/types.d.ts.map +1 -1
- package/dist/components/tickets/types.js +0 -3
- package/dist/components/toggle-group.d.ts +4 -2
- package/dist/components/toggle-group.d.ts.map +1 -1
- package/dist/components/toggle-group.js +3 -1
- package/dist/components/tool-icon.d.ts.map +1 -1
- package/dist/components/ui/analyzing-state.d.ts +3 -2
- package/dist/components/ui/analyzing-state.d.ts.map +1 -1
- package/dist/components/ui/analyzing-state.js +7 -4
- package/dist/components/ui/announcement-bar-view.d.ts +5 -0
- package/dist/components/ui/announcement-bar-view.d.ts.map +1 -1
- package/dist/components/ui/announcement-bar-view.js +3 -1
- package/dist/components/ui/autocomplete.d.ts +13 -0
- package/dist/components/ui/autocomplete.d.ts.map +1 -1
- package/dist/components/ui/autocomplete.js +30 -6
- package/dist/components/ui/avatar-stack.d.ts +7 -0
- package/dist/components/ui/avatar-stack.d.ts.map +1 -1
- package/dist/components/ui/avatar-stack.js +29 -4
- package/dist/components/ui/badge.d.ts +9 -1
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/badge.js +11 -0
- package/dist/components/ui/benefit-list.d.ts +8 -0
- package/dist/components/ui/benefit-list.d.ts.map +1 -1
- package/dist/components/ui/benefit-list.js +20 -11
- package/dist/components/ui/button/button-styles.d.ts +16 -0
- package/dist/components/ui/button/button-styles.d.ts.map +1 -1
- package/dist/components/ui/button/button-styles.js +42 -0
- package/dist/components/ui/button/button.d.ts +3 -1
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/button/button.js +4 -40
- package/dist/components/ui/button/index.d.ts +1 -0
- package/dist/components/ui/button/index.d.ts.map +1 -1
- package/dist/components/ui/button/index.js +4 -0
- package/dist/components/ui/card.d.ts +13 -1
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/card.js +21 -14
- package/dist/components/ui/checkbox.d.ts +2 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +5 -1
- package/dist/components/ui/compliance-badge.d.ts +2 -0
- package/dist/components/ui/compliance-badge.d.ts.map +1 -1
- package/dist/components/ui/compliance-badge.js +5 -2
- package/dist/components/ui/cursor-pagination.d.ts +8 -1
- package/dist/components/ui/cursor-pagination.d.ts.map +1 -1
- package/dist/components/ui/cursor-pagination.js +10 -4
- package/dist/components/ui/dashboard-info-card.d.ts +6 -1
- 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 +10 -5
- package/dist/components/ui/data-attribution.d.ts.map +1 -1
- package/dist/components/ui/data-attribution.js +27 -9
- package/dist/components/ui/data-table/data-table-body.d.ts +1 -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 +18 -7
- package/dist/components/ui/data-table/data-table-row-count.d.ts +5 -0
- 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 +18 -3
- package/dist/components/ui/data-table/data-table-row.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-row.js +2 -6
- package/dist/components/ui/data-table/data-table-skeleton.js +5 -5
- package/dist/components/ui/data-table/index.d.ts +2 -2
- package/dist/components/ui/data-table/index.d.ts.map +1 -1
- package/dist/components/ui/data-table/index.js +2 -1
- package/dist/components/ui/date-picker.d.ts +0 -1
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/entity-image.d.ts +4 -0
- package/dist/components/ui/entity-image.d.ts.map +1 -1
- package/dist/components/ui/entity-image.js +27 -5
- package/dist/components/ui/error-state.d.ts.map +1 -1
- package/dist/components/ui/error-state.js +4 -1
- package/dist/components/ui/feature-card.d.ts +31 -1
- package/dist/components/ui/feature-card.d.ts.map +1 -1
- package/dist/components/ui/feature-card.js +40 -11
- package/dist/components/ui/feature-list.d.ts +15 -1
- package/dist/components/ui/feature-list.d.ts.map +1 -1
- package/dist/components/ui/feature-list.js +43 -8
- package/dist/components/ui/field-wrapper.d.ts +6 -0
- package/dist/components/ui/field-wrapper.d.ts.map +1 -1
- package/dist/components/ui/field-wrapper.js +16 -5
- package/dist/components/ui/file-manager/index.cjs +63 -64
- package/dist/components/ui/filter-checkbox-item.d.ts +9 -0
- package/dist/components/ui/filter-checkbox-item.d.ts.map +1 -1
- package/dist/components/ui/filter-checkbox-item.js +36 -6
- package/dist/components/ui/filter-modal.d.ts +2 -3
- package/dist/components/ui/filter-modal.d.ts.map +1 -1
- package/dist/components/ui/filter-pill-row.d.ts +10 -5
- package/dist/components/ui/filter-pill-row.d.ts.map +1 -1
- package/dist/components/ui/filter-pill-row.js +56 -19
- package/dist/components/ui/incident-feed.d.ts +1 -1
- package/dist/components/ui/incident-feed.d.ts.map +1 -1
- package/dist/components/ui/incident-feed.js +57 -56
- package/dist/components/ui/index.cjs +219 -39
- package/dist/components/ui/index.d.ts +10 -1
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +29 -1
- package/dist/components/ui/info-card-row.d.ts +12 -0
- package/dist/components/ui/info-card-row.d.ts.map +1 -1
- package/dist/components/ui/info-card-row.js +56 -30
- package/dist/components/ui/info-card.d.ts +24 -1
- package/dist/components/ui/info-card.d.ts.map +1 -1
- package/dist/components/ui/info-card.js +87 -52
- package/dist/components/ui/input-styles.d.ts +7 -0
- package/dist/components/ui/input-styles.d.ts.map +1 -0
- package/dist/components/ui/input-styles.js +7 -0
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/input.js +4 -1
- package/dist/components/ui/layout-hold.d.ts +9 -7
- package/dist/components/ui/layout-hold.d.ts.map +1 -1
- package/dist/components/ui/leader-row.d.ts +11 -4
- package/dist/components/ui/leader-row.d.ts.map +1 -1
- package/dist/components/ui/leader-row.js +29 -5
- package/dist/components/ui/loading-scope.d.ts +26 -0
- package/dist/components/ui/loading-scope.d.ts.map +1 -0
- package/dist/components/ui/loading-scope.js +31 -0
- package/dist/components/ui/markdown/base-components.d.ts +25 -0
- package/dist/components/ui/markdown/base-components.d.ts.map +1 -1
- package/dist/components/ui/markdown/base-components.js +13 -7
- package/dist/components/ui/markdown/engine.d.ts +26 -1
- package/dist/components/ui/markdown/engine.d.ts.map +1 -1
- package/dist/components/ui/markdown/engine.js +63 -4
- package/dist/components/ui/markdown/index.d.ts +5 -3
- package/dist/components/ui/markdown/index.d.ts.map +1 -1
- package/dist/components/ui/markdown/index.js +12 -4
- package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +1 -1
- package/dist/components/ui/markdown/mermaid-diagram.js +8 -2
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +10 -0
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +1 -1
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.js +21 -5
- package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +0 -2
- package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +1 -1
- package/dist/components/ui/markdown-editor.d.ts +10 -0
- package/dist/components/ui/markdown-editor.d.ts.map +1 -1
- package/dist/components/ui/markdown-editor.js +23 -7
- package/dist/components/ui/numbered-step.d.ts +10 -0
- package/dist/components/ui/numbered-step.d.ts.map +1 -1
- package/dist/components/ui/numbered-step.js +19 -2
- package/dist/components/ui/organization-card.d.ts.map +1 -1
- package/dist/components/ui/organization-card.js +30 -5
- package/dist/components/ui/page-actions.d.ts +2 -1
- package/dist/components/ui/page-actions.d.ts.map +1 -1
- package/dist/components/ui/page-actions.js +26 -21
- package/dist/components/ui/page-loader.d.ts.map +1 -1
- package/dist/components/ui/page-loader.js +2 -1
- package/dist/components/ui/people-cell.d.ts +4 -0
- package/dist/components/ui/people-cell.d.ts.map +1 -1
- package/dist/components/ui/people-cell.js +19 -3
- package/dist/components/ui/photo-wall.d.ts +1 -1
- package/dist/components/ui/photo-wall.d.ts.map +1 -1
- package/dist/components/ui/photo-wall.js +13 -3
- package/dist/components/ui/product-screen-frame.d.ts.map +1 -1
- package/dist/components/ui/product-screen-frame.js +3 -2
- package/dist/components/ui/progress-bar.d.ts +9 -0
- package/dist/components/ui/progress-bar.d.ts.map +1 -1
- package/dist/components/ui/progress-bar.js +34 -14
- package/dist/components/ui/progress.d.ts +15 -0
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js +8 -3
- package/dist/components/ui/release-changelog-section.d.ts +22 -1
- package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
- package/dist/components/ui/release-changelog-section.js +96 -28
- package/dist/components/ui/search-input.d.ts.map +1 -1
- package/dist/components/ui/search-input.js +11 -3
- package/dist/components/ui/searchable-select.d.ts.map +1 -1
- package/dist/components/ui/searchable-select.js +17 -4
- package/dist/components/ui/skeleton-surface.d.ts +12 -4
- package/dist/components/ui/skeleton-surface.d.ts.map +1 -1
- package/dist/components/ui/skeleton-surface.js +6 -2
- package/dist/components/ui/slack-channel-chip.d.ts +5 -1
- package/dist/components/ui/slack-channel-chip.d.ts.map +1 -1
- package/dist/components/ui/slack-channel-chip.js +16 -3
- package/dist/components/ui/snap-carousel.d.ts +4 -1
- package/dist/components/ui/snap-carousel.d.ts.map +1 -1
- package/dist/components/ui/snap-carousel.js +2 -0
- package/dist/components/ui/square-avatar.d.ts +3 -0
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.js +38 -23
- package/dist/components/ui/stacked-rows-panel.d.ts +24 -1
- package/dist/components/ui/stacked-rows-panel.d.ts.map +1 -1
- package/dist/components/ui/stacked-rows-panel.js +50 -13
- package/dist/components/ui/status-badge.d.ts +10 -2
- package/dist/components/ui/status-badge.d.ts.map +1 -1
- package/dist/components/ui/status-badge.js +14 -0
- package/dist/components/ui/status-indicator.d.ts +4 -0
- package/dist/components/ui/status-indicator.d.ts.map +1 -1
- package/dist/components/ui/status-indicator.js +16 -3
- package/dist/components/ui/status-line.d.ts.map +1 -1
- package/dist/components/ui/status-line.js +2 -1
- package/dist/components/ui/strip-card.d.ts +9 -0
- package/dist/components/ui/strip-card.d.ts.map +1 -1
- package/dist/components/ui/strip-card.js +57 -39
- package/dist/components/ui/tab-navigation.d.ts +26 -2
- package/dist/components/ui/tab-navigation.d.ts.map +1 -1
- package/dist/components/ui/tab-navigation.js +182 -115
- package/dist/components/ui/table/table-header.js +2 -2
- package/dist/components/ui/table/table-row.d.ts.map +1 -1
- package/dist/components/ui/table/table-row.js +2 -4
- package/dist/components/ui/table/table-skeleton.d.ts +6 -1
- package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
- package/dist/components/ui/table/table-skeleton.js +38 -50
- package/dist/components/ui/table/table.d.ts +1 -1
- package/dist/components/ui/table/table.d.ts.map +1 -1
- package/dist/components/ui/table/table.js +30 -25
- package/dist/components/ui/table/types.d.ts +14 -4
- package/dist/components/ui/table/types.d.ts.map +1 -1
- package/dist/components/ui/table/utils.d.ts +4 -0
- package/dist/components/ui/table/utils.d.ts.map +1 -1
- package/dist/components/ui/table/utils.js +4 -0
- package/dist/components/ui/tabs.d.ts +22 -1
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +33 -2
- package/dist/components/ui/tag.d.ts +21 -1
- package/dist/components/ui/tag.d.ts.map +1 -1
- package/dist/components/ui/tag.js +17 -12
- package/dist/components/ui/tags-input.d.ts +9 -0
- package/dist/components/ui/tags-input.d.ts.map +1 -1
- package/dist/components/ui/tags-input.js +41 -10
- package/dist/components/ui/textarea.d.ts +17 -1
- package/dist/components/ui/textarea.d.ts.map +1 -1
- package/dist/components/ui/textarea.js +22 -3
- package/dist/components/ui/ticket-info-section.d.ts +0 -1
- package/dist/components/ui/ticket-info-section.d.ts.map +1 -1
- package/dist/components/ui/timezone-select.d.ts +3 -1
- package/dist/components/ui/timezone-select.d.ts.map +1 -1
- package/dist/components/ui/timezone-select.js +3 -1
- package/dist/components/ui/toggle.d.ts +8 -2
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +10 -6
- package/dist/components/unified-pagination.d.ts +3 -1
- package/dist/components/unified-pagination.d.ts.map +1 -1
- package/dist/components/unified-pagination.js +7 -1
- package/dist/components/user-display.d.ts +11 -0
- package/dist/components/user-display.d.ts.map +1 -1
- package/dist/components/user-display.js +38 -14
- package/dist/components/user-summary-stub.d.ts.map +1 -1
- package/dist/components/user-summary-stub.js +7 -14
- package/dist/components/vendor-display-button.d.ts +4 -0
- package/dist/components/vendor-display-button.d.ts.map +1 -1
- package/dist/components/vendor-display-button.js +11 -13
- package/dist/components/vendor-icon.d.ts +5 -0
- package/dist/components/vendor-icon.d.ts.map +1 -1
- package/dist/components/vendor-icon.js +12 -3
- package/dist/components/vendor-tag.d.ts +5 -0
- package/dist/components/vendor-tag.d.ts.map +1 -1
- package/dist/components/vendor-tag.js +13 -5
- package/dist/{devices-557PMFDC.cjs → devices-2D3XSIIE.cjs} +43 -55
- package/dist/embed-shims/index.cjs +4 -2
- package/dist/embed-shims/next-image.cjs +4 -2
- package/dist/embed-shims/next-image.d.ts.map +1 -1
- package/dist/embed-shims/next-image.js +24 -0
- package/dist/{embeddable-chat-YFUCVDMV.cjs → embeddable-chat-YL6ZSTDJ.cjs} +117 -119
- package/dist/hooks/index.cjs +12 -12
- package/dist/hooks/state/flatten-schema.d.ts +0 -1
- package/dist/hooks/state/flatten-schema.d.ts.map +1 -1
- package/dist/hooks/state/flatten-schema.js +0 -2
- package/dist/hooks/state/index.d.ts +6 -3
- package/dist/hooks/state/index.d.ts.map +1 -1
- package/dist/hooks/state/index.js +4 -3
- package/dist/hooks/state/url-converter.d.ts +1 -1
- package/dist/hooks/state/url-converter.d.ts.map +1 -1
- package/dist/hooks/state/url-converter.js +1 -2
- package/dist/hooks/state/use-api-params.d.ts +1 -3
- package/dist/hooks/state/use-api-params.d.ts.map +1 -1
- package/dist/hooks/state/use-api-params.js +1 -5
- package/dist/hooks/ui/index.d.ts +1 -0
- package/dist/hooks/ui/index.d.ts.map +1 -1
- package/dist/hooks/ui/use-image-edge-color.d.ts +1 -1
- package/dist/hooks/ui/use-image-edge-color.d.ts.map +1 -1
- package/dist/hooks/ui/use-image-edge-color.js +3 -1
- package/dist/hooks/ui/use-onboarding-state.d.ts +0 -1
- package/dist/hooks/ui/use-onboarding-state.d.ts.map +1 -1
- package/dist/hooks/use-downloads.d.ts +1 -1
- package/dist/hooks/use-downloads.d.ts.map +1 -1
- package/dist/hooks/use-downloads.js +8 -1
- package/dist/hooks/use-meeting-booking.d.ts.map +1 -1
- package/dist/hooks/use-meeting-booking.js +3 -0
- package/dist/hooks/use-self-fetch.d.ts +1 -1
- package/dist/hooks/use-self-fetch.d.ts.map +1 -1
- package/dist/hooks/use-self-fetch.js +7 -4
- package/dist/hooks/use-toast.d.ts +1 -1
- package/dist/index.cjs +329 -103
- package/dist/{knowledge-4JTOUDAR.cjs → knowledge-AJ36PMK2.cjs} +36 -40
- package/dist/{logs-7YWAOPZ2.cjs → logs-DNE44ACE.cjs} +44 -48
- package/dist/nats/index.d.ts +1 -0
- package/dist/nats/index.d.ts.map +1 -1
- package/dist/nats/nats-provider.d.ts +0 -1
- package/dist/nats/nats-provider.d.ts.map +1 -1
- package/dist/nats/nats.d.ts +0 -1
- package/dist/nats/nats.d.ts.map +1 -1
- package/dist/nats/use-nats-subscription.d.ts +2 -1
- package/dist/nats/use-nats-subscription.d.ts.map +1 -1
- package/dist/{policies-W5JEPQTA.cjs → policies-AJHSP6ZY.cjs} +39 -43
- package/dist/{remote-session-F72S6I7J.cjs → remote-session-PPA5SXX7.cjs} +18 -21
- package/dist/schemas/meeting-booking-schema.cjs +4 -0
- package/dist/schemas/meeting-booking-schema.d.ts +8 -0
- package/dist/schemas/meeting-booking-schema.d.ts.map +1 -1
- package/dist/schemas/meeting-booking-schema.js +4 -0
- package/dist/{scripts-FY5IPOIM.cjs → scripts-4YO2QL36.cjs} +42 -46
- package/dist/{software-update-5BOGZOHG.cjs → software-update-KMI2EOO3.cjs} +41 -45
- package/dist/styles/component-sizes.d.ts +96 -0
- package/dist/styles/component-sizes.d.ts.map +1 -0
- package/dist/styles/component-sizes.js +77 -0
- package/dist/{tickets-board-DXMF7IKL.cjs → tickets-board-G3WBH4SV.cjs} +18 -20
- package/dist/types/announcement.d.ts +0 -1
- package/dist/types/announcement.d.ts.map +1 -1
- package/dist/types/blog.d.ts +0 -1
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/case-study.d.ts +2 -2
- package/dist/types/case-study.d.ts.map +1 -1
- package/dist/types/customer-interview-ai.types.d.ts +1 -2
- package/dist/types/customer-interview-ai.types.d.ts.map +1 -1
- package/dist/types/customer-interview.d.ts +0 -1
- package/dist/types/customer-interview.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/product-release.d.ts +3 -0
- package/dist/types/product-release.d.ts.map +1 -1
- package/dist/types/stack.d.ts +0 -2
- package/dist/types/stack.d.ts.map +1 -1
- package/dist/utils/announcement-storage.d.ts +0 -3
- package/dist/utils/announcement-storage.d.ts.map +1 -1
- package/dist/utils/announcement-storage.js +1 -3
- package/dist/utils/dev-sections/openframe-dev-sections.d.ts +11 -0
- package/dist/utils/dev-sections/openframe-dev-sections.d.ts.map +1 -1
- package/dist/utils/dev-sections/openframe-dev-sections.js +5 -0
- package/dist/utils/index.cjs +19 -0
- package/dist/utils/index.d.ts +7 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +8 -6
- package/dist/utils/markdown-heading-id.d.ts +0 -19
- package/dist/utils/markdown-heading-id.d.ts.map +1 -1
- package/dist/utils/markdown-heading-id.js +2 -5
- package/dist/utils/ods-color-utils.d.ts +0 -1
- package/dist/utils/ods-color-utils.d.ts.map +1 -1
- package/dist/utils/ods-color-utils.js +0 -2
- package/dist/utils/own-click.d.ts +4 -0
- package/dist/utils/own-click.d.ts.map +1 -0
- package/dist/utils/own-click.js +14 -0
- package/dist/utils/platform-config.d.ts +0 -1
- package/dist/utils/platform-config.d.ts.map +1 -1
- package/dist/utils/platform-config.js +0 -26
- package/dist/utils/source-icons.d.ts +2 -2
- package/dist/{video-file-player-QZ3YOLHO.cjs → video-file-player-COXRF4M5.cjs} +13 -13
- package/eslint-config/base.js +2 -0
- package/eslint-config/re-exports.js +56 -0
- package/package.json +1 -1
- package/src/ODS_TOKEN_RULES.md +2 -2
- package/src/chat-protocol/decode.ts +0 -5
- package/src/chat-protocol/index.ts +1 -0
- package/src/components/agent-identity.tsx +0 -2
- package/src/components/agent-mark.tsx +13 -4
- package/src/components/authors/author-detail-view.tsx +90 -44
- package/src/components/case-studies/entity-quotes-panel.tsx +50 -3
- package/src/components/case-studies/index.ts +2 -2
- package/src/components/case-studies/quote-cards-strip.tsx +75 -10
- package/src/components/categories-cart.tsx +82 -38
- package/src/components/category-card.tsx +1 -1
- package/src/components/chat/chat-attachment-bar.tsx +1 -1
- package/src/components/chat/chat-container.tsx +2 -1
- package/src/components/chat/chat-ticket-list.tsx +0 -1
- package/src/components/chat/chat-turn.tsx +124 -18
- package/src/components/chat/embeddable-chat.tsx +5 -5
- package/src/components/chat/entity-cards/admin-content-card-grid.tsx +1 -51
- package/src/components/chat/entity-cards/admin-content-card.tsx +80 -15
- package/src/components/chat/entity-cards/blog-card.tsx +71 -41
- package/src/components/chat/entity-cards/campaign-card-admin.tsx +4 -17
- package/src/components/chat/entity-cards/case-study-card.tsx +129 -68
- package/src/components/chat/entity-cards/chat-ticket-item.tsx +34 -29
- package/src/components/chat/entity-cards/customer-interview-card.tsx +61 -45
- package/src/components/chat/entity-cards/data-room-doc-card.tsx +11 -18
- package/src/components/chat/entity-cards/design-doc-card.tsx +48 -34
- package/src/components/chat/entity-cards/dispatch.tsx +9 -13
- package/src/components/chat/entity-cards/employee-entry-card.tsx +5 -5
- package/src/components/chat/entity-cards/entity-author-card.tsx +138 -32
- package/src/components/chat/entity-cards/entity-portrait-card.tsx +61 -16
- package/src/components/chat/entity-cards/generic-entity-card.tsx +11 -19
- package/src/components/chat/entity-cards/github-activity-card.tsx +14 -30
- package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +11 -23
- package/src/components/chat/entity-cards/index.ts +20 -7
- package/src/components/chat/entity-cards/investor-update-card.tsx +42 -35
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +78 -64
- package/src/components/chat/entity-cards/program-card.tsx +96 -66
- package/src/components/chat/entity-cards/roadmap-card.tsx +85 -65
- package/src/components/chat/entity-cards/roadmap-vote-button.tsx +12 -1
- package/src/components/chat/entity-cards/slack-message-card.tsx +19 -26
- package/src/components/chat/hooks/index.ts +12 -2
- package/src/components/chat/hooks/use-ask-prompts.ts +5 -1
- package/src/components/chat/hooks/use-chat-dialog-manager.ts +1 -1
- package/src/components/chat/hooks/use-chat-history-hydration.ts +1 -1
- package/src/components/chat/hooks/use-chat.ts +0 -3
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +0 -20
- package/src/components/chat/hooks/use-proxied-image-url.ts +27 -20
- package/src/components/chat/hooks/use-slash-commands.ts +1 -7
- package/src/components/chat/hooks/use-sse-chat-adapter.ts +4 -18
- package/src/components/chat/stream/chat-stream-reducer.ts +3 -2
- package/src/components/chat/types/entities/index.ts +24 -4
- package/src/components/chat/types/entities/investor-update.ts +1 -1
- package/src/components/chat/types/entities/program-types.ts +2 -5
- package/src/components/chat/utils/compact-card-classes.ts +15 -2
- package/src/components/chat/utils/compact-card-skeleton.tsx +111 -0
- package/src/components/chat/utils/icon-library.tsx +0 -2
- package/src/components/chat/utils/index.ts +5 -3
- package/src/components/chat/utils/scroll-anchor.ts +0 -2
- package/src/components/chat/utils/source-row-cta.ts +1 -5
- package/src/components/comment-card.tsx +118 -19
- package/src/components/comment-thread.tsx +130 -17
- package/src/components/docs/doc-viewer.tsx +33 -31
- package/src/components/docs/skeletons.tsx +37 -49
- package/src/components/docs/use-document-tree.ts +11 -7
- package/src/components/embeds/embed-iframe.tsx +5 -0
- package/src/components/embeds/index.ts +1 -1
- package/src/components/embeds/markdown-image.tsx +6 -2
- package/src/components/embeds/og-link-preview.tsx +155 -81
- package/src/components/faq/faq-document-page.tsx +8 -0
- package/src/components/faq/faq-section.tsx +249 -70
- package/src/components/faq/index.ts +12 -1
- package/src/components/faq-accordion.tsx +67 -7
- package/src/components/features/ai-enrich/AIStatusIndicator.tsx +2 -1
- package/src/components/features/approval-level.tsx +71 -8
- package/src/components/features/capability-explorer.tsx +59 -61
- package/src/components/features/cards-strip.tsx +54 -12
- package/src/components/features/command-box.tsx +139 -10
- package/src/components/features/conversation-card.tsx +242 -16
- package/src/components/features/devices/device-selector/device-selector.tsx +1 -0
- package/src/components/features/devices/devices-panel-view.tsx +2 -2
- package/src/components/features/entity-tag-badges.tsx +143 -10
- package/src/components/features/entity-video-section.tsx +52 -14
- package/src/components/features/figma-prototype-viewer.tsx +4 -8
- package/src/components/features/index.ts +11 -0
- package/src/components/features/knowledge-base/index.ts +2 -5
- package/src/components/features/knowledge-base/knowledge-base-article-view.tsx +0 -2
- package/src/components/features/model-token-rates.tsx +64 -84
- package/src/components/features/notifications/approval-request-notification-tile.tsx +9 -11
- package/src/components/features/notifications/notification-tile.tsx +58 -23
- package/src/components/features/paths-display.tsx +73 -6
- package/src/components/features/platform-badge.tsx +41 -1
- package/src/components/features/push-button-selector.tsx +167 -64
- package/src/components/features/remote-session/index.ts +2 -2
- package/src/components/features/remote-session/remote-desktop-chat-message-row.tsx +24 -3
- package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +19 -5
- package/src/components/features/remote-session/remote-desktop-view.tsx +47 -38
- package/src/components/features/remote-session/remote-session-chat-panel.tsx +1 -1
- package/src/components/features/status-filter-component.tsx +105 -11
- package/src/components/features/use-video-warmup.ts +0 -7
- package/src/components/features/use-walkthrough-video.ts +5 -1
- package/src/components/features/video-bites-strip.tsx +137 -22
- package/src/components/features/video-hover-preview.tsx +2 -1
- package/src/components/features/video.tsx +16 -12
- package/src/components/features/walkthrough-video.tsx +9 -2
- package/src/components/help-center-pages/download-apps-page.tsx +86 -32
- package/src/components/help-center-pages/trust-center-page.tsx +132 -66
- package/src/components/help-center-pages/trust-center-sections.tsx +205 -148
- package/src/components/icon-display.tsx +9 -0
- package/src/components/index.ts +11 -2
- package/src/components/interactive-wrapper.tsx +2 -1
- package/src/components/layout/list-page-layout.tsx +4 -5
- package/src/components/layout/page-container.tsx +59 -29
- package/src/components/layout/page-data-sync.tsx +40 -5
- package/src/components/layout/page-heading.tsx +84 -1
- package/src/components/layout/page-layout.tsx +5 -5
- package/src/components/layout/title-block.tsx +72 -17
- package/src/components/loading/category-vendor-selector-skeleton.tsx +4 -0
- package/src/components/loading/deprecated-layout-skeletons.tsx +133 -0
- package/src/components/loading/device-card-skeleton.tsx +4 -4
- package/src/components/loading/index.ts +11 -13
- package/src/components/loading/loading-region.tsx +16 -9
- package/src/components/loading/msp-profile-form-skeleton.tsx +3 -0
- package/src/components/loading/organization-card-skeleton.tsx +45 -71
- package/src/components/loading/page-layout-skeleton.tsx +1 -641
- package/src/components/loading/settings-form-skeleton.tsx +3 -0
- package/src/components/loading/unified-skeleton.tsx +101 -11
- package/src/components/log-severity-dot.tsx +17 -14
- package/src/components/logs-list.tsx +43 -29
- package/src/components/media-carousel.tsx +0 -4
- package/src/components/meeting-scheduler/booking-form.tsx +245 -35
- package/src/components/meeting-scheduler/context-panel.tsx +96 -30
- package/src/components/meeting-scheduler/directory.tsx +70 -37
- package/src/components/meeting-scheduler/index.tsx +136 -132
- package/src/components/meeting-scheduler/modal-header.tsx +45 -31
- package/src/components/meeting-scheduler/slot-picker.tsx +20 -8
- package/src/components/metric-value.tsx +19 -2
- package/src/components/msp-display.tsx +25 -10
- package/src/components/navigation/app-layout.tsx +0 -3
- package/src/components/navigation/index.ts +15 -3
- package/src/components/navigation/mingo-ai-button.tsx +3 -4
- package/src/components/navigation/mobile-nav-sheet.tsx +0 -2
- package/src/components/navigation/multi-level-navigation.tsx +152 -35
- package/src/components/navigation/page-section-bar.tsx +132 -0
- package/src/components/navigation/sticky-section-nav.tsx +109 -18
- package/src/components/navigation/ticket-alerts-button.tsx +1 -1
- package/src/components/onboarding-guides/hooks/use-onboarding-guides.ts +8 -1
- package/src/components/onboarding-guides/index.ts +5 -2
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +166 -67
- package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +38 -51
- package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +91 -45
- package/src/components/pagination.tsx +103 -48
- package/src/components/persistent-filter-controls.tsx +0 -7
- package/src/components/persistent-pagination.tsx +6 -1
- package/src/components/platform/ToolBadge.tsx +57 -10
- package/src/components/platform/index.ts +2 -2
- package/src/components/platform/tool-badge-mark.ts +6 -0
- package/src/components/product-demo/fixtures/devices.ts +0 -3
- package/src/components/product-demo/product-screen.tsx +42 -23
- package/src/components/product-demo/screen-loading.tsx +20 -0
- package/src/components/product-demo/screens/devices-view.tsx +58 -0
- package/src/components/product-demo/screens/devices.tsx +9 -29
- package/src/components/related-content/card-registry.tsx +20 -6
- package/src/components/related-content/index.ts +3 -1
- package/src/components/related-content/related-content-section.tsx +222 -46
- package/src/components/results-count.tsx +37 -6
- package/src/components/shared/article-author-byline.tsx +65 -41
- package/src/components/shared/delivery/delivery-lists.tsx +15 -2
- package/src/components/shared/delivery/delivery-row.tsx +55 -9
- package/src/components/shared/delivery/delivery-table.tsx +19 -46
- package/src/components/shared/detail-page-skeleton.tsx +15 -1
- package/src/components/shared/dev-section/dev-card-row.tsx +45 -28
- package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
- package/src/components/shared/doc-search/use-doc-search.ts +1 -1
- package/src/components/shared/legal-document/index.ts +2 -0
- package/src/components/shared/legal-document/legal-document-page.tsx +41 -21
- package/src/components/shared/legal-document/use-legal-docs.ts +5 -1
- package/src/components/shared/legal-document/use-legal-documents.ts +4 -1
- package/src/components/shared/media-gallery-strip.tsx +35 -3
- package/src/components/shared/onboarding/index.ts +2 -5
- package/src/components/shared/product-release/index.ts +1 -1
- package/src/components/shared/product-release/product-release-card-classes.ts +28 -0
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +62 -56
- package/src/components/shared/product-release/product-release-card.tsx +62 -44
- package/src/components/shared/product-release/product-releases-view.tsx +32 -24
- package/src/components/shared/product-release/release-detail-page.tsx +229 -134
- package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +20 -6
- package/src/components/shared/roadmap/roadmap-grid.tsx +59 -9
- package/src/components/shared/roadmap/roadmap-view.tsx +3 -3
- package/src/components/social-icon-row.tsx +14 -8
- package/src/components/tickets/help-center-list.tsx +6 -2
- package/src/components/tickets/hooks/use-ticket-actions.ts +0 -4
- package/src/components/tickets/index.ts +1 -2
- package/src/components/tickets/ticket-center.tsx +189 -75
- package/src/components/tickets/types.ts +0 -9
- package/src/components/toggle-group.tsx +4 -1
- package/src/components/tool-icon.tsx +2 -1
- package/src/components/ui/analyzing-state.tsx +11 -6
- package/src/components/ui/announcement-bar-view.tsx +7 -1
- package/src/components/ui/autocomplete.tsx +58 -6
- package/src/components/ui/avatar-stack.tsx +42 -3
- package/src/components/ui/badge.tsx +16 -1
- package/src/components/ui/benefit-list.tsx +41 -6
- package/src/components/ui/button/button-styles.ts +48 -0
- package/src/components/ui/button/button.tsx +5 -39
- package/src/components/ui/button/index.ts +1 -0
- package/src/components/ui/card.tsx +28 -13
- package/src/components/ui/checkbox.tsx +6 -1
- package/src/components/ui/compliance-badge.tsx +6 -2
- package/src/components/ui/cursor-pagination.tsx +28 -3
- package/src/components/ui/dashboard-info-card.tsx +29 -11
- package/src/components/ui/data-attribution.tsx +42 -12
- package/src/components/ui/data-table/data-table-body.tsx +11 -2
- package/src/components/ui/data-table/data-table-row-count.tsx +19 -1
- package/src/components/ui/data-table/data-table-row.tsx +4 -9
- package/src/components/ui/data-table/data-table-skeleton.tsx +7 -7
- package/src/components/ui/data-table/index.ts +2 -1
- package/src/components/ui/date-picker.tsx +0 -6
- package/src/components/ui/entity-image.tsx +27 -4
- package/src/components/ui/error-state.tsx +8 -1
- package/src/components/ui/feature-card.tsx +77 -12
- package/src/components/ui/feature-list.tsx +72 -8
- package/src/components/ui/field-wrapper.tsx +13 -1
- package/src/components/ui/filter-checkbox-item.tsx +57 -6
- package/src/components/ui/filter-modal.tsx +2 -6
- package/src/components/ui/filter-pill-row.tsx +81 -27
- package/src/components/ui/incident-feed.tsx +20 -11
- package/src/components/ui/index.ts +21 -1
- package/src/components/ui/info-card-row.tsx +74 -19
- package/src/components/ui/info-card.tsx +87 -13
- package/src/components/ui/input-styles.ts +6 -0
- package/src/components/ui/input.tsx +4 -1
- package/src/components/ui/layout-hold.tsx +9 -7
- package/src/components/ui/leader-row.tsx +58 -4
- package/src/components/ui/loading-scope.tsx +54 -0
- package/src/components/ui/markdown/base-components.tsx +18 -9
- package/src/components/ui/markdown/engine.tsx +131 -7
- package/src/components/ui/markdown/index.ts +8 -6
- package/src/components/ui/markdown/mermaid-diagram.tsx +7 -4
- package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +26 -1
- package/src/components/ui/markdown/simple-markdown-renderer.tsx +0 -3
- package/src/components/ui/markdown-editor.tsx +83 -50
- package/src/components/ui/numbered-step.tsx +32 -2
- package/src/components/ui/organization-card.tsx +32 -7
- package/src/components/ui/page-actions.tsx +51 -31
- package/src/components/ui/page-loader.tsx +2 -1
- package/src/components/ui/people-cell.tsx +25 -2
- package/src/components/ui/photo-wall.tsx +14 -3
- package/src/components/ui/product-screen-frame.tsx +14 -3
- package/src/components/ui/progress-bar.tsx +26 -3
- package/src/components/ui/progress.tsx +14 -3
- package/src/components/ui/release-changelog-section.tsx +153 -20
- package/src/components/ui/search-input.tsx +23 -3
- package/src/components/ui/searchable-select.tsx +26 -6
- package/src/components/ui/skeleton-surface.ts +16 -4
- package/src/components/ui/slack-channel-chip.tsx +23 -3
- package/src/components/ui/snap-carousel.tsx +5 -0
- package/src/components/ui/square-avatar.tsx +41 -23
- package/src/components/ui/stacked-rows-panel.tsx +88 -15
- package/src/components/ui/status-badge.tsx +18 -1
- package/src/components/ui/status-indicator.tsx +21 -2
- package/src/components/ui/status-line.tsx +2 -1
- package/src/components/ui/strip-card.tsx +73 -23
- package/src/components/ui/tab-navigation.tsx +141 -28
- package/src/components/ui/table/table-header.tsx +2 -2
- package/src/components/ui/table/table-row.tsx +2 -4
- package/src/components/ui/table/table-skeleton.tsx +48 -54
- package/src/components/ui/table/table.tsx +36 -19
- package/src/components/ui/table/types.ts +12 -4
- package/src/components/ui/table/utils.ts +5 -0
- package/src/components/ui/tabs.tsx +64 -4
- package/src/components/ui/tag.tsx +33 -13
- package/src/components/ui/tags-input.tsx +48 -10
- package/src/components/ui/textarea.tsx +33 -3
- package/src/components/ui/ticket-info-section.tsx +0 -2
- package/src/components/ui/timezone-select.tsx +4 -0
- package/src/components/ui/toggle.tsx +11 -5
- package/src/components/unified-pagination.tsx +15 -0
- package/src/components/user-display.tsx +53 -12
- package/src/components/user-summary-stub.tsx +7 -11
- package/src/components/vendor-display-button.tsx +15 -12
- package/src/components/vendor-icon.tsx +13 -2
- package/src/components/vendor-tag.tsx +18 -4
- package/src/embed-shims/next-image.tsx +36 -1
- package/src/hooks/state/flatten-schema.ts +0 -4
- package/src/hooks/state/index.ts +5 -3
- package/src/hooks/state/url-converter.ts +2 -2
- package/src/hooks/state/use-api-params.ts +2 -10
- package/src/hooks/ui/index.ts +1 -0
- package/src/hooks/ui/use-image-edge-color.ts +4 -1
- package/src/hooks/ui/use-onboarding-state.ts +0 -2
- package/src/hooks/use-downloads.ts +9 -1
- package/src/hooks/use-meeting-booking.ts +4 -0
- package/src/hooks/use-self-fetch.ts +12 -4
- package/src/nats/index.ts +1 -0
- package/src/nats/nats-provider.tsx +0 -2
- package/src/nats/nats.ts +0 -2
- package/src/nats/use-nats-subscription.ts +2 -1
- package/src/schemas/meeting-booking-schema.ts +11 -0
- package/src/styles/component-sizes.ts +105 -0
- package/src/types/announcement.ts +0 -3
- package/src/types/blog.ts +0 -4
- package/src/types/case-study.ts +2 -2
- package/src/types/customer-interview-ai.types.ts +1 -4
- package/src/types/customer-interview.ts +0 -11
- package/src/types/index.ts +2 -0
- package/src/types/product-release.ts +4 -2
- package/src/types/stack.ts +0 -4
- package/src/utils/announcement-storage.ts +0 -7
- package/src/utils/dev-sections/openframe-dev-sections.ts +11 -0
- package/src/utils/index.ts +6 -9
- package/src/utils/markdown-heading-id.ts +0 -28
- package/src/utils/ods-color-utils.ts +0 -4
- package/src/utils/own-click.ts +25 -0
- package/src/utils/platform-config.tsx +0 -17
- package/src/utils/source-icons.ts +2 -2
- package/dist/chunk-3ATAYP36.cjs +0 -19
- package/dist/chunk-3LU4UFPS.cjs +0 -14
- package/dist/chunk-FQWBIKF4.cjs +0 -404
- package/dist/chunk-H3RYUTND.cjs +0 -142
- package/dist/chunk-L4UI63K6.cjs +0 -103
- package/dist/chunk-NS64LMVE.cjs +0 -470
- package/dist/chunk-OF336YWG.cjs +0 -20
- package/dist/chunk-RB6BSE3O.cjs +0 -21
- package/dist/chunk-RM6AHNM4.cjs +0 -163
- package/dist/components/chat/entity-cards/product-release-card.d.ts +0 -12
- package/dist/components/chat/entity-cards/product-release-card.d.ts.map +0 -1
- package/dist/components/chat/entity-cards/product-release-card.js +0 -8
- package/dist/components/chat/hooks/use-embedded-chat.d.ts +0 -15
- package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +0 -1
- package/dist/components/chat/hooks/use-embedded-chat.js +0 -6
- package/dist/components/chat/types/entities/blog.d.ts +0 -14
- package/dist/components/chat/types/entities/blog.d.ts.map +0 -1
- package/dist/components/chat/types/entities/blog.js +0 -1
- package/dist/components/chat/types/entities/case-study.d.ts +0 -10
- package/dist/components/chat/types/entities/case-study.d.ts.map +0 -1
- package/dist/components/chat/types/entities/case-study.js +0 -1
- package/dist/components/chat/types/entities/content-ref.d.ts +0 -8
- package/dist/components/chat/types/entities/content-ref.d.ts.map +0 -1
- package/dist/components/chat/types/entities/content-ref.js +0 -1
- package/dist/components/chat/types/entities/customer-interview.d.ts +0 -10
- package/dist/components/chat/types/entities/customer-interview.d.ts.map +0 -1
- package/dist/components/chat/types/entities/customer-interview.js +0 -1
- package/dist/components/chat/utils/source-icons.d.ts +0 -8
- package/dist/components/chat/utils/source-icons.d.ts.map +0 -1
- package/dist/components/chat/utils/source-icons.js +0 -16
- package/dist/utils/image-proxy-stub.d.ts +0 -14
- package/dist/utils/image-proxy-stub.d.ts.map +0 -1
- package/dist/utils/image-proxy-stub.js +0 -22
- package/src/components/chat/entity-cards/product-release-card.tsx +0 -19
- package/src/components/chat/hooks/use-embedded-chat.ts +0 -25
- package/src/components/chat/types/entities/blog.ts +0 -27
- package/src/components/chat/types/entities/case-study.ts +0 -10
- package/src/components/chat/types/entities/content-ref.ts +0 -7
- package/src/components/chat/types/entities/customer-interview.ts +0 -15
- package/src/components/chat/utils/source-icons.ts +0 -14
- package/src/utils/image-proxy-stub.ts +0 -40
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } 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
|
|
6
|
+
var _chunkR3JX4MXDcjs = require('./chunk-R3JX4MXD.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
@@ -12,10 +12,10 @@ var _chunkOJJ4RL2Tcjs = require('./chunk-OJJ4RL2T.cjs');
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkSETFUCZAcjs = require('./chunk-SETFUCZA.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _chunkAAECWUNVcjs = require('./chunk-AAECWUNV.cjs');
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
@@ -27,7 +27,9 @@ var _chunkM7YZGRAVcjs = require('./chunk-M7YZGRAV.cjs');
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
var _chunkJTSUAHDLcjs = require('./chunk-JTSUAHDL.cjs');
|
|
31
33
|
|
|
32
34
|
|
|
33
35
|
var _chunk32ASZMTVcjs = require('./chunk-32ASZMTV.cjs');
|
|
@@ -43,72 +45,88 @@ var _chunkORO54HDFcjs = require('./chunk-ORO54HDF.cjs');
|
|
|
43
45
|
|
|
44
46
|
|
|
45
47
|
|
|
46
|
-
var
|
|
48
|
+
var _chunk3LW5TD54cjs = require('./chunk-3LW5TD54.cjs');
|
|
47
49
|
|
|
48
50
|
|
|
49
51
|
|
|
50
52
|
var _chunkCW3ML76Ucjs = require('./chunk-CW3ML76U.cjs');
|
|
51
53
|
|
|
52
54
|
|
|
53
|
-
var
|
|
55
|
+
var _chunkVFZFCRALcjs = require('./chunk-VFZFCRAL.cjs');
|
|
54
56
|
|
|
55
57
|
|
|
56
58
|
|
|
57
59
|
|
|
58
|
-
var
|
|
60
|
+
var _chunk5P4TDV7Vcjs = require('./chunk-5P4TDV7V.cjs');
|
|
59
61
|
|
|
60
62
|
|
|
61
63
|
|
|
62
|
-
var
|
|
64
|
+
var _chunkE76ONBKFcjs = require('./chunk-E76ONBKF.cjs');
|
|
63
65
|
|
|
64
66
|
|
|
65
67
|
var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
|
|
66
68
|
|
|
67
69
|
|
|
68
|
-
var _chunk2QMBXGMQcjs = require('./chunk-2QMBXGMQ.cjs');
|
|
69
70
|
|
|
70
71
|
|
|
71
|
-
var _chunkV45KLJQPcjs = require('./chunk-V45KLJQP.cjs');
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
var _chunkH3RYUTNDcjs = require('./chunk-H3RYUTND.cjs');
|
|
75
74
|
|
|
76
75
|
|
|
77
|
-
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
var _chunkXFRBEXQNcjs = require('./chunk-XFRBEXQN.cjs');
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
var _chunkTF5D5MNOcjs = require('./chunk-TF5D5MNO.cjs');
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
var _chunkV45KLJQPcjs = require('./chunk-V45KLJQP.cjs');
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
var _chunk65VVJSQZcjs = require('./chunk-65VVJSQZ.cjs');
|
|
78
89
|
|
|
79
90
|
// src/components/ui/card.tsx
|
|
80
|
-
var _react = require('react');
|
|
91
|
+
var _react = require('react');
|
|
81
92
|
var _jsxruntime = require('react/jsx-runtime');
|
|
82
|
-
var
|
|
83
|
-
"
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
className
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
var CARD_VARIANT_CLASS = {
|
|
94
|
+
default: "rounded-lg bg-card text-card-foreground shadow-sm",
|
|
95
|
+
panel: "rounded-md bg-ods-card text-ods-text-primary"
|
|
96
|
+
};
|
|
97
|
+
var Card = _react.forwardRef.call(void 0,
|
|
98
|
+
({ className, variant = "default", ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
99
|
+
"div",
|
|
100
|
+
{
|
|
101
|
+
ref,
|
|
102
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
103
|
+
// `border` with NO color token resolves to `currentColor` — on a dark card
|
|
104
|
+
// with light text that paints a WHITE outline. Every ODS surface borders
|
|
105
|
+
// on `--color-border`; say so.
|
|
106
|
+
"border border-ods-border",
|
|
107
|
+
CARD_VARIANT_CLASS[variant],
|
|
108
|
+
className
|
|
109
|
+
),
|
|
110
|
+
...props
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
);
|
|
96
114
|
Card.displayName = "Card";
|
|
97
|
-
var CardHeader = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
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 }));
|
|
98
116
|
CardHeader.displayName = "CardHeader";
|
|
99
|
-
var CardTitle = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
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 }));
|
|
100
118
|
CardTitle.displayName = "CardTitle";
|
|
101
|
-
var CardDescription = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
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 }));
|
|
102
120
|
CardDescription.displayName = "CardDescription";
|
|
103
|
-
var CardContent = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
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 }));
|
|
104
122
|
CardContent.displayName = "CardContent";
|
|
105
|
-
var CardFooter = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
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 }));
|
|
106
124
|
CardFooter.displayName = "CardFooter";
|
|
107
125
|
function CardHorizontal({ icon, title, description, className = "", borderLeft = true }) {
|
|
108
126
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
109
127
|
"div",
|
|
110
128
|
{
|
|
111
|
-
className:
|
|
129
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
112
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",
|
|
113
131
|
borderLeft ? "border-l border-ods-border" : "",
|
|
114
132
|
className
|
|
@@ -124,80 +142,6 @@ function CardHorizontal({ icon, title, description, className = "", borderLeft =
|
|
|
124
142
|
);
|
|
125
143
|
}
|
|
126
144
|
|
|
127
|
-
// src/components/ui/interactive-card.tsx
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
var InteractiveCard = _react2.default.forwardRef(
|
|
131
|
-
({ children, onClick, clickable, hoverAccentColor, className, ...props }, ref) => {
|
|
132
|
-
const isClickable = clickable !== void 0 ? clickable : !!onClick;
|
|
133
|
-
const handleClick = (e) => {
|
|
134
|
-
if (isClickable && onClick) {
|
|
135
|
-
onClick(e);
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
const handleMouseEnter = (e) => {
|
|
139
|
-
if (hoverAccentColor && isClickable) {
|
|
140
|
-
const card = e.currentTarget;
|
|
141
|
-
card.style.borderColor = hoverAccentColor;
|
|
142
|
-
const title = card.querySelector("h3");
|
|
143
|
-
if (title) {
|
|
144
|
-
title.style.color = hoverAccentColor;
|
|
145
|
-
}
|
|
146
|
-
const primaryTexts = card.querySelectorAll(".text-ods-text-primary:not(button):not(button *)");
|
|
147
|
-
for (const text of primaryTexts) {
|
|
148
|
-
text.style.color = hoverAccentColor;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
const handleMouseLeave = (e) => {
|
|
153
|
-
if (hoverAccentColor && isClickable) {
|
|
154
|
-
const card = e.currentTarget;
|
|
155
|
-
card.style.borderColor = "";
|
|
156
|
-
const title = card.querySelector("h3");
|
|
157
|
-
if (title) {
|
|
158
|
-
title.style.color = "";
|
|
159
|
-
}
|
|
160
|
-
const primaryTexts = card.querySelectorAll(".text-ods-text-primary:not(button):not(button *)");
|
|
161
|
-
for (const text of primaryTexts) {
|
|
162
|
-
text.style.color = "";
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
167
|
-
"div",
|
|
168
|
-
{
|
|
169
|
-
ref,
|
|
170
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
171
|
-
"transition-all",
|
|
172
|
-
isClickable && [
|
|
173
|
-
"cursor-pointer",
|
|
174
|
-
"group",
|
|
175
|
-
!hoverAccentColor && [
|
|
176
|
-
"hover:border-ods-accent",
|
|
177
|
-
// H3 titles turn accent on hover
|
|
178
|
-
"[&:hover_h3]:text-ods-accent",
|
|
179
|
-
// Primary text turns accent on hover (but not inside buttons)
|
|
180
|
-
"[&:hover_.text-ods-text-primary:not(button):not(button_*)]:text-ods-accent"
|
|
181
|
-
]
|
|
182
|
-
],
|
|
183
|
-
className
|
|
184
|
-
),
|
|
185
|
-
onClick: handleClick,
|
|
186
|
-
onMouseEnter: handleMouseEnter,
|
|
187
|
-
onMouseLeave: handleMouseLeave,
|
|
188
|
-
style: hoverAccentColor ? (
|
|
189
|
-
// A CSS custom property — React accepts it at runtime but
|
|
190
|
-
// `CSSProperties` has no index signature for `--*`.
|
|
191
|
-
{ "--hover-accent": hoverAccentColor }
|
|
192
|
-
) : void 0,
|
|
193
|
-
...props,
|
|
194
|
-
children
|
|
195
|
-
}
|
|
196
|
-
);
|
|
197
|
-
}
|
|
198
|
-
);
|
|
199
|
-
InteractiveCard.displayName = "InteractiveCard";
|
|
200
|
-
|
|
201
145
|
// src/components/ui/modal.tsx
|
|
202
146
|
var _overlays = require('@react-aria/overlays');
|
|
203
147
|
|
|
@@ -221,25 +165,25 @@ var Modal = _react.forwardRef.call(void 0, ({ isOpen, onClose, children, classNa
|
|
|
221
165
|
"div",
|
|
222
166
|
{
|
|
223
167
|
ref,
|
|
224
|
-
className:
|
|
168
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
225
169
|
"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",
|
|
226
170
|
className
|
|
227
171
|
),
|
|
228
172
|
role: "dialog",
|
|
229
173
|
"aria-modal": "true",
|
|
230
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
174
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVFZFCRALcjs.ViewportBreakpoints, { children })
|
|
231
175
|
}
|
|
232
176
|
)
|
|
233
177
|
] });
|
|
234
178
|
});
|
|
235
179
|
Modal.displayName = "Modal";
|
|
236
|
-
var ModalContent = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
180
|
+
var ModalContent = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "min-h-0 flex-1 overflow-y-auto", className), children }));
|
|
237
181
|
ModalContent.displayName = "ModalContent";
|
|
238
|
-
var ModalHeader = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
182
|
+
var ModalHeader = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "shrink-0 border-b border-ods-border px-6 py-4", className), children }));
|
|
239
183
|
ModalHeader.displayName = "ModalHeader";
|
|
240
|
-
var ModalTitle = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { ref, className:
|
|
184
|
+
var ModalTitle = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "font-semibold text-ods-text-primary", className), children }));
|
|
241
185
|
ModalTitle.displayName = "ModalTitle";
|
|
242
|
-
var ModalFooter = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
186
|
+
var ModalFooter = _react.forwardRef.call(void 0, ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "flex shrink-0 justify-end gap-3 px-6 py-4", className), children }));
|
|
243
187
|
ModalFooter.displayName = "ModalFooter";
|
|
244
188
|
|
|
245
189
|
// src/components/ui/image-gallery-modal.tsx
|
|
@@ -292,7 +236,7 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
|
|
|
292
236
|
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: [
|
|
293
237
|
images.length > 1 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
294
238
|
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,
|
|
295
|
-
|
|
239
|
+
_chunkTF5D5MNOcjs.Button,
|
|
296
240
|
{
|
|
297
241
|
variant: "transparent",
|
|
298
242
|
size: "small-legacy",
|
|
@@ -302,7 +246,7 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
|
|
|
302
246
|
}
|
|
303
247
|
) }),
|
|
304
248
|
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,
|
|
305
|
-
|
|
249
|
+
_chunkTF5D5MNOcjs.Button,
|
|
306
250
|
{
|
|
307
251
|
variant: "transparent",
|
|
308
252
|
size: "small-legacy",
|
|
@@ -313,7 +257,7 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
|
|
|
313
257
|
) })
|
|
314
258
|
] }),
|
|
315
259
|
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,
|
|
316
|
-
|
|
260
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
317
261
|
{
|
|
318
262
|
src: images[selectedImageIndex],
|
|
319
263
|
alt: `Screenshot ${selectedImageIndex + 1}`,
|
|
@@ -366,7 +310,7 @@ var filePlayerLoad = null;
|
|
|
366
310
|
var filePlayerListeners = /* @__PURE__ */ new Set();
|
|
367
311
|
function loadFilePlayer() {
|
|
368
312
|
if (filePlayer || filePlayerLoad) return;
|
|
369
|
-
filePlayerLoad = Promise.resolve().then(() => _interopRequireWildcard(require("./video-file-player-
|
|
313
|
+
filePlayerLoad = Promise.resolve().then(() => _interopRequireWildcard(require("./video-file-player-COXRF4M5.cjs"))).then((module) => {
|
|
370
314
|
filePlayer = module.default;
|
|
371
315
|
for (const listener of filePlayerListeners) listener();
|
|
372
316
|
}).catch(() => void 0).finally(() => {
|
|
@@ -438,10 +382,12 @@ function extractYouTubeId(url) {
|
|
|
438
382
|
}
|
|
439
383
|
function Video(props) {
|
|
440
384
|
const { ref: nearRef, isNear } = _chunkCW3ML76Ucjs.useNearViewport.call(void 0, );
|
|
385
|
+
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
441
386
|
const url = props.url;
|
|
387
|
+
const layout = _nullishCoalesce(props.layout, () => ( "native"));
|
|
388
|
+
if (loading && !url) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoSkeleton, { layout, className: props.className });
|
|
442
389
|
if (!url) return null;
|
|
443
390
|
const effectiveKind = resolveKind(props, url);
|
|
444
|
-
const layout = _nullishCoalesce(props.layout, () => ( "native"));
|
|
445
391
|
if (props.lazy && !isNear) {
|
|
446
392
|
return wrapWithLayout(
|
|
447
393
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -465,7 +411,7 @@ function Video(props) {
|
|
|
465
411
|
className: props.className,
|
|
466
412
|
minimalControls: props.minimalControls,
|
|
467
413
|
muted: props.muted,
|
|
468
|
-
...
|
|
414
|
+
..._chunkSETFUCZAcjs.pickYouTube.call(void 0, props)
|
|
469
415
|
}
|
|
470
416
|
) : "firstFrameOnly" in props && props.firstFrameOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
471
417
|
FirstFramePreview,
|
|
@@ -481,7 +427,7 @@ function Video(props) {
|
|
|
481
427
|
url,
|
|
482
428
|
poster: props.poster,
|
|
483
429
|
muted: props.muted,
|
|
484
|
-
...
|
|
430
|
+
..._chunkSETFUCZAcjs.pickFilePlayback.call(void 0, props),
|
|
485
431
|
className: props.className
|
|
486
432
|
}
|
|
487
433
|
);
|
|
@@ -495,6 +441,9 @@ function resolveKind(props, url) {
|
|
|
495
441
|
if (BARE_YT_ID_RE.test(url)) return "youtube";
|
|
496
442
|
return isYouTubeUrl(url) ? "youtube" : "file";
|
|
497
443
|
}
|
|
444
|
+
function VideoSkeleton({ layout = "native", className }) {
|
|
445
|
+
return wrapWithLayout(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { variant: "rectangular", className: _chunk65VVJSQZcjs.cn.call(void 0, "h-full w-full", className) }), layout);
|
|
446
|
+
}
|
|
498
447
|
function wrapWithLayout(inner, layout) {
|
|
499
448
|
switch (layout) {
|
|
500
449
|
case "centered":
|
|
@@ -643,7 +592,7 @@ function YouTubeFacadeInner({
|
|
|
643
592
|
if (!payload) return;
|
|
644
593
|
if (payload.event === "onError") {
|
|
645
594
|
setFailed(true);
|
|
646
|
-
|
|
595
|
+
_chunkSETFUCZAcjs.reportPlaybackFailure.call(void 0, { kind: "youtube", src: videoId, reason: "error", errorCode: payload.errorCode });
|
|
647
596
|
return;
|
|
648
597
|
}
|
|
649
598
|
if (payload.event !== "infoDelivery") return;
|
|
@@ -681,7 +630,7 @@ function YouTubeFacadeInner({
|
|
|
681
630
|
const wrapperClass = `relative w-full ${_nullishCoalesce(className, () => ( ""))}`;
|
|
682
631
|
const wrapperStyle = { paddingBottom: "56.25%" };
|
|
683
632
|
if (activated && failed) {
|
|
684
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
633
|
+
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 }) });
|
|
685
634
|
}
|
|
686
635
|
if (activated) {
|
|
687
636
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -717,14 +666,14 @@ function YouTubeFacadeInner({
|
|
|
717
666
|
height: 720,
|
|
718
667
|
loading: "lazy",
|
|
719
668
|
onError: handlePosterError,
|
|
720
|
-
...
|
|
669
|
+
..._chunkE76ONBKFcjs.fetchPriorityProp.call(void 0, priority),
|
|
721
670
|
decoding: priority ? "sync" : "async",
|
|
722
671
|
className: "absolute inset-0 h-full w-full object-cover"
|
|
723
672
|
}
|
|
724
673
|
)
|
|
725
674
|
] }),
|
|
726
675
|
/* @__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,
|
|
727
|
-
|
|
676
|
+
_chunkSETFUCZAcjs.VideoPlayBadge,
|
|
728
677
|
{
|
|
729
678
|
size: "lg",
|
|
730
679
|
className: "transition-transform duration-200 group-hover:scale-110 group-hover:text-ods-accent"
|
|
@@ -789,7 +738,18 @@ function generationTierFromLabel(label) {
|
|
|
789
738
|
const n = m ? parseInt(m[1], 10) : 1;
|
|
790
739
|
return Number.isFinite(n) && n > 0 ? n : 1;
|
|
791
740
|
}
|
|
741
|
+
function StatusBadgeSkeleton({ variant, className }) {
|
|
742
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
743
|
+
_chunkXFRBEXQNcjs.UnifiedSkeleton,
|
|
744
|
+
{
|
|
745
|
+
as: "span",
|
|
746
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, statusBadgeVariants({ variant, colorScheme: null }), "box-content h-[1lh] w-12 border-transparent", className)
|
|
747
|
+
}
|
|
748
|
+
);
|
|
749
|
+
}
|
|
792
750
|
function StatusBadge({ text, variant, colorScheme, className, singleLine, gen, style, ...props }) {
|
|
751
|
+
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
752
|
+
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, { variant, className });
|
|
793
753
|
const genStyle = gen != null ? {
|
|
794
754
|
textTransform: "none",
|
|
795
755
|
color: "var(--ods-accent)",
|
|
@@ -806,7 +766,7 @@ function StatusBadge({ text, variant, colorScheme, className, singleLine, gen, s
|
|
|
806
766
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
807
767
|
"span",
|
|
808
768
|
{
|
|
809
|
-
className:
|
|
769
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, statusBadgeVariants({ variant, colorScheme: gen != null ? void 0 : colorScheme }), className),
|
|
810
770
|
style: genStyle ? { ...genStyle, ...style } : style,
|
|
811
771
|
...props,
|
|
812
772
|
children: renderText()
|
|
@@ -821,23 +781,27 @@ function EntityIcon({
|
|
|
821
781
|
size = 20,
|
|
822
782
|
className
|
|
823
783
|
}) {
|
|
824
|
-
const identity =
|
|
784
|
+
const identity = _chunkR3JX4MXDcjs.useAgentIdentityIcon.call(void 0, _optionalChain([icon, 'optionalAccess', _14 => _14.url]) ? null : _optionalChain([icon, 'optionalAccess', _15 => _15.name]));
|
|
785
|
+
const held = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
786
|
+
if (held) {
|
|
787
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", width: size, height: size, className: _chunk65VVJSQZcjs.cn.call(void 0, "inline-block shrink-0 rounded-md", className) });
|
|
788
|
+
}
|
|
825
789
|
if (!_optionalChain([icon, 'optionalAccess', _16 => _16.url]) && _optionalChain([identity, 'optionalAccess', _17 => _17.url])) {
|
|
826
790
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
827
|
-
|
|
791
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
828
792
|
{
|
|
829
793
|
src: identity.url,
|
|
830
794
|
alt: "",
|
|
831
795
|
width: size,
|
|
832
796
|
height: size,
|
|
833
|
-
className:
|
|
797
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, _chunkR3JX4MXDcjs.AGENT_PICTURE_CLASS, className),
|
|
834
798
|
unoptimized: true
|
|
835
799
|
}
|
|
836
800
|
);
|
|
837
801
|
}
|
|
838
802
|
if (_optionalChain([icon, 'optionalAccess', _18 => _18.url])) {
|
|
839
803
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
840
|
-
|
|
804
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
841
805
|
{
|
|
842
806
|
src: icon.url,
|
|
843
807
|
alt: "",
|
|
@@ -849,8 +813,8 @@ function EntityIcon({
|
|
|
849
813
|
}
|
|
850
814
|
);
|
|
851
815
|
}
|
|
852
|
-
const Glyph =
|
|
853
|
-
const agentColor = identity ? { color:
|
|
816
|
+
const Glyph = _chunk5P4TDV7Vcjs.resolveIcon.call(void 0, _nullishCoalesce(_nullishCoalesce(_optionalChain([identity, 'optionalAccess', _19 => _19.name]), () => ( _optionalChain([icon, 'optionalAccess', _20 => _20.name]))), () => ( void 0)));
|
|
817
|
+
const agentColor = identity ? { color: _chunkR3JX4MXDcjs.AGENT_GLYPH_COLOR } : {};
|
|
854
818
|
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]), () => ( {})) });
|
|
855
819
|
}
|
|
856
820
|
|
|
@@ -906,6 +870,18 @@ function skipsImageOptimizer(url) {
|
|
|
906
870
|
}
|
|
907
871
|
}
|
|
908
872
|
|
|
873
|
+
// src/components/chat/hooks/use-proxied-image-url.ts
|
|
874
|
+
function useProxiedImageUrl(url, options) {
|
|
875
|
+
const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
876
|
+
if (!url) return "";
|
|
877
|
+
if (_optionalChain([options, 'optionalAccess', _26 => _26.proxyImageUrl])) return options.proxyImageUrl(url);
|
|
878
|
+
return _nullishCoalesce(getProxiedImageUrl(url, {
|
|
879
|
+
proxyPrefix: _optionalChain([runtime, 'optionalAccess', _27 => _27.endpoints, 'access', _28 => _28.imageProxyUrlPrefix]),
|
|
880
|
+
skipDomains: _optionalChain([runtime, 'optionalAccess', _29 => _29.endpoints, 'access', _30 => _30.imageProxySkipDomains]),
|
|
881
|
+
directHttps: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _31 => _31.directHttps]), () => ( true))
|
|
882
|
+
}), () => ( url));
|
|
883
|
+
}
|
|
884
|
+
|
|
909
885
|
// src/utils/escape-regexp.ts
|
|
910
886
|
function escapeRegExp(value) {
|
|
911
887
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
@@ -915,7 +891,7 @@ function escapeRegExp(value) {
|
|
|
915
891
|
function formatDayHead(dateString, style) {
|
|
916
892
|
const ymd = splitYmd(dateString);
|
|
917
893
|
if (!ymd) return dateString;
|
|
918
|
-
return
|
|
894
|
+
return _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, ymd.join("-"), null, style) || dateString;
|
|
919
895
|
}
|
|
920
896
|
function splitYmd(dateString) {
|
|
921
897
|
const head = dateString.split("T")[0];
|
|
@@ -1011,7 +987,7 @@ function getTaskTypeLabel(customItemId) {
|
|
|
1011
987
|
|
|
1012
988
|
// src/components/chat/utils/agent-status-message.ts
|
|
1013
989
|
function getStatusColorScheme(status) {
|
|
1014
|
-
const s = _optionalChain([status, 'optionalAccess',
|
|
990
|
+
const s = _optionalChain([status, 'optionalAccess', _32 => _32.toLowerCase, 'call', _33 => _33()]) || "";
|
|
1015
991
|
switch (status) {
|
|
1016
992
|
case "completed":
|
|
1017
993
|
case "success":
|
|
@@ -1277,10 +1253,10 @@ var MEDIA_TYPE = {
|
|
|
1277
1253
|
VIDEO: "video"
|
|
1278
1254
|
};
|
|
1279
1255
|
function isVideoMedia(media) {
|
|
1280
|
-
return _optionalChain([media, 'optionalAccess',
|
|
1256
|
+
return _optionalChain([media, 'optionalAccess', _34 => _34.media_type]) === MEDIA_TYPE.VIDEO;
|
|
1281
1257
|
}
|
|
1282
1258
|
function isImageMedia(media) {
|
|
1283
|
-
return _optionalChain([media, 'optionalAccess',
|
|
1259
|
+
return _optionalChain([media, 'optionalAccess', _35 => _35.media_type]) === MEDIA_TYPE.IMAGE;
|
|
1284
1260
|
}
|
|
1285
1261
|
function isPublishableMediaType(mediaType) {
|
|
1286
1262
|
return mediaType === MEDIA_TYPE.VIDEO || mediaType === MEDIA_TYPE.IMAGE;
|
|
@@ -1370,9 +1346,9 @@ function programMetaFormatters(fmt, opts = {}) {
|
|
|
1370
1346
|
|
|
1371
1347
|
// src/utils/program-meta-renderers.ts
|
|
1372
1348
|
var PROGRAM_META_RENDERERS = {
|
|
1373
|
-
date:
|
|
1374
|
-
duration:
|
|
1375
|
-
webinarMeta:
|
|
1349
|
+
date: _chunkJTSUAHDLcjs.formatProgramDate,
|
|
1350
|
+
duration: _chunkJTSUAHDLcjs.formatDurationCompact,
|
|
1351
|
+
webinarMeta: _chunkJTSUAHDLcjs.formatWebinarTimeMeta
|
|
1376
1352
|
};
|
|
1377
1353
|
|
|
1378
1354
|
// src/components/chat/utils/chat-nav-resolution.ts
|
|
@@ -1449,7 +1425,7 @@ function isSameOriginAbsoluteHref(href) {
|
|
|
1449
1425
|
function computeIsNewTab(runtime, href, targetPlatform) {
|
|
1450
1426
|
if (!href) return false;
|
|
1451
1427
|
if (runtime.navigation.mode === "embed") return !isSameOriginAbsoluteHref(href);
|
|
1452
|
-
return _nullishCoalesce(_optionalChain([runtime, 'access',
|
|
1428
|
+
return _nullishCoalesce(_optionalChain([runtime, 'access', _36 => _36.navigation, 'access', _37 => _37.decideNewTab, 'optionalCall', _38 => _38({ href, targetPlatform })]), () => ( decideNewTab({
|
|
1453
1429
|
href,
|
|
1454
1430
|
targetPlatform,
|
|
1455
1431
|
currentSource: _nullishCoalesce(runtime.source, () => ( ""))
|
|
@@ -1469,15 +1445,37 @@ var EMPTY_AUTHOR_PLACEHOLDER = {
|
|
|
1469
1445
|
avatar_url: null,
|
|
1470
1446
|
job_title: "Unknown"
|
|
1471
1447
|
};
|
|
1448
|
+
var VALUE_CELL_CLASS = "flex flex-col gap-3 p-4";
|
|
1449
|
+
var CELL_STACK_CLASS = "flex flex-col gap-0";
|
|
1450
|
+
var VALUE_TEXT_CLASS = "text-ods-text-primary text-h4";
|
|
1451
|
+
var VALUE_NODE_CLASS = "flex min-h-6 items-center";
|
|
1452
|
+
var LABEL_TEXT_CLASS = "text-ods-text-secondary text-h6";
|
|
1453
|
+
var AUTHOR_CELL_CLASS = "flex items-center gap-3 p-4";
|
|
1454
|
+
var AUTHOR_TEXT_CLASS = "flex min-w-0 flex-1 flex-col gap-0";
|
|
1455
|
+
var AUTHOR_NAME_CLASS = "truncate text-ods-text-primary text-h3";
|
|
1456
|
+
var AUTHOR_AVATAR_SIZE = "md";
|
|
1457
|
+
var CELL_DIVIDER_CLASS = "border-b md:border-b-0 md:border-r border-ods-border";
|
|
1458
|
+
var GRID_FRAME_CLASS = "grid grid-cols-1 w-full overflow-hidden rounded-md border border-ods-border";
|
|
1459
|
+
function gridColsClass(cells) {
|
|
1460
|
+
return cells >= 4 ? "md:grid-cols-4" : cells === 3 ? "md:grid-cols-3" : cells === 2 ? "md:grid-cols-2" : "md:grid-cols-1";
|
|
1461
|
+
}
|
|
1472
1462
|
function EntityMetadataValueCell({
|
|
1473
1463
|
value,
|
|
1474
1464
|
label,
|
|
1475
1465
|
className,
|
|
1476
|
-
uppercase = true
|
|
1466
|
+
uppercase = true,
|
|
1467
|
+
optional = false
|
|
1477
1468
|
}) {
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className:
|
|
1469
|
+
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataValueCellSkeleton, { label, className });
|
|
1470
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.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: [
|
|
1471
|
+
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 }),
|
|
1472
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: LABEL_TEXT_CLASS, children: label })
|
|
1473
|
+
] }) });
|
|
1474
|
+
}
|
|
1475
|
+
function EntityMetadataValueCellSkeleton({ label, className }) {
|
|
1476
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, VALUE_CELL_CLASS, className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CELL_STACK_CLASS, children: [
|
|
1477
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: VALUE_TEXT_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-24" }) }),
|
|
1478
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: LABEL_TEXT_CLASS, children: label })
|
|
1481
1479
|
] }) });
|
|
1482
1480
|
}
|
|
1483
1481
|
function EntityMetadataAuthorCell({
|
|
@@ -1486,25 +1484,49 @@ function EntityMetadataAuthorCell({
|
|
|
1486
1484
|
authorHref,
|
|
1487
1485
|
className
|
|
1488
1486
|
}) {
|
|
1487
|
+
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
1488
|
+
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataAuthorCellSkeleton, { className });
|
|
1489
1489
|
const trimmedName = typeof author.full_name === "string" ? author.full_name.trim() : "";
|
|
1490
1490
|
const fullName = trimmedName || "Unknown Author";
|
|
1491
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1491
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, AUTHOR_CELL_CLASS, className), children: [
|
|
1492
1492
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1493
|
-
|
|
1493
|
+
_chunkJTSUAHDLcjs.SquareAvatar,
|
|
1494
1494
|
{
|
|
1495
1495
|
src: author.avatar_url || "",
|
|
1496
1496
|
alt: fullName,
|
|
1497
|
-
fallback:
|
|
1498
|
-
size:
|
|
1497
|
+
fallback: _chunkJTSUAHDLcjs.nameInitials.call(void 0, fullName, ""),
|
|
1498
|
+
size: AUTHOR_AVATAR_SIZE,
|
|
1499
1499
|
variant: "round"
|
|
1500
1500
|
}
|
|
1501
1501
|
),
|
|
1502
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1503
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className:
|
|
1504
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className:
|
|
1502
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: AUTHOR_TEXT_CLASS, children: [
|
|
1503
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: AUTHOR_NAME_CLASS, title: fullName, children: authorHref && trimmedName ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: authorHref, className: "transition-colors hover:text-ods-accent", children: fullName }) : fullName }),
|
|
1504
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: LABEL_TEXT_CLASS, children: author.job_title || roleLabel })
|
|
1505
|
+
] })
|
|
1506
|
+
] });
|
|
1507
|
+
}
|
|
1508
|
+
function EntityMetadataAuthorCellSkeleton({ className }) {
|
|
1509
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, AUTHOR_CELL_CLASS, className), children: [
|
|
1510
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { variant: "circular", className: _chunk65VVJSQZcjs.cn.call(void 0, "shrink-0", _chunkXFRBEXQNcjs.AVATAR_SIZE[AUTHOR_AVATAR_SIZE]) }),
|
|
1511
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: AUTHOR_TEXT_CLASS, children: [
|
|
1512
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", className: "w-32" }),
|
|
1513
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-20" })
|
|
1505
1514
|
] })
|
|
1506
1515
|
] });
|
|
1507
1516
|
}
|
|
1517
|
+
function EntityAuthorCardSkeleton({
|
|
1518
|
+
extraCellLabels = [],
|
|
1519
|
+
publishedLabel = "Published",
|
|
1520
|
+
optionalCells = 0,
|
|
1521
|
+
className
|
|
1522
|
+
}) {
|
|
1523
|
+
const totalCells = extraCellLabels.length + optionalCells + (publishedLabel === null ? 0 : 1) + 1;
|
|
1524
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, GRID_FRAME_CLASS, gridColsClass(totalCells), className), children: [
|
|
1525
|
+
extraCellLabels.map((label, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataValueCellSkeleton, { label, className: CELL_DIVIDER_CLASS }, `${label}-${i}`)),
|
|
1526
|
+
publishedLabel !== null && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataValueCellSkeleton, { label: publishedLabel, className: CELL_DIVIDER_CLASS }),
|
|
1527
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataAuthorCellSkeleton, {})
|
|
1528
|
+
] });
|
|
1529
|
+
}
|
|
1508
1530
|
function EntityAuthorCard({
|
|
1509
1531
|
author,
|
|
1510
1532
|
roleLabel = "Author",
|
|
@@ -1515,36 +1537,49 @@ function EntityAuthorCard({
|
|
|
1515
1537
|
renderEmptyAuthor = false,
|
|
1516
1538
|
className
|
|
1517
1539
|
}) {
|
|
1518
|
-
const
|
|
1540
|
+
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
1541
|
+
if (loading) {
|
|
1542
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1543
|
+
EntityAuthorCardSkeleton,
|
|
1544
|
+
{
|
|
1545
|
+
extraCellLabels: (_nullishCoalesce(extraCells, () => ( []))).filter((cell) => !cell.optional).map((cell) => cell.label),
|
|
1546
|
+
optionalCells: (_nullishCoalesce(extraCells, () => ( []))).filter((cell) => cell.optional).length,
|
|
1547
|
+
publishedLabel: publishedAt === void 0 ? null : publishedLabel,
|
|
1548
|
+
className
|
|
1549
|
+
}
|
|
1550
|
+
);
|
|
1551
|
+
}
|
|
1552
|
+
const hasAuthor = !!_optionalChain([author, 'optionalAccess', _39 => _39.full_name]);
|
|
1519
1553
|
if (!hasAuthor && !renderEmptyAuthor) return null;
|
|
1520
1554
|
const effectiveAuthor = hasAuthor ? author : EMPTY_AUTHOR_PLACEHOLDER;
|
|
1521
|
-
const formatted = publishedAt ?
|
|
1555
|
+
const formatted = publishedAt ? _chunkJTSUAHDLcjs.formatDate.call(void 0, publishedAt) : "";
|
|
1522
1556
|
const dateLabel = formatted === "Invalid Date" ? "" : formatted;
|
|
1523
1557
|
const showDateCell = !!dateLabel;
|
|
1524
1558
|
const extras = _nullishCoalesce(extraCells, () => ( []));
|
|
1525
1559
|
const totalCells = extras.length + (showDateCell ? 1 : 0) + 1;
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1560
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, GRID_FRAME_CLASS, gridColsClass(totalCells), className), children: [
|
|
1561
|
+
extras.map((cell, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1562
|
+
EntityMetadataValueCell,
|
|
1563
|
+
{
|
|
1564
|
+
value: cell.value,
|
|
1565
|
+
label: cell.label,
|
|
1566
|
+
uppercase: _nullishCoalesce(cell.uppercase, () => ( true)),
|
|
1567
|
+
optional: cell.optional,
|
|
1568
|
+
className: CELL_DIVIDER_CLASS
|
|
1569
|
+
},
|
|
1570
|
+
`${cell.label}-${i}`
|
|
1571
|
+
)),
|
|
1572
|
+
showDateCell && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1573
|
+
EntityMetadataValueCell,
|
|
1574
|
+
{
|
|
1575
|
+
value: dateLabel,
|
|
1576
|
+
label: publishedLabel,
|
|
1577
|
+
uppercase: false,
|
|
1578
|
+
className: CELL_DIVIDER_CLASS
|
|
1579
|
+
}
|
|
1580
|
+
),
|
|
1581
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataAuthorCell, { author: effectiveAuthor, roleLabel, authorHref })
|
|
1582
|
+
] });
|
|
1548
1583
|
}
|
|
1549
1584
|
|
|
1550
1585
|
// src/components/chat/entity-cards/blog-image-placeholder.tsx
|
|
@@ -1552,7 +1587,7 @@ function EntityAuthorCard({
|
|
|
1552
1587
|
function BlogImagePlaceholder({ imageUrl, title, className = "" }) {
|
|
1553
1588
|
if (!imageUrl) return null;
|
|
1554
1589
|
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,
|
|
1555
|
-
|
|
1590
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
1556
1591
|
{
|
|
1557
1592
|
src: imageUrl,
|
|
1558
1593
|
alt: `Cover image for ${title}`,
|
|
@@ -1571,7 +1606,7 @@ function BlogImagePlaceholder({ imageUrl, title, className = "" }) {
|
|
|
1571
1606
|
|
|
1572
1607
|
// src/components/chat/entity-cards/content-card-frame.tsx
|
|
1573
1608
|
|
|
1574
|
-
var CONTENT_CARD_FRAME_CLASS =
|
|
1609
|
+
var CONTENT_CARD_FRAME_CLASS = _chunk65VVJSQZcjs.cn.call(void 0,
|
|
1575
1610
|
"group isolate overflow-hidden rounded-2xl",
|
|
1576
1611
|
"border border-ods-border bg-transparent",
|
|
1577
1612
|
"transition-[border-color,box-shadow] duration-300 ease-out",
|
|
@@ -1579,7 +1614,7 @@ var CONTENT_CARD_FRAME_CLASS = _chunk3ATAYP36cjs.cn.call(void 0,
|
|
|
1579
1614
|
);
|
|
1580
1615
|
var CONTENT_CARD_SKELETON_FRAME_CLASS = "overflow-hidden rounded-2xl border border-ods-border bg-transparent";
|
|
1581
1616
|
function ContentCardFrame({ as: Tag2 = "article", className, children, ...rest }) {
|
|
1582
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Tag2, { className:
|
|
1617
|
+
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 });
|
|
1583
1618
|
}
|
|
1584
1619
|
|
|
1585
1620
|
// src/components/chat/entity-cards/use-cover-image-fallback.ts
|
|
@@ -1602,6 +1637,14 @@ var hideOnError = (e) => {
|
|
|
1602
1637
|
|
|
1603
1638
|
|
|
1604
1639
|
var MIN_WIDE_RATIO = 1.3;
|
|
1640
|
+
var PORTRAIT_BODY = "flex h-full flex-col gap-6 p-6";
|
|
1641
|
+
var PORTRAIT_MEDIA = "relative flex aspect-[1200/630] w-full shrink-0 items-center justify-center overflow-hidden rounded-sm";
|
|
1642
|
+
var PORTRAIT_TITLE_ZONE = "flex h-[72px] shrink-0 flex-col justify-center gap-1.5";
|
|
1643
|
+
var PORTRAIT_TITLE_LEADING = "leading-6";
|
|
1644
|
+
var PORTRAIT_TITLE = _chunk65VVJSQZcjs.cn.call(void 0, "break-words text-ods-text-primary text-h4", PORTRAIT_TITLE_LEADING);
|
|
1645
|
+
var PORTRAIT_FOOTER = "flex h-[60px] shrink-0 items-center";
|
|
1646
|
+
var PORTRAIT_PERSON_ROW = "flex w-full min-w-0 items-center gap-3";
|
|
1647
|
+
var PORTRAIT_PERSON_TEXT = "flex min-w-0 flex-col";
|
|
1605
1648
|
function EntityPortraitCard({
|
|
1606
1649
|
href,
|
|
1607
1650
|
target,
|
|
@@ -1615,28 +1658,30 @@ function EntityPortraitCard({
|
|
|
1615
1658
|
person,
|
|
1616
1659
|
className
|
|
1617
1660
|
}) {
|
|
1661
|
+
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
1618
1662
|
const { src, onError: onMediaError } = useCoverImageFallback(imageUrl, placeholderUrl);
|
|
1619
1663
|
const [measured, setMeasured] = _react.useState.call(void 0, null);
|
|
1620
|
-
const isWide = _optionalChain([measured, 'optionalAccess',
|
|
1664
|
+
const isWide = _optionalChain([measured, 'optionalAccess', _40 => _40.src]) === src ? measured.isWide : null;
|
|
1621
1665
|
const onMediaLoad = (e) => {
|
|
1622
1666
|
const img = e.currentTarget;
|
|
1623
1667
|
if (img.naturalWidth > 0 && img.naturalHeight > 0) {
|
|
1624
1668
|
setMeasured({ src, isWide: img.naturalWidth / img.naturalHeight >= MIN_WIDE_RATIO });
|
|
1625
1669
|
}
|
|
1626
1670
|
};
|
|
1627
|
-
const edgeColor =
|
|
1628
|
-
|
|
1671
|
+
const edgeColor = _chunk3LW5TD54cjs.useImageEdgeColor.call(void 0, isWide === false ? src : null, "var(--color-bg-surface)");
|
|
1672
|
+
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel, className });
|
|
1673
|
+
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: [
|
|
1629
1674
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1630
1675
|
"div",
|
|
1631
1676
|
{
|
|
1632
|
-
className:
|
|
1677
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_MEDIA, "bg-ods-bg transition-colors duration-300"),
|
|
1633
1678
|
style: isWide === false ? { backgroundColor: edgeColor } : void 0,
|
|
1634
1679
|
children: src && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1635
|
-
|
|
1680
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
1636
1681
|
{
|
|
1637
1682
|
src,
|
|
1638
1683
|
alt: imageAlt,
|
|
1639
|
-
className:
|
|
1684
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, "h-full w-full", isWide === false ? "object-contain" : "object-cover"),
|
|
1640
1685
|
sizes: "(min-width: 800px) 400px, 100vw",
|
|
1641
1686
|
fill: true,
|
|
1642
1687
|
unoptimized: true,
|
|
@@ -1646,7 +1691,7 @@ function EntityPortraitCard({
|
|
|
1646
1691
|
)
|
|
1647
1692
|
}
|
|
1648
1693
|
),
|
|
1649
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1694
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_TITLE_ZONE, children: [
|
|
1650
1695
|
typeLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1651
1696
|
StatusBadge,
|
|
1652
1697
|
{
|
|
@@ -1657,22 +1702,12 @@ function EntityPortraitCard({
|
|
|
1657
1702
|
className: "self-start"
|
|
1658
1703
|
}
|
|
1659
1704
|
),
|
|
1660
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1661
|
-
"h3",
|
|
1662
|
-
{
|
|
1663
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
1664
|
-
"break-words leading-6 text-ods-text-primary text-h4",
|
|
1665
|
-
typeLabel ? "line-clamp-2" : "line-clamp-3",
|
|
1666
|
-
titleClassName
|
|
1667
|
-
),
|
|
1668
|
-
children: title
|
|
1669
|
-
}
|
|
1670
|
-
)
|
|
1705
|
+
/* @__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 })
|
|
1671
1706
|
] }),
|
|
1672
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
1707
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: PORTRAIT_FOOTER, children: person && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_PERSON_ROW, children: [
|
|
1673
1708
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
1674
1709
|
person.avatarUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1675
|
-
|
|
1710
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
1676
1711
|
{
|
|
1677
1712
|
src: person.avatarUrl,
|
|
1678
1713
|
alt: person.name,
|
|
@@ -1683,7 +1718,7 @@ function EntityPortraitCard({
|
|
|
1683
1718
|
}
|
|
1684
1719
|
) : /* @__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() }) }),
|
|
1685
1720
|
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,
|
|
1686
|
-
|
|
1721
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
1687
1722
|
{
|
|
1688
1723
|
src: person.iconOverlayUrl,
|
|
1689
1724
|
alt: "",
|
|
@@ -1694,13 +1729,38 @@ function EntityPortraitCard({
|
|
|
1694
1729
|
}
|
|
1695
1730
|
) })
|
|
1696
1731
|
] }),
|
|
1697
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1732
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_PERSON_TEXT, children: [
|
|
1698
1733
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate font-bold text-ods-text-primary text-h6", children: person.name }),
|
|
1699
1734
|
person.subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: person.subtitle })
|
|
1700
1735
|
] })
|
|
1701
1736
|
] }) })
|
|
1702
1737
|
] }) });
|
|
1703
1738
|
}
|
|
1739
|
+
function EntityPortraitCardSkeleton({ typeLabel, className }) {
|
|
1740
|
+
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: [
|
|
1741
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_MEDIA, "rounded-sm") }),
|
|
1742
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_TITLE_ZONE, children: [
|
|
1743
|
+
typeLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1744
|
+
StatusBadge,
|
|
1745
|
+
{
|
|
1746
|
+
variant: "button",
|
|
1747
|
+
colorScheme: "accentBorder",
|
|
1748
|
+
singleLine: true,
|
|
1749
|
+
text: typeLabel,
|
|
1750
|
+
className: "self-start"
|
|
1751
|
+
}
|
|
1752
|
+
),
|
|
1753
|
+
/* @__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) })
|
|
1754
|
+
] }),
|
|
1755
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: PORTRAIT_FOOTER, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: PORTRAIT_PERSON_ROW, children: [
|
|
1756
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.MediaSkeleton.Avatar, { size: "md", className: "shrink-0" }),
|
|
1757
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, PORTRAIT_PERSON_TEXT, "gap-0"), children: [
|
|
1758
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-32" }),
|
|
1759
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-24" })
|
|
1760
|
+
] })
|
|
1761
|
+
] }) })
|
|
1762
|
+
] }) });
|
|
1763
|
+
}
|
|
1704
1764
|
|
|
1705
1765
|
// src/components/features/platform-badge.tsx
|
|
1706
1766
|
|
|
@@ -1721,17 +1781,21 @@ var sizeClasses = {
|
|
|
1721
1781
|
text: "text-h6"
|
|
1722
1782
|
}
|
|
1723
1783
|
};
|
|
1784
|
+
var PLATFORM_BADGE_FRAME_CLASS = "inline-flex items-center rounded-full border";
|
|
1724
1785
|
function PlatformBadge({ platform, size = "sm", showLabel = true, className }) {
|
|
1786
|
+
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, ) && !platform) {
|
|
1787
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PlatformBadgeSkeleton, { size, showLabel, className });
|
|
1788
|
+
}
|
|
1725
1789
|
if (!platform) {
|
|
1726
1790
|
return null;
|
|
1727
1791
|
}
|
|
1728
1792
|
const sizes = sizeClasses[size];
|
|
1729
|
-
const colors =
|
|
1793
|
+
const colors = _chunk5P4TDV7Vcjs.getPlatformBrandClasses.call(void 0, platform.name);
|
|
1730
1794
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1731
1795
|
"div",
|
|
1732
1796
|
{
|
|
1733
|
-
className:
|
|
1734
|
-
|
|
1797
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
1798
|
+
PLATFORM_BADGE_FRAME_CLASS,
|
|
1735
1799
|
sizes.container,
|
|
1736
1800
|
colors.accentBgSoft,
|
|
1737
1801
|
colors.accentBorderSoft,
|
|
@@ -1740,16 +1804,47 @@ function PlatformBadge({ platform, size = "sm", showLabel = true, className }) {
|
|
|
1740
1804
|
className
|
|
1741
1805
|
),
|
|
1742
1806
|
children: [
|
|
1743
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1807
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5P4TDV7Vcjs.PlatformMark, { platform: platform.name, className: sizes.icon }),
|
|
1744
1808
|
showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: sizes.text, children: platform.display_name || platform.name })
|
|
1745
1809
|
]
|
|
1746
1810
|
}
|
|
1747
1811
|
);
|
|
1748
1812
|
}
|
|
1813
|
+
var PLATFORM_BADGE_SKELETON_SIZE = {
|
|
1814
|
+
xs: { height: "h-[calc(max(1lh,0.75rem)+0.25rem+2px)]", width: "w-20", iconOnly: "w-[calc(0.75rem+0.75rem+2px)]" },
|
|
1815
|
+
sm: { height: "h-[calc(max(1lh,1rem)+0.5rem+2px)]", width: "w-24", iconOnly: "w-[calc(1rem+1rem+2px)]" },
|
|
1816
|
+
md: { height: "h-[calc(max(1lh,1.25rem)+0.75rem+2px)]", width: "w-28", iconOnly: "w-[calc(1.25rem+1.25rem+2px)]" }
|
|
1817
|
+
};
|
|
1818
|
+
function PlatformBadgeSkeleton({
|
|
1819
|
+
size = "sm",
|
|
1820
|
+
showLabel = true,
|
|
1821
|
+
className
|
|
1822
|
+
}) {
|
|
1823
|
+
const box = PLATFORM_BADGE_SKELETON_SIZE[size];
|
|
1824
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1825
|
+
_chunkXFRBEXQNcjs.UnifiedSkeleton,
|
|
1826
|
+
{
|
|
1827
|
+
as: "span",
|
|
1828
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
1829
|
+
"inline-block rounded-full align-middle text-h6",
|
|
1830
|
+
box.height,
|
|
1831
|
+
showLabel ? box.width : box.iconOnly,
|
|
1832
|
+
className
|
|
1833
|
+
)
|
|
1834
|
+
}
|
|
1835
|
+
);
|
|
1836
|
+
}
|
|
1749
1837
|
|
|
1750
1838
|
// src/components/chat/entity-cards/admin-content-card.tsx
|
|
1751
1839
|
|
|
1752
1840
|
|
|
1841
|
+
var ADMIN_CARD_FRAME = "flex h-full flex-col";
|
|
1842
|
+
var ADMIN_CARD_COVER = `relative ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.photo} w-full shrink-0 overflow-hidden`;
|
|
1843
|
+
var ADMIN_CARD_BODY = "flex flex-1 flex-col gap-3 p-5";
|
|
1844
|
+
var ADMIN_CARD_BADGES = "flex flex-wrap items-center gap-2";
|
|
1845
|
+
var ADMIN_CARD_BADGES_RESERVED = "min-h-7";
|
|
1846
|
+
var ADMIN_CARD_META = "flex items-center gap-3 text-ods-text-secondary text-h6";
|
|
1847
|
+
var ADMIN_CARD_ACTIONS = "mt-auto flex items-center justify-between border-t border-ods-border pt-3";
|
|
1753
1848
|
function AdminContentCard({
|
|
1754
1849
|
imageUrl,
|
|
1755
1850
|
placeholderUrl,
|
|
@@ -1768,18 +1863,21 @@ function AdminContentCard({
|
|
|
1768
1863
|
const [loadedUrl, setLoadedUrl] = _react.useState.call(void 0, null);
|
|
1769
1864
|
const displayUrl = imageUrl && !imageError ? imageUrl : placeholderUrl;
|
|
1770
1865
|
const imageLoaded = Boolean(displayUrl) && loadedUrl === displayUrl;
|
|
1771
|
-
const imageBgColor =
|
|
1772
|
-
|
|
1773
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1774
|
-
|
|
1866
|
+
const imageBgColor = _chunk3LW5TD54cjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
|
|
1867
|
+
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
|
|
1868
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AdminContentCardSkeleton, { className, subtitleRow, actions: actions ? actions : false });
|
|
1869
|
+
}
|
|
1870
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, ADMIN_CARD_FRAME, className), children: [
|
|
1871
|
+
/* @__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: [
|
|
1872
|
+
!imageLoaded && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: "absolute inset-0 h-full rounded-none" }),
|
|
1775
1873
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1776
|
-
|
|
1874
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
1777
1875
|
{
|
|
1778
1876
|
src: displayUrl,
|
|
1779
1877
|
alt: title,
|
|
1780
1878
|
fill: true,
|
|
1781
1879
|
sizes: "(min-width: 1280px) 33vw, (min-width: 768px) 50vw, 100vw",
|
|
1782
|
-
className:
|
|
1880
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
1783
1881
|
"object-contain object-center",
|
|
1784
1882
|
"transition-transform duration-500 ease-out",
|
|
1785
1883
|
"group-hover:scale-[1.03]",
|
|
@@ -1791,12 +1889,12 @@ function AdminContentCard({
|
|
|
1791
1889
|
}
|
|
1792
1890
|
)
|
|
1793
1891
|
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 bg-ods-bg" }) }),
|
|
1794
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
1795
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className:
|
|
1796
|
-
(subtitle || reserveRows && subtitleRow) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className:
|
|
1797
|
-
(summary || reserveRows) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className:
|
|
1798
|
-
(Number(_optionalChain([platforms, 'optionalAccess',
|
|
1799
|
-
_optionalChain([platforms, 'optionalAccess',
|
|
1892
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ADMIN_CARD_BODY, children: [
|
|
1893
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunk65VVJSQZcjs.cn.call(void 0, "line-clamp-2 break-words text-ods-text-primary text-h3", reserveRows && "min-h-[2lh]"), children: title }),
|
|
1894
|
+
(subtitle || reserveRows && subtitleRow) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk65VVJSQZcjs.cn.call(void 0, "truncate text-ods-text-secondary text-h6", reserveRows && "min-h-[1lh]"), children: subtitle }),
|
|
1895
|
+
(summary || reserveRows) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk65VVJSQZcjs.cn.call(void 0, "line-clamp-2 text-ods-text-secondary text-h6", reserveRows && "min-h-[2lh]"), children: summary }),
|
|
1896
|
+
(Number(_optionalChain([platforms, 'optionalAccess', _41 => _41.length])) > 0 || badges || reserveRows) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, ADMIN_CARD_BADGES, reserveRows && ADMIN_CARD_BADGES_RESERVED), children: [
|
|
1897
|
+
_optionalChain([platforms, 'optionalAccess', _42 => _42.map, 'call', _43 => _43((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1800
1898
|
PlatformBadge,
|
|
1801
1899
|
{
|
|
1802
1900
|
platform: { id: p.id || p.platform_id || "", name: p.name, display_name: p.display_name || p.name },
|
|
@@ -1806,8 +1904,37 @@ function AdminContentCard({
|
|
|
1806
1904
|
))]),
|
|
1807
1905
|
badges
|
|
1808
1906
|
] }),
|
|
1809
|
-
(meta || reserveRows) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
1810
|
-
actions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
1907
|
+
(meta || reserveRows) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, ADMIN_CARD_META, reserveRows && "min-h-[1lh]"), children: meta }),
|
|
1908
|
+
actions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ADMIN_CARD_ACTIONS, children: actions })
|
|
1909
|
+
] })
|
|
1910
|
+
] });
|
|
1911
|
+
}
|
|
1912
|
+
function AdminContentCardSkeleton({
|
|
1913
|
+
className,
|
|
1914
|
+
actions = true,
|
|
1915
|
+
subtitleRow = true
|
|
1916
|
+
}) {
|
|
1917
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, ADMIN_CARD_FRAME, className), "aria-hidden": true, children: [
|
|
1918
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, ADMIN_CARD_COVER, "rounded-none") }),
|
|
1919
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ADMIN_CARD_BODY, children: [
|
|
1920
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-full" }),
|
|
1921
|
+
subtitleRow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-1/2" }),
|
|
1922
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-full" }),
|
|
1923
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, ADMIN_CARD_BADGES, ADMIN_CARD_BADGES_RESERVED), children: [
|
|
1924
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PlatformBadgeSkeleton, { size: "xs" }),
|
|
1925
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PlatformBadgeSkeleton, { size: "xs" })
|
|
1926
|
+
] }),
|
|
1927
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ADMIN_CARD_META, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-32" }) }),
|
|
1928
|
+
actions === true ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ADMIN_CARD_ACTIONS, children: [
|
|
1929
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.InteractiveSkeleton.Button, { size: "small-legacy" }),
|
|
1930
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-[var(--spacing-system-xsf)]", children: [
|
|
1931
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.InteractiveSkeleton.Button, { size: "small-legacy", className: "w-20" }),
|
|
1932
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.InteractiveSkeleton.Button, { size: "small-legacy", className: "w-20" })
|
|
1933
|
+
] })
|
|
1934
|
+
] }) : actions ? (
|
|
1935
|
+
// The caller's own controls, drawn as they are but never focused while the card is a skeleton.
|
|
1936
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ADMIN_CARD_ACTIONS, inert: true, children: actions })
|
|
1937
|
+
) : null
|
|
1811
1938
|
] })
|
|
1812
1939
|
] });
|
|
1813
1940
|
}
|
|
@@ -1849,7 +1976,7 @@ var SENTENCE_MARK = /([.:?!]+)(?=\s|$)/g;
|
|
|
1849
1976
|
var ONLY_MARKS = /^\s*[.:?!]+\s*$/;
|
|
1850
1977
|
function headingAccentClass(platform, tone = "accent") {
|
|
1851
1978
|
if (!platform) return "text-ods-accent";
|
|
1852
|
-
const classes =
|
|
1979
|
+
const classes = _chunk5P4TDV7Vcjs.getPlatformBrandClasses.call(void 0, platform);
|
|
1853
1980
|
return tone === "secondary" ? classes.secondaryText : classes.accentText;
|
|
1854
1981
|
}
|
|
1855
1982
|
function accentSentenceMarks(node, platform, tone = "accent") {
|
|
@@ -1895,6 +2022,14 @@ var SECTION_HEADING_LAYOUT = {
|
|
|
1895
2022
|
intro: "text-h4 text-ods-text-secondary"
|
|
1896
2023
|
}
|
|
1897
2024
|
};
|
|
2025
|
+
function SectionEyebrow({
|
|
2026
|
+
children,
|
|
2027
|
+
platform,
|
|
2028
|
+
tone = "accent",
|
|
2029
|
+
className
|
|
2030
|
+
}) {
|
|
2031
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: ["text-h5", headingAccentClass(platform, tone), className].filter(Boolean).join(" "), children });
|
|
2032
|
+
}
|
|
1898
2033
|
function SectionHeading({
|
|
1899
2034
|
eyebrow,
|
|
1900
2035
|
title,
|
|
@@ -1910,7 +2045,7 @@ function SectionHeading({
|
|
|
1910
2045
|
const accentClassName = headingAccentClass(platform, tone);
|
|
1911
2046
|
const layout = SECTION_HEADING_LAYOUT[level];
|
|
1912
2047
|
const Tag2 = presentational ? "div" : level === "page" ? "h1" : "h2";
|
|
1913
|
-
const eyebrowNode = eyebrow ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2048
|
+
const eyebrowNode = eyebrow ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SectionEyebrow, { platform, tone, children: eyebrow }) : null;
|
|
1914
2049
|
const headingText = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1915
2050
|
accentSentenceMarks(title, platform, tone),
|
|
1916
2051
|
punctuation ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: accentClassName, children: punctuation }) : null
|
|
@@ -1941,11 +2076,43 @@ function SectionHeading({
|
|
|
1941
2076
|
}
|
|
1942
2077
|
);
|
|
1943
2078
|
}
|
|
2079
|
+
function SectionHeadingSkeleton({
|
|
2080
|
+
level = "section",
|
|
2081
|
+
eyebrow,
|
|
2082
|
+
titleWidth = "w-2/3",
|
|
2083
|
+
intro,
|
|
2084
|
+
action,
|
|
2085
|
+
platform,
|
|
2086
|
+
tone = "accent",
|
|
2087
|
+
className
|
|
2088
|
+
}) {
|
|
2089
|
+
const layout = SECTION_HEADING_LAYOUT[level];
|
|
2090
|
+
const introLines = intro === true ? 2 : intro || 0;
|
|
2091
|
+
const stack = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: layout.stack, "aria-hidden": true, children: [
|
|
2092
|
+
eyebrow ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SectionEyebrow, { platform, tone, children: eyebrow }) : null,
|
|
2093
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: layout.heading, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", className: titleWidth }) }),
|
|
2094
|
+
introLines > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: layout.intro, children: Array.from({ length: introLines }, (_, i) => (
|
|
2095
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: skeleton lines never reorder
|
|
2096
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", className: i === introLines - 1 && introLines > 1 ? "w-2/3" : "w-full" }, i)
|
|
2097
|
+
)) }) : null
|
|
2098
|
+
] });
|
|
2099
|
+
if (!action) return className ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: stack }) : stack;
|
|
2100
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2101
|
+
"div",
|
|
2102
|
+
{
|
|
2103
|
+
className: `flex flex-wrap items-end justify-between gap-[var(--spacing-system-mf)]${className ? ` ${className}` : ""}`,
|
|
2104
|
+
children: [
|
|
2105
|
+
stack,
|
|
2106
|
+
action
|
|
2107
|
+
]
|
|
2108
|
+
}
|
|
2109
|
+
);
|
|
2110
|
+
}
|
|
1944
2111
|
|
|
1945
2112
|
// src/components/features/video-bites-shared.ts
|
|
1946
2113
|
var DEFAULT_VIDEO_BITES_TITLE = "Key Moments";
|
|
1947
2114
|
function toStripProfile(p, fallbackSubtitle) {
|
|
1948
|
-
if (!_optionalChain([p, 'optionalAccess',
|
|
2115
|
+
if (!_optionalChain([p, 'optionalAccess', _44 => _44.full_name])) return null;
|
|
1949
2116
|
return {
|
|
1950
2117
|
name: p.full_name,
|
|
1951
2118
|
avatarUrl: _nullishCoalesce(p.avatar_url, () => ( null)),
|
|
@@ -1967,8 +2134,8 @@ function sortBitesByFeaturedAtDesc(a, b) {
|
|
|
1967
2134
|
function programItemToStripProfile(item) {
|
|
1968
2135
|
const fromAuthor = toStripProfile(item.author);
|
|
1969
2136
|
if (fromAuthor) return fromAuthor;
|
|
1970
|
-
const host = _nullishCoalesce(_optionalChain([item, 'access',
|
|
1971
|
-
if (!_optionalChain([host, 'optionalAccess',
|
|
2137
|
+
const host = _nullishCoalesce(_optionalChain([item, 'access', _45 => _45.hosts, 'optionalAccess', _46 => _46[0]]), () => ( null));
|
|
2138
|
+
if (!_optionalChain([host, 'optionalAccess', _47 => _47.name])) return null;
|
|
1972
2139
|
return toStripProfile({ full_name: host.name, avatar_url: _nullishCoalesce(host.avatar_url, () => ( null)) });
|
|
1973
2140
|
}
|
|
1974
2141
|
|
|
@@ -1997,7 +2164,7 @@ function VideoHoverPreviewSurface({
|
|
|
1997
2164
|
onEnded,
|
|
1998
2165
|
className
|
|
1999
2166
|
}) {
|
|
2000
|
-
const previewUrl =
|
|
2167
|
+
const previewUrl = _chunkSETFUCZAcjs.toMuxPreviewUrl.call(void 0, url);
|
|
2001
2168
|
const gateControlled = playerMounted !== void 0;
|
|
2002
2169
|
const rootElRef = _react.useRef.call(void 0, null);
|
|
2003
2170
|
const [isNear, setIsNear] = _react.useState.call(void 0, false);
|
|
@@ -2005,7 +2172,7 @@ function VideoHoverPreviewSurface({
|
|
|
2005
2172
|
if (gateControlled) return void 0;
|
|
2006
2173
|
const el = rootElRef.current;
|
|
2007
2174
|
if (!el || typeof IntersectionObserver === "undefined") return void 0;
|
|
2008
|
-
const io = new IntersectionObserver((entries) => setIsNear(_nullishCoalesce(_optionalChain([entries, 'access',
|
|
2175
|
+
const io = new IntersectionObserver((entries) => setIsNear(_nullishCoalesce(_optionalChain([entries, 'access', _48 => _48[0], 'optionalAccess', _49 => _49.isIntersecting]), () => ( false))), {
|
|
2009
2176
|
rootMargin: _chunkCW3ML76Ucjs.NEAR_VIEWPORT_ROOT_MARGIN
|
|
2010
2177
|
});
|
|
2011
2178
|
io.observe(el);
|
|
@@ -2014,9 +2181,9 @@ function VideoHoverPreviewSurface({
|
|
|
2014
2181
|
const showMedia = continuation || (gateControlled ? playerMounted : isNear);
|
|
2015
2182
|
const { src: posterSrc, onError: onPosterError } = useCoverImageFallback(posterUrl);
|
|
2016
2183
|
const facadeSkipped = preload === "none" && !posterSrc;
|
|
2017
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rootElRef, className:
|
|
2184
|
+
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: [
|
|
2018
2185
|
posterSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2019
|
-
|
|
2186
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
2020
2187
|
{
|
|
2021
2188
|
src: posterSrc,
|
|
2022
2189
|
alt: "",
|
|
@@ -2028,7 +2195,7 @@ function VideoHoverPreviewSurface({
|
|
|
2028
2195
|
className: "object-cover"
|
|
2029
2196
|
}
|
|
2030
2197
|
) : 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 }),
|
|
2031
|
-
badge === "play" && !active && !continuation && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2198
|
+
badge === "play" && !active && !continuation && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.VideoPlayBadge, { className: "absolute inset-0 z-10 m-auto" }),
|
|
2032
2199
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2033
2200
|
"div",
|
|
2034
2201
|
{
|
|
@@ -2063,275 +2230,46 @@ function VideoHoverPreviewSurface({
|
|
|
2063
2230
|
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 bg-ods-card" }) });
|
|
2064
2231
|
}
|
|
2065
2232
|
|
|
2066
|
-
// src/components/shared/product-release/product-release-card.
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
changelogCounts
|
|
2086
|
-
}) {
|
|
2087
|
-
if (size === "lg") {
|
|
2088
|
-
const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _44 => _44.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _45 => _45.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _46 => _46.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _47 => _47.breaking]), () => ( 0)));
|
|
2089
|
-
const valueCells = [
|
|
2090
|
-
releaseType && releaseTypeBadgeColor ? {
|
|
2091
|
-
value: releaseType.toUpperCase(),
|
|
2092
|
-
label: "Type",
|
|
2093
|
-
uppercase: true,
|
|
2094
|
-
colorScheme: releaseTypeBadgeColor
|
|
2095
|
-
} : { value: "\u2014", label: "Type", uppercase: false },
|
|
2096
|
-
releaseStatus ? {
|
|
2097
|
-
value: releaseStatus.toUpperCase(),
|
|
2098
|
-
label: "Status",
|
|
2099
|
-
uppercase: true
|
|
2100
|
-
} : { value: "\u2014", label: "Status", uppercase: false },
|
|
2101
|
-
formattedDate ? {
|
|
2102
|
-
value: formattedDate,
|
|
2103
|
-
label: "Released",
|
|
2104
|
-
uppercase: false
|
|
2105
|
-
} : { value: "\u2014", label: "Released", uppercase: false }
|
|
2106
|
-
];
|
|
2107
|
-
const effectiveAuthor = _optionalChain([author, 'optionalAccess', _48 => _48.full_name]) ? author : { full_name: "\u2014", avatar_url: null, job_title: "Unknown" };
|
|
2108
|
-
const gridColsClass = "content-md:grid-cols-4";
|
|
2109
|
-
const dividerClass = "border-b content-md:border-b-0 content-md:border-r border-ods-border";
|
|
2110
|
-
const interactive = !!anchorProps || !!onClick;
|
|
2111
|
-
const frameClass = _chunk3ATAYP36cjs.cn.call(void 0,
|
|
2112
|
-
interactive ? CONTENT_CARD_FRAME_CLASS : CONTENT_CARD_SKELETON_FRAME_CLASS,
|
|
2113
|
-
"flex flex-col gap-4 p-6",
|
|
2114
|
-
"focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-2 focus-visible:ring-offset-ods-bg",
|
|
2115
|
-
"no-underline",
|
|
2116
|
-
className
|
|
2117
|
-
);
|
|
2118
|
-
const innerLayout = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
2119
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 content-md:flex-row content-md:gap-6", children: [
|
|
2120
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full flex-shrink-0 content-md:w-[256px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative aspect-[1200/630] w-full overflow-hidden rounded-lg bg-ods-bg", children: [
|
|
2121
|
-
coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2122
|
-
_chunkHOTM4UM6cjs.next_image_default,
|
|
2123
|
-
{
|
|
2124
|
-
src: coverImage,
|
|
2125
|
-
alt: title,
|
|
2126
|
-
fill: true,
|
|
2127
|
-
sizes: "(max-width: 768px) 100vw, 256px",
|
|
2128
|
-
className: "object-cover",
|
|
2129
|
-
unoptimized: true
|
|
2130
|
-
}
|
|
2131
|
-
) : /* @__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" }) }),
|
|
2132
|
-
hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63N4FN5Vcjs.CardHoverPlay, { size: "md" })
|
|
2133
|
-
] }) }),
|
|
2134
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
2135
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex items-center gap-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "truncate font-semibold text-ods-text-primary text-code", children: [
|
|
2136
|
-
"v",
|
|
2137
|
-
version
|
|
2138
|
-
] }) }),
|
|
2139
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex min-h-[60px] items-start content-md:min-h-[72px]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 font-['Azeret_Mono'] text-xl font-semibold leading-tight text-ods-text-primary content-md:text-2xl", children: title }) }),
|
|
2140
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[68px] content-md:min-h-[78px]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 font-['DM_Sans'] text-sm leading-relaxed text-ods-text-secondary content-md:text-base", children: _nullishCoalesce(summary, () => ( "")) }) })
|
|
2141
|
-
] })
|
|
2142
|
-
] }),
|
|
2143
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap items-center gap-x-4 gap-y-1.5 border-t border-ods-border pt-3 text-ods-text-secondary text-h6", children: totalChangelog > 0 && changelogCounts ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
2144
|
-
changelogCounts.features > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5", children: [
|
|
2145
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "h-3.5 w-3.5" }),
|
|
2146
|
-
changelogCounts.features,
|
|
2147
|
-
" ",
|
|
2148
|
-
changelogCounts.features === 1 ? "feature" : "features"
|
|
2149
|
-
] }),
|
|
2150
|
-
changelogCounts.fixes > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5", children: [
|
|
2151
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wrench, { className: "h-3.5 w-3.5" }),
|
|
2152
|
-
changelogCounts.fixes,
|
|
2153
|
-
" ",
|
|
2154
|
-
changelogCounts.fixes === 1 ? "fix" : "fixes"
|
|
2155
|
-
] }),
|
|
2156
|
-
changelogCounts.improvements > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5", children: [
|
|
2157
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TrendingUp, { className: "h-3.5 w-3.5" }),
|
|
2158
|
-
changelogCounts.improvements,
|
|
2159
|
-
" ",
|
|
2160
|
-
changelogCounts.improvements === 1 ? "improvement" : "improvements"
|
|
2161
|
-
] }),
|
|
2162
|
-
changelogCounts.breaking > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5 text-ods-warning", children: [
|
|
2163
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "h-3.5 w-3.5" }),
|
|
2164
|
-
changelogCounts.breaking,
|
|
2165
|
-
" breaking"
|
|
2166
|
-
] })
|
|
2167
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary", children: "No changelog entries yet" }) }),
|
|
2168
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2169
|
-
"div",
|
|
2170
|
-
{
|
|
2171
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
2172
|
-
"grid grid-cols-1",
|
|
2173
|
-
gridColsClass,
|
|
2174
|
-
"w-full overflow-hidden rounded-md border border-ods-border"
|
|
2175
|
-
),
|
|
2176
|
-
children: [
|
|
2177
|
-
valueCells.map((cell, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex flex-col gap-3 p-4", dividerClass), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
|
|
2178
|
-
cell.colorScheme ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2179
|
-
StatusBadge,
|
|
2180
|
-
{
|
|
2181
|
-
text: cell.value,
|
|
2182
|
-
variant: "card",
|
|
2183
|
-
colorScheme: cell.colorScheme,
|
|
2184
|
-
singleLine: true,
|
|
2185
|
-
className: "self-start"
|
|
2186
|
-
}
|
|
2187
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2188
|
-
"p",
|
|
2189
|
-
{
|
|
2190
|
-
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
2191
|
-
"text-h4",
|
|
2192
|
-
// Em-dash placeholder reads as secondary text;
|
|
2193
|
-
// populated values stay primary.
|
|
2194
|
-
cell.value === "\u2014" ? "text-ods-text-secondary" : "text-ods-text-primary"
|
|
2195
|
-
),
|
|
2196
|
-
children: cell.uppercase ? cell.value.toLocaleUpperCase() : cell.value
|
|
2197
|
-
}
|
|
2198
|
-
),
|
|
2199
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: cell.label })
|
|
2200
|
-
] }) }, `${cell.label}-${i}`)),
|
|
2201
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 p-4", children: [
|
|
2202
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2203
|
-
_chunkEQZXJUYVcjs.SquareAvatar,
|
|
2204
|
-
{
|
|
2205
|
-
src: _nullishCoalesce(effectiveAuthor.avatar_url, () => ( void 0)),
|
|
2206
|
-
alt: effectiveAuthor.full_name,
|
|
2207
|
-
fallback: effectiveAuthor.full_name.charAt(0).toUpperCase(),
|
|
2208
|
-
size: "md",
|
|
2209
|
-
variant: "round"
|
|
2210
|
-
}
|
|
2211
|
-
),
|
|
2212
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-0", children: [
|
|
2213
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate tracking-[-0.36px] text-ods-text-primary text-h3", children: effectiveAuthor.full_name }),
|
|
2214
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: effectiveAuthor.job_title || "Author" })
|
|
2215
|
-
] })
|
|
2216
|
-
] })
|
|
2217
|
-
]
|
|
2218
|
-
}
|
|
2219
|
-
),
|
|
2220
|
-
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: [
|
|
2221
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Eye, { className: "h-3.5 w-3.5" }),
|
|
2222
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
|
|
2223
|
-
viewCount.toLocaleString(),
|
|
2224
|
-
" views"
|
|
2225
|
-
] })
|
|
2226
|
-
] })
|
|
2227
|
-
] });
|
|
2228
|
-
if (anchorProps) {
|
|
2229
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { ...anchorProps, className: frameClass, children: innerLayout });
|
|
2230
|
-
}
|
|
2231
|
-
if (onClick) {
|
|
2232
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveCard, { clickable: true, onClick, className: frameClass, children: innerLayout });
|
|
2233
|
-
}
|
|
2234
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: frameClass, children: innerLayout });
|
|
2235
|
-
}
|
|
2236
|
-
if (size === "sm") {
|
|
2237
|
-
const handleKey = (e) => {
|
|
2238
|
-
if (!onClick) return;
|
|
2239
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
2240
|
-
e.preventDefault();
|
|
2241
|
-
onClick();
|
|
2242
|
-
}
|
|
2243
|
-
};
|
|
2244
|
-
const isInteractive = !!anchorProps || !!onClick;
|
|
2245
|
-
const outerClassName = _chunk3ATAYP36cjs.cn.call(void 0,
|
|
2246
|
-
// The base frame (`my-1.5 flex … no-underline`) mirrors the
|
|
2247
|
-
// hub's `COMPACT_CARD_OUTER` in `components/shared/compact-
|
|
2248
|
-
// card/compact-card-classes.ts` byte-for-byte. The OSS lib
|
|
2249
|
-
// can't import from the consumer, so the two strings are
|
|
2250
|
-
// kept identical by hand — if you edit one, edit the other.
|
|
2251
|
-
//
|
|
2252
|
-
// The interactive branch ADDS `cursor-pointer` + a focus-
|
|
2253
|
-
// visible ring. The `<Link>` form would normally get focus styling
|
|
2254
|
-
// from the browser, but `no-underline` strips the default
|
|
2255
|
-
// affordance, so explicit ring styles match the `<span role>` form.
|
|
2256
|
-
"my-1.5 flex w-full items-start gap-3 p-2",
|
|
2257
|
-
"rounded-lg border border-ods-border bg-ods-card no-underline",
|
|
2258
|
-
// The play mark on a video cover shows on the card's hover.
|
|
2259
|
-
"group",
|
|
2260
|
-
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",
|
|
2261
|
-
className
|
|
2262
|
-
);
|
|
2263
|
-
const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
2264
|
-
/* @__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: [
|
|
2265
|
-
coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHOTM4UM6cjs.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" }),
|
|
2266
|
-
hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63N4FN5Vcjs.CardHoverPlay, { size: "sm" })
|
|
2267
|
-
] }),
|
|
2268
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-h-14 min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
2269
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex h-5 min-w-0 items-center gap-2", children: [
|
|
2270
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate font-semibold text-ods-text-primary text-h6", title, children: title }),
|
|
2271
|
-
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
|
|
2272
|
-
] }),
|
|
2273
|
-
/* @__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" }) }),
|
|
2274
|
-
/* @__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" }) })
|
|
2275
|
-
] })
|
|
2276
|
-
] });
|
|
2277
|
-
if (anchorProps) {
|
|
2278
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { ...anchorProps, className: outerClassName, children: innerChildren });
|
|
2279
|
-
}
|
|
2280
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2281
|
-
"span",
|
|
2282
|
-
{
|
|
2283
|
-
role: onClick ? "button" : void 0,
|
|
2284
|
-
tabIndex: onClick ? 0 : void 0,
|
|
2285
|
-
onClick,
|
|
2286
|
-
onKeyDown: onClick ? handleKey : void 0,
|
|
2287
|
-
className: outerClassName,
|
|
2288
|
-
children: innerChildren
|
|
2289
|
-
}
|
|
2290
|
-
);
|
|
2291
|
-
}
|
|
2292
|
-
throw new Error(`ProductReleaseCard: unsupported size '${size}'`);
|
|
2293
|
-
}
|
|
2233
|
+
// src/components/shared/product-release/product-release-card-classes.ts
|
|
2234
|
+
var RELEASE_CARD_LG_FRAME_CLASS = "flex flex-col gap-4 p-6";
|
|
2235
|
+
var RELEASE_CARD_HERO_CLASS = "flex flex-col gap-4 content-md:flex-row content-md:gap-6";
|
|
2236
|
+
var RELEASE_CARD_COVER_COLUMN_CLASS = "w-full flex-shrink-0 content-md:w-[256px]";
|
|
2237
|
+
var RELEASE_CARD_COVER_BOX_CLASS = `relative ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.og} w-full overflow-hidden rounded-lg`;
|
|
2238
|
+
var RELEASE_CARD_TEXT_COLUMN_CLASS = "flex min-w-0 flex-1 flex-col";
|
|
2239
|
+
var RELEASE_CARD_VERSION_ROW_CLASS = "mb-3 flex items-center gap-3";
|
|
2240
|
+
var RELEASE_CARD_VERSION_CLASS = "truncate font-semibold text-ods-text-primary text-code";
|
|
2241
|
+
var RELEASE_CARD_TITLE_BOX_CLASS = "mb-3 flex min-h-[2lh] items-start text-h2";
|
|
2242
|
+
var RELEASE_CARD_TITLE_CLASS = "line-clamp-2 text-h2 text-ods-text-primary";
|
|
2243
|
+
var RELEASE_CARD_SUMMARY_BOX_CLASS = "min-h-[3lh] text-h4";
|
|
2244
|
+
var RELEASE_CARD_SUMMARY_CLASS = "line-clamp-3 text-h4 text-ods-text-secondary";
|
|
2245
|
+
var RELEASE_CARD_CHANGELOG_CLASS = "flex flex-wrap items-center gap-x-4 gap-y-1.5 border-t border-ods-border pt-3 text-ods-text-secondary text-h6";
|
|
2246
|
+
var RELEASE_CARD_GRID_CLASS = "grid grid-cols-1 content-md:grid-cols-4 w-full overflow-hidden rounded-md border border-ods-border";
|
|
2247
|
+
var RELEASE_CARD_CELL_DIVIDER_CLASS = "border-b content-md:border-b-0 content-md:border-r border-ods-border";
|
|
2248
|
+
var RELEASE_CARD_CELL_CLASS = "flex flex-col gap-3 p-4";
|
|
2249
|
+
var RELEASE_CARD_CELL_STACK_CLASS = "grid grid-cols-1 gap-0";
|
|
2250
|
+
var RELEASE_CARD_CELL_LABEL_CLASS = "text-ods-text-secondary text-h6";
|
|
2251
|
+
var RELEASE_CARD_CELL_LABELS = ["Type", "Status", "Released"];
|
|
2294
2252
|
|
|
2295
2253
|
// src/components/shared/product-release/product-release-card-skeleton.tsx
|
|
2296
2254
|
|
|
2297
2255
|
function ProductReleaseCardSkeleton({ className, size = "lg" }) {
|
|
2298
2256
|
if (size === "lg") {
|
|
2299
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2300
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2301
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2302
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2303
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2304
|
-
/* @__PURE__ */ _jsxruntime.
|
|
2305
|
-
|
|
2306
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-[25px] w-1/2 rounded content-md:h-[30px]" })
|
|
2307
|
-
] }),
|
|
2308
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-[68px] flex-col justify-start gap-2 content-md:min-h-[78px]", children: [
|
|
2309
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-full rounded" }),
|
|
2310
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-11/12 rounded" }),
|
|
2311
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-5/6 rounded" })
|
|
2312
|
-
] })
|
|
2257
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, RELEASE_CARD_LG_FRAME_CLASS, className), "aria-hidden": true, children: [
|
|
2258
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_HERO_CLASS, children: [
|
|
2259
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_COVER_COLUMN_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: RELEASE_CARD_COVER_BOX_CLASS }) }),
|
|
2260
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_TEXT_COLUMN_CLASS, children: [
|
|
2261
|
+
/* @__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, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-16" }) }) }),
|
|
2262
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: RELEASE_CARD_TITLE_BOX_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunk65VVJSQZcjs.cn.call(void 0, RELEASE_CARD_TITLE_CLASS, "w-full"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", lines: 2, className: "w-3/4" }) }) }),
|
|
2263
|
+
/* @__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, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", lines: 3, className: "w-full" }) }) })
|
|
2313
2264
|
] })
|
|
2314
2265
|
] }),
|
|
2315
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "
|
|
2316
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2317
|
-
|
|
2318
|
-
"
|
|
2319
|
-
{
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-7 w-24 rounded" }),
|
|
2323
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-16 rounded" })
|
|
2324
|
-
] })
|
|
2325
|
-
},
|
|
2326
|
-
`cell-${i}`
|
|
2327
|
-
)),
|
|
2328
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 p-4", children: [
|
|
2329
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-10 w-10 shrink-0 rounded-full" }),
|
|
2330
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
|
|
2331
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-5 w-3/4 rounded" }),
|
|
2332
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-1/2 rounded" })
|
|
2333
|
-
] })
|
|
2334
|
-
] })
|
|
2266
|
+
/* @__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, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-24" }) }) }),
|
|
2267
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: RELEASE_CARD_GRID_CLASS, children: [
|
|
2268
|
+
RELEASE_CARD_CELL_LABELS.map((label, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.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: [
|
|
2269
|
+
i === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, { variant: "card", className: "justify-self-start" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-24" }) }),
|
|
2270
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: RELEASE_CARD_CELL_LABEL_CLASS, children: label })
|
|
2271
|
+
] }) }, label)),
|
|
2272
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityMetadataAuthorCellSkeleton, {})
|
|
2335
2273
|
] })
|
|
2336
2274
|
] });
|
|
2337
2275
|
}
|
|
@@ -2339,20 +2277,20 @@ function ProductReleaseCardSkeleton({ className, size = "lg" }) {
|
|
|
2339
2277
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2340
2278
|
"span",
|
|
2341
2279
|
{
|
|
2342
|
-
className:
|
|
2280
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
2343
2281
|
"my-1.5 flex w-full items-start gap-3",
|
|
2344
2282
|
"rounded-lg border border-ods-border bg-ods-card p-2",
|
|
2345
2283
|
className
|
|
2346
2284
|
),
|
|
2347
2285
|
children: [
|
|
2348
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2286
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: "block aspect-square h-14 w-14 shrink-0 self-start rounded-md" }),
|
|
2349
2287
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-h-14 min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
2350
2288
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex h-5 min-w-0 items-center gap-2", children: [
|
|
2351
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2352
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2289
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-3/5 rounded" }),
|
|
2290
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: "h-4 w-12 shrink-0 rounded" })
|
|
2353
2291
|
] }),
|
|
2354
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2355
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2292
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-1/3 rounded" }) }),
|
|
2293
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-4 min-w-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-11/12 rounded" }) })
|
|
2356
2294
|
] })
|
|
2357
2295
|
]
|
|
2358
2296
|
}
|
|
@@ -2403,10 +2341,10 @@ function buildProductReleaseCardProps(item) {
|
|
|
2403
2341
|
job_title: release.author.job_title
|
|
2404
2342
|
} : void 0,
|
|
2405
2343
|
changelogCounts: {
|
|
2406
|
-
features: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2407
|
-
fixes: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2408
|
-
improvements: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2409
|
-
breaking: _nullishCoalesce(_optionalChain([release, 'access',
|
|
2344
|
+
features: _nullishCoalesce(_optionalChain([release, 'access', _50 => _50.features_added, 'optionalAccess', _51 => _51.length]), () => ( 0)),
|
|
2345
|
+
fixes: _nullishCoalesce(_optionalChain([release, 'access', _52 => _52.bugs_fixed, 'optionalAccess', _53 => _53.length]), () => ( 0)),
|
|
2346
|
+
improvements: _nullishCoalesce(_optionalChain([release, 'access', _54 => _54.improvements, 'optionalAccess', _55 => _55.length]), () => ( 0)),
|
|
2347
|
+
breaking: _nullishCoalesce(_optionalChain([release, 'access', _56 => _56.breaking_changes, 'optionalAccess', _57 => _57.length]), () => ( 0))
|
|
2410
2348
|
}
|
|
2411
2349
|
};
|
|
2412
2350
|
}
|
|
@@ -2427,12 +2365,15 @@ var COMPACT_CARD_OUTER = "my-1.5 flex items-start gap-3 w-full p-2 rounded-lg bo
|
|
|
2427
2365
|
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";
|
|
2428
2366
|
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";
|
|
2429
2367
|
var COMPACT_CARD_IMAGE_SLOT = "relative block shrink-0 self-start w-14 h-14 aspect-square overflow-hidden rounded-md bg-ods-bg";
|
|
2430
|
-
var COMPACT_CARD_SKELETON_IMAGE_SLOT =
|
|
2368
|
+
var COMPACT_CARD_SKELETON_IMAGE_SLOT = `block ${_chunkXFRBEXQNcjs.TILE_SIZE.thumb} ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.square} shrink-0 self-start rounded-md`;
|
|
2431
2369
|
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";
|
|
2432
2370
|
var COMPACT_CARD_TEXT_COL = "flex min-w-0 flex-1 flex-col gap-0.5 min-h-14";
|
|
2433
2371
|
var COMPACT_CARD_TITLE_ROW = "flex items-center min-w-0 h-5";
|
|
2434
2372
|
var COMPACT_CARD_META_ROW_BOX = "flex items-center min-w-0 h-4";
|
|
2435
|
-
var
|
|
2373
|
+
var COMPACT_CARD_TITLE_TYPE = "text-sm font-semibold leading-5";
|
|
2374
|
+
var COMPACT_CARD_TITLE = `truncate ${COMPACT_CARD_TITLE_TYPE} text-ods-text-primary`;
|
|
2375
|
+
var COMPACT_CARD_TITLE_WRAP_ROW = "flex min-w-0 flex-wrap items-center gap-1.5";
|
|
2376
|
+
var COMPACT_CARD_TRAILING_ICON = "flex h-5 shrink-0 items-center self-start text-ods-text-secondary";
|
|
2436
2377
|
var COMPACT_CARD_SUBTITLE = "truncate text-h6 text-ods-text-secondary";
|
|
2437
2378
|
var COMPACT_CARD_SUMMARY = "truncate text-h6 text-ods-text-secondary/80";
|
|
2438
2379
|
var COMPACT_CARD_META_ROW = "flex items-center gap-1.5 min-w-0 text-h6 text-ods-text-secondary";
|
|
@@ -2459,6 +2400,51 @@ function safeHref(url) {
|
|
|
2459
2400
|
// src/components/chat/entity-cards/blog-card.tsx
|
|
2460
2401
|
|
|
2461
2402
|
|
|
2403
|
+
// src/components/chat/utils/compact-card-skeleton.tsx
|
|
2404
|
+
|
|
2405
|
+
|
|
2406
|
+
var DEFAULT_ROWS = [{ width: "w-2/5" }, { width: "w-11/12" }];
|
|
2407
|
+
function CompactCardSkeleton({
|
|
2408
|
+
slot = true,
|
|
2409
|
+
slotClassName,
|
|
2410
|
+
titleWidth = "w-3/5",
|
|
2411
|
+
titleBadges = [],
|
|
2412
|
+
rows = DEFAULT_ROWS,
|
|
2413
|
+
trailingIcon = false,
|
|
2414
|
+
className
|
|
2415
|
+
}) {
|
|
2416
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_SKELETON_OUTER, className), "aria-hidden": true, children: [
|
|
2417
|
+
slot && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: _nullishCoalesce(slotClassName, () => ( COMPACT_CARD_SKELETON_IMAGE_SLOT)) }),
|
|
2418
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2419
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: titleBadges.length > 0 ? COMPACT_CARD_TITLE_WRAP_ROW : COMPACT_CARD_TITLE_ROW, children: [
|
|
2420
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE_TYPE, titleWidth) }),
|
|
2421
|
+
titleBadges.map((width, i) => (
|
|
2422
|
+
// The compact cards' title badges are `StatusBadge variant="button"` stamps: their own skeleton.
|
|
2423
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, { variant: "button", className: _chunk65VVJSQZcjs.cn.call(void 0, "shrink-0", width) }, i)
|
|
2424
|
+
))
|
|
2425
|
+
] }),
|
|
2426
|
+
rows.map(
|
|
2427
|
+
(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: [
|
|
2428
|
+
row.width && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h6", className: row.width }),
|
|
2429
|
+
row.after
|
|
2430
|
+
] }, i)
|
|
2431
|
+
)
|
|
2432
|
+
] }),
|
|
2433
|
+
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" }) })
|
|
2434
|
+
] });
|
|
2435
|
+
}
|
|
2436
|
+
function ActivityRowSkeleton({
|
|
2437
|
+
lead,
|
|
2438
|
+
trailingWidths,
|
|
2439
|
+
className
|
|
2440
|
+
}) {
|
|
2441
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "flex min-w-0 items-center gap-3", className), children: [
|
|
2442
|
+
lead,
|
|
2443
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: "h-3 w-2/3 flex-1 rounded" }),
|
|
2444
|
+
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))
|
|
2445
|
+
] });
|
|
2446
|
+
}
|
|
2447
|
+
|
|
2462
2448
|
// src/components/chat/entity-cards/use-entity-card-link.ts
|
|
2463
2449
|
|
|
2464
2450
|
function useEntityCardLink({ href, targetPlatform, target, rel }) {
|
|
@@ -2480,33 +2466,47 @@ function useEntityCardPlaceholder({
|
|
|
2480
2466
|
siteName = "",
|
|
2481
2467
|
aspect = "wide"
|
|
2482
2468
|
}) {
|
|
2483
|
-
const derived =
|
|
2469
|
+
const derived = _chunk3LW5TD54cjs.useOgPlaceholderUrl.call(void 0, { title, siteName, aspect });
|
|
2484
2470
|
return placeholderUrl !== void 0 ? placeholderUrl : derived;
|
|
2485
2471
|
}
|
|
2486
2472
|
|
|
2487
2473
|
// src/components/chat/entity-cards/blog-card.tsx
|
|
2488
2474
|
|
|
2489
|
-
|
|
2475
|
+
var BLOG_CARD_FRAME = "flex h-full flex-col";
|
|
2476
|
+
var BLOG_CARD_COVER = `relative ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.og} w-full overflow-hidden`;
|
|
2477
|
+
var BLOG_CARD_BODY = "flex flex-grow flex-col p-4";
|
|
2478
|
+
var BLOG_CARD_TITLE_ROW = `mb-3 flex items-center text-h3 ${_chunkXFRBEXQNcjs.TEXT_LINES_MIN[2]}`;
|
|
2479
|
+
var BLOG_CARD_SUMMARY_ROW = `mb-3 flex items-center text-h6 ${_chunkXFRBEXQNcjs.TEXT_LINES_MIN[2]}`;
|
|
2480
|
+
var BLOG_CARD_BYLINE = "mt-auto flex items-center justify-between gap-2 text-ods-text-secondary text-h6";
|
|
2481
|
+
var BLOG_CARD_BYLINE_PERSON = "flex min-w-0 items-center gap-2";
|
|
2482
|
+
var BLOG_CARD_VIEWS = "flex shrink-0 items-center gap-1";
|
|
2483
|
+
var BLOG_CARD_AVATAR = `${_chunkXFRBEXQNcjs.AVATAR_SIZE.sm} shrink-0 rounded-full object-cover`;
|
|
2484
|
+
var BLOG_POST_TYPE_LABEL = "Blog Post";
|
|
2485
|
+
function BlogCardSkeleton({
|
|
2486
|
+
size = "default",
|
|
2487
|
+
showTypeBadge = true,
|
|
2488
|
+
className
|
|
2489
|
+
}) {
|
|
2490
|
+
if (size === "portrait") {
|
|
2491
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? BLOG_POST_TYPE_LABEL : void 0, className });
|
|
2492
|
+
}
|
|
2490
2493
|
if (size === "sm") {
|
|
2491
|
-
return /* @__PURE__ */ _jsxruntime.
|
|
2492
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
2493
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2494
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-3/5 rounded" }) }),
|
|
2495
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-2/5 rounded" }) }),
|
|
2496
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-11/12 rounded" }) })
|
|
2497
|
-
] })
|
|
2498
|
-
] });
|
|
2494
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { className });
|
|
2499
2495
|
}
|
|
2500
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className:
|
|
2501
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2502
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2503
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2504
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2505
|
-
/* @__PURE__ */ _jsxruntime.
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2496
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, BLOG_CARD_FRAME, className), "aria-hidden": true, children: [
|
|
2497
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, BLOG_CARD_COVER, "rounded-none") }),
|
|
2498
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BODY, children: [
|
|
2499
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-full" }) }),
|
|
2500
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-full" }) }),
|
|
2501
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BYLINE, children: [
|
|
2502
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BYLINE_PERSON, children: [
|
|
2503
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.MediaSkeleton.Avatar, { size: "sm", className: BLOG_CARD_AVATAR }),
|
|
2504
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-40" })
|
|
2505
|
+
] }),
|
|
2506
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_VIEWS, children: [
|
|
2507
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Eye, { className: "h-4 w-4 shrink-0" }),
|
|
2508
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-8" })
|
|
2509
|
+
] })
|
|
2510
2510
|
] })
|
|
2511
2511
|
] })
|
|
2512
2512
|
] });
|
|
@@ -2536,12 +2536,13 @@ function BlogCard({
|
|
|
2536
2536
|
aspect: size === "sm" ? "square" : "wide"
|
|
2537
2537
|
});
|
|
2538
2538
|
const { src: displayImage, onError: onImageError } = useCoverImageFallback(post.featured_image, placeholderUrl);
|
|
2539
|
+
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BlogCardSkeleton, { size, showTypeBadge, className });
|
|
2539
2540
|
if (size === "sm") {
|
|
2540
|
-
const dateStr2 = post.published_at ?
|
|
2541
|
-
const firstCategory = _optionalChain([post, 'access',
|
|
2542
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
2541
|
+
const dateStr2 = post.published_at ? _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
|
|
2542
|
+
const firstCategory = _optionalChain([post, 'access', _58 => _58.categories, 'optionalAccess', _59 => _59.find, 'call', _60 => _60((c) => c && c.name), 'optionalAccess', _61 => _61.name]);
|
|
2543
|
+
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: [
|
|
2543
2544
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: displayImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2544
|
-
|
|
2545
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
2545
2546
|
{
|
|
2546
2547
|
src: displayImage,
|
|
2547
2548
|
alt: post.title,
|
|
@@ -2553,8 +2554,8 @@ function BlogCard({
|
|
|
2553
2554
|
}
|
|
2554
2555
|
) : null }),
|
|
2555
2556
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2556
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
2557
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
2557
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE_ROW, "gap-1.5"), children: [
|
|
2558
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE, "font-body"), children: post.title }),
|
|
2558
2559
|
hasEmbeddedVideo ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadge, { text: "Video", variant: "button", colorScheme: "cyan", className: "shrink-0" }) : null
|
|
2559
2560
|
] }),
|
|
2560
2561
|
/* @__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: [
|
|
@@ -2567,14 +2568,14 @@ function BlogCard({
|
|
|
2567
2568
|
] });
|
|
2568
2569
|
}
|
|
2569
2570
|
if (size === "portrait") {
|
|
2570
|
-
const dateStr2 = post.published_at ?
|
|
2571
|
+
const dateStr2 = post.published_at ? _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
|
|
2571
2572
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2572
2573
|
EntityPortraitCard,
|
|
2573
2574
|
{
|
|
2574
2575
|
href,
|
|
2575
2576
|
target,
|
|
2576
2577
|
rel,
|
|
2577
|
-
typeLabel: showTypeBadge ?
|
|
2578
|
+
typeLabel: showTypeBadge ? BLOG_POST_TYPE_LABEL : void 0,
|
|
2578
2579
|
imageUrl: post.featured_image,
|
|
2579
2580
|
placeholderUrl,
|
|
2580
2581
|
imageAlt: post.title,
|
|
@@ -2588,27 +2589,27 @@ function BlogCard({
|
|
|
2588
2589
|
}
|
|
2589
2590
|
);
|
|
2590
2591
|
}
|
|
2591
|
-
const dateStr = post.published_at ?
|
|
2592
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className:
|
|
2593
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2594
|
-
|
|
2592
|
+
const dateStr = post.published_at ? _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
|
|
2593
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className: _chunk65VVJSQZcjs.cn.call(void 0, 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: [
|
|
2594
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, BLOG_CARD_COVER, "bg-ods-bg"), children: displayImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2595
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
2595
2596
|
{
|
|
2596
2597
|
src: displayImage,
|
|
2597
2598
|
alt: post.title,
|
|
2598
2599
|
fill: true,
|
|
2599
2600
|
priority,
|
|
2600
2601
|
quality: priority ? 85 : 75,
|
|
2601
|
-
className:
|
|
2602
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, "object-cover object-center", "duration-400 transition-all ease-out", "hover:scale-[1.02]"),
|
|
2602
2603
|
sizes: "(max-width: 768px) 100vw, (max-width: 1519px) 50vw, 33vw",
|
|
2603
2604
|
unoptimized: true,
|
|
2604
2605
|
onError: onImageError
|
|
2605
2606
|
}
|
|
2606
2607
|
) : null }),
|
|
2607
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2608
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2608
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BODY, children: [
|
|
2609
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2609
2610
|
"h3",
|
|
2610
2611
|
{
|
|
2611
|
-
className:
|
|
2612
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
2612
2613
|
"text-ods-text-primary text-h3",
|
|
2613
2614
|
"line-clamp-2",
|
|
2614
2615
|
"transition-colors duration-300 ease-out",
|
|
@@ -2617,17 +2618,17 @@ function BlogCard({
|
|
|
2617
2618
|
children: post.title
|
|
2618
2619
|
}
|
|
2619
2620
|
) }),
|
|
2620
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2621
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2622
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2621
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: BLOG_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk65VVJSQZcjs.cn.call(void 0, "text-ods-text-primary text-h6", "line-clamp-2"), children: post.summary || "" }) }),
|
|
2622
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BYLINE, children: [
|
|
2623
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: BLOG_CARD_BYLINE_PERSON, children: [
|
|
2623
2624
|
post.author_avatar ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2624
|
-
|
|
2625
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
2625
2626
|
{
|
|
2626
2627
|
src: post.author_avatar,
|
|
2627
2628
|
alt: post.author_name || "",
|
|
2628
2629
|
width: 32,
|
|
2629
2630
|
height: 32,
|
|
2630
|
-
className:
|
|
2631
|
+
className: BLOG_CARD_AVATAR,
|
|
2631
2632
|
unoptimized: true
|
|
2632
2633
|
}
|
|
2633
2634
|
) : null,
|
|
@@ -2642,7 +2643,7 @@ function BlogCard({
|
|
|
2642
2643
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2643
2644
|
"div",
|
|
2644
2645
|
{
|
|
2645
|
-
className:
|
|
2646
|
+
className: BLOG_CARD_VIEWS,
|
|
2646
2647
|
"aria-label": `View count: ${(_nullishCoalesce(post.view_count, () => ( 0))).toLocaleString("en-US")} views`,
|
|
2647
2648
|
children: [
|
|
2648
2649
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Eye, { className: "h-4 w-4 shrink-0" }),
|
|
@@ -2661,26 +2662,39 @@ function BlogCard({
|
|
|
2661
2662
|
var CASE_STUDY_RESULT_STACK = "flex h-full flex-col gap-5 p-6";
|
|
2662
2663
|
var CASE_STUDY_RESULT_METRIC_BOX = "flex h-[112px] shrink-0 flex-col justify-start gap-1 overflow-hidden";
|
|
2663
2664
|
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";
|
|
2665
|
+
var CASE_STUDY_DEFAULT_BODY = "flex flex-col gap-6 p-6";
|
|
2666
|
+
var CASE_STUDY_COVER = `relative ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.og} w-full shrink-0 overflow-hidden rounded-sm`;
|
|
2667
|
+
var CASE_STUDY_TITLE_ZONE = "flex h-[72px] shrink-0 items-center";
|
|
2668
|
+
var CASE_STUDY_PERSON_ZONE = "flex h-[60px] shrink-0 items-center";
|
|
2669
|
+
var CASE_STUDY_PERSON_ROW = "flex w-full min-w-0 items-center gap-3";
|
|
2670
|
+
var CASE_STUDY_PERSON_TEXT = "min-w-0 flex-1";
|
|
2671
|
+
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";
|
|
2672
|
+
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)]";
|
|
2673
|
+
var CASE_STUDY_MENU_MEDIA = `relative block ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.video} w-full shrink-0 overflow-hidden rounded-md`;
|
|
2674
|
+
var CASE_STUDY_MENU_MSP_ROW = "flex items-center gap-[var(--spacing-system-xsf)] text-ods-text-secondary text-h6";
|
|
2675
|
+
var MSP_ICON_PX = 20;
|
|
2676
|
+
var MSP_ICON_CLASS = `${_chunkXFRBEXQNcjs.ICON_SIZE.md} shrink-0 rounded`;
|
|
2677
|
+
var CASE_STUDY_TYPE_LABEL = "Case Study";
|
|
2664
2678
|
function headlineMetric(study) {
|
|
2665
|
-
const metric = _optionalChain([study, 'access',
|
|
2666
|
-
return _optionalChain([metric, 'optionalAccess',
|
|
2679
|
+
const metric = _optionalChain([study, 'access', _62 => _62.metrics, 'optionalAccess', _63 => _63[0]]);
|
|
2680
|
+
return _optionalChain([metric, 'optionalAccess', _64 => _64.value]) && metric.label ? metric : null;
|
|
2667
2681
|
}
|
|
2668
2682
|
function CaseStudyPersonRow({ study }) {
|
|
2669
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2683
|
+
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: [
|
|
2670
2684
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
2671
|
-
_optionalChain([study, 'access',
|
|
2672
|
-
|
|
2685
|
+
_optionalChain([study, 'access', _65 => _65.user, 'optionalAccess', _66 => _66.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2686
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
2673
2687
|
{
|
|
2674
2688
|
src: study.user.avatar_url,
|
|
2675
|
-
alt: _optionalChain([study, 'access',
|
|
2689
|
+
alt: _optionalChain([study, 'access', _67 => _67.user, 'optionalAccess', _68 => _68.full_name]) || "User",
|
|
2676
2690
|
className: "h-12 w-12 rounded-full border border-ods-border bg-ods-bg object-cover",
|
|
2677
2691
|
width: 48,
|
|
2678
2692
|
height: 48,
|
|
2679
2693
|
unoptimized: true
|
|
2680
2694
|
}
|
|
2681
|
-
) : /* @__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',
|
|
2682
|
-
_optionalChain([study, 'access',
|
|
2683
|
-
|
|
2695
|
+
) : /* @__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() }) }),
|
|
2696
|
+
_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,
|
|
2697
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
2684
2698
|
{
|
|
2685
2699
|
src: study.msp.icon_url,
|
|
2686
2700
|
alt: study.msp.name || "MSP",
|
|
@@ -2691,59 +2705,68 @@ function CaseStudyPersonRow({ study }) {
|
|
|
2691
2705
|
}
|
|
2692
2706
|
) })
|
|
2693
2707
|
] }),
|
|
2694
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2708
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_PERSON_TEXT, children: [
|
|
2695
2709
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-primary text-h6", children: [
|
|
2696
|
-
_optionalChain([study, 'access',
|
|
2697
|
-
_optionalChain([study, 'access',
|
|
2710
|
+
_optionalChain([study, 'access', _73 => _73.user, 'optionalAccess', _74 => _74.full_name]) || "Anonymous",
|
|
2711
|
+
_optionalChain([study, 'access', _75 => _75.msp, 'optionalAccess', _76 => _76.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
|
|
2698
2712
|
" \u2022 ",
|
|
2699
2713
|
study.msp.name
|
|
2700
2714
|
] })
|
|
2701
2715
|
] }),
|
|
2702
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([study, 'access',
|
|
2716
|
+
/* @__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" })
|
|
2717
|
+
] })
|
|
2718
|
+
] }) });
|
|
2719
|
+
}
|
|
2720
|
+
function CaseStudyPersonRowSkeleton() {
|
|
2721
|
+
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: [
|
|
2722
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.MediaSkeleton.Avatar, { size: "md", className: "shrink-0" }),
|
|
2723
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_PERSON_TEXT, children: [
|
|
2724
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-2/3" }),
|
|
2725
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-1/2" })
|
|
2703
2726
|
] })
|
|
2704
2727
|
] }) });
|
|
2705
2728
|
}
|
|
2706
|
-
function CaseStudyCardSkeleton({
|
|
2729
|
+
function CaseStudyCardSkeleton({
|
|
2730
|
+
size = "default",
|
|
2731
|
+
showTypeBadge = true,
|
|
2732
|
+
className
|
|
2733
|
+
}) {
|
|
2734
|
+
if (size === "portrait") {
|
|
2735
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? CASE_STUDY_TYPE_LABEL : void 0, className });
|
|
2736
|
+
}
|
|
2707
2737
|
if (size === "result") {
|
|
2708
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
2709
|
-
/* @__PURE__ */ _jsxruntime.
|
|
2710
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-12 w-12 rounded-full" }),
|
|
2711
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
2712
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-2/3 rounded" }),
|
|
2713
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-1/2 rounded" })
|
|
2714
|
-
] })
|
|
2715
|
-
] }),
|
|
2738
|
+
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: [
|
|
2739
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRowSkeleton, {}),
|
|
2716
2740
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_METRIC_BOX, "data-testid": "case-study-result-skeleton-metric", children: [
|
|
2717
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2718
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2741
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h1", className: "w-1/3" }),
|
|
2742
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", lines: 2, className: "w-3/4" })
|
|
2719
2743
|
] }),
|
|
2720
|
-
/* @__PURE__ */ _jsxruntime.
|
|
2744
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_FOOTER_BOX, children: [
|
|
2745
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-2/3" }),
|
|
2746
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-ods-accent text-h6", children: "Read" })
|
|
2747
|
+
] })
|
|
2721
2748
|
] });
|
|
2722
2749
|
}
|
|
2723
|
-
if (size === "
|
|
2724
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "
|
|
2725
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2726
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "
|
|
2727
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2728
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2729
|
-
|
|
2730
|
-
|
|
2750
|
+
if (size === "menu") {
|
|
2751
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_MENU_SKELETON_FRAME, className), "aria-hidden": true, children: [
|
|
2752
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: CASE_STUDY_MENU_MEDIA }),
|
|
2753
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_MENU_MSP_ROW, children: [
|
|
2754
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: MSP_ICON_CLASS }),
|
|
2755
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-28" })
|
|
2756
|
+
] }),
|
|
2757
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-full" }),
|
|
2758
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-3/4" }),
|
|
2759
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "mt-auto w-28" })
|
|
2731
2760
|
] });
|
|
2732
2761
|
}
|
|
2733
|
-
|
|
2734
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
/* @__PURE__ */ _jsxruntime.
|
|
2740
|
-
|
|
2741
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
2742
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-2/3 rounded" }),
|
|
2743
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-1/2 rounded" })
|
|
2744
|
-
] })
|
|
2745
|
-
] })
|
|
2746
|
-
] });
|
|
2762
|
+
if (size === "sm") {
|
|
2763
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { rows: [{ width: "w-1/2" }, { width: "w-11/12" }], className });
|
|
2764
|
+
}
|
|
2765
|
+
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: [
|
|
2766
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_COVER, "rounded-sm") }),
|
|
2767
|
+
/* @__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" }) }),
|
|
2768
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRowSkeleton, {})
|
|
2769
|
+
] }) });
|
|
2747
2770
|
}
|
|
2748
2771
|
function caseStudyHighlight(study) {
|
|
2749
2772
|
if (study.highlight_video_url) {
|
|
@@ -2752,7 +2775,14 @@ function caseStudyHighlight(study) {
|
|
|
2752
2775
|
const bite = (_nullishCoalesce(study.video_bites, () => ( []))).filter((candidate) => candidate.featured === true && candidate.url).sort(sortBitesByFeaturedAtDesc)[0];
|
|
2753
2776
|
return bite ? { url: bite.url, posterUrl: _nullishCoalesce(bite.thumbnail_url, () => ( null)) } : null;
|
|
2754
2777
|
}
|
|
2755
|
-
function CaseStudyCard({
|
|
2778
|
+
function CaseStudyCard(props) {
|
|
2779
|
+
const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
2780
|
+
if (inScope || props.loading) {
|
|
2781
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyCardSkeleton, { size: props.size, showTypeBadge: props.showTypeBadge, className: props.className });
|
|
2782
|
+
}
|
|
2783
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadedCaseStudyCard, { ...props });
|
|
2784
|
+
}
|
|
2785
|
+
function LoadedCaseStudyCard({
|
|
2756
2786
|
study,
|
|
2757
2787
|
href,
|
|
2758
2788
|
target: targetProp,
|
|
@@ -2780,12 +2810,12 @@ function CaseStudyCard({
|
|
|
2780
2810
|
});
|
|
2781
2811
|
const coverImage = study.featured_image || placeholderUrl || null;
|
|
2782
2812
|
if (size === "sm") {
|
|
2783
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
2813
|
+
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: [
|
|
2784
2814
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2785
|
-
|
|
2815
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
2786
2816
|
{
|
|
2787
2817
|
src: coverImage,
|
|
2788
|
-
alt: `${_optionalChain([study, 'access',
|
|
2818
|
+
alt: `${_optionalChain([study, 'access', _79 => _79.msp, 'optionalAccess', _80 => _80.name]) || study.title} cover`,
|
|
2789
2819
|
className: "object-contain",
|
|
2790
2820
|
fill: true,
|
|
2791
2821
|
sizes: "56px",
|
|
@@ -2795,16 +2825,16 @@ function CaseStudyCard({
|
|
|
2795
2825
|
) : null }),
|
|
2796
2826
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2797
2827
|
/* @__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 }) }),
|
|
2798
|
-
/* @__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',
|
|
2828
|
+
/* @__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" }) }),
|
|
2799
2829
|
/* @__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 }) })
|
|
2800
2830
|
] })
|
|
2801
2831
|
] });
|
|
2802
2832
|
}
|
|
2803
2833
|
if (size === "menu") {
|
|
2804
2834
|
const preview = caseStudyHighlight(study);
|
|
2805
|
-
const videoUrl = _nullishCoalesce(_optionalChain([preview, 'optionalAccess',
|
|
2835
|
+
const videoUrl = _nullishCoalesce(_optionalChain([preview, 'optionalAccess', _85 => _85.url]), () => ( null));
|
|
2806
2836
|
const hasAnyVideo = !!(videoUrl || study.main_video_url);
|
|
2807
|
-
const poster = study.main_video_thumbnail || study.featured_image || _optionalChain([preview, 'optionalAccess',
|
|
2837
|
+
const poster = study.main_video_thumbnail || study.featured_image || _optionalChain([preview, 'optionalAccess', _86 => _86.posterUrl]) || null;
|
|
2808
2838
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2809
2839
|
_chunkV45KLJQPcjs.next_link_default,
|
|
2810
2840
|
{
|
|
@@ -2816,13 +2846,9 @@ function CaseStudyCard({
|
|
|
2816
2846
|
onPointerLeave: () => setHovered(false),
|
|
2817
2847
|
onFocus: () => setHovered(true),
|
|
2818
2848
|
onBlur: () => setHovered(false),
|
|
2819
|
-
className:
|
|
2820
|
-
// `group/card` is what the shared play glyph accents on.
|
|
2821
|
-
"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",
|
|
2822
|
-
className
|
|
2823
|
-
),
|
|
2849
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, CASE_STUDY_MENU_FRAME, className),
|
|
2824
2850
|
children: [
|
|
2825
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "pointer-events-none
|
|
2851
|
+
/* @__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 ? (
|
|
2826
2852
|
// The shared hover surface, filled the way the walkthrough card fills
|
|
2827
2853
|
// its own 16:9 slot (`cover`): an upright cut is cropped to the slot,
|
|
2828
2854
|
// never letterboxed. Sound on hover, muted when the browser blocks it.
|
|
@@ -2839,7 +2865,7 @@ function CaseStudyCard({
|
|
|
2839
2865
|
)
|
|
2840
2866
|
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
2841
2867
|
(_nullishCoalesce(poster, () => ( placeholderUrl))) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2842
|
-
|
|
2868
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
2843
2869
|
{
|
|
2844
2870
|
src: _nullishCoalesce(_nullishCoalesce(poster, () => ( placeholderUrl)), () => ( "")),
|
|
2845
2871
|
alt: "",
|
|
@@ -2850,21 +2876,21 @@ function CaseStudyCard({
|
|
|
2850
2876
|
onError: hideOnError
|
|
2851
2877
|
}
|
|
2852
2878
|
),
|
|
2853
|
-
hasAnyVideo && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2879
|
+
hasAnyVideo && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "md" })
|
|
2854
2880
|
] }) }),
|
|
2855
|
-
_optionalChain([study, 'access',
|
|
2881
|
+
_optionalChain([study, 'access', _87 => _87.msp, 'optionalAccess', _88 => _88.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: CASE_STUDY_MENU_MSP_ROW, children: [
|
|
2856
2882
|
study.msp.icon_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2857
2883
|
EntityIcon,
|
|
2858
2884
|
{
|
|
2859
2885
|
icon: { url: study.msp.icon_url },
|
|
2860
|
-
size:
|
|
2861
|
-
className:
|
|
2886
|
+
size: MSP_ICON_PX,
|
|
2887
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, MSP_ICON_CLASS, "object-contain")
|
|
2862
2888
|
}
|
|
2863
2889
|
),
|
|
2864
2890
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: study.msp.name })
|
|
2865
2891
|
] }),
|
|
2866
2892
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 text-h6", children: study.title }),
|
|
2867
|
-
_optionalChain([study, 'access',
|
|
2893
|
+
_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 }),
|
|
2868
2894
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mt-auto text-ods-accent text-h6", children: hasAnyVideo ? "Watch the story" : "Read the story" })
|
|
2869
2895
|
]
|
|
2870
2896
|
}
|
|
@@ -2873,15 +2899,15 @@ function CaseStudyCard({
|
|
|
2873
2899
|
if (size === "result") {
|
|
2874
2900
|
const metric = headlineMetric(study);
|
|
2875
2901
|
if (!metric) return null;
|
|
2876
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
2902
|
+
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: [
|
|
2877
2903
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRow, { study }),
|
|
2878
2904
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_METRIC_BOX, "data-testid": "case-study-metric", children: [
|
|
2879
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
2905
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "truncate text-h1", accentClassName), children: metric.value }),
|
|
2880
2906
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 text-ods-text-secondary text-h4", children: metric.label })
|
|
2881
2907
|
] }),
|
|
2882
2908
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CASE_STUDY_RESULT_FOOTER_BOX, children: [
|
|
2883
2909
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 min-w-0 text-ods-text-secondary text-h6", children: study.title }),
|
|
2884
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
2910
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "shrink-0 text-h6", accentClassName), children: "Read" })
|
|
2885
2911
|
] })
|
|
2886
2912
|
] }) });
|
|
2887
2913
|
}
|
|
@@ -2892,27 +2918,27 @@ function CaseStudyCard({
|
|
|
2892
2918
|
href,
|
|
2893
2919
|
target,
|
|
2894
2920
|
rel,
|
|
2895
|
-
typeLabel: showTypeBadge ?
|
|
2921
|
+
typeLabel: showTypeBadge ? CASE_STUDY_TYPE_LABEL : void 0,
|
|
2896
2922
|
imageUrl: study.featured_image,
|
|
2897
2923
|
placeholderUrl,
|
|
2898
|
-
imageAlt: _optionalChain([study, 'access',
|
|
2924
|
+
imageAlt: _optionalChain([study, 'access', _91 => _91.msp, 'optionalAccess', _92 => _92.name]) || study.title,
|
|
2899
2925
|
title: study.title,
|
|
2900
2926
|
person: {
|
|
2901
|
-
name: _optionalChain([study, 'access',
|
|
2902
|
-
avatarUrl: _optionalChain([study, 'access',
|
|
2903
|
-
subtitle: _nullishCoalesce(_optionalChain([study, 'access',
|
|
2904
|
-
iconOverlayUrl: _nullishCoalesce(_optionalChain([study, 'access',
|
|
2927
|
+
name: _optionalChain([study, 'access', _93 => _93.user, 'optionalAccess', _94 => _94.full_name]) || "Anonymous",
|
|
2928
|
+
avatarUrl: _optionalChain([study, 'access', _95 => _95.user, 'optionalAccess', _96 => _96.avatar_url]),
|
|
2929
|
+
subtitle: _nullishCoalesce(_optionalChain([study, 'access', _97 => _97.msp, 'optionalAccess', _98 => _98.name]), () => ( null)),
|
|
2930
|
+
iconOverlayUrl: _nullishCoalesce(_optionalChain([study, 'access', _99 => _99.msp, 'optionalAccess', _100 => _100.icon_url]), () => ( null))
|
|
2905
2931
|
},
|
|
2906
2932
|
className
|
|
2907
2933
|
}
|
|
2908
2934
|
);
|
|
2909
2935
|
}
|
|
2910
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
2911
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2912
|
-
|
|
2936
|
+
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: [
|
|
2937
|
+
/* @__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,
|
|
2938
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
2913
2939
|
{
|
|
2914
2940
|
src: coverImage,
|
|
2915
|
-
alt: _optionalChain([study, 'access',
|
|
2941
|
+
alt: _optionalChain([study, 'access', _101 => _101.msp, 'optionalAccess', _102 => _102.name]) || study.title,
|
|
2916
2942
|
className: "h-full w-full object-cover",
|
|
2917
2943
|
sizes: "(min-width: 1545px) 515px, (min-width: 1280px) 33vw, (min-width: 800px) 50vw, 100vw",
|
|
2918
2944
|
fill: true,
|
|
@@ -2920,7 +2946,7 @@ function CaseStudyCard({
|
|
|
2920
2946
|
onError: hideOnError
|
|
2921
2947
|
}
|
|
2922
2948
|
) }),
|
|
2923
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
2949
|
+
/* @__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 }) }),
|
|
2924
2950
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CaseStudyPersonRow, { study })
|
|
2925
2951
|
] }) });
|
|
2926
2952
|
}
|
|
@@ -2928,36 +2954,35 @@ function CaseStudyCard({
|
|
|
2928
2954
|
// src/components/chat/entity-cards/customer-interview-card.tsx
|
|
2929
2955
|
|
|
2930
2956
|
|
|
2931
|
-
|
|
2957
|
+
var INTERVIEW_CARD_BODY = "flex flex-col gap-6 p-6";
|
|
2958
|
+
var INTERVIEW_CARD_COVER = `relative ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.og} w-full shrink-0 overflow-hidden rounded-sm`;
|
|
2959
|
+
var INTERVIEW_CARD_PERSON_ZONE = "mt-auto flex h-[60px] shrink-0 items-center";
|
|
2960
|
+
var INTERVIEW_CARD_PERSON_ROW = "flex w-full min-w-0 items-center gap-3";
|
|
2961
|
+
var INTERVIEW_CARD_PERSON_TEXT = "min-w-0 flex-1";
|
|
2962
|
+
var INTERVIEW_TYPE_LABEL = "Customer Interview";
|
|
2963
|
+
function CustomerInterviewCardSkeleton({
|
|
2964
|
+
size = "default",
|
|
2965
|
+
showTypeBadge = true,
|
|
2966
|
+
className
|
|
2967
|
+
}) {
|
|
2968
|
+
if (size === "portrait") {
|
|
2969
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? INTERVIEW_TYPE_LABEL : void 0, className });
|
|
2970
|
+
}
|
|
2932
2971
|
if (size === "sm") {
|
|
2933
|
-
return /* @__PURE__ */ _jsxruntime.
|
|
2934
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
2935
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
2936
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-3/5 rounded" }) }),
|
|
2937
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-2/5 rounded" }) }),
|
|
2938
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-11/12 rounded" }) })
|
|
2939
|
-
] })
|
|
2940
|
-
] });
|
|
2972
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { className });
|
|
2941
2973
|
}
|
|
2942
|
-
return /* @__PURE__ */ _jsxruntime.
|
|
2943
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2944
|
-
/* @__PURE__ */ _jsxruntime.
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-4/5 rounded" })
|
|
2952
|
-
] }),
|
|
2953
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mt-auto flex h-[60px] items-center gap-3", children: [
|
|
2954
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-12 w-12 rounded-full" }),
|
|
2955
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
2956
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-2/3 rounded" }),
|
|
2957
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-1/2 rounded" })
|
|
2974
|
+
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, INTERVIEW_CARD_BODY), children: [
|
|
2975
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, INTERVIEW_CARD_COVER, "rounded-sm") }),
|
|
2976
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-full" }) }),
|
|
2977
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 3, className: "w-full" }) }),
|
|
2978
|
+
/* @__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: [
|
|
2979
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.MediaSkeleton.Avatar, { size: "md", className: "shrink-0" }),
|
|
2980
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_TEXT, children: [
|
|
2981
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-2/3" }),
|
|
2982
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", className: "w-1/2" })
|
|
2958
2983
|
] })
|
|
2959
|
-
] })
|
|
2960
|
-
] });
|
|
2984
|
+
] }) })
|
|
2985
|
+
] }) });
|
|
2961
2986
|
}
|
|
2962
2987
|
function CustomerInterviewCard({
|
|
2963
2988
|
interview,
|
|
@@ -2982,11 +3007,14 @@ function CustomerInterviewCard({
|
|
|
2982
3007
|
aspect: size === "sm" ? "square" : "wide"
|
|
2983
3008
|
});
|
|
2984
3009
|
const thumbnailUrl = interview.featured_image || placeholderUrl || null;
|
|
3010
|
+
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
|
|
3011
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CustomerInterviewCardSkeleton, { size, showTypeBadge, className });
|
|
3012
|
+
}
|
|
2985
3013
|
if (size === "sm") {
|
|
2986
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
3014
|
+
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: [
|
|
2987
3015
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
2988
3016
|
thumbnailUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2989
|
-
|
|
3017
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
2990
3018
|
{
|
|
2991
3019
|
src: thumbnailUrl,
|
|
2992
3020
|
alt: interview.title,
|
|
@@ -3001,7 +3029,7 @@ function CustomerInterviewCard({
|
|
|
3001
3029
|
] }),
|
|
3002
3030
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3003
3031
|
/* @__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 }) }),
|
|
3004
|
-
/* @__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',
|
|
3032
|
+
/* @__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', _103 => _103.user, 'optionalAccess', _104 => _104.full_name]), _optionalChain([interview, 'access', _105 => _105.msp, 'optionalAccess', _106 => _106.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
|
|
3005
3033
|
/* @__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 }) })
|
|
3006
3034
|
] })
|
|
3007
3035
|
] });
|
|
@@ -3013,25 +3041,25 @@ function CustomerInterviewCard({
|
|
|
3013
3041
|
href,
|
|
3014
3042
|
target,
|
|
3015
3043
|
rel,
|
|
3016
|
-
typeLabel: showTypeBadge ?
|
|
3044
|
+
typeLabel: showTypeBadge ? INTERVIEW_TYPE_LABEL : void 0,
|
|
3017
3045
|
imageUrl: interview.featured_image,
|
|
3018
3046
|
placeholderUrl,
|
|
3019
3047
|
imageAlt: interview.title,
|
|
3020
3048
|
title: interview.title,
|
|
3021
3049
|
person: {
|
|
3022
|
-
name: _optionalChain([interview, 'access',
|
|
3023
|
-
avatarUrl: _optionalChain([interview, 'access',
|
|
3024
|
-
subtitle: _nullishCoalesce(_optionalChain([interview, 'access',
|
|
3025
|
-
iconOverlayUrl: _nullishCoalesce(_optionalChain([interview, 'access',
|
|
3050
|
+
name: _optionalChain([interview, 'access', _107 => _107.user, 'optionalAccess', _108 => _108.full_name]) || "Customer",
|
|
3051
|
+
avatarUrl: _optionalChain([interview, 'access', _109 => _109.user, 'optionalAccess', _110 => _110.avatar_url]),
|
|
3052
|
+
subtitle: _nullishCoalesce(_optionalChain([interview, 'access', _111 => _111.msp, 'optionalAccess', _112 => _112.name]), () => ( null)),
|
|
3053
|
+
iconOverlayUrl: _nullishCoalesce(_optionalChain([interview, 'access', _113 => _113.msp, 'optionalAccess', _114 => _114.icon_url]), () => ( null))
|
|
3026
3054
|
},
|
|
3027
3055
|
className
|
|
3028
3056
|
}
|
|
3029
3057
|
);
|
|
3030
3058
|
}
|
|
3031
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
3032
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
3059
|
+
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, INTERVIEW_CARD_BODY), children: [
|
|
3060
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, INTERVIEW_CARD_COVER, "bg-ods-bg"), children: thumbnailUrl ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3033
3061
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3034
|
-
|
|
3062
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
3035
3063
|
{
|
|
3036
3064
|
src: thumbnailUrl,
|
|
3037
3065
|
alt: interview.title,
|
|
@@ -3046,21 +3074,21 @@ function CustomerInterviewCard({
|
|
|
3046
3074
|
] }) : /* @__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" }) }) }),
|
|
3047
3075
|
/* @__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 }) }),
|
|
3048
3076
|
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 }) }),
|
|
3049
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
3077
|
+
/* @__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: [
|
|
3050
3078
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative h-12 w-12 shrink-0", children: [
|
|
3051
|
-
_optionalChain([interview, 'access',
|
|
3052
|
-
|
|
3079
|
+
_optionalChain([interview, 'access', _115 => _115.user, 'optionalAccess', _116 => _116.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3080
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
3053
3081
|
{
|
|
3054
3082
|
src: interview.user.avatar_url,
|
|
3055
|
-
alt: _optionalChain([interview, 'access',
|
|
3083
|
+
alt: _optionalChain([interview, 'access', _117 => _117.user, 'optionalAccess', _118 => _118.full_name]) || "Customer",
|
|
3056
3084
|
className: "h-12 w-12 rounded-full border border-ods-border bg-ods-bg object-cover",
|
|
3057
3085
|
width: 48,
|
|
3058
3086
|
height: 48,
|
|
3059
3087
|
unoptimized: true
|
|
3060
3088
|
}
|
|
3061
|
-
) : /* @__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',
|
|
3062
|
-
_optionalChain([interview, 'access',
|
|
3063
|
-
|
|
3089
|
+
) : /* @__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', _119 => _119.user, 'optionalAccess', _120 => _120.full_name]) || "A").charAt(0).toUpperCase() }) }),
|
|
3090
|
+
_optionalChain([interview, 'access', _121 => _121.msp, 'optionalAccess', _122 => _122.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,
|
|
3091
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
3064
3092
|
{
|
|
3065
3093
|
src: interview.msp.icon_url,
|
|
3066
3094
|
alt: interview.msp.name || "MSP",
|
|
@@ -3071,15 +3099,15 @@ function CustomerInterviewCard({
|
|
|
3071
3099
|
}
|
|
3072
3100
|
) })
|
|
3073
3101
|
] }),
|
|
3074
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3102
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: INTERVIEW_CARD_PERSON_TEXT, children: [
|
|
3075
3103
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "truncate text-ods-text-primary text-h6", children: [
|
|
3076
|
-
_optionalChain([interview, 'access',
|
|
3077
|
-
_optionalChain([interview, 'access',
|
|
3104
|
+
_optionalChain([interview, 'access', _123 => _123.user, 'optionalAccess', _124 => _124.full_name]) || "Anonymous",
|
|
3105
|
+
_optionalChain([interview, 'access', _125 => _125.msp, 'optionalAccess', _126 => _126.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
|
|
3078
3106
|
" \u2022 ",
|
|
3079
3107
|
interview.msp.name
|
|
3080
3108
|
] })
|
|
3081
3109
|
] }),
|
|
3082
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([interview, 'access',
|
|
3110
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: _optionalChain([interview, 'access', _127 => _127.user, 'optionalAccess', _128 => _128.job_title]) || " " })
|
|
3083
3111
|
] })
|
|
3084
3112
|
] }) })
|
|
3085
3113
|
] }) });
|
|
@@ -3088,7 +3116,7 @@ function CustomerInterviewCard({
|
|
|
3088
3116
|
// src/components/chat/types/entities/investor-update.ts
|
|
3089
3117
|
function formatInvestorUpdatePeriod(start, end, options) {
|
|
3090
3118
|
if (!start && !end) return "";
|
|
3091
|
-
const fmt = (d) =>
|
|
3119
|
+
const fmt = (d) => _chunkJTSUAHDLcjs.formatDateWithTimezone.call(void 0, d, null, _optionalChain([options, 'optionalAccess', _129 => _129.monthFormat]) === "long" ? "monthYear" : "monthYearShort") || "?";
|
|
3092
3120
|
const s = start ? fmt(start) : "?";
|
|
3093
3121
|
const e = end ? fmt(end) : "?";
|
|
3094
3122
|
return `${s} - ${e}`;
|
|
@@ -3097,29 +3125,28 @@ function formatInvestorUpdatePeriod(start, end, options) {
|
|
|
3097
3125
|
// src/components/chat/entity-cards/investor-update-card.tsx
|
|
3098
3126
|
|
|
3099
3127
|
|
|
3100
|
-
|
|
3128
|
+
var INVESTOR_UPDATE_TYPE_LABEL = "Investor Update";
|
|
3129
|
+
function InvestorUpdateCardSkeleton({
|
|
3130
|
+
size = "default",
|
|
3131
|
+
showTypeBadge = true,
|
|
3132
|
+
className
|
|
3133
|
+
}) {
|
|
3134
|
+
if (size === "portrait") {
|
|
3135
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3136
|
+
EntityPortraitCardSkeleton,
|
|
3137
|
+
{
|
|
3138
|
+
typeLabel: showTypeBadge ? INVESTOR_UPDATE_TYPE_LABEL : void 0,
|
|
3139
|
+
className
|
|
3140
|
+
}
|
|
3141
|
+
);
|
|
3142
|
+
}
|
|
3143
|
+
if (size === "default") {
|
|
3144
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `block h-full ${_nullishCoalesce(className, () => ( ""))}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AdminContentCardSkeleton, { actions: false, subtitleRow: false }) });
|
|
3145
|
+
}
|
|
3101
3146
|
if (size === "sm") {
|
|
3102
|
-
return /* @__PURE__ */ _jsxruntime.
|
|
3103
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
3104
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3105
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-2`, children: [
|
|
3106
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-1/2 rounded" }),
|
|
3107
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-4 w-8 shrink-0 rounded" })
|
|
3108
|
-
] }),
|
|
3109
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-1/3 rounded" }) }),
|
|
3110
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-11/12 rounded" }) })
|
|
3111
|
-
] })
|
|
3112
|
-
] });
|
|
3147
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { titleWidth: "w-1/2", titleBadges: ["w-8"], rows: [{ width: "w-1/3" }, { width: "w-11/12" }], className });
|
|
3113
3148
|
}
|
|
3114
|
-
return
|
|
3115
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "aspect-[1200/630]" }),
|
|
3116
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3 p-4", children: [
|
|
3117
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-5 w-3/4 rounded" }),
|
|
3118
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-full rounded" }),
|
|
3119
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-4/5 rounded" }),
|
|
3120
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-1/3 rounded" })
|
|
3121
|
-
] })
|
|
3122
|
-
] });
|
|
3149
|
+
return null;
|
|
3123
3150
|
}
|
|
3124
3151
|
function InvestorUpdateCard({
|
|
3125
3152
|
update,
|
|
@@ -3144,11 +3171,14 @@ function InvestorUpdateCard({
|
|
|
3144
3171
|
aspect: size === "sm" ? "square" : "wide"
|
|
3145
3172
|
});
|
|
3146
3173
|
const coverImage = update.featured_image || placeholderUrl || null;
|
|
3174
|
+
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
|
|
3175
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InvestorUpdateCardSkeleton, { size, showTypeBadge, className });
|
|
3176
|
+
}
|
|
3147
3177
|
if (size === "sm") {
|
|
3148
3178
|
const periodText = formatInvestorUpdatePeriod(update.period_start, update.period_end);
|
|
3149
3179
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: `${COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
|
|
3150
3180
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3151
|
-
|
|
3181
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
3152
3182
|
{
|
|
3153
3183
|
src: coverImage,
|
|
3154
3184
|
alt: _nullishCoalesce(update.title, () => ( "Investor update")),
|
|
@@ -3183,7 +3213,7 @@ function InvestorUpdateCard({
|
|
|
3183
3213
|
href,
|
|
3184
3214
|
target,
|
|
3185
3215
|
rel,
|
|
3186
|
-
typeLabel: showTypeBadge ?
|
|
3216
|
+
typeLabel: showTypeBadge ? INVESTOR_UPDATE_TYPE_LABEL : void 0,
|
|
3187
3217
|
imageUrl: update.featured_image,
|
|
3188
3218
|
placeholderUrl,
|
|
3189
3219
|
imageAlt: _nullishCoalesce(update.title, () => ( "Investor update")),
|
|
@@ -3199,7 +3229,7 @@ function InvestorUpdateCard({
|
|
|
3199
3229
|
imageUrl: update.featured_image,
|
|
3200
3230
|
placeholderUrl,
|
|
3201
3231
|
title: update.title || `Update #${update.update_number || "?"}`,
|
|
3202
|
-
summary: _optionalChain([update, 'access',
|
|
3232
|
+
summary: _optionalChain([update, 'access', _130 => _130.strategic_update, 'optionalAccess', _131 => _131.slice, 'call', _132 => _132(0, 120)]) || _optionalChain([update, 'access', _133 => _133.content, 'optionalAccess', _134 => _134.slice, 'call', _135 => _135(0, 120)]) || "No description",
|
|
3203
3233
|
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: [
|
|
3204
3234
|
"#",
|
|
3205
3235
|
update.update_number
|
|
@@ -3215,9 +3245,18 @@ function InvestorUpdateCard({
|
|
|
3215
3245
|
// src/components/chat/entity-cards/onboarding-guide-card.tsx
|
|
3216
3246
|
|
|
3217
3247
|
|
|
3248
|
+
var GUIDE_TYPE_LABEL = "Guide";
|
|
3218
3249
|
function stripMarkdownPreview(text) {
|
|
3219
3250
|
return text.replace(/```[\s\S]*?```/g, " ").replace(/^#{1,6}\s+/gm, "").replace(/!?\[([^\]]*)\]\([^)]*\)/g, "$1").replace(/[*_~`>]/g, "").replace(/^\s*[-+]\s+/gm, "").replace(/-{3,}/g, " ").replace(/\s+/g, " ").trim().replace(/^([\s\S]{240})[\s\S]+$/, "$1\u2026");
|
|
3220
3251
|
}
|
|
3252
|
+
var CATALOG_BODY = "flex flex-col gap-4 p-6";
|
|
3253
|
+
var CATALOG_ROW = "flex flex-col gap-4 md:flex-row md:gap-6";
|
|
3254
|
+
var CATALOG_COVER_COL = "w-full flex-shrink-0 md:w-[256px]";
|
|
3255
|
+
var CATALOG_COVER = `relative ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.og} w-full overflow-hidden rounded-lg`;
|
|
3256
|
+
var CATALOG_TEXT = "flex min-w-0 flex-1 flex-col";
|
|
3257
|
+
var CATALOG_TITLE_ROW = `mb-3 flex items-start text-h2 ${_chunkXFRBEXQNcjs.TEXT_LINES_MIN[2]}`;
|
|
3258
|
+
var CATALOG_SUMMARY_ROW = `text-h6 ${_chunkXFRBEXQNcjs.TEXT_LINES_MIN[2]}`;
|
|
3259
|
+
var CATALOG_EXTRA_CELL_LABELS = ["Section"];
|
|
3221
3260
|
var HORIZONTAL_SIZE_TOKENS = {
|
|
3222
3261
|
default: {
|
|
3223
3262
|
padding: "p-4",
|
|
@@ -3226,64 +3265,54 @@ var HORIZONTAL_SIZE_TOKENS = {
|
|
|
3226
3265
|
summaryClamp: "line-clamp-2"
|
|
3227
3266
|
}
|
|
3228
3267
|
};
|
|
3229
|
-
function OnboardingGuideCardSkeleton({
|
|
3268
|
+
function OnboardingGuideCardSkeleton({
|
|
3269
|
+
size = "default",
|
|
3270
|
+
showTypeBadge = true,
|
|
3271
|
+
published = true,
|
|
3272
|
+
className
|
|
3273
|
+
}) {
|
|
3274
|
+
if (size === "portrait") {
|
|
3275
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel: showTypeBadge ? GUIDE_TYPE_LABEL : void 0, className });
|
|
3276
|
+
}
|
|
3230
3277
|
if (size === "catalog") {
|
|
3231
|
-
return /* @__PURE__ */ _jsxruntime.
|
|
3232
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3233
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3234
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3235
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3236
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3237
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3278
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, "block", className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_BODY, children: [
|
|
3279
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_ROW, children: [
|
|
3280
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_COVER_COL, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: CATALOG_COVER }) }),
|
|
3281
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_TEXT, children: [
|
|
3282
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_TITLE_ROW, children: [
|
|
3283
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h2", lines: 2, className: "w-3/4 lg:hidden" }),
|
|
3284
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h2", className: "hidden w-3/4 lg:flex" })
|
|
3238
3285
|
] }),
|
|
3239
|
-
/* @__PURE__ */ _jsxruntime.
|
|
3240
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-full rounded" }),
|
|
3241
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-5/6 rounded" })
|
|
3242
|
-
] })
|
|
3286
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h6", lines: 2, className: "w-full" }) })
|
|
3243
3287
|
] })
|
|
3244
3288
|
] }),
|
|
3245
|
-
/* @__PURE__ */ _jsxruntime.
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
] })
|
|
3254
|
-
},
|
|
3255
|
-
`cell-${i}`
|
|
3256
|
-
)),
|
|
3257
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 p-4", children: [
|
|
3258
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-10 w-10 shrink-0 rounded-full" }),
|
|
3259
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
|
|
3260
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-4 w-3/4 rounded" }),
|
|
3261
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-1/2 rounded" })
|
|
3262
|
-
] })
|
|
3263
|
-
] })
|
|
3264
|
-
] })
|
|
3265
|
-
] });
|
|
3289
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3290
|
+
EntityAuthorCardSkeleton,
|
|
3291
|
+
{
|
|
3292
|
+
extraCellLabels: CATALOG_EXTRA_CELL_LABELS,
|
|
3293
|
+
publishedLabel: published ? void 0 : null
|
|
3294
|
+
}
|
|
3295
|
+
)
|
|
3296
|
+
] }) });
|
|
3266
3297
|
}
|
|
3267
3298
|
if (size === "sm") {
|
|
3268
|
-
return /* @__PURE__ */ _jsxruntime.
|
|
3269
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
3270
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3271
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-3/5 rounded" }) }),
|
|
3272
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-2/5 rounded" }) }),
|
|
3273
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-11/12 rounded" }) })
|
|
3274
|
-
] }),
|
|
3275
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-3.5 rounded" }) })
|
|
3276
|
-
] });
|
|
3299
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { trailingIcon: true, className });
|
|
3277
3300
|
}
|
|
3278
3301
|
const t = HORIZONTAL_SIZE_TOKENS.default;
|
|
3279
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
3280
|
-
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3302
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
3303
|
+
"span",
|
|
3304
|
+
{
|
|
3305
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, `flex items-start gap-3 rounded-md border border-ods-border bg-ods-card ${t.padding}`, className),
|
|
3306
|
+
children: [
|
|
3307
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `inline-flex shrink-0 items-center justify-center rounded-full bg-ods-bg ${t.step}` }),
|
|
3308
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
|
|
3309
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: "block h-4 w-2/3 rounded" }),
|
|
3310
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: "block h-3 w-1/3 rounded" }),
|
|
3311
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: "block h-3 w-full rounded" })
|
|
3312
|
+
] })
|
|
3313
|
+
]
|
|
3314
|
+
}
|
|
3315
|
+
);
|
|
3287
3316
|
}
|
|
3288
3317
|
function OnboardingGuideCard({
|
|
3289
3318
|
guide,
|
|
@@ -3307,6 +3336,9 @@ function OnboardingGuideCard({
|
|
|
3307
3336
|
placeholderUrl: placeholderUrlProp,
|
|
3308
3337
|
aspect: size === "sm" ? "square" : "wide"
|
|
3309
3338
|
});
|
|
3339
|
+
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
|
|
3340
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuideCardSkeleton, { size, showTypeBadge: showTypeBadge !== false, className });
|
|
3341
|
+
}
|
|
3310
3342
|
if (size === "portrait") {
|
|
3311
3343
|
const coverImage = guide.featured_image || guide.main_video_thumbnail || guide.og_image_url || null;
|
|
3312
3344
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -3315,7 +3347,7 @@ function OnboardingGuideCard({
|
|
|
3315
3347
|
href,
|
|
3316
3348
|
target,
|
|
3317
3349
|
rel,
|
|
3318
|
-
typeLabel: showTypeBadge ?
|
|
3350
|
+
typeLabel: showTypeBadge ? GUIDE_TYPE_LABEL : void 0,
|
|
3319
3351
|
imageUrl: coverImage,
|
|
3320
3352
|
placeholderUrl,
|
|
3321
3353
|
imageAlt: guide.title,
|
|
@@ -3329,7 +3361,7 @@ function OnboardingGuideCard({
|
|
|
3329
3361
|
const coverImage = guide.featured_image || guide.main_video_thumbnail || guide.og_image_url || null;
|
|
3330
3362
|
const hasVideoCover = !!(guide.main_video_thumbnail || guide.highlight_video_thumbnail);
|
|
3331
3363
|
const stepLabel = typeof guide.step_order === "number" ? String(guide.step_order).padStart(2, "0") : "\u2014";
|
|
3332
|
-
const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ?
|
|
3364
|
+
const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ? _chunkJTSUAHDLcjs.formatDurationMMSS.call(void 0, Math.floor(guide.highlight_video_duration_ms / 1e3)) : "";
|
|
3333
3365
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3334
3366
|
_chunkV45KLJQPcjs.next_link_default,
|
|
3335
3367
|
{
|
|
@@ -3337,12 +3369,12 @@ function OnboardingGuideCard({
|
|
|
3337
3369
|
target,
|
|
3338
3370
|
rel,
|
|
3339
3371
|
prefetch: false,
|
|
3340
|
-
className:
|
|
3341
|
-
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3342
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3343
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
3372
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, "block no-underline", className),
|
|
3373
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_BODY, children: [
|
|
3374
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_ROW, children: [
|
|
3375
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_COVER_COL, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CATALOG_COVER, "bg-ods-bg"), children: [
|
|
3344
3376
|
coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3345
|
-
|
|
3377
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
3346
3378
|
{
|
|
3347
3379
|
src: coverImage,
|
|
3348
3380
|
alt: guide.title,
|
|
@@ -3359,15 +3391,15 @@ function OnboardingGuideCard({
|
|
|
3359
3391
|
className: "absolute inset-0"
|
|
3360
3392
|
}
|
|
3361
3393
|
),
|
|
3362
|
-
hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3394
|
+
hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "md" }),
|
|
3363
3395
|
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: [
|
|
3364
3396
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Clock, { className: "h-3 w-3" }),
|
|
3365
3397
|
durationLabel
|
|
3366
3398
|
] })
|
|
3367
3399
|
] }) }),
|
|
3368
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3369
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
3370
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
3400
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CATALOG_TEXT, children: [
|
|
3401
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 text-ods-text-primary text-h2", children: guide.title }) }),
|
|
3402
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CATALOG_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-2 text-ods-text-secondary text-h6", children: stripMarkdownPreview(guide.video_summary || guide.content || "") }) })
|
|
3371
3403
|
] })
|
|
3372
3404
|
] }),
|
|
3373
3405
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -3379,7 +3411,7 @@ function OnboardingGuideCard({
|
|
|
3379
3411
|
extraCells: [
|
|
3380
3412
|
{
|
|
3381
3413
|
value: `${guide.section} \xB7 Step ${stepLabel}`,
|
|
3382
|
-
label:
|
|
3414
|
+
label: CATALOG_EXTRA_CELL_LABELS[0],
|
|
3383
3415
|
uppercase: false
|
|
3384
3416
|
}
|
|
3385
3417
|
]
|
|
@@ -3394,7 +3426,7 @@ function OnboardingGuideCard({
|
|
|
3394
3426
|
const compactCover = coverImage || placeholderUrl || null;
|
|
3395
3427
|
const hasVideoCover = !guide.featured_image && !!guide.main_video_thumbnail;
|
|
3396
3428
|
const summary2 = stripMarkdownPreview(guide.video_summary || guide.content || "");
|
|
3397
|
-
const author = _optionalChain([guide, 'access',
|
|
3429
|
+
const author = _optionalChain([guide, 'access', _136 => _136.author, 'optionalAccess', _137 => _137.full_name, 'optionalAccess', _138 => _138.trim, 'call', _139 => _139()]) || "";
|
|
3398
3430
|
const subtitleParts = [`Step ${guide.step_order}`, guide.section, author].filter(
|
|
3399
3431
|
(s) => typeof s === "string" && s.length > 0
|
|
3400
3432
|
);
|
|
@@ -3405,14 +3437,14 @@ function OnboardingGuideCard({
|
|
|
3405
3437
|
target,
|
|
3406
3438
|
rel,
|
|
3407
3439
|
prefetch: false,
|
|
3408
|
-
className:
|
|
3440
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_OUTER, "group", className),
|
|
3409
3441
|
children: [
|
|
3410
3442
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
3411
|
-
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3412
|
-
hasVideoCover && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3443
|
+
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE76ONBKFcjs.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" }) }),
|
|
3444
|
+
hasVideoCover && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "sm" })
|
|
3413
3445
|
] }),
|
|
3414
3446
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3415
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
3447
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE, "font-heading"), children: guide.title }) }),
|
|
3416
3448
|
/* @__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 ") }) }),
|
|
3417
3449
|
/* @__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 }) })
|
|
3418
3450
|
] }),
|
|
@@ -3430,7 +3462,7 @@ function OnboardingGuideCard({
|
|
|
3430
3462
|
target,
|
|
3431
3463
|
rel,
|
|
3432
3464
|
prefetch: false,
|
|
3433
|
-
className:
|
|
3465
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
3434
3466
|
`flex items-start gap-3 rounded-md border border-ods-border bg-ods-card transition-colors hover:border-ods-accent ${t.padding}`,
|
|
3435
3467
|
className
|
|
3436
3468
|
),
|
|
@@ -3469,21 +3501,23 @@ function RoadmapVoteButton({
|
|
|
3469
3501
|
className
|
|
3470
3502
|
}) {
|
|
3471
3503
|
const Icon = voteType === "up" ? _chunkOOYBIS7Dcjs.ThumbsUpClassicIcon : _chunk32ASZMTVcjs.ThumbsDownClassicIcon;
|
|
3504
|
+
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
3472
3505
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3473
|
-
|
|
3506
|
+
_chunkTF5D5MNOcjs.Button,
|
|
3474
3507
|
{
|
|
3475
3508
|
variant: "outline",
|
|
3476
3509
|
onClick,
|
|
3477
3510
|
disabled,
|
|
3511
|
+
...loading ? { tabIndex: -1, "aria-hidden": true } : {},
|
|
3478
3512
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: "h-5 w-5", color }),
|
|
3479
|
-
className:
|
|
3513
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
3480
3514
|
className,
|
|
3481
3515
|
"flex h-full items-center justify-center gap-[2px] border-0 border-ods-border bg-ods-bg p-[12px]",
|
|
3482
3516
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
3483
3517
|
"transition-all hover:bg-ods-border",
|
|
3484
3518
|
isActive && "bg-ods-border"
|
|
3485
3519
|
),
|
|
3486
|
-
children: showCount && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6", children: count })
|
|
3520
|
+
children: showCount && (loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h6", className: "inline-block w-4" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6", children: count }))
|
|
3487
3521
|
}
|
|
3488
3522
|
);
|
|
3489
3523
|
}
|
|
@@ -3547,52 +3581,51 @@ function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
|
|
|
3547
3581
|
|
|
3548
3582
|
|
|
3549
3583
|
|
|
3550
|
-
|
|
3584
|
+
var ROADMAP_COMPACT_SLOT = `${_chunkXFRBEXQNcjs.MEDIA_ASPECT.square} ${_chunkXFRBEXQNcjs.TILE_SIZE.xl} shrink-0 self-start overflow-hidden rounded-md border border-ods-border p-1.5`;
|
|
3585
|
+
var ROADMAP_CARD_BODY = "flex h-full scroll-mt-24 flex-col gap-[var(--spacing-system-mf)] p-[var(--spacing-system-lf)]";
|
|
3586
|
+
var ROADMAP_CARD_HEADER = "flex w-full items-center gap-[16px]";
|
|
3587
|
+
var ROADMAP_CARD_ICON_BOX = `flex ${_chunkXFRBEXQNcjs.TILE_SIZE.feature} flex-shrink-0 items-center justify-center rounded-lg`;
|
|
3588
|
+
var ROADMAP_CARD_HEADING = "flex min-w-0 flex-1 flex-col";
|
|
3589
|
+
var ROADMAP_CARD_TITLE_ROW = `flex items-center text-h3 ${_chunkXFRBEXQNcjs.TEXT_LINES_MIN[2]}`;
|
|
3590
|
+
var ROADMAP_CARD_META_ROW = `flex items-center text-h5 ${_chunkXFRBEXQNcjs.TEXT_LINES_MIN[1]}`;
|
|
3591
|
+
var ROADMAP_CARD_SUMMARY_ROW = `flex items-center text-h4 ${_chunkXFRBEXQNcjs.TEXT_LINES_MIN[3]}`;
|
|
3592
|
+
var ROADMAP_CARD_FOOTER = "flex w-full items-center justify-between";
|
|
3593
|
+
var ROADMAP_CARD_VOTES = "flex h-[48px] overflow-hidden rounded-[6px]";
|
|
3594
|
+
var ROADMAP_CARD_FOOTER_END = "flex min-w-0 items-center gap-2";
|
|
3595
|
+
function RoadmapCardSkeleton({
|
|
3596
|
+
size = "default",
|
|
3597
|
+
votes = true,
|
|
3598
|
+
className
|
|
3599
|
+
}) {
|
|
3551
3600
|
if (size === "sm") {
|
|
3552
|
-
return /* @__PURE__ */ _jsxruntime.
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3560
|
-
|
|
3561
|
-
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
|
|
3565
|
-
|
|
3566
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-2/5 flex-1 rounded" }),
|
|
3567
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-10 shrink-0 rounded" }),
|
|
3568
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-6 w-14 shrink-0 rounded-full" })
|
|
3569
|
-
] }),
|
|
3570
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-5/6 rounded" }) })
|
|
3571
|
-
] })
|
|
3572
|
-
] });
|
|
3601
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3602
|
+
CompactCardSkeleton,
|
|
3603
|
+
{
|
|
3604
|
+
slotClassName: ROADMAP_COMPACT_SLOT,
|
|
3605
|
+
titleWidth: "w-1/2",
|
|
3606
|
+
titleBadges: ["w-12"],
|
|
3607
|
+
rows: [
|
|
3608
|
+
// The votes, Figma and screenshot marks after the meta line are the record's (optional): not drawn.
|
|
3609
|
+
{ width: "w-2/5 flex-1" },
|
|
3610
|
+
{ width: "w-5/6" }
|
|
3611
|
+
],
|
|
3612
|
+
className
|
|
3613
|
+
}
|
|
3614
|
+
);
|
|
3573
3615
|
}
|
|
3574
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3575
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3576
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3577
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3578
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3579
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3616
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, ROADMAP_CARD_BODY, className), "aria-hidden": true, children: [
|
|
3617
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADER, children: [
|
|
3618
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: ROADMAP_CARD_ICON_BOX }),
|
|
3619
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADING, children: [
|
|
3620
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-3/4" }) }),
|
|
3621
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h5", className: "w-1/3" }) })
|
|
3580
3622
|
] }),
|
|
3581
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3582
|
-
] }),
|
|
3583
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
3584
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-full rounded" }),
|
|
3585
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-5/6 rounded" }),
|
|
3586
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-3 w-4/5 rounded" })
|
|
3623
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:block", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, {}) })
|
|
3587
3624
|
] }),
|
|
3625
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadgeSkeleton, {}) }),
|
|
3626
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "h4", lines: 3, className: "w-full" }) }),
|
|
3588
3627
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
|
|
3589
|
-
/* @__PURE__ */ _jsxruntime.
|
|
3590
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-12 w-32 rounded" }),
|
|
3591
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
3592
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-6 w-14 rounded-full" }),
|
|
3593
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { className: "h-8 w-20 rounded" })
|
|
3594
|
-
] })
|
|
3595
|
-
] })
|
|
3628
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROADMAP_CARD_FOOTER, children: votes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, ROADMAP_CARD_VOTES, "w-32") }) })
|
|
3596
3629
|
] });
|
|
3597
3630
|
}
|
|
3598
3631
|
function assigneePeople(assignees) {
|
|
@@ -3616,23 +3649,25 @@ function RoadmapCard({
|
|
|
3616
3649
|
isVoting = false
|
|
3617
3650
|
}) {
|
|
3618
3651
|
const [showScreenshots, setShowScreenshots] = _react.useState.call(void 0, false);
|
|
3652
|
+
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
3619
3653
|
const logoUrl = item.icon && item.icon.startsWith("http") ? item.icon : null;
|
|
3620
|
-
const iconSrc =
|
|
3654
|
+
const iconSrc = useProxiedImageUrl(logoUrl) || null;
|
|
3655
|
+
if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapCardSkeleton, { size, votes: !!onVote, className });
|
|
3621
3656
|
if (size === "sm") {
|
|
3622
3657
|
const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
|
|
3623
3658
|
const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
|
|
3624
3659
|
const hasFigma = !!item.figmaUrl;
|
|
3625
|
-
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access',
|
|
3660
|
+
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _140 => _140.screenshots, 'optionalAccess', _141 => _141.length]), () => ( 0))) > 0;
|
|
3626
3661
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
3627
3662
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
3628
3663
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3629
3664
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3630
3665
|
"span",
|
|
3631
3666
|
{
|
|
3632
|
-
className:
|
|
3667
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, ROADMAP_COMPACT_SLOT, "flex items-center justify-center bg-ods-bg text-ods-accent"),
|
|
3633
3668
|
title: _nullishCoalesce(typeLabel, () => ( void 0)),
|
|
3634
3669
|
children: useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: item.customItemId, className: "h-6 w-6" }) : iconSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3635
|
-
|
|
3670
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
3636
3671
|
{
|
|
3637
3672
|
src: iconSrc,
|
|
3638
3673
|
alt: `${item.title} logo`,
|
|
@@ -3641,7 +3676,7 @@ function RoadmapCard({
|
|
|
3641
3676
|
unoptimized: true,
|
|
3642
3677
|
className: "h-8 w-8 object-contain"
|
|
3643
3678
|
}
|
|
3644
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase text-ods-text-secondary text-h6", children: _optionalChain([item, 'access',
|
|
3679
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase text-ods-text-secondary text-h6", children: _optionalChain([item, 'access', _142 => _142.title, 'optionalAccess', _143 => _143.substring, 'call', _144 => _144(0, 2)]) || "??" })
|
|
3645
3680
|
}
|
|
3646
3681
|
),
|
|
3647
3682
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -3694,7 +3729,7 @@ function RoadmapCard({
|
|
|
3694
3729
|
]
|
|
3695
3730
|
}
|
|
3696
3731
|
) : null,
|
|
3697
|
-
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3732
|
+
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAAECWUNVcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null
|
|
3698
3733
|
] }),
|
|
3699
3734
|
/* @__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 }) })
|
|
3700
3735
|
] })
|
|
@@ -3704,120 +3739,109 @@ function RoadmapCard({
|
|
|
3704
3739
|
}
|
|
3705
3740
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: compactHref, target, rel, className: `${COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
|
|
3706
3741
|
}
|
|
3707
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
3708
|
-
"div",
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
|
|
3725
|
-
|
|
3726
|
-
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3742
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { id, className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, ROADMAP_CARD_BODY, className), children: [
|
|
3743
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADER, children: [
|
|
3744
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, ROADMAP_CARD_ICON_BOX, "border border-ods-border bg-ods-bg"), children: iconSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3745
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
3746
|
+
{
|
|
3747
|
+
src: iconSrc,
|
|
3748
|
+
alt: `${item.title} logo`,
|
|
3749
|
+
width: 40,
|
|
3750
|
+
height: 40,
|
|
3751
|
+
unoptimized: true,
|
|
3752
|
+
className: "object-contain p-1"
|
|
3753
|
+
}
|
|
3754
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _145 => _145.title, 'optionalAccess', _146 => _146.substring, 'call', _147 => _147(0, 2)]) || "??" }) }),
|
|
3755
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_HEADING, children: [
|
|
3756
|
+
/* @__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 }) }),
|
|
3757
|
+
/* @__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: [
|
|
3758
|
+
item.quarter,
|
|
3759
|
+
", ",
|
|
3760
|
+
item.id
|
|
3761
|
+
] }) })
|
|
3762
|
+
] }),
|
|
3763
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:block", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3764
|
+
StatusBadge,
|
|
3765
|
+
{
|
|
3766
|
+
text: item.status.toUpperCase(),
|
|
3767
|
+
colorScheme: getStatusColorScheme(item.status),
|
|
3768
|
+
className: "border border-ods-border"
|
|
3769
|
+
}
|
|
3770
|
+
) })
|
|
3771
|
+
] }),
|
|
3772
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3773
|
+
StatusBadge,
|
|
3774
|
+
{
|
|
3775
|
+
text: item.status.toUpperCase(),
|
|
3776
|
+
colorScheme: getStatusColorScheme(item.status),
|
|
3777
|
+
className: "border border-ods-border"
|
|
3778
|
+
}
|
|
3779
|
+
) }),
|
|
3780
|
+
/* @__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 || "" }) }),
|
|
3781
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
|
|
3782
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_FOOTER, children: [
|
|
3783
|
+
onVote && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, ROADMAP_CARD_VOTES, "border border-ods-border bg-ods-card"), children: [
|
|
3784
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3785
|
+
RoadmapVoteButton,
|
|
3748
3786
|
{
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3787
|
+
voteType: "up",
|
|
3788
|
+
count: item.upvotes,
|
|
3789
|
+
color: "var(--color-text-secondary)",
|
|
3790
|
+
className: "rounded-none",
|
|
3791
|
+
isActive: userVote === "up",
|
|
3792
|
+
onClick: () => onVote("up"),
|
|
3793
|
+
disabled: isVoting
|
|
3752
3794
|
}
|
|
3753
|
-
)
|
|
3754
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3755
|
-
|
|
3756
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between", children: [
|
|
3757
|
-
onVote && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-[48px] overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", children: [
|
|
3758
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3759
|
-
RoadmapVoteButton,
|
|
3760
|
-
{
|
|
3761
|
-
voteType: "up",
|
|
3762
|
-
count: item.upvotes,
|
|
3763
|
-
color: "var(--color-text-secondary)",
|
|
3764
|
-
className: "rounded-none",
|
|
3765
|
-
isActive: userVote === "up",
|
|
3766
|
-
onClick: () => onVote("up"),
|
|
3767
|
-
disabled: isVoting
|
|
3768
|
-
}
|
|
3769
|
-
),
|
|
3770
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3771
|
-
RoadmapVoteButton,
|
|
3772
|
-
{
|
|
3773
|
-
voteType: "down",
|
|
3774
|
-
count: item.downvotes,
|
|
3775
|
-
className: "rounded-none",
|
|
3776
|
-
color: "var(--color-text-secondary)",
|
|
3777
|
-
isActive: userVote === "down",
|
|
3778
|
-
onClick: () => onVote("down"),
|
|
3779
|
-
disabled: isVoting
|
|
3780
|
-
}
|
|
3781
|
-
)
|
|
3782
|
-
] }),
|
|
3783
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
3784
|
-
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM7YZGRAVcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null,
|
|
3785
|
-
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3786
|
-
_chunk2QMBXGMQcjs.Button,
|
|
3787
|
-
{
|
|
3788
|
-
variant: "outline",
|
|
3789
|
-
size: "small-legacy",
|
|
3790
|
-
onClick: () => setShowScreenshots(true),
|
|
3791
|
-
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6VOOPMP5cjs.ImageClassicIcon, { className: "h-5 w-5" })
|
|
3792
|
-
}
|
|
3793
|
-
),
|
|
3794
|
-
(() => {
|
|
3795
|
-
const figmaSafe = safeHref(item.figmaUrl);
|
|
3796
|
-
return figmaSafe ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3797
|
-
_chunk2QMBXGMQcjs.Button,
|
|
3798
|
-
{
|
|
3799
|
-
variant: "outline",
|
|
3800
|
-
size: "small-legacy",
|
|
3801
|
-
openInNewTab: true,
|
|
3802
|
-
href: figmaSafe,
|
|
3803
|
-
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORO54HDFcjs.FigmaClassicIcon, { className: "h-5 w-5" })
|
|
3804
|
-
}
|
|
3805
|
-
) : null;
|
|
3806
|
-
})(),
|
|
3807
|
-
item.targetVersion && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadge, { gen: generationTierFromLabel(item.targetVersion), text: item.targetVersion })
|
|
3808
|
-
] })
|
|
3809
|
-
] }),
|
|
3810
|
-
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3811
|
-
ImageGalleryModal,
|
|
3795
|
+
),
|
|
3796
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3797
|
+
RoadmapVoteButton,
|
|
3812
3798
|
{
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3799
|
+
voteType: "down",
|
|
3800
|
+
count: item.downvotes,
|
|
3801
|
+
className: "rounded-none",
|
|
3802
|
+
color: "var(--color-text-secondary)",
|
|
3803
|
+
isActive: userVote === "down",
|
|
3804
|
+
onClick: () => onVote("down"),
|
|
3805
|
+
disabled: isVoting
|
|
3816
3806
|
}
|
|
3817
3807
|
)
|
|
3818
|
-
]
|
|
3819
|
-
|
|
3820
|
-
|
|
3808
|
+
] }),
|
|
3809
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROADMAP_CARD_FOOTER_END, children: [
|
|
3810
|
+
item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAAECWUNVcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null,
|
|
3811
|
+
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3812
|
+
_chunkTF5D5MNOcjs.Button,
|
|
3813
|
+
{
|
|
3814
|
+
variant: "outline",
|
|
3815
|
+
size: "small-legacy",
|
|
3816
|
+
onClick: () => setShowScreenshots(true),
|
|
3817
|
+
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6VOOPMP5cjs.ImageClassicIcon, { className: "h-5 w-5" })
|
|
3818
|
+
}
|
|
3819
|
+
),
|
|
3820
|
+
(() => {
|
|
3821
|
+
const figmaSafe = safeHref(item.figmaUrl);
|
|
3822
|
+
return figmaSafe ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3823
|
+
_chunkTF5D5MNOcjs.Button,
|
|
3824
|
+
{
|
|
3825
|
+
variant: "outline",
|
|
3826
|
+
size: "small-legacy",
|
|
3827
|
+
openInNewTab: true,
|
|
3828
|
+
href: figmaSafe,
|
|
3829
|
+
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORO54HDFcjs.FigmaClassicIcon, { className: "h-5 w-5" })
|
|
3830
|
+
}
|
|
3831
|
+
) : null;
|
|
3832
|
+
})(),
|
|
3833
|
+
item.targetVersion && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatusBadge, { gen: generationTierFromLabel(item.targetVersion), text: item.targetVersion })
|
|
3834
|
+
] })
|
|
3835
|
+
] }),
|
|
3836
|
+
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3837
|
+
ImageGalleryModal,
|
|
3838
|
+
{
|
|
3839
|
+
images: item.screenshots,
|
|
3840
|
+
isOpen: showScreenshots,
|
|
3841
|
+
onClose: () => setShowScreenshots(false)
|
|
3842
|
+
}
|
|
3843
|
+
)
|
|
3844
|
+
] });
|
|
3821
3845
|
}
|
|
3822
3846
|
|
|
3823
3847
|
// src/components/chat/entity-cards/program-card.tsx
|
|
@@ -3826,9 +3850,9 @@ function RoadmapCard({
|
|
|
3826
3850
|
|
|
3827
3851
|
var EDITORIAL_FRAME = CONTENT_CARD_SKELETON_FRAME_CLASS;
|
|
3828
3852
|
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)]";
|
|
3829
|
-
var EDITORIAL_ROW_THUMB =
|
|
3853
|
+
var EDITORIAL_ROW_THUMB = `relative block ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.square} w-full overflow-hidden rounded-md`;
|
|
3830
3854
|
var EDITORIAL_ROW_TEXT = "flex min-w-0 flex-col gap-[var(--spacing-system-xs)]";
|
|
3831
|
-
var EDITORIAL_FEATURE_COVER =
|
|
3855
|
+
var EDITORIAL_FEATURE_COVER = `relative block ${_chunkXFRBEXQNcjs.MEDIA_ASPECT.video} w-full overflow-hidden`;
|
|
3832
3856
|
var EDITORIAL_FEATURE_BODY = "flex flex-col gap-[var(--spacing-system-s)] p-[var(--spacing-system-l)]";
|
|
3833
3857
|
var EDITORIAL_META_ROW = "flex h-[1lh] min-w-0 items-center gap-x-[var(--spacing-system-s)] overflow-hidden whitespace-nowrap text-h6";
|
|
3834
3858
|
var EDITORIAL_PERSON_ROW = "flex h-8 min-w-0 items-center gap-[var(--spacing-system-s)]";
|
|
@@ -3843,66 +3867,71 @@ var DEFAULT_TAG_ROW = "flex flex-wrap gap-[var(--spacing-system-xsf)]";
|
|
|
3843
3867
|
var DEFAULT_GALLERY_ROW = "flex gap-[var(--spacing-system-mf)]";
|
|
3844
3868
|
var DEFAULT_GALLERY_THUMB = "relative h-24 w-24 flex-shrink-0 overflow-hidden rounded-lg md:h-40 md:w-40 xl:h-[200px] xl:w-[200px]";
|
|
3845
3869
|
var DEFAULT_FOOTER = "flex justify-end border-t border-ods-border pt-[var(--spacing-system-lf)]";
|
|
3870
|
+
var DEFAULT_HOSTS_ROW = "flex flex-wrap gap-2 md:justify-end";
|
|
3871
|
+
var DEFAULT_TAGS_FOLD = 2;
|
|
3872
|
+
var EDITORIAL_PERSON_AVATAR = { variant: "round", size: "sm" };
|
|
3873
|
+
var programActionLabel = (singular) => `View ${singular.toLowerCase()}`;
|
|
3874
|
+
function ProgramActionButton({ label, href, newTab }) {
|
|
3875
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { variant: "outline", href, openInNewTab: newTab, rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ArrowRight, { className: "h-5 w-5" }), children: label });
|
|
3876
|
+
}
|
|
3846
3877
|
function ProgramCardSkeleton({
|
|
3847
3878
|
size = "default",
|
|
3848
3879
|
eyebrow = true,
|
|
3849
3880
|
media = 0,
|
|
3850
|
-
tags = false
|
|
3881
|
+
tags = false,
|
|
3882
|
+
hosts = 1,
|
|
3883
|
+
typeLabel,
|
|
3884
|
+
actionLabel,
|
|
3885
|
+
className
|
|
3851
3886
|
}) {
|
|
3887
|
+
if (size === "portrait") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityPortraitCardSkeleton, { typeLabel, className });
|
|
3852
3888
|
if (size === "row") {
|
|
3853
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
3854
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3889
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_FRAME, EDITORIAL_ROW_GRID, className), children: [
|
|
3890
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: EDITORIAL_ROW_THUMB }),
|
|
3855
3891
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: EDITORIAL_ROW_TEXT, children: [
|
|
3856
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3857
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3858
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3892
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h3", lines: 2, className: "w-full" }),
|
|
3893
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-40" }) }),
|
|
3894
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h6", lines: 2, className: "w-full" })
|
|
3859
3895
|
] })
|
|
3860
3896
|
] });
|
|
3861
3897
|
}
|
|
3862
3898
|
if (size === "feature") {
|
|
3863
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
3864
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3899
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_FRAME, "flex flex-col", className), children: [
|
|
3900
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { as: "span", className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_FEATURE_COVER, "rounded-none") }),
|
|
3865
3901
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: EDITORIAL_FEATURE_BODY, children: [
|
|
3866
|
-
eyebrow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3867
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3868
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3869
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3902
|
+
eyebrow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h5", className: "w-28" }),
|
|
3903
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h3", lines: 2, className: "w-full" }),
|
|
3904
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-40" }) }),
|
|
3905
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h4", lines: 3, className: "w-full" }),
|
|
3870
3906
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: EDITORIAL_PERSON_ROW, children: [
|
|
3871
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3872
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3907
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJTSUAHDLcjs.SquareAvatarSkeleton, { ...EDITORIAL_PERSON_AVATAR, className: "shrink-0" }),
|
|
3908
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "h6", className: "w-40" })
|
|
3873
3909
|
] })
|
|
3874
3910
|
] })
|
|
3875
3911
|
] });
|
|
3876
3912
|
}
|
|
3877
3913
|
if (size === "sm") {
|
|
3878
|
-
return /* @__PURE__ */ _jsxruntime.
|
|
3879
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
3880
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
3881
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-3/5 rounded" }) }),
|
|
3882
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-2/5 rounded" }) }),
|
|
3883
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3 w-11/12 rounded" }) })
|
|
3884
|
-
] }),
|
|
3885
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH3RYUTNDcjs.UnifiedSkeleton, { as: "span", className: "h-3.5 w-3.5 rounded" }) })
|
|
3886
|
-
] });
|
|
3914
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactCardSkeleton, { trailingIcon: true, className });
|
|
3887
3915
|
}
|
|
3888
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
3916
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, CONTENT_CARD_SKELETON_FRAME_CLASS, DEFAULT_BODY, className), children: [
|
|
3889
3917
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_HEADER, children: [
|
|
3890
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3918
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: DEFAULT_COVER_FRAME }),
|
|
3891
3919
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_TEXT, children: [
|
|
3892
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TITLE, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3920
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TITLE, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", lines: 2, className: "w-3/4" }) }),
|
|
3893
3921
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_META_ROW, children: [
|
|
3894
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3895
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3922
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-32" }),
|
|
3923
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", className: "w-40" })
|
|
3896
3924
|
] }),
|
|
3897
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_DESCRIPTION, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3898
|
-
tags && /* @__PURE__ */ _jsxruntime.
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
] })
|
|
3902
|
-
] })
|
|
3925
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_DESCRIPTION, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { as: "span", type: "inherit", lines: 3, className: "w-full" }) }),
|
|
3926
|
+
tags && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children: Array.from({ length: DEFAULT_TAGS_FOLD }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJTSUAHDLcjs.TagSkeleton, {}, i)) })
|
|
3927
|
+
] }),
|
|
3928
|
+
hosts > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_HOSTS_ROW, children: Array.from({ length: hosts }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJTSUAHDLcjs.SquareAvatarSkeleton, { variant: "round", size: "sm" }, i)) })
|
|
3903
3929
|
] }),
|
|
3904
|
-
media > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_GALLERY_ROW, children: Array.from({ length: media }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3905
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children:
|
|
3930
|
+
media > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_GALLERY_ROW, children: Array.from({ length: media }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: DEFAULT_GALLERY_THUMB }, i)) }),
|
|
3931
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children: actionLabel ? (
|
|
3932
|
+
// The action's words are copy: the real button, not a control while it loads.
|
|
3933
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { inert: true, "aria-hidden": true, className: "flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProgramActionButton, { label: actionLabel }) })
|
|
3934
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.InteractiveSkeleton.Button, { size: "default", className: "w-40" }) })
|
|
3906
3935
|
] });
|
|
3907
3936
|
}
|
|
3908
3937
|
function getHosts(hosts) {
|
|
@@ -3949,10 +3978,10 @@ function MediaGallery({ images, title }) {
|
|
|
3949
3978
|
/* @__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,
|
|
3950
3979
|
"div",
|
|
3951
3980
|
{
|
|
3952
|
-
className:
|
|
3981
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, DEFAULT_GALLERY_THUMB, "group/thumb cursor-pointer"),
|
|
3953
3982
|
onClick: (e) => openImageModal(index, e),
|
|
3954
3983
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3955
|
-
|
|
3984
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
3956
3985
|
{
|
|
3957
3986
|
src: mediaItem.media_url,
|
|
3958
3987
|
alt: `${title} photo ${index + 1}`,
|
|
@@ -3992,19 +4021,19 @@ function ProgramEditorialCard({
|
|
|
3992
4021
|
playable,
|
|
3993
4022
|
className
|
|
3994
4023
|
}) {
|
|
3995
|
-
const edgeColor =
|
|
4024
|
+
const edgeColor = _chunk3LW5TD54cjs.useImageEdgeColor.call(void 0, feature ? cover : null, "transparent");
|
|
3996
4025
|
const meta = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: EDITORIAL_META_ROW, children: [
|
|
3997
4026
|
date && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-flamingo-pink", children: date }),
|
|
3998
|
-
[typeMeta, feature ? null : _optionalChain([profile, 'optionalAccess',
|
|
4027
|
+
[typeMeta, feature ? null : _optionalChain([profile, 'optionalAccess', _148 => _148.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: [
|
|
3999
4028
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", children: "\u2022" }),
|
|
4000
4029
|
part
|
|
4001
4030
|
] }, part))
|
|
4002
4031
|
] });
|
|
4003
4032
|
if (!feature) {
|
|
4004
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className:
|
|
4005
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
4006
|
-
cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4007
|
-
playable && cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4033
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_ROW_GRID, className), children: [
|
|
4034
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_ROW_THUMB, "bg-ods-bg"), children: [
|
|
4035
|
+
cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE76ONBKFcjs.next_image_default, { src: cover, alt: "", fill: true, sizes: "120px", className: "object-cover", unoptimized: true }),
|
|
4036
|
+
playable && cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "md" })
|
|
4008
4037
|
] }),
|
|
4009
4038
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: EDITORIAL_ROW_TEXT, children: [
|
|
4010
4039
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 min-h-[2lh] text-ods-text-primary text-h3", children: title }),
|
|
@@ -4013,15 +4042,15 @@ function ProgramEditorialCard({
|
|
|
4013
4042
|
] })
|
|
4014
4043
|
] });
|
|
4015
4044
|
}
|
|
4016
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className:
|
|
4045
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, "flex flex-col", className), children: [
|
|
4017
4046
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4018
4047
|
"span",
|
|
4019
4048
|
{
|
|
4020
|
-
className:
|
|
4049
|
+
className: _chunk65VVJSQZcjs.cn.call(void 0, EDITORIAL_FEATURE_COVER, "transition-colors duration-300"),
|
|
4021
4050
|
style: { backgroundColor: edgeColor },
|
|
4022
4051
|
children: [
|
|
4023
4052
|
cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4024
|
-
|
|
4053
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
4025
4054
|
{
|
|
4026
4055
|
src: cover,
|
|
4027
4056
|
alt: "",
|
|
@@ -4031,7 +4060,7 @@ function ProgramEditorialCard({
|
|
|
4031
4060
|
unoptimized: true
|
|
4032
4061
|
}
|
|
4033
4062
|
),
|
|
4034
|
-
playable && cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4063
|
+
playable && cover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "lg" })
|
|
4035
4064
|
]
|
|
4036
4065
|
}
|
|
4037
4066
|
),
|
|
@@ -4042,13 +4071,12 @@ function ProgramEditorialCard({
|
|
|
4042
4071
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-3 min-h-[3lh] text-ods-text-secondary text-h4", children: description }),
|
|
4043
4072
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_PERSON_ROW, children: profile && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
4044
4073
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4045
|
-
|
|
4074
|
+
_chunkJTSUAHDLcjs.SquareAvatar,
|
|
4046
4075
|
{
|
|
4047
|
-
|
|
4076
|
+
...EDITORIAL_PERSON_AVATAR,
|
|
4048
4077
|
src: profile.avatarUrl || void 0,
|
|
4049
4078
|
alt: profile.name,
|
|
4050
|
-
fallback: profile.name.charAt(0).toUpperCase()
|
|
4051
|
-
size: "sm"
|
|
4079
|
+
fallback: profile.name.charAt(0).toUpperCase()
|
|
4052
4080
|
}
|
|
4053
4081
|
),
|
|
4054
4082
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "truncate text-h6", children: [
|
|
@@ -4090,6 +4118,21 @@ function ProgramCard({
|
|
|
4090
4118
|
placeholderUrl: placeholderUrlProp,
|
|
4091
4119
|
aspect: size === "sm" || size === "row" ? "square" : "wide"
|
|
4092
4120
|
});
|
|
4121
|
+
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) {
|
|
4122
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4123
|
+
ProgramCardSkeleton,
|
|
4124
|
+
{
|
|
4125
|
+
size,
|
|
4126
|
+
eyebrow: !!eyebrow,
|
|
4127
|
+
media: media.filter((m) => isImageMedia(m)).length,
|
|
4128
|
+
tags: tags.length > 0,
|
|
4129
|
+
hosts: getHosts(item.hosts).length,
|
|
4130
|
+
typeLabel: size === "portrait" && showTypeBadge ? config.labels.singular : void 0,
|
|
4131
|
+
actionLabel: programActionLabel(config.labels.singular),
|
|
4132
|
+
className
|
|
4133
|
+
}
|
|
4134
|
+
);
|
|
4135
|
+
}
|
|
4093
4136
|
const coverImage = item.cover_url;
|
|
4094
4137
|
const images = media.filter((m) => isImageMedia(m));
|
|
4095
4138
|
const hosts = getHosts(item.hosts);
|
|
@@ -4102,7 +4145,7 @@ function ProgramCard({
|
|
|
4102
4145
|
// Compact densities join plain strings, so the zone rides inline here; the
|
|
4103
4146
|
// default density below renders it as its own styled span instead.
|
|
4104
4147
|
} = programMetaLine(item, config.type, programMetaFormatters(PROGRAM_META_RENDERERS));
|
|
4105
|
-
const compactDate =
|
|
4148
|
+
const compactDate = _chunkJTSUAHDLcjs.formatProgramDate.call(void 0, zonedDate, "medium");
|
|
4106
4149
|
if (size === "portrait") {
|
|
4107
4150
|
const profile = programItemToStripProfile(item);
|
|
4108
4151
|
const dateMeta = compactMetaLine;
|
|
@@ -4135,7 +4178,7 @@ function ProgramCard({
|
|
|
4135
4178
|
description: item.description,
|
|
4136
4179
|
cover: coverImage || placeholderUrl || null,
|
|
4137
4180
|
eyebrow,
|
|
4138
|
-
date:
|
|
4181
|
+
date: _chunkJTSUAHDLcjs.formatProgramDate.call(void 0, zonedDate, "weekday"),
|
|
4139
4182
|
typeMeta: compactTypeMetaValue,
|
|
4140
4183
|
profile: programItemToStripProfile(item),
|
|
4141
4184
|
playable: isPlayable,
|
|
@@ -4147,23 +4190,23 @@ function ProgramCard({
|
|
|
4147
4190
|
const itemDate = compactDate;
|
|
4148
4191
|
const compactCover = coverImage || placeholderUrl || null;
|
|
4149
4192
|
const typeMeta = compactTypeMetaValue;
|
|
4150
|
-
const subtitleParts = [itemDate, typeMeta, _optionalChain([config, 'access',
|
|
4193
|
+
const subtitleParts = [itemDate, typeMeta, _optionalChain([config, 'access', _149 => _149.labels, 'optionalAccess', _150 => _150.singular])].filter(
|
|
4151
4194
|
(s) => typeof s === "string" && s.length > 0
|
|
4152
4195
|
);
|
|
4153
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className:
|
|
4196
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_OUTER, "group", className), children: [
|
|
4154
4197
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
4155
|
-
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4156
|
-
isPlayable && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4198
|
+
compactCover ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE76ONBKFcjs.next_image_default, { src: compactCover, alt: item.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: 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" }) }),
|
|
4199
|
+
isPlayable && compactCover && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "sm" })
|
|
4157
4200
|
] }),
|
|
4158
4201
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
4159
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
4202
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, COMPACT_CARD_TITLE, "font-heading"), children: item.title }) }),
|
|
4160
4203
|
/* @__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 ") }) }),
|
|
4161
4204
|
/* @__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 }) })
|
|
4162
4205
|
] }),
|
|
4163
4206
|
/* @__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" }) })
|
|
4164
4207
|
] });
|
|
4165
4208
|
}
|
|
4166
|
-
const dateFormat =
|
|
4209
|
+
const dateFormat = _chunkJTSUAHDLcjs.formatProgramDate.call(void 0, zonedDate, "weekday");
|
|
4167
4210
|
const { typeMeta: defaultTypeMeta, audience: defaultAudience } = programMetaLine(
|
|
4168
4211
|
item,
|
|
4169
4212
|
config.type,
|
|
@@ -4194,11 +4237,11 @@ function ProgramCard({
|
|
|
4194
4237
|
return null;
|
|
4195
4238
|
};
|
|
4196
4239
|
const endAt = "end_at" in item && typeof item.end_at === "string" ? item.end_at : null;
|
|
4197
|
-
const dateLabel = _nullishCoalesce(
|
|
4240
|
+
const dateLabel = _nullishCoalesce(_chunkJTSUAHDLcjs.formatProgramDateRange.call(void 0, zonedDate, endAt), () => ( dateFormat));
|
|
4198
4241
|
const cardHeader = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_HEADER, children: [
|
|
4199
4242
|
coverImage && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_COVER_FRAME, children: [
|
|
4200
4243
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4201
|
-
|
|
4244
|
+
_chunkE76ONBKFcjs.next_image_default,
|
|
4202
4245
|
{
|
|
4203
4246
|
src: coverImage,
|
|
4204
4247
|
alt: item.title,
|
|
@@ -4208,7 +4251,7 @@ function ProgramCard({
|
|
|
4208
4251
|
unoptimized: true
|
|
4209
4252
|
}
|
|
4210
4253
|
),
|
|
4211
|
-
isPlayable && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4254
|
+
isPlayable && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSETFUCZAcjs.CardHoverPlay, { size: "md" })
|
|
4212
4255
|
] }),
|
|
4213
4256
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_TEXT, children: [
|
|
4214
4257
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: DEFAULT_TITLE, children: item.title }),
|
|
@@ -4223,10 +4266,12 @@ function ProgramCard({
|
|
|
4223
4266
|
] })
|
|
4224
4267
|
] }),
|
|
4225
4268
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: DEFAULT_DESCRIPTION, children: item.description }),
|
|
4226
|
-
tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4269
|
+
tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJTSUAHDLcjs.Tag, { as: "span", label: tag, variant: "outline" }, tag)) })
|
|
4227
4270
|
] }),
|
|
4228
|
-
hosts.length > 0 &&
|
|
4229
|
-
|
|
4271
|
+
hosts.length > 0 && // A type whose cards always show hosts (`cardShowsHosts`) draws them while loading; elsewhere only some
|
|
4272
|
+
// records have hosts, so the row is record-dependent.
|
|
4273
|
+
/* @__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,
|
|
4274
|
+
_chunkJTSUAHDLcjs.SquareAvatar,
|
|
4230
4275
|
{
|
|
4231
4276
|
variant: "round",
|
|
4232
4277
|
src: host.avatar || void 0,
|
|
@@ -4237,8 +4282,8 @@ function ProgramCard({
|
|
|
4237
4282
|
`${item.id}-host-${index}`
|
|
4238
4283
|
)) })
|
|
4239
4284
|
] });
|
|
4240
|
-
const cardFrameClass =
|
|
4241
|
-
const actionLabel =
|
|
4285
|
+
const cardFrameClass = _chunk65VVJSQZcjs.cn.call(void 0, DEFAULT_BODY, className);
|
|
4286
|
+
const actionLabel = programActionLabel(config.labels.singular);
|
|
4242
4287
|
if (wholeCardClickable) {
|
|
4243
4288
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "a", href, target, rel, className: cardFrameClass, children: [
|
|
4244
4289
|
cardHeader,
|
|
@@ -4259,33 +4304,10 @@ function ProgramCard({
|
|
|
4259
4304
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ContentCardFrame, { as: "div", className: cardFrameClass, children: [
|
|
4260
4305
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target, rel, className: "block", children: cardHeader }),
|
|
4261
4306
|
images.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGallery, { images, title: item.title }),
|
|
4262
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4263
|
-
_chunk2QMBXGMQcjs.Button,
|
|
4264
|
-
{
|
|
4265
|
-
variant: "outline",
|
|
4266
|
-
href,
|
|
4267
|
-
openInNewTab: target === "_blank",
|
|
4268
|
-
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ArrowRight, { className: "h-5 w-5" }),
|
|
4269
|
-
children: actionLabel
|
|
4270
|
-
}
|
|
4271
|
-
) })
|
|
4307
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProgramActionButton, { label: actionLabel, href, newTab: target === "_blank" }) })
|
|
4272
4308
|
] });
|
|
4273
4309
|
}
|
|
4274
4310
|
|
|
4275
|
-
// src/utils/image-proxy-stub.ts
|
|
4276
|
-
function getProxiedImageUrl2(imageUrl) {
|
|
4277
|
-
if (!imageUrl) return null;
|
|
4278
|
-
if (imageUrl.startsWith("http://") || imageUrl.startsWith("https://")) {
|
|
4279
|
-
if (imageUrl.includes("/api/image-proxy")) {
|
|
4280
|
-
return imageUrl;
|
|
4281
|
-
}
|
|
4282
|
-
if (imageUrl.includes("openmsp.ai")) {
|
|
4283
|
-
return imageUrl;
|
|
4284
|
-
}
|
|
4285
|
-
return `/api/image-proxy?url=${encodeURIComponent(imageUrl)}`;
|
|
4286
|
-
}
|
|
4287
|
-
return imageUrl;
|
|
4288
|
-
}
|
|
4289
4311
|
|
|
4290
4312
|
|
|
4291
4313
|
|
|
@@ -4447,4 +4469,31 @@ function getProxiedImageUrl2(imageUrl) {
|
|
|
4447
4469
|
|
|
4448
4470
|
|
|
4449
4471
|
|
|
4450
|
-
|
|
4472
|
+
|
|
4473
|
+
|
|
4474
|
+
|
|
4475
|
+
|
|
4476
|
+
|
|
4477
|
+
|
|
4478
|
+
|
|
4479
|
+
|
|
4480
|
+
|
|
4481
|
+
|
|
4482
|
+
|
|
4483
|
+
|
|
4484
|
+
|
|
4485
|
+
|
|
4486
|
+
|
|
4487
|
+
|
|
4488
|
+
|
|
4489
|
+
|
|
4490
|
+
|
|
4491
|
+
|
|
4492
|
+
|
|
4493
|
+
|
|
4494
|
+
|
|
4495
|
+
|
|
4496
|
+
|
|
4497
|
+
|
|
4498
|
+
|
|
4499
|
+
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;
|