@flamingo-stack/openframe-frontend-core 0.0.439 → 0.0.440
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-RVWC4P3H.js → chunk-2BTDPDME.js} +9 -9
- package/dist/chunk-2BTDPDME.js.map +1 -0
- package/dist/{chunk-G5FALXNO.js → chunk-63TSTDME.js} +21 -21
- package/dist/chunk-63TSTDME.js.map +1 -0
- package/dist/{chunk-4ACSUJ7Q.js → chunk-6CITW5BD.js} +10 -10
- package/dist/chunk-6CITW5BD.js.map +1 -0
- package/dist/{chunk-QXYOGJQJ.js → chunk-7KDR5P23.js} +2 -2
- package/dist/{chunk-PEIR7D25.js → chunk-7KNOHGMI.js} +2 -2
- package/dist/{chunk-ZMUFTGL7.cjs → chunk-7QP65IE4.cjs} +5 -5
- package/dist/{chunk-ZMUFTGL7.cjs.map → chunk-7QP65IE4.cjs.map} +1 -1
- package/dist/{chunk-WPVBTVI3.js → chunk-AGV26PUR.js} +6 -6
- package/dist/{chunk-WPVBTVI3.js.map → chunk-AGV26PUR.js.map} +1 -1
- package/dist/{chunk-HTVVXVJL.cjs → chunk-DUQQEQ7G.cjs} +1431 -1594
- package/dist/chunk-DUQQEQ7G.cjs.map +1 -0
- package/dist/{chunk-COMBYYQY.js → chunk-FPE3SQ5D.js} +13 -13
- package/dist/chunk-FPE3SQ5D.js.map +1 -0
- package/dist/{chunk-WAGTZVQN.js → chunk-IAZ5AN2E.js} +30 -30
- package/dist/chunk-IAZ5AN2E.js.map +1 -0
- package/dist/{chunk-RQQZF6G6.cjs → chunk-IPEIOR77.cjs} +130 -130
- package/dist/chunk-IPEIOR77.cjs.map +1 -0
- package/dist/{chunk-3WJQL4DN.cjs → chunk-IZ6A6K6N.cjs} +25 -25
- package/dist/chunk-IZ6A6K6N.cjs.map +1 -0
- package/dist/{chunk-EE5NH5SH.cjs → chunk-J5NO7PAG.cjs} +3 -3
- package/dist/{chunk-EE5NH5SH.cjs.map → chunk-J5NO7PAG.cjs.map} +1 -1
- package/dist/{chunk-IAN7GUIV.cjs → chunk-JNC4LVD6.cjs} +42 -42
- package/dist/chunk-JNC4LVD6.cjs.map +1 -0
- package/dist/{chunk-VWGF6IFR.cjs → chunk-JOH5D76X.cjs} +108 -108
- package/dist/chunk-JOH5D76X.cjs.map +1 -0
- package/dist/{chunk-7WM77CSW.js → chunk-JYI4R25Q.js} +5 -5
- package/dist/chunk-JYI4R25Q.js.map +1 -0
- package/dist/{chunk-M6QGB6DC.cjs → chunk-KUXGQ2FQ.cjs} +36 -36
- package/dist/chunk-KUXGQ2FQ.cjs.map +1 -0
- package/dist/{chunk-M3LD6DNE.cjs → chunk-LFWPWIAC.cjs} +16 -16
- package/dist/{chunk-M3LD6DNE.cjs.map → chunk-LFWPWIAC.cjs.map} +1 -1
- package/dist/{chunk-R46QEE3R.cjs → chunk-LUKRPHEW.cjs} +96 -96
- package/dist/chunk-LUKRPHEW.cjs.map +1 -0
- package/dist/{chunk-IMK6RUEC.cjs → chunk-PYR4LVAF.cjs} +10 -10
- package/dist/chunk-PYR4LVAF.cjs.map +1 -0
- package/dist/{chunk-2ELBNZJ3.js → chunk-QAG357PE.js} +7 -7
- package/dist/chunk-QAG357PE.js.map +1 -0
- package/dist/{chunk-N2TJ3HAM.cjs → chunk-QO6MCQYE.cjs} +9 -9
- package/dist/chunk-QO6MCQYE.cjs.map +1 -0
- package/dist/{chunk-EGRZHR7J.js → chunk-SM26C2L7.js} +9 -9
- package/dist/chunk-SM26C2L7.js.map +1 -0
- package/dist/{chunk-AUJXLVXA.cjs → chunk-TAQMYVO6.cjs} +42 -42
- package/dist/{chunk-AUJXLVXA.cjs.map → chunk-TAQMYVO6.cjs.map} +1 -1
- package/dist/{chunk-C3FH53AP.cjs → chunk-UFBUQO7Z.cjs} +19 -19
- package/dist/{chunk-C3FH53AP.cjs.map → chunk-UFBUQO7Z.cjs.map} +1 -1
- package/dist/{chunk-F7YVI54P.js → chunk-W3JZXLJ2.js} +10 -10
- package/dist/chunk-W3JZXLJ2.js.map +1 -0
- package/dist/{chunk-WZ6TCAYQ.cjs → chunk-XMCVUYKC.cjs} +14 -14
- package/dist/chunk-XMCVUYKC.cjs.map +1 -0
- package/dist/{chunk-P7PISHM5.js → chunk-Y3NFB6HR.js} +5 -5
- package/dist/chunk-Y3NFB6HR.js.map +1 -0
- package/dist/{chunk-PBTY7AH5.js → chunk-YZJUHEPZ.js} +95 -95
- package/dist/chunk-YZJUHEPZ.js.map +1 -0
- package/dist/{chunk-NQQ4NLUT.js → chunk-ZQYFDYWV.js} +4298 -4461
- package/dist/chunk-ZQYFDYWV.js.map +1 -0
- package/dist/components/case-studies/index.cjs +15 -15
- package/dist/components/case-studies/index.cjs.map +1 -1
- package/dist/components/case-studies/index.js +9 -9
- package/dist/components/case-studies/index.js.map +1 -1
- package/dist/components/chat/approval-request-message.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +4 -4
- package/dist/components/chat/index.js +3 -3
- package/dist/components/chat/tool-call-blocks.d.ts.map +1 -1
- package/dist/components/chat/utils/compact-card-classes.d.ts +3 -3
- package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +6 -6
- package/dist/components/faq/index.js +5 -5
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +262 -256
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +117 -111
- package/dist/components/index.js.map +1 -1
- package/dist/components/msp-display.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +4 -4
- package/dist/components/navigation/index.js +3 -3
- package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +8 -8
- package/dist/components/onboarding-guides/index.js +7 -7
- package/dist/components/pricing-display.d.ts +9 -9
- package/dist/components/related-content/index.cjs +6 -6
- package/dist/components/related-content/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/toast/index.cjs +5 -5
- package/dist/components/toast/index.cjs.map +1 -1
- package/dist/components/toast/index.js +5 -5
- package/dist/components/toast/index.js.map +1 -1
- package/dist/components/ui/bullet-list.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +73 -73
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +24 -24
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/index.cjs +4 -4
- package/dist/components/ui/index.js +3 -3
- package/dist/components/ui/markdown-editor.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.d.ts +3 -0
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/components/user-display.d.ts.map +1 -1
- package/dist/components/vendor-tag.d.ts.map +1 -1
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.js +3 -3
- package/dist/tailwind.config.cjs +38 -5
- package/dist/tailwind.config.cjs.map +1 -1
- package/dist/tailwind.config.js +38 -5
- package/dist/tailwind.config.js.map +1 -1
- package/package.json +1 -1
- package/src/ODS_TOKEN_RULES.md +5 -0
- package/src/components/.footer.md +2 -2
- package/src/components/announcement-bar.tsx +1 -1
- package/src/components/authors/author-detail-view.tsx +3 -3
- package/src/components/calendar.tsx +2 -2
- package/src/components/case-studies/share-experience-section.tsx +5 -5
- package/src/components/categories-cart.tsx +6 -6
- package/src/components/category-card.tsx +5 -5
- package/src/components/chart.tsx +3 -3
- package/src/components/chat/approval-request-message.tsx +2 -5
- package/src/components/chat/chat-attachment-bar.tsx +3 -3
- package/src/components/chat/chat-message-enhanced.tsx +1 -1
- package/src/components/chat/chat-message-list.tsx +1 -1
- package/src/components/chat/chat-message-row.tsx +3 -3
- package/src/components/chat/chat-quick-action.tsx +1 -1
- package/src/components/chat/chat-sidebar-skeleton.tsx +1 -1
- package/src/components/chat/chat-sidebar.tsx +6 -6
- package/src/components/chat/chat-typing-indicator.tsx +1 -1
- package/src/components/chat/context-compaction-display.tsx +1 -1
- package/src/components/chat/embeddable-chat.tsx +3 -3
- package/src/components/chat/entity-cards/admin-content-card.tsx +5 -5
- package/src/components/chat/entity-cards/blog-card.tsx +5 -8
- package/src/components/chat/entity-cards/case-study-card.tsx +5 -5
- package/src/components/chat/entity-cards/chat-ticket-item.tsx +1 -1
- package/src/components/chat/entity-cards/customer-interview-card.tsx +9 -9
- package/src/components/chat/entity-cards/data-room-doc-card.tsx +2 -2
- package/src/components/chat/entity-cards/dispatch.tsx +1 -1
- package/src/components/chat/entity-cards/entity-author-card.tsx +3 -3
- package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -4
- package/src/components/chat/entity-cards/generic-entity-card.tsx +3 -3
- package/src/components/chat/entity-cards/github-activity-card.tsx +11 -11
- package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +5 -5
- package/src/components/chat/entity-cards/investor-update-card.tsx +1 -1
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +12 -12
- package/src/components/chat/entity-cards/program-card.tsx +12 -12
- package/src/components/chat/entity-cards/roadmap-card.tsx +6 -6
- package/src/components/chat/entity-cards/roadmap-vote-button.tsx +1 -1
- package/src/components/chat/entity-cards/slack-message-card.tsx +4 -4
- package/src/components/chat/error-message-display.tsx +2 -2
- package/src/components/chat/mingo-info-card.tsx +2 -2
- package/src/components/chat/model-display.tsx +7 -7
- package/src/components/chat/quick-action-chip.tsx +1 -1
- package/src/components/chat/source-action-button.tsx +2 -2
- package/src/components/chat/tool-call-blocks.tsx +3 -5
- package/src/components/chat/utils/.chip-action-class.md +1 -1
- package/src/components/chat/utils/.chip-styles.md +2 -2
- package/src/components/chat/utils/chip-action-class.ts +1 -1
- package/src/components/chat/utils/chip-styles.ts +2 -2
- package/src/components/chat/utils/compact-card-classes.ts +3 -3
- package/src/components/command.tsx +3 -3
- package/src/components/comment-card.tsx +1 -1
- package/src/components/contact/contact-form.tsx +9 -9
- package/src/components/context-menu.tsx +5 -5
- package/src/components/date-time-picker.tsx +2 -2
- package/src/components/docs/doc-viewer.tsx +4 -4
- package/src/components/embeds/figma-embed.tsx +2 -2
- package/src/components/embeds/file-download-card.tsx +2 -2
- package/src/components/embeds/google-sheets-viewer.tsx +1 -1
- package/src/components/embeds/linkedin-embed-client.tsx +3 -3
- package/src/components/embeds/og-link-preview.tsx +14 -14
- package/src/components/embeds/pdf-viewer.tsx +1 -1
- package/src/components/embeds/reddit-embed-client.tsx +9 -9
- package/src/components/embeds/twitter-embed-client.tsx +9 -9
- package/src/components/empty-state.tsx +5 -5
- package/src/components/faq/faq-section.tsx +1 -1
- package/src/components/features/ai-enrich/AIEnrichSection.tsx +14 -14
- package/src/components/features/ai-enrich/AIRequiredBadge.tsx +5 -5
- package/src/components/features/ai-enrich/AIStatusIndicator.tsx +8 -8
- package/src/components/features/ai-enrich/AIWarningsSection.tsx +4 -4
- package/src/components/features/ai-enrich/ConfidenceBadge.tsx +4 -4
- package/src/components/features/array-entry-manager.tsx +7 -7
- package/src/components/features/auth-providers-list.tsx +1 -1
- package/src/components/features/board/ticket-card.tsx +1 -1
- package/src/components/features/changelog-manager.tsx +10 -10
- package/src/components/features/command-box.tsx +2 -2
- package/src/components/features/entity-summary-editor.tsx +3 -3
- package/src/components/features/figma-prototype-viewer.tsx +9 -9
- package/src/components/features/filters-dropdown.tsx +2 -2
- package/src/components/features/highlight-config-section.tsx +3 -3
- package/src/components/features/highlight-video-combined-section.tsx +2 -2
- package/src/components/features/highlight-video-preview.tsx +2 -2
- package/src/components/features/highlight-video-section.tsx +9 -9
- package/src/components/features/media-gallery-manager.tsx +14 -14
- package/src/components/features/og-editor-preview.tsx +4 -4
- package/src/components/features/os-type-badge-group.tsx +1 -1
- package/src/components/features/os-type-badge.tsx +2 -2
- package/src/components/features/platform-badge.tsx +4 -4
- package/src/components/features/policy-configuration-panel.tsx +6 -6
- package/src/components/features/provider-button.tsx +1 -1
- package/src/components/features/push-button-selector.tsx +21 -21
- package/src/components/features/release-media-manager.tsx +16 -16
- package/src/components/features/section-selector.tsx +8 -8
- package/src/components/features/select-button.tsx +4 -4
- package/src/components/features/seo-editor-preview.tsx +20 -20
- package/src/components/features/social-links-manager.tsx +3 -3
- package/src/components/features/start-with-openframe-button.tsx +3 -3
- package/src/components/features/status-filter-component.tsx +1 -1
- package/src/components/features/tags-selector.tsx +6 -6
- package/src/components/features/transcript-summary-editor.tsx +9 -9
- package/src/components/features/video-bites-strip.tsx +1 -1
- package/src/components/features/video-ratio-tabs.tsx +1 -1
- package/src/components/features/video-source-selector.tsx +7 -7
- package/src/components/features/video.tsx +1 -1
- package/src/components/features/waitlist-form.tsx +3 -3
- package/src/components/filter-chip.tsx +13 -13
- package/src/components/footer.tsx +3 -3
- package/src/components/form.tsx +2 -2
- package/src/components/hero-image-uploader.tsx +3 -3
- package/src/components/image-cropper.tsx +2 -2
- package/src/components/layout/page-container.tsx +6 -6
- package/src/components/layout/page-heading.tsx +1 -1
- package/src/components/loading/card-skeleton.tsx +2 -2
- package/src/components/loading/category-card-skeleton.tsx +1 -1
- package/src/components/loading/margin-report-skeleton.tsx +22 -22
- package/src/components/loading/openmsp-heartbeat.tsx +1 -1
- package/src/components/loading/page-layout-skeleton.tsx +83 -83
- package/src/components/loading/unified-skeleton.tsx +1 -1
- package/src/components/loading/users-grid-skeleton.tsx +2 -2
- package/src/components/logs-list.tsx +8 -8
- package/src/components/media-carousel.tsx +7 -7
- package/src/components/metric-value.tsx +2 -2
- package/src/components/msp-display.tsx +8 -2
- package/src/components/navigation/app-header.tsx +6 -6
- package/src/components/navigation/header-organization-filter.tsx +2 -2
- package/src/components/navigation/header.tsx +4 -4
- package/src/components/navigation/mobile-burger-menu.tsx +7 -7
- package/src/components/navigation/mobile-nav-panel.tsx +1 -1
- package/src/components/navigation/multi-level-navigation.tsx +7 -7
- package/src/components/navigation/navigation-sidebar.tsx +1 -1
- package/src/components/navigation/sticky-section-nav.tsx +2 -2
- package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +4 -4
- package/src/components/pagination.tsx +2 -2
- package/src/components/persistent-filter-controls.tsx +1 -1
- package/src/components/platform/.ShellTypeBadge.md +1 -1
- package/src/components/platform/CveLink.tsx +1 -1
- package/src/components/platform/ScriptArguments.tsx +2 -2
- package/src/components/platform/ScriptInfoSection.tsx +5 -5
- package/src/components/platform/ShellTypeBadge.tsx +6 -6
- package/src/components/platform/SoftwareInfo.tsx +2 -2
- package/src/components/pricing-display.tsx +9 -9
- package/src/components/profile/ProfileLoadingSkeleton.tsx +6 -6
- package/src/components/related-content/related-content-section.tsx +3 -3
- package/src/components/results-count.tsx +1 -1
- package/src/components/shared/delivery/delivery-row.tsx +1 -1
- package/src/components/shared/delivery/delivery-table.tsx +1 -1
- package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
- package/src/components/shared/doc-search/doc-search-result-row.tsx +2 -2
- package/src/components/shared/legal-document/legal-document-page.tsx +5 -5
- package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +3 -3
- package/src/components/shared/product-release/product-release-card.tsx +14 -14
- package/src/components/shared/product-release/release-detail-page.tsx +16 -16
- package/src/components/shared/roadmap/roadmap-grid.tsx +2 -2
- package/src/components/smooth-accordion.tsx +1 -1
- package/src/components/social-icon-row.tsx +1 -1
- package/src/components/sonner.tsx +5 -5
- package/src/components/steps.tsx +3 -3
- package/src/components/tickets/help-center-create-form.tsx +1 -1
- package/src/components/tickets/help-center-list.tsx +1 -1
- package/src/components/tickets/ticket-center.tsx +2 -2
- package/src/components/tickets/ticket-detail-drawer.tsx +5 -5
- package/src/components/tickets/ticket-open-form.tsx +6 -6
- package/src/components/ui/.title-content-block.md +1 -1
- package/src/components/ui/accordion.tsx +2 -2
- package/src/components/ui/actions-menu.tsx +1 -1
- package/src/components/ui/alert-dialog.tsx +3 -3
- package/src/components/ui/alert.tsx +2 -2
- package/src/components/ui/allowed-domains-input.tsx +3 -3
- package/src/components/ui/autocomplete.tsx +3 -3
- package/src/components/ui/badge.tsx +2 -2
- package/src/components/ui/brand-association-card.tsx +2 -2
- package/src/components/ui/breadcrumb.tsx +3 -3
- package/src/components/ui/bullet-list.tsx +2 -2
- package/src/components/ui/button/button.tsx +1 -1
- package/src/components/ui/card.tsx +4 -4
- package/src/components/ui/checkbox-with-description.tsx +1 -1
- package/src/components/ui/chevron-button.tsx +1 -1
- package/src/components/ui/content-loader.tsx +16 -16
- package/src/components/ui/cursor-pagination.tsx +1 -1
- package/src/components/ui/date-picker.tsx +2 -2
- package/src/components/ui/device-card-compact.tsx +2 -2
- package/src/components/ui/device-card.tsx +3 -3
- package/src/components/ui/dialog.tsx +3 -3
- package/src/components/ui/drawer.tsx +4 -4
- package/src/components/ui/dropdown-menu.tsx +6 -6
- package/src/components/ui/error-state.tsx +9 -9
- package/src/components/ui/fade-preview.tsx +1 -1
- package/src/components/ui/field-wrapper.tsx +1 -1
- package/src/components/ui/file-manager/file-manager-breadcrumb.tsx +2 -2
- package/src/components/ui/file-manager/file-manager-empty.tsx +3 -3
- package/src/components/ui/file-manager/file-manager-skeleton.tsx +4 -4
- package/src/components/ui/file-manager/file-manager-table-row.tsx +7 -7
- package/src/components/ui/file-manager/file-manager-table.tsx +8 -8
- package/src/components/ui/file-upload.tsx +9 -9
- package/src/components/ui/filter-pill-row.tsx +1 -1
- package/src/components/ui/floating-tooltip.tsx +1 -1
- package/src/components/ui/highlight-card.tsx +1 -1
- package/src/components/ui/hover-dropdown.tsx +1 -1
- package/src/components/ui/image-gallery-modal.tsx +1 -1
- package/src/components/ui/info-row.tsx +1 -1
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/label.tsx +5 -5
- package/src/components/ui/markdown-editor.tsx +4 -5
- package/src/components/ui/menubar.tsx +7 -7
- package/src/components/ui/modal-v2.tsx +1 -1
- package/src/components/ui/modal.tsx +1 -1
- package/src/components/ui/more-actions-menu.tsx +1 -1
- package/src/components/ui/navigation-menu.tsx +1 -1
- package/src/components/ui/organization-card.tsx +8 -8
- package/src/components/ui/page-loader.tsx +6 -6
- package/src/components/ui/phone-input.tsx +1 -1
- package/src/components/ui/progress-bar.tsx +5 -5
- package/src/components/ui/query-report-table/.query-report-table-header.md +1 -1
- package/src/components/ui/query-report-table/query-report-table-header.tsx +1 -1
- package/src/components/ui/query-report-table/query-report-table-row.tsx +2 -2
- package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
- package/src/components/ui/release-changelog-section.tsx +2 -2
- package/src/components/ui/rich-markdown-renderer.tsx +6 -6
- package/src/components/ui/search-input.tsx +7 -7
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/service-card.tsx +4 -4
- package/src/components/ui/sheet.tsx +3 -3
- package/src/components/ui/simple-markdown-renderer.tsx +4 -4
- package/src/components/ui/square-avatar.tsx +9 -5
- package/src/components/ui/status-badge.tsx +11 -11
- package/src/components/ui/status-indicator.tsx +6 -6
- package/src/components/ui/tab-content.tsx +1 -1
- package/src/components/ui/tab-navigation.tsx +2 -2
- package/src/components/ui/table/table-column-filter-dropdown.tsx +1 -1
- package/src/components/ui/table/table-description-cell.tsx +1 -1
- package/src/components/ui/table/table-timestamp-cell.tsx +1 -1
- package/src/components/ui/table/table.tsx +2 -2
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/tag-search-input.tsx +1 -1
- package/src/components/ui/tag.tsx +23 -23
- package/src/components/ui/tags-input.tsx +2 -2
- package/src/components/ui/ticket-status-tag.tsx +1 -1
- package/src/components/ui/toaster.tsx +8 -8
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/components/user-display.tsx +12 -6
- package/src/components/user-summary-stub.tsx +4 -4
- package/src/components/vendor-display-button.tsx +2 -2
- package/src/components/vendor-icon.tsx +1 -1
- package/src/components/vendor-tag.tsx +9 -10
- package/src/components/yes-no-display.tsx +3 -3
- package/src/styles/ods-colors.css +2 -0
- package/tailwind.config.ts +49 -4
- package/dist/chunk-2ELBNZJ3.js.map +0 -1
- package/dist/chunk-3WJQL4DN.cjs.map +0 -1
- package/dist/chunk-4ACSUJ7Q.js.map +0 -1
- package/dist/chunk-7WM77CSW.js.map +0 -1
- package/dist/chunk-COMBYYQY.js.map +0 -1
- package/dist/chunk-EGRZHR7J.js.map +0 -1
- package/dist/chunk-F7YVI54P.js.map +0 -1
- package/dist/chunk-G5FALXNO.js.map +0 -1
- package/dist/chunk-HTVVXVJL.cjs.map +0 -1
- package/dist/chunk-IAN7GUIV.cjs.map +0 -1
- package/dist/chunk-IMK6RUEC.cjs.map +0 -1
- package/dist/chunk-M6QGB6DC.cjs.map +0 -1
- package/dist/chunk-N2TJ3HAM.cjs.map +0 -1
- package/dist/chunk-NQQ4NLUT.js.map +0 -1
- package/dist/chunk-P7PISHM5.js.map +0 -1
- package/dist/chunk-PBTY7AH5.js.map +0 -1
- package/dist/chunk-R46QEE3R.cjs.map +0 -1
- package/dist/chunk-RQQZF6G6.cjs.map +0 -1
- package/dist/chunk-RVWC4P3H.js.map +0 -1
- package/dist/chunk-VWGF6IFR.cjs.map +0 -1
- package/dist/chunk-WAGTZVQN.js.map +0 -1
- package/dist/chunk-WZ6TCAYQ.cjs.map +0 -1
- package/dist/components/accordion.d.ts +0 -8
- package/dist/components/accordion.d.ts.map +0 -1
- package/dist/components/alert-dialog.d.ts +0 -21
- package/dist/components/alert-dialog.d.ts.map +0 -1
- package/dist/components/alert.d.ts +0 -9
- package/dist/components/alert.d.ts.map +0 -1
- package/dist/components/badge.d.ts +0 -10
- package/dist/components/badge.d.ts.map +0 -1
- package/dist/components/breadcrumb.d.ts +0 -20
- package/dist/components/breadcrumb.d.ts.map +0 -1
- package/dist/components/chevron-button.d.ts +0 -14
- package/dist/components/chevron-button.d.ts.map +0 -1
- package/dist/components/dialog.d.ts +0 -29
- package/dist/components/dialog.d.ts.map +0 -1
- package/dist/components/dropdown-menu.d.ts +0 -28
- package/dist/components/dropdown-menu.d.ts.map +0 -1
- package/dist/components/input.d.ts +0 -8
- package/dist/components/input.d.ts.map +0 -1
- package/dist/components/label.d.ts +0 -6
- package/dist/components/label.d.ts.map +0 -1
- package/dist/components/menubar.d.ts +0 -34
- package/dist/components/menubar.d.ts.map +0 -1
- package/dist/components/navigation-menu.d.ts +0 -13
- package/dist/components/navigation-menu.d.ts.map +0 -1
- package/dist/components/select.d.ts +0 -14
- package/dist/components/select.d.ts.map +0 -1
- package/dist/components/sidebar.d.ts +0 -67
- package/dist/components/sidebar.d.ts.map +0 -1
- package/dist/components/square-avatar.d.ts +0 -21
- package/dist/components/square-avatar.d.ts.map +0 -1
- package/dist/components/table.d.ts +0 -11
- package/dist/components/table.d.ts.map +0 -1
- package/dist/components/tabs.d.ts +0 -18
- package/dist/components/tabs.d.ts.map +0 -1
- package/dist/components/toggle.d.ts +0 -13
- package/dist/components/toggle.d.ts.map +0 -1
- package/src/components/.accordion.md +0 -42
- package/src/components/.alert-dialog.md +0 -58
- package/src/components/.alert.md +0 -43
- package/src/components/.badge.md +0 -40
- package/src/components/.breadcrumb.md +0 -54
- package/src/components/.chevron-button.md +0 -46
- package/src/components/.dialog.md +0 -60
- package/src/components/.dropdown-menu.md +0 -51
- package/src/components/.input.md +0 -40
- package/src/components/.label.md +0 -41
- package/src/components/.menubar.md +0 -49
- package/src/components/.navigation-menu.md +0 -44
- package/src/components/.select.md +0 -54
- package/src/components/.sidebar.md +0 -58
- package/src/components/.square-avatar.md +0 -42
- package/src/components/.table.md +0 -51
- package/src/components/.tabs.md +0 -38
- package/src/components/.toggle.md +0 -49
- package/src/components/accordion.tsx +0 -56
- package/src/components/alert-dialog.tsx +0 -141
- package/src/components/alert.tsx +0 -59
- package/src/components/badge.tsx +0 -30
- package/src/components/breadcrumb.tsx +0 -115
- package/src/components/chevron-button.tsx +0 -68
- package/src/components/dialog.tsx +0 -150
- package/src/components/dropdown-menu.tsx +0 -200
- package/src/components/input.tsx +0 -39
- package/src/components/label.tsx +0 -19
- package/src/components/menubar.tsx +0 -236
- package/src/components/navigation-menu.tsx +0 -128
- package/src/components/select.tsx +0 -160
- package/src/components/sidebar.tsx +0 -764
- package/src/components/square-avatar.tsx +0 -61
- package/src/components/table.tsx +0 -72
- package/src/components/tabs.tsx +0 -65
- package/src/components/toggle.tsx +0 -45
- /package/dist/{chunk-QXYOGJQJ.js.map → chunk-7KDR5P23.js.map} +0 -0
- /package/dist/{chunk-PEIR7D25.js.map → chunk-7KNOHGMI.js.map} +0 -0
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: f32246d114b706570b821cefac3455d9 -->
|
|
2
|
-
A custom client-side Dialog component system built without external libraries, providing a controlled modal overlay with backdrop blur, centered content panel, and composable sub-components.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
| Component | Description |
|
|
7
|
-
|-----------|-------------|
|
|
8
|
-
| `Dialog` | Root container; renders a full-screen backdrop when `open` is `true`, closes on overlay click |
|
|
9
|
-
| `DialogTrigger` | Button wrapper to programmatically open the dialog |
|
|
10
|
-
| `DialogPortal` | Passthrough wrapper for portaling children (inline, no actual portal) |
|
|
11
|
-
| `DialogOverlay` | Standalone backdrop overlay with blur effect |
|
|
12
|
-
| `DialogClose` | Generic close button element |
|
|
13
|
-
| `DialogContent` | Centered modal panel (`z-[10000]`) with built-in close (`X`) icon button and click-stop propagation |
|
|
14
|
-
| `DialogHeader` | Flex column layout for title/description grouping |
|
|
15
|
-
| `DialogFooter` | Responsive footer with reversed column on mobile, row on desktop |
|
|
16
|
-
| `DialogTitle` | Styled `<h2>` for the modal heading |
|
|
17
|
-
| `DialogDescription` | Styled `<p>` for supporting modal text |
|
|
18
|
-
|
|
19
|
-
## Usage Example
|
|
20
|
-
|
|
21
|
-
```typescript
|
|
22
|
-
import {
|
|
23
|
-
Dialog,
|
|
24
|
-
DialogContent,
|
|
25
|
-
DialogHeader,
|
|
26
|
-
DialogTitle,
|
|
27
|
-
DialogDescription,
|
|
28
|
-
DialogFooter,
|
|
29
|
-
DialogTrigger,
|
|
30
|
-
} from "./dialog"
|
|
31
|
-
|
|
32
|
-
export function ConfirmModal() {
|
|
33
|
-
const [open, setOpen] = React.useState(false)
|
|
34
|
-
|
|
35
|
-
return (
|
|
36
|
-
<>
|
|
37
|
-
<DialogTrigger onClick={() => setOpen(true)}>
|
|
38
|
-
Open Modal
|
|
39
|
-
</DialogTrigger>
|
|
40
|
-
|
|
41
|
-
<Dialog open={open} onOpenChange={setOpen}>
|
|
42
|
-
<DialogContent onCloseClick={() => setOpen(false)}>
|
|
43
|
-
<DialogHeader>
|
|
44
|
-
<DialogTitle>Confirm Action</DialogTitle>
|
|
45
|
-
<DialogDescription>
|
|
46
|
-
Are you sure you want to proceed?
|
|
47
|
-
</DialogDescription>
|
|
48
|
-
</DialogHeader>
|
|
49
|
-
<DialogFooter>
|
|
50
|
-
<button onClick={() => setOpen(false)}>Cancel</button>
|
|
51
|
-
<button onClick={() => setOpen(false)}>Confirm</button>
|
|
52
|
-
</DialogFooter>
|
|
53
|
-
</DialogContent>
|
|
54
|
-
</Dialog>
|
|
55
|
-
</>
|
|
56
|
-
)
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
> **Note:** `DialogContent` uses `onCloseClick` (not the standard `onClose`) for the built-in `X` button handler. Backdrop clicks are handled by the root `Dialog` via `onOpenChange`.
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: bce1c12cc20621daf9a85c036a451097 -->
|
|
2
|
-
A comprehensive dropdown menu component library built on top of Radix UI primitives with custom styling using the OpenFrame design system (ODS). Provides a complete set of accessible dropdown menu components including items, checkboxes, radio groups, submenus, and separators.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
- **DropdownMenu** - Root container component
|
|
7
|
-
- **DropdownMenuTrigger** - Button that opens the menu
|
|
8
|
-
- **DropdownMenuContent** - The dropdown panel with animation and positioning
|
|
9
|
-
- **DropdownMenuItem** - Individual menu items with hover states
|
|
10
|
-
- **DropdownMenuCheckboxItem** - Checkbox menu items with check indicators
|
|
11
|
-
- **DropdownMenuRadioItem** - Radio button menu items for single selection
|
|
12
|
-
- **DropdownMenuLabel** - Section headers within the menu
|
|
13
|
-
- **DropdownMenuSeparator** - Visual dividers between menu sections
|
|
14
|
-
- **DropdownMenuShortcut** - Keyboard shortcut display component
|
|
15
|
-
- **DropdownMenuSub/SubContent/SubTrigger** - Nested submenu components
|
|
16
|
-
- **DropdownMenuGroup/RadioGroup** - Logical grouping containers
|
|
17
|
-
|
|
18
|
-
## Usage Example
|
|
19
|
-
|
|
20
|
-
```typescript
|
|
21
|
-
import {
|
|
22
|
-
DropdownMenu,
|
|
23
|
-
DropdownMenuContent,
|
|
24
|
-
DropdownMenuItem,
|
|
25
|
-
DropdownMenuLabel,
|
|
26
|
-
DropdownMenuSeparator,
|
|
27
|
-
DropdownMenuTrigger,
|
|
28
|
-
DropdownMenuCheckboxItem,
|
|
29
|
-
DropdownMenuShortcut,
|
|
30
|
-
} from "./dropdown-menu"
|
|
31
|
-
|
|
32
|
-
function UserMenu() {
|
|
33
|
-
return (
|
|
34
|
-
<DropdownMenu>
|
|
35
|
-
<DropdownMenuTrigger>Open Menu</DropdownMenuTrigger>
|
|
36
|
-
<DropdownMenuContent>
|
|
37
|
-
<DropdownMenuLabel>My Account</DropdownMenuLabel>
|
|
38
|
-
<DropdownMenuSeparator />
|
|
39
|
-
<DropdownMenuItem>
|
|
40
|
-
Profile
|
|
41
|
-
<DropdownMenuShortcut>⌘P</DropdownMenuShortcut>
|
|
42
|
-
</DropdownMenuItem>
|
|
43
|
-
<DropdownMenuCheckboxItem checked={true}>
|
|
44
|
-
Notifications
|
|
45
|
-
</DropdownMenuCheckboxItem>
|
|
46
|
-
<DropdownMenuItem>Logout</DropdownMenuItem>
|
|
47
|
-
</DropdownMenuContent>
|
|
48
|
-
</DropdownMenu>
|
|
49
|
-
)
|
|
50
|
-
}
|
|
51
|
-
```
|
package/src/components/.input.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: 5d248f58ad416e0486c3eb74baeb29fc -->
|
|
2
|
-
A styled, accessible HTML input component built with `React.forwardRef`, supporting error states and full HTML input attribute passthrough.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
- **`Input`** — Forwarded-ref input component with ODS (OpenFrame Design System) theming, focus/disabled states, hover animations, and optional error styling
|
|
7
|
-
- **`InputProps`** — Extended interface adding an `invalid` boolean prop on top of standard `React.InputHTMLAttributes<HTMLInputElement>`
|
|
8
|
-
|
|
9
|
-
## Usage Example
|
|
10
|
-
|
|
11
|
-
```typescript
|
|
12
|
-
import { Input } from "./input"
|
|
13
|
-
|
|
14
|
-
// Basic usage
|
|
15
|
-
<Input placeholder="Enter your email" type="email" />
|
|
16
|
-
|
|
17
|
-
// With error state
|
|
18
|
-
<Input
|
|
19
|
-
type="text"
|
|
20
|
-
invalid={true}
|
|
21
|
-
placeholder="Invalid field"
|
|
22
|
-
/>
|
|
23
|
-
|
|
24
|
-
// With ref forwarding
|
|
25
|
-
const ref = React.useRef<HTMLInputElement>(null)
|
|
26
|
-
<Input ref={ref} type="text" />
|
|
27
|
-
|
|
28
|
-
// Disabled state
|
|
29
|
-
<Input disabled placeholder="Not editable" />
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Styling Highlights
|
|
33
|
-
|
|
34
|
-
| State | Applied Classes |
|
|
35
|
-
|-------|----------------|
|
|
36
|
-
| Default | `bg-ods-card border-ods-border text-ods-text-primary` |
|
|
37
|
-
| Hover | `hover:border-ods-accent/30` |
|
|
38
|
-
| Focus | `focus:border-ods-accent focus-visible:ring-ods-accent/20` |
|
|
39
|
-
| Disabled | `disabled:cursor-not-allowed disabled:bg-ods-bg` |
|
|
40
|
-
| Invalid | `border-red-500 focus-visible:ring-red-500` |
|
package/src/components/.label.md
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: 23bab55c76644996a403e0958181e956 -->
|
|
2
|
-
A React component that provides a styled form label built on top of Radix UI's Label primitive with consistent typography and styling.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
- **Label** - A forwardRef component that wraps `@radix-ui/react-label`
|
|
7
|
-
- **labelVariants** - CVA variant configuration defining the label's visual styling
|
|
8
|
-
- Accessibility features inherited from Radix UI Label primitive
|
|
9
|
-
|
|
10
|
-
## Usage Example
|
|
11
|
-
|
|
12
|
-
```typescript
|
|
13
|
-
import { Label } from "./components/ui/label"
|
|
14
|
-
|
|
15
|
-
function FormField() {
|
|
16
|
-
return (
|
|
17
|
-
<div>
|
|
18
|
-
<Label htmlFor="email">Email Address</Label>
|
|
19
|
-
<input
|
|
20
|
-
id="email"
|
|
21
|
-
type="email"
|
|
22
|
-
placeholder="Enter your email"
|
|
23
|
-
/>
|
|
24
|
-
</div>
|
|
25
|
-
)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// With custom styling
|
|
29
|
-
function CustomLabel() {
|
|
30
|
-
return (
|
|
31
|
-
<Label
|
|
32
|
-
htmlFor="username"
|
|
33
|
-
className="text-blue-600"
|
|
34
|
-
>
|
|
35
|
-
Username
|
|
36
|
-
</Label>
|
|
37
|
-
)
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
The component uses DM Sans font family with semibold weight, uppercase text transformation, and responsive text sizing. It automatically applies proper semantic labeling for form accessibility when used with the `htmlFor` attribute.
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: 1d6d763391c6c349742d108be28d7163 -->
|
|
2
|
-
A comprehensive menubar component library built on Radix UI primitives with custom styling and enhanced functionality. Provides a complete set of accessible menubar components including triggers, items, separators, and submenus with built-in keyboard navigation and ARIA support.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
- **Menubar** - Root container component with horizontal layout and border styling
|
|
7
|
-
- **MenubarTrigger** - Clickable trigger buttons that open menu content
|
|
8
|
-
- **MenubarContent/MenubarSubContent** - Dropdown containers with portal rendering and animations
|
|
9
|
-
- **MenubarItem** - Basic menu items with hover states and optional inset styling
|
|
10
|
-
- **MenubarCheckboxItem** - Checkable items with check mark indicators
|
|
11
|
-
- **MenubarRadioItem** - Radio button items with circle indicators for single selection
|
|
12
|
-
- **MenubarLabel** - Non-interactive labels for grouping menu sections
|
|
13
|
-
- **MenubarSeparator** - Visual dividers between menu sections
|
|
14
|
-
- **MenubarShortcut** - Keyboard shortcut display component
|
|
15
|
-
- **MenubarSubTrigger** - Items that trigger nested submenus with chevron icons
|
|
16
|
-
|
|
17
|
-
## Usage Example
|
|
18
|
-
|
|
19
|
-
```typescript
|
|
20
|
-
import {
|
|
21
|
-
Menubar,
|
|
22
|
-
MenubarContent,
|
|
23
|
-
MenubarItem,
|
|
24
|
-
MenubarMenu,
|
|
25
|
-
MenubarSeparator,
|
|
26
|
-
MenubarShortcut,
|
|
27
|
-
MenubarTrigger,
|
|
28
|
-
} from "./menubar"
|
|
29
|
-
|
|
30
|
-
function AppMenubar() {
|
|
31
|
-
return (
|
|
32
|
-
<Menubar>
|
|
33
|
-
<MenubarMenu>
|
|
34
|
-
<MenubarTrigger>File</MenubarTrigger>
|
|
35
|
-
<MenubarContent>
|
|
36
|
-
<MenubarItem>
|
|
37
|
-
New File <MenubarShortcut>⌘N</MenubarShortcut>
|
|
38
|
-
</MenubarItem>
|
|
39
|
-
<MenubarItem>
|
|
40
|
-
Open <MenubarShortcut>⌘O</MenubarShortcut>
|
|
41
|
-
</MenubarItem>
|
|
42
|
-
<MenubarSeparator />
|
|
43
|
-
<MenubarItem>Exit</MenubarItem>
|
|
44
|
-
</MenubarContent>
|
|
45
|
-
</MenubarMenu>
|
|
46
|
-
</Menubar>
|
|
47
|
-
)
|
|
48
|
-
}
|
|
49
|
-
```
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: 36c8899a20576854ae461e8c611427cc -->
|
|
2
|
-
A React navigation menu component built on Radix UI primitives with styled variants and animations. Provides a complete set of components for building accessible dropdown navigation menus with smooth transitions and hover states.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
- **NavigationMenu** - Root container component with automatic viewport management
|
|
7
|
-
- **NavigationMenuList** - Flex container for menu items with centered layout
|
|
8
|
-
- **NavigationMenuItem** - Direct export of Radix primitive item component
|
|
9
|
-
- **NavigationMenuTrigger** - Clickable trigger with chevron icon and rotation animation
|
|
10
|
-
- **NavigationMenuContent** - Dropdown content panel with slide-in/fade animations
|
|
11
|
-
- **NavigationMenuLink** - Direct export of Radix primitive link component
|
|
12
|
-
- **NavigationMenuViewport** - Animated viewport container for dropdown content
|
|
13
|
-
- **NavigationMenuIndicator** - Visual indicator showing active menu state
|
|
14
|
-
- **navigationMenuTriggerStyle** - CVA style variant for consistent trigger styling
|
|
15
|
-
|
|
16
|
-
## Usage Example
|
|
17
|
-
|
|
18
|
-
```typescript
|
|
19
|
-
import {
|
|
20
|
-
NavigationMenu,
|
|
21
|
-
NavigationMenuContent,
|
|
22
|
-
NavigationMenuItem,
|
|
23
|
-
NavigationMenuList,
|
|
24
|
-
NavigationMenuTrigger,
|
|
25
|
-
} from "./navigation-menu"
|
|
26
|
-
|
|
27
|
-
function MainNav() {
|
|
28
|
-
return (
|
|
29
|
-
<NavigationMenu>
|
|
30
|
-
<NavigationMenuList>
|
|
31
|
-
<NavigationMenuItem>
|
|
32
|
-
<NavigationMenuTrigger>Products</NavigationMenuTrigger>
|
|
33
|
-
<NavigationMenuContent>
|
|
34
|
-
<div className="p-6">
|
|
35
|
-
<a href="/product-1">Product 1</a>
|
|
36
|
-
<a href="/product-2">Product 2</a>
|
|
37
|
-
</div>
|
|
38
|
-
</NavigationMenuContent>
|
|
39
|
-
</NavigationMenuItem>
|
|
40
|
-
</NavigationMenuList>
|
|
41
|
-
</NavigationMenu>
|
|
42
|
-
)
|
|
43
|
-
}
|
|
44
|
-
```
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: edcc0618a769c715daef264fcd0292ee -->
|
|
2
|
-
Accessible, styled select/dropdown component built on Radix UI primitives with Flamingo ODS design tokens and smooth open/close animations.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
| Export | Description |
|
|
7
|
-
|--------|-------------|
|
|
8
|
-
| `Select` | Root component managing open/value state |
|
|
9
|
-
| `SelectTrigger` | Styled button that opens the dropdown, includes `ChevronDown` icon |
|
|
10
|
-
| `SelectContent` | Animated portal-rendered dropdown container with scroll support |
|
|
11
|
-
| `SelectItem` | Individual option with a `Check` indicator when selected |
|
|
12
|
-
| `SelectGroup` | Groups related items together |
|
|
13
|
-
| `SelectLabel` | Section label within a group |
|
|
14
|
-
| `SelectValue` | Displays the currently selected value in the trigger |
|
|
15
|
-
| `SelectSeparator` | Horizontal divider between items or groups |
|
|
16
|
-
| `SelectScrollUpButton` | Scroll control shown when content overflows upward |
|
|
17
|
-
| `SelectScrollDownButton` | Scroll control shown when content overflows downward |
|
|
18
|
-
|
|
19
|
-
## Usage Example
|
|
20
|
-
|
|
21
|
-
```typescript
|
|
22
|
-
import {
|
|
23
|
-
Select,
|
|
24
|
-
SelectContent,
|
|
25
|
-
SelectGroup,
|
|
26
|
-
SelectItem,
|
|
27
|
-
SelectLabel,
|
|
28
|
-
SelectSeparator,
|
|
29
|
-
SelectTrigger,
|
|
30
|
-
SelectValue,
|
|
31
|
-
} from "@/components/ui/select"
|
|
32
|
-
|
|
33
|
-
export function PrioritySelect() {
|
|
34
|
-
return (
|
|
35
|
-
<Select onValueChange={(value) => console.log(value)}>
|
|
36
|
-
<SelectTrigger className="w-[200px]">
|
|
37
|
-
<SelectValue placeholder="Select priority..." />
|
|
38
|
-
</SelectTrigger>
|
|
39
|
-
<SelectContent>
|
|
40
|
-
<SelectGroup>
|
|
41
|
-
<SelectLabel>Ticket Priority</SelectLabel>
|
|
42
|
-
<SelectItem value="critical">Critical</SelectItem>
|
|
43
|
-
<SelectItem value="high">High</SelectItem>
|
|
44
|
-
<SelectSeparator />
|
|
45
|
-
<SelectItem value="medium">Medium</SelectItem>
|
|
46
|
-
<SelectItem value="low">Low</SelectItem>
|
|
47
|
-
</SelectGroup>
|
|
48
|
-
</SelectContent>
|
|
49
|
-
</Select>
|
|
50
|
-
)
|
|
51
|
-
}
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
> All sub-components forward refs and accept native Radix UI props, allowing full customization via `className` alongside ODS defaults.
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: b66af7d5956b3733b491a303d043d297 -->
|
|
2
|
-
A comprehensive sidebar UI component system providing collapsible, responsive navigation panels with mobile drawer support, keyboard shortcuts, and multiple layout variants.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
| Component | Description |
|
|
7
|
-
|-----------|-------------|
|
|
8
|
-
| `SidebarProvider` | Context provider managing open/collapsed state, mobile detection, and cookie persistence |
|
|
9
|
-
| `useSidebar` | Hook to access sidebar context (state, toggle, mobile status) |
|
|
10
|
-
| `Sidebar` | Core sidebar container supporting `left`/`right` sides, `sidebar`/`floating`/`inset` variants, and `offcanvas`/`icon`/`none` collapsible modes |
|
|
11
|
-
| `SidebarTrigger` | Button component that toggles the sidebar (with `PanelLeft` icon) |
|
|
12
|
-
| `SidebarRail` | Thin interactive strip for resize/toggle on desktop |
|
|
13
|
-
| `SidebarInset` | Main content area companion that adjusts layout based on sidebar state |
|
|
14
|
-
| `SidebarInput` | Styled input field scoped to sidebar context |
|
|
15
|
-
| `SidebarHeader` | Top section container for branding/navigation |
|
|
16
|
-
| `SidebarFooter` | Bottom section container for user/settings actions |
|
|
17
|
-
| `SidebarSeparator` | Styled divider using sidebar border token |
|
|
18
|
-
| `SidebarContent` | Scrollable middle section for navigation items |
|
|
19
|
-
|
|
20
|
-
## Usage Example
|
|
21
|
-
|
|
22
|
-
```typescript
|
|
23
|
-
import {
|
|
24
|
-
SidebarProvider,
|
|
25
|
-
Sidebar,
|
|
26
|
-
SidebarHeader,
|
|
27
|
-
SidebarContent,
|
|
28
|
-
SidebarFooter,
|
|
29
|
-
SidebarTrigger,
|
|
30
|
-
SidebarInset,
|
|
31
|
-
useSidebar,
|
|
32
|
-
} from "./sidebar"
|
|
33
|
-
|
|
34
|
-
export function AppLayout() {
|
|
35
|
-
return (
|
|
36
|
-
<SidebarProvider defaultOpen={true}>
|
|
37
|
-
<Sidebar side="left" variant="sidebar" collapsible="icon">
|
|
38
|
-
<SidebarHeader>
|
|
39
|
-
<span>My App</span>
|
|
40
|
-
</SidebarHeader>
|
|
41
|
-
<SidebarContent>
|
|
42
|
-
{/* Navigation items */}
|
|
43
|
-
</SidebarContent>
|
|
44
|
-
<SidebarFooter>
|
|
45
|
-
{/* User profile */}
|
|
46
|
-
</SidebarFooter>
|
|
47
|
-
</Sidebar>
|
|
48
|
-
|
|
49
|
-
<SidebarInset>
|
|
50
|
-
<SidebarTrigger />
|
|
51
|
-
{/* Page content */}
|
|
52
|
-
</SidebarInset>
|
|
53
|
-
</SidebarProvider>
|
|
54
|
-
)
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
> **Keyboard shortcut:** `Ctrl+B` / `Cmd+B` toggles the sidebar globally. State is persisted via a 7-day cookie (`sidebar:state`). On mobile, the sidebar renders as a `Sheet` drawer automatically.
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: 0ad0fd1585cc95092b328aab82e5f963 -->
|
|
2
|
-
A flexible square avatar component that displays either a user image or initials fallback with automatic image proxying and responsive sizing options.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
- **SquareAvatar**: Main component that renders a square avatar with rounded corners
|
|
7
|
-
- **SquareAvatarProps**: TypeScript interface defining component props including image source, fallback name, sizing options
|
|
8
|
-
- **Automatic fallback**: Generates up to 2 initials from the provided name when no image is available
|
|
9
|
-
- **Image proxying**: Uses `getProxiedImageUrl` utility for secure image loading
|
|
10
|
-
- **Responsive sizing**: Supports both fixed pixel sizing and full-width responsive layouts
|
|
11
|
-
|
|
12
|
-
## Usage Example
|
|
13
|
-
|
|
14
|
-
```typescript
|
|
15
|
-
import { SquareAvatar } from './components/square-avatar';
|
|
16
|
-
|
|
17
|
-
// With image
|
|
18
|
-
<SquareAvatar
|
|
19
|
-
src="https://example.com/avatar.jpg"
|
|
20
|
-
fallbackName="John Doe"
|
|
21
|
-
size={64}
|
|
22
|
-
/>
|
|
23
|
-
|
|
24
|
-
// Fallback to initials
|
|
25
|
-
<SquareAvatar
|
|
26
|
-
fallbackName="Jane Smith"
|
|
27
|
-
size={48}
|
|
28
|
-
/>
|
|
29
|
-
|
|
30
|
-
// Full width responsive
|
|
31
|
-
<SquareAvatar
|
|
32
|
-
src="/user-avatar.png"
|
|
33
|
-
fallbackName="Alex Johnson"
|
|
34
|
-
fullWidth={true}
|
|
35
|
-
className="max-w-xs"
|
|
36
|
-
/>
|
|
37
|
-
|
|
38
|
-
// Minimal usage
|
|
39
|
-
<SquareAvatar fallbackName="Bob Wilson" />
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
The component automatically handles image loading failures by falling back to initials, uses design system colors and borders, and provides both fixed and responsive sizing modes for different layout contexts.
|
package/src/components/.table.md
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: 233d24ac5b6d195653b75a57fb3cf96a -->
|
|
2
|
-
A comprehensive React table component library that provides semantic HTML table elements with consistent styling, responsive design, and accessibility features.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
- **Table** - Main table wrapper with responsive overflow handling
|
|
7
|
-
- **TableHeader** - Styled `<thead>` element with border styling
|
|
8
|
-
- **TableBody** - Table body with conditional border removal for last row
|
|
9
|
-
- **TableFooter** - Footer section with primary background styling
|
|
10
|
-
- **TableRow** - Interactive row with hover effects and selection states
|
|
11
|
-
- **TableHead** - Header cell with medium font weight and muted text
|
|
12
|
-
- **TableCell** - Standard table cell with consistent padding
|
|
13
|
-
- **TableCaption** - Accessible table caption with muted styling
|
|
14
|
-
|
|
15
|
-
## Usage Example
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
18
|
-
import {
|
|
19
|
-
Table,
|
|
20
|
-
TableHeader,
|
|
21
|
-
TableBody,
|
|
22
|
-
TableHead,
|
|
23
|
-
TableRow,
|
|
24
|
-
TableCell,
|
|
25
|
-
TableCaption
|
|
26
|
-
} from './table'
|
|
27
|
-
|
|
28
|
-
function UserTable() {
|
|
29
|
-
return (
|
|
30
|
-
<Table>
|
|
31
|
-
<TableCaption>A list of recent users</TableCaption>
|
|
32
|
-
<TableHeader>
|
|
33
|
-
<TableRow>
|
|
34
|
-
<TableHead>Name</TableHead>
|
|
35
|
-
<TableHead>Email</TableHead>
|
|
36
|
-
<TableHead>Status</TableHead>
|
|
37
|
-
</TableRow>
|
|
38
|
-
</TableHeader>
|
|
39
|
-
<TableBody>
|
|
40
|
-
<TableRow>
|
|
41
|
-
<TableCell>John Doe</TableCell>
|
|
42
|
-
<TableCell>john@example.com</TableCell>
|
|
43
|
-
<TableCell>Active</TableCell>
|
|
44
|
-
</TableRow>
|
|
45
|
-
</TableBody>
|
|
46
|
-
</Table>
|
|
47
|
-
)
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
All components are built with React.forwardRef for ref forwarding and use the `cn` utility for className merging, enabling easy customization while maintaining base styles.
|
package/src/components/.tabs.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: 40507b5774d55768095b4012b33992e8 -->
|
|
2
|
-
A React tabs component built on Radix UI primitives with styled forwarded refs for accessible tabbed interfaces. Provides a complete tab system with customizable styling through className props.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
- **`Tabs`** - Root container component (alias for `TabsPrimitive.Root`)
|
|
7
|
-
- **`TabsList`** - Container for tab triggers with horizontal flex layout and muted background
|
|
8
|
-
- **`TabsTrigger`** - Individual tab button with active/inactive states and focus management
|
|
9
|
-
- **`TabsContent`** - Content panels that show/hide based on active tab selection
|
|
10
|
-
|
|
11
|
-
## Usage Example
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
import { Tabs, TabsList, TabsTrigger, TabsContent } from "./tabs"
|
|
15
|
-
|
|
16
|
-
function MyTabs() {
|
|
17
|
-
return (
|
|
18
|
-
<Tabs defaultValue="tab1" className="w-[400px]">
|
|
19
|
-
<TabsList className="grid w-full grid-cols-2">
|
|
20
|
-
<TabsTrigger value="tab1">Account</TabsTrigger>
|
|
21
|
-
<TabsTrigger value="tab2">Settings</TabsTrigger>
|
|
22
|
-
</TabsList>
|
|
23
|
-
|
|
24
|
-
<TabsContent value="tab1" className="space-y-2">
|
|
25
|
-
<h3 className="text-lg font-medium">Account Information</h3>
|
|
26
|
-
<p>Manage your account details here.</p>
|
|
27
|
-
</TabsContent>
|
|
28
|
-
|
|
29
|
-
<TabsContent value="tab2" className="space-y-2">
|
|
30
|
-
<h3 className="text-lg font-medium">Settings</h3>
|
|
31
|
-
<p>Configure your preferences here.</p>
|
|
32
|
-
</TabsContent>
|
|
33
|
-
</Tabs>
|
|
34
|
-
)
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
All components support standard React props and include built-in accessibility features, keyboard navigation, and focus management through Radix UI primitives.
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
<!-- source-hash: 2e278b19202e7067419c145f3d6571fc -->
|
|
2
|
-
A customizable toggle button component built on Radix UI Toggle primitive with styled variants for different sizes and appearances.
|
|
3
|
-
|
|
4
|
-
## Key Components
|
|
5
|
-
|
|
6
|
-
- **`toggleVariants`** - CVA-powered style variants with size and variant options
|
|
7
|
-
- **`Toggle`** - Main toggle component with forwardRef support
|
|
8
|
-
- **Variant types**: `default`, `outline`
|
|
9
|
-
- **Size types**: `sm`, `default`, `lg`
|
|
10
|
-
|
|
11
|
-
## Usage Example
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
import { Toggle } from "@/components/ui/toggle"
|
|
15
|
-
import { Bold, Italic } from "lucide-react"
|
|
16
|
-
|
|
17
|
-
function TextEditor() {
|
|
18
|
-
return (
|
|
19
|
-
<div className="flex gap-2">
|
|
20
|
-
{/* Default toggle */}
|
|
21
|
-
<Toggle>
|
|
22
|
-
<Bold />
|
|
23
|
-
Bold
|
|
24
|
-
</Toggle>
|
|
25
|
-
|
|
26
|
-
{/* Outline variant */}
|
|
27
|
-
<Toggle variant="outline">
|
|
28
|
-
<Italic />
|
|
29
|
-
Italic
|
|
30
|
-
</Toggle>
|
|
31
|
-
|
|
32
|
-
{/* Small size */}
|
|
33
|
-
<Toggle size="sm">
|
|
34
|
-
Small
|
|
35
|
-
</Toggle>
|
|
36
|
-
|
|
37
|
-
{/* Controlled state */}
|
|
38
|
-
<Toggle
|
|
39
|
-
pressed={isBold}
|
|
40
|
-
onPressedChange={setIsBold}
|
|
41
|
-
>
|
|
42
|
-
Controlled
|
|
43
|
-
</Toggle>
|
|
44
|
-
</div>
|
|
45
|
-
)
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
The component automatically handles pressed/unpressed states, accessibility features, and keyboard navigation through the underlying Radix primitive.
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import * as AccordionPrimitive from "@radix-ui/react-accordion"
|
|
5
|
-
import { ChevronDown } from "lucide-react"
|
|
6
|
-
|
|
7
|
-
import { cn } from "../utils/cn"
|
|
8
|
-
|
|
9
|
-
const Accordion = AccordionPrimitive.Root
|
|
10
|
-
|
|
11
|
-
const AccordionItem = React.forwardRef<
|
|
12
|
-
React.ElementRef<typeof AccordionPrimitive.Item>,
|
|
13
|
-
React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>
|
|
14
|
-
>(({ className, ...props }, ref) => (
|
|
15
|
-
<AccordionPrimitive.Item ref={ref} className={cn("border-b", className)} {...props} />
|
|
16
|
-
))
|
|
17
|
-
AccordionItem.displayName = "AccordionItem"
|
|
18
|
-
|
|
19
|
-
const AccordionTrigger = React.forwardRef<
|
|
20
|
-
React.ElementRef<typeof AccordionPrimitive.Trigger>,
|
|
21
|
-
React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>
|
|
22
|
-
>(({ className, children, ...props }, ref) => (
|
|
23
|
-
<AccordionPrimitive.Header className="flex">
|
|
24
|
-
<AccordionPrimitive.Trigger
|
|
25
|
-
ref={ref}
|
|
26
|
-
className={cn(
|
|
27
|
-
"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
|
|
28
|
-
className,
|
|
29
|
-
)}
|
|
30
|
-
{...props}
|
|
31
|
-
>
|
|
32
|
-
{children}
|
|
33
|
-
<ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200" />
|
|
34
|
-
</AccordionPrimitive.Trigger>
|
|
35
|
-
</AccordionPrimitive.Header>
|
|
36
|
-
))
|
|
37
|
-
AccordionTrigger.displayName = "AccordionTrigger"
|
|
38
|
-
|
|
39
|
-
const AccordionContent = React.forwardRef<
|
|
40
|
-
React.ElementRef<typeof AccordionPrimitive.Content>,
|
|
41
|
-
React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>
|
|
42
|
-
>(({ className, children, ...props }, ref) => (
|
|
43
|
-
<AccordionPrimitive.Content
|
|
44
|
-
ref={ref}
|
|
45
|
-
className={cn(
|
|
46
|
-
"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
47
|
-
className,
|
|
48
|
-
)}
|
|
49
|
-
{...props}
|
|
50
|
-
>
|
|
51
|
-
<div className="pb-4 pt-0">{children}</div>
|
|
52
|
-
</AccordionPrimitive.Content>
|
|
53
|
-
))
|
|
54
|
-
AccordionContent.displayName = "AccordionContent"
|
|
55
|
-
|
|
56
|
-
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }
|