@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
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!-- source-hash: 10bc87374ddc44d31270589592965faf -->
|
|
2
|
+
Barrel export file that re-exports all transportation and travel-related icon components from their individual modules as a single unified entry point.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
All exports are React icon components in the **Transportation & Travel** category:
|
|
7
|
+
|
|
8
|
+
| Group | Icons |
|
|
9
|
+
|-------|-------|
|
|
10
|
+
| **Road Vehicles** | `CarIcon`, `CarSideIcon`, `CarSideElectricIcon`, `CarTaxiIcon`, `BikeIcon`, `MotorbikeIcon`, `BusIcon`, `TruckIcon`, `TruckFastIcon`, `TruckDelayIcon`, `TruckMedicalIcon`, `RvIcon` |
|
|
11
|
+
| **Rail & Water** | `TrainIcon`, `SpeedTrainIcon`, `TramIcon`, `TrainTunnelIcon`, `CableCarIcon`, `FerryIcon`, `SailboatIcon` |
|
|
12
|
+
| **Air & Space** | `PlaneIcon`, `PlaneAltIcon`, `PlaneOffIcon`, `PlaneVerticalIcon`, `PlaneVerticalOffIcon`, `HelicopterIcon`, `Rocket01Icon`, `Rocket02Icon` |
|
|
13
|
+
| **Parcels** | `Parcel01Icon`–`Parcel03Icon`, `ParcelsIcon`, plus variants (Check, Fast, Lock, Search, Star, Heart, Label, Delay) |
|
|
14
|
+
| **Infrastructure** | `RoadIcon`, `RoadBarrierIcon`, `TrafficConeIcon`, `TrafficSignalIcon`, `PumpGasIcon`, `PumpElectricIcon`, `Gauge01Icon`, `Gauge02Icon` |
|
|
15
|
+
| **Accessories** | `AnchorIcon`, `HelmetIcon`, `SteeringWheelIcon`, `CarBattery01Icon`, `CarBattery02Icon`, `BabyCarriageIcon`, `TrolleyIcon`, `HandParcelIcon` |
|
|
16
|
+
|
|
17
|
+
## Usage Example
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import {
|
|
21
|
+
CarSideElectricIcon,
|
|
22
|
+
TruckFastIcon,
|
|
23
|
+
Parcel01CheckIcon,
|
|
24
|
+
PlaneIcon,
|
|
25
|
+
TrafficSignalIcon
|
|
26
|
+
} from './transportation';
|
|
27
|
+
|
|
28
|
+
// Use in a React component
|
|
29
|
+
const ShipmentStatus = () => (
|
|
30
|
+
<div>
|
|
31
|
+
<TruckFastIcon size={24} />
|
|
32
|
+
<Parcel01CheckIcon size={24} color="green" />
|
|
33
|
+
<PlaneIcon size={24} />
|
|
34
|
+
</div>
|
|
35
|
+
);
|
|
36
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!-- source-hash: 73f62f8a88e9d1c95a1eb2397e3f5878 -->
|
|
2
|
+
A React SVG icon component that renders a sakura (cherry blossom) flower icon with configurable size, color, and className props.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `FlowerSakuraIconProps`
|
|
7
|
+
Interface extending `SVGProps<SVGSVGElement>` (excluding `width` and `height`) with:
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `className` | `string` | `""` | CSS class name |
|
|
12
|
+
| `size` | `number` | `24` | Width and height in pixels |
|
|
13
|
+
| `color` | `string` | `"currentColor"` | Fill color |
|
|
14
|
+
|
|
15
|
+
### `FlowerSakuraIcon`
|
|
16
|
+
Functional component rendering a 24×24 viewBox SVG sakura flower with two paths — an outer petal shape and an inner center detail.
|
|
17
|
+
|
|
18
|
+
## Usage Example
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { FlowerSakuraIcon } from "./flower-sakura-icon";
|
|
22
|
+
|
|
23
|
+
// Default usage
|
|
24
|
+
<FlowerSakuraIcon />
|
|
25
|
+
|
|
26
|
+
// Custom size and color
|
|
27
|
+
<FlowerSakuraIcon size={32} color="#FF69B4" />
|
|
28
|
+
|
|
29
|
+
// With Tailwind class
|
|
30
|
+
<FlowerSakuraIcon className="text-pink-400" size={20} />
|
|
31
|
+
|
|
32
|
+
// Inherits parent color via currentColor
|
|
33
|
+
<div style={{ color: "#e91e8c" }}>
|
|
34
|
+
<FlowerSakuraIcon />
|
|
35
|
+
</div>
|
|
36
|
+
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<!-- source-hash: 9d9dad636cdb6841a5aa6411927da6ee -->
|
|
2
|
+
Barrel export file for the **nature, weather, and environment** icon set, re-exporting all individual icon components from their respective modules.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Category | Exports |
|
|
7
|
+
|---|---|
|
|
8
|
+
| Weather | `CloudWeatherBoltIcon`, `CloudWeatherDrizzleIcon`, `CloudWeatherFogIcon`, `CloudWeatherRainIcon`, `CloudWeatherSnowIcon`, `CloudWeatherSunIcon`, `HurricaneIcon`, `TornadoIcon`, `WindIcon` |
|
|
9
|
+
| Temperature & Sky | `TemperatureIcon`, `TemperatureColdIcon`, `TemperatureHotIcon`, `HeatIcon`, `MoonIcon`, `MoonStarIcon`, `Sun01Icon`, `Sun02Icon`, `SunriseIcon`, `SunsetIcon`, `SnowflakeIcon` |
|
|
10
|
+
| Flora | `FlowerIcon`, `FlowerSakuraIcon`, `FlowerTulipIcon`, `FlowerPlantIcon`, `LeafIcon`, `LeavesIcon`, `TreeIcon`, `TreesIcon`, `SeedlingIcon`, `SeedlingPotIcon`, `HandSeedlingIcon` |
|
|
11
|
+
| Animals | `DogIcon`, `DogLeashIcon`, `PawIcon` |
|
|
12
|
+
| Natural Disasters | `ExplosionIcon`, `FireIcon`, `FloodIcon`, `DrowningIcon`, `HillAvalancheIcon`, `HillRockslideIcon` |
|
|
13
|
+
| Misc | `AquariumIcon`, `UfoIcon`, `RadiationIcon`, `StarsIcon`, `SparkleIcon`, `WaterDropletIcon`, `WaterWaveIcon` |
|
|
14
|
+
|
|
15
|
+
## Usage Example
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
import {
|
|
19
|
+
SunriseIcon,
|
|
20
|
+
TornadoIcon,
|
|
21
|
+
FlowerSakuraIcon,
|
|
22
|
+
TemperatureColdIcon,
|
|
23
|
+
} from './icons/nature';
|
|
24
|
+
|
|
25
|
+
// Use in a React component
|
|
26
|
+
const WeatherDisplay = () => (
|
|
27
|
+
<div>
|
|
28
|
+
<SunriseIcon />
|
|
29
|
+
<TemperatureColdIcon />
|
|
30
|
+
<TornadoIcon />
|
|
31
|
+
<FlowerSakuraIcon />
|
|
32
|
+
</div>
|
|
33
|
+
);
|
|
34
|
+
```
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- source-hash: f1c1fbdd04d056b4c98f44f6bacd4fb8 -->
|
|
2
|
+
Unified page layout components providing two layout variants for consistent page structure across the application.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Max Width | Purpose |
|
|
7
|
+
|--------|-----------|---------|
|
|
8
|
+
| `PageShell` | 1920px | List pages, dashboards, wide layouts |
|
|
9
|
+
| `ArticleDetailLayout` | 1280px | Articles, blog posts, release notes, case studies |
|
|
10
|
+
|
|
11
|
+
**`LayoutProps` interface:**
|
|
12
|
+
- `children` — page content (no additional layout wrappers needed)
|
|
13
|
+
- `schemas?` — optional JSON-LD `<script>` elements (breadcrumbs, article schema, etc.)
|
|
14
|
+
|
|
15
|
+
Both components render a `<main>` element with `bg-ods-bg`, `min-h-screen`, responsive horizontal padding (`px-6` / `md:px-20`), and vertical padding (`py-6` / `md:py-10`).
|
|
16
|
+
|
|
17
|
+
## Usage Example
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
// Wide layout for a list/dashboard page
|
|
21
|
+
import { PageShell } from '@/components/article-detail-layout';
|
|
22
|
+
|
|
23
|
+
export default function DevicesPage() {
|
|
24
|
+
return (
|
|
25
|
+
<PageShell>
|
|
26
|
+
<DeviceTable />
|
|
27
|
+
</PageShell>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Constrained layout for a readable article/detail page
|
|
32
|
+
import { ArticleDetailLayout } from '@/components/article-detail-layout';
|
|
33
|
+
|
|
34
|
+
export default function BlogPost({ schema }: { schema: React.ReactNode }) {
|
|
35
|
+
return (
|
|
36
|
+
<ArticleDetailLayout schemas={schema}>
|
|
37
|
+
<ArticleContent />
|
|
38
|
+
</ArticleDetailLayout>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
> Child components should render content only — no additional `<main>`, max-width, or padding wrappers required.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- source-hash: bbc5ab0313f6e7cb301fe2ba986ea93b -->
|
|
2
|
+
A reusable "Back" navigation button component that renders a left chevron icon alongside a customizable label, styled with ODS (OpenFrame Design System) tokens.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `BackButton` | `React.FC` | Main button component with chevron icon and label |
|
|
9
|
+
| `BackButtonProps` | `interface` | Extends `HTMLButtonElement` attributes, omitting `children` |
|
|
10
|
+
|
|
11
|
+
### Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Default | Description |
|
|
14
|
+
|------|------|---------|-------------|
|
|
15
|
+
| `label` | `string` | `'Back'` | Button text displayed next to the chevron |
|
|
16
|
+
| `onClick` | `MouseEventHandler` | — | Click handler for navigation logic |
|
|
17
|
+
| `className` | `string` | — | Additional CSS classes merged via `cn()` |
|
|
18
|
+
| `type` | `string` | `'button'` | HTML button type attribute |
|
|
19
|
+
|
|
20
|
+
## Usage Example
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
import { BackButton } from './components/back-button'
|
|
24
|
+
import { useRouter } from 'next/navigation'
|
|
25
|
+
|
|
26
|
+
export function PageHeader() {
|
|
27
|
+
const router = useRouter()
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<header>
|
|
31
|
+
<BackButton
|
|
32
|
+
label="Back to Dashboard"
|
|
33
|
+
onClick={() => router.back()}
|
|
34
|
+
/>
|
|
35
|
+
</header>
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
> **Note:** The `type` prop defaults to `'button'` (not `'submit'`) to prevent accidental form submissions when used inside `<form>` elements.
|
|
@@ -1,12 +1,32 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 32c9dcb06a56d3c5fa171224fc048981 -->
|
|
2
|
+
A deprecated layout component for list-based pages in OpenFrame, providing a standardized structure with a title header, full-width search bar with debouncing, optional mobile filter modal, and a main content area for tables or grids.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
### `ListPageLayoutProps`
|
|
7
|
+
|
|
8
|
+
| Prop | Type | Description |
|
|
9
|
+
|------|------|-------------|
|
|
10
|
+
| `title` | `string` | Page title displayed in the header |
|
|
11
|
+
| `searchPlaceholder` | `string` | Placeholder text for the search input |
|
|
12
|
+
| `searchValue` | `string` | Controlled search input value |
|
|
13
|
+
| `onSearch` | `(term: string) => void` | Callback fired after 500ms debounce |
|
|
14
|
+
| `headerActions` | `React.ReactNode` | Optional content rendered right-aligned in the header |
|
|
15
|
+
| `actions` | `PageActionButton[]` | Action buttons passed to the page container |
|
|
16
|
+
| `mobileFilterGroups` | `FilterGroup[]` | Filter groups shown in the mobile filter modal |
|
|
17
|
+
| `mobileSortConfig` | `SortConfig` | Sort columns available in the mobile filter modal |
|
|
18
|
+
| `stickyHeader` | `boolean` | Makes the search bar sticky on scroll |
|
|
19
|
+
| `error` | `string \| null` | Renders a `PageError` instead of the layout |
|
|
20
|
+
| `padding` | `'none' \| 'sm' \| 'md' \| 'lg'` | Inner padding size (default: `'sm'`) |
|
|
21
|
+
| `background` | `'default' \| 'card' \| 'transparent'` | Background style (default: `'default'`) |
|
|
22
|
+
|
|
23
|
+
### `ListPageLayout`
|
|
24
|
+
|
|
25
|
+
The main exported function component. Internally manages:
|
|
26
|
+
|
|
27
|
+
- **Local search state** synced with the controlled `searchValue` prop
|
|
28
|
+
- **Debounced search** — `onSearch` fires 500ms after the user stops typing
|
|
29
|
+
- **Mobile filter visibility** — a `Filter02Icon` button toggling a `FilterModal` overlay, rendered only when `mobileFilterGroups` or `mobileSortConfig` are provided
|
|
10
30
|
|
|
11
31
|
## Usage Example
|
|
12
32
|
|
|
@@ -15,38 +35,27 @@ import { ListPageLayout } from './list-page-layout'
|
|
|
15
35
|
import { Button } from '../ui'
|
|
16
36
|
|
|
17
37
|
function DevicesPage() {
|
|
18
|
-
const [
|
|
38
|
+
const [search, setSearch] = useState('')
|
|
19
39
|
const [filters, setFilters] = useState({})
|
|
20
40
|
|
|
21
41
|
return (
|
|
22
42
|
<ListPageLayout
|
|
23
|
-
title="
|
|
24
|
-
headerActions={
|
|
25
|
-
<div className="flex gap-2">
|
|
26
|
-
<Button variant="outline">Export</Button>
|
|
27
|
-
<Button>Add Device</Button>
|
|
28
|
-
</div>
|
|
29
|
-
}
|
|
43
|
+
title="Devices"
|
|
30
44
|
searchPlaceholder="Search devices..."
|
|
31
|
-
searchValue={
|
|
32
|
-
onSearch={
|
|
45
|
+
searchValue={search}
|
|
46
|
+
onSearch={setSearch}
|
|
47
|
+
headerActions={<Button>Refresh</Button>}
|
|
33
48
|
mobileFilterGroups={[
|
|
34
|
-
{
|
|
35
|
-
id: 'status',
|
|
36
|
-
label: 'Status',
|
|
37
|
-
options: [
|
|
38
|
-
{ id: 'online', label: 'Online' },
|
|
39
|
-
{ id: 'offline', label: 'Offline' }
|
|
40
|
-
]
|
|
41
|
-
}
|
|
49
|
+
{ id: 'status', label: 'Status', options: [{ value: 'online', label: 'Online' }] },
|
|
42
50
|
]}
|
|
43
51
|
onMobileFilterChange={setFilters}
|
|
44
52
|
currentMobileFilters={filters}
|
|
53
|
+
stickyHeader
|
|
45
54
|
>
|
|
46
|
-
<
|
|
55
|
+
<DevicesTable />
|
|
47
56
|
</ListPageLayout>
|
|
48
57
|
)
|
|
49
58
|
}
|
|
50
59
|
```
|
|
51
60
|
|
|
52
|
-
|
|
61
|
+
> **Deprecated** — Use `PageLayout` from `'../layout/page-layout'` instead.
|
|
@@ -1,56 +1,45 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 601f78e11aff8ba0205359b5d858638e -->
|
|
2
|
+
Unified page container component that supports both legacy layout patterns and a new advanced UI pattern with variants, titles, actions, and responsive headers.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
### Exported Types
|
|
7
|
+
- **`PageContainerProps`** — Union type supporting `LegacyPageContainerProps` and `AdvancedPageContainerProps`
|
|
8
|
+
|
|
9
|
+
### Main Export
|
|
10
|
+
- **`PageContainer`** — Auto-detects prop interface via `isAdvancedProps()` type guard and delegates to the appropriate renderer
|
|
11
|
+
|
|
12
|
+
### Internal Renderers
|
|
13
|
+
- **`renderLegacyPageContainer`** — Wraps content in a configurable semantic element (`section`, `div`, `main`, `article`) with optional full-width background
|
|
14
|
+
- **`renderAdvancedPageContainer`** — Renders variant-aware layout (`list` | `detail` | `form` | `content`) with header, back button, title, subtitle, and `PageActions`
|
|
10
15
|
|
|
11
16
|
## Usage Example
|
|
12
17
|
|
|
13
18
|
```typescript
|
|
14
|
-
// Legacy usage
|
|
15
|
-
<PageContainer
|
|
16
|
-
|
|
17
|
-
contentPadding="p-6"
|
|
18
|
-
maxWidth="max-w-6xl"
|
|
19
|
-
>
|
|
20
|
-
<h1>Your Content</h1>
|
|
19
|
+
// Legacy usage
|
|
20
|
+
<PageContainer backgroundClassName="bg-gray-100" contentPadding="px-6 py-4">
|
|
21
|
+
<h1>Content</h1>
|
|
21
22
|
</PageContainer>
|
|
22
23
|
|
|
23
|
-
// Advanced
|
|
24
|
+
// Advanced - list page
|
|
24
25
|
<PageContainer
|
|
25
|
-
variant="
|
|
26
|
-
title="
|
|
27
|
-
subtitle="
|
|
28
|
-
|
|
29
|
-
label: "Back to Users",
|
|
30
|
-
onClick: () => router.back()
|
|
31
|
-
}}
|
|
32
|
-
actions={[
|
|
33
|
-
{ label: "Edit", onClick: handleEdit, variant: "primary" },
|
|
34
|
-
{ label: "Delete", onClick: handleDelete, variant: "destructive" }
|
|
35
|
-
]}
|
|
36
|
-
padding="md"
|
|
37
|
-
background="card"
|
|
26
|
+
variant="list"
|
|
27
|
+
title="Devices"
|
|
28
|
+
subtitle="All managed devices"
|
|
29
|
+
actions={[{ label: 'Add Device', onClick: handleAdd }]}
|
|
38
30
|
>
|
|
39
|
-
<
|
|
31
|
+
<DeviceTable />
|
|
40
32
|
</PageContainer>
|
|
41
33
|
|
|
42
|
-
//
|
|
34
|
+
// Advanced - detail page with back button
|
|
43
35
|
<PageContainer
|
|
44
|
-
variant="
|
|
45
|
-
title="
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
{ label: "Cancel", onClick: handleCancel },
|
|
49
|
-
{ label: "Create", onClick: handleSubmit, variant: "primary" }
|
|
50
|
-
]}
|
|
36
|
+
variant="detail"
|
|
37
|
+
title="Device Details"
|
|
38
|
+
backButton={{ label: 'Back', onClick: () => router.back() }}
|
|
39
|
+
headerActions={<StatusBadge status="online" />}
|
|
51
40
|
>
|
|
52
|
-
<
|
|
41
|
+
<DeviceDetail />
|
|
53
42
|
</PageContainer>
|
|
54
43
|
```
|
|
55
44
|
|
|
56
|
-
|
|
45
|
+
> **Deprecated:** Prefer `PageLayout` from `'../layout/page-layout'` for new implementations.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!-- source-hash: 8a798bc4d9131ab38604adc9a1b7d675 -->
|
|
2
|
+
Reusable page layout wrapper that provides consistent structure with an optional header (`TitleBlock`), configurable actions, and standardized spacing for full-page views.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `PageLayout` (default export)
|
|
7
|
+
Main layout component accepting the following props:
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `children` | `ReactNode` | — | Page content |
|
|
12
|
+
| `title` | `string` | — | Page heading |
|
|
13
|
+
| `subtitle` | `string` | — | Secondary heading |
|
|
14
|
+
| `image` | `{ src, alt? }` | — | Header image |
|
|
15
|
+
| `backButton` | `{ label?, onClick }` | — | Back navigation button |
|
|
16
|
+
| `actions` | `PageActionButton[]` | — | Action buttons rendered in the header |
|
|
17
|
+
| `actionsVariant` | `'icon-buttons' \| 'primary-buttons' \| 'menu-primary'` | `'icon-buttons'` | Controls button style/layout |
|
|
18
|
+
| `menuActions` | `ActionsMenuGroup[]` | — | Grouped dropdown menu actions |
|
|
19
|
+
| `selector` | `ReactNode` | — | Desktop-only slot (e.g. `TabSelector`) |
|
|
20
|
+
| `headerVariant` | `'plain' \| 'card'` | — | `card` adds background, border, and mobile padding |
|
|
21
|
+
| `showHeader` | `boolean` | `true` | Conditionally renders the header block |
|
|
22
|
+
| `className` | `string` | — | Outer wrapper class override |
|
|
23
|
+
| `contentClassName` | `string` | — | Content area class override |
|
|
24
|
+
|
|
25
|
+
### Re-exports
|
|
26
|
+
- `TitleBlock` + `TitleBlockProps` — header sub-component
|
|
27
|
+
- `PageActionButton` — action button type
|
|
28
|
+
|
|
29
|
+
## Usage Example
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import { PageLayout } from './page-layout'
|
|
33
|
+
|
|
34
|
+
export default function SettingsPage() {
|
|
35
|
+
return (
|
|
36
|
+
<PageLayout
|
|
37
|
+
title="Settings"
|
|
38
|
+
subtitle="Manage your preferences"
|
|
39
|
+
backButton={{ label: 'Back', onClick: () => router.back() }}
|
|
40
|
+
actions={[{ label: 'Save', onClick: handleSave }]}
|
|
41
|
+
actionsVariant="primary-buttons"
|
|
42
|
+
headerVariant="card"
|
|
43
|
+
>
|
|
44
|
+
<SettingsForm />
|
|
45
|
+
</PageLayout>
|
|
46
|
+
)
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
> When `actionsVariant="primary-buttons"`, the content area automatically gains `pb-28` on mobile to prevent overlap with sticky action buttons.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- source-hash: ff0ecf9e6a81a5b5db96e020586aff9d -->
|
|
2
|
+
A client-side page header component that renders a title, optional subtitle, entity image, back button, and action controls in a responsive layout.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`TitleBlockProps`** — Interface defining all configurable props including title, subtitle, image, navigation, actions, and visual variant
|
|
7
|
+
- **`TitleBlock`** — Main exported component handling layout for page-level headings with responsive behavior (`plain` vs `card` variants)
|
|
8
|
+
- **`variant`** — Controls visual treatment: `plain` (default, transparent) collapses `card` style (bordered, padded) on `md+` breakpoints
|
|
9
|
+
|
|
10
|
+
## Usage Example
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
import { TitleBlock } from './title-block'
|
|
14
|
+
|
|
15
|
+
// Basic usage
|
|
16
|
+
<TitleBlock
|
|
17
|
+
title="Devices"
|
|
18
|
+
subtitle="Manage all enrolled devices"
|
|
19
|
+
backButton={{ label: 'Back', onClick: () => router.back() }}
|
|
20
|
+
actions={[
|
|
21
|
+
{ label: 'Add Device', icon: PlusIcon, onClick: handleAdd },
|
|
22
|
+
]}
|
|
23
|
+
actionsVariant="primary-buttons"
|
|
24
|
+
/>
|
|
25
|
+
|
|
26
|
+
// With entity image and card variant (e.g. mobile-first detail pages)
|
|
27
|
+
<TitleBlock
|
|
28
|
+
title="Acme Corp"
|
|
29
|
+
subtitle="Enterprise Client"
|
|
30
|
+
image={{ src: '/logos/acme.png', alt: 'Acme Corp' }}
|
|
31
|
+
variant="card"
|
|
32
|
+
actions={[{ label: 'Edit', icon: EditIcon, onClick: handleEdit }]}
|
|
33
|
+
menuActions={[{ label: 'More', items: [...] }]}
|
|
34
|
+
selector={<TabSelector tabs={tabs} />}
|
|
35
|
+
/>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Notes
|
|
39
|
+
|
|
40
|
+
- The `selector` slot (e.g. a `TabSelector`) is desktop-only and rendered alongside actions
|
|
41
|
+
- Back button is hidden on mobile (`hidden md:inline-flex`)
|
|
42
|
+
- Title truncates with `title` attribute tooltip when content overflows
|
|
@@ -1,45 +1,54 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: b4a4c7c8c54bac836e374bc9dd198d5b -->
|
|
2
|
+
Reusable skeleton loading components for card UI elements, providing animated placeholder states that match the structure of vendor, blog, category, and alternative card layouts.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|--------|-------------|
|
|
8
|
+
| `CardSkeleton` | Single card skeleton with variant-based layout rendering |
|
|
9
|
+
| `CardSkeletonGrid` | Responsive grid of `CardSkeleton` instances for list loading states |
|
|
10
|
+
| `CardSkeletonProps` | Interface defining variant, visibility toggles, and styling options |
|
|
11
|
+
|
|
12
|
+
**Internal sub-components (not exported):**
|
|
13
|
+
|
|
14
|
+
| Component | Mirrors |
|
|
15
|
+
|-----------|---------|
|
|
16
|
+
| `VendorCardContent` | Logo, title, category, description, stats, and tag |
|
|
17
|
+
| `BlogCardContent` | OG image, title chips, description, author, and date metadata |
|
|
18
|
+
| `CategoryCardContent` | Icon grid, title, description, and action button |
|
|
19
|
+
| `AlternativeCardContent` | Avatar, title, description, and optional action button |
|
|
12
20
|
|
|
13
21
|
## Usage Example
|
|
14
22
|
|
|
15
23
|
```typescript
|
|
16
|
-
import { CardSkeleton, CardSkeletonGrid } from
|
|
24
|
+
import { CardSkeleton, CardSkeletonGrid } from "./card-skeleton"
|
|
17
25
|
|
|
18
|
-
// Single
|
|
19
|
-
<CardSkeleton
|
|
20
|
-
variant="vendor"
|
|
21
|
-
showActions={true}
|
|
22
|
-
showMetadata={true}
|
|
23
|
-
/>
|
|
26
|
+
// Single skeleton while fetching one vendor
|
|
27
|
+
<CardSkeleton variant="vendor" showActions showMetadata />
|
|
24
28
|
|
|
25
|
-
//
|
|
26
|
-
<CardSkeletonGrid
|
|
27
|
-
count={6}
|
|
29
|
+
// Full loading grid for a blog listing page
|
|
30
|
+
<CardSkeletonGrid
|
|
28
31
|
variant="blog"
|
|
29
|
-
|
|
32
|
+
count={4}
|
|
33
|
+
showActions={false}
|
|
34
|
+
showMetadata
|
|
35
|
+
className="my-8"
|
|
30
36
|
/>
|
|
31
37
|
|
|
32
|
-
// Category
|
|
33
|
-
<
|
|
38
|
+
// Category grid without custom container styling
|
|
39
|
+
<CardSkeletonGrid
|
|
34
40
|
variant="category"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// Alternative vendor cards (no metadata)
|
|
39
|
-
<CardSkeleton
|
|
40
|
-
variant="alternative"
|
|
41
|
-
showActions={false}
|
|
41
|
+
count={8}
|
|
42
|
+
containerClassName="bg-neutral-900 border border-neutral-700"
|
|
42
43
|
/>
|
|
43
44
|
```
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
## Props Reference
|
|
47
|
+
|
|
48
|
+
| Prop | Type | Default | Description |
|
|
49
|
+
|------|------|---------|-------------|
|
|
50
|
+
| `variant` | `'vendor' \| 'blog' \| 'category' \| 'alternative'` | `'vendor'` | Card layout to replicate |
|
|
51
|
+
| `showActions` | `boolean` | `true` | Renders action button placeholder |
|
|
52
|
+
| `showMetadata` | `boolean` | `true` | Renders footer metadata placeholder |
|
|
53
|
+
| `containerClassName` | `string` | `bg-ods-card border border-ods-border` | Overrides card container background and border |
|
|
54
|
+
| `count` *(grid only)* | `number` | `6` | Number of skeleton cards to render |
|
|
@@ -1,43 +1,47 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 778a7f2774363f614672d36f1704ffb9 -->
|
|
2
|
+
Loading skeleton component that mimics the exact layout of a `DeviceCard` to prevent layout shifts during data fetching.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
6
|
+
### `DeviceCardSkeleton`
|
|
7
|
+
A single animated placeholder card matching the three-row `DeviceCard` structure:
|
|
8
|
+
- **Row 1:** Device icon + device name + more button
|
|
9
|
+
- **Row 2:** OS badge + organization icon + organization name
|
|
10
|
+
- **Row 3:** Status badge + last seen timestamp
|
|
11
|
+
|
|
12
|
+
| Prop | Type | Description |
|
|
13
|
+
|------|------|-------------|
|
|
14
|
+
| `className` | `string?` | Additional CSS classes |
|
|
15
|
+
|
|
16
|
+
### `DeviceCardSkeletonGrid`
|
|
17
|
+
Renders a responsive grid of `DeviceCardSkeleton` instances, matching the `DevicesGrid` responsive column layout.
|
|
18
|
+
|
|
19
|
+
| Prop | Type | Default | Description |
|
|
20
|
+
|------|------|---------|-------------|
|
|
21
|
+
| `count` | `number?` | `12` | Number of skeleton cards to render |
|
|
22
|
+
| `className` | `string?` | — | Additional CSS classes |
|
|
23
|
+
|
|
24
|
+
**Responsive columns:** 1 → 2 (md) → 4 (lg)
|
|
10
25
|
|
|
11
26
|
## Usage Example
|
|
12
27
|
|
|
13
28
|
```typescript
|
|
14
|
-
|
|
29
|
+
// Single skeleton card
|
|
30
|
+
import { DeviceCardSkeleton } from "./device-card-skeleton"
|
|
15
31
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return <DeviceCardSkeleton className="mb-4" />
|
|
32
|
+
function DeviceDetailLoader() {
|
|
33
|
+
return <DeviceCardSkeleton className="max-w-sm" />
|
|
19
34
|
}
|
|
20
35
|
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
return (
|
|
24
|
-
<div className="p-4">
|
|
25
|
-
<DeviceCardSkeletonGrid
|
|
26
|
-
count={8}
|
|
27
|
-
className="mt-6"
|
|
28
|
-
/>
|
|
29
|
-
</div>
|
|
30
|
-
)
|
|
31
|
-
}
|
|
36
|
+
// Full grid during page load
|
|
37
|
+
import { DeviceCardSkeletonGrid } from "./device-card-skeleton"
|
|
32
38
|
|
|
33
|
-
// Conditional rendering during data fetch
|
|
34
39
|
function DevicesPage({ isLoading, devices }) {
|
|
35
40
|
if (isLoading) {
|
|
36
|
-
return <DeviceCardSkeletonGrid count={
|
|
41
|
+
return <DeviceCardSkeletonGrid count={8} />
|
|
37
42
|
}
|
|
38
|
-
|
|
39
43
|
return <DevicesGrid devices={devices} />
|
|
40
44
|
}
|
|
41
45
|
```
|
|
42
46
|
|
|
43
|
-
|
|
47
|
+
> Both components include ARIA attributes (`role="status"` and `aria-label`) for screen reader accessibility during loading states.
|