@flamingo-stack/openframe-frontend-core 0.0.748 → 0.0.750
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/{chunk-7Y3VMMJB.cjs → chunk-2J2OBP4N.cjs} +26 -18
- package/dist/chunk-2YXOD2KL.cjs +137 -0
- package/dist/{chunk-BEC43GHL.cjs → chunk-34TWK3JE.cjs} +3 -3
- package/dist/{chunk-BBM2ICOY.cjs → chunk-3TELPOVH.cjs} +2 -2
- package/dist/{chunk-G2ELX3DG.cjs → chunk-45YRDD7W.cjs} +22 -19
- package/dist/{chunk-4AZHFLOM.cjs → chunk-4O2KYY4K.cjs} +3 -3
- package/dist/{chunk-6XP6RNFD.cjs → chunk-6KEJQR6L.cjs} +1875 -2116
- package/dist/{chunk-JNBOQ7F2.cjs → chunk-7RCTOWBA.cjs} +24 -24
- package/dist/{chunk-U6XWGK53.cjs → chunk-ALPRQ3ZX.cjs} +56 -46
- package/dist/{chunk-TRXCQADV.cjs → chunk-AW6GP3JK.cjs} +103 -98
- package/dist/{chunk-GE4PCDNZ.cjs → chunk-BO6ZOAPB.cjs} +12 -12
- package/dist/{chunk-HNLI4OU5.cjs → chunk-C6LPOYDM.cjs} +24 -24
- package/dist/{chunk-4MGZYY6U.cjs → chunk-CLAJIQ7E.cjs} +26 -18
- package/dist/{chunk-EH3LOWGY.cjs → chunk-CNUZLOVA.cjs} +48 -40
- package/dist/{chunk-QPSQ5WLG.cjs → chunk-DGEB5GUZ.cjs} +2 -2
- package/dist/{chunk-OZUJYBQ2.cjs → chunk-E3KFEOFA.cjs} +9 -6
- package/dist/{chunk-PSSGIZXZ.cjs → chunk-FHT7SMA7.cjs} +49 -46
- package/dist/{chunk-JOPFX3PJ.cjs → chunk-FP6HAJQV.cjs} +137 -122
- package/dist/{chunk-YKJQM2O6.cjs → chunk-GVETSV7H.cjs} +56 -53
- package/dist/{chunk-UNR74CAC.cjs → chunk-HOEVD6EN.cjs} +4 -4
- package/dist/{chunk-H34A2765.cjs → chunk-JPUTILTV.cjs} +104 -118
- package/dist/{chunk-46EIXJFC.cjs → chunk-KVSEWACW.cjs} +44 -27
- package/dist/{chunk-AKTPO2DN.cjs → chunk-L4UI63K6.cjs} +2 -2
- package/dist/{chunk-PSIKUDUV.cjs → chunk-LVO7FALW.cjs} +5 -5
- package/dist/{chunk-L2RMTGOK.cjs → chunk-MGF3FUKD.cjs} +7 -7
- package/dist/{chunk-P7KTAXXE.cjs → chunk-OFO75R2O.cjs} +169 -175
- package/dist/{chunk-B27QEHYR.cjs → chunk-P6F6PHVK.cjs} +9 -9
- package/dist/chunk-RB6BSE3O.cjs +21 -0
- package/dist/chunk-UGCRLRCT.cjs +25 -0
- package/dist/{chunk-BBTSJYTR.cjs → chunk-V3UJ6NDR.cjs} +243 -429
- package/dist/{chunk-ZNUSYMH7.cjs → chunk-WZX26ODJ.cjs} +121 -121
- package/dist/{chunk-YIRX6C7V.cjs → chunk-XJ3J4UIS.cjs} +57 -22
- package/dist/{chunk-D4XZL27V.cjs → chunk-YL62VAHC.cjs} +6 -6
- package/dist/{cloud-tenants-V5727B7F.cjs → cloud-tenants-E4JSG3GH.cjs} +16 -14
- package/dist/components/case-studies/index.cjs +29 -27
- package/dist/components/categories-cart.d.ts.map +1 -1
- package/dist/components/categories-cart.js +2 -7
- package/dist/components/chat/chat-container.js +4 -4
- package/dist/components/chat/chat-context-picker.d.ts.map +1 -1
- package/dist/components/chat/chat-context-picker.js +2 -1
- package/dist/components/chat/chat-message-row.d.ts.map +1 -1
- package/dist/components/chat/chat-message-row.js +6 -5
- package/dist/components/chat/chat-message-skeleton.d.ts +3 -1
- package/dist/components/chat/chat-message-skeleton.d.ts.map +1 -1
- package/dist/components/chat/chat-message-skeleton.js +8 -5
- package/dist/components/chat/chat-sidebar-skeleton.d.ts.map +1 -1
- package/dist/components/chat/chat-sidebar-skeleton.js +4 -3
- package/dist/components/chat/chat-top-navigation.js +4 -4
- package/dist/components/chat/context-items-list.d.ts.map +1 -1
- package/dist/components/chat/context-items-list.js +5 -3
- package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts +24 -1
- 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 +46 -15
- package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/admin-content-card.js +2 -1
- package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/blog-card.js +13 -12
- package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/campaign-card-admin.js +5 -4
- package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/case-study-card.js +19 -18
- package/dist/components/chat/entity-cards/chat-ticket-item.js +5 -5
- package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/customer-interview-card.js +15 -14
- 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 +7 -6
- package/dist/components/chat/entity-cards/design-doc-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/design-doc-card.js +0 -2
- package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/generic-entity-card.js +8 -7
- package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/github-activity-card.js +11 -10
- package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/hubspot-ticket-card.js +16 -15
- package/dist/components/chat/entity-cards/index.d.ts +1 -1
- package/dist/components/chat/entity-cards/index.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/index.js +2 -0
- package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/investor-update-card.js +12 -11
- package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/onboarding-guide-card.js +25 -30
- package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/program-card.js +29 -28
- package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/roadmap-card.js +37 -39
- package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/slack-message-card.js +12 -11
- package/dist/components/chat/guide-welcome.js +2 -2
- package/dist/components/chat/index.cjs +13 -9
- package/dist/components/chat/mingo-archive-list.d.ts.map +1 -1
- package/dist/components/chat/mingo-archive-list.js +2 -1
- package/dist/components/chat/mingo-chat-history.d.ts +4 -2
- package/dist/components/chat/mingo-chat-history.d.ts.map +1 -1
- package/dist/components/chat/mingo-chat-history.js +11 -5
- package/dist/components/chat/mingo-chat-rail.d.ts.map +1 -1
- package/dist/components/chat/mingo-chat-rail.js +2 -1
- package/dist/components/chat/mingo-info-card.d.ts.map +1 -1
- package/dist/components/chat/mingo-info-card.js +6 -5
- package/dist/components/chat/mingo-onboarding-card-skeleton.d.ts +3 -1
- package/dist/components/chat/mingo-onboarding-card-skeleton.d.ts.map +1 -1
- package/dist/components/chat/mingo-onboarding-card-skeleton.js +12 -12
- package/dist/components/chat/model-display.js +4 -4
- package/dist/components/chat/msp-organization-card-skeleton.js +5 -5
- package/dist/components/chat/quick-action-chip.d.ts +3 -3
- package/dist/components/chat/quick-action-chip.d.ts.map +1 -1
- package/dist/components/chat/quick-action-chip.js +12 -6
- package/dist/components/chat/utils/compact-card-classes.d.ts +4 -4
- package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
- package/dist/components/chat/utils/compact-card-classes.js +2 -2
- package/dist/components/contact/index.cjs +17 -15
- package/dist/components/content-loading-container.d.ts +1 -1
- package/dist/components/content-loading-container.d.ts.map +1 -1
- package/dist/components/content-loading-container.js +6 -7
- package/dist/components/docs/doc-viewer.d.ts.map +1 -1
- package/dist/components/docs/doc-viewer.js +3 -2
- package/dist/components/docs/index.cjs +20 -18
- package/dist/components/docs/skeletons.d.ts +7 -8
- package/dist/components/docs/skeletons.d.ts.map +1 -1
- package/dist/components/docs/skeletons.js +62 -61
- package/dist/components/embeds/embed-iframe.d.ts +6 -6
- package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
- package/dist/components/embeds/embed-iframe.js +9 -4
- package/dist/components/embeds/index.cjs +19 -15
- package/dist/components/embeds/index.d.ts +2 -2
- package/dist/components/embeds/index.d.ts.map +1 -1
- package/dist/components/embeds/index.js +2 -1
- package/dist/components/embeds/linkedin-embed-client.d.ts.map +1 -1
- package/dist/components/embeds/linkedin-embed-client.js +7 -6
- package/dist/components/embeds/markdown-image.d.ts.map +1 -1
- package/dist/components/embeds/markdown-image.js +5 -3
- package/dist/components/embeds/og-link-preview.d.ts +19 -18
- package/dist/components/embeds/og-link-preview.d.ts.map +1 -1
- package/dist/components/embeds/og-link-preview.js +143 -88
- package/dist/components/embeds/reddit-embed-client.d.ts.map +1 -1
- package/dist/components/embeds/reddit-embed-client.js +10 -9
- package/dist/components/embeds/twitter-embed-client.d.ts.map +1 -1
- package/dist/components/embeds/twitter-embed-client.js +10 -9
- package/dist/components/faq/faq-section.d.ts.map +1 -1
- package/dist/components/faq/faq-section.js +9 -5
- package/dist/components/faq/index.cjs +18 -16
- package/dist/components/features/auth/login-form.d.ts +34 -21
- package/dist/components/features/auth/login-form.d.ts.map +1 -1
- package/dist/components/features/auth/login-form.js +77 -39
- package/dist/components/features/auth/sso-providers.d.ts +7 -1
- package/dist/components/features/auth/sso-providers.d.ts.map +1 -1
- package/dist/components/features/auth/sso-providers.js +22 -4
- package/dist/components/features/board/ticket-card-skeleton.js +8 -8
- package/dist/components/features/capability-explorer.d.ts +3 -1
- package/dist/components/features/capability-explorer.d.ts.map +1 -1
- package/dist/components/features/capability-explorer.js +27 -24
- package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts +5 -2
- package/dist/components/features/devices/device-selector/device-selector-skeleton.d.ts.map +1 -1
- package/dist/components/features/devices/device-selector/device-selector-skeleton.js +2 -2
- package/dist/components/features/devices/device-selector/device-selector.d.ts +1 -1
- package/dist/components/features/devices/device-selector/device-selector.d.ts.map +1 -1
- package/dist/components/features/devices/device-selector/device-selector.js +2 -0
- package/dist/components/features/devices/device-selector/device-selector.types.d.ts +2 -0
- package/dist/components/features/devices/device-selector/device-selector.types.d.ts.map +1 -1
- package/dist/components/features/devices/devices-grid.d.ts +3 -1
- package/dist/components/features/devices/devices-grid.d.ts.map +1 -1
- package/dist/components/features/devices/devices-grid.js +3 -2
- package/dist/components/features/devices/devices-panel-view.d.ts +6 -1
- package/dist/components/features/devices/devices-panel-view.d.ts.map +1 -1
- package/dist/components/features/devices/devices-panel-view.js +4 -1
- package/dist/components/features/devices/devices-table-columns.d.ts +3 -1
- package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -1
- package/dist/components/features/devices/devices-table-columns.js +2 -0
- package/dist/components/features/index.cjs +18 -14
- package/dist/components/features/logs/logs-table-view.d.ts +3 -1
- package/dist/components/features/logs/logs-table-view.d.ts.map +1 -1
- package/dist/components/features/logs/logs-table-view.js +2 -2
- package/dist/components/features/model-token-rates.d.ts +4 -1
- package/dist/components/features/model-token-rates.d.ts.map +1 -1
- package/dist/components/features/model-token-rates.js +18 -23
- package/dist/components/features/notifications/index.d.ts +2 -2
- package/dist/components/features/notifications/index.d.ts.map +1 -1
- package/dist/components/features/notifications/index.js +2 -1
- package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
- package/dist/components/features/notifications/notification-drawer.js +9 -16
- package/dist/components/features/notifications/notification-tile.d.ts +14 -0
- package/dist/components/features/notifications/notification-tile.d.ts.map +1 -1
- package/dist/components/features/notifications/notification-tile.js +36 -1
- package/dist/components/features/policies/policy-summary-cards.js +2 -2
- package/dist/components/features/push-button-selector.d.ts.map +1 -1
- package/dist/components/features/push-button-selector.js +12 -7
- package/dist/components/features/remote-session/remote-desktop-view.d.ts +4 -1
- package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-desktop-view.js +14 -10
- package/dist/components/features/waitlist-form.d.ts.map +1 -1
- package/dist/components/features/waitlist-form.js +6 -5
- package/dist/components/help-center-pages/download-apps-page.d.ts.map +1 -1
- package/dist/components/help-center-pages/download-apps-page.js +2 -1
- package/dist/components/help-center-pages/index.cjs +127 -119
- package/dist/components/help-center-pages/trust-center-page.d.ts +4 -1
- package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
- package/dist/components/help-center-pages/trust-center-page.js +3 -2
- package/dist/components/help-center-pages/trust-center-sections.d.ts +4 -1
- package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
- package/dist/components/help-center-pages/trust-center-sections.js +5 -2
- package/dist/components/index.cjs +70 -112
- package/dist/components/index.d.ts +0 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +0 -2
- package/dist/components/layout/title-block.d.ts.map +1 -1
- package/dist/components/layout/title-block.js +18 -11
- package/dist/components/loading/card-skeleton.d.ts +6 -3
- package/dist/components/loading/card-skeleton.d.ts.map +1 -1
- package/dist/components/loading/card-skeleton.js +7 -27
- package/dist/components/loading/category-card-skeleton.d.ts.map +1 -1
- package/dist/components/loading/category-card-skeleton.js +2 -4
- package/dist/components/loading/category-vendor-selector-skeleton.d.ts +3 -1
- package/dist/components/loading/category-vendor-selector-skeleton.d.ts.map +1 -1
- package/dist/components/loading/category-vendor-selector-skeleton.js +9 -4
- package/dist/components/loading/device-card-skeleton.d.ts +18 -9
- package/dist/components/loading/device-card-skeleton.d.ts.map +1 -1
- package/dist/components/loading/device-card-skeleton.js +30 -21
- package/dist/components/loading/index.d.ts +3 -4
- package/dist/components/loading/index.d.ts.map +1 -1
- package/dist/components/loading/index.js +6 -29
- package/dist/components/loading/loading-region.d.ts +33 -0
- package/dist/components/loading/loading-region.d.ts.map +1 -0
- package/dist/components/loading/loading-region.js +22 -0
- package/dist/components/loading/margin-report-skeleton.d.ts +3 -1
- package/dist/components/loading/margin-report-skeleton.d.ts.map +1 -1
- package/dist/components/loading/margin-report-skeleton.js +70 -61
- package/dist/components/loading/msp-profile-form-skeleton.d.ts +3 -1
- package/dist/components/loading/msp-profile-form-skeleton.d.ts.map +1 -1
- package/dist/components/loading/msp-profile-form-skeleton.js +6 -5
- package/dist/components/loading/organization-card-skeleton.d.ts +3 -1
- package/dist/components/loading/organization-card-skeleton.d.ts.map +1 -1
- package/dist/components/loading/organization-card-skeleton.js +5 -5
- package/dist/components/loading/organization-icon-skeleton.d.ts.map +1 -1
- package/dist/components/loading/organization-icon-skeleton.js +2 -1
- package/dist/components/loading/page-layout-skeleton.d.ts +21 -6
- package/dist/components/loading/page-layout-skeleton.d.ts.map +1 -1
- package/dist/components/loading/page-layout-skeleton.js +283 -266
- package/dist/components/loading/settings-form-skeleton.d.ts +17 -0
- package/dist/components/loading/settings-form-skeleton.d.ts.map +1 -0
- package/dist/components/loading/settings-form-skeleton.js +42 -0
- package/dist/components/loading/unified-skeleton.d.ts +11 -4
- package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
- package/dist/components/loading/unified-skeleton.js +14 -89
- package/dist/components/loading/wizard-layout-skeleton.d.ts +3 -1
- package/dist/components/loading/wizard-layout-skeleton.d.ts.map +1 -1
- package/dist/components/loading/wizard-layout-skeleton.js +3 -2
- package/dist/components/media-carousel.d.ts.map +1 -1
- package/dist/components/media-carousel.js +2 -1
- package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/booking-form.js +14 -8
- package/dist/components/meeting-scheduler/context-panel.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/context-panel.js +8 -7
- package/dist/components/meeting-scheduler/directory.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/directory.js +10 -9
- package/dist/components/meeting-scheduler/index.cjs +85 -75
- package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/index.js +3 -2
- package/dist/components/meeting-scheduler/modal-header.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/modal-header.js +8 -7
- package/dist/components/meeting-scheduler/slot-picker.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/slot-picker.js +4 -3
- package/dist/components/navigation/app-header.d.ts.map +1 -1
- package/dist/components/navigation/app-header.js +8 -7
- package/dist/components/navigation/index.cjs +19 -17
- package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -1
- package/dist/components/navigation/multi-level-navigation.js +3 -2
- package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
- package/dist/components/navigation/navigation-sidebar-item.js +3 -2
- package/dist/components/onboarding-guides/index.cjs +19 -17
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +4 -1
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.js +12 -8
- package/dist/components/product-demo/index.cjs +16 -15
- package/dist/components/product-demo/product-screen.d.ts.map +1 -1
- package/dist/components/product-demo/product-screen.js +4 -4
- package/dist/components/profile/ProfileLoadingSkeleton.d.ts +3 -1
- package/dist/components/profile/ProfileLoadingSkeleton.d.ts.map +1 -1
- package/dist/components/profile/ProfileLoadingSkeleton.js +10 -8
- package/dist/components/related-content/index.cjs +7 -5
- package/dist/components/related-content/related-content-section.d.ts.map +1 -1
- package/dist/components/related-content/related-content-section.js +3 -2
- package/dist/components/shared/delivery/delivery-table.d.ts.map +1 -1
- package/dist/components/shared/delivery/delivery-table.js +8 -7
- package/dist/components/shared/detail-page-skeleton.d.ts +5 -1
- package/dist/components/shared/detail-page-skeleton.d.ts.map +1 -1
- package/dist/components/shared/detail-page-skeleton.js +18 -14
- package/dist/components/shared/dev-section/dev-card-row.d.ts +3 -1
- package/dist/components/shared/dev-section/dev-card-row.d.ts.map +1 -1
- package/dist/components/shared/dev-section/dev-card-row.js +22 -9
- package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
- package/dist/components/shared/legal-document/legal-document-page.js +8 -7
- package/dist/components/shared/onboarding/onboarding-step-card.d.ts.map +1 -1
- package/dist/components/shared/onboarding/onboarding-step-card.js +3 -2
- package/dist/components/shared/onboarding/onboarding-walkthrough.d.ts.map +1 -1
- package/dist/components/shared/onboarding/onboarding-walkthrough.js +2 -1
- package/dist/components/shared/product-release/index.d.ts +0 -1
- package/dist/components/shared/product-release/index.d.ts.map +1 -1
- package/dist/components/shared/product-release/index.js +1 -3
- 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 +21 -20
- package/dist/components/shared/product-release/product-releases-view.d.ts.map +1 -1
- package/dist/components/shared/product-release/product-releases-view.js +2 -1
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +6 -13
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -1
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.js +13 -25
- package/dist/components/tickets/help-center-create-form.d.ts +4 -1
- package/dist/components/tickets/help-center-create-form.d.ts.map +1 -1
- package/dist/components/tickets/help-center-create-form.js +38 -26
- package/dist/components/tickets/index.cjs +22 -20
- package/dist/components/tickets/ticket-center.d.ts.map +1 -1
- package/dist/components/tickets/ticket-center.js +13 -10
- package/dist/components/tickets/ticket-detail-drawer.d.ts.map +1 -1
- package/dist/components/tickets/ticket-detail-drawer.js +2 -1
- package/dist/components/ui/admin-form-drawer.d.ts.map +1 -1
- package/dist/components/ui/admin-form-drawer.js +6 -8
- package/dist/components/ui/admin-form-modal.d.ts.map +1 -1
- package/dist/components/ui/admin-form-modal.js +12 -11
- package/dist/components/ui/analyzing-state.d.ts +1 -1
- package/dist/components/ui/analyzing-state.d.ts.map +1 -1
- package/dist/components/ui/analyzing-state.js +4 -10
- package/dist/components/ui/content-loader.d.ts +5 -1
- package/dist/components/ui/content-loader.d.ts.map +1 -1
- package/dist/components/ui/content-loader.js +27 -23
- package/dist/components/ui/dashboard-info-card.d.ts +17 -3
- package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
- package/dist/components/ui/dashboard-info-card.js +30 -10
- package/dist/components/ui/data-attribution.d.ts +6 -0
- package/dist/components/ui/data-attribution.d.ts.map +1 -1
- package/dist/components/ui/data-attribution.js +12 -1
- package/dist/components/ui/data-table/data-table-body.d.ts +6 -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 +3 -1
- package/dist/components/ui/data-table/data-table-infinite-footer.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-infinite-footer.js +3 -1
- package/dist/components/ui/data-table/data-table-skeleton.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-skeleton.js +7 -5
- package/dist/components/ui/feature-card.d.ts.map +1 -1
- package/dist/components/ui/feature-card.js +7 -9
- package/dist/components/ui/file-manager/file-manager-skeleton.d.ts +3 -1
- package/dist/components/ui/file-manager/file-manager-skeleton.d.ts.map +1 -1
- package/dist/components/ui/file-manager/file-manager-skeleton.js +27 -21
- package/dist/components/ui/file-manager/file-manager-table.js +10 -10
- package/dist/components/ui/file-manager/index.cjs +45 -36
- package/dist/components/ui/filter-modal.d.ts.map +1 -1
- package/dist/components/ui/filter-modal.js +5 -5
- package/dist/components/ui/filter-pill-row.d.ts +10 -0
- package/dist/components/ui/filter-pill-row.d.ts.map +1 -1
- package/dist/components/ui/filter-pill-row.js +8 -1
- package/dist/components/ui/index.cjs +19 -28
- package/dist/components/ui/index.d.ts +0 -1
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +0 -1
- package/dist/components/ui/layout-hold.d.ts +5 -4
- package/dist/components/ui/layout-hold.d.ts.map +1 -1
- package/dist/components/ui/layout-hold.js +20 -29
- package/dist/components/ui/markdown/base-components.js +1 -1
- package/dist/components/ui/page-actions.d.ts.map +1 -1
- package/dist/components/ui/page-actions.js +6 -8
- package/dist/components/ui/photo-wall.d.ts.map +1 -1
- package/dist/components/ui/photo-wall.js +11 -18
- package/dist/components/ui/query-report-table/query-report-table-skeleton.d.ts +1 -1
- package/dist/components/ui/query-report-table/query-report-table-skeleton.d.ts.map +1 -1
- package/dist/components/ui/query-report-table/query-report-table-skeleton.js +28 -18
- package/dist/components/ui/query-report-table/query-report-table.d.ts +1 -1
- package/dist/components/ui/query-report-table/query-report-table.d.ts.map +1 -1
- package/dist/components/ui/query-report-table/query-report-table.js +3 -1
- package/dist/components/ui/query-report-table/types.d.ts +4 -0
- package/dist/components/ui/query-report-table/types.d.ts.map +1 -1
- package/dist/components/ui/skeleton-surface.d.ts +7 -0
- package/dist/components/ui/skeleton-surface.d.ts.map +1 -0
- package/dist/components/ui/skeleton-surface.js +5 -0
- package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
- package/dist/components/ui/table/table-skeleton.js +11 -13
- package/dist/components/ui/test-run.d.ts +6 -4
- package/dist/components/ui/test-run.d.ts.map +1 -1
- package/dist/components/ui/test-run.js +9 -5
- package/dist/{devices-WWMXIIHI.cjs → devices-AVRQGB2N.cjs} +17 -15
- package/dist/{embeddable-chat-IJHCGQ24.cjs → embeddable-chat-SNYQSMS7.cjs} +79 -77
- package/dist/index.cjs +24 -31
- package/dist/{knowledge-JZP4RIXB.cjs → knowledge-S3CNISQH.cjs} +17 -15
- package/dist/{logs-WIRYFNUC.cjs → logs-WDLOKDXT.cjs} +24 -22
- package/dist/{policies-X7OJYA7G.cjs → policies-STML7NEZ.cjs} +20 -18
- package/dist/{remote-session-IYT4LWJC.cjs → remote-session-ZKP2W3IS.cjs} +9 -7
- package/dist/{scripts-GRMT2NGW.cjs → scripts-HO53VYGX.cjs} +23 -21
- package/dist/{software-update-G3QOB7RT.cjs → software-update-4VTK7LWQ.cjs} +20 -18
- package/dist/{tickets-board-4MT6ZB4F.cjs → tickets-board-BNW4AYFL.cjs} +11 -10
- package/package.json +1 -1
- package/src/components/categories-cart.tsx +2 -4
- package/src/components/chat/chat-container.tsx +4 -4
- package/src/components/chat/chat-context-picker.tsx +3 -2
- package/src/components/chat/chat-message-row.tsx +6 -7
- package/src/components/chat/chat-message-skeleton.tsx +11 -6
- package/src/components/chat/chat-sidebar-skeleton.tsx +4 -3
- package/src/components/chat/chat-top-navigation.tsx +4 -4
- package/src/components/chat/context-items-list.tsx +9 -3
- package/src/components/chat/entity-cards/admin-content-card-grid.tsx +65 -18
- package/src/components/chat/entity-cards/admin-content-card.tsx +2 -1
- package/src/components/chat/entity-cards/blog-card.tsx +13 -12
- package/src/components/chat/entity-cards/campaign-card-admin.tsx +5 -4
- package/src/components/chat/entity-cards/case-study-card.tsx +19 -18
- package/src/components/chat/entity-cards/chat-ticket-item.tsx +5 -5
- package/src/components/chat/entity-cards/customer-interview-card.tsx +15 -14
- package/src/components/chat/entity-cards/data-room-doc-card.tsx +7 -6
- package/src/components/chat/entity-cards/design-doc-card.tsx +0 -2
- package/src/components/chat/entity-cards/generic-entity-card.tsx +8 -7
- package/src/components/chat/entity-cards/github-activity-card.tsx +11 -10
- package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +16 -15
- package/src/components/chat/entity-cards/index.ts +2 -0
- package/src/components/chat/entity-cards/investor-update-card.tsx +12 -11
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +21 -22
- package/src/components/chat/entity-cards/program-card.tsx +29 -28
- package/src/components/chat/entity-cards/roadmap-card.tsx +22 -23
- package/src/components/chat/entity-cards/slack-message-card.tsx +12 -11
- package/src/components/chat/guide-welcome.tsx +2 -2
- package/src/components/chat/mingo-archive-list.tsx +2 -1
- package/src/components/chat/mingo-chat-history.tsx +18 -9
- package/src/components/chat/mingo-chat-rail.tsx +2 -1
- package/src/components/chat/mingo-info-card.tsx +6 -5
- package/src/components/chat/mingo-onboarding-card-skeleton.tsx +15 -13
- package/src/components/chat/model-display.tsx +4 -4
- package/src/components/chat/msp-organization-card-skeleton.tsx +5 -5
- package/src/components/chat/quick-action-chip.tsx +17 -14
- package/src/components/chat/utils/compact-card-classes.ts +4 -5
- package/src/components/content-loading-container.tsx +7 -8
- package/src/components/docs/doc-viewer.tsx +3 -2
- package/src/components/docs/skeletons.tsx +64 -63
- package/src/components/embeds/embed-iframe.tsx +16 -9
- package/src/components/embeds/index.ts +2 -2
- package/src/components/embeds/linkedin-embed-client.tsx +7 -6
- package/src/components/embeds/markdown-image.tsx +5 -3
- package/src/components/embeds/og-link-preview.tsx +162 -79
- package/src/components/embeds/reddit-embed-client.tsx +10 -9
- package/src/components/embeds/twitter-embed-client.tsx +10 -9
- package/src/components/faq/faq-section.tsx +13 -6
- package/src/components/features/auth/login-form.tsx +121 -64
- package/src/components/features/auth/sso-providers.tsx +21 -0
- package/src/components/features/board/ticket-card-skeleton.tsx +8 -8
- package/src/components/features/capability-explorer.tsx +61 -30
- package/src/components/features/devices/device-selector/device-selector-skeleton.tsx +9 -3
- package/src/components/features/devices/device-selector/device-selector.tsx +2 -0
- package/src/components/features/devices/device-selector/device-selector.types.ts +2 -0
- package/src/components/features/devices/devices-grid.tsx +4 -1
- package/src/components/features/devices/devices-panel-view.tsx +9 -1
- package/src/components/features/devices/devices-table-columns.tsx +4 -0
- package/src/components/features/logs/logs-table-view.tsx +4 -2
- package/src/components/features/model-token-rates.tsx +27 -24
- package/src/components/features/notifications/index.ts +2 -2
- package/src/components/features/notifications/notification-drawer.tsx +7 -10
- package/src/components/features/notifications/notification-tile.tsx +57 -0
- package/src/components/features/policies/policy-summary-cards.tsx +2 -2
- package/src/components/features/push-button-selector.tsx +20 -11
- package/src/components/features/remote-session/remote-desktop-view.tsx +26 -16
- package/src/components/features/waitlist-form.tsx +6 -5
- package/src/components/help-center-pages/download-apps-page.tsx +3 -2
- package/src/components/help-center-pages/trust-center-page.tsx +6 -2
- package/src/components/help-center-pages/trust-center-sections.tsx +9 -3
- package/src/components/index.ts +0 -2
- package/src/components/layout/title-block.tsx +17 -15
- package/src/components/loading/card-skeleton.tsx +14 -46
- package/src/components/loading/category-card-skeleton.tsx +2 -4
- package/src/components/loading/category-vendor-selector-skeleton.tsx +12 -5
- package/src/components/loading/device-card-skeleton.tsx +58 -51
- package/src/components/loading/index.ts +5 -19
- package/src/components/loading/loading-region.tsx +60 -0
- package/src/components/loading/margin-report-skeleton.tsx +45 -34
- package/src/components/loading/msp-profile-form-skeleton.tsx +9 -6
- package/src/components/loading/organization-card-skeleton.tsx +8 -6
- package/src/components/loading/organization-icon-skeleton.tsx +3 -2
- package/src/components/loading/page-layout-skeleton.tsx +162 -133
- package/src/components/loading/settings-form-skeleton.tsx +52 -0
- package/src/components/loading/unified-skeleton.tsx +26 -71
- package/src/components/loading/wizard-layout-skeleton.tsx +6 -3
- package/src/components/media-carousel.tsx +2 -1
- package/src/components/meeting-scheduler/booking-form.tsx +10 -7
- package/src/components/meeting-scheduler/context-panel.tsx +8 -7
- package/src/components/meeting-scheduler/directory.tsx +10 -9
- package/src/components/meeting-scheduler/index.tsx +5 -4
- package/src/components/meeting-scheduler/modal-header.tsx +8 -7
- package/src/components/meeting-scheduler/slot-picker.tsx +4 -3
- package/src/components/navigation/app-header.tsx +8 -7
- package/src/components/navigation/multi-level-navigation.tsx +3 -2
- package/src/components/navigation/navigation-sidebar-item.tsx +3 -2
- package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +17 -10
- package/src/components/product-demo/product-screen.tsx +4 -4
- package/src/components/profile/ProfileLoadingSkeleton.tsx +13 -9
- package/src/components/related-content/related-content-section.tsx +5 -4
- package/src/components/shared/delivery/delivery-table.tsx +8 -7
- package/src/components/shared/detail-page-skeleton.tsx +22 -14
- package/src/components/shared/dev-section/dev-card-row.tsx +23 -10
- package/src/components/shared/legal-document/legal-document-page.tsx +8 -7
- package/src/components/shared/onboarding/onboarding-step-card.tsx +3 -2
- package/src/components/shared/onboarding/onboarding-walkthrough.tsx +2 -1
- package/src/components/shared/product-release/index.ts +0 -1
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +23 -25
- package/src/components/shared/product-release/product-releases-view.tsx +3 -2
- package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +14 -56
- package/src/components/tickets/help-center-create-form.tsx +23 -12
- package/src/components/tickets/ticket-center.tsx +17 -11
- package/src/components/tickets/ticket-detail-drawer.tsx +3 -2
- package/src/components/ui/admin-form-drawer.tsx +7 -7
- package/src/components/ui/admin-form-modal.tsx +9 -8
- package/src/components/ui/analyzing-state.tsx +5 -8
- package/src/components/ui/content-loader.tsx +31 -23
- package/src/components/ui/dashboard-info-card.tsx +81 -20
- package/src/components/ui/data-attribution.tsx +18 -0
- package/src/components/ui/data-table/data-table-body.tsx +9 -2
- package/src/components/ui/data-table/data-table-infinite-footer.tsx +4 -2
- package/src/components/ui/data-table/data-table-skeleton.tsx +8 -5
- package/src/components/ui/feature-card.tsx +27 -11
- package/src/components/ui/file-manager/file-manager-skeleton.tsx +30 -22
- package/src/components/ui/file-manager/file-manager-table.tsx +10 -10
- package/src/components/ui/filter-modal.tsx +5 -5
- package/src/components/ui/filter-pill-row.tsx +19 -0
- package/src/components/ui/index.ts +0 -1
- package/src/components/ui/layout-hold.tsx +30 -38
- package/src/components/ui/markdown/base-components.tsx +1 -1
- package/src/components/ui/page-actions.tsx +10 -8
- package/src/components/ui/photo-wall.tsx +4 -7
- package/src/components/ui/query-report-table/query-report-table-skeleton.tsx +13 -7
- package/src/components/ui/query-report-table/query-report-table.tsx +2 -0
- package/src/components/ui/query-report-table/types.ts +4 -0
- package/src/components/ui/skeleton-surface.ts +6 -0
- package/src/components/ui/table/table-skeleton.tsx +11 -13
- package/src/components/ui/test-run.tsx +30 -22
- package/src/styles/ods-colors.css +2 -2
- package/dist/chunk-5M5C6UV4.cjs +0 -125
- package/dist/components/dynamic-skeleton.d.ts +0 -108
- package/dist/components/dynamic-skeleton.d.ts.map +0 -1
- package/dist/components/dynamic-skeleton.js +0 -221
- package/dist/components/loading/content-skeleton.d.ts +0 -73
- package/dist/components/loading/content-skeleton.d.ts.map +0 -1
- package/dist/components/loading/content-skeleton.js +0 -217
- package/dist/components/loading/users-grid-skeleton.d.ts +0 -7
- package/dist/components/loading/users-grid-skeleton.d.ts.map +0 -1
- package/dist/components/loading/users-grid-skeleton.js +0 -13
- package/dist/components/shared/product-release/release-detail-skeleton.d.ts +0 -2
- package/dist/components/shared/product-release/release-detail-skeleton.d.ts.map +0 -1
- package/dist/components/shared/product-release/release-detail-skeleton.js +0 -9
- package/dist/components/skeleton.d.ts +0 -4
- package/dist/components/skeleton.d.ts.map +0 -1
- package/dist/components/skeleton.js +0 -9
- package/dist/components/ui/skeleton.d.ts +0 -44
- package/dist/components/ui/skeleton.d.ts.map +0 -1
- package/dist/components/ui/skeleton.js +0 -103
- package/dist/components/vendor-page-skeleton.d.ts +0 -2
- package/dist/components/vendor-page-skeleton.d.ts.map +0 -1
- package/dist/components/vendor-page-skeleton.js +0 -9
- package/src/components/dynamic-skeleton.tsx +0 -365
- package/src/components/loading/content-skeleton.tsx +0 -374
- package/src/components/loading/users-grid-skeleton.tsx +0 -36
- package/src/components/shared/product-release/release-detail-skeleton.tsx +0 -7
- package/src/components/skeleton.tsx +0 -8
- package/src/components/ui/skeleton.tsx +0 -173
- package/src/components/vendor-page-skeleton.tsx +0 -7
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { AuthSsoProvider } from './sso-providers';
|
|
3
|
+
/** The sign-in methods of the organization an email resolved to. */
|
|
4
|
+
export interface LoginFormTenantMethods {
|
|
5
|
+
/** Names the block ("Sign-in methods for <name>") and tags the organization's own providers. */
|
|
6
|
+
name?: string;
|
|
7
|
+
/** Its built-in OpenFrame login, offered first. */
|
|
8
|
+
openframe: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Identity providers it configured with its own credentials, tagged with `name` so they cannot be
|
|
11
|
+
* mistaken for the generic button of the same provider.
|
|
12
|
+
*/
|
|
13
|
+
providers: Exclude<AuthSsoProvider, 'openframe'>[];
|
|
14
|
+
}
|
|
3
15
|
export interface LoginFormProps {
|
|
4
16
|
/** Controlled email value */
|
|
5
17
|
email: string;
|
|
@@ -15,37 +27,39 @@ export interface LoginFormProps {
|
|
|
15
27
|
message: string;
|
|
16
28
|
variant: 'error' | 'warning' | 'success' | 'muted';
|
|
17
29
|
};
|
|
30
|
+
/** A message too long for the field's one-line status, shown in a notice row under the field. */
|
|
31
|
+
notice?: string;
|
|
18
32
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
33
|
+
* The generic providers, under the email field behind `dividerLabel`. They need nothing typed: the
|
|
34
|
+
* server resolves the organization from the identity the provider asserts. With `tenantMethods`
|
|
35
|
+
* they follow the organization's own methods; pass `[]` to offer only those.
|
|
21
36
|
*/
|
|
22
37
|
ssoProviders: AuthSsoProvider[];
|
|
23
38
|
onSsoClick?: (provider: AuthSsoProvider) => void;
|
|
24
|
-
/** Disables every provider button (e.g.
|
|
39
|
+
/** Disables every provider button (e.g. while the typed email is being looked up). */
|
|
25
40
|
ssoDisabled?: boolean;
|
|
26
|
-
/** When set, only these providers are clickable; the rest stay disabled. */
|
|
41
|
+
/** When set, only these generic providers are clickable; the rest stay disabled. */
|
|
27
42
|
ssoEnabledProviders?: AuthSsoProvider[];
|
|
28
43
|
/** Verb prefix for provider buttons, e.g. "Continue with". */
|
|
29
44
|
ssoActionLabel?: string;
|
|
30
|
-
/** Label on the divider
|
|
45
|
+
/** Label on the divider above the generic providers. */
|
|
31
46
|
dividerLabel?: string;
|
|
32
47
|
/**
|
|
33
|
-
* The
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* Three states, and the empty array is not the same as nothing: `undefined` means discovery has
|
|
38
|
-
* not resolved a tenant yet and the slot stays empty, while `[]` means it resolved and the tenant
|
|
39
|
-
* has none — which is an answer worth showing rather than silence.
|
|
48
|
+
* The organization the typed email resolved to. Its methods render above the generic block, under
|
|
49
|
+
* a heading that names it, so the switch from "any account" to "this organization's sign-in" is
|
|
50
|
+
* visible rather than a silent change of what the same buttons do.
|
|
40
51
|
*/
|
|
41
|
-
|
|
42
|
-
/** Shown in place of the custom SSO buttons when the resolved tenant has none configured. */
|
|
43
|
-
noCustomSsoLabel?: string;
|
|
52
|
+
tenantMethods?: LoginFormTenantMethods;
|
|
44
53
|
/** Primary submit under the email field. Omit the handler to hide the button. */
|
|
45
54
|
onSubmitClick?: () => void;
|
|
46
55
|
submitLabel?: string;
|
|
47
56
|
/** Disables just the primary submit (fields stay editable). */
|
|
48
57
|
submitDisabled?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Enter in the email field when there is no submit button, e.g. to look the address up now
|
|
60
|
+
* instead of after a typing pause. With `onSubmitClick` set, Enter drives that instead.
|
|
61
|
+
*/
|
|
62
|
+
onEmailEnter?: () => void;
|
|
49
63
|
/** Overrides the default heading. */
|
|
50
64
|
title?: string;
|
|
51
65
|
/** Overrides the default sub-heading. */
|
|
@@ -60,11 +74,10 @@ export interface LoginFormProps {
|
|
|
60
74
|
className?: string;
|
|
61
75
|
}
|
|
62
76
|
/**
|
|
63
|
-
* Login form (Login tab). Presentational + controlled — the consumer owns
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* resolves the tenant from the identity the provider asserts.
|
|
77
|
+
* Login form (Login tab). Presentational + controlled — the consumer owns state, validation and
|
|
78
|
+
* discovery. Email first, sign-in methods under it: everything that changes once the email is known
|
|
79
|
+
* sits below the field, and the block changes as a whole. Before that the generic providers are
|
|
80
|
+
* there and need nothing typed; whether they are gated is the consumer's call via `ssoDisabled`.
|
|
68
81
|
*/
|
|
69
|
-
export declare function LoginForm({ email, onEmailChange, emailPlaceholder, loading, disabled, errors, emailStatus, ssoProviders, onSsoClick, ssoDisabled, ssoEnabledProviders, ssoActionLabel, dividerLabel,
|
|
82
|
+
export declare function LoginForm({ email, onEmailChange, emailPlaceholder, loading, disabled, errors, emailStatus, notice, ssoProviders, onSsoClick, ssoDisabled, ssoEnabledProviders, ssoActionLabel, dividerLabel, tenantMethods, onSubmitClick, submitLabel, submitDisabled, onEmailEnter, title, subtitle, termsUrl, privacyPolicyUrl, className, }: LoginFormProps): import("react").JSX.Element;
|
|
70
83
|
//# sourceMappingURL=login-form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-form.d.ts","sourceRoot":"","sources":["../../../../src/components/features/auth/login-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAStD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"login-form.d.ts","sourceRoot":"","sources":["../../../../src/components/features/auth/login-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAStD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AASvD,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,oGAAoG;IACpG,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;KAAE,CAAC;IACtF,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,sFAAsF;IACtF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAC;IACxC,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,aAAa,EACb,gBAAsC,EACtC,OAAe,EACf,QAAgB,EAChB,MAAM,EACN,WAAW,EACX,MAAM,EACN,YAAY,EACZ,UAAU,EACV,WAAmB,EACnB,mBAAmB,EACnB,cAAgC,EAChC,YAAiC,EACjC,aAAa,EACb,aAAa,EACb,WAAwB,EACxB,cAAsB,EACtB,YAAY,EACZ,KAA4B,EAC5B,QAA0D,EAC1D,QAAQ,EACR,gBAAgB,EAChB,SAAS,GACV,EAAE,cAAc,+BAwIhB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useDeferredError } from "../../../hooks/ui/use-deferred-error.js";
|
|
4
4
|
import { cn } from "../../../utils/cn.js";
|
|
5
5
|
import { AlertTriangleIcon } from "../../icons-v2-generated/interface/alert-triangle-icon.js";
|
|
@@ -9,6 +9,7 @@ import { Input } from "../../ui/input.js";
|
|
|
9
9
|
import { LabeledDivider } from "./labeled-divider.js";
|
|
10
10
|
import { LegalLinks } from "./legal-links.js";
|
|
11
11
|
import { SsoProviderButtons } from "./sso-providers.js";
|
|
12
|
+
const ENTER_ANIMATION = "animate-in fade-in-0 slide-in-from-top-1 duration-200 ease-out motion-reduce:animate-none";
|
|
12
13
|
function LoginForm({
|
|
13
14
|
email,
|
|
14
15
|
onEmailChange,
|
|
@@ -17,17 +18,18 @@ function LoginForm({
|
|
|
17
18
|
disabled = false,
|
|
18
19
|
errors,
|
|
19
20
|
emailStatus,
|
|
21
|
+
notice,
|
|
20
22
|
ssoProviders,
|
|
21
23
|
onSsoClick,
|
|
22
24
|
ssoDisabled = false,
|
|
23
25
|
ssoEnabledProviders,
|
|
24
26
|
ssoActionLabel = "Continue with",
|
|
25
|
-
dividerLabel = "or continue with
|
|
26
|
-
|
|
27
|
-
noCustomSsoLabel = "No additional SSO configurations for this domain",
|
|
27
|
+
dividerLabel = "or continue with",
|
|
28
|
+
tenantMethods,
|
|
28
29
|
onSubmitClick,
|
|
29
30
|
submitLabel = "Continue",
|
|
30
31
|
submitDisabled = false,
|
|
32
|
+
onEmailEnter,
|
|
31
33
|
title = "Login to OpenFrame",
|
|
32
34
|
subtitle = "Enter your email to access your organization.",
|
|
33
35
|
termsUrl,
|
|
@@ -35,10 +37,15 @@ function LoginForm({
|
|
|
35
37
|
className
|
|
36
38
|
}) {
|
|
37
39
|
const fieldDisabled = disabled || loading;
|
|
40
|
+
const providersDisabled = fieldDisabled || ssoDisabled;
|
|
38
41
|
const emailErr = useDeferredError(errors?.email, email);
|
|
39
42
|
const handleKeyDown = (event) => {
|
|
40
|
-
if (event.key !== "Enter" ||
|
|
41
|
-
onSubmitClick
|
|
43
|
+
if (event.key !== "Enter" || event.repeat || fieldDisabled) return;
|
|
44
|
+
if (onSubmitClick) {
|
|
45
|
+
if (!submitDisabled) onSubmitClick();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
onEmailEnter?.();
|
|
42
49
|
};
|
|
43
50
|
return /* @__PURE__ */ jsxs(
|
|
44
51
|
"div",
|
|
@@ -52,17 +59,6 @@ function LoginForm({
|
|
|
52
59
|
/* @__PURE__ */ jsx("h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: accentSentenceMarks(title) }),
|
|
53
60
|
/* @__PURE__ */ jsx("p", { className: "text-ods-text-secondary text-h4", children: subtitle })
|
|
54
61
|
] }),
|
|
55
|
-
ssoProviders.length > 0 && /* @__PURE__ */ jsx(
|
|
56
|
-
SsoProviderButtons,
|
|
57
|
-
{
|
|
58
|
-
providers: ssoProviders,
|
|
59
|
-
onSsoClick,
|
|
60
|
-
actionLabel: ssoActionLabel,
|
|
61
|
-
disabled: disabled || loading || ssoDisabled,
|
|
62
|
-
enabledProviders: ssoEnabledProviders
|
|
63
|
-
}
|
|
64
|
-
),
|
|
65
|
-
ssoProviders.length > 0 && /* @__PURE__ */ jsx(LabeledDivider, { label: dividerLabel }),
|
|
66
62
|
/* @__PURE__ */ jsx(
|
|
67
63
|
Input,
|
|
68
64
|
{
|
|
@@ -78,30 +74,22 @@ function LoginForm({
|
|
|
78
74
|
onKeyDown: handleKeyDown
|
|
79
75
|
}
|
|
80
76
|
),
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
notice && // Tokens are the design's: soft-grey surface, grey text and icon, the bold-body step, a 24px
|
|
78
|
+
// icon, and 12/16 for the inset and the gap.
|
|
79
|
+
/* @__PURE__ */ jsxs(
|
|
80
|
+
"div",
|
|
83
81
|
{
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
role: "status",
|
|
83
|
+
className: cn(
|
|
84
|
+
"flex min-h-11 w-full items-center gap-[var(--spacing-system-m)] rounded-md bg-ods-bg-surface px-[var(--spacing-system-s)] py-[var(--spacing-system-s)] text-ods-text-secondary text-h3 md:min-h-12",
|
|
85
|
+
ENTER_ANIMATION
|
|
86
|
+
),
|
|
87
|
+
children: [
|
|
88
|
+
/* @__PURE__ */ jsx(AlertTriangleIcon, { className: "h-6 w-6 shrink-0" }),
|
|
89
|
+
notice
|
|
90
|
+
]
|
|
88
91
|
}
|
|
89
|
-
)
|
|
90
|
-
// Same footprint as the button it stands in for, so nothing shifts when a tenant does
|
|
91
|
-
// have options. Tokens are the design's: soft-grey surface, grey text and icon, the
|
|
92
|
-
// bold-body step, a 24px icon, and 12/16 for the inset and the gap.
|
|
93
|
-
/* @__PURE__ */ jsxs(
|
|
94
|
-
"div",
|
|
95
|
-
{
|
|
96
|
-
role: "status",
|
|
97
|
-
className: "flex min-h-11 w-full items-center gap-[var(--spacing-system-m)] rounded-md bg-ods-bg-surface px-[var(--spacing-system-s)] py-[var(--spacing-system-s)] text-ods-text-secondary text-h3 md:min-h-12",
|
|
98
|
-
children: [
|
|
99
|
-
/* @__PURE__ */ jsx(AlertTriangleIcon, { className: "h-6 w-6 shrink-0" }),
|
|
100
|
-
noCustomSsoLabel
|
|
101
|
-
]
|
|
102
|
-
}
|
|
103
|
-
)
|
|
104
|
-
)),
|
|
92
|
+
),
|
|
105
93
|
onSubmitClick && // Full width on a phone, half the row and right-aligned from `md` up, matching the design.
|
|
106
94
|
// The spacer, rather than a width on the button, keeps it flush with the fields' right edge.
|
|
107
95
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--spacing-system-l)]", children: [
|
|
@@ -120,6 +108,56 @@ function LoginForm({
|
|
|
120
108
|
}
|
|
121
109
|
)
|
|
122
110
|
] }),
|
|
111
|
+
(tenantMethods || ssoProviders.length > 0) && // One block, so an organization's methods replace the generic set as a whole: the key mounts
|
|
112
|
+
// it anew when they arrive, and every row of it eases in, not only the rows that are new.
|
|
113
|
+
// Going back to the generic set swaps without a transition, as the prototype does.
|
|
114
|
+
/* @__PURE__ */ jsxs(
|
|
115
|
+
"div",
|
|
116
|
+
{
|
|
117
|
+
role: "group",
|
|
118
|
+
"aria-label": "Sign-in methods",
|
|
119
|
+
className: cn("flex flex-col gap-[var(--spacing-system-l)]", tenantMethods && ENTER_ANIMATION),
|
|
120
|
+
children: [
|
|
121
|
+
tenantMethods && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
122
|
+
/* @__PURE__ */ jsx(LabeledDivider, { label: `Sign-in methods for ${tenantMethods.name || "your organization"}` }),
|
|
123
|
+
tenantMethods.openframe && // Not configured with anyone's credentials, so it carries no tag.
|
|
124
|
+
/* @__PURE__ */ jsx(
|
|
125
|
+
SsoProviderButtons,
|
|
126
|
+
{
|
|
127
|
+
providers: ["openframe"],
|
|
128
|
+
onSsoClick,
|
|
129
|
+
actionLabel: ssoActionLabel,
|
|
130
|
+
disabled: providersDisabled
|
|
131
|
+
}
|
|
132
|
+
),
|
|
133
|
+
tenantMethods.providers.length > 0 && /* @__PURE__ */ jsx(
|
|
134
|
+
SsoProviderButtons,
|
|
135
|
+
{
|
|
136
|
+
providers: tenantMethods.providers,
|
|
137
|
+
onSsoClick,
|
|
138
|
+
actionLabel: ssoActionLabel,
|
|
139
|
+
disabled: providersDisabled,
|
|
140
|
+
tag: tenantMethods.name
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
] }),
|
|
144
|
+
ssoProviders.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
145
|
+
(!tenantMethods || tenantMethods.openframe || tenantMethods.providers.length > 0) && /* @__PURE__ */ jsx(LabeledDivider, { label: dividerLabel }),
|
|
146
|
+
/* @__PURE__ */ jsx(
|
|
147
|
+
SsoProviderButtons,
|
|
148
|
+
{
|
|
149
|
+
providers: ssoProviders,
|
|
150
|
+
onSsoClick,
|
|
151
|
+
actionLabel: ssoActionLabel,
|
|
152
|
+
disabled: providersDisabled,
|
|
153
|
+
enabledProviders: ssoEnabledProviders
|
|
154
|
+
}
|
|
155
|
+
)
|
|
156
|
+
] })
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
tenantMethods ? `tenant:${tenantMethods.name ?? ""}` : "generic"
|
|
160
|
+
),
|
|
123
161
|
termsUrl && privacyPolicyUrl && /* @__PURE__ */ jsx(LegalLinks, { termsUrl, privacyPolicyUrl })
|
|
124
162
|
]
|
|
125
163
|
}
|
|
@@ -18,7 +18,13 @@ export interface SsoProviderButtonsProps {
|
|
|
18
18
|
* `disabled` still wins over this list.
|
|
19
19
|
*/
|
|
20
20
|
enabledProviders?: AuthSsoProvider[];
|
|
21
|
+
/**
|
|
22
|
+
* A stamp on every button naming who configured these providers — e.g. the organization whose
|
|
23
|
+
* own Google Workspace a "Continue with Google" button signs in through, which is not the same
|
|
24
|
+
* button as the generic one.
|
|
25
|
+
*/
|
|
26
|
+
tag?: string;
|
|
21
27
|
}
|
|
22
28
|
/** Stacked full-width SSO provider buttons shared by the auth forms. */
|
|
23
|
-
export declare function SsoProviderButtons({ providers, onSsoClick, actionLabel, disabled, enabledProviders, }: SsoProviderButtonsProps): import("react").JSX.Element;
|
|
29
|
+
export declare function SsoProviderButtons({ providers, onSsoClick, actionLabel, disabled, enabledProviders, tag, }: SsoProviderButtonsProps): import("react").JSX.Element;
|
|
24
30
|
//# sourceMappingURL=sso-providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sso-providers.d.ts","sourceRoot":"","sources":["../../../../src/components/features/auth/sso-providers.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"sso-providers.d.ts","sourceRoot":"","sources":["../../../../src/components/features/auth/sso-providers.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAIhF,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7E,+GAA+G;AAC/G,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAaxF,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,UAAU,EACV,WAA6B,EAC7B,QAAgB,EAChB,gBAAgB,EAChB,GAAG,GACJ,EAAE,uBAAuB,+BAqCzB"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { requireIcon } from "../../chat/utils/icon-loading.js";
|
|
4
4
|
import { Button } from "../../ui/button/index.js";
|
|
5
|
+
import { StatusBadge } from "../../ui/status-badge.js";
|
|
5
6
|
const PROVIDER_META = {
|
|
6
7
|
openframe: {
|
|
7
8
|
name: "OpenFrame",
|
|
@@ -21,12 +22,13 @@ function SsoProviderButtons({
|
|
|
21
22
|
onSsoClick,
|
|
22
23
|
actionLabel = "Continue with",
|
|
23
24
|
disabled = false,
|
|
24
|
-
enabledProviders
|
|
25
|
+
enabledProviders,
|
|
26
|
+
tag
|
|
25
27
|
}) {
|
|
26
28
|
return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[var(--spacing-system-l)]", children: providers.map((provider) => {
|
|
27
29
|
const meta = PROVIDER_META[provider];
|
|
28
30
|
const Icon = meta.Icon;
|
|
29
|
-
return /* @__PURE__ */
|
|
31
|
+
return /* @__PURE__ */ jsxs(
|
|
30
32
|
Button,
|
|
31
33
|
{
|
|
32
34
|
type: "button",
|
|
@@ -36,7 +38,23 @@ function SsoProviderButtons({
|
|
|
36
38
|
className: "disabled:bg-ods-bg",
|
|
37
39
|
leftIcon: /* @__PURE__ */ jsx(Icon, { className: "h-5 w-5" }),
|
|
38
40
|
onClick: () => onSsoClick?.(provider),
|
|
39
|
-
children:
|
|
41
|
+
children: [
|
|
42
|
+
`${actionLabel} ${meta.name}`,
|
|
43
|
+
tag && // A child, not `rightIcon`: the Button lays its children out through a `contents` span,
|
|
44
|
+
// so the badge is a flex item of the button itself and can give up width (`min-w-0`)
|
|
45
|
+
// where a long organization name would otherwise push the label out of a phone-width
|
|
46
|
+
// button. `block` over its inline-flex, because an ellipsis only renders on a block box.
|
|
47
|
+
/* @__PURE__ */ jsx(
|
|
48
|
+
StatusBadge,
|
|
49
|
+
{
|
|
50
|
+
text: tag,
|
|
51
|
+
variant: "button",
|
|
52
|
+
singleLine: true,
|
|
53
|
+
title: tag,
|
|
54
|
+
className: "block min-w-0 max-w-32 truncate"
|
|
55
|
+
}
|
|
56
|
+
)
|
|
57
|
+
]
|
|
40
58
|
},
|
|
41
59
|
provider
|
|
42
60
|
);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { forwardRef } from "react";
|
|
4
4
|
import { cn } from "../../../utils/cn.js";
|
|
5
|
-
import {
|
|
5
|
+
import { UnifiedSkeleton } from "../../loading/unified-skeleton.js";
|
|
6
6
|
const TicketCardSkeleton = forwardRef(
|
|
7
7
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
8
8
|
"div",
|
|
@@ -16,20 +16,20 @@ const TicketCardSkeleton = forwardRef(
|
|
|
16
16
|
children: [
|
|
17
17
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
|
|
18
18
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
19
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center text-h3", children: /* @__PURE__ */ jsx(
|
|
19
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center text-h3", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-4 w-3/4" }) }),
|
|
20
20
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--spacing-system-xxs)] text-h6", children: [
|
|
21
|
-
/* @__PURE__ */ jsx(
|
|
22
|
-
/* @__PURE__ */ jsx(
|
|
21
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-4 shrink-0 rounded-sm" }),
|
|
22
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-3 w-1/2" })
|
|
23
23
|
] })
|
|
24
24
|
] }),
|
|
25
25
|
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
26
|
-
/* @__PURE__ */ jsx(
|
|
27
|
-
/* @__PURE__ */ jsx(
|
|
26
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-4 rounded-sm" }),
|
|
27
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-8 rounded-full" })
|
|
28
28
|
] })
|
|
29
29
|
] }),
|
|
30
30
|
/* @__PURE__ */ jsxs("div", { className: "flex h-8 items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
31
|
-
/* @__PURE__ */ jsx(
|
|
32
|
-
/* @__PURE__ */ jsx(
|
|
31
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-8 w-16 rounded-md" }),
|
|
32
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-8 w-12 rounded-md" })
|
|
33
33
|
] })
|
|
34
34
|
]
|
|
35
35
|
}
|
|
@@ -77,7 +77,9 @@ export declare const capabilityTabId: (id: string) => string;
|
|
|
77
77
|
* first card over the carousel's controls. Every box is the loaded one's, so
|
|
78
78
|
* nothing moves when the jobs arrive.
|
|
79
79
|
*/
|
|
80
|
-
export declare function CapabilityExplorerSkeleton({ className, count }: {
|
|
80
|
+
export declare function CapabilityExplorerSkeleton({ region, className, count, }: {
|
|
81
|
+
/** The loading state announces itself (`LoadingRegion`). `false` inside another loading region. Default `true`. */
|
|
82
|
+
region?: boolean;
|
|
81
83
|
className?: string;
|
|
82
84
|
count?: number;
|
|
83
85
|
}): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-explorer.d.ts","sourceRoot":"","sources":["../../../src/components/features/capability-explorer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"capability-explorer.d.ts","sourceRoot":"","sources":["../../../src/components/features/capability-explorer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAWnE,0FAA0F;AAC1F,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,sBAAsB,CAAC;QACnC,SAAS,CAAC,EAAE,sBAAsB,CAAC;KACpC,GAAG,IAAI,CAAC;IACT,gFAAgF;IAChF,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,kGAAkG;AAClG,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzC,MAAM,EAAE,wBAAwB,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,yFAAyF;IACzF,YAAY,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,SAAS,CAAC;IACzF,iFAAiF;IACjF,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD,yFAAyF;AACzF,eAAO,MAAM,eAAe,GAAI,IAAI,MAAM,KAAG,MAAqB,CAAC;AAoInE;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,MAAa,EACb,SAAS,EACT,KAAS,GACV,EAAE;IACD,mHAAmH;IACnH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,+BA6FA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,MAAM,EACN,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,GACV,EAAE,uBAAuB,sCA6MzB"}
|
|
@@ -6,7 +6,8 @@ import { cn } from "../../utils/cn.js";
|
|
|
6
6
|
import { EntityIcon } from "../icon-display.js";
|
|
7
7
|
import { Chevron02RightIcon } from "../icons-v2-generated/arrows/chevron-02-right-icon.js";
|
|
8
8
|
import { CheckIcon } from "../icons-v2-generated/signs-and-symbols/check-icon.js";
|
|
9
|
-
import {
|
|
9
|
+
import { LoadingRegion } from "../loading/loading-region.js";
|
|
10
|
+
import { UnifiedSkeleton } from "../loading/unified-skeleton.js";
|
|
10
11
|
import { SnapCarousel, SnapCarouselControlsSkeleton } from "../ui/snap-carousel.js";
|
|
11
12
|
import { TruncateText } from "../ui/truncate-text.js";
|
|
12
13
|
const PANEL_HEIGHT_CLASS = "h-[824px]";
|
|
@@ -65,17 +66,15 @@ function Example({
|
|
|
65
66
|
}
|
|
66
67
|
);
|
|
67
68
|
}
|
|
68
|
-
|
|
69
|
-
return /* @__PURE__ */ jsx("div", { className: line, children: /* @__PURE__ */ jsx("span", { className: cn("inline-block h-[0.7em] animate-pulse rounded bg-ods-border align-middle", width) }) });
|
|
70
|
-
}
|
|
69
|
+
const LINE_SKELETON_CLASS = "inline-block h-[0.7em] rounded align-middle";
|
|
71
70
|
function ExampleSkeleton({ className }) {
|
|
72
71
|
const turn = (first) => /* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 gap-2.5", !first && "border-t border-ods-border pt-3"), children: [
|
|
73
|
-
/* @__PURE__ */ jsx(
|
|
72
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-6 shrink-0 rounded-full" }),
|
|
74
73
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
75
|
-
/* @__PURE__ */ jsx(
|
|
74
|
+
/* @__PURE__ */ jsx("div", { className: "text-h6", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-28") }) }),
|
|
76
75
|
/* @__PURE__ */ jsxs("div", { className: "min-h-[2lh] text-h4", children: [
|
|
77
|
-
/* @__PURE__ */ jsx(
|
|
78
|
-
/* @__PURE__ */ jsx(
|
|
76
|
+
/* @__PURE__ */ jsx("div", { className: "text-h4", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-full") }) }),
|
|
77
|
+
/* @__PURE__ */ jsx("div", { className: "text-h4", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-2/3") }) })
|
|
79
78
|
] })
|
|
80
79
|
] })
|
|
81
80
|
] });
|
|
@@ -95,15 +94,19 @@ function ExampleSkeleton({ className }) {
|
|
|
95
94
|
}
|
|
96
95
|
function JobHeadSkeleton() {
|
|
97
96
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
98
|
-
/* @__PURE__ */ jsx(
|
|
97
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-9 shrink-0 rounded-lg" }),
|
|
99
98
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
100
|
-
/* @__PURE__ */ jsx(
|
|
101
|
-
/* @__PURE__ */ jsx("div", { className: "mt-0.5", children: /* @__PURE__ */ jsx(
|
|
99
|
+
/* @__PURE__ */ jsx("div", { className: "text-h4", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-32") }) }),
|
|
100
|
+
/* @__PURE__ */ jsx("div", { className: "mt-0.5", children: /* @__PURE__ */ jsx("div", { className: "text-h6", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-40") }) }) })
|
|
102
101
|
] })
|
|
103
102
|
] });
|
|
104
103
|
}
|
|
105
|
-
function CapabilityExplorerSkeleton({
|
|
106
|
-
|
|
104
|
+
function CapabilityExplorerSkeleton({
|
|
105
|
+
region = true,
|
|
106
|
+
className,
|
|
107
|
+
count = 8
|
|
108
|
+
}) {
|
|
109
|
+
return /* @__PURE__ */ jsxs(LoadingRegion, { label: "Loading capabilities", announce: region, className, children: [
|
|
107
110
|
/* @__PURE__ */ jsxs("div", { className: "content-lg:hidden", children: [
|
|
108
111
|
/* @__PURE__ */ jsx("div", { className: "flex gap-[var(--spacing-system-sf)] overflow-hidden", children: /* @__PURE__ */ jsxs(
|
|
109
112
|
"div",
|
|
@@ -115,10 +118,10 @@ function CapabilityExplorerSkeleton({ className, count = 8 }) {
|
|
|
115
118
|
children: [
|
|
116
119
|
/* @__PURE__ */ jsx("div", { className: "flex min-w-0 items-center gap-3", children: /* @__PURE__ */ jsx(JobHeadSkeleton, {}) }),
|
|
117
120
|
/* @__PURE__ */ jsxs("div", { className: "min-h-[3lh] text-h6", children: [
|
|
118
|
-
/* @__PURE__ */ jsx(
|
|
119
|
-
/* @__PURE__ */ jsx(
|
|
121
|
+
/* @__PURE__ */ jsx("div", { className: "text-h6", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-full") }) }),
|
|
122
|
+
/* @__PURE__ */ jsx("div", { className: "text-h6", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-5/6") }) })
|
|
120
123
|
] }),
|
|
121
|
-
/* @__PURE__ */ jsx(
|
|
124
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-[300px] shrink-0 rounded-lg" }),
|
|
122
125
|
/* @__PURE__ */ jsx(ExampleSkeleton, { className: "shrink-0" })
|
|
123
126
|
]
|
|
124
127
|
}
|
|
@@ -147,19 +150,19 @@ function CapabilityExplorerSkeleton({ className, count = 8 }) {
|
|
|
147
150
|
/* @__PURE__ */ jsxs("div", { className: "flex min-h-0 min-w-0 flex-col gap-5 overflow-hidden rounded-xl border border-ods-border bg-ods-card px-8 py-7", children: [
|
|
148
151
|
/* @__PURE__ */ jsxs("div", { className: cn("grid shrink-0 grid-cols-[minmax(0,1fr)_minmax(0,380px)] gap-8", PANEL_TOP_HEIGHT_CLASS), children: [
|
|
149
152
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col overflow-hidden", children: [
|
|
150
|
-
/* @__PURE__ */ jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsx(
|
|
153
|
+
/* @__PURE__ */ jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsx("div", { className: "text-h2", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-64") }) }) }),
|
|
151
154
|
/* @__PURE__ */ jsxs("div", { className: "min-h-[3lh] text-h4", children: [
|
|
152
|
-
/* @__PURE__ */ jsx(
|
|
153
|
-
/* @__PURE__ */ jsx(
|
|
155
|
+
/* @__PURE__ */ jsx("div", { className: "text-h4", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-full") }) }),
|
|
156
|
+
/* @__PURE__ */ jsx("div", { className: "text-h4", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-4/5") }) })
|
|
154
157
|
] }),
|
|
155
158
|
/* @__PURE__ */ jsx("div", { className: "mt-auto grid grid-cols-1 gap-2", children: [0, 1, 2].map((i) => /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2.5", children: [
|
|
156
|
-
/* @__PURE__ */ jsx(
|
|
157
|
-
/* @__PURE__ */ jsx(
|
|
159
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "size-4 shrink-0 rounded-full" }),
|
|
160
|
+
/* @__PURE__ */ jsx("div", { className: "text-h6", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, i === 1 ? "w-56" : "w-48") }) })
|
|
158
161
|
] }, i)) })
|
|
159
162
|
] }),
|
|
160
163
|
/* @__PURE__ */ jsx(ExampleSkeleton, {})
|
|
161
164
|
] }),
|
|
162
|
-
/* @__PURE__ */ jsx(
|
|
165
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: cn("shrink-0 rounded-xl", PANEL_SCREEN_HEIGHT_CLASS) }),
|
|
163
166
|
/* @__PURE__ */ jsxs(
|
|
164
167
|
"div",
|
|
165
168
|
{
|
|
@@ -168,8 +171,8 @@ function CapabilityExplorerSkeleton({ className, count = 8 }) {
|
|
|
168
171
|
PANEL_FOOTER_HEIGHT_CLASS
|
|
169
172
|
),
|
|
170
173
|
children: [
|
|
171
|
-
/* @__PURE__ */ jsx(
|
|
172
|
-
/* @__PURE__ */ jsx(
|
|
174
|
+
/* @__PURE__ */ jsx("div", { className: "text-h5", children: /* @__PURE__ */ jsx(UnifiedSkeleton, { as: "span", className: cn(LINE_SKELETON_CLASS, "w-16") }) }),
|
|
175
|
+
/* @__PURE__ */ jsx(UnifiedSkeleton, { className: "h-7 w-36 rounded-md" })
|
|
173
176
|
]
|
|
174
177
|
}
|
|
175
178
|
)
|
|
@@ -4,7 +4,10 @@ import type { DeviceSelectorProps } from './device-selector.types';
|
|
|
4
4
|
* whichever the caller hands its real `DeviceSelector` it must hand this one too,
|
|
5
5
|
* or the two disagree on how tall the block is.
|
|
6
6
|
*/
|
|
7
|
-
type DeviceSelectorSkeletonProps = Pick<DeviceSelectorProps, 'showSelectionModeRadio' | 'singleSelect' | 'hideColumns'
|
|
7
|
+
type DeviceSelectorSkeletonProps = Pick<DeviceSelectorProps, 'showSelectionModeRadio' | 'singleSelect' | 'hideColumns'> & {
|
|
8
|
+
/** The loading state announces itself (`LoadingRegion`). `false` inside another loading region. Default `true`. */
|
|
9
|
+
region?: boolean;
|
|
10
|
+
};
|
|
8
11
|
/**
|
|
9
12
|
* Suspense fallback for a `DeviceSelector` whose devices come from a suspending
|
|
10
13
|
* Relay query.
|
|
@@ -20,6 +23,6 @@ type DeviceSelectorSkeletonProps = Pick<DeviceSelectorProps, 'showSelectionModeR
|
|
|
20
23
|
* stands in for, and everything below it jumped down the moment the devices
|
|
21
24
|
* landed.
|
|
22
25
|
*/
|
|
23
|
-
export declare function DeviceSelectorSkeleton(props: DeviceSelectorSkeletonProps): import("react").JSX.Element;
|
|
26
|
+
export declare function DeviceSelectorSkeleton({ region, ...props }: DeviceSelectorSkeletonProps): import("react").JSX.Element;
|
|
24
27
|
export {};
|
|
25
28
|
//# sourceMappingURL=device-selector-skeleton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-selector-skeleton.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/devices/device-selector/device-selector-skeleton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE;;;;GAIG;AACH,KAAK,2BAA2B,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"device-selector-skeleton.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/devices/device-selector/device-selector-skeleton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE;;;;GAIG;AACH,KAAK,2BAA2B,GAAG,IAAI,CACrC,mBAAmB,EACnB,wBAAwB,GAAG,cAAc,GAAG,aAAa,CAC1D,GAAG;IACF,mHAAmH;IACnH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,MAAa,EAAE,GAAG,KAAK,EAAE,EAAE,2BAA2B,+BAE9F"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { DeviceSelector } from "./device-selector.js";
|
|
4
4
|
const NO_DEVICES = [];
|
|
5
|
-
function DeviceSelectorSkeleton(props) {
|
|
6
|
-
return /* @__PURE__ */ jsx(DeviceSelector, { ...props, devices: NO_DEVICES, loading: true, disabled: true });
|
|
5
|
+
function DeviceSelectorSkeleton({ region = true, ...props }) {
|
|
6
|
+
return /* @__PURE__ */ jsx(DeviceSelector, { ...props, devices: NO_DEVICES, loading: true, loadingRegion: region, disabled: true });
|
|
7
7
|
}
|
|
8
8
|
export {
|
|
9
9
|
DeviceSelectorSkeleton
|
|
@@ -34,5 +34,5 @@ import type { DeviceSelectorProps } from './device-selector.types';
|
|
|
34
34
|
* entirely, the search toolbar and row actions go away, and the table becomes
|
|
35
35
|
* a live preview of what the rule matches.
|
|
36
36
|
*/
|
|
37
|
-
export declare function DeviceSelector<T extends DeviceRow = DeviceRow>({ devices, loading, selectedIds: selectedIdsProp, onSelectionChange: onSelectionChangeProp, getDeviceKey: getDeviceKeyProp, infiniteScroll, disabled, showSelectionModeRadio, headerContent, addAllBehavior, singleSelect, isDeviceDisabled, hideColumns, showToolbar, totalCount, server, selectionMode, onSelectionModeChange, criteriaContent, }: DeviceSelectorProps<T>): import("react").JSX.Element;
|
|
37
|
+
export declare function DeviceSelector<T extends DeviceRow = DeviceRow>({ devices, loading, loadingRegion, selectedIds: selectedIdsProp, onSelectionChange: onSelectionChangeProp, getDeviceKey: getDeviceKeyProp, infiniteScroll, disabled, showSelectionModeRadio, headerContent, addAllBehavior, singleSelect, isDeviceDisabled, hideColumns, showToolbar, totalCount, server, selectionMode, onSelectionModeChange, criteriaContent, }: DeviceSelectorProps<T>): import("react").JSX.Element;
|
|
38
38
|
//# sourceMappingURL=device-selector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-selector.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/devices/device-selector/device-selector.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,UAAU,CAAC;AAGzD,OAAO,KAAK,EAAE,mBAAmB,EAAU,MAAM,yBAAyB,CAAC;AA6B3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,EAC9D,OAAO,EACP,OAAO,EACP,WAAW,EAAE,eAAe,EAC5B,iBAAiB,EAAE,qBAAqB,EACxC,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EACd,QAAgB,EAChB,sBAA6B,EAC7B,aAAa,EACb,cAAwB,EACxB,YAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,WAAkB,EAClB,UAAU,EACV,MAAM,EACN,aAAa,EACb,qBAAqB,EACrB,eAAe,GAChB,EAAE,mBAAmB,CAAC,CAAC,CAAC,+
|
|
1
|
+
{"version":3,"file":"device-selector.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/devices/device-selector/device-selector.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,UAAU,CAAC;AAGzD,OAAO,KAAK,EAAE,mBAAmB,EAAU,MAAM,yBAAyB,CAAC;AA6B3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,EAC9D,OAAO,EACP,OAAO,EACP,aAAa,EACb,WAAW,EAAE,eAAe,EAC5B,iBAAiB,EAAE,qBAAqB,EACxC,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EACd,QAAgB,EAChB,sBAA6B,EAC7B,aAAa,EACb,cAAwB,EACxB,YAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,WAAkB,EAClB,UAAU,EACV,MAAM,EACN,aAAa,EACb,qBAAqB,EACrB,eAAe,GAChB,EAAE,mBAAmB,CAAC,CAAC,CAAC,+BA8qBxB"}
|
|
@@ -47,6 +47,7 @@ function CustomerCell({ device }) {
|
|
|
47
47
|
function DeviceSelector({
|
|
48
48
|
devices,
|
|
49
49
|
loading,
|
|
50
|
+
loadingRegion,
|
|
50
51
|
selectedIds: selectedIdsProp,
|
|
51
52
|
onSelectionChange: onSelectionChangeProp,
|
|
52
53
|
getDeviceKey: getDeviceKeyProp,
|
|
@@ -520,6 +521,7 @@ function DeviceSelector({
|
|
|
520
521
|
DataTable.Body,
|
|
521
522
|
{
|
|
522
523
|
loading,
|
|
524
|
+
loadingRegion,
|
|
523
525
|
skeletonRows: 8,
|
|
524
526
|
emptyMessage: isCriteria ? "No devices match these criteria" : activeSubTab === "selected" ? "No devices selected" : "No devices found",
|
|
525
527
|
rowClassName
|
|
@@ -62,6 +62,8 @@ export interface DeviceSelectorProps<T extends DeviceRow = DeviceRow> {
|
|
|
62
62
|
devices: T[];
|
|
63
63
|
/** Whether the device list is loading. */
|
|
64
64
|
loading: boolean;
|
|
65
|
+
/** The loading state announces itself ("Loading results"). `false` inside another loading region. Default `true`. */
|
|
66
|
+
loadingRegion?: boolean;
|
|
65
67
|
/**
|
|
66
68
|
* Currently selected device keys. Optional so a skeleton can render the real
|
|
67
69
|
* picker with nothing selected, the component falls back to an empty set and
|