@heyramzi/ui 0.0.0-stage → 6.0.1
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/COMPONENTS.md +141 -0
- package/LICENSE +21 -0
- package/README.md +125 -2
- package/package.json +209 -3
- package/scripts/lib/sync-core.mjs +113 -0
- package/scripts/relative-imports.mjs +39 -0
- package/scripts/sf-symbol.mjs +93 -0
- package/scripts/sync-shadcn.mjs +341 -0
- package/scripts/sync-transitions.mjs +146 -0
- package/scripts/validate-apple-symbol-exports.mjs +45 -0
- package/src/ai/composer/Composer.css +108 -0
- package/src/ai/composer/Composer.svelte +111 -0
- package/src/ai/composer/index.ts +10 -0
- package/src/ai/confirmation/Confirmation.svelte +54 -0
- package/src/ai/confirmation/ConfirmationAccepted.svelte +23 -0
- package/src/ai/confirmation/ConfirmationAction.svelte +53 -0
- package/src/ai/confirmation/ConfirmationActions.svelte +24 -0
- package/src/ai/confirmation/ConfirmationFailed.svelte +23 -0
- package/src/ai/confirmation/ConfirmationRejected.svelte +23 -0
- package/src/ai/confirmation/ConfirmationRequest.svelte +25 -0
- package/src/ai/confirmation/ConfirmationTitle.svelte +25 -0
- package/src/ai/confirmation/confirmation-context.svelte.ts +22 -0
- package/src/ai/confirmation/index.ts +50 -0
- package/src/ai/conversation/Conversation.svelte +28 -0
- package/src/ai/conversation/ConversationContent.svelte +35 -0
- package/src/ai/conversation/ConversationEmptyState.svelte +46 -0
- package/src/ai/conversation/ConversationScrollButton.svelte +51 -0
- package/src/ai/conversation/index.ts +33 -0
- package/src/ai/conversation/stick-to-bottom-context.svelte.ts +131 -0
- package/src/ai/index.ts +119 -0
- package/src/ai/loading-state/PixelLoader.svelte +138 -0
- package/src/ai/loading-state/index.ts +5 -0
- package/src/ai/prompt-input/PromptInput.svelte +38 -0
- package/src/ai/prompt-input/PromptInputBody.svelte +19 -0
- package/src/ai/prompt-input/PromptInputSubmit.svelte +73 -0
- package/src/ai/prompt-input/PromptInputTextarea.svelte +74 -0
- package/src/ai/prompt-input/PromptInputToolbar.svelte +19 -0
- package/src/ai/prompt-input/index.ts +34 -0
- package/src/ai/reasoning/Reasoning.svelte +47 -0
- package/src/ai/reasoning/ReasoningContent.svelte +27 -0
- package/src/ai/reasoning/ReasoningTrigger.svelte +48 -0
- package/src/ai/reasoning/index.ts +22 -0
- package/src/ai/reasoning/reasoning-context.svelte.ts +20 -0
- package/src/ai/response/Response.css +32 -0
- package/src/ai/response/Response.svelte +130 -0
- package/src/ai/response/index.ts +5 -0
- package/src/ai/suggestion/Suggestion.svelte +43 -0
- package/src/ai/suggestion/Suggestions.svelte +25 -0
- package/src/ai/suggestion/index.ts +14 -0
- package/src/ai/thinking-dots/ThinkingDots.svelte +42 -0
- package/src/ai/thinking-dots/index.ts +5 -0
- package/src/ai/typing-dots/TypingDots.css +39 -0
- package/src/ai/typing-dots/TypingDots.svelte +27 -0
- package/src/ai/typing-dots/index.ts +10 -0
- package/src/ai/voice-waveform/VoiceWaveform.css +40 -0
- package/src/ai/voice-waveform/VoiceWaveform.svelte +46 -0
- package/src/ai/voice-waveform/index.ts +5 -0
- package/src/animations/README.md +84 -0
- package/src/animations/accordion.css +58 -0
- package/src/animations/avatar-group-hover.css +47 -0
- package/src/animations/card-tilt.css +74 -0
- package/src/animations/digit-pop-in.css +78 -0
- package/src/animations/dropdown.css +121 -0
- package/src/animations/icon-swap.css +43 -0
- package/src/animations/index.css +34 -0
- package/src/animations/input-clear-dissolve.css +86 -0
- package/src/animations/input-shake.css +114 -0
- package/src/animations/learn-more-hover.css +48 -0
- package/src/animations/like-button.css +93 -0
- package/src/animations/modal.css +75 -0
- package/src/animations/notification-badge.css +81 -0
- package/src/animations/page-side-by-side.css +63 -0
- package/src/animations/panel.css +86 -0
- package/src/animations/plus-menu-morph.css +97 -0
- package/src/animations/reasoning-stream.css +49 -0
- package/src/animations/resize.css +20 -0
- package/src/animations/shimmer-text.css +72 -0
- package/src/animations/skeleton-reveal.css +97 -0
- package/src/animations/spinning-counter.css +52 -0
- package/src/animations/streaming-text.css +31 -0
- package/src/animations/success-check.css +120 -0
- package/src/animations/tabs-sliding.css +83 -0
- package/src/animations/text-swap.css +40 -0
- package/src/animations/text-swap.ts +40 -0
- package/src/animations/texts-reveal.css +70 -0
- package/src/animations/thinking-states.css +65 -0
- package/src/animations/tooltip.css +72 -0
- package/src/animations/upstream-coverage.test.ts +65 -0
- package/src/animations/view-transition-reveal.ts +74 -0
- package/src/charts/animated-value.css +7 -0
- package/src/charts/animated-value.svelte +110 -0
- package/src/charts/area-chart.css +29 -0
- package/src/charts/area-chart.svelte +195 -0
- package/src/charts/bar-chart.css +119 -0
- package/src/charts/bar-chart.svelte +269 -0
- package/src/charts/charts.css +201 -0
- package/src/charts/crosshair.svelte +35 -0
- package/src/charts/donut-chart.css +56 -0
- package/src/charts/donut-chart.svelte +158 -0
- package/src/charts/edge-fade.svelte +43 -0
- package/src/charts/edge-fade.ts +16 -0
- package/src/charts/figure.css +100 -0
- package/src/charts/figure.svelte +122 -0
- package/src/charts/gauge-chart.css +94 -0
- package/src/charts/gauge-chart.svelte +303 -0
- package/src/charts/hover-band.test.ts +30 -0
- package/src/charts/hover-band.ts +21 -0
- package/src/charts/hover-focus.svelte +85 -0
- package/src/charts/index.ts +30 -0
- package/src/charts/legend.css +131 -0
- package/src/charts/legend.svelte +112 -0
- package/src/charts/line-chart.css +26 -0
- package/src/charts/line-chart.svelte +256 -0
- package/src/charts/motion.ts +19 -0
- package/src/charts/number-chart.css +168 -0
- package/src/charts/number-chart.svelte +177 -0
- package/src/charts/primitives/chart-container.svelte +57 -0
- package/src/charts/primitives/chart-style.svelte +36 -0
- package/src/charts/primitives/chart-tooltip.svelte +161 -0
- package/src/charts/primitives/chart-utils.ts +54 -0
- package/src/charts/primitives/index.ts +11 -0
- package/src/charts/reveal.svelte +61 -0
- package/src/charts/ring-chart.css +96 -0
- package/src/charts/ring-chart.svelte +158 -0
- package/src/charts/sparkline.css +45 -0
- package/src/charts/sparkline.svelte +140 -0
- package/src/charts/stat-card.css +103 -0
- package/src/charts/stat-card.svelte +267 -0
- package/src/charts/time-series-chart.css +28 -0
- package/src/charts/time-series-chart.svelte +179 -0
- package/src/charts/trend-pill.css +38 -0
- package/src/charts/trend-pill.svelte +48 -0
- package/src/design/index.css +270 -0
- package/src/design/polish.css +159 -0
- package/src/effects/animated-beam/AnimatedBeam.svelte +132 -0
- package/src/effects/animated-beam/diagrams/BeamSvg.svelte +91 -0
- package/src/effects/animated-beam/index.ts +2 -0
- package/src/effects/animated-beam/path-calculator.svelte.ts +70 -0
- package/src/effects/animated-beam/types.ts +23 -0
- package/src/effects/border-beam/BorderBeam.svelte +223 -0
- package/src/effects/border-beam/css.test.ts +46 -0
- package/src/effects/border-beam/css.ts +574 -0
- package/src/effects/border-beam/presets.ts +699 -0
- package/src/effects/border-beam/register-properties.test.ts +74 -0
- package/src/effects/border-beam/register-properties.ts +73 -0
- package/src/effects/border-beam/types.ts +38 -0
- package/src/effects/image-comparison/ImageComparison.css +66 -0
- package/src/effects/image-comparison/ImageComparison.svelte +92 -0
- package/src/effects/image-reveal/ImageReveal.css +10 -0
- package/src/effects/image-reveal/ImageReveal.svelte +357 -0
- package/src/effects/image-reveal/index.ts +2 -0
- package/src/effects/image-reveal/types.ts +35 -0
- package/src/effects/magnetic/magnetic.ts +81 -0
- package/src/effects/marquee/Marquee.css +52 -0
- package/src/effects/marquee/Marquee.svelte +96 -0
- package/src/effects/progressive-blur/ProgressiveBlur.css +9 -0
- package/src/effects/progressive-blur/ProgressiveBlur.svelte +63 -0
- package/src/effects/reveal/AnimatedGroup.svelte +101 -0
- package/src/effects/reveal/InView.svelte +77 -0
- package/src/effects/reveal/TextEffect.svelte +142 -0
- package/src/effects/reveal/index.ts +10 -0
- package/src/effects/reveal/observe.ts +33 -0
- package/src/effects/reveal/reveal.css +141 -0
- package/src/effects/reveal/types.ts +25 -0
- package/src/effects/shader-gradient/ShaderGradient.svelte +227 -0
- package/src/effects/shader-gradient/color.ts +44 -0
- package/src/effects/shader-gradient/index.ts +5 -0
- package/src/effects/shader-gradient/renderer.ts +456 -0
- package/src/effects/shader-gradient/shaders.ts +324 -0
- package/src/effects/shader-gradient/types.ts +68 -0
- package/src/effects/spotlight/Spotlight.css +14 -0
- package/src/effects/spotlight/Spotlight.svelte +61 -0
- package/src/effects/theme-toggle/ThemeToggle.css +21 -0
- package/src/effects/theme-toggle/ThemeToggle.svelte +101 -0
- package/src/icons/TradeIcon.svelte +16 -0
- package/src/icons/apple-symbol-exports.ts +135 -0
- package/src/icons/sf-symbols.ts +527 -0
- package/src/icons/trades.ts +89 -0
- package/src/index.ts +49 -0
- package/src/lib/arrive.ts +26 -0
- package/src/lib/hooks/is-mobile.svelte.ts +11 -0
- package/src/lib/icon-types.ts +17 -0
- package/src/lib/layout.ts +8 -0
- package/src/lib/panel.ts +15 -0
- package/src/lib/theme-transition.ts +51 -0
- package/src/lib/utils.ts +45 -0
- package/src/shadcn/accordion/accordion-content.svelte +22 -0
- package/src/shadcn/accordion/accordion-item.svelte +17 -0
- package/src/shadcn/accordion/accordion-trigger.svelte +35 -0
- package/src/shadcn/accordion/accordion.svelte +19 -0
- package/src/shadcn/accordion/index.ts +16 -0
- package/src/shadcn/alert/alert-description.svelte +23 -0
- package/src/shadcn/alert/alert-title.svelte +20 -0
- package/src/shadcn/alert/alert.svelte +44 -0
- package/src/shadcn/alert/index.ts +14 -0
- package/src/shadcn/alert-dialog/alert-dialog-action.svelte +18 -0
- package/src/shadcn/alert-dialog/alert-dialog-cancel.svelte +18 -0
- package/src/shadcn/alert-dialog/alert-dialog-content.svelte +29 -0
- package/src/shadcn/alert-dialog/alert-dialog-description.svelte +17 -0
- package/src/shadcn/alert-dialog/alert-dialog-footer.svelte +20 -0
- package/src/shadcn/alert-dialog/alert-dialog-header.svelte +20 -0
- package/src/shadcn/alert-dialog/alert-dialog-overlay.svelte +17 -0
- package/src/shadcn/alert-dialog/alert-dialog-portal.svelte +7 -0
- package/src/shadcn/alert-dialog/alert-dialog-title.svelte +17 -0
- package/src/shadcn/alert-dialog/alert-dialog-trigger.svelte +7 -0
- package/src/shadcn/alert-dialog/alert-dialog.svelte +7 -0
- package/src/shadcn/alert-dialog/index.ts +37 -0
- package/src/shadcn/attachment/attachment-action.svelte +23 -0
- package/src/shadcn/attachment/attachment-actions.svelte +23 -0
- package/src/shadcn/attachment/attachment-content.svelte +23 -0
- package/src/shadcn/attachment/attachment-description.svelte +23 -0
- package/src/shadcn/attachment/attachment-group.svelte +23 -0
- package/src/shadcn/attachment/attachment-media.svelte +44 -0
- package/src/shadcn/attachment/attachment-title.svelte +23 -0
- package/src/shadcn/attachment/attachment-trigger.svelte +29 -0
- package/src/shadcn/attachment/attachment.svelte +55 -0
- package/src/shadcn/attachment/index.ts +40 -0
- package/src/shadcn/avatar/avatar-badge.svelte +26 -0
- package/src/shadcn/avatar/avatar-fallback.svelte +20 -0
- package/src/shadcn/avatar/avatar-group-count.svelte +23 -0
- package/src/shadcn/avatar/avatar-group.svelte +23 -0
- package/src/shadcn/avatar/avatar-image.svelte +17 -0
- package/src/shadcn/avatar/avatar.svelte +26 -0
- package/src/shadcn/avatar/index.ts +22 -0
- package/src/shadcn/badge/badge.svelte +53 -0
- package/src/shadcn/badge/index.ts +2 -0
- package/src/shadcn/breadcrumb/breadcrumb-ellipsis.svelte +23 -0
- package/src/shadcn/breadcrumb/breadcrumb-item.svelte +20 -0
- package/src/shadcn/breadcrumb/breadcrumb-link.svelte +31 -0
- package/src/shadcn/breadcrumb/breadcrumb-list.svelte +23 -0
- package/src/shadcn/breadcrumb/breadcrumb-page.svelte +23 -0
- package/src/shadcn/breadcrumb/breadcrumb-separator.svelte +27 -0
- package/src/shadcn/breadcrumb/breadcrumb.svelte +21 -0
- package/src/shadcn/breadcrumb/index.ts +25 -0
- package/src/shadcn/bubble/bubble-content.svelte +31 -0
- package/src/shadcn/bubble/bubble-group.svelte +20 -0
- package/src/shadcn/bubble/bubble-reactions.svelte +52 -0
- package/src/shadcn/bubble/bubble.svelte +58 -0
- package/src/shadcn/bubble/index.ts +25 -0
- package/src/shadcn/button/button.svelte +121 -0
- package/src/shadcn/button/index.ts +17 -0
- package/src/shadcn/calendar/calendar-caption.svelte +76 -0
- package/src/shadcn/calendar/calendar-cell.svelte +19 -0
- package/src/shadcn/calendar/calendar-day.svelte +35 -0
- package/src/shadcn/calendar/calendar-grid-body.svelte +12 -0
- package/src/shadcn/calendar/calendar-grid-head.svelte +12 -0
- package/src/shadcn/calendar/calendar-grid-row.svelte +12 -0
- package/src/shadcn/calendar/calendar-grid.svelte +16 -0
- package/src/shadcn/calendar/calendar-head-cell.svelte +19 -0
- package/src/shadcn/calendar/calendar-header.svelte +19 -0
- package/src/shadcn/calendar/calendar-heading.svelte +16 -0
- package/src/shadcn/calendar/calendar-month-select.svelte +44 -0
- package/src/shadcn/calendar/calendar-month.svelte +15 -0
- package/src/shadcn/calendar/calendar-months.svelte +19 -0
- package/src/shadcn/calendar/calendar-nav.svelte +19 -0
- package/src/shadcn/calendar/calendar-next-button.svelte +31 -0
- package/src/shadcn/calendar/calendar-prev-button.svelte +31 -0
- package/src/shadcn/calendar/calendar-year-select.svelte +43 -0
- package/src/shadcn/calendar/calendar.svelte +118 -0
- package/src/shadcn/calendar/index.ts +40 -0
- package/src/shadcn/card/card-action.svelte +23 -0
- package/src/shadcn/card/card-content.svelte +20 -0
- package/src/shadcn/card/card-description.svelte +20 -0
- package/src/shadcn/card/card-footer.svelte +23 -0
- package/src/shadcn/card/card-header.svelte +23 -0
- package/src/shadcn/card/card-title.svelte +29 -0
- package/src/shadcn/card/card.svelte +25 -0
- package/src/shadcn/card/index.ts +25 -0
- package/src/shadcn/checkbox/checkbox.svelte +38 -0
- package/src/shadcn/checkbox/index.ts +6 -0
- package/src/shadcn/collapsible/collapsible-content.svelte +7 -0
- package/src/shadcn/collapsible/collapsible-trigger.svelte +7 -0
- package/src/shadcn/collapsible/collapsible.svelte +11 -0
- package/src/shadcn/collapsible/index.ts +13 -0
- package/src/shadcn/command/command-dialog.svelte +66 -0
- package/src/shadcn/command/command-empty.svelte +17 -0
- package/src/shadcn/command/command-group.svelte +40 -0
- package/src/shadcn/command/command-input.svelte +64 -0
- package/src/shadcn/command/command-item.svelte +37 -0
- package/src/shadcn/command/command-link-item.svelte +20 -0
- package/src/shadcn/command/command-list.svelte +20 -0
- package/src/shadcn/command/command-loading.svelte +7 -0
- package/src/shadcn/command/command-separator.svelte +17 -0
- package/src/shadcn/command/command-shortcut.svelte +23 -0
- package/src/shadcn/command/command.svelte +28 -0
- package/src/shadcn/command/index.ts +37 -0
- package/src/shadcn/context-menu/context-menu-checkbox-item.svelte +41 -0
- package/src/shadcn/context-menu/context-menu-content.svelte +28 -0
- package/src/shadcn/context-menu/context-menu-group-heading.svelte +21 -0
- package/src/shadcn/context-menu/context-menu-group.svelte +7 -0
- package/src/shadcn/context-menu/context-menu-item.svelte +27 -0
- package/src/shadcn/context-menu/context-menu-label.svelte +27 -0
- package/src/shadcn/context-menu/context-menu-portal.svelte +7 -0
- package/src/shadcn/context-menu/context-menu-radio-group.svelte +16 -0
- package/src/shadcn/context-menu/context-menu-radio-item.svelte +35 -0
- package/src/shadcn/context-menu/context-menu-separator.svelte +17 -0
- package/src/shadcn/context-menu/context-menu-shortcut.svelte +23 -0
- package/src/shadcn/context-menu/context-menu-sub-content.svelte +25 -0
- package/src/shadcn/context-menu/context-menu-sub-trigger.svelte +29 -0
- package/src/shadcn/context-menu/context-menu-sub.svelte +7 -0
- package/src/shadcn/context-menu/context-menu-trigger.svelte +17 -0
- package/src/shadcn/context-menu/context-menu.svelte +7 -0
- package/src/shadcn/context-menu/index.ts +52 -0
- package/src/shadcn/dialog/dialog-close.svelte +11 -0
- package/src/shadcn/dialog/dialog-content.svelte +57 -0
- package/src/shadcn/dialog/dialog-description.svelte +20 -0
- package/src/shadcn/dialog/dialog-footer.svelte +32 -0
- package/src/shadcn/dialog/dialog-header.svelte +20 -0
- package/src/shadcn/dialog/dialog-overlay.svelte +20 -0
- package/src/shadcn/dialog/dialog-portal.svelte +7 -0
- package/src/shadcn/dialog/dialog-title.svelte +17 -0
- package/src/shadcn/dialog/dialog-trigger.svelte +11 -0
- package/src/shadcn/dialog/dialog.svelte +7 -0
- package/src/shadcn/dialog/index.ts +34 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-checkbox-item.svelte +43 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-content.svelte +31 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-group.svelte +7 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-item.svelte +29 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-label.svelte +27 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-portal.svelte +7 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-radio-item.svelte +34 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-separator.svelte +17 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-shortcut.svelte +23 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-sub-content.svelte +20 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-sub.svelte +7 -0
- package/src/shadcn/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
- package/src/shadcn/dropdown-menu/dropdown-menu.svelte +7 -0
- package/src/shadcn/dropdown-menu/index.ts +56 -0
- package/src/shadcn/dropdown-menu/menu-item.ts +43 -0
- package/src/shadcn/empty/empty-content.svelte +23 -0
- package/src/shadcn/empty/empty-description.svelte +23 -0
- package/src/shadcn/empty/empty-header.svelte +20 -0
- package/src/shadcn/empty/empty-media.svelte +41 -0
- package/src/shadcn/empty/empty-title.svelte +20 -0
- package/src/shadcn/empty/empty.svelte +23 -0
- package/src/shadcn/empty/index.ts +22 -0
- package/src/shadcn/field/field-content.svelte +20 -0
- package/src/shadcn/field/field-description.svelte +25 -0
- package/src/shadcn/field/field-error.svelte +58 -0
- package/src/shadcn/field/field-group.svelte +23 -0
- package/src/shadcn/field/field-label.svelte +26 -0
- package/src/shadcn/field/field-legend.svelte +29 -0
- package/src/shadcn/field/field-separator.svelte +35 -0
- package/src/shadcn/field/field-set.svelte +24 -0
- package/src/shadcn/field/field-title.svelte +23 -0
- package/src/shadcn/field/field.svelte +53 -0
- package/src/shadcn/field/index.ts +33 -0
- package/src/shadcn/hooks/is-mobile.svelte.ts +9 -0
- package/src/shadcn/hover-card/hover-card-content.svelte +31 -0
- package/src/shadcn/hover-card/hover-card-portal.svelte +7 -0
- package/src/shadcn/hover-card/hover-card-trigger.svelte +7 -0
- package/src/shadcn/hover-card/hover-card.svelte +7 -0
- package/src/shadcn/hover-card/index.ts +15 -0
- package/src/shadcn/input/index.ts +9 -0
- package/src/shadcn/input/input.svelte +48 -0
- package/src/shadcn/input/secret-input.svelte +75 -0
- package/src/shadcn/input-otp/index.ts +15 -0
- package/src/shadcn/input-otp/input-otp-group.svelte +20 -0
- package/src/shadcn/input-otp/input-otp-separator.svelte +25 -0
- package/src/shadcn/input-otp/input-otp-slot.svelte +26 -0
- package/src/shadcn/input-otp/input-otp.svelte +22 -0
- package/src/shadcn/label/index.ts +7 -0
- package/src/shadcn/label/label.svelte +20 -0
- package/src/shadcn/marker/index.ts +15 -0
- package/src/shadcn/marker/marker-content.svelte +23 -0
- package/src/shadcn/marker/marker-icon.svelte +21 -0
- package/src/shadcn/marker/marker.svelte +52 -0
- package/src/shadcn/message/index.ts +22 -0
- package/src/shadcn/message/message-avatar.svelte +23 -0
- package/src/shadcn/message/message-content.svelte +23 -0
- package/src/shadcn/message/message-footer.svelte +23 -0
- package/src/shadcn/message/message-group.svelte +20 -0
- package/src/shadcn/message/message-header.svelte +23 -0
- package/src/shadcn/message/message.svelte +27 -0
- package/src/shadcn/popover/index.ts +28 -0
- package/src/shadcn/popover/popover-close.svelte +7 -0
- package/src/shadcn/popover/popover-content.svelte +38 -0
- package/src/shadcn/popover/popover-description.svelte +20 -0
- package/src/shadcn/popover/popover-header.svelte +20 -0
- package/src/shadcn/popover/popover-portal.svelte +7 -0
- package/src/shadcn/popover/popover-title.svelte +15 -0
- package/src/shadcn/popover/popover-trigger.svelte +17 -0
- package/src/shadcn/popover/popover.svelte +7 -0
- package/src/shadcn/progress/index.ts +7 -0
- package/src/shadcn/progress/progress.svelte +30 -0
- package/src/shadcn/radio-group/index.ts +10 -0
- package/src/shadcn/radio-group/radio-group-item.svelte +31 -0
- package/src/shadcn/radio-group/radio-group.svelte +19 -0
- package/src/shadcn/scroll-area/index.ts +10 -0
- package/src/shadcn/scroll-area/scroll-area-scrollbar.svelte +30 -0
- package/src/shadcn/scroll-area/scroll-area.svelte +43 -0
- package/src/shadcn/select/index.ts +37 -0
- package/src/shadcn/select/select-content.svelte +45 -0
- package/src/shadcn/select/select-group-heading.svelte +21 -0
- package/src/shadcn/select/select-group.svelte +17 -0
- package/src/shadcn/select/select-item.svelte +38 -0
- package/src/shadcn/select/select-label.svelte +20 -0
- package/src/shadcn/select/select-portal.svelte +7 -0
- package/src/shadcn/select/select-scroll-down-button.svelte +23 -0
- package/src/shadcn/select/select-scroll-up-button.svelte +23 -0
- package/src/shadcn/select/select-separator.svelte +18 -0
- package/src/shadcn/select/select-trigger.svelte +33 -0
- package/src/shadcn/select/select.svelte +11 -0
- package/src/shadcn/separator/index.ts +7 -0
- package/src/shadcn/separator/separator.svelte +23 -0
- package/src/shadcn/sheet/index.ts +34 -0
- package/src/shadcn/sheet/sheet-close.svelte +7 -0
- package/src/shadcn/sheet/sheet-content.svelte +72 -0
- package/src/shadcn/sheet/sheet-description.svelte +17 -0
- package/src/shadcn/sheet/sheet-footer.svelte +20 -0
- package/src/shadcn/sheet/sheet-header.svelte +20 -0
- package/src/shadcn/sheet/sheet-overlay.svelte +20 -0
- package/src/shadcn/sheet/sheet-portal.svelte +7 -0
- package/src/shadcn/sheet/sheet-title.svelte +17 -0
- package/src/shadcn/sheet/sheet-trigger.svelte +7 -0
- package/src/shadcn/sheet/sheet.svelte +7 -0
- package/src/shadcn/sidebar/constants.ts +6 -0
- package/src/shadcn/sidebar/context.svelte.ts +81 -0
- package/src/shadcn/sidebar/index.ts +75 -0
- package/src/shadcn/sidebar/sidebar-content.svelte +24 -0
- package/src/shadcn/sidebar/sidebar-footer.svelte +21 -0
- package/src/shadcn/sidebar/sidebar-group-action.svelte +33 -0
- package/src/shadcn/sidebar/sidebar-group-content.svelte +21 -0
- package/src/shadcn/sidebar/sidebar-group-label.svelte +33 -0
- package/src/shadcn/sidebar/sidebar-group.svelte +21 -0
- package/src/shadcn/sidebar/sidebar-header.svelte +21 -0
- package/src/shadcn/sidebar/sidebar-input.svelte +21 -0
- package/src/shadcn/sidebar/sidebar-inset.svelte +23 -0
- package/src/shadcn/sidebar/sidebar-menu-action.svelte +37 -0
- package/src/shadcn/sidebar/sidebar-menu-badge.svelte +24 -0
- package/src/shadcn/sidebar/sidebar-menu-button.svelte +103 -0
- package/src/shadcn/sidebar/sidebar-menu-item.svelte +21 -0
- package/src/shadcn/sidebar/sidebar-menu-skeleton.svelte +36 -0
- package/src/shadcn/sidebar/sidebar-menu-sub-button.svelte +39 -0
- package/src/shadcn/sidebar/sidebar-menu-sub-item.svelte +21 -0
- package/src/shadcn/sidebar/sidebar-menu-sub.svelte +24 -0
- package/src/shadcn/sidebar/sidebar-menu.svelte +21 -0
- package/src/shadcn/sidebar/sidebar-provider.svelte +62 -0
- package/src/shadcn/sidebar/sidebar-rail.svelte +36 -0
- package/src/shadcn/sidebar/sidebar-separator.svelte +19 -0
- package/src/shadcn/sidebar/sidebar-trigger.svelte +37 -0
- package/src/shadcn/sidebar/sidebar.svelte +109 -0
- package/src/shadcn/skeleton/index.ts +7 -0
- package/src/shadcn/skeleton/skeleton.svelte +17 -0
- package/src/shadcn/slider/index.ts +7 -0
- package/src/shadcn/slider/slider.svelte +52 -0
- package/src/shadcn/sonner/index.ts +1 -0
- package/src/shadcn/sonner/sonner.svelte +34 -0
- package/src/shadcn/spinner/index.ts +1 -0
- package/src/shadcn/spinner/spinner.svelte +26 -0
- package/src/shadcn/switch/index.ts +7 -0
- package/src/shadcn/switch/switch.svelte +31 -0
- package/src/shadcn/table/index.ts +28 -0
- package/src/shadcn/table/table-body.svelte +20 -0
- package/src/shadcn/table/table-caption.svelte +20 -0
- package/src/shadcn/table/table-cell.svelte +20 -0
- package/src/shadcn/table/table-footer.svelte +20 -0
- package/src/shadcn/table/table-head.svelte +23 -0
- package/src/shadcn/table/table-header.svelte +20 -0
- package/src/shadcn/table/table-row.svelte +23 -0
- package/src/shadcn/table/table.svelte +25 -0
- package/src/shadcn/tabs/index.ts +16 -0
- package/src/shadcn/tabs/tabs-content.svelte +17 -0
- package/src/shadcn/tabs/tabs-list.svelte +25 -0
- package/src/shadcn/tabs/tabs-trigger.svelte +20 -0
- package/src/shadcn/tabs/tabs.svelte +19 -0
- package/src/shadcn/textarea/index.ts +7 -0
- package/src/shadcn/textarea/textarea.svelte +23 -0
- package/src/shadcn/toggle/index.ts +13 -0
- package/src/shadcn/toggle/toggle.svelte +53 -0
- package/src/shadcn/toggle-group/index.ts +10 -0
- package/src/shadcn/toggle-group/toggle-group-item.svelte +35 -0
- package/src/shadcn/toggle-group/toggle-group.svelte +59 -0
- package/src/shadcn/tooltip/context.ts +16 -0
- package/src/shadcn/tooltip/index.ts +19 -0
- package/src/shadcn/tooltip/tooltip-content.svelte +38 -0
- package/src/shadcn/tooltip/tooltip-portal.svelte +7 -0
- package/src/shadcn/tooltip/tooltip-provider.svelte +16 -0
- package/src/shadcn/tooltip/tooltip-trigger.svelte +7 -0
- package/src/shadcn/tooltip/tooltip.svelte +19 -0
- package/src/shadcn/utilities.css +549 -0
- package/src/showcase/AiSection.svelte +157 -0
- package/src/showcase/AnimationsSection.svelte +1658 -0
- package/src/showcase/ChartsSection.svelte +458 -0
- package/src/showcase/EffectsSection.svelte +152 -0
- package/src/showcase/ShadcnSection.svelte +27 -0
- package/src/showcase/ShowcaseImport.svelte +126 -0
- package/src/showcase/ShowcaseList.svelte +132 -0
- package/src/showcase/ShowcaseNav.svelte +247 -0
- package/src/showcase/ShowcaseSection.svelte +112 -0
- package/src/showcase/ShowcaseShell.svelte +55 -0
- package/src/showcase/ShowcaseStage.svelte +342 -0
- package/src/showcase/ShowcaseVariant.svelte +109 -0
- package/src/showcase/assets/image-reveal/art-1.jpg +0 -0
- package/src/showcase/assets/image-reveal/art-2.jpg +0 -0
- package/src/showcase/assets/image-reveal/art-3.jpg +0 -0
- package/src/showcase/check.svg +1 -0
- package/src/showcase/chevron-arms.svg +2 -0
- package/src/showcase/chevron-down.svg +1 -0
- package/src/showcase/copy.svg +2 -0
- package/src/showcase/demos/ai/confirmation.svelte +59 -0
- package/src/showcase/demos/ai/conversation.svelte +59 -0
- package/src/showcase/demos/ai/loading-state.svelte +19 -0
- package/src/showcase/demos/ai/prompt-input.svelte +57 -0
- package/src/showcase/demos/ai/reasoning.svelte +19 -0
- package/src/showcase/demos/ai/thinking-dots.svelte +15 -0
- package/src/showcase/demos/ai/voice-waveform.svelte +24 -0
- package/src/showcase/demos/effects/animated-beam.svelte +50 -0
- package/src/showcase/demos/effects/animated-group.svelte +47 -0
- package/src/showcase/demos/effects/border-beam-default.svelte +20 -0
- package/src/showcase/demos/effects/border-beam-line.svelte +20 -0
- package/src/showcase/demos/effects/border-beam-mono.svelte +20 -0
- package/src/showcase/demos/effects/border-beam-sunset.svelte +20 -0
- package/src/showcase/demos/effects/image-comparison.svelte +25 -0
- package/src/showcase/demos/effects/image-reveal.svelte +49 -0
- package/src/showcase/demos/effects/in-view.svelte +41 -0
- package/src/showcase/demos/effects/integrations-hub.svelte +82 -0
- package/src/showcase/demos/effects/magnetic.svelte +31 -0
- package/src/showcase/demos/effects/marquee.svelte +33 -0
- package/src/showcase/demos/effects/progressive-blur.svelte +47 -0
- package/src/showcase/demos/effects/spotlight.svelte +40 -0
- package/src/showcase/demos/effects/text-effect.svelte +55 -0
- package/src/showcase/demos/shadcn/accordion.svelte +45 -0
- package/src/showcase/demos/shadcn/alert-dialog.svelte +23 -0
- package/src/showcase/demos/shadcn/alert.svelte +30 -0
- package/src/showcase/demos/shadcn/attachment.svelte +71 -0
- package/src/showcase/demos/shadcn/avatar.svelte +30 -0
- package/src/showcase/demos/shadcn/badge.svelte +26 -0
- package/src/showcase/demos/shadcn/breadcrumb.svelte +34 -0
- package/src/showcase/demos/shadcn/bubble.svelte +36 -0
- package/src/showcase/demos/shadcn/button.svelte +11 -0
- package/src/showcase/demos/shadcn/calendar.svelte +8 -0
- package/src/showcase/demos/shadcn/card.svelte +39 -0
- package/src/showcase/demos/shadcn/checkbox.svelte +39 -0
- package/src/showcase/demos/shadcn/collapsible.svelte +20 -0
- package/src/showcase/demos/shadcn/command.svelte +48 -0
- package/src/showcase/demos/shadcn/context-menu.svelte +54 -0
- package/src/showcase/demos/shadcn/demo-harness.svelte +12 -0
- package/src/showcase/demos/shadcn/demos.test.ts +20 -0
- package/src/showcase/demos/shadcn/dialog.svelte +38 -0
- package/src/showcase/demos/shadcn/dropdown-menu.svelte +59 -0
- package/src/showcase/demos/shadcn/empty.svelte +29 -0
- package/src/showcase/demos/shadcn/field.svelte +115 -0
- package/src/showcase/demos/shadcn/hover-card.svelte +32 -0
- package/src/showcase/demos/shadcn/index.ts +358 -0
- package/src/showcase/demos/shadcn/input-otp.svelte +19 -0
- package/src/showcase/demos/shadcn/input.svelte +5 -0
- package/src/showcase/demos/shadcn/label.svelte +11 -0
- package/src/showcase/demos/shadcn/marker.svelte +30 -0
- package/src/showcase/demos/shadcn/message.svelte +75 -0
- package/src/showcase/demos/shadcn/popover.svelte +36 -0
- package/src/showcase/demos/shadcn/progress.svelte +13 -0
- package/src/showcase/demos/shadcn/radio-group.svelte +19 -0
- package/src/showcase/demos/shadcn/scroll-area.svelte +18 -0
- package/src/showcase/demos/shadcn/select.svelte +29 -0
- package/src/showcase/demos/shadcn/separator.svelte +12 -0
- package/src/showcase/demos/shadcn/sheet.svelte +48 -0
- package/src/showcase/demos/shadcn/skeleton.svelte +11 -0
- package/src/showcase/demos/shadcn/slider.svelte +7 -0
- package/src/showcase/demos/shadcn/sonner.svelte +18 -0
- package/src/showcase/demos/shadcn/spinner.svelte +11 -0
- package/src/showcase/demos/shadcn/switch.svelte +9 -0
- package/src/showcase/demos/shadcn/table.svelte +76 -0
- package/src/showcase/demos/shadcn/tabs.svelte +62 -0
- package/src/showcase/demos/shadcn/textarea.svelte +5 -0
- package/src/showcase/demos/shadcn/toggle-group.svelte +18 -0
- package/src/showcase/demos/shadcn/toggle.svelte +14 -0
- package/src/showcase/demos/shadcn/tooltip.svelte +13 -0
- package/src/showcase/heart.svg +1 -0
- package/src/showcase/index.ts +38 -0
- package/src/showcase/kit.test.ts +72 -0
- package/src/showcase/kit.ts +17 -0
- package/src/showcase/plus.svg +1 -0
- package/src/showcase/showcase-shell.css +91 -0
- package/src/showcase/stacked-section.css +15 -0
- package/src/showcase/success-check.svg +1 -0
- package/src/showcase/types.ts +29 -0
- package/src/svg-raw.d.ts +7 -0
- package/src/test-setup.ts +34 -0
- package/src/tokens.css +993 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as AlertDialog from "../../../shadcn/alert-dialog/index.js";
|
|
3
|
+
import { buttonVariants } from "../../../shadcn/button/index.js";
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<AlertDialog.Root>
|
|
7
|
+
<AlertDialog.Trigger class={buttonVariants({ variant: "outline" })}>
|
|
8
|
+
Show Dialog
|
|
9
|
+
</AlertDialog.Trigger>
|
|
10
|
+
<AlertDialog.Content>
|
|
11
|
+
<AlertDialog.Header>
|
|
12
|
+
<AlertDialog.Title>Are you absolutely sure?</AlertDialog.Title>
|
|
13
|
+
<AlertDialog.Description>
|
|
14
|
+
This action cannot be undone. This will permanently delete your account and remove your data
|
|
15
|
+
from our servers.
|
|
16
|
+
</AlertDialog.Description>
|
|
17
|
+
</AlertDialog.Header>
|
|
18
|
+
<AlertDialog.Footer>
|
|
19
|
+
<AlertDialog.Cancel>Cancel</AlertDialog.Cancel>
|
|
20
|
+
<AlertDialog.Action>Continue</AlertDialog.Action>
|
|
21
|
+
</AlertDialog.Footer>
|
|
22
|
+
</AlertDialog.Content>
|
|
23
|
+
</AlertDialog.Root>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import AlertCircleIcon from "@lucide/svelte/icons/alert-circle";
|
|
3
|
+
import CheckCircle2Icon from "@lucide/svelte/icons/check-circle-2";
|
|
4
|
+
import PopcornIcon from "@lucide/svelte/icons/popcorn";
|
|
5
|
+
import * as Alert from "../../../shadcn/alert/index.js";
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<div class="grid w-full max-w-xl items-start gap-4">
|
|
9
|
+
<Alert.Root>
|
|
10
|
+
<CheckCircle2Icon />
|
|
11
|
+
<Alert.Title>Success! Your changes have been saved</Alert.Title>
|
|
12
|
+
<Alert.Description>This is an alert with icon, title and description.</Alert.Description>
|
|
13
|
+
</Alert.Root>
|
|
14
|
+
<Alert.Root>
|
|
15
|
+
<PopcornIcon />
|
|
16
|
+
<Alert.Title>This Alert has a title and an icon. No description.</Alert.Title>
|
|
17
|
+
</Alert.Root>
|
|
18
|
+
<Alert.Root variant="destructive">
|
|
19
|
+
<AlertCircleIcon />
|
|
20
|
+
<Alert.Title>Unable to process your payment.</Alert.Title>
|
|
21
|
+
<Alert.Description>
|
|
22
|
+
<p>Please verify your billing information and try again.</p>
|
|
23
|
+
<ul class="list-inside list-disc text-sm">
|
|
24
|
+
<li>Check your card details</li>
|
|
25
|
+
<li>Ensure sufficient funds</li>
|
|
26
|
+
<li>Verify billing address</li>
|
|
27
|
+
</ul>
|
|
28
|
+
</Alert.Description>
|
|
29
|
+
</Alert.Root>
|
|
30
|
+
</div>
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import FileCodeIcon from "@lucide/svelte/icons/file-code";
|
|
3
|
+
import XIcon from "@lucide/svelte/icons/x";
|
|
4
|
+
import * as Attachment from "../../../shadcn/attachment/index.js";
|
|
5
|
+
import { Spinner } from "../../../shadcn/spinner/index.js";
|
|
6
|
+
|
|
7
|
+
const images = [
|
|
8
|
+
{
|
|
9
|
+
name: "workspace.png",
|
|
10
|
+
meta: "PNG · 820 KB",
|
|
11
|
+
src: "https://images.unsplash.com/photo-1497366754035-f200968a6e72?w=900&auto=format&fit=crop&q=80",
|
|
12
|
+
alt: "Workspace",
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: "desk-reference.jpg",
|
|
16
|
+
meta: "JPG · 1.1 MB",
|
|
17
|
+
src: "https://images.unsplash.com/photo-1497215728101-856f4ea42174?w=900&auto=format&fit=crop&q=80",
|
|
18
|
+
alt: "Desk",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "office-reference.jpg",
|
|
22
|
+
meta: "JPG · 940 KB",
|
|
23
|
+
src: "https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=900&auto=format&fit=crop&q=80",
|
|
24
|
+
alt: "Office",
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<div class="mx-auto flex w-full max-w-sm flex-col gap-3 py-12">
|
|
30
|
+
<Attachment.Group>
|
|
31
|
+
{#each images as image (image.name)}
|
|
32
|
+
<Attachment.Root orientation="vertical">
|
|
33
|
+
<Attachment.Media variant="image">
|
|
34
|
+
<img src={image.src} alt={image.alt} />
|
|
35
|
+
</Attachment.Media>
|
|
36
|
+
<Attachment.Content>
|
|
37
|
+
<Attachment.Title>{image.name}</Attachment.Title>
|
|
38
|
+
<Attachment.Description>{image.meta}</Attachment.Description>
|
|
39
|
+
</Attachment.Content>
|
|
40
|
+
</Attachment.Root>
|
|
41
|
+
{/each}
|
|
42
|
+
</Attachment.Group>
|
|
43
|
+
<Attachment.Root state="uploading" class="w-full">
|
|
44
|
+
<Attachment.Media>
|
|
45
|
+
<Spinner />
|
|
46
|
+
</Attachment.Media>
|
|
47
|
+
<Attachment.Content>
|
|
48
|
+
<Attachment.Title>sales-dashboard.pdf</Attachment.Title>
|
|
49
|
+
<Attachment.Description>Uploading · 64%</Attachment.Description>
|
|
50
|
+
</Attachment.Content>
|
|
51
|
+
<Attachment.Actions>
|
|
52
|
+
<Attachment.Action aria-label="Cancel upload">
|
|
53
|
+
<XIcon />
|
|
54
|
+
</Attachment.Action>
|
|
55
|
+
</Attachment.Actions>
|
|
56
|
+
</Attachment.Root>
|
|
57
|
+
<Attachment.Root class="w-full">
|
|
58
|
+
<Attachment.Media>
|
|
59
|
+
<FileCodeIcon />
|
|
60
|
+
</Attachment.Media>
|
|
61
|
+
<Attachment.Content>
|
|
62
|
+
<Attachment.Title>message-renderer.tsx</Attachment.Title>
|
|
63
|
+
<Attachment.Description>TypeScript · 12 KB</Attachment.Description>
|
|
64
|
+
</Attachment.Content>
|
|
65
|
+
<Attachment.Actions>
|
|
66
|
+
<Attachment.Action aria-label="Remove message-renderer.tsx">
|
|
67
|
+
<XIcon />
|
|
68
|
+
</Attachment.Action>
|
|
69
|
+
</Attachment.Actions>
|
|
70
|
+
</Attachment.Root>
|
|
71
|
+
</div>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as Avatar from "../../../shadcn/avatar/index.js";
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div class="flex flex-row flex-wrap items-center gap-12">
|
|
6
|
+
<Avatar.Root>
|
|
7
|
+
<Avatar.Image src="https://github.com/shadcn.png" alt="@shadcn" />
|
|
8
|
+
<Avatar.Fallback>CN</Avatar.Fallback>
|
|
9
|
+
</Avatar.Root>
|
|
10
|
+
<Avatar.Root class="rounded-lg">
|
|
11
|
+
<Avatar.Image src="https://github.com/evilrabbit.png" alt="@evilrabbit" />
|
|
12
|
+
<Avatar.Fallback>ER</Avatar.Fallback>
|
|
13
|
+
</Avatar.Root>
|
|
14
|
+
<div
|
|
15
|
+
class="flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background *:data-[slot=avatar]:grayscale"
|
|
16
|
+
>
|
|
17
|
+
<Avatar.Root>
|
|
18
|
+
<Avatar.Image src="https://github.com/shadcn.png" alt="@shadcn" />
|
|
19
|
+
<Avatar.Fallback>CN</Avatar.Fallback>
|
|
20
|
+
</Avatar.Root>
|
|
21
|
+
<Avatar.Root>
|
|
22
|
+
<Avatar.Image src="https://github.com/leerob.png" alt="@leerob" />
|
|
23
|
+
<Avatar.Fallback>LR</Avatar.Fallback>
|
|
24
|
+
</Avatar.Root>
|
|
25
|
+
<Avatar.Root>
|
|
26
|
+
<Avatar.Image src="https://github.com/evilrabbit.png" alt="@evilrabbit" />
|
|
27
|
+
<Avatar.Fallback>ER</Avatar.Fallback>
|
|
28
|
+
</Avatar.Root>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import BadgeCheckIcon from "@lucide/svelte/icons/badge-check";
|
|
3
|
+
import { Badge } from "../../../shadcn/badge/index.js";
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<div class="flex flex-col items-center gap-2">
|
|
7
|
+
<div class="flex w-full flex-wrap gap-2">
|
|
8
|
+
<Badge>Badge</Badge>
|
|
9
|
+
<Badge variant="secondary">Secondary</Badge>
|
|
10
|
+
<Badge variant="destructive">Destructive</Badge>
|
|
11
|
+
<Badge variant="outline">Outline</Badge>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="flex w-full flex-wrap gap-2">
|
|
14
|
+
<Badge variant="secondary" class="bg-blue-500 text-white dark:bg-blue-600">
|
|
15
|
+
<BadgeCheckIcon />
|
|
16
|
+
Verified
|
|
17
|
+
</Badge>
|
|
18
|
+
<Badge class="h-5 min-w-5 rounded-full px-1 font-mono tabular-nums">8</Badge>
|
|
19
|
+
<Badge class="h-5 min-w-5 rounded-full px-1 font-mono tabular-nums" variant="destructive">
|
|
20
|
+
99
|
|
21
|
+
</Badge>
|
|
22
|
+
<Badge class="h-5 min-w-5 rounded-full px-1 font-mono tabular-nums" variant="outline">
|
|
23
|
+
20+
|
|
24
|
+
</Badge>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as Breadcrumb from "../../../shadcn/breadcrumb/index.js";
|
|
3
|
+
import * as DropdownMenu from "../../../shadcn/dropdown-menu/index.js";
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<Breadcrumb.Root>
|
|
7
|
+
<Breadcrumb.List>
|
|
8
|
+
<Breadcrumb.Item>
|
|
9
|
+
<Breadcrumb.Link href="/">Home</Breadcrumb.Link>
|
|
10
|
+
</Breadcrumb.Item>
|
|
11
|
+
<Breadcrumb.Separator />
|
|
12
|
+
<Breadcrumb.Item>
|
|
13
|
+
<DropdownMenu.Root>
|
|
14
|
+
<DropdownMenu.Trigger class="flex items-center gap-1">
|
|
15
|
+
<Breadcrumb.Ellipsis class="size-4" />
|
|
16
|
+
<span class="sr-only">Toggle menu</span>
|
|
17
|
+
</DropdownMenu.Trigger>
|
|
18
|
+
<DropdownMenu.Content align="start">
|
|
19
|
+
<DropdownMenu.Item>Documentation</DropdownMenu.Item>
|
|
20
|
+
<DropdownMenu.Item>Themes</DropdownMenu.Item>
|
|
21
|
+
<DropdownMenu.Item>GitHub</DropdownMenu.Item>
|
|
22
|
+
</DropdownMenu.Content>
|
|
23
|
+
</DropdownMenu.Root>
|
|
24
|
+
</Breadcrumb.Item>
|
|
25
|
+
<Breadcrumb.Separator />
|
|
26
|
+
<Breadcrumb.Item>
|
|
27
|
+
<Breadcrumb.Link href="/docs/components">Components</Breadcrumb.Link>
|
|
28
|
+
</Breadcrumb.Item>
|
|
29
|
+
<Breadcrumb.Separator />
|
|
30
|
+
<Breadcrumb.Item>
|
|
31
|
+
<Breadcrumb.Page>Breadcrumb</Breadcrumb.Page>
|
|
32
|
+
</Breadcrumb.Item>
|
|
33
|
+
</Breadcrumb.List>
|
|
34
|
+
</Breadcrumb.Root>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as Bubble from "../../../shadcn/bubble/index.js";
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div class="flex w-full max-w-sm flex-col gap-8 py-12">
|
|
6
|
+
<Bubble.Root align="end">
|
|
7
|
+
<Bubble.Content>Hey there! what's up?</Bubble.Content>
|
|
8
|
+
</Bubble.Root>
|
|
9
|
+
<Bubble.Group>
|
|
10
|
+
<Bubble.Root variant="muted">
|
|
11
|
+
<Bubble.Content>Hey! Want to see chat bubbles?</Bubble.Content>
|
|
12
|
+
</Bubble.Root>
|
|
13
|
+
<Bubble.Root variant="muted">
|
|
14
|
+
<Bubble.Content>
|
|
15
|
+
I can group messages, switch sides, and keep the whole thread easy to scan.
|
|
16
|
+
</Bubble.Content>
|
|
17
|
+
<Bubble.Reactions role="img" aria-label="Reaction: thumbs up">
|
|
18
|
+
<span>👍</span>
|
|
19
|
+
</Bubble.Reactions>
|
|
20
|
+
</Bubble.Root>
|
|
21
|
+
</Bubble.Group>
|
|
22
|
+
<Bubble.Root align="end">
|
|
23
|
+
<Bubble.Content>Sure. Hit me with your best demo.</Bubble.Content>
|
|
24
|
+
</Bubble.Root>
|
|
25
|
+
<Bubble.Root variant="muted">
|
|
26
|
+
<Bubble.Content>
|
|
27
|
+
Yes. You are reading a demo that is demoing itself. Very meta. Very on-brand.
|
|
28
|
+
</Bubble.Content>
|
|
29
|
+
<Bubble.Reactions role="img" aria-label="Reactions: thumbs up, fire, eyes, and 2 more">
|
|
30
|
+
<span>👍</span>
|
|
31
|
+
<span>🔥</span>
|
|
32
|
+
<span>👀</span>
|
|
33
|
+
<span>+2</span>
|
|
34
|
+
</Bubble.Reactions>
|
|
35
|
+
</Bubble.Root>
|
|
36
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import ArrowUpIcon from "@lucide/svelte/icons/arrow-up";
|
|
3
|
+
import { Button } from "../../../shadcn/button/index.js";
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<div class="flex flex-wrap items-center gap-2 md:flex-row">
|
|
7
|
+
<Button variant="outline">Button</Button>
|
|
8
|
+
<Button variant="outline" size="icon" aria-label="Submit">
|
|
9
|
+
<ArrowUpIcon />
|
|
10
|
+
</Button>
|
|
11
|
+
</div>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { getLocalTimeZone, today } from "@internationalized/date";
|
|
3
|
+
import { Calendar } from "../../../shadcn/calendar/index.js";
|
|
4
|
+
|
|
5
|
+
let value = today(getLocalTimeZone());
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<Calendar type="single" bind:value class="rounded-md border shadow-sm" captionLayout="dropdown" />
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as Card from "../../../shadcn/card/index.js";
|
|
3
|
+
import { Button } from "../../../shadcn/button/index.js";
|
|
4
|
+
import { Input } from "../../../shadcn/input/index.js";
|
|
5
|
+
import { Label } from "../../../shadcn/label/index.js";
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<Card.Root class="-my-4 w-full max-w-sm">
|
|
9
|
+
<Card.Header>
|
|
10
|
+
<Card.Title>Login to your account</Card.Title>
|
|
11
|
+
<Card.Description>Enter your email below to login to your account</Card.Description>
|
|
12
|
+
<Card.Action>
|
|
13
|
+
<Button variant="link">Sign Up</Button>
|
|
14
|
+
</Card.Action>
|
|
15
|
+
</Card.Header>
|
|
16
|
+
<Card.Content>
|
|
17
|
+
<form>
|
|
18
|
+
<div class="flex flex-col gap-6">
|
|
19
|
+
<div class="grid gap-2">
|
|
20
|
+
<Label for="email">Email</Label>
|
|
21
|
+
<Input id="email" type="email" placeholder="m@example.com" required />
|
|
22
|
+
</div>
|
|
23
|
+
<div class="grid gap-2">
|
|
24
|
+
<div class="flex items-center">
|
|
25
|
+
<Label for="password">Password</Label>
|
|
26
|
+
<a href="##" class="ms-auto inline-block text-sm underline-offset-4 hover:underline">
|
|
27
|
+
Forgot your password?
|
|
28
|
+
</a>
|
|
29
|
+
</div>
|
|
30
|
+
<Input id="password" type="password" required />
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</form>
|
|
34
|
+
</Card.Content>
|
|
35
|
+
<Card.Footer class="flex-col gap-2">
|
|
36
|
+
<Button type="submit" class="w-full">Login</Button>
|
|
37
|
+
<Button variant="outline" class="w-full">Login with Google</Button>
|
|
38
|
+
</Card.Footer>
|
|
39
|
+
</Card.Root>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Checkbox } from "../../../shadcn/checkbox/index.js";
|
|
3
|
+
import { Label } from "../../../shadcn/label/index.js";
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<div class="flex flex-col gap-6">
|
|
7
|
+
<div class="flex items-center gap-3">
|
|
8
|
+
<Checkbox id="terms" />
|
|
9
|
+
<Label for="terms">Accept terms and conditions</Label>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="flex items-start gap-3">
|
|
12
|
+
<Checkbox id="terms-2" checked />
|
|
13
|
+
<div class="grid gap-2">
|
|
14
|
+
<Label for="terms-2">Accept terms and conditions</Label>
|
|
15
|
+
<p class="text-sm text-muted-foreground">
|
|
16
|
+
By clicking this checkbox, you agree to the terms and conditions.
|
|
17
|
+
</p>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="flex items-start gap-3">
|
|
21
|
+
<Checkbox id="toggle" disabled />
|
|
22
|
+
<Label for="toggle">Enable notifications</Label>
|
|
23
|
+
</div>
|
|
24
|
+
<Label
|
|
25
|
+
class="flex items-start gap-3 rounded-lg border p-3 hover:bg-accent/50 has-[[aria-checked=true]]:border-blue-600 has-[[aria-checked=true]]:bg-blue-50 dark:has-[[aria-checked=true]]:border-blue-900 dark:has-[[aria-checked=true]]:bg-blue-950"
|
|
26
|
+
>
|
|
27
|
+
<Checkbox
|
|
28
|
+
id="toggle-2"
|
|
29
|
+
checked
|
|
30
|
+
class="data-[state=checked]:border-blue-600 data-[state=checked]:bg-blue-600 data-[state=checked]:text-white dark:data-[state=checked]:border-blue-700 dark:data-[state=checked]:bg-blue-700"
|
|
31
|
+
/>
|
|
32
|
+
<div class="grid gap-1.5 font-normal">
|
|
33
|
+
<p class="text-sm leading-none font-medium">Enable notifications</p>
|
|
34
|
+
<p class="text-sm text-muted-foreground">
|
|
35
|
+
You can enable or disable notifications at any time.
|
|
36
|
+
</p>
|
|
37
|
+
</div>
|
|
38
|
+
</Label>
|
|
39
|
+
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import ChevronsUpDownIcon from "@lucide/svelte/icons/chevrons-up-down";
|
|
3
|
+
import * as Collapsible from "../../../shadcn/collapsible/index.js";
|
|
4
|
+
import { buttonVariants } from "../../../shadcn/button/index.js";
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<Collapsible.Root class="w-[350px] space-y-2">
|
|
8
|
+
<div class="flex items-center justify-between space-x-4 px-4">
|
|
9
|
+
<h4 class="text-sm font-semibold">@huntabyte starred 3 repositories</h4>
|
|
10
|
+
<Collapsible.Trigger class={buttonVariants({ variant: "ghost", size: "sm", class: "w-9 p-0" })}>
|
|
11
|
+
<ChevronsUpDownIcon />
|
|
12
|
+
<span class="sr-only">Toggle</span>
|
|
13
|
+
</Collapsible.Trigger>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="rounded-md border px-4 py-3 font-mono text-sm">@huntabyte/bits-ui</div>
|
|
16
|
+
<Collapsible.Content class="space-y-2">
|
|
17
|
+
<div class="rounded-md border px-4 py-3 font-mono text-sm">@melt-ui/melt-ui</div>
|
|
18
|
+
<div class="rounded-md border px-4 py-3 font-mono text-sm">@sveltejs/svelte</div>
|
|
19
|
+
</Collapsible.Content>
|
|
20
|
+
</Collapsible.Root>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import CalculatorIcon from "@lucide/svelte/icons/calculator";
|
|
3
|
+
import CalendarIcon from "@lucide/svelte/icons/calendar";
|
|
4
|
+
import CreditCardIcon from "@lucide/svelte/icons/credit-card";
|
|
5
|
+
import SettingsIcon from "@lucide/svelte/icons/settings";
|
|
6
|
+
import SmileIcon from "@lucide/svelte/icons/smile";
|
|
7
|
+
import UserIcon from "@lucide/svelte/icons/user";
|
|
8
|
+
import * as Command from "../../../shadcn/command/index.js";
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<Command.Root class="rounded-lg border shadow-md md:min-w-[450px]">
|
|
12
|
+
<Command.Input placeholder="Type a command or search..." />
|
|
13
|
+
<Command.List>
|
|
14
|
+
<Command.Empty>No results found.</Command.Empty>
|
|
15
|
+
<Command.Group heading="Suggestions">
|
|
16
|
+
<Command.Item>
|
|
17
|
+
<CalendarIcon />
|
|
18
|
+
<span>Calendar</span>
|
|
19
|
+
</Command.Item>
|
|
20
|
+
<Command.Item>
|
|
21
|
+
<SmileIcon />
|
|
22
|
+
<span>Search Emoji</span>
|
|
23
|
+
</Command.Item>
|
|
24
|
+
<Command.Item disabled>
|
|
25
|
+
<CalculatorIcon />
|
|
26
|
+
<span>Calculator</span>
|
|
27
|
+
</Command.Item>
|
|
28
|
+
</Command.Group>
|
|
29
|
+
<Command.Separator />
|
|
30
|
+
<Command.Group heading="Settings">
|
|
31
|
+
<Command.Item>
|
|
32
|
+
<UserIcon />
|
|
33
|
+
<span>Profile</span>
|
|
34
|
+
<Command.Shortcut>⌘P</Command.Shortcut>
|
|
35
|
+
</Command.Item>
|
|
36
|
+
<Command.Item>
|
|
37
|
+
<CreditCardIcon />
|
|
38
|
+
<span>Billing</span>
|
|
39
|
+
<Command.Shortcut>⌘B</Command.Shortcut>
|
|
40
|
+
</Command.Item>
|
|
41
|
+
<Command.Item>
|
|
42
|
+
<SettingsIcon />
|
|
43
|
+
<span>Settings</span>
|
|
44
|
+
<Command.Shortcut>⌘S</Command.Shortcut>
|
|
45
|
+
</Command.Item>
|
|
46
|
+
</Command.Group>
|
|
47
|
+
</Command.List>
|
|
48
|
+
</Command.Root>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as ContextMenu from "../../../shadcn/context-menu/index.js";
|
|
3
|
+
|
|
4
|
+
let showBookmarks = $state(false);
|
|
5
|
+
let showFullURLs = $state(true);
|
|
6
|
+
|
|
7
|
+
let value = $state("pedro");
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<ContextMenu.Root>
|
|
11
|
+
<ContextMenu.Trigger
|
|
12
|
+
class="flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm"
|
|
13
|
+
>
|
|
14
|
+
Right click here
|
|
15
|
+
</ContextMenu.Trigger>
|
|
16
|
+
<ContextMenu.Content class="w-52">
|
|
17
|
+
<ContextMenu.Item>
|
|
18
|
+
Back
|
|
19
|
+
<ContextMenu.Shortcut>⌘[</ContextMenu.Shortcut>
|
|
20
|
+
</ContextMenu.Item>
|
|
21
|
+
<ContextMenu.Item disabled>
|
|
22
|
+
Forward
|
|
23
|
+
<ContextMenu.Shortcut>⌘]</ContextMenu.Shortcut>
|
|
24
|
+
</ContextMenu.Item>
|
|
25
|
+
<ContextMenu.Item>
|
|
26
|
+
Reload
|
|
27
|
+
<ContextMenu.Shortcut>⌘R</ContextMenu.Shortcut>
|
|
28
|
+
</ContextMenu.Item>
|
|
29
|
+
<ContextMenu.Sub>
|
|
30
|
+
<ContextMenu.SubTrigger>More Tools</ContextMenu.SubTrigger>
|
|
31
|
+
<ContextMenu.SubContent class="w-48">
|
|
32
|
+
<ContextMenu.Item>
|
|
33
|
+
Save Page As...
|
|
34
|
+
<ContextMenu.Shortcut>⇧⌘S</ContextMenu.Shortcut>
|
|
35
|
+
</ContextMenu.Item>
|
|
36
|
+
<ContextMenu.Item>Create Shortcut...</ContextMenu.Item>
|
|
37
|
+
<ContextMenu.Item>Name Window...</ContextMenu.Item>
|
|
38
|
+
<ContextMenu.Separator />
|
|
39
|
+
<ContextMenu.Item>Developer Tools</ContextMenu.Item>
|
|
40
|
+
</ContextMenu.SubContent>
|
|
41
|
+
</ContextMenu.Sub>
|
|
42
|
+
<ContextMenu.Separator />
|
|
43
|
+
<ContextMenu.CheckboxItem bind:checked={showBookmarks}>Show Bookmarks</ContextMenu.CheckboxItem>
|
|
44
|
+
<ContextMenu.CheckboxItem bind:checked={showFullURLs}>Show Full URLs</ContextMenu.CheckboxItem>
|
|
45
|
+
<ContextMenu.Separator />
|
|
46
|
+
<ContextMenu.RadioGroup bind:value>
|
|
47
|
+
<ContextMenu.Group>
|
|
48
|
+
<ContextMenu.Label>People</ContextMenu.Label>
|
|
49
|
+
<ContextMenu.RadioItem value="pedro">Pedro Duarte</ContextMenu.RadioItem>
|
|
50
|
+
<ContextMenu.RadioItem value="colm">Colm Tuite</ContextMenu.RadioItem>
|
|
51
|
+
</ContextMenu.Group>
|
|
52
|
+
</ContextMenu.RadioGroup>
|
|
53
|
+
</ContextMenu.Content>
|
|
54
|
+
</ContextMenu.Root>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
// What ShadcnSection puts around a demo, so the test mounts what the page
|
|
3
|
+
// mounts: `input-group` reaches for a tooltip provider it does not create.
|
|
4
|
+
import type { Component } from "svelte";
|
|
5
|
+
import { TooltipProvider } from "../../../shadcn/tooltip/index.js";
|
|
6
|
+
|
|
7
|
+
let { Comp }: { Comp: Component } = $props();
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<TooltipProvider>
|
|
11
|
+
<Comp />
|
|
12
|
+
</TooltipProvider>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// The demos are upstream's and arrive by script, so nothing reviews them before
|
|
2
|
+
// they land. This is the gate: every one of them mounts and draws something.
|
|
3
|
+
import { flushSync, mount, unmount } from "svelte";
|
|
4
|
+
import { describe, expect, it } from "vite-plus/test";
|
|
5
|
+
import Harness from "./demo-harness.svelte";
|
|
6
|
+
import { SHADCN_DEMOS } from "./index.js";
|
|
7
|
+
|
|
8
|
+
describe("shadcn demos", () => {
|
|
9
|
+
for (const demo of SHADCN_DEMOS) {
|
|
10
|
+
it(`${demo.name} renders`, () => {
|
|
11
|
+
const target = document.createElement("div");
|
|
12
|
+
document.body.appendChild(target);
|
|
13
|
+
const app = mount(Harness, { target, props: { Comp: demo.Comp } });
|
|
14
|
+
flushSync();
|
|
15
|
+
expect(target.innerHTML.length).toBeGreaterThan(0);
|
|
16
|
+
void unmount(app);
|
|
17
|
+
target.remove();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as Dialog from "../../../shadcn/dialog/index.js";
|
|
3
|
+
import { Button, buttonVariants } from "../../../shadcn/button/index.js";
|
|
4
|
+
import { Input } from "../../../shadcn/input/index.js";
|
|
5
|
+
import { Label } from "../../../shadcn/label/index.js";
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<Dialog.Root>
|
|
9
|
+
<form>
|
|
10
|
+
<Dialog.Trigger type="button" class={buttonVariants({ variant: "outline" })}>
|
|
11
|
+
Open Dialog
|
|
12
|
+
</Dialog.Trigger>
|
|
13
|
+
<Dialog.Content class="sm:max-w-[425px]">
|
|
14
|
+
<Dialog.Header>
|
|
15
|
+
<Dialog.Title>Edit profile</Dialog.Title>
|
|
16
|
+
<Dialog.Description>
|
|
17
|
+
Make changes to your profile here. Click save when you're done.
|
|
18
|
+
</Dialog.Description>
|
|
19
|
+
</Dialog.Header>
|
|
20
|
+
<div class="grid gap-4">
|
|
21
|
+
<div class="grid gap-3">
|
|
22
|
+
<Label for="name-1">Name</Label>
|
|
23
|
+
<Input id="name-1" name="name" defaultValue="Pedro Duarte" />
|
|
24
|
+
</div>
|
|
25
|
+
<div class="grid gap-3">
|
|
26
|
+
<Label for="username-1">Username</Label>
|
|
27
|
+
<Input id="username-1" name="username" defaultValue="@peduarte" />
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
<Dialog.Footer>
|
|
31
|
+
<Dialog.Close type="button" class={buttonVariants({ variant: "outline" })}>
|
|
32
|
+
Cancel
|
|
33
|
+
</Dialog.Close>
|
|
34
|
+
<Button type="submit">Save changes</Button>
|
|
35
|
+
</Dialog.Footer>
|
|
36
|
+
</Dialog.Content>
|
|
37
|
+
</form>
|
|
38
|
+
</Dialog.Root>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as DropdownMenu from "../../../shadcn/dropdown-menu/index.js";
|
|
3
|
+
import { Button } from "../../../shadcn/button/index.js";
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<DropdownMenu.Root>
|
|
7
|
+
<DropdownMenu.Trigger>
|
|
8
|
+
{#snippet child({ props })}
|
|
9
|
+
<Button {...props} variant="outline">Open</Button>
|
|
10
|
+
{/snippet}
|
|
11
|
+
</DropdownMenu.Trigger>
|
|
12
|
+
<DropdownMenu.Content class="w-56" align="start">
|
|
13
|
+
<DropdownMenu.Label>My Account</DropdownMenu.Label>
|
|
14
|
+
<DropdownMenu.Group>
|
|
15
|
+
<DropdownMenu.Item>
|
|
16
|
+
Profile
|
|
17
|
+
<DropdownMenu.Shortcut>⇧⌘P</DropdownMenu.Shortcut>
|
|
18
|
+
</DropdownMenu.Item>
|
|
19
|
+
<DropdownMenu.Item>
|
|
20
|
+
Billing
|
|
21
|
+
<DropdownMenu.Shortcut>⌘B</DropdownMenu.Shortcut>
|
|
22
|
+
</DropdownMenu.Item>
|
|
23
|
+
<DropdownMenu.Item>
|
|
24
|
+
Settings
|
|
25
|
+
<DropdownMenu.Shortcut>⌘S</DropdownMenu.Shortcut>
|
|
26
|
+
</DropdownMenu.Item>
|
|
27
|
+
<DropdownMenu.Item>
|
|
28
|
+
Keyboard shortcuts
|
|
29
|
+
<DropdownMenu.Shortcut>⌘K</DropdownMenu.Shortcut>
|
|
30
|
+
</DropdownMenu.Item>
|
|
31
|
+
</DropdownMenu.Group>
|
|
32
|
+
<DropdownMenu.Separator />
|
|
33
|
+
<DropdownMenu.Group>
|
|
34
|
+
<DropdownMenu.Item>Team</DropdownMenu.Item>
|
|
35
|
+
<DropdownMenu.Sub>
|
|
36
|
+
<DropdownMenu.SubTrigger>Invite users</DropdownMenu.SubTrigger>
|
|
37
|
+
<DropdownMenu.SubContent>
|
|
38
|
+
<DropdownMenu.Item>Email</DropdownMenu.Item>
|
|
39
|
+
<DropdownMenu.Item>Message</DropdownMenu.Item>
|
|
40
|
+
<DropdownMenu.Separator />
|
|
41
|
+
<DropdownMenu.Item>More...</DropdownMenu.Item>
|
|
42
|
+
</DropdownMenu.SubContent>
|
|
43
|
+
</DropdownMenu.Sub>
|
|
44
|
+
<DropdownMenu.Item>
|
|
45
|
+
New Team
|
|
46
|
+
<DropdownMenu.Shortcut>⌘+T</DropdownMenu.Shortcut>
|
|
47
|
+
</DropdownMenu.Item>
|
|
48
|
+
</DropdownMenu.Group>
|
|
49
|
+
<DropdownMenu.Separator />
|
|
50
|
+
<DropdownMenu.Item>GitHub</DropdownMenu.Item>
|
|
51
|
+
<DropdownMenu.Item>Support</DropdownMenu.Item>
|
|
52
|
+
<DropdownMenu.Item disabled>API</DropdownMenu.Item>
|
|
53
|
+
<DropdownMenu.Separator />
|
|
54
|
+
<DropdownMenu.Item>
|
|
55
|
+
Log out
|
|
56
|
+
<DropdownMenu.Shortcut>⇧⌘Q</DropdownMenu.Shortcut>
|
|
57
|
+
</DropdownMenu.Item>
|
|
58
|
+
</DropdownMenu.Content>
|
|
59
|
+
</DropdownMenu.Root>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import ArrowUpRightIcon from "@lucide/svelte/icons/arrow-up-right";
|
|
3
|
+
import FolderCodeIcon from "@tabler/icons-svelte-runes/icons/folder-code";
|
|
4
|
+
import * as Empty from "../../../shadcn/empty/index.js";
|
|
5
|
+
import { Button } from "../../../shadcn/button/index.js";
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<Empty.Root>
|
|
9
|
+
<Empty.Header>
|
|
10
|
+
<Empty.Media variant="icon">
|
|
11
|
+
<FolderCodeIcon />
|
|
12
|
+
</Empty.Media>
|
|
13
|
+
<Empty.Title>No Projects Yet</Empty.Title>
|
|
14
|
+
<Empty.Description>
|
|
15
|
+
You haven't created any projects yet. Get started by creating your first project.
|
|
16
|
+
</Empty.Description>
|
|
17
|
+
</Empty.Header>
|
|
18
|
+
<Empty.Content>
|
|
19
|
+
<div class="flex gap-2">
|
|
20
|
+
<Button>Create Project</Button>
|
|
21
|
+
<Button variant="outline">Import Project</Button>
|
|
22
|
+
</div>
|
|
23
|
+
</Empty.Content>
|
|
24
|
+
<Button variant="link" class="text-muted-foreground" size="sm">
|
|
25
|
+
<a href="#/">
|
|
26
|
+
Learn More <ArrowUpRightIcon class="inline" />
|
|
27
|
+
</a>
|
|
28
|
+
</Button>
|
|
29
|
+
</Empty.Root>
|