@flamingo-stack/openframe-frontend-core 0.0.765 → 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-VLJFAGMR.cjs → chunk-7U3ELNGC.cjs} +103 -61
- package/dist/{chunk-T5FRANE6.cjs → chunk-7VI7TOGI.cjs} +509 -353
- package/dist/{chunk-PYK4ZSEZ.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-2Y36SQSZ.cjs → chunk-JGWN6GH5.cjs} +11 -7
- package/dist/{chunk-2OPYWMAV.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-RQQVN7LC.cjs → chunk-NF3PBWDJ.cjs} +521 -413
- package/dist/{chunk-BVA7YX4P.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-MDB65HQC.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-B3W7RCQF.cjs → chunk-UW7UWUZU.cjs} +105 -117
- package/dist/{chunk-MWLD6NXV.cjs → chunk-VFZFCRAL.cjs} +4 -6
- package/dist/{chunk-FMH2DYBC.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-QQ7LKNNP.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-WA4X55XY.cjs → chunk-ZV45VS6K.cjs} +359 -432
- package/dist/{cloud-tenants-6PSTDE3F.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.map +1 -1
- package/dist/components/ui/page-actions.js +16 -20
- 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-O5PZ4IR6.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-4OU73KTO.cjs → knowledge-AJ36PMK2.cjs} +36 -40
- package/dist/{logs-R6ZH32UU.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-XN4TDX3G.cjs → policies-AJHSP6ZY.cjs} +39 -43
- package/dist/{remote-session-7NSC7DI5.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-53VHKMY3.cjs → scripts-4YO2QL36.cjs} +42 -46
- package/dist/{software-update-KLJSMAUM.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 +25 -29
- 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-H3RYUTND.cjs +0 -142
- package/dist/chunk-JB424IQK.cjs +0 -404
- 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-UI2TLQWA.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
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
import { cn } from '../../utils/cn';
|
|
4
4
|
import { getPlatformBrandClasses } from '../../utils/platform-identity';
|
|
5
5
|
import { PlatformMark } from '../chat/utils/icon-loading';
|
|
6
|
+
import { UnifiedSkeleton } from '../loading/unified-skeleton';
|
|
7
|
+
import { useLoadingScope } from '../ui/loading-scope';
|
|
6
8
|
|
|
7
9
|
interface PlatformBadgeProps {
|
|
8
10
|
platform?: {
|
|
@@ -33,7 +35,15 @@ const sizeClasses = {
|
|
|
33
35
|
},
|
|
34
36
|
};
|
|
35
37
|
|
|
38
|
+
/** The chip's frame, read by the badge and by its skeleton, so the skeleton is the badge's size. */
|
|
39
|
+
const PLATFORM_BADGE_FRAME_CLASS = 'inline-flex items-center rounded-full border';
|
|
40
|
+
|
|
36
41
|
export function PlatformBadge({ platform, size = 'sm', showLabel = true, className }: PlatformBadgeProps) {
|
|
42
|
+
// ONE switch: while the record is read its platform is not known and the badge is its skeleton; a platform it is
|
|
43
|
+
// given in a loading scope is the page's own and is drawn as it is.
|
|
44
|
+
if (useLoadingScope() && !platform) {
|
|
45
|
+
return <PlatformBadgeSkeleton size={size} showLabel={showLabel} className={className} />;
|
|
46
|
+
}
|
|
37
47
|
if (!platform) {
|
|
38
48
|
return null;
|
|
39
49
|
}
|
|
@@ -46,7 +56,7 @@ export function PlatformBadge({ platform, size = 'sm', showLabel = true, classNa
|
|
|
46
56
|
return (
|
|
47
57
|
<div
|
|
48
58
|
className={cn(
|
|
49
|
-
|
|
59
|
+
PLATFORM_BADGE_FRAME_CLASS,
|
|
50
60
|
sizes.container,
|
|
51
61
|
colors.accentBgSoft,
|
|
52
62
|
colors.accentBorderSoft,
|
|
@@ -60,3 +70,33 @@ export function PlatformBadge({ platform, size = 'sm', showLabel = true, classNa
|
|
|
60
70
|
</div>
|
|
61
71
|
);
|
|
62
72
|
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* The badge's box per size, for its skeleton: border + vertical padding + the taller of the mark and the label's
|
|
76
|
+
* line (the label is `text-h6`, so `lh` is its line height at every width).
|
|
77
|
+
*/
|
|
78
|
+
const PLATFORM_BADGE_SKELETON_SIZE = {
|
|
79
|
+
xs: { height: 'h-[calc(max(1lh,0.75rem)+0.25rem+2px)]', width: 'w-20', iconOnly: 'w-[calc(0.75rem+0.75rem+2px)]' },
|
|
80
|
+
sm: { height: 'h-[calc(max(1lh,1rem)+0.5rem+2px)]', width: 'w-24', iconOnly: 'w-[calc(1rem+1rem+2px)]' },
|
|
81
|
+
md: { height: 'h-[calc(max(1lh,1.25rem)+0.75rem+2px)]', width: 'w-28', iconOnly: 'w-[calc(1.25rem+1.25rem+2px)]' },
|
|
82
|
+
} as const;
|
|
83
|
+
|
|
84
|
+
/** A platform badge while its record is read: one shape of the badge's height at its size. */
|
|
85
|
+
export function PlatformBadgeSkeleton({
|
|
86
|
+
size = 'sm',
|
|
87
|
+
showLabel = true,
|
|
88
|
+
className,
|
|
89
|
+
}: Pick<PlatformBadgeProps, 'size' | 'showLabel' | 'className'>) {
|
|
90
|
+
const box = PLATFORM_BADGE_SKELETON_SIZE[size];
|
|
91
|
+
return (
|
|
92
|
+
<UnifiedSkeleton
|
|
93
|
+
as="span"
|
|
94
|
+
className={cn(
|
|
95
|
+
'inline-block rounded-full align-middle text-h6',
|
|
96
|
+
box.height,
|
|
97
|
+
showLabel ? box.width : box.iconOnly,
|
|
98
|
+
className,
|
|
99
|
+
)}
|
|
100
|
+
/>
|
|
101
|
+
);
|
|
102
|
+
}
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
import { Check } from 'lucide-react';
|
|
4
4
|
import type React from 'react';
|
|
5
5
|
import { useEffect, useRef } from 'react';
|
|
6
|
-
import {
|
|
6
|
+
import { CONTROL_SIZE, TILE_SIZE } from '../../styles/component-sizes';
|
|
7
|
+
import { cn } from '../../utils/cn';
|
|
7
8
|
import { LoadingRegion } from '../loading/loading-region';
|
|
9
|
+
import { TextLineSkeleton, UnifiedSkeleton } from '../loading/unified-skeleton';
|
|
8
10
|
import { Badge, Input } from '../ui';
|
|
11
|
+
import { useLoadingScope } from '../ui/loading-scope';
|
|
9
12
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip';
|
|
10
13
|
|
|
11
14
|
/** Option ids are whatever the consumer keys its rows by — string (UUID / enum value) or numeric row id. */
|
|
@@ -68,6 +71,9 @@ interface PushButtonSelectorProps<Id extends SelectableOptionId = string> {
|
|
|
68
71
|
isLoading?: boolean;
|
|
69
72
|
error?: string | null;
|
|
70
73
|
skeletonCount?: number;
|
|
74
|
+
/** Whether the option rows carry a description line, for the skeleton drawn before the rows arrive (default
|
|
75
|
+
* true; with rows given, the rows decide). */
|
|
76
|
+
optionDescriptions?: boolean;
|
|
71
77
|
sections?: SectionDefinition[]; // Optional sections for grouping options
|
|
72
78
|
/** Built-in server-side search input (see PushButtonSelectorSearch). */
|
|
73
79
|
search?: PushButtonSelectorSearch;
|
|
@@ -79,39 +85,120 @@ interface PushButtonSelectorProps<Id extends SelectableOptionId = string> {
|
|
|
79
85
|
footer?: React.ReactNode;
|
|
80
86
|
}
|
|
81
87
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
/** The selector's layout, read by the selector and by its skeleton, so the skeleton is the selector's size. */
|
|
89
|
+
const SELECTOR_STACK_CLASS = 'space-y-4';
|
|
90
|
+
const SELECTOR_TITLE_CLASS = 'text-ods-text-primary text-h5';
|
|
91
|
+
const SELECTOR_HELP_CLASS = 'text-ods-text-secondary text-h6';
|
|
92
|
+
const OPTION_LIST_CLASS = 'space-y-3';
|
|
93
|
+
const SECTIONED_LIST_CLASS = 'space-y-4';
|
|
94
|
+
const SECTION_CLASS = 'space-y-2';
|
|
95
|
+
const SECTION_HEADER_CLASS = 'flex items-center gap-2 px-1';
|
|
96
|
+
const SECTION_LABEL_CLASS = 'font-semibold text-ods-text-primary text-h6';
|
|
97
|
+
const SECTION_DESCRIPTION_CLASS = 'text-ods-text-tertiary text-h6';
|
|
98
|
+
const OPTION_FRAME_CLASS = 'rounded-lg border p-4';
|
|
99
|
+
const OPTION_ROW_CLASS = 'flex items-center justify-between gap-4';
|
|
100
|
+
/** The row's lead: its icon, then its name and description. */
|
|
101
|
+
const OPTION_LEAD_CLASS = 'flex min-w-0 flex-1 items-center gap-3';
|
|
102
|
+
/** The selection box's frame; the box itself is static chrome, so the skeleton draws it for real (unchecked). */
|
|
103
|
+
const SELECTION_BOX_CLASS = `flex ${CONTROL_SIZE.selection} flex-shrink-0 items-center justify-center rounded border-2`;
|
|
104
|
+
const SELECTION_BOX_IDLE_CLASS = 'border-ods-border';
|
|
105
|
+
/** The box an option's icon sits in, read by the row and by its skeleton, so the skeleton's icon is the row's. */
|
|
106
|
+
const OPTION_ICON_BOX_CLASS = `flex ${TILE_SIZE.sm} shrink-0 items-center justify-center`;
|
|
107
|
+
/** An option row's resting surface (not selected, not disabled). */
|
|
108
|
+
const OPTION_IDLE_SURFACE_CLASS = 'border-ods-border bg-ods-bg';
|
|
109
|
+
|
|
110
|
+
/** One option row while it is read: the row's own frame, an icon box, its name (and description) lines and the
|
|
111
|
+
* selection box. */
|
|
112
|
+
function OptionRowSkeleton({ description = true }: { description?: boolean }) {
|
|
113
|
+
return (
|
|
114
|
+
<div className={cn(OPTION_FRAME_CLASS, OPTION_IDLE_SURFACE_CLASS)}>
|
|
115
|
+
<div className={OPTION_ROW_CLASS}>
|
|
116
|
+
<div className={OPTION_LEAD_CLASS}>
|
|
117
|
+
<UnifiedSkeleton className={OPTION_ICON_BOX_CLASS} />
|
|
118
|
+
<div className="min-w-0 flex-1">
|
|
119
|
+
<TextLineSkeleton type="h6" className="w-24" />
|
|
120
|
+
{description && <TextLineSkeleton type="h6" className="w-36" />}
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
<div className={cn(SELECTION_BOX_CLASS, SELECTION_BOX_IDLE_CLASS)} aria-hidden />
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** A section's header, drawn for real: its label and description are the page's own words. */
|
|
130
|
+
function SectionHeader({ section }: { section: SectionDefinition }) {
|
|
131
|
+
return (
|
|
132
|
+
<div className={SECTION_HEADER_CLASS}>
|
|
133
|
+
{section.icon && <div className="text-ods-text-secondary">{section.icon}</div>}
|
|
134
|
+
<div>
|
|
135
|
+
<div className={SECTION_LABEL_CLASS}>{section.label}</div>
|
|
136
|
+
{section.description && <div className={SECTION_DESCRIPTION_CLASS}>{section.description}</div>}
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/** Option rows while they are read, grouped under the real section headers when there are sections. */
|
|
143
|
+
function OptionListSkeleton({
|
|
144
|
+
count,
|
|
145
|
+
sections,
|
|
146
|
+
description,
|
|
90
147
|
}: {
|
|
148
|
+
count: number;
|
|
149
|
+
sections?: SectionDefinition[];
|
|
150
|
+
description?: boolean;
|
|
151
|
+
}) {
|
|
152
|
+
const rows = (n: number) =>
|
|
153
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: skeleton rows never reorder
|
|
154
|
+
Array.from({ length: n }, (_, i) => <OptionRowSkeleton key={i} description={description} />);
|
|
155
|
+
if (!sections || sections.length === 0) return <div className={OPTION_LIST_CLASS}>{rows(count)}</div>;
|
|
156
|
+
const perSection = Math.max(1, Math.round(count / sections.length));
|
|
157
|
+
return (
|
|
158
|
+
<div className={SECTIONED_LIST_CLASS}>
|
|
159
|
+
{sections.map(section => (
|
|
160
|
+
<div key={section.id} className={SECTION_CLASS}>
|
|
161
|
+
<SectionHeader section={section} />
|
|
162
|
+
<div className={SECTION_CLASS}>{rows(perSection)}</div>
|
|
163
|
+
</div>
|
|
164
|
+
))}
|
|
165
|
+
</div>
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export interface PushButtonSelectorSkeletonProps {
|
|
170
|
+
/** How many option rows to draw (the selector's `skeletonCount`). */
|
|
171
|
+
count?: number;
|
|
172
|
+
/** The selector's title and help text: static copy, drawn as they are. */
|
|
173
|
+
title?: string;
|
|
174
|
+
helpText?: string;
|
|
175
|
+
/** Sections, whose headers are drawn as they are, each over its share of the rows. */
|
|
176
|
+
sections?: SectionDefinition[];
|
|
177
|
+
/** Whether the rows carry a description line under the name (default true). */
|
|
178
|
+
description?: boolean;
|
|
91
179
|
/** The loading state announces itself (`LoadingRegion`). `false` inside another loading region. Default `true`. */
|
|
92
180
|
region?: boolean;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
181
|
+
className?: string;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* The selector while its options are read: its title, section headers and help text drawn for real, every option
|
|
186
|
+
* row a skeleton of the row. `PushButtonSelector` draws it while `isLoading` and in a loading scope.
|
|
187
|
+
*/
|
|
188
|
+
export function PushButtonSelectorSkeleton({
|
|
189
|
+
count = 3,
|
|
190
|
+
title,
|
|
191
|
+
helpText,
|
|
192
|
+
sections,
|
|
193
|
+
description,
|
|
194
|
+
region = true,
|
|
195
|
+
className,
|
|
196
|
+
}: PushButtonSelectorSkeletonProps) {
|
|
96
197
|
return (
|
|
97
|
-
<LoadingRegion label="Loading options" announce={region} className=
|
|
98
|
-
{
|
|
99
|
-
<
|
|
100
|
-
|
|
101
|
-
<div key={i} className="rounded-lg border border-ods-border bg-ods-bg p-4">
|
|
102
|
-
<div className="flex items-center justify-between gap-4">
|
|
103
|
-
<div className="flex items-center gap-3">
|
|
104
|
-
<UnifiedSkeleton className="h-8 w-8" />
|
|
105
|
-
<div>
|
|
106
|
-
<UnifiedSkeleton variant="text" className="mb-2 h-4 w-24" />
|
|
107
|
-
<UnifiedSkeleton variant="text" className="h-4 w-36" />
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
<UnifiedSkeleton className="h-6 w-6" />
|
|
111
|
-
</div>
|
|
112
|
-
</div>
|
|
113
|
-
))}
|
|
114
|
-
</div>
|
|
198
|
+
<LoadingRegion label="Loading options" announce={region} className={cn(SELECTOR_STACK_CLASS, className)}>
|
|
199
|
+
{title && <h3 className={SELECTOR_TITLE_CLASS}>{title}</h3>}
|
|
200
|
+
<OptionListSkeleton count={count} sections={sections} description={description} />
|
|
201
|
+
{helpText && <div className={SELECTOR_HELP_CLASS}>{helpText}</div>}
|
|
115
202
|
</LoadingRegion>
|
|
116
203
|
);
|
|
117
204
|
}
|
|
@@ -141,6 +228,7 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
141
228
|
isLoading = false,
|
|
142
229
|
error = null,
|
|
143
230
|
skeletonCount = 3,
|
|
231
|
+
optionDescriptions = true,
|
|
144
232
|
sections,
|
|
145
233
|
search,
|
|
146
234
|
lazyLoad,
|
|
@@ -152,6 +240,11 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
152
240
|
// (before the early returns) per the rules of hooks. Pass a STABLE
|
|
153
241
|
// onLoadMore (react-query's fetchNextPage is) — an inline arrow re-arms
|
|
154
242
|
// the observer each render (harmless, just wasteful).
|
|
243
|
+
// A loading scope is a loading state of its own: the selector draws its skeleton, whatever `isLoading` says.
|
|
244
|
+
const inScope = useLoadingScope();
|
|
245
|
+
const loading = isLoading || inScope;
|
|
246
|
+
// The rows' skeleton takes the given rows' shape (a name only, or a name and a description) when there are rows.
|
|
247
|
+
const skeletonDescription = options.length > 0 ? options.some(option => !!option.description) : optionDescriptions;
|
|
155
248
|
const scrollRef = useRef<HTMLDivElement | null>(null);
|
|
156
249
|
const sentinelRef = useRef<HTMLDivElement | null>(null);
|
|
157
250
|
const lazyHasMore = lazyLoad?.hasMore ?? false;
|
|
@@ -196,11 +289,16 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
196
289
|
|
|
197
290
|
// LOADING / ERROR STATES — legacy (unframed) consumers keep the historical
|
|
198
291
|
// whole-component swap, byte-identical.
|
|
199
|
-
if (
|
|
292
|
+
if (loading && !framed) {
|
|
200
293
|
return (
|
|
201
|
-
<
|
|
202
|
-
|
|
203
|
-
|
|
294
|
+
<PushButtonSelectorSkeleton
|
|
295
|
+
count={inScope && options.length > 0 ? options.length : skeletonCount}
|
|
296
|
+
title={title}
|
|
297
|
+
helpText={helpText}
|
|
298
|
+
sections={sections}
|
|
299
|
+
description={skeletonDescription}
|
|
300
|
+
className={className}
|
|
301
|
+
/>
|
|
204
302
|
);
|
|
205
303
|
}
|
|
206
304
|
if (error && !framed) {
|
|
@@ -244,22 +342,28 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
244
342
|
const optionEl = (
|
|
245
343
|
<div
|
|
246
344
|
key={option.id}
|
|
247
|
-
className={
|
|
345
|
+
className={cn(
|
|
346
|
+
'group transition-all duration-200',
|
|
347
|
+
OPTION_FRAME_CLASS,
|
|
248
348
|
option.disabled
|
|
249
349
|
? `${isSelected ? 'cursor-pointer' : 'cursor-not-allowed'} border-ods-border bg-ods-card opacity-40`
|
|
250
350
|
: isSelected
|
|
251
351
|
? 'cursor-pointer border-ods-accent bg-ods-bg-surface shadow-sm'
|
|
252
|
-
: 'cursor-pointer
|
|
253
|
-
}
|
|
352
|
+
: cn('cursor-pointer hover:border-ods-border-hover hover:bg-ods-bg-hover', OPTION_IDLE_SURFACE_CLASS),
|
|
353
|
+
)}
|
|
254
354
|
// Disabled options can't be newly SELECTED, but an already-selected one
|
|
255
355
|
// (e.g. it later became unavailable) must still be removable.
|
|
256
356
|
onClick={() => (!option.disabled || isSelected) && toggleSelection(option.id)}
|
|
257
357
|
>
|
|
258
|
-
<div className=
|
|
259
|
-
<div className=
|
|
358
|
+
<div className={OPTION_ROW_CLASS}>
|
|
359
|
+
<div className={OPTION_LEAD_CLASS}>
|
|
260
360
|
{option.icon && (
|
|
261
361
|
<div
|
|
262
|
-
className={
|
|
362
|
+
className={cn(
|
|
363
|
+
OPTION_ICON_BOX_CLASS,
|
|
364
|
+
'transition-transform duration-200',
|
|
365
|
+
isSelected ? 'scale-110' : 'group-hover:scale-105',
|
|
366
|
+
)}
|
|
263
367
|
>
|
|
264
368
|
{option.icon}
|
|
265
369
|
</div>
|
|
@@ -276,11 +380,13 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
276
380
|
|
|
277
381
|
{/* Selection Indicator */}
|
|
278
382
|
<div
|
|
279
|
-
className={
|
|
383
|
+
className={cn(
|
|
384
|
+
SELECTION_BOX_CLASS,
|
|
385
|
+
'transition-all duration-200',
|
|
280
386
|
isSelected
|
|
281
387
|
? 'scale-110 border-ods-accent bg-ods-accent'
|
|
282
|
-
: '
|
|
283
|
-
}
|
|
388
|
+
: cn(SELECTION_BOX_IDLE_CLASS, 'group-hover:border-ods-border-hover'),
|
|
389
|
+
)}
|
|
284
390
|
>
|
|
285
391
|
{isSelected && <Check className="h-4 w-4 font-bold text-ods-text-primary" strokeWidth={3} />}
|
|
286
392
|
</div>
|
|
@@ -305,7 +411,7 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
305
411
|
const renderOptionsContent = () => {
|
|
306
412
|
if (!sections || sections.length === 0) {
|
|
307
413
|
// No sections - render flat list
|
|
308
|
-
return <div className=
|
|
414
|
+
return <div className={OPTION_LIST_CLASS}>{options.map(renderOption)}</div>;
|
|
309
415
|
}
|
|
310
416
|
|
|
311
417
|
// Group options by section
|
|
@@ -322,24 +428,16 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
322
428
|
});
|
|
323
429
|
|
|
324
430
|
return (
|
|
325
|
-
<div className=
|
|
431
|
+
<div className={SECTIONED_LIST_CLASS}>
|
|
326
432
|
{/* Render sections in order */}
|
|
327
433
|
{sections.map(section => {
|
|
328
434
|
const sectionOptions = optionsBySection.get(section.id) || [];
|
|
329
435
|
if (sectionOptions.length === 0) return null;
|
|
330
436
|
|
|
331
437
|
return (
|
|
332
|
-
<div key={section.id} className=
|
|
333
|
-
{
|
|
334
|
-
<div className=
|
|
335
|
-
{section.icon && <div className="text-ods-text-secondary">{section.icon}</div>}
|
|
336
|
-
<div>
|
|
337
|
-
<div className="font-semibold text-ods-text-primary text-h6">{section.label}</div>
|
|
338
|
-
{section.description && <div className="text-ods-text-tertiary text-h6">{section.description}</div>}
|
|
339
|
-
</div>
|
|
340
|
-
</div>
|
|
341
|
-
{/* Section Options */}
|
|
342
|
-
<div className="space-y-2">{sectionOptions.map(renderOption)}</div>
|
|
438
|
+
<div key={section.id} className={SECTION_CLASS}>
|
|
439
|
+
<SectionHeader section={section} />
|
|
440
|
+
<div className={SECTION_CLASS}>{sectionOptions.map(renderOption)}</div>
|
|
343
441
|
</div>
|
|
344
442
|
);
|
|
345
443
|
})}
|
|
@@ -353,8 +451,10 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
353
451
|
// ~82px per row: enough skeleton rows to fill the fixed viewport, so the
|
|
354
452
|
// loading state occupies the SAME height as the loaded list.
|
|
355
453
|
const framedSkeletonCount = lazyLoad ? Math.max(skeletonCount, 4) : skeletonCount;
|
|
356
|
-
const listContent =
|
|
357
|
-
<
|
|
454
|
+
const listContent = loading ? (
|
|
455
|
+
<LoadingRegion label="Loading options" announce={!inScope}>
|
|
456
|
+
<OptionListSkeleton count={framedSkeletonCount} sections={sections} description={skeletonDescription} />
|
|
457
|
+
</LoadingRegion>
|
|
358
458
|
) : error ? (
|
|
359
459
|
<PushButtonSelectorError message={error} />
|
|
360
460
|
) : (
|
|
@@ -367,8 +467,11 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
367
467
|
{lazyLoad ? (
|
|
368
468
|
<>
|
|
369
469
|
<div ref={sentinelRef} />
|
|
470
|
+
{/* The next page while it is read: one more option row's skeleton under the list. */}
|
|
370
471
|
{lazyLoad.isFetchingMore ? (
|
|
371
|
-
<
|
|
472
|
+
<LoadingRegion label="Loading more options">
|
|
473
|
+
<OptionRowSkeleton />
|
|
474
|
+
</LoadingRegion>
|
|
372
475
|
) : null}
|
|
373
476
|
</>
|
|
374
477
|
) : null}
|
|
@@ -377,8 +480,8 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
377
480
|
|
|
378
481
|
return (
|
|
379
482
|
<TooltipProvider delayDuration={150}>
|
|
380
|
-
<div className={
|
|
381
|
-
{title && <h3 className=
|
|
483
|
+
<div className={cn(SELECTOR_STACK_CLASS, className)}>
|
|
484
|
+
{title && <h3 className={SELECTOR_TITLE_CLASS}>{title}</h3>}
|
|
382
485
|
|
|
383
486
|
{searchInput}
|
|
384
487
|
|
|
@@ -397,7 +500,7 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
397
500
|
{footer}
|
|
398
501
|
|
|
399
502
|
{/* Selection Summary */}
|
|
400
|
-
{!
|
|
503
|
+
{!loading && !error && selectionSummary && validSelectedIds.length > 0 && (
|
|
401
504
|
<div className="rounded-lg border border-ods-success bg-ods-success-secondary p-4">
|
|
402
505
|
<div className="mb-2 flex items-center gap-2">
|
|
403
506
|
<div className="h-2 w-2 rounded-full bg-ods-success"></div>
|
|
@@ -417,10 +520,10 @@ export function PushButtonSelector<Id extends SelectableOptionId = string>({
|
|
|
417
520
|
)}
|
|
418
521
|
|
|
419
522
|
{/* Help Text */}
|
|
420
|
-
{helpText && <div className=
|
|
523
|
+
{helpText && <div className={SELECTOR_HELP_CLASS}>{helpText}</div>}
|
|
421
524
|
|
|
422
525
|
{/* Empty State Warning */}
|
|
423
|
-
{validSelectedIds.length === 0 && title && !optional && (
|
|
526
|
+
{!loading && validSelectedIds.length === 0 && title && !optional && (
|
|
424
527
|
<div className="rounded-lg border border-ods-error bg-ods-error-secondary p-3">
|
|
425
528
|
<div className="text-ods-error text-h6">⚠️ Please select at least one option</div>
|
|
426
529
|
</div>
|
|
@@ -13,13 +13,13 @@ export type {
|
|
|
13
13
|
} from './remote-session-block';
|
|
14
14
|
export { RemoteSessionChatPanel } from './remote-session-chat-panel';
|
|
15
15
|
export type { RemoteSessionChatPanelProps } from './remote-session-chat-panel';
|
|
16
|
-
export { RemoteDesktopChatMessageRow } from './remote-desktop-chat-message-row';
|
|
16
|
+
export { RemoteDesktopChatMessageRow, RemoteDesktopChatMessageRowSkeleton } from './remote-desktop-chat-message-row';
|
|
17
17
|
export type { RemoteDesktopChatMessageRowProps } from './remote-desktop-chat-message-row';
|
|
18
18
|
export { REMOTE_DESKTOP_CHAT_END_USER_NAME, RemoteDesktopChatPanel } from './remote-desktop-chat-panel';
|
|
19
19
|
export type { RemoteDesktopChatPanelProps, RemoteDesktopChatTechnician } from './remote-desktop-chat-panel';
|
|
20
20
|
export { RemoteDesktopFullscreenToolbar } from './remote-desktop-fullscreen-toolbar';
|
|
21
21
|
export type { RemoteDesktopFullscreenToolbarProps } from './remote-desktop-fullscreen-toolbar';
|
|
22
|
-
export { RemoteDesktopView
|
|
22
|
+
export { RemoteDesktopView } from './remote-desktop-view';
|
|
23
23
|
export type { RemoteDesktopViewProps } from './remote-desktop-view';
|
|
24
24
|
export { RemoteSessionDialog } from './remote-session-dialog';
|
|
25
25
|
export type { RemoteSessionDialogProps } from './remote-session-dialog';
|
|
@@ -2,8 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
import { cn } from '../../../utils/cn';
|
|
4
4
|
import { formatTime } from '../../../utils/format-date';
|
|
5
|
+
import { TextLineSkeleton } from '../../loading/unified-skeleton';
|
|
5
6
|
import { SquareAvatar } from '../../ui/square-avatar';
|
|
6
7
|
|
|
8
|
+
/** The row's layout, read by the row and by its skeleton, so the skeleton is the row's size. */
|
|
9
|
+
const MESSAGE_ROW_CLASS = 'grid grid-cols-1 gap-[var(--spacing-system-xxs)]';
|
|
10
|
+
const MESSAGE_HEAD_CLASS = 'flex items-center gap-[var(--spacing-system-xxs)]';
|
|
11
|
+
const MESSAGE_NAME_CLASS = 'min-w-0 flex-1 truncate text-h4 [font-family:var(--font-family-heading)]';
|
|
12
|
+
|
|
7
13
|
export interface RemoteDesktopChatMessageRowProps {
|
|
8
14
|
authorName: string;
|
|
9
15
|
/** The technician's rows carry the avatar and the accent-colored name. */
|
|
@@ -32,14 +38,14 @@ export function RemoteDesktopChatMessageRow({
|
|
|
32
38
|
body,
|
|
33
39
|
}: RemoteDesktopChatMessageRowProps) {
|
|
34
40
|
return (
|
|
35
|
-
<div className=
|
|
36
|
-
<div className=
|
|
41
|
+
<div className={MESSAGE_ROW_CLASS}>
|
|
42
|
+
<div className={MESSAGE_HEAD_CLASS}>
|
|
37
43
|
{isTechnician && (
|
|
38
44
|
<SquareAvatar variant="round" sizePx={24} src={avatarUrl} alt={authorName} className="shrink-0" />
|
|
39
45
|
)}
|
|
40
46
|
<span
|
|
41
47
|
className={cn(
|
|
42
|
-
|
|
48
|
+
MESSAGE_NAME_CLASS,
|
|
43
49
|
isTechnician ? 'text-ods-accent' : 'text-ods-text-secondary',
|
|
44
50
|
)}
|
|
45
51
|
>
|
|
@@ -54,3 +60,18 @@ export function RemoteDesktopChatMessageRow({
|
|
|
54
60
|
</div>
|
|
55
61
|
);
|
|
56
62
|
}
|
|
63
|
+
|
|
64
|
+
/** A message row while the chat is read: the name and the time as bars on the name row, one line of the body. */
|
|
65
|
+
export function RemoteDesktopChatMessageRowSkeleton() {
|
|
66
|
+
return (
|
|
67
|
+
<div className={MESSAGE_ROW_CLASS} aria-hidden>
|
|
68
|
+
<div className={MESSAGE_HEAD_CLASS}>
|
|
69
|
+
<span className={MESSAGE_NAME_CLASS}>
|
|
70
|
+
<TextLineSkeleton type="inherit" as="span" className="w-24" />
|
|
71
|
+
</span>
|
|
72
|
+
<TextLineSkeleton type="h6" as="span" className="w-12 shrink-0" />
|
|
73
|
+
</div>
|
|
74
|
+
<TextLineSkeleton type="h4" className="w-3/4" />
|
|
75
|
+
</div>
|
|
76
|
+
);
|
|
77
|
+
}
|
|
@@ -3,9 +3,16 @@
|
|
|
3
3
|
import { useEffect, useRef } from 'react';
|
|
4
4
|
import { cn } from '../../../utils/cn';
|
|
5
5
|
import { ChatInput } from '../../chat/chat-input';
|
|
6
|
-
import {
|
|
6
|
+
import { LoadingRegion } from '../../loading/loading-region';
|
|
7
|
+
import { RemoteDesktopChatMessageRow, RemoteDesktopChatMessageRowSkeleton } from './remote-desktop-chat-message-row';
|
|
7
8
|
import type { RemoteSessionChatMessage } from './types';
|
|
8
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Message rows the panel's loading state draws: the panel spans the view's height (about 750px on a 900px screen,
|
|
12
|
+
* less the input), and a one-line message is about 60px with its gap.
|
|
13
|
+
*/
|
|
14
|
+
const CHAT_PANEL_FOLD = 10;
|
|
15
|
+
|
|
9
16
|
/** Who is typing on the technician's side of the chat: shown on the technician's rows. */
|
|
10
17
|
export interface RemoteDesktopChatTechnician {
|
|
11
18
|
name: string;
|
|
@@ -67,10 +74,17 @@ export function RemoteDesktopChatPanel({
|
|
|
67
74
|
>
|
|
68
75
|
<div ref={scrollRef} className="min-h-0 flex-1 overflow-y-auto">
|
|
69
76
|
<div className="flex min-h-full flex-col justify-end gap-[var(--spacing-system-xsf)]">
|
|
70
|
-
{rows.length === 0 ? (
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
77
|
+
{rows.length === 0 && loading ? (
|
|
78
|
+
// The chat while it is read: a screen of the panel's own message rows, stacked by a one-column grid
|
|
79
|
+
// (the thread above is already the column flexbox: WEBVIEW-001).
|
|
80
|
+
<LoadingRegion label="Loading the chat" className="grid grid-cols-1 gap-[var(--spacing-system-xsf)]">
|
|
81
|
+
{Array.from({ length: CHAT_PANEL_FOLD }, (_, i) => (
|
|
82
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: skeleton rows never reorder
|
|
83
|
+
<RemoteDesktopChatMessageRowSkeleton key={i} />
|
|
84
|
+
))}
|
|
85
|
+
</LoadingRegion>
|
|
86
|
+
) : rows.length === 0 ? (
|
|
87
|
+
<p className="text-center text-ods-text-muted text-h6">No messages yet - say hello to the user.</p>
|
|
74
88
|
) : (
|
|
75
89
|
rows.map(message => (
|
|
76
90
|
<RemoteDesktopChatMessageRow
|
|
@@ -12,13 +12,14 @@ import {
|
|
|
12
12
|
} from '../../icons-v2-generated';
|
|
13
13
|
import { PageLayout } from '../../layout/page-layout';
|
|
14
14
|
import { LoadingRegion } from '../../loading/loading-region';
|
|
15
|
-
import {
|
|
15
|
+
import { InteractiveSkeleton, TextLineSkeleton } from '../../loading/unified-skeleton';
|
|
16
16
|
import { ActionsMenuDropdown, type ActionsMenuGroup } from '../../ui/actions-menu';
|
|
17
17
|
import { Button } from '../../ui/button/button';
|
|
18
|
+
import { useLoadingScope } from '../../ui/loading-scope';
|
|
18
19
|
import { TruncateText } from '../../ui/truncate-text';
|
|
19
20
|
import { RemoteDesktopFullscreenToolbar } from './remote-desktop-fullscreen-toolbar';
|
|
20
21
|
|
|
21
|
-
/** The page chrome
|
|
22
|
+
/** The page chrome the view renders in, loaded and loading. */
|
|
22
23
|
const PAGE_CLASS = 'h-full overflow-hidden px-[var(--spacing-system-l)] pb-[var(--spacing-system-l)]';
|
|
23
24
|
|
|
24
25
|
/** The header card: the device row, and under it the display row when there is one to pick. */
|
|
@@ -70,6 +71,11 @@ export interface RemoteDesktopViewProps {
|
|
|
70
71
|
chat?: ReactNode;
|
|
71
72
|
/** Dialogs the page owns (settings, shortcuts), rendered after the session. */
|
|
72
73
|
children?: ReactNode;
|
|
74
|
+
/**
|
|
75
|
+
* The device is still being read: the view draws itself with its header's text and controls as skeletons over an
|
|
76
|
+
* empty screen (also in a page's loading scope). `screen`, `chat` and `children` are not drawn while loading.
|
|
77
|
+
*/
|
|
78
|
+
loading?: boolean;
|
|
73
79
|
}
|
|
74
80
|
|
|
75
81
|
/**
|
|
@@ -93,8 +99,33 @@ export function RemoteDesktopView({
|
|
|
93
99
|
screen,
|
|
94
100
|
chat,
|
|
95
101
|
children,
|
|
102
|
+
loading: loadingProp = false,
|
|
96
103
|
}: RemoteDesktopViewProps) {
|
|
97
|
-
const
|
|
104
|
+
const inScope = useLoadingScope();
|
|
105
|
+
// One switch: while the device is read (a prop, or a page's loading scope) the view draws its own loading state.
|
|
106
|
+
const loading = inScope || loadingProp;
|
|
107
|
+
const controlsBar = loading ? (
|
|
108
|
+
<div className={CONTROLS_BAR_CLASS} aria-hidden>
|
|
109
|
+
<div className={CONTROLS_ROW_CLASS}>
|
|
110
|
+
<div className="flex min-w-0 items-center gap-[var(--spacing-system-mf)]">
|
|
111
|
+
<div className="flex-shrink-0 rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-xsf)]">
|
|
112
|
+
<MonitorIcon className="h-4 w-4 text-ods-text-primary" />
|
|
113
|
+
</div>
|
|
114
|
+
<div className="flex min-w-0 flex-col">
|
|
115
|
+
{/* A typical device name and customer line, at the header's own type steps (h4, h6). */}
|
|
116
|
+
<TextLineSkeleton type="h4" className="w-48 max-w-full" />
|
|
117
|
+
<TextLineSkeleton type="h6" className="w-36 max-w-full" />
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
<div className="flex flex-shrink-0 items-center gap-[var(--spacing-system-xs)]">
|
|
121
|
+
{/* The actions menu, settings and fullscreen controls: three icon buttons. */}
|
|
122
|
+
<InteractiveSkeleton.Button size="icon" />
|
|
123
|
+
<InteractiveSkeleton.Button size="icon" />
|
|
124
|
+
<InteractiveSkeleton.Button size="icon" />
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
) : (
|
|
98
129
|
<div className={CONTROLS_BAR_CLASS}>
|
|
99
130
|
<div className={CONTROLS_ROW_CLASS}>
|
|
100
131
|
<div className="flex min-w-0 items-center gap-[var(--spacing-system-mf)]">
|
|
@@ -166,6 +197,19 @@ export function RemoteDesktopView({
|
|
|
166
197
|
</div>
|
|
167
198
|
);
|
|
168
199
|
|
|
200
|
+
if (loading) {
|
|
201
|
+
return (
|
|
202
|
+
<PageLayout className={PAGE_CLASS} backButton={onBack ? { label: 'Back', onClick: onBack } : undefined}>
|
|
203
|
+
{/* `contents`: the page's own children stay its layout items; the region adds the one announcement (a page's
|
|
204
|
+
loading scope already announces for it). */}
|
|
205
|
+
<LoadingRegion label="Loading the remote session" announce={!inScope} className="contents">
|
|
206
|
+
{controlsBar}
|
|
207
|
+
<div className="min-h-0 min-w-0 flex-1 rounded-lg bg-black" />
|
|
208
|
+
</LoadingRegion>
|
|
209
|
+
</PageLayout>
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
|
|
169
213
|
return (
|
|
170
214
|
<PageLayout
|
|
171
215
|
className={PAGE_CLASS}
|
|
@@ -205,38 +249,3 @@ export function RemoteDesktopView({
|
|
|
205
249
|
</PageLayout>
|
|
206
250
|
);
|
|
207
251
|
}
|
|
208
|
-
|
|
209
|
-
/** The page while the device is still loading: the header bar as placeholders over an empty screen. */
|
|
210
|
-
export function RemoteDesktopViewSkeleton({
|
|
211
|
-
onBack,
|
|
212
|
-
region = true,
|
|
213
|
-
}: Pick<RemoteDesktopViewProps, 'onBack'> & {
|
|
214
|
-
/** The loading state announces itself (`LoadingRegion`). `false` inside another loading region. Default `true`. */
|
|
215
|
-
region?: boolean;
|
|
216
|
-
}) {
|
|
217
|
-
return (
|
|
218
|
-
<PageLayout className={PAGE_CLASS} backButton={onBack ? { label: 'Back', onClick: onBack } : undefined}>
|
|
219
|
-
{/* `contents`: the page's own children stay its layout items; the region adds the one announcement. */}
|
|
220
|
-
<LoadingRegion label="Loading the remote session" announce={region} className="contents">
|
|
221
|
-
<div className={CONTROLS_BAR_CLASS}>
|
|
222
|
-
<div className={CONTROLS_ROW_CLASS}>
|
|
223
|
-
<div className="flex min-w-0 items-center gap-[var(--spacing-system-mf)]">
|
|
224
|
-
<UnifiedSkeleton className="h-9 w-9 flex-shrink-0 rounded-md" />
|
|
225
|
-
<div className="flex min-w-0 flex-col gap-[var(--spacing-system-xxs)]">
|
|
226
|
-
<UnifiedSkeleton className="h-5 w-48" />
|
|
227
|
-
<UnifiedSkeleton className="h-4 w-36" />
|
|
228
|
-
</div>
|
|
229
|
-
</div>
|
|
230
|
-
<div className="flex flex-shrink-0 items-center gap-[var(--spacing-system-xs)]">
|
|
231
|
-
<UnifiedSkeleton className="h-11 w-11 rounded-lg md:h-12 md:w-12" />
|
|
232
|
-
<UnifiedSkeleton className="h-11 w-11 rounded-lg md:h-12 md:w-12" />
|
|
233
|
-
<UnifiedSkeleton className="h-11 w-11 rounded-lg md:h-12 md:w-12" />
|
|
234
|
-
</div>
|
|
235
|
-
</div>
|
|
236
|
-
</div>
|
|
237
|
-
|
|
238
|
-
<div className="min-h-0 min-w-0 flex-1 rounded-lg bg-black" />
|
|
239
|
-
</LoadingRegion>
|
|
240
|
-
</PageLayout>
|
|
241
|
-
);
|
|
242
|
-
}
|