@flamingo-stack/openframe-frontend-core 0.0.213 → 0.0.214-snapshot.20260528192313
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-35XIT2CF.cjs → chunk-2G3NXF6J.cjs} +17 -17
- package/dist/{chunk-35XIT2CF.cjs.map → chunk-2G3NXF6J.cjs.map} +1 -1
- package/dist/{chunk-IK2X5YJU.js → chunk-7PCP7YQR.js} +2 -2
- package/dist/{chunk-ZDF6F7ED.cjs → chunk-D4MNFY67.cjs} +4 -3
- package/dist/chunk-D4MNFY67.cjs.map +1 -0
- package/dist/{chunk-OTKJASSX.cjs → chunk-NGFP4RVL.cjs} +24 -24
- package/dist/{chunk-OTKJASSX.cjs.map → chunk-NGFP4RVL.cjs.map} +1 -1
- package/dist/{chunk-3JWIJJ44.js → chunk-R6MLPU4A.js} +2 -2
- package/dist/{chunk-ZTJVRSN5.js → chunk-WQZP3JIZ.js} +4 -3
- package/dist/chunk-WQZP3JIZ.js.map +1 -0
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/index.cjs +49 -49
- package/dist/components/index.js +2 -2
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/tickets/index.cjs +61 -61
- package/dist/components/tickets/index.js +3 -3
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/.index.md +36 -34
- package/src/components/.alert-dialog.md +27 -23
- package/src/components/.announcement-bar.md +26 -21
- package/src/components/.breadcrumb.md +19 -15
- package/src/components/.calendar.md +24 -19
- package/src/components/.categories-cart.md +29 -24
- package/src/components/.checkbox.md +23 -25
- package/src/components/.chevron-button.md +37 -32
- package/src/components/.comment-card.md +32 -62
- package/src/components/.dialog.md +26 -26
- package/src/components/.dynamic-skeleton.md +54 -57
- package/src/components/.empty-state.md +42 -51
- package/src/components/.faq-accordion.md +27 -21
- package/src/components/.filter-chip.md +41 -24
- package/src/components/.flamingo-logo.md +20 -23
- package/src/components/.footer-waitlist-button.md +29 -22
- package/src/components/.footer.md +32 -32
- package/src/components/.icons-block.md +27 -17
- package/src/components/.image-cropper.md +41 -32
- package/src/components/.index.md +33 -39
- package/src/components/.input.md +31 -35
- package/src/components/.logs-list.md +31 -20
- package/src/components/.media-carousel.md +35 -36
- package/src/components/.open-source-features.md +33 -16
- package/src/components/.pagination.md +52 -51
- package/src/components/.provider-button.md +21 -23
- package/src/components/.select.md +31 -20
- package/src/components/.sidebar.md +34 -24
- package/src/components/.smooth-accordion.md +29 -24
- package/src/components/.social-icon-row.md +36 -32
- package/src/components/.textarea.md +25 -31
- package/src/components/.tool-icon.md +24 -26
- package/src/components/.unified-filter-logic.md +37 -30
- package/src/components/.unified-pagination.md +23 -22
- package/src/components/.user-summary-stub.md +38 -22
- package/src/components/.vendor-display-button.md +25 -25
- package/src/components/.vendor-icon.md +33 -25
- package/src/components/.why-it-matters.md +28 -25
- package/src/components/chat/.approval-batch-message.md +51 -0
- package/src/components/chat/.approval-request-message.md +35 -34
- package/src/components/chat/.chat-attachment-bar.md +64 -0
- package/src/components/chat/.chat-container.md +36 -18
- package/src/components/chat/.chat-input.md +37 -20
- package/src/components/chat/.chat-message-enhanced.md +30 -49
- package/src/components/chat/.chat-message-list.md +45 -32
- package/src/components/chat/.chat-message-skeleton.md +26 -22
- package/src/components/chat/.chat-panel-context.md +52 -0
- package/src/components/chat/.chat-ref.types.md +42 -0
- package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
- package/src/components/chat/.chat-sidebar.md +31 -26
- package/src/components/chat/.chat-ticket-list.md +39 -0
- package/src/components/chat/.context-compaction-display.md +36 -0
- package/src/components/chat/.cycling-phrase.md +52 -0
- package/src/components/chat/.embeddable-chat.md +48 -0
- package/src/components/chat/.expand-chevron.md +24 -0
- package/src/components/chat/.index.md +31 -35
- package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
- package/src/components/chat/.mingo-onboarding-card.md +62 -0
- package/src/components/chat/.model-display.md +32 -30
- package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
- package/src/components/chat/.remark-card-links.md +38 -0
- package/src/components/chat/.slash-command-suggestions.md +47 -0
- package/src/components/chat/.source-action-button.md +48 -0
- package/src/components/chat/.thinking-display.md +42 -0
- package/src/components/chat/.tool-call-blocks.md +45 -0
- package/src/components/chat/.tool-execution-display.md +44 -36
- package/src/components/chat/chat-container.tsx +1 -1
- package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
- package/src/components/chat/entity-cards/.block-card.md +47 -0
- package/src/components/chat/entity-cards/.blog-card.md +52 -0
- package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
- package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
- package/src/components/chat/entity-cards/.case-study-card.md +58 -0
- package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
- package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
- package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
- package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
- package/src/components/chat/entity-cards/.dispatch.md +39 -0
- package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
- package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
- package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
- package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
- package/src/components/chat/entity-cards/.index.md +66 -0
- package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
- package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
- package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
- package/src/components/chat/entity-cards/.product-release-card.md +29 -0
- package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
- package/src/components/chat/entity-cards/.program-card.md +59 -0
- package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
- package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
- package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
- package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
- package/src/components/chat/hooks/.index.md +36 -21
- package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
- package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
- package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
- package/src/components/chat/hooks/.use-chat-identity.md +45 -0
- package/src/components/chat/hooks/.use-chat.md +58 -0
- package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
- package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
- package/src/components/chat/hooks/.use-collapsible.md +48 -0
- package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
- package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
- package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
- package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
- package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
- package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
- package/src/components/chat/hooks/.use-slash-commands.md +46 -0
- package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
- package/src/components/chat/hooks/.use-sse.md +60 -0
- package/src/components/chat/hooks/.use-unified-chat.md +57 -0
- package/src/components/chat/types/.api.types.md +52 -38
- package/src/components/chat/types/.chat.types.md +43 -34
- package/src/components/chat/types/.component.types.md +47 -48
- package/src/components/chat/types/.index.md +20 -27
- package/src/components/chat/types/.message.types.md +58 -48
- package/src/components/chat/types/.network.types.md +57 -31
- package/src/components/chat/types/.processing.types.md +49 -31
- package/src/components/chat/types/.unified-chat-state.types.md +41 -0
- package/src/components/chat/types/entities/.blog.md +43 -0
- package/src/components/chat/types/entities/.case-study.md +26 -0
- package/src/components/chat/types/entities/.content-ref.md +41 -0
- package/src/components/chat/types/entities/.customer-interview.md +28 -0
- package/src/components/chat/types/entities/.data-room-doc.md +36 -0
- package/src/components/chat/types/entities/.github-activity.md +43 -0
- package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
- package/src/components/chat/types/entities/.index.md +42 -0
- package/src/components/chat/types/entities/.investor-update.md +45 -0
- package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
- package/src/components/chat/types/entities/.program-types.md +57 -0
- package/src/components/chat/types/entities/.roadmap-item.md +58 -0
- package/src/components/chat/types/entities/.slack-message.md +35 -0
- package/src/components/chat/utils/.agent-status-message.md +45 -0
- package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
- package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
- package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
- package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
- package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
- package/src/components/chat/utils/.chip-action-class.md +34 -0
- package/src/components/chat/utils/.chip-styles.md +46 -0
- package/src/components/chat/utils/.chunk-parser.md +38 -28
- package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
- package/src/components/chat/utils/.compact-card-classes.md +62 -0
- package/src/components/chat/utils/.decide-new-tab.md +51 -0
- package/src/components/chat/utils/.external-app-urls.md +29 -0
- package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
- package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
- package/src/components/chat/utils/.icon-registry.md +46 -0
- package/src/components/chat/utils/.index.md +37 -32
- package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
- package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
- package/src/components/chat/utils/.nav-anchor-props.md +44 -0
- package/src/components/chat/utils/.nav-click-handler.md +47 -0
- package/src/components/chat/utils/.onboarding-icons.md +28 -0
- package/src/components/chat/utils/.process-historical-messages.md +46 -35
- package/src/components/chat/utils/.scroll-anchor.md +40 -0
- package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
- package/src/components/chat/utils/.source-icons.md +35 -0
- package/src/components/chat/utils/.source-row-cta.md +54 -0
- package/src/components/chat/utils/.tool-call-helpers.md +42 -0
- package/src/components/contact/.contact-form.md +43 -0
- package/src/components/contact/.index.md +27 -0
- package/src/components/features/.array-entry-manager.md +36 -45
- package/src/components/features/.changelog-manager.md +47 -21
- package/src/components/features/.changelog-sections-manager.md +21 -26
- package/src/components/features/.command-box.md +31 -28
- package/src/components/features/.entity-summary-editor.md +46 -0
- package/src/components/features/.entity-video-section.md +51 -0
- package/src/components/features/.figma-prototype-viewer.md +48 -29
- package/src/components/features/.filters-dropdown.md +33 -46
- package/src/components/features/.highlight-config-section.md +42 -0
- package/src/components/features/.highlight-generation-section.md +46 -0
- package/src/components/features/.highlight-video-combined-section.md +47 -0
- package/src/components/features/.highlight-video-preview.md +44 -0
- package/src/components/features/.highlight-video-section.md +47 -0
- package/src/components/features/.index.md +40 -66
- package/src/components/features/.media-gallery-manager.md +48 -38
- package/src/components/features/.more-about-button.md +22 -19
- package/src/components/features/.og-editor-preview.md +40 -36
- package/src/components/features/.parallax-image-showcase.md +33 -26
- package/src/components/features/.paths-display.md +42 -43
- package/src/components/features/.platform-badge.md +37 -36
- package/src/components/features/.platform-filter.md +23 -16
- package/src/components/features/.policy-configuration-panel.md +48 -56
- package/src/components/features/.provider-button.md +33 -36
- package/src/components/features/.push-button-selector.md +40 -29
- package/src/components/features/.release-media-manager.md +46 -31
- package/src/components/features/.section-selector.md +26 -31
- package/src/components/features/.select-button.md +35 -25
- package/src/components/features/.seo-editor-preview.md +41 -44
- package/src/components/features/.social-links-manager.md +25 -19
- package/src/components/features/.start-with-openframe-button.md +37 -29
- package/src/components/features/.status-filter-component.md +36 -20
- package/src/components/features/.tags-selector.md +40 -24
- package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
- package/src/components/features/.transcribe-summarize-section.md +48 -0
- package/src/components/features/.transcript-summary-editor.md +53 -0
- package/src/components/features/.video-bites-display.md +46 -0
- package/src/components/features/.video-clips-section.md +41 -0
- package/src/components/features/.video-ratio-tabs.md +56 -0
- package/src/components/features/.video-source-selector.md +60 -0
- package/src/components/features/.video.md +44 -0
- package/src/components/features/.waitlist-form.md +60 -0
- package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
- package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
- package/src/components/features/board/.board-column-header.md +38 -0
- package/src/components/features/board/.board-column.md +43 -0
- package/src/components/features/board/.board.md +51 -0
- package/src/components/features/board/.color-utils.md +26 -0
- package/src/components/features/board/.index.md +56 -0
- package/src/components/features/board/.ticket-card-skeleton.md +38 -0
- package/src/components/features/board/.ticket-card.md +47 -0
- package/src/components/features/board/.types.md +45 -0
- package/src/components/features/board/.use-board-collapse.md +34 -0
- package/src/components/features/notifications/.index.md +57 -0
- package/src/components/features/notifications/.notification-drawer.md +34 -0
- package/src/components/features/notifications/.notification-tile.md +39 -0
- package/src/components/features/notifications/.notifications-context.md +73 -0
- package/src/components/features/notifications/.types.md +45 -0
- package/src/components/icons/.about-icon.md +20 -28
- package/src/components/icons/.ai-robot-icon.md +15 -17
- package/src/components/icons/.bash-icon.md +16 -23
- package/src/components/icons/.buildings-icon.md +10 -24
- package/src/components/icons/.capterra-icon.md +30 -26
- package/src/components/icons/.carta-icon.md +29 -0
- package/src/components/icons/.clickup-icon.md +26 -0
- package/src/components/icons/.cmd-icon.md +15 -22
- package/src/components/icons/.coins-icon.md +17 -25
- package/src/components/icons/.community-hub-icon.md +19 -25
- package/src/components/icons/.community-icon.md +24 -21
- package/src/components/icons/.compare-icon.md +32 -19
- package/src/components/icons/.copy-icon.md +29 -15
- package/src/components/icons/.custom-external-link-icon.md +19 -17
- package/src/components/icons/.custom-fork-icon.md +32 -21
- package/src/components/icons/.custom-license-icon.md +29 -25
- package/src/components/icons/.custom-star-icon.md +20 -28
- package/src/components/icons/.custom-time-icon.md +21 -22
- package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
- package/src/components/icons/.dashboard-icon.md +13 -18
- package/src/components/icons/.deno-icon.md +16 -23
- package/src/components/icons/.donut-icon.md +12 -23
- package/src/components/icons/.double-chevron-icon.md +28 -36
- package/src/components/icons/.elestio-logo.md +13 -23
- package/src/components/icons/.empty-vendor-icon.md +16 -18
- package/src/components/icons/.explore-categories-icon.md +18 -29
- package/src/components/icons/.eye-icon.md +16 -26
- package/src/components/icons/.facebook-icon.md +9 -20
- package/src/components/icons/.figma-icon.md +8 -17
- package/src/components/icons/.filter-icon.md +15 -17
- package/src/components/icons/.flamingo-logo.md +28 -27
- package/src/components/icons/.folder-shield-icon.md +28 -19
- package/src/components/icons/.g2-icon.md +22 -21
- package/src/components/icons/.getapp-icon.md +25 -21
- package/src/components/icons/.github-icon.md +13 -25
- package/src/components/icons/.globe-icon.md +14 -19
- package/src/components/icons/.google-gemini-icon.md +16 -19
- package/src/components/icons/.google-logo.md +15 -21
- package/src/components/icons/.grid-view-icon.md +30 -19
- package/src/components/icons/.hamburger-icon.md +22 -20
- package/src/components/icons/.hand-dollar-icon.md +24 -34
- package/src/components/icons/.hotel-icon.md +27 -21
- package/src/components/icons/.icon-utils.md +28 -29
- package/src/components/icons/.image-icon.md +15 -22
- package/src/components/icons/.index.md +25 -28
- package/src/components/icons/.info-circle-icon.md +29 -30
- package/src/components/icons/.instagram-icon.md +10 -24
- package/src/components/icons/.jump-in-icon.md +18 -18
- package/src/components/icons/.linux-icon.md +18 -18
- package/src/components/icons/.log-out-icon.md +15 -23
- package/src/components/icons/.logs-icon.md +14 -23
- package/src/components/icons/.margin-crisis-icon.md +21 -20
- package/src/components/icons/.menu-icon.md +18 -19
- package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
- package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
- package/src/components/icons/.mlg-logo.md +18 -16
- package/src/components/icons/.moon-icon.md +32 -22
- package/src/components/icons/.ms-icon.md +30 -19
- package/src/components/icons/.nushell-icon.md +7 -21
- package/src/components/icons/.open-source-icon.md +19 -23
- package/src/components/icons/.openai-icon.md +9 -24
- package/src/components/icons/.openframe-ai-icons.md +25 -26
- package/src/components/icons/.openframe-logo.md +28 -22
- package/src/components/icons/.openframe-text.md +24 -27
- package/src/components/icons/.openmsp-logo.md +26 -23
- package/src/components/icons/.pilot-icon.md +23 -0
- package/src/components/icons/.powershell-icon.md +17 -22
- package/src/components/icons/.python-icon.md +16 -23
- package/src/components/icons/.queries-icon.md +13 -21
- package/src/components/icons/.reddit-icon.md +28 -24
- package/src/components/icons/.remote-control-icon.md +13 -17
- package/src/components/icons/.script-icon.md +27 -19
- package/src/components/icons/.search-icon.md +21 -21
- package/src/components/icons/.send-icon.md +14 -16
- package/src/components/icons/.settings-icon.md +30 -19
- package/src/components/icons/.shape-circle-dash-icon.md +16 -21
- package/src/components/icons/.shell-icon.md +15 -19
- package/src/components/icons/.shield-check-icon.md +18 -31
- package/src/components/icons/.shield-key-icon.md +25 -25
- package/src/components/icons/.shield-lock-icon.md +8 -18
- package/src/components/icons/.slack-icon.md +28 -32
- package/src/components/icons/.sparkles-icon.md +18 -23
- package/src/components/icons/.sso-configuration-icon.md +29 -16
- package/src/components/icons/.sun-icon.md +20 -18
- package/src/components/icons/.table-view-icon.md +17 -19
- package/src/components/icons/.telegram-icon.md +8 -22
- package/src/components/icons/.thumbs-down-icon.md +10 -19
- package/src/components/icons/.thumbs-up-icon.md +8 -17
- package/src/components/icons/.tool-directory-icons.md +24 -28
- package/src/components/icons/.trustpilot-icon.md +25 -22
- package/src/components/icons/.user-icon.md +26 -28
- package/src/components/icons/.users-group-icon.md +28 -24
- package/src/components/icons/.vendor-showcase-icons.md +21 -29
- package/src/components/icons/.vendors-icon.md +18 -22
- package/src/components/icons/.whatsapp-icon.md +30 -14
- package/src/components/icons/.x-icon.md +18 -23
- package/src/components/icons/.x-logo.md +13 -38
- package/src/components/icons/.youtube-icon.md +8 -19
- package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
- package/src/components/icons-v2-generated/.index.md +52 -0
- package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
- package/src/components/icons-v2-generated/arrows/.index.md +39 -0
- package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
- package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
- package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
- package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
- package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
- package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
- package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
- package/src/components/icons-v2-generated/buildings/.index.md +48 -0
- package/src/components/icons-v2-generated/charts/.index.md +40 -0
- package/src/components/icons-v2-generated/clothes/.index.md +48 -0
- package/src/components/icons-v2-generated/coding/.index.md +42 -0
- package/src/components/icons-v2-generated/communication/.index.md +39 -0
- package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
- package/src/components/icons-v2-generated/design/.index.md +39 -0
- package/src/components/icons-v2-generated/devices/.index.md +38 -0
- package/src/components/icons-v2-generated/documents/.index.md +38 -0
- package/src/components/icons-v2-generated/finance/.index.md +34 -0
- package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
- package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
- package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
- package/src/components/icons-v2-generated/health/.index.md +40 -0
- package/src/components/icons-v2-generated/household/.index.md +45 -0
- package/src/components/icons-v2-generated/interface/.index.md +36 -0
- package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
- package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
- package/src/components/icons-v2-generated/number/.index.md +41 -0
- package/src/components/icons-v2-generated/school/.index.md +37 -0
- package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
- package/src/components/icons-v2-generated/security/.index.md +39 -0
- package/src/components/icons-v2-generated/shopping/.index.md +42 -0
- package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
- package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
- package/src/components/icons-v2-generated/sport/.index.md +41 -0
- package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
- package/src/components/icons-v2-generated/users/.index.md +45 -0
- package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
- package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
- package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
- package/src/components/layout/.article-detail-layout.md +43 -0
- package/src/components/layout/.back-button.md +40 -0
- package/src/components/layout/.list-page-layout.md +35 -26
- package/src/components/layout/.page-container.md +27 -38
- package/src/components/layout/.page-layout.md +50 -0
- package/src/components/layout/.title-block.md +42 -0
- package/src/components/loading/.card-skeleton.md +38 -29
- package/src/components/loading/.device-card-skeleton.md +29 -25
- package/src/components/loading/.index.md +39 -46
- package/src/components/loading/.margin-report-skeleton.md +45 -34
- package/src/components/loading/.organization-card-skeleton.md +39 -44
- package/src/components/loading/.page-layout-skeleton.md +34 -45
- package/src/components/loading/.unified-skeleton.md +62 -36
- package/src/components/navigation/.app-header.md +40 -29
- package/src/components/navigation/.app-layout.md +25 -26
- package/src/components/navigation/.header-global-search.md +34 -37
- package/src/components/navigation/.header-organization-filter.md +23 -22
- package/src/components/navigation/.header.md +31 -35
- package/src/components/navigation/.mobile-burger-menu.md +39 -47
- package/src/components/navigation/.mobile-nav-panel.md +51 -32
- package/src/components/navigation/.navigation-sidebar-header.md +36 -0
- package/src/components/navigation/.navigation-sidebar-item.md +45 -0
- package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
- package/src/components/navigation/.navigation-sidebar.md +33 -34
- package/src/components/navigation/.sliding-sidebar.md +52 -41
- package/src/components/navigation/.sticky-section-nav.md +56 -48
- package/src/components/platform/.ScriptArguments.md +39 -25
- package/src/components/platform/.ScriptInfoSection.md +30 -26
- package/src/components/platform/.ShellTypeBadge.md +18 -13
- package/src/components/platform/.SoftwareInfo.md +23 -27
- package/src/components/platform/.SoftwareSourceBadge.md +28 -19
- package/src/components/platform/.ToolBadge.md +25 -26
- package/src/components/platform/ShellTypeBadge.tsx +2 -2
- package/src/components/providers/.theme-provider.md +52 -0
- package/src/components/shared/delivery/.delivery-lists.md +39 -0
- package/src/components/shared/delivery/.delivery-row.md +41 -0
- package/src/components/shared/delivery/.delivery-table.md +41 -0
- package/src/components/shared/delivery/.index.md +38 -0
- package/src/components/shared/dev-section/.dev-card-row.md +60 -0
- package/src/components/shared/dev-section/.dev-section-page.md +48 -0
- package/src/components/shared/dev-section/.dev-section-view.md +43 -0
- package/src/components/shared/dev-section/.index.md +38 -0
- package/src/components/shared/legal-document/.index.md +40 -0
- package/src/components/shared/legal-document/.legal-document-page.md +50 -0
- package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
- package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
- package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
- package/src/components/shared/product-release/.index.md +28 -30
- package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
- package/src/components/shared/product-release/.product-release-card.md +45 -27
- package/src/components/shared/product-release/.release-detail-page.md +23 -24
- package/src/components/shared/roadmap/.index.md +37 -0
- package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
- package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
- package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
- package/src/components/tickets/.help-center-card.md +51 -0
- package/src/components/tickets/.help-center-create-form.md +38 -0
- package/src/components/tickets/.help-center-list.md +40 -0
- package/src/components/tickets/.index.md +65 -0
- package/src/components/tickets/.ticket-center.md +51 -0
- package/src/components/tickets/.ticket-detail-drawer.md +48 -0
- package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
- package/src/components/tickets/.ticket-open-form.md +50 -0
- package/src/components/tickets/.ticket-row.md +30 -0
- package/src/components/tickets/.types.md +57 -0
- package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
- package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
- package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
- package/src/components/ui/.actions-menu.md +66 -41
- package/src/components/ui/.alert-dialog.md +29 -26
- package/src/components/ui/.allowed-domains-input.md +29 -21
- package/src/components/ui/.assignee-dropdown.md +45 -0
- package/src/components/ui/.autocomplete.md +47 -41
- package/src/components/ui/.benefit-card.md +51 -36
- package/src/components/ui/.brand-association-card.md +30 -27
- package/src/components/ui/.breadcrumb.md +17 -15
- package/src/components/ui/.checkbox-block.md +39 -35
- package/src/components/ui/.checkbox-with-description.md +23 -16
- package/src/components/ui/.checkbox.md +31 -23
- package/src/components/ui/.circular-progress.md +49 -19
- package/src/components/ui/.content-loader.md +32 -20
- package/src/components/ui/.cursor-pagination.md +41 -52
- package/src/components/ui/.dashboard-info-card.md +33 -26
- package/src/components/ui/.date-picker.md +27 -25
- package/src/components/ui/.device-card-compact.md +28 -29
- package/src/components/ui/.device-card.md +27 -27
- package/src/components/ui/.dialog.md +25 -16
- package/src/components/ui/.drawer.md +86 -0
- package/src/components/ui/.dropdown-button.md +45 -0
- package/src/components/ui/.entity-image.md +46 -0
- package/src/components/ui/.error-state.md +41 -28
- package/src/components/ui/.feature-card.md +35 -31
- package/src/components/ui/.feature-list.md +48 -0
- package/src/components/ui/.field-wrapper.md +47 -0
- package/src/components/ui/.file-upload.md +42 -0
- package/src/components/ui/.filter-checkbox-item.md +43 -0
- package/src/components/ui/.filter-list.md +57 -0
- package/src/components/ui/.filter-modal.md +59 -0
- package/src/components/ui/.floating-tooltip.md +43 -26
- package/src/components/ui/.hidden-tags-popup.md +49 -0
- package/src/components/ui/.hover-dropdown.md +54 -0
- package/src/components/ui/.image-gallery-modal.md +41 -34
- package/src/components/ui/.image-uploader.md +53 -0
- package/src/components/ui/.index.md +40 -34
- package/src/components/ui/.info-card.md +31 -31
- package/src/components/ui/.info-row.md +31 -27
- package/src/components/ui/.input-trigger.md +44 -0
- package/src/components/ui/.input.md +37 -31
- package/src/components/ui/.markdown-editor.md +57 -0
- package/src/components/ui/.modal-v2.md +51 -0
- package/src/components/ui/.modal.md +32 -31
- package/src/components/ui/.more-actions-menu.md +45 -38
- package/src/components/ui/.organization-card.md +31 -37
- package/src/components/ui/.page-actions.md +44 -54
- package/src/components/ui/.phone-input.md +54 -0
- package/src/components/ui/.progress-bar.md +35 -27
- package/src/components/ui/.radio-group.md +39 -27
- package/src/components/ui/.release-changelog-section.md +34 -34
- package/src/components/ui/.search-input.md +48 -0
- package/src/components/ui/.select.md +54 -34
- package/src/components/ui/.service-card.md +42 -40
- package/src/components/ui/.sheet.md +27 -18
- package/src/components/ui/.simple-markdown-renderer.md +29 -31
- package/src/components/ui/.sort-column-item.md +42 -0
- package/src/components/ui/.square-avatar.md +34 -24
- package/src/components/ui/.status-badge.md +26 -38
- package/src/components/ui/.switch.md +22 -35
- package/src/components/ui/.tab-navigation.md +56 -53
- package/src/components/ui/.tab-selector.md +40 -0
- package/src/components/ui/.tag-key-value-filter.md +56 -0
- package/src/components/ui/.tag-search-input.md +53 -0
- package/src/components/ui/.tag.md +49 -31
- package/src/components/ui/.tags-manager.md +60 -0
- package/src/components/ui/.textarea.md +44 -34
- package/src/components/ui/.ticket-attachments-list.md +45 -0
- package/src/components/ui/.ticket-detail-section.md +29 -0
- package/src/components/ui/.ticket-info-section.md +56 -0
- package/src/components/ui/.ticket-note-card.md +53 -0
- package/src/components/ui/.ticket-notes-section.md +54 -0
- package/src/components/ui/.ticket-status-tag.md +49 -0
- package/src/components/ui/.title-content-block.md +25 -26
- package/src/components/ui/.toaster.md +40 -28
- package/src/components/ui/.tooltip.md +22 -11
- package/src/components/ui/.truncate-text.md +39 -0
- package/src/components/ui/button/.button-styles.md +35 -0
- package/src/components/ui/button/.button.md +53 -0
- package/src/components/ui/button/.split-button.md +48 -0
- package/src/components/ui/data-table/.data-table-body.md +48 -0
- package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
- package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
- package/src/components/ui/data-table/.data-table-empty.md +43 -0
- package/src/components/ui/data-table/.data-table-header.md +55 -0
- package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
- package/src/components/ui/data-table/.data-table-row-count.md +43 -0
- package/src/components/ui/data-table/.data-table-row.md +47 -0
- package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
- package/src/components/ui/data-table/.data-table.md +47 -0
- package/src/components/ui/data-table/.index.md +55 -0
- package/src/components/ui/data-table/.types.md +54 -0
- package/src/components/ui/data-table/.use-data-table.md +45 -0
- package/src/components/ui/data-table/.utils.md +38 -0
- package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
- package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
- package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
- package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
- package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
- package/src/components/ui/file-manager/.file-manager.md +35 -31
- package/src/components/ui/query-report-table/.index.md +43 -0
- package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
- package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
- package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
- package/src/components/ui/query-report-table/.query-report-table.md +47 -0
- package/src/components/ui/query-report-table/.types.md +41 -0
- package/src/components/ui/query-report-table/.utils.md +35 -0
- package/src/components/ui/table/.index.md +27 -48
- package/src/components/ui/table/.table-cell.md +18 -27
- package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
- package/src/components/ui/table/.table-description-cell.md +24 -14
- package/src/components/ui/table/.table-empty-state.md +21 -22
- package/src/components/ui/table/.table-header.md +25 -40
- package/src/components/ui/table/.table-row.md +22 -40
- package/src/components/ui/table/.table-skeleton.md +33 -26
- package/src/components/ui/table/.table-timestamp-cell.md +26 -16
- package/src/components/ui/table/.table.md +39 -59
- package/src/components/ui/table/.types.md +44 -36
- package/src/components/ui/table/.utils.md +18 -20
- package/src/contexts/.chat-runtime-context.md +54 -0
- package/src/contexts/.endpoints-runtime-context.md +58 -0
- package/src/contexts/.index.md +53 -0
- package/src/contexts/.use-outer-or-default.md +36 -0
- package/src/embed-shims/.index.md +45 -0
- package/src/embed-shims/.next-dynamic.md +43 -0
- package/src/embed-shims/.next-image.md +45 -0
- package/src/embed-shims/.next-link.md +59 -0
- package/src/embed-shims/.next-navigation.md +59 -0
- package/src/hooks/.index.md +34 -29
- package/src/hooks/.use-access-code-integration.md +49 -0
- package/src/hooks/.use-contact-submission.md +37 -26
- package/src/hooks/.use-copy-to-clipboard.md +42 -0
- package/src/hooks/.use-near-viewport.md +44 -0
- package/src/hooks/.use-og-placeholder.md +51 -0
- package/src/hooks/.use-toast.md +36 -35
- package/src/hooks/state/.use-api-params.md +29 -46
- package/src/hooks/state/.use-query-params.md +37 -33
- package/src/hooks/ui/.index.md +33 -32
- package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
- package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
- package/src/hooks/ui/.use-image-edge-color.md +42 -0
- package/src/hooks/ui/.use-media-query.md +33 -25
- package/src/hooks/ui/.use-search.md +51 -0
- package/src/nats/.nats.md +49 -28
- package/src/schemas/.contact-schema.md +45 -0
- package/src/stories/.AnnouncementBar.stories.md +45 -0
- package/src/stories/.AppLayout.stories.md +20 -21
- package/src/stories/.Autocomplete.stories.md +48 -34
- package/src/stories/.Board.stories.md +35 -0
- package/src/stories/.Button.stories.md +36 -33
- package/src/stories/.ChatTicketList.stories.md +33 -0
- package/src/stories/.CheckboxBlock.stories.md +40 -28
- package/src/stories/.ContentLoader.stories.md +47 -0
- package/src/stories/.DashboardInfoCard.stories.md +57 -0
- package/src/stories/.DataTable.stories.md +41 -0
- package/src/stories/.DatePicker.stories.md +66 -52
- package/src/stories/.DeviceCard.stories.md +41 -40
- package/src/stories/.DeviceCardCompact.stories.md +41 -0
- package/src/stories/.DotsLoaderIcon.stories.md +36 -0
- package/src/stories/.Drawer.stories.md +58 -0
- package/src/stories/.EmbeddableChat.stories.md +41 -0
- package/src/stories/.FileManager.stories.md +41 -0
- package/src/stories/.FileManagerActionBar.stories.md +38 -0
- package/src/stories/.FileUpload.stories.md +53 -0
- package/src/stories/.FilterList.stories.md +54 -0
- package/src/stories/.FilterModal.stories.md +72 -0
- package/src/stories/.FiltersDropdown.stories.md +57 -0
- package/src/stories/.Header.stories.md +48 -0
- package/src/stories/.ImageUploader.stories.md +49 -0
- package/src/stories/.InfoCard.stories.md +54 -0
- package/src/stories/.Input.stories.md +48 -30
- package/src/stories/.ListPageLayout.stories.md +56 -43
- package/src/stories/.MingoOnboardingCard.stories.md +42 -0
- package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
- package/src/stories/.Modal.stories.md +40 -31
- package/src/stories/.NotificationDrawer.stories.md +55 -0
- package/src/stories/.OnboardingStepCard.stories.md +41 -0
- package/src/stories/.OrganizationCard.stories.md +61 -0
- package/src/stories/.PageActions.stories.md +52 -49
- package/src/stories/.PageContainer.stories.md +41 -35
- package/src/stories/.PageLayout.stories.md +60 -0
- package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
- package/src/stories/.PhoneInput.stories.md +53 -0
- package/src/stories/.QueryReportTable.stories.md +44 -0
- package/src/stories/.RadioGroup.stories.md +46 -0
- package/src/stories/.RadioGroupBlock.stories.md +45 -0
- package/src/stories/.Select.stories.md +29 -15
- package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
- package/src/stories/.SplitButton.stories.md +62 -0
- package/src/stories/.TabNavigation.stories.md +47 -38
- package/src/stories/.TabSelector.stories.md +65 -0
- package/src/stories/.Table.stories.md +38 -46
- package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
- package/src/stories/.Tag.stories.md +43 -32
- package/src/stories/.TagKeyValueFilter.stories.md +44 -0
- package/src/stories/.TagSearchInput.stories.md +61 -0
- package/src/stories/.Textarea.stories.md +49 -26
- package/src/stories/.Theme.stories.md +41 -0
- package/src/stories/.TicketAttachmentsList.stories.md +39 -0
- package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
- package/src/stories/.TicketInfoSection.stories.md +40 -0
- package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
- package/src/stories/.TicketNotesSection.stories.md +50 -0
- package/src/stories/.Toaster.stories.md +40 -0
- package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
- package/src/stories/.Tooltip.stories.md +41 -0
- package/src/stories/.UserSummary.stories.md +41 -0
- package/src/stories/.WaitlistForm.stories.md +42 -0
- package/src/stories/BlogCard.stories.tsx +61 -0
- package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
- package/src/stories/CaseStudyCard.stories.tsx +42 -0
- package/src/stories/ChatContainer.stories.tsx +186 -0
- package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
- package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
- package/src/stories/DataRoomDocCard.stories.tsx +52 -0
- package/src/stories/GenericEntityCard.stories.tsx +66 -0
- package/src/stories/GitHubActivityCard.stories.tsx +61 -0
- package/src/stories/HubspotTicketCard.stories.tsx +98 -0
- package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
- package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
- package/src/stories/ProductReleaseCard.stories.tsx +61 -0
- package/src/stories/ProgramCard.stories.tsx +79 -0
- package/src/stories/RoadmapCard.stories.tsx +75 -0
- package/src/stories/SlackMessageCard.stories.tsx +41 -0
- package/src/stories/__fixtures__/chat-cards.ts +604 -0
- package/src/types/.blog.md +53 -29
- package/src/types/.case-study.md +44 -27
- package/src/types/.customer-interview.md +66 -44
- package/src/types/.delivery.md +40 -0
- package/src/types/.employee.md +24 -30
- package/src/types/.index.md +33 -47
- package/src/types/.marketing.md +49 -44
- package/src/types/.navigation.md +33 -25
- package/src/types/.os.types.md +32 -27
- package/src/types/.platform.md +31 -28
- package/src/types/.product-release.md +65 -38
- package/src/types/.supabase.md +37 -29
- package/src/types/.team.md +41 -33
- package/src/types/.video-processing.md +54 -0
- package/src/types/.waitlist.md +40 -36
- package/src/utils/.access-code-client.md +37 -36
- package/src/utils/.cn.md +31 -23
- package/src/utils/.color-analysis.md +35 -0
- package/src/utils/.country-phone-utils.md +39 -0
- package/src/utils/.date-formatters.md +19 -18
- package/src/utils/.embed-authed-fetch.md +39 -0
- package/src/utils/.embed-proxy-auth-storage.md +38 -0
- package/src/utils/.fetch-priority.md +41 -0
- package/src/utils/.format.md +74 -25
- package/src/utils/.generic-domain-utils.md +42 -0
- package/src/utils/.image-proxy.md +59 -23
- package/src/utils/.index.md +42 -49
- package/src/utils/.local-storage-adapter.md +50 -0
- package/src/utils/.ods-color-utils.md +55 -38
- package/src/utils/.platform-config.md +45 -25
- package/src/utils/.scroll-into-view.md +40 -0
- package/src/utils/.source-icons.md +53 -0
- package/src/utils/.sse-decision-frame.md +46 -0
- package/src/utils/dev-sections/.index.md +34 -0
- package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
- package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
- package/dist/chunk-ZTJVRSN5.js.map +0 -1
- package/src/components/.card.md +0 -42
- package/src/components/.contact-button.md +0 -30
- package/src/components/.drawer.md +0 -46
- package/src/components/.fixed-layout-container.md +0 -47
- package/src/components/.footer-waitlist-card.md +0 -29
- package/src/components/.join-waitlist-cta.md +0 -29
- package/src/components/.sheet.md +0 -47
- package/src/components/.sliding-panel.md +0 -48
- package/src/components/.tooltip.md +0 -48
- package/src/components/.use-mobile.md +0 -42
- package/src/components/.vendor-compact-card.md +0 -66
- package/src/components/.x-button.md +0 -42
- package/src/components/features/.github-repo-button.md +0 -40
- package/src/components/features/.organization-icon.md +0 -47
- package/src/components/features/.organization-selector.md +0 -45
- package/src/components/icons/.fleet-icon.md +0 -39
- package/src/components/icons/.meshcentral-icon.md +0 -35
- package/src/components/icons/.refresh-icon.md +0 -34
- package/src/components/icons/.tactical-icon.md +0 -35
- package/src/components/ui/.button.md +0 -69
- package/src/components/ui/.log-table-row.md +0 -47
- package/src/components/ui/.selectable-device-card.md +0 -46
- package/src/hooks/.api-hooks-stub.md +0 -45
- package/src/hooks/api/.use-product-releases.md +0 -53
- package/src/stories/.OrganizationSelector.stories.md +0 -42
- package/src/stories/.SelectableDeviceCard.stories.md +0 -30
- package/src/utils/.lite-youtube-embed-stub.md +0 -37
- package/src/utils/.lite-youtube-embed.md +0 -33
- /package/dist/{chunk-IK2X5YJU.js.map → chunk-7PCP7YQR.js.map} +0 -0
- /package/dist/{chunk-3JWIJJ44.js.map → chunk-R6MLPU4A.js.map} +0 -0
|
@@ -1,37 +1,55 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook stories
|
|
1
|
+
<!-- source-hash: 07edf12b9aece7d3d65330a955505e1f -->
|
|
2
|
+
Storybook stories for the `Input` UI component, demonstrating all supported variants, adornments, states, and compositions.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|--------|-------------|
|
|
8
|
+
| `Default` | Basic input with placeholder text |
|
|
9
|
+
| `WithEndAdornmentText` | Input with trailing text label (e.g., "Seconds") |
|
|
10
|
+
| `WithStartAdornmentIcon` | Input with leading icon/emoji |
|
|
11
|
+
| `WithBothAdornments` | Input with both start and end adornments (e.g., currency) |
|
|
12
|
+
| `DisabledWithAdornments` | Disabled state with adornments |
|
|
13
|
+
| `InvalidWithAdornments` | Error/invalid state with adornments |
|
|
14
|
+
| `WithLabel` | Input with a visible label |
|
|
15
|
+
| `WithLabelAndError` | Input with label and validation error message |
|
|
16
|
+
| `SearchInput` | Controlled input with `SearchIcon` start adornment |
|
|
17
|
+
| `Loading` | Input with loading spinner state |
|
|
18
|
+
| `WithButton` | Input paired with a submit `Button` |
|
|
19
|
+
| `AllVariants` | Side-by-side showcase of all input states |
|
|
20
20
|
|
|
21
21
|
## Usage Example
|
|
22
22
|
|
|
23
23
|
```typescript
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
// Basic input
|
|
25
|
+
<Input placeholder="Enter text..." />
|
|
26
|
+
|
|
27
|
+
// With adornments
|
|
28
|
+
<Input
|
|
29
|
+
placeholder="0.00"
|
|
30
|
+
startAdornment="$"
|
|
31
|
+
endAdornment="USD"
|
|
32
|
+
/>
|
|
33
|
+
|
|
34
|
+
// With label and error
|
|
35
|
+
<Input
|
|
36
|
+
label="Username"
|
|
37
|
+
placeholder="Enter text..."
|
|
38
|
+
error="This field is required"
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
// Controlled search input with icon
|
|
42
|
+
const [value, setValue] = useState('');
|
|
43
|
+
<Input
|
|
44
|
+
value={value}
|
|
45
|
+
onChange={(e) => setValue(e.target.value)}
|
|
46
|
+
placeholder="Search..."
|
|
47
|
+
startAdornment={<SearchIcon size={20} />}
|
|
48
|
+
/>
|
|
49
|
+
|
|
50
|
+
// Disabled state
|
|
51
|
+
<Input placeholder="90" endAdornment="Seconds" disabled />
|
|
52
|
+
|
|
53
|
+
// Loading state
|
|
54
|
+
<Input placeholder="Searching..." loading={true} startAdornment={<SearchIcon size={20} />} />
|
|
55
|
+
```
|
|
@@ -1,54 +1,67 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 5bd98e591bdfac5e0da78b79f15c4945 -->
|
|
2
|
+
Storybook stories for the `ListPageLayout` component, showcasing layout variants, interactive states, and real-world page examples used across the OpenFrame application.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
| Story | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `Basic` | Minimal layout with title, search bar, and table |
|
|
9
|
+
| `WithHeaderActions` | Layout with Refresh and Add Device action buttons |
|
|
10
|
+
| `WithViewToggle` | Layout with list/grid view switcher |
|
|
11
|
+
| `WithError` | Error state rendering |
|
|
12
|
+
| `WithSearchValue` | Pre-filled search input |
|
|
13
|
+
| `EmptyState` | Table with no data and empty message |
|
|
14
|
+
| `SmallPadding` / `LargePadding` | Padding size variants (`sm`, `lg`) |
|
|
15
|
+
| `CardBackground` | Card-style background variant |
|
|
16
|
+
| `Interactive` | Fully functional search with live filtering |
|
|
17
|
+
| `ScriptsPageExample` | Real-world Scripts page layout mock |
|
|
18
|
+
| `LogsPageExample` | Real-world Logs page layout mock |
|
|
11
19
|
|
|
12
20
|
## Usage Example
|
|
13
21
|
|
|
14
22
|
```typescript
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
rowKey="id"
|
|
27
|
-
/>
|
|
28
|
-
)
|
|
29
|
-
}
|
|
30
|
-
}
|
|
23
|
+
import { ListPageLayout } from '../components/layout/list-page-layout'
|
|
24
|
+
import { Table } from '../components/ui/table'
|
|
25
|
+
import { Button } from '../components/ui/button'
|
|
26
|
+
import { useState } from 'react'
|
|
27
|
+
|
|
28
|
+
function DevicesPage() {
|
|
29
|
+
const [searchValue, setSearchValue] = useState('')
|
|
30
|
+
|
|
31
|
+
const filtered = devices.filter(d =>
|
|
32
|
+
d.name.toLowerCase().includes(searchValue.toLowerCase())
|
|
33
|
+
)
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
)
|
|
50
|
-
}
|
|
35
|
+
return (
|
|
36
|
+
<ListPageLayout
|
|
37
|
+
title="Devices"
|
|
38
|
+
headerActions={
|
|
39
|
+
<Button variant="accent" size="small-legacy">
|
|
40
|
+
Add Device
|
|
41
|
+
</Button>
|
|
42
|
+
}
|
|
43
|
+
searchPlaceholder="Search devices..."
|
|
44
|
+
searchValue={searchValue}
|
|
45
|
+
onSearch={setSearchValue}
|
|
46
|
+
padding="md"
|
|
47
|
+
background="default"
|
|
48
|
+
>
|
|
49
|
+
<Table data={filtered} columns={deviceColumns} rowKey="id" />
|
|
50
|
+
</ListPageLayout>
|
|
51
|
+
)
|
|
51
52
|
}
|
|
52
53
|
```
|
|
53
54
|
|
|
54
|
-
|
|
55
|
+
## Layout Structure
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
┌──────────────────────────────────────────────────┐
|
|
59
|
+
│ Title (left) │ Header Actions (right) │
|
|
60
|
+
├──────────────────────────────────────────────────┤
|
|
61
|
+
│ Search Bar (full width) │
|
|
62
|
+
├──────────────────────────────────────────────────┤
|
|
63
|
+
│ Table / Grid (main content) │
|
|
64
|
+
└──────────────────────────────────────────────────┘
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Props:** `padding` (`none` | `sm` | `md` | `lg`), `background` (`default` | `card` | `transparent`), `error` (string), `headerActions` (ReactNode), `searchPlaceholder`, `searchValue`, `onSearch`.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- source-hash: 3d1f4ac24e4bcadba43f4bdf62347d8d -->
|
|
2
|
+
Storybook stories for `MingoOnboardingCard`, the single-row card used in Mingo's chat empty-state list. Covers isolated prop variants and a full stacked list mirroring the Figma empty-state layout.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|--------|-------------|
|
|
8
|
+
| `Default` | Base card with icon, title, slash command, and description |
|
|
9
|
+
| `WithoutDescription` | Card omitting the description field |
|
|
10
|
+
| `WithoutSlashCommand` | Card omitting the slash command badge |
|
|
11
|
+
| `LongTitleTruncates` | Validates truncation behavior for long titles and commands |
|
|
12
|
+
| `Clickable` | Card with an `onClick` handler wired to console output |
|
|
13
|
+
| `WithActions` | Card with multiple outline-chip action buttons (Recent, Search, Find) |
|
|
14
|
+
| `ChipCommands` | Full stacked list of 13 cards driven by `SAMPLE_CHIP_COMMANDS`, mirroring Figma node `7363:205938` |
|
|
15
|
+
|
|
16
|
+
## Usage Example
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
// Single card with actions
|
|
20
|
+
<MingoOnboardingCard
|
|
21
|
+
icon={<CompassIcon size={16} />}
|
|
22
|
+
title="ClickUp Roadmap"
|
|
23
|
+
slashCommand="/roadmap"
|
|
24
|
+
description="Public product roadmap with upcoming features and releases"
|
|
25
|
+
actions={[
|
|
26
|
+
{ id: 'recent', label: 'Recent', onClick: () => {} },
|
|
27
|
+
{ id: 'search', label: 'Search', onClick: () => {} },
|
|
28
|
+
]}
|
|
29
|
+
/>
|
|
30
|
+
|
|
31
|
+
// Stacked list — icons resolved from the shared registry
|
|
32
|
+
const Icon = resolveOnboardingIcon('rocket-02')
|
|
33
|
+
<MingoOnboardingCard
|
|
34
|
+
icon={<Icon size={16} />}
|
|
35
|
+
title="Product Releases"
|
|
36
|
+
slashCommand="/release-notes"
|
|
37
|
+
description="OpenFrame version releases, changelogs, and update notes"
|
|
38
|
+
actions={[{ id: 'recent', label: 'Recent', onClick: () => {} }]}
|
|
39
|
+
/>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> **Decorator context:** All stories wrap cards inside a `rounded-md` border container. The bottom border on each card acts as a 1-px divider between siblings, collapsed on the last row via `last:border-b-0`.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!-- source-hash: 0762ecc460541acf4d69c0515fbfa03a -->
|
|
2
|
+
Storybook stories for the `MingoOnboardingCardSkeleton` and `MingoOnboardingListSkeleton` loading-state components, covering list variants by row count and individual card configurations.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Story | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `Default` | List skeleton with 6 rows (standard empty-state replacement) |
|
|
9
|
+
| `FewRows` | List skeleton with 3 rows |
|
|
10
|
+
| `ManyRows` | List skeleton with 13 rows |
|
|
11
|
+
| `SingleRowDefault` | Isolated single card skeleton with default props |
|
|
12
|
+
| `SingleRowOneLine` | Single card with one description line |
|
|
13
|
+
| `SingleRowNoChips` | Single card with chip placeholders removed |
|
|
14
|
+
| `SingleRowCustomWidths` | Single card with custom `titleWidth`, `slashWidth`, and `chipWidths` |
|
|
15
|
+
|
|
16
|
+
## Usage Example
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
// List skeleton — drop-in for the resolved onboarding card stack
|
|
20
|
+
<MingoOnboardingListSkeleton rows={6} />
|
|
21
|
+
|
|
22
|
+
// Single card skeleton with custom placeholder widths
|
|
23
|
+
<MingoOnboardingCardSkeleton
|
|
24
|
+
titleWidth="w-48"
|
|
25
|
+
slashWidth="w-28"
|
|
26
|
+
descriptionLines={1}
|
|
27
|
+
chipWidths={['w-20', 'w-16', 'w-14']}
|
|
28
|
+
/>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Notes
|
|
32
|
+
|
|
33
|
+
- Stories are wrapped in a `w-[520px]` container with `bg-ods-bg` to simulate the live empty-state shell.
|
|
34
|
+
- `MingoOnboardingCardSkeleton` mirrors `MingoOnboardingCard` markup pixel-for-pixel (Figma node `7363:205938`), including `p-[var(--spacing-system-s)]`, `bg-ods-card`, `border-b` dividers, `size-4` icon slots, and `h-7` chip placeholders.
|
|
35
|
+
- `MingoOnboardingListSkeleton` wraps N rows in the same `rounded-md border overflow-hidden` shell used by the live component.
|
|
@@ -1,40 +1,49 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook
|
|
1
|
+
<!-- source-hash: a814b843aeaf82abd73ff945b405ef13 -->
|
|
2
|
+
Storybook stories for the `Modal` UI component, demonstrating two interaction patterns: a basic modal with header/content/footer, and a modal containing an `Autocomplete` dropdown with portal-aware rendering.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `Default` | Basic modal story with open/close toggle, header, body text, and Cancel/Confirm footer buttons |
|
|
9
|
+
| `WithAutocomplete` | Modal story embedding an `Autocomplete` multi-select with `overflow-visible` and a `ref` callback to capture the modal DOM node for portal containment |
|
|
10
10
|
|
|
11
11
|
## Usage Example
|
|
12
12
|
|
|
13
13
|
```typescript
|
|
14
|
-
//
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
14
|
+
// Default modal pattern
|
|
15
|
+
<Modal isOpen={isOpen} onClose={() => setIsOpen(false)}>
|
|
16
|
+
<ModalHeader>
|
|
17
|
+
<ModalTitle>Modal Title</ModalTitle>
|
|
18
|
+
</ModalHeader>
|
|
19
|
+
<ModalContent className="px-6 py-4">
|
|
20
|
+
<p>Modal body content</p>
|
|
21
|
+
</ModalContent>
|
|
22
|
+
<ModalFooter>
|
|
23
|
+
<Button variant="outline" onClick={() => setIsOpen(false)}>Cancel</Button>
|
|
24
|
+
<Button variant="accent" onClick={() => setIsOpen(false)}>Confirm</Button>
|
|
25
|
+
</ModalFooter>
|
|
26
|
+
</Modal>
|
|
27
|
+
|
|
28
|
+
// Autocomplete inside modal — capture modal ref to avoid z-index conflicts
|
|
29
|
+
const [modalElement, setModalElement] = useState<HTMLDivElement | null>(null)
|
|
30
|
+
const modalRef = useCallback((node: HTMLDivElement | null) => {
|
|
31
|
+
setModalElement(node)
|
|
32
|
+
}, [])
|
|
33
|
+
|
|
34
|
+
<Modal ref={modalRef} isOpen={isOpen} onClose={...} className="max-w-lg overflow-visible">
|
|
35
|
+
<ModalContent className="px-6 py-4">
|
|
36
|
+
<Autocomplete
|
|
37
|
+
options={options}
|
|
38
|
+
value={selected}
|
|
39
|
+
onChange={setSelected}
|
|
40
|
+
placeholder="Search..."
|
|
41
|
+
/>
|
|
42
|
+
</ModalContent>
|
|
43
|
+
</Modal>
|
|
38
44
|
```
|
|
39
45
|
|
|
40
|
-
|
|
46
|
+
## Notes
|
|
47
|
+
|
|
48
|
+
- `WithAutocomplete` uses `useCallback` ref to capture the modal DOM node, enabling dropdown portals to render inside the modal's subtree and avoid z-index stacking issues.
|
|
49
|
+
- Both stories manage `isOpen` via local `useState`, decoupled from Storybook's `args.isOpen` control after initial render.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<!-- source-hash: fd9f374934342611a000534ff097b06e -->
|
|
2
|
+
Storybook stories for the `NotificationDrawer` feature, providing interactive visual tests for notification tile variants, drawer states, and live notification dispatching via the `useNotifications` hook.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `AllTileVariants` | Static preview of all five `NotificationVariant` tile styles (`default`, `success`, `error`, `warning`, `info`) in a settled/read state |
|
|
9
|
+
| `LiveTile` | Demonstrates the animated progress-bar lifecycle of a freshly arrived tile, with a replay button |
|
|
10
|
+
| `DrawerEmpty` | Drawer rendered with zero notifications (empty state), auto-opened on mount |
|
|
11
|
+
| `DrawerWithSeedData` | Drawer pre-seeded with six notifications mirroring the Figma reference design |
|
|
12
|
+
| `LivePlayground` | Interactive sandbox for firing notifications of any variant, toggling the drawer, and testing `markAllRead`/`clear` |
|
|
13
|
+
|
|
14
|
+
## Usage Example
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Minimal setup mirroring how stories bootstrap the notification system
|
|
18
|
+
import {
|
|
19
|
+
NotificationsProvider,
|
|
20
|
+
NotificationDrawer,
|
|
21
|
+
useNotifications,
|
|
22
|
+
} from '../components/features/notifications';
|
|
23
|
+
|
|
24
|
+
function App() {
|
|
25
|
+
return (
|
|
26
|
+
<NotificationsProvider
|
|
27
|
+
initialNotifications={[]}
|
|
28
|
+
onHistoryClick={() => router.push('/notifications')}
|
|
29
|
+
onShowPopupsChange={(enabled) => console.log('popups:', enabled)}
|
|
30
|
+
>
|
|
31
|
+
<NotificationDrawer />
|
|
32
|
+
<FireButton />
|
|
33
|
+
</NotificationsProvider>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function FireButton() {
|
|
38
|
+
const { addNotification } = useNotifications();
|
|
39
|
+
return (
|
|
40
|
+
<button
|
|
41
|
+
onClick={() =>
|
|
42
|
+
addNotification({
|
|
43
|
+
variant: 'success',
|
|
44
|
+
title: 'Deployment Complete',
|
|
45
|
+
description: 'HP EliteBook deployed to Marketing Dept',
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
>
|
|
49
|
+
Fire notification
|
|
50
|
+
</button>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
> Mount `<NotificationsProvider>` once at the app root. The `<NotificationDrawer>` can be placed anywhere within the provider tree; the bell button in `AppHeader` toggles it automatically.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- source-hash: d74b86d195ef9df34ce86e9fde4c0258 -->
|
|
2
|
+
Storybook stories for the `OnboardingStepCard` component, covering all visual states and a full list layout as seen on the Get Started page.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|--------|-------------|
|
|
8
|
+
| `Default` | Pending state — shows **Skip Step** + primary action button |
|
|
9
|
+
| `Completed` | Success state — shows completed badge + **Manage** button |
|
|
10
|
+
| `Skipped` | Skipped state — shows only the **SKIPPED** badge |
|
|
11
|
+
| `CheckingCompletion` | Loading skeleton while completion status is being fetched |
|
|
12
|
+
| `List` | Full multi-step list replicating the Get Started page layout |
|
|
13
|
+
|
|
14
|
+
## Usage Example
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Render a pending onboarding step
|
|
18
|
+
<OnboardingStepCard
|
|
19
|
+
step={{
|
|
20
|
+
id: 'invite-users',
|
|
21
|
+
title: 'Company & Team',
|
|
22
|
+
description: 'Invite team members and set up roles',
|
|
23
|
+
actionIcon: (color?) => <UserPlusIcon color={color} size={20} />,
|
|
24
|
+
actionText: 'Invite Users',
|
|
25
|
+
completedText: 'Manage Users',
|
|
26
|
+
onAction: () => console.log('action'),
|
|
27
|
+
onSkip: () => console.log('skip'),
|
|
28
|
+
}}
|
|
29
|
+
isCompleted={false}
|
|
30
|
+
isSkipped={false}
|
|
31
|
+
isCheckingCompletion={false}
|
|
32
|
+
onAction={() => console.log('action')}
|
|
33
|
+
onSkip={() => console.log('skip')}
|
|
34
|
+
/>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Notes
|
|
38
|
+
|
|
39
|
+
- The card itself has **no hover state or click handler** — only the inner buttons (`Skip Step`, `Action`, `Manage`) are interactive.
|
|
40
|
+
- The `List` story is useful for verifying that hovering a row does **not** change its border or background.
|
|
41
|
+
- Stories use `layout: 'padded'` and are tagged with `autodocs` for automatic documentation generation.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<!-- source-hash: ce4a821de2f69b4718eaed524e6db5f1 -->
|
|
2
|
+
Storybook stories for the `OrganizationCard` UI component, demonstrating all supported props and visual variants for displaying organizations with logos, stats, navigation links, and action buttons.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Story | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `Default` | Basic card with full organization data and no extras |
|
|
9
|
+
| `WithImage` | Card with organization logo, link, and device count |
|
|
10
|
+
| `WithLink` | Card rendered as a clickable anchor |
|
|
11
|
+
| `WithDeviceCount` | Badge showing total device count in the top-right corner |
|
|
12
|
+
| `WithFooterStats` | Footer row with icon/value/label stat items (devices, MRR) |
|
|
13
|
+
| `WithActionButton` | Destructive action button (e.g. Remove) via `actionButton` prop |
|
|
14
|
+
| `WithPrimaryAction` | Primary variant action button (e.g. Deploy) |
|
|
15
|
+
| `Minimal` | Card with only `id` and `name` populated |
|
|
16
|
+
| `NoDescription` | Card with industry/tier but no description |
|
|
17
|
+
| `WithCustomFooter` | Arbitrary JSX injected as a custom footer slot |
|
|
18
|
+
|
|
19
|
+
## Usage Example
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { OrganizationCard } from '../components/ui/organization-card'
|
|
23
|
+
import { Server } from 'lucide-react'
|
|
24
|
+
|
|
25
|
+
// Basic card
|
|
26
|
+
<OrganizationCard
|
|
27
|
+
organization={{
|
|
28
|
+
id: '1',
|
|
29
|
+
name: 'Acme Corporation',
|
|
30
|
+
industry: 'Technology',
|
|
31
|
+
description: 'Enterprise cloud infrastructure provider.',
|
|
32
|
+
totalDevices: 142,
|
|
33
|
+
activeDevices: 138,
|
|
34
|
+
mrrUsd: 12500,
|
|
35
|
+
}}
|
|
36
|
+
href="/organizations/details/1"
|
|
37
|
+
deviceCount={142}
|
|
38
|
+
footerStats={[
|
|
39
|
+
{ icon: <Server className="h-4 w-4" />, value: 142, label: 'devices' },
|
|
40
|
+
]}
|
|
41
|
+
showActionButton
|
|
42
|
+
actionButton={{
|
|
43
|
+
icon: <Server className="h-4 w-4" />,
|
|
44
|
+
label: 'Deploy',
|
|
45
|
+
onClick: (org) => console.log('Deploy:', org.id),
|
|
46
|
+
variant: 'primary',
|
|
47
|
+
}}
|
|
48
|
+
/>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## ArgTypes Reference
|
|
52
|
+
|
|
53
|
+
| Prop | Type | Description |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| `organization` | `Organization` | Core data object (id, name, industry, description, stats) |
|
|
56
|
+
| `href` | `string` | Makes the card a navigable link |
|
|
57
|
+
| `fetchedImageUrl` | `string` | Pre-fetched logo URL from `useBatchImages` |
|
|
58
|
+
| `deviceCount` | `number` | Badge count shown in the top-right corner |
|
|
59
|
+
| `showActionButton` | `boolean` | Toggles the action button visibility |
|
|
60
|
+
| `footerStats` | `FooterStat[]` | Icon + value + label rows in the card footer |
|
|
61
|
+
| `customFooter` | `ReactNode` | Arbitrary JSX rendered in the footer slot |
|
|
@@ -1,57 +1,60 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook
|
|
1
|
+
<!-- source-hash: cad0666dc893f948d0160200a40d9384 -->
|
|
2
|
+
Storybook stories file for the `PageActions` component, documenting all interactive variants and states for use in the Flamingo/OpenFrame UI library.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
6
|
+
**Exported Stories:**
|
|
7
|
+
|
|
8
|
+
| Story | Variant | Description |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| `IconButtons` | `icon-buttons` | Icon + label buttons, collapses to dropdown on mobile |
|
|
11
|
+
| `PrimaryButtons` | `primary-buttons` | Accent + outline buttons, fixed bottom bar on mobile |
|
|
12
|
+
| `PrimaryButtonsWithIcons` | `primary-buttons` | Primary buttons with leading icons |
|
|
13
|
+
| `SinglePrimaryButton` | `primary-buttons` | Single accent CTA |
|
|
14
|
+
| `SingleIconButton` | `icon-buttons` | Single icon button (stays visible on mobile, no menu collapse) |
|
|
15
|
+
| `ThreeIconButtons` | `icon-buttons` | Three-action icon row |
|
|
16
|
+
| `WithStates` | `primary-buttons` | `loading` and `disabled` prop states |
|
|
17
|
+
| `MenuPrimary` | `menu-primary` | `...` overflow menu + primary button |
|
|
18
|
+
| `MenuPrimaryLoading` | `menu-primary` | Loading state on primary button |
|
|
19
|
+
| `MobileOnlyActions` | `icon-buttons` | `showOnlyMobile` prop — hides specific actions on desktop |
|
|
20
|
+
| `LinkActions` | `menu-primary` | `href`-based actions rendering as `<a>` elements |
|
|
21
|
+
| `SplitButtonWithMenu` | `menu-primary` | `submenu` chevron split button pattern |
|
|
22
|
+
| `SplitButtonTwoActions` | `menu-primary` | `iconAction` dual-target split button |
|
|
13
23
|
|
|
14
24
|
## Usage Example
|
|
15
25
|
|
|
16
26
|
```typescript
|
|
17
|
-
// Basic icon
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
27
|
+
// Basic icon-buttons usage in a page header
|
|
28
|
+
<PageActions
|
|
29
|
+
variant="icon-buttons"
|
|
30
|
+
actions={[
|
|
31
|
+
{ label: 'Add Script', onClick: handleAdd, icon: <PlusCircleIcon size={24} /> },
|
|
32
|
+
{ label: 'Edit Categories', onClick: handleEdit, icon: <ColorsIcon size={24} /> },
|
|
33
|
+
]}
|
|
34
|
+
/>
|
|
35
|
+
|
|
36
|
+
// menu-primary with split button and overflow menu
|
|
37
|
+
<PageActions
|
|
38
|
+
variant="menu-primary"
|
|
39
|
+
actions={[
|
|
40
|
+
{
|
|
41
|
+
label: 'Remote Shell',
|
|
42
|
+
variant: 'outline',
|
|
43
|
+
submenu: [
|
|
44
|
+
{ id: 'cmd', label: 'CMD', onClick: openCmd, icon: <TerminalIcon size={24} /> },
|
|
45
|
+
{ id: 'powershell', label: 'Power Shell', onClick: openPs, icon: <TerminalIcon size={24} /> },
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
]}
|
|
49
|
+
menuActions={[
|
|
50
|
+
{
|
|
51
|
+
items: [
|
|
52
|
+
{ id: 'edit', label: 'Edit Device', onClick: handleEdit, icon: <PenEditIcon size={24} /> },
|
|
53
|
+
{ id: 'delete', label: 'Delete Device', onClick: handleDelete, icon: <TrashIcon size={24} /> },
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
]}
|
|
57
|
+
/>
|
|
58
|
+
```
|
|
35
59
|
|
|
36
|
-
|
|
37
|
-
export const MenuPrimary: Story = {
|
|
38
|
-
args: {
|
|
39
|
-
variant: 'menu-primary',
|
|
40
|
-
actions: [
|
|
41
|
-
{
|
|
42
|
-
label: 'Run Script',
|
|
43
|
-
onClick: fn(),
|
|
44
|
-
variant: 'primary',
|
|
45
|
-
icon: <PlayCircleIcon size={24} />,
|
|
46
|
-
},
|
|
47
|
-
],
|
|
48
|
-
menuActions: [
|
|
49
|
-
{
|
|
50
|
-
label: 'Edit Script',
|
|
51
|
-
onClick: fn(),
|
|
52
|
-
icon: <PenEditIcon size={24} />,
|
|
53
|
-
},
|
|
54
|
-
],
|
|
55
|
-
},
|
|
56
|
-
}
|
|
57
|
-
```
|
|
60
|
+
> **Tip:** Use `PageActions` via the `headerActions` prop on `PageContainer` for consistent page-level layouts across the Flamingo platform.
|