@flamingo-stack/openframe-frontend-core 0.0.213 → 0.0.214
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-3JWIJJ44.js → chunk-5OWDOFKK.js} +2 -2
- package/dist/{chunk-IK2X5YJU.js → chunk-HWY35EAK.js} +2 -2
- package/dist/{chunk-OTKJASSX.cjs → chunk-IZL2KEH6.cjs} +24 -24
- package/dist/{chunk-OTKJASSX.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
- package/dist/{chunk-35XIT2CF.cjs → chunk-KDNGUYZM.cjs} +17 -17
- package/dist/{chunk-35XIT2CF.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
- package/dist/{chunk-ZTJVRSN5.js → chunk-UKND27XC.js} +2 -2
- package/dist/chunk-UKND27XC.js.map +1 -0
- package/dist/{chunk-ZDF6F7ED.cjs → chunk-YZUUFTIK.cjs} +2 -2
- package/dist/chunk-YZUUFTIK.cjs.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/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-3JWIJJ44.js.map → chunk-5OWDOFKK.js.map} +0 -0
- /package/dist/{chunk-IK2X5YJU.js.map → chunk-HWY35EAK.js.map} +0 -0
|
@@ -1,50 +1,53 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: da7a4cc8d96ad03653cebb8d1ec11d45 -->
|
|
2
|
+
Storybook stories for the `Button` UI component, covering all variants, sizes, states, icon configurations, and link behaviors with interactive controls.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
| Story | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `Accent` / `Outline` / `Transparent` / `Destructive` | Surface variant stories |
|
|
9
|
+
| `SizeDefault` / `SizeSmall` | Size variant stories |
|
|
10
|
+
| `IconOnly` / `WithLeftIcon` / `WithRightIcon` / `WithBothIcons` | Icon placement stories |
|
|
11
|
+
| `Disabled` / `Loading` / `FullWidth` | State stories |
|
|
12
|
+
| `SplitIcon` / `SplitIconOutline` / `SplitIconSmall` / `SplitIconAsLink` | Split-icon button variations |
|
|
13
|
+
| `AsLink` / `ExternalLink` | Button rendered as anchor tag |
|
|
14
|
+
| `AllVariants` / `AllSizes` / `IconButtonGrid` / `WithIconsShowcase` / `StatesShowcase` / `NotificationCounters` | Showcase/grid stories |
|
|
10
15
|
|
|
11
|
-
**
|
|
12
|
-
- **Variant Stories**: Primary, Secondary, White, Outline, Ghost, Destructive, Success, Warning, Info, Flamingo variants
|
|
13
|
-
- **Size Stories**: Small, Default, Large, Touch, Icon-only, and specialized search sizes
|
|
14
|
-
- **Icon Stories**: Left, right, center, and combined icon placements with Lucide React icons
|
|
15
|
-
- **State Stories**: Disabled, loading, link behaviors, and external link handling
|
|
16
|
-
- **Layout Stories**: Alignment options, padding controls, and mobile responsiveness
|
|
17
|
-
- **Showcase Stories**: Comprehensive displays of all variants, sizes, and icon combinations
|
|
16
|
+
**Controls exposed via `argTypes`:** `variant`, `size`, `fullWidth`, `disabled`, `loading`
|
|
18
17
|
|
|
19
18
|
## Usage Example
|
|
20
19
|
|
|
21
20
|
```typescript
|
|
22
|
-
//
|
|
23
|
-
|
|
21
|
+
// Minimal interactive story with controls
|
|
22
|
+
import { Button } from '../components/ui/button';
|
|
23
|
+
|
|
24
|
+
export const MyStory: Story = {
|
|
24
25
|
args: {
|
|
25
|
-
children: '
|
|
26
|
-
variant: '
|
|
26
|
+
children: 'Click me',
|
|
27
|
+
variant: 'accent',
|
|
28
|
+
size: 'default',
|
|
29
|
+
loading: false,
|
|
30
|
+
disabled: false,
|
|
27
31
|
},
|
|
28
32
|
};
|
|
29
33
|
|
|
30
|
-
//
|
|
31
|
-
export const
|
|
34
|
+
// Split-icon button as a navigation link
|
|
35
|
+
export const SplitNav: Story = {
|
|
32
36
|
args: {
|
|
33
|
-
children: '
|
|
34
|
-
|
|
37
|
+
children: 'Docs',
|
|
38
|
+
href: '/docs',
|
|
39
|
+
splitIcon: <ExternalLinkIcon />,
|
|
40
|
+
variant: 'outline',
|
|
35
41
|
},
|
|
36
42
|
};
|
|
37
43
|
|
|
38
|
-
//
|
|
39
|
-
export const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
),
|
|
44
|
+
// Icon-only with accessible label
|
|
45
|
+
export const IconAction: Story = {
|
|
46
|
+
args: {
|
|
47
|
+
size: 'icon',
|
|
48
|
+
variant: 'destructive',
|
|
49
|
+
leftIcon: <Trash2 />,
|
|
50
|
+
'aria-label': 'Delete item',
|
|
51
|
+
},
|
|
47
52
|
};
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
The stories provide interactive controls for testing all button properties and include specialized showcases for icon buttons with numbers, external links, and comprehensive variant comparisons.
|
|
53
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!-- source-hash: 995995dfe9715311703dcbbfc0fbba0b -->
|
|
2
|
+
Storybook stories for the `ChatTicketList` component, providing visual test cases across different ticket counts, statuses, and scroll/fade behaviors.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`meta`** — Storybook metadata registering the component under `Chat/ChatTicketList` with autodocs and a `ticketClicked` action handler
|
|
7
|
+
- **`mockTickets`** — 5-item fixture dataset covering all ticket statuses: `ACTIVE`, `ON_HOLD`, `TECH_REQUIRED`, and `RESOLVED`
|
|
8
|
+
- **`manyTickets`** — 15-item extended dataset (includes `mockTickets`) for testing scroll and fade overflow scenarios
|
|
9
|
+
- **`constrainedDecorator`** — Factory returning a story decorator that wraps the component in a max-width 600px container with an optional fixed height, used to simulate real layout constraints
|
|
10
|
+
|
|
11
|
+
## Exported Stories
|
|
12
|
+
|
|
13
|
+
| Story | Description |
|
|
14
|
+
|---|---|
|
|
15
|
+
| `Default` | 5 tickets, unconstrained height |
|
|
16
|
+
| `SingleTicket` | Only the first ticket rendered |
|
|
17
|
+
| `AllStatuses` | First 4 tickets showing each distinct status |
|
|
18
|
+
| `ScrollFading` | 15 tickets in a 400px container to demonstrate scroll fade |
|
|
19
|
+
| `ScrollFadingCompact` | 15 tickets in a 280px container for more pronounced fade |
|
|
20
|
+
|
|
21
|
+
## Usage Example
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
// Replicate the ScrollFading story manually
|
|
25
|
+
import { ChatTicketList } from "../components/chat/chat-ticket-list";
|
|
26
|
+
|
|
27
|
+
<div style={{ maxWidth: 600, height: 400 }}>
|
|
28
|
+
<ChatTicketList
|
|
29
|
+
tickets={manyTickets}
|
|
30
|
+
onTicketClick={(ticket) => console.log(ticket)}
|
|
31
|
+
/>
|
|
32
|
+
</div>
|
|
33
|
+
```
|
|
@@ -1,47 +1,59 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook
|
|
1
|
+
<!-- source-hash: d29f5d2cc4bf17eb228a4dc4aebe30a3 -->
|
|
2
|
+
Storybook stories for the `CheckboxBlock` UI component, covering all interactive states, variants, and theme configurations for visual testing and documentation.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
6
|
+
### Stories Exported
|
|
7
|
+
|
|
8
|
+
| Story | Description |
|
|
9
|
+
|---|---|
|
|
10
|
+
| `Default` | Unchecked checkbox block baseline |
|
|
11
|
+
| `Checked` / `Disabled` / `DisabledChecked` | State variants |
|
|
12
|
+
| `Controlled` | Stateful example using `useState` with live feedback |
|
|
13
|
+
| `WithDescription` | Taller `h-16` variant with secondary description text |
|
|
14
|
+
| `Error` / `FlamingoError` | Red border validation failure state |
|
|
15
|
+
| `FlamingoChecked` | Pink accent theme via `data-app-type="flamingo"` wrapper |
|
|
16
|
+
| `AllVariants` | Side-by-side comparison of all variants |
|
|
17
|
+
|
|
18
|
+
### Configured `argTypes`
|
|
19
|
+
|
|
20
|
+
- `label` — checkbox label text
|
|
21
|
+
- `checked` / `defaultChecked` — controlled vs. uncontrolled state
|
|
22
|
+
- `description` — optional secondary text below label
|
|
23
|
+
- `disabled` — disables interaction
|
|
24
|
+
- `onCheckedChange` — action callback on state change
|
|
15
25
|
|
|
16
26
|
## Usage Example
|
|
17
27
|
|
|
18
28
|
```typescript
|
|
19
29
|
import { CheckboxBlock } from '../components/ui/checkbox-block';
|
|
20
|
-
import { useState } from 'react';
|
|
21
30
|
|
|
22
|
-
//
|
|
23
|
-
<CheckboxBlock label="
|
|
24
|
-
|
|
25
|
-
// Controlled state
|
|
26
|
-
const [isEnabled, setIsEnabled] = useState(false);
|
|
27
|
-
<CheckboxBlock
|
|
28
|
-
label="Controlled Option"
|
|
29
|
-
checked={isEnabled}
|
|
30
|
-
onCheckedChange={setIsEnabled}
|
|
31
|
-
/>
|
|
31
|
+
// Uncontrolled
|
|
32
|
+
<CheckboxBlock label="Repeat Script Run" defaultChecked />
|
|
32
33
|
|
|
33
34
|
// With description
|
|
34
35
|
<CheckboxBlock
|
|
35
36
|
label="Run as User"
|
|
36
37
|
description="Windows Only"
|
|
37
|
-
|
|
38
|
+
disabled
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
// Controlled
|
|
42
|
+
const [checked, setChecked] = useState(false);
|
|
43
|
+
<CheckboxBlock
|
|
44
|
+
label="Controlled Checkbox"
|
|
45
|
+
checked={checked}
|
|
46
|
+
onCheckedChange={setChecked}
|
|
38
47
|
/>
|
|
39
48
|
|
|
40
|
-
//
|
|
49
|
+
// Error state
|
|
41
50
|
<CheckboxBlock
|
|
42
|
-
label="
|
|
43
|
-
|
|
51
|
+
label="Accept terms"
|
|
52
|
+
error="Please accept to continue."
|
|
44
53
|
/>
|
|
45
|
-
```
|
|
46
54
|
|
|
47
|
-
|
|
55
|
+
// Flamingo theme
|
|
56
|
+
<div data-app-type="flamingo">
|
|
57
|
+
<CheckboxBlock label="Accept terms" defaultChecked />
|
|
58
|
+
</div>
|
|
59
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!-- source-hash: 060ea3cce7fdd7cdb79d215a50260791 -->
|
|
2
|
+
Storybook stories for the `ContentLoader` UI component, showcasing all skeleton loading variants and configuration options.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|--------|-------------|
|
|
8
|
+
| `Card` | Default card-grid skeleton story |
|
|
9
|
+
| `Form` | Form fields skeleton story |
|
|
10
|
+
| `Detail` | Detail page with sidebar skeleton story |
|
|
11
|
+
| `List` | List rows with avatars skeleton story |
|
|
12
|
+
| `WithoutTitle` | Card variant without a title skeleton |
|
|
13
|
+
| `ManyItems` | Stress test with 8 list items |
|
|
14
|
+
| `SingleItem` | Single card skeleton |
|
|
15
|
+
| `CustomContainer` | Form skeleton with custom container class |
|
|
16
|
+
| `AllVariants` | Side-by-side showcase of all four variants using named loader components |
|
|
17
|
+
| `ShortcutComponents` | Demonstrates `CardLoader`, `FormLoader`, `DetailLoader`, `ListLoader` shortcut components |
|
|
18
|
+
|
|
19
|
+
## Usage Example
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import {
|
|
23
|
+
ContentLoader,
|
|
24
|
+
CardLoader,
|
|
25
|
+
FormLoader,
|
|
26
|
+
DetailLoader,
|
|
27
|
+
ListLoader,
|
|
28
|
+
} from '@/components/ui/content-loader';
|
|
29
|
+
|
|
30
|
+
// Generic loader with variant prop
|
|
31
|
+
<ContentLoader variant="card" items={4} showTitle />
|
|
32
|
+
|
|
33
|
+
// Shortcut components for common patterns
|
|
34
|
+
<CardLoader items={3} showTitle />
|
|
35
|
+
<FormLoader items={5} showTitle />
|
|
36
|
+
<DetailLoader items={2} showTitle containerClassName="bg-bg-card rounded-lg" />
|
|
37
|
+
<ListLoader items={8} />
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Controls
|
|
41
|
+
|
|
42
|
+
| Prop | Type | Range/Options |
|
|
43
|
+
|------|------|---------------|
|
|
44
|
+
| `variant` | `select` | `card`, `form`, `detail`, `list` |
|
|
45
|
+
| `items` | `number` | 1–12 |
|
|
46
|
+
| `showTitle` | `boolean` | `true` / `false` |
|
|
47
|
+
| `containerClassName` | `string` | Any Tailwind/CSS class string |
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<!-- source-hash: 903a9f23525777b275b7f8c4003cd050 -->
|
|
2
|
+
Storybook stories for the `DashboardInfoCard` UI component, covering all props and visual states used in dashboard layouts.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Story | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `Default` | Basic card with title and numeric value |
|
|
9
|
+
| `WithPercentage` | Card showing a percentage alongside the value |
|
|
10
|
+
| `WithProgress` | Circular progress indicator with percentage |
|
|
11
|
+
| `CustomProgressVariant` | Progress ring with `error`/`warning`/`success`/`info`/`accent` variants |
|
|
12
|
+
| `WithTooltip` | Question-mark icon with tooltip text |
|
|
13
|
+
| `WithHref` | Clickable card rendered as a Next.js `Link` |
|
|
14
|
+
| `WarningWithTag` / `ErrorWithTag` | Overflow percentage displayed as a colored `Tag` component |
|
|
15
|
+
| `OverflowWrap` / `OverflowComparison` | Demonstrates `progressOverflow="wrap"` vs `"clamp"` for values >100% |
|
|
16
|
+
| `FullyLoaded` | All props enabled simultaneously |
|
|
17
|
+
| `CardGrid` | Multi-card dashboard grid layout decorator |
|
|
18
|
+
|
|
19
|
+
## Usage Example
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { DashboardInfoCard } from '@/components/ui/dashboard-info-card'
|
|
23
|
+
|
|
24
|
+
// Basic usage
|
|
25
|
+
<DashboardInfoCard title="Total Devices" value={1284} />
|
|
26
|
+
|
|
27
|
+
// With progress ring and navigation
|
|
28
|
+
<DashboardInfoCard
|
|
29
|
+
title="Compliance Score"
|
|
30
|
+
value={92}
|
|
31
|
+
percentage={92}
|
|
32
|
+
showProgress
|
|
33
|
+
progressVariant="success"
|
|
34
|
+
tooltip="Based on the latest audit results"
|
|
35
|
+
href="/compliance"
|
|
36
|
+
/>
|
|
37
|
+
|
|
38
|
+
// Overflow handling for values exceeding 100%
|
|
39
|
+
<DashboardInfoCard
|
|
40
|
+
title="Device Usage"
|
|
41
|
+
value={520}
|
|
42
|
+
percentage={104}
|
|
43
|
+
showProgress
|
|
44
|
+
progressVariant="warning"
|
|
45
|
+
progressOverflow="wrap"
|
|
46
|
+
/>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### `progressVariant` options
|
|
50
|
+
|
|
51
|
+
| Value | Use Case |
|
|
52
|
+
|---|---|
|
|
53
|
+
| `success` | Healthy / on-target metrics |
|
|
54
|
+
| `warning` | Approaching limits |
|
|
55
|
+
| `error` | Critical / over-limit |
|
|
56
|
+
| `info` | Neutral informational |
|
|
57
|
+
| `accent` | Brand highlight |
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- source-hash: 4b92799da5c1a1952b02f5fb9273c343 -->
|
|
2
|
+
Storybook showcase for the `DataTable` component, demonstrating all interactive features (sorting, filtering, row selection, column visibility, pagination, and row actions) using a mock device dataset built on TanStack Table.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`Basic`** — Minimal setup with data and columns; no extra state
|
|
7
|
+
- **`WithSorting`** — Consumer-owned sort cycle with `DataTableSortState`, supporting server-side or in-memory sorting
|
|
8
|
+
- **`useDataTable`** — Hook wrapping TanStack Table; accepts `data`, `columns`, and flags like `clientSideSorting` / `clientSideFiltering`
|
|
9
|
+
- **`baseColumns()`** — Reusable `ColumnDef<Device>[]` factory shared across stories, with responsive `hideAt` breakpoints
|
|
10
|
+
- **Cell renderers** — `StatusTag`, `OSBadge`, `OwnerCell`, `TagsCell`, `LoadCell`, `LastSeenCell` — composable display-only cells
|
|
11
|
+
- **`multiSelectFilterFn`** — Column filter function for multi-value faceted filtering (OS, Status)
|
|
12
|
+
- **`makeDevices(count, startId?)`** — Deterministic fake device data generator seeded by index
|
|
13
|
+
|
|
14
|
+
## Usage Example
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
import { DataTable, useDataTable, type ColumnDef } from '@/components/ui/data-table'
|
|
18
|
+
|
|
19
|
+
const columns: ColumnDef<Device>[] = [
|
|
20
|
+
{ accessorKey: 'hostname', header: 'Hostname', meta: { width: 'w-[200px]' } },
|
|
21
|
+
{ accessorKey: 'status', header: 'Status', cell: ({ row }) => <StatusTag status={row.original.status} /> },
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
export function DevicesTable({ data }: { data: Device[] }) {
|
|
25
|
+
const table = useDataTable<Device>({
|
|
26
|
+
data,
|
|
27
|
+
columns,
|
|
28
|
+
clientSideSorting: true,
|
|
29
|
+
clientSideFiltering: true,
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<DataTable table={table}>
|
|
34
|
+
<DataTable.Header />
|
|
35
|
+
<DataTable.Body emptyMessage="No devices found" />
|
|
36
|
+
</DataTable>
|
|
37
|
+
)
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
> **Note:** Row actions, checkboxes, and chevron links are regular `ColumnDef` entries — not magic props. Use `data-no-row-click` on interactive cell wrappers to prevent click-event bubbling to `onRowClick`.
|
|
@@ -1,62 +1,76 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 62c605b851ea957354fc89970178b5ca -->
|
|
2
|
+
Storybook stories for the `DatePicker` UI component, covering single date, date range, input variants, time selection, constraints, and all-variants showcase.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|--------|-------------|
|
|
8
|
+
| `Single` | Basic single-date picker, uncontrolled initial state |
|
|
9
|
+
| `SingleWithValue` | Single picker pre-seeded with today's date |
|
|
10
|
+
| `Range` | Date range picker (from/to selection) |
|
|
11
|
+
| `RangeWithValue` | Range picker pre-filled with today + 7 days |
|
|
12
|
+
| `RangeTwoMonths` | Range picker showing two calendar months simultaneously |
|
|
13
|
+
| `Disabled` | Non-interactive picker in disabled state |
|
|
14
|
+
| `WithLabel` / `WithLabelAndError` | Picker with ODS label and optional error message |
|
|
15
|
+
| `RangeWithLabel` | Range picker with label |
|
|
16
|
+
| `CustomFormat` | Single picker with custom `formatDate` callback (en-GB locale) |
|
|
17
|
+
| `WithConstraints` | Single picker limited to the next 30 days via `fromDate`/`toDate` |
|
|
18
|
+
| `InputStyle` | `DatePickerInput` — calendar-icon-styled input variant |
|
|
19
|
+
| `InputWithLabel` / `InputWithLabelAndError` | Input variant with label/error |
|
|
20
|
+
| `InputWithTimeEmpty` | `DatePickerInput` with `showTime`, no initial value |
|
|
21
|
+
| `InputWithTime` | `DatePickerInput` with `showTime`, pre-seeded with today |
|
|
22
|
+
| `InputWithTime24Hour` | `DatePickerInput` with `use24HourFormat` flag |
|
|
23
|
+
| `AllVariants` | Side-by-side showcase of all major variants |
|
|
11
24
|
|
|
12
25
|
## Usage Example
|
|
13
26
|
|
|
14
27
|
```typescript
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
mode="single"
|
|
22
|
-
placeholder="Select date"
|
|
23
|
-
value={date}
|
|
24
|
-
onChange={setDate}
|
|
25
|
-
/>
|
|
26
|
-
);
|
|
27
|
-
},
|
|
28
|
-
};
|
|
28
|
+
import { useState } from "react";
|
|
29
|
+
import {
|
|
30
|
+
DatePicker,
|
|
31
|
+
DatePickerInput,
|
|
32
|
+
type DateRange,
|
|
33
|
+
} from "../components/ui/date-picker";
|
|
29
34
|
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
};
|
|
35
|
+
// Single date picker
|
|
36
|
+
function SingleExample() {
|
|
37
|
+
const [date, setDate] = useState<Date | undefined>();
|
|
38
|
+
return (
|
|
39
|
+
<DatePicker
|
|
40
|
+
mode="single"
|
|
41
|
+
placeholder="Select date"
|
|
42
|
+
value={date}
|
|
43
|
+
onChange={setDate}
|
|
44
|
+
label="Start Date"
|
|
45
|
+
/>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
45
48
|
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
};
|
|
60
|
-
```
|
|
49
|
+
// Range picker with two months
|
|
50
|
+
function RangeExample() {
|
|
51
|
+
const [range, setRange] = useState<DateRange | undefined>();
|
|
52
|
+
return (
|
|
53
|
+
<DatePicker
|
|
54
|
+
mode="range"
|
|
55
|
+
placeholder="Select date range"
|
|
56
|
+
value={range}
|
|
57
|
+
onChange={setRange}
|
|
58
|
+
numberOfMonths={2}
|
|
59
|
+
/>
|
|
60
|
+
);
|
|
61
|
+
}
|
|
61
62
|
|
|
62
|
-
|
|
63
|
+
// Input variant with time (12h)
|
|
64
|
+
function InputTimeExample() {
|
|
65
|
+
const [date, setDate] = useState<Date | undefined>(new Date());
|
|
66
|
+
return (
|
|
67
|
+
<DatePickerInput
|
|
68
|
+
placeholder="Select date and time"
|
|
69
|
+
value={date}
|
|
70
|
+
onChange={setDate}
|
|
71
|
+
showTime
|
|
72
|
+
label="Event Date"
|
|
73
|
+
/>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
```
|
|
@@ -1,50 +1,51 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 79398b1e78d30f30fbc2dcd2bf7f5787 -->
|
|
2
|
+
Storybook stories for the `DeviceCard` UI component, covering all major display states, OS variants, action configurations, and status badges.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `Default` | `Story` | Basic device card with minimal info |
|
|
9
|
+
| `WindowsDevice` / `LinuxDevice` | `Story` | OS-specific rendering variants |
|
|
10
|
+
| `WithTags` | `Story` | Device card with tag pills |
|
|
11
|
+
| `WithCustomActions` | `Story` | Custom action buttons (Remote Access, Run Script) |
|
|
12
|
+
| `WithDetailsButton` | `Story` | Inline details button via `detailsButton.component` |
|
|
13
|
+
| `WithStatusBadge` / `WithWarningStatus` / `OfflineDevice` | `Story` | Status tag variants (`success`, `warning`, `grey`) |
|
|
14
|
+
| `Minimal` | `Story` | Bare-minimum fields, no more button |
|
|
15
|
+
| `FullyLoaded` | `Story` | All props populated including IP, version, location |
|
|
16
|
+
| `CardGrid` | `Story` | Grid layout decorator showing 4 cards side-by-side |
|
|
11
17
|
|
|
12
18
|
## Usage Example
|
|
13
19
|
|
|
14
20
|
```typescript
|
|
15
|
-
|
|
16
|
-
export const Default: Story = {
|
|
17
|
-
args: {
|
|
18
|
-
device: {
|
|
19
|
-
id: '1',
|
|
20
|
-
name: 'MacBook Pro',
|
|
21
|
-
operatingSystem: 'darwin',
|
|
22
|
-
organization: 'Engineering Team',
|
|
23
|
-
status: 'active',
|
|
24
|
-
lastSeen: new Date().toISOString(),
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
}
|
|
21
|
+
import { DeviceCard } from '../components/ui/device-card'
|
|
28
22
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
23
|
+
<DeviceCard
|
|
24
|
+
device={{
|
|
25
|
+
id: '1',
|
|
26
|
+
name: 'MacBook Pro',
|
|
27
|
+
operatingSystem: 'darwin',
|
|
28
|
+
organization: 'Engineering Team',
|
|
29
|
+
status: 'active',
|
|
30
|
+
lastSeen: new Date().toISOString(),
|
|
31
|
+
tags: ['Production', 'Critical'],
|
|
32
|
+
}}
|
|
33
|
+
actions={{
|
|
34
|
+
moreButton: { visible: true },
|
|
35
|
+
customActions: [
|
|
36
|
+
{ label: 'Remote Access', visible: true },
|
|
37
|
+
],
|
|
38
|
+
}}
|
|
39
|
+
statusTag={{ label: 'Online', variant: 'success' }}
|
|
40
|
+
onDeviceClick={(device) => console.log('Clicked:', device)}
|
|
41
|
+
/>
|
|
48
42
|
```
|
|
49
43
|
|
|
50
|
-
|
|
44
|
+
## Controlled Props (argTypes)
|
|
45
|
+
|
|
46
|
+
| Prop | Control | Description |
|
|
47
|
+
|------|---------|-------------|
|
|
48
|
+
| `device` | `object` | Device data including OS, org, status, tags |
|
|
49
|
+
| `actions` | `object` | `moreButton`, `customActions`, `detailsButton` config |
|
|
50
|
+
| `statusTag` | `object` | `label`, `variant`, `icon`, `onClose`, `className` |
|
|
51
|
+
| `onDeviceClick` | `action` | Fired when the card is clicked |
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- source-hash: 6fc9c281d1bf67add13a5a334f1d1bf3 -->
|
|
2
|
+
Storybook stories for the `DeviceCardCompact` component, providing interactive documentation and visual test cases for its compact device card variant used in table cells.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `Default` | `Story` | Both `deviceName` and `organization` populated |
|
|
9
|
+
| `NameOnly` | `Story` | Only `deviceName` provided |
|
|
10
|
+
| `OrganizationOnly` | `Story` | Only `organization` provided |
|
|
11
|
+
| `Empty` | `Story` | No props — renders empty fragment |
|
|
12
|
+
| `NullValues` | `Story` | Explicit `null` props — renders empty fragment |
|
|
13
|
+
| `DashValues` | `Story` | Dash placeholder (`"-"`) props — renders empty fragment |
|
|
14
|
+
| `StringNullValues` | `Story` | String `"null"` props — renders empty fragment |
|
|
15
|
+
| `LongName` | `Story` | Truncation behavior with long strings |
|
|
16
|
+
| `InTableContext` | `Story` | Multiple stacked cards simulating a table column |
|
|
17
|
+
|
|
18
|
+
## Usage Example
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { DeviceCardCompact } from '../components/ui/device-card-compact'
|
|
22
|
+
|
|
23
|
+
// Typical table cell usage
|
|
24
|
+
<DeviceCardCompact
|
|
25
|
+
deviceName="MacBook Pro"
|
|
26
|
+
organization="Engineering Team"
|
|
27
|
+
/>
|
|
28
|
+
|
|
29
|
+
// Name only — organization row is omitted
|
|
30
|
+
<DeviceCardCompact deviceName="Dell XPS 15" />
|
|
31
|
+
|
|
32
|
+
// Gracefully handles empty/null/dash/string-null values
|
|
33
|
+
<DeviceCardCompact deviceName={null} organization="-" />
|
|
34
|
+
// → renders nothing (empty fragment)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Notes
|
|
38
|
+
|
|
39
|
+
- The meta decorator wraps every story in a `300px` container to simulate a realistic table cell width.
|
|
40
|
+
- `InTableContext` overrides the decorator to render a full bordered list of four cards, demonstrating stacked row rendering.
|
|
41
|
+
- `argTypes` exposes `deviceName` and `organization` as text controls in the Storybook UI for live editing.
|