├── .env.example ├── .eslintrc.json ├── .gitignore ├── LICENSE ├── README.md ├── bun.lockb ├── components.json ├── next.config.js ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── next.svg ├── placeholder-user.jpg ├── placeholder.svg ├── registry │ └── themes.css ├── rh-logo-2024.svg ├── rh-logo.svg ├── tinte-2.png ├── tinte.png └── vercel.svg ├── src ├── __registry__ │ ├── .autogenerated │ ├── .gitkeep │ ├── README.md │ ├── default │ │ ├── block │ │ │ ├── authentication-01.tsx │ │ │ ├── authentication-02.tsx │ │ │ ├── authentication-03.tsx │ │ │ ├── authentication-04.tsx │ │ │ ├── dashboard-01.tsx │ │ │ ├── dashboard-02.tsx │ │ │ ├── dashboard-03.tsx │ │ │ ├── dashboard-04.tsx │ │ │ ├── dashboard-05.tsx │ │ │ ├── dashboard-06.tsx │ │ │ └── dashboard-07.tsx │ │ ├── example │ │ │ ├── accordion-demo.tsx │ │ │ ├── alert-demo.tsx │ │ │ ├── alert-destructive.tsx │ │ │ ├── alert-dialog-demo.tsx │ │ │ ├── aspect-ratio-demo.tsx │ │ │ ├── avatar-demo.tsx │ │ │ ├── badge-demo.tsx │ │ │ ├── badge-destructive.tsx │ │ │ ├── badge-outline.tsx │ │ │ ├── badge-secondary.tsx │ │ │ ├── breadcrumb-demo.tsx │ │ │ ├── breadcrumb-dropdown.tsx │ │ │ ├── breadcrumb-ellipsis.tsx │ │ │ ├── breadcrumb-link.tsx │ │ │ ├── breadcrumb-responsive.tsx │ │ │ ├── breadcrumb-separator.tsx │ │ │ ├── button-as-child.tsx │ │ │ ├── button-demo.tsx │ │ │ ├── button-destructive.tsx │ │ │ ├── button-ghost.tsx │ │ │ ├── button-icon.tsx │ │ │ ├── button-link.tsx │ │ │ ├── button-loading.tsx │ │ │ ├── button-outline.tsx │ │ │ ├── button-secondary.tsx │ │ │ ├── button-with-icon.tsx │ │ │ ├── calendar-demo.tsx │ │ │ ├── calendar-form.tsx │ │ │ ├── card-demo.tsx │ │ │ ├── card-with-form.tsx │ │ │ ├── carousel-api.tsx │ │ │ ├── carousel-demo.tsx │ │ │ ├── carousel-orientation.tsx │ │ │ ├── carousel-plugin.tsx │ │ │ ├── carousel-size.tsx │ │ │ ├── carousel-spacing.tsx │ │ │ ├── checkbox-demo.tsx │ │ │ ├── checkbox-disabled.tsx │ │ │ ├── checkbox-form-multiple.tsx │ │ │ ├── checkbox-form-single.tsx │ │ │ ├── checkbox-with-text.tsx │ │ │ ├── collapsible-demo.tsx │ │ │ ├── combobox-demo.tsx │ │ │ ├── combobox-dropdown-menu.tsx │ │ │ ├── combobox-form.tsx │ │ │ ├── combobox-popover.tsx │ │ │ ├── combobox-responsive.tsx │ │ │ ├── command-demo.tsx │ │ │ ├── command-dialog.tsx │ │ │ ├── context-menu-demo.tsx │ │ │ ├── data-table-demo.tsx │ │ │ ├── date-picker-demo.tsx │ │ │ ├── date-picker-form.tsx │ │ │ ├── date-picker-with-presets.tsx │ │ │ ├── date-picker-with-range.tsx │ │ │ ├── dialog-close-button.tsx │ │ │ ├── dialog-demo.tsx │ │ │ ├── drawer-demo.tsx │ │ │ ├── drawer-dialog.tsx │ │ │ ├── dropdown-menu-checkboxes.tsx │ │ │ ├── dropdown-menu-demo.tsx │ │ │ ├── dropdown-menu-radio-group.tsx │ │ │ ├── hover-card-demo.tsx │ │ │ ├── input-demo.tsx │ │ │ ├── input-disabled.tsx │ │ │ ├── input-file.tsx │ │ │ ├── input-form.tsx │ │ │ ├── input-otp-controlled.tsx │ │ │ ├── input-otp-demo.tsx │ │ │ ├── input-otp-form.tsx │ │ │ ├── input-otp-pattern.tsx │ │ │ ├── input-otp-separator.tsx │ │ │ ├── input-with-button.tsx │ │ │ ├── input-with-label.tsx │ │ │ ├── input-with-text.tsx │ │ │ ├── label-demo.tsx │ │ │ ├── menubar-demo.tsx │ │ │ ├── mode-toggle.tsx │ │ │ ├── navigation-menu-demo.tsx │ │ │ ├── pagination-demo.tsx │ │ │ ├── popover-demo.tsx │ │ │ ├── progress-demo.tsx │ │ │ ├── radio-group-demo.tsx │ │ │ ├── radio-group-form.tsx │ │ │ ├── resizable-demo-with-handle.tsx │ │ │ ├── resizable-demo.tsx │ │ │ ├── resizable-handle.tsx │ │ │ ├── resizable-vertical.tsx │ │ │ ├── scroll-area-demo.tsx │ │ │ ├── scroll-area-horizontal-demo.tsx │ │ │ ├── select-demo.tsx │ │ │ ├── select-form.tsx │ │ │ ├── select-scrollable.tsx │ │ │ ├── separator-demo.tsx │ │ │ ├── sheet-demo.tsx │ │ │ ├── sheet-side.tsx │ │ │ ├── skeleton-card.tsx │ │ │ ├── skeleton-demo.tsx │ │ │ ├── slider-demo.tsx │ │ │ ├── sonner-demo.tsx │ │ │ ├── switch-demo.tsx │ │ │ ├── switch-form.tsx │ │ │ ├── table-demo.tsx │ │ │ ├── tabs-demo.tsx │ │ │ ├── textarea-demo.tsx │ │ │ ├── textarea-disabled.tsx │ │ │ ├── textarea-form.tsx │ │ │ ├── textarea-with-button.tsx │ │ │ ├── textarea-with-label.tsx │ │ │ ├── textarea-with-text.tsx │ │ │ ├── toast-demo.tsx │ │ │ ├── toast-destructive.tsx │ │ │ ├── toast-simple.tsx │ │ │ ├── toast-with-action.tsx │ │ │ ├── toast-with-title.tsx │ │ │ ├── toggle-demo.tsx │ │ │ ├── toggle-disabled.tsx │ │ │ ├── toggle-group-demo.tsx │ │ │ ├── toggle-group-disabled.tsx │ │ │ ├── toggle-group-lg.tsx │ │ │ ├── toggle-group-outline.tsx │ │ │ ├── toggle-group-single.tsx │ │ │ ├── toggle-group-sm.tsx │ │ │ ├── toggle-lg.tsx │ │ │ ├── toggle-outline.tsx │ │ │ ├── toggle-sm.tsx │ │ │ ├── toggle-with-text.tsx │ │ │ ├── tooltip-demo.tsx │ │ │ ├── typography-blockquote.tsx │ │ │ ├── typography-demo.tsx │ │ │ ├── typography-h1.tsx │ │ │ ├── typography-h2.tsx │ │ │ ├── typography-h3.tsx │ │ │ ├── typography-h4.tsx │ │ │ ├── typography-inline-code.tsx │ │ │ ├── typography-large.tsx │ │ │ ├── typography-lead.tsx │ │ │ ├── typography-list.tsx │ │ │ ├── typography-muted.tsx │ │ │ ├── typography-p.tsx │ │ │ ├── typography-small.tsx │ │ │ └── typography-table.tsx │ │ └── ui │ │ │ ├── accordion.tsx │ │ │ ├── alert-dialog.tsx │ │ │ ├── alert.tsx │ │ │ ├── aspect-ratio.tsx │ │ │ ├── avatar.tsx │ │ │ ├── badge.tsx │ │ │ ├── breadcrumb.tsx │ │ │ ├── button.tsx │ │ │ ├── calendar.tsx │ │ │ ├── card.tsx │ │ │ ├── carousel.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── collapsible.tsx │ │ │ ├── command.tsx │ │ │ ├── context-menu.tsx │ │ │ ├── dialog.tsx │ │ │ ├── drawer.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── form.tsx │ │ │ ├── hover-card.tsx │ │ │ ├── input-otp.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── menubar.tsx │ │ │ ├── navigation-menu.tsx │ │ │ ├── pagination.tsx │ │ │ ├── popover.tsx │ │ │ ├── progress.tsx │ │ │ ├── radio-group.tsx │ │ │ ├── resizable.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── slider.tsx │ │ │ ├── sonner.tsx │ │ │ ├── switch.tsx │ │ │ ├── table.tsx │ │ │ ├── tabs.tsx │ │ │ ├── textarea.tsx │ │ │ ├── toast.tsx │ │ │ ├── toggle-group.tsx │ │ │ ├── toggle.tsx │ │ │ └── tooltip.tsx │ ├── index.tsx │ └── new-york │ │ └── block │ │ ├── authentication-01.tsx │ │ ├── authentication-02.tsx │ │ ├── authentication-03.tsx │ │ ├── authentication-04.tsx │ │ ├── dashboard-01.tsx │ │ ├── dashboard-02.tsx │ │ ├── dashboard-03.tsx │ │ ├── dashboard-04.tsx │ │ ├── dashboard-05.tsx │ │ ├── dashboard-06.tsx │ │ └── dashboard-07.tsx ├── app │ ├── (app) │ │ ├── api │ │ │ ├── subscribe │ │ │ │ └── route.ts │ │ │ └── unsubscribe │ │ │ │ └── route.ts │ │ └── blocks │ │ │ └── page.tsx │ ├── (blocks) │ │ └── blocks │ │ │ └── [style] │ │ │ └── [name] │ │ │ └── page.tsx │ ├── globals.css │ ├── header.tsx │ ├── icon.svg │ ├── layout.tsx │ └── page.tsx ├── components │ ├── block-chunk.tsx │ ├── block-copy-button.tsx │ ├── block-display.tsx │ ├── block-preview.tsx │ ├── block-toolbar.tsx │ ├── block-wrapper.tsx │ ├── copy-button.tsx │ ├── counterscale-script.tsx │ ├── customizer │ │ ├── color-picker-section.tsx │ │ ├── color-section.tsx │ │ ├── color.utils.ts │ │ ├── customizer-header.tsx │ │ ├── mode-section.tsx │ │ ├── radius-section.tsx │ │ └── style-section.tsx │ ├── drawer.tsx │ ├── email-subscribe.tsx │ ├── icons.tsx │ ├── page-header.tsx │ ├── providers.tsx │ ├── style-switcher.tsx │ ├── subscribed-email.tsx │ ├── tabs.tsx │ ├── theme-customizer.tsx │ ├── theme-wrapper.tsx │ └── ui │ │ ├── accordion.tsx │ │ ├── alert-dialog.tsx │ │ ├── alert.tsx │ │ ├── aspect-ratio.tsx │ │ ├── avatar.tsx │ │ ├── badge.tsx │ │ ├── button.tsx │ │ ├── calendar.tsx │ │ ├── card.tsx │ │ ├── checkbox.tsx │ │ ├── collapsible.tsx │ │ ├── command.tsx │ │ ├── context-menu.tsx │ │ ├── dialog.tsx │ │ ├── dropdown-menu.tsx │ │ ├── form.tsx │ │ ├── hover-card.tsx │ │ ├── input.tsx │ │ ├── label.tsx │ │ ├── menubar.tsx │ │ ├── navigation-menu.tsx │ │ ├── popover.tsx │ │ ├── progress.tsx │ │ ├── radio-group.tsx │ │ ├── scroll-area.tsx │ │ ├── select.tsx │ │ ├── separator.tsx │ │ ├── sheet.tsx │ │ ├── skeleton.tsx │ │ ├── slider.tsx │ │ ├── sonner.tsx │ │ ├── switch.tsx │ │ ├── table.tsx │ │ ├── tabs.tsx │ │ ├── textarea.tsx │ │ ├── toast.tsx │ │ ├── toaster.tsx │ │ ├── toggle.tsx │ │ ├── tooltip.tsx │ │ └── use-toast.ts ├── hooks │ ├── use-config.ts │ ├── use-debounce.ts │ ├── use-lift-mode.ts │ └── use-media-query.tsx ├── lib │ ├── blocks.ts │ ├── events.ts │ ├── highlight-code.ts │ ├── themes │ │ ├── dark.json │ │ └── light.json │ └── utils.ts ├── registry │ ├── .eslintrc.json │ ├── blocks.ts │ ├── colors.ts │ ├── default │ │ ├── block │ │ │ ├── authentication-01.tsx │ │ │ ├── authentication-02.tsx │ │ │ ├── authentication-03.tsx │ │ │ ├── authentication-04.tsx │ │ │ ├── dashboard-01-chunk-0.tsx │ │ │ ├── dashboard-01-chunk-1.tsx │ │ │ ├── dashboard-01-chunk-2.tsx │ │ │ ├── dashboard-01-chunk-3.tsx │ │ │ ├── dashboard-01-chunk-4.tsx │ │ │ ├── dashboard-01-chunk-5.tsx │ │ │ ├── dashboard-01.tsx │ │ │ ├── dashboard-02-chunk-0.tsx │ │ │ ├── dashboard-02-chunk-1.tsx │ │ │ ├── dashboard-02.tsx │ │ │ ├── dashboard-03-chunk-0.tsx │ │ │ ├── dashboard-03-chunk-1.tsx │ │ │ ├── dashboard-03.tsx │ │ │ ├── dashboard-04-chunk-0.tsx │ │ │ ├── dashboard-04-chunk-1.tsx │ │ │ ├── dashboard-04-chunk-2.tsx │ │ │ ├── dashboard-04.tsx │ │ │ ├── dashboard-05-chunk-0.tsx │ │ │ ├── dashboard-05-chunk-1.tsx │ │ │ ├── dashboard-05-chunk-2.tsx │ │ │ ├── dashboard-05-chunk-3.tsx │ │ │ ├── dashboard-05-chunk-4.tsx │ │ │ ├── dashboard-05.tsx │ │ │ ├── dashboard-06-chunk-0.tsx │ │ │ ├── dashboard-06.tsx │ │ │ ├── dashboard-07-chunk-0.tsx │ │ │ ├── dashboard-07-chunk-1.tsx │ │ │ ├── dashboard-07-chunk-2.tsx │ │ │ ├── dashboard-07-chunk-3.tsx │ │ │ ├── dashboard-07-chunk-4.tsx │ │ │ ├── dashboard-07-chunk-5.tsx │ │ │ └── dashboard-07.tsx │ │ ├── example │ │ │ ├── accordion-demo.tsx │ │ │ ├── alert-demo.tsx │ │ │ ├── alert-destructive.tsx │ │ │ ├── alert-dialog-demo.tsx │ │ │ ├── aspect-ratio-demo.tsx │ │ │ ├── avatar-demo.tsx │ │ │ ├── badge-demo.tsx │ │ │ ├── badge-destructive.tsx │ │ │ ├── badge-outline.tsx │ │ │ ├── badge-secondary.tsx │ │ │ ├── breadcrumb-demo.tsx │ │ │ ├── breadcrumb-dropdown.tsx │ │ │ ├── breadcrumb-ellipsis.tsx │ │ │ ├── breadcrumb-link.tsx │ │ │ ├── breadcrumb-responsive.tsx │ │ │ ├── breadcrumb-separator.tsx │ │ │ ├── button-as-child.tsx │ │ │ ├── button-demo.tsx │ │ │ ├── button-destructive.tsx │ │ │ ├── button-ghost.tsx │ │ │ ├── button-icon.tsx │ │ │ ├── button-link.tsx │ │ │ ├── button-loading.tsx │ │ │ ├── button-outline.tsx │ │ │ ├── button-secondary.tsx │ │ │ ├── button-with-icon.tsx │ │ │ ├── calendar-demo.tsx │ │ │ ├── calendar-form.tsx │ │ │ ├── calendar-react-hook-form.tsx │ │ │ ├── card-demo.tsx │ │ │ ├── card-with-form.tsx │ │ │ ├── cards │ │ │ │ ├── activity-goal.tsx │ │ │ │ ├── calendar.tsx │ │ │ │ ├── chat.tsx │ │ │ │ ├── cookie-settings.tsx │ │ │ │ ├── create-account.tsx │ │ │ │ ├── data-table.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── metric.tsx │ │ │ │ ├── payment-method.tsx │ │ │ │ ├── report-issue.tsx │ │ │ │ ├── share.tsx │ │ │ │ ├── stats.tsx │ │ │ │ └── team-members.tsx │ │ │ ├── carousel-api.tsx │ │ │ ├── carousel-demo.tsx │ │ │ ├── carousel-orientation.tsx │ │ │ ├── carousel-plugin.tsx │ │ │ ├── carousel-size.tsx │ │ │ ├── carousel-spacing.tsx │ │ │ ├── checkbox-demo.tsx │ │ │ ├── checkbox-disabled.tsx │ │ │ ├── checkbox-form-multiple.tsx │ │ │ ├── checkbox-form-single.tsx │ │ │ ├── checkbox-with-text.tsx │ │ │ ├── collapsible-demo.tsx │ │ │ ├── combobox-demo.tsx │ │ │ ├── combobox-dropdown-menu.tsx │ │ │ ├── combobox-form.tsx │ │ │ ├── combobox-popover.tsx │ │ │ ├── combobox-responsive.tsx │ │ │ ├── command-demo.tsx │ │ │ ├── command-dialog.tsx │ │ │ ├── context-menu-demo.tsx │ │ │ ├── data-table-demo.tsx │ │ │ ├── date-picker-demo.tsx │ │ │ ├── date-picker-form.tsx │ │ │ ├── date-picker-with-presets.tsx │ │ │ ├── date-picker-with-range.tsx │ │ │ ├── dialog-close-button.tsx │ │ │ ├── dialog-demo.tsx │ │ │ ├── drawer-demo.tsx │ │ │ ├── drawer-dialog.tsx │ │ │ ├── dropdown-menu-checkboxes.tsx │ │ │ ├── dropdown-menu-demo.tsx │ │ │ ├── dropdown-menu-radio-group.tsx │ │ │ ├── hover-card-demo.tsx │ │ │ ├── input-demo.tsx │ │ │ ├── input-disabled.tsx │ │ │ ├── input-file.tsx │ │ │ ├── input-form.tsx │ │ │ ├── input-otp-controlled.tsx │ │ │ ├── input-otp-demo.tsx │ │ │ ├── input-otp-form.tsx │ │ │ ├── input-otp-pattern.tsx │ │ │ ├── input-otp-separator.tsx │ │ │ ├── input-with-button.tsx │ │ │ ├── input-with-label.tsx │ │ │ ├── input-with-text.tsx │ │ │ ├── label-demo.tsx │ │ │ ├── menubar-demo.tsx │ │ │ ├── mode-toggle.tsx │ │ │ ├── navigation-menu-demo.tsx │ │ │ ├── pagination-demo.tsx │ │ │ ├── popover-demo.tsx │ │ │ ├── progress-demo.tsx │ │ │ ├── radio-group-demo.tsx │ │ │ ├── radio-group-form.tsx │ │ │ ├── resizable-demo-with-handle.tsx │ │ │ ├── resizable-demo.tsx │ │ │ ├── resizable-handle.tsx │ │ │ ├── resizable-vertical.tsx │ │ │ ├── scroll-area-demo.tsx │ │ │ ├── scroll-area-horizontal-demo.tsx │ │ │ ├── select-demo.tsx │ │ │ ├── select-form.tsx │ │ │ ├── select-scrollable.tsx │ │ │ ├── separator-demo.tsx │ │ │ ├── sheet-demo.tsx │ │ │ ├── sheet-side.tsx │ │ │ ├── skeleton-card.tsx │ │ │ ├── skeleton-demo.tsx │ │ │ ├── slider-demo.tsx │ │ │ ├── sonner-demo.tsx │ │ │ ├── switch-demo.tsx │ │ │ ├── switch-form.tsx │ │ │ ├── table-demo.tsx │ │ │ ├── tabs-demo.tsx │ │ │ ├── textarea-demo.tsx │ │ │ ├── textarea-disabled.tsx │ │ │ ├── textarea-form.tsx │ │ │ ├── textarea-with-button.tsx │ │ │ ├── textarea-with-label.tsx │ │ │ ├── textarea-with-text.tsx │ │ │ ├── toast-demo.tsx │ │ │ ├── toast-destructive.tsx │ │ │ ├── toast-simple.tsx │ │ │ ├── toast-with-action.tsx │ │ │ ├── toast-with-title.tsx │ │ │ ├── toggle-demo.tsx │ │ │ ├── toggle-disabled.tsx │ │ │ ├── toggle-group-demo.tsx │ │ │ ├── toggle-group-disabled.tsx │ │ │ ├── toggle-group-lg.tsx │ │ │ ├── toggle-group-outline.tsx │ │ │ ├── toggle-group-single.tsx │ │ │ ├── toggle-group-sm.tsx │ │ │ ├── toggle-lg.tsx │ │ │ ├── toggle-outline.tsx │ │ │ ├── toggle-sm.tsx │ │ │ ├── toggle-with-text.tsx │ │ │ ├── tooltip-demo.tsx │ │ │ ├── typography-blockquote.tsx │ │ │ ├── typography-demo.tsx │ │ │ ├── typography-h1.tsx │ │ │ ├── typography-h2.tsx │ │ │ ├── typography-h3.tsx │ │ │ ├── typography-h4.tsx │ │ │ ├── typography-inline-code.tsx │ │ │ ├── typography-large.tsx │ │ │ ├── typography-lead.tsx │ │ │ ├── typography-list.tsx │ │ │ ├── typography-muted.tsx │ │ │ ├── typography-p.tsx │ │ │ ├── typography-small.tsx │ │ │ └── typography-table.tsx │ │ └── ui │ │ │ ├── accordion.tsx │ │ │ ├── alert-dialog.tsx │ │ │ ├── alert.tsx │ │ │ ├── aspect-ratio.tsx │ │ │ ├── avatar.tsx │ │ │ ├── badge.tsx │ │ │ ├── breadcrumb.tsx │ │ │ ├── button.tsx │ │ │ ├── calendar.tsx │ │ │ ├── card.tsx │ │ │ ├── carousel.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── collapsible.tsx │ │ │ ├── command.tsx │ │ │ ├── context-menu.tsx │ │ │ ├── dialog.tsx │ │ │ ├── drawer.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── form.tsx │ │ │ ├── hover-card.tsx │ │ │ ├── input-otp.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── menubar.tsx │ │ │ ├── navigation-menu.tsx │ │ │ ├── pagination.tsx │ │ │ ├── popover.tsx │ │ │ ├── progress.tsx │ │ │ ├── radio-group.tsx │ │ │ ├── resizable.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── slider.tsx │ │ │ ├── sonner.tsx │ │ │ ├── switch.tsx │ │ │ ├── table.tsx │ │ │ ├── tabs.tsx │ │ │ ├── textarea.tsx │ │ │ ├── toast.tsx │ │ │ ├── toaster.tsx │ │ │ ├── toggle-group.tsx │ │ │ ├── toggle.tsx │ │ │ ├── tooltip.tsx │ │ │ └── use-toast.ts │ ├── examples.ts │ ├── new-york │ │ ├── block │ │ │ ├── authentication-01.tsx │ │ │ ├── authentication-02.tsx │ │ │ ├── authentication-03.tsx │ │ │ ├── authentication-04.tsx │ │ │ ├── dashboard-01-chunk-0.tsx │ │ │ ├── dashboard-01-chunk-1.tsx │ │ │ ├── dashboard-01-chunk-2.tsx │ │ │ ├── dashboard-01-chunk-3.tsx │ │ │ ├── dashboard-01-chunk-4.tsx │ │ │ ├── dashboard-01-chunk-5.tsx │ │ │ ├── dashboard-01.tsx │ │ │ ├── dashboard-02-chunk-0.tsx │ │ │ ├── dashboard-02-chunk-1.tsx │ │ │ ├── dashboard-02.tsx │ │ │ ├── dashboard-03-chunk-0.tsx │ │ │ ├── dashboard-03-chunk-1.tsx │ │ │ ├── dashboard-03.tsx │ │ │ ├── dashboard-04-chunk-0.tsx │ │ │ ├── dashboard-04-chunk-1.tsx │ │ │ ├── dashboard-04-chunk-2.tsx │ │ │ ├── dashboard-04.tsx │ │ │ ├── dashboard-05-chunk-0.tsx │ │ │ ├── dashboard-05-chunk-1.tsx │ │ │ ├── dashboard-05-chunk-2.tsx │ │ │ ├── dashboard-05-chunk-3.tsx │ │ │ ├── dashboard-05-chunk-4.tsx │ │ │ ├── dashboard-05-chunk-5.tsx │ │ │ ├── dashboard-05.tsx │ │ │ ├── dashboard-06-chunk-0.tsx │ │ │ ├── dashboard-06-chunk-1.tsx │ │ │ ├── dashboard-06.tsx │ │ │ ├── dashboard-07-chunk-0.tsx │ │ │ ├── dashboard-07-chunk-1.tsx │ │ │ ├── dashboard-07-chunk-2.tsx │ │ │ ├── dashboard-07-chunk-3.tsx │ │ │ ├── dashboard-07-chunk-4.tsx │ │ │ ├── dashboard-07-chunk-5.tsx │ │ │ └── dashboard-07.tsx │ │ ├── example │ │ │ ├── accordion-demo.tsx │ │ │ ├── alert-demo.tsx │ │ │ ├── alert-destructive.tsx │ │ │ ├── alert-dialog-demo.tsx │ │ │ ├── aspect-ratio-demo.tsx │ │ │ ├── avatar-demo.tsx │ │ │ ├── badge-demo.tsx │ │ │ ├── badge-destructive.tsx │ │ │ ├── badge-outline.tsx │ │ │ ├── badge-secondary.tsx │ │ │ ├── breadcrumb-demo.tsx │ │ │ ├── breadcrumb-dropdown.tsx │ │ │ ├── breadcrumb-ellipsis.tsx │ │ │ ├── breadcrumb-link.tsx │ │ │ ├── breadcrumb-responsive.tsx │ │ │ ├── breadcrumb-separator.tsx │ │ │ ├── button-as-child.tsx │ │ │ ├── button-demo.tsx │ │ │ ├── button-destructive.tsx │ │ │ ├── button-ghost.tsx │ │ │ ├── button-icon.tsx │ │ │ ├── button-link.tsx │ │ │ ├── button-loading.tsx │ │ │ ├── button-outline.tsx │ │ │ ├── button-secondary.tsx │ │ │ ├── button-with-icon.tsx │ │ │ ├── calendar-demo.tsx │ │ │ ├── calendar-form.tsx │ │ │ ├── card-demo.tsx │ │ │ ├── card-with-form.tsx │ │ │ ├── cards │ │ │ │ ├── activity-goal.tsx │ │ │ │ ├── calendar.tsx │ │ │ │ ├── chat.tsx │ │ │ │ ├── cookie-settings.tsx │ │ │ │ ├── create-account.tsx │ │ │ │ ├── data-table.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── metric.tsx │ │ │ │ ├── payment-method.tsx │ │ │ │ ├── report-issue.tsx │ │ │ │ ├── share.tsx │ │ │ │ ├── stats.tsx │ │ │ │ └── team-members.tsx │ │ │ ├── carousel-api.tsx │ │ │ ├── carousel-demo.tsx │ │ │ ├── carousel-orientation.tsx │ │ │ ├── carousel-plugin.tsx │ │ │ ├── carousel-size.tsx │ │ │ ├── carousel-spacing.tsx │ │ │ ├── checkbox-demo.tsx │ │ │ ├── checkbox-disabled.tsx │ │ │ ├── checkbox-form-multiple.tsx │ │ │ ├── checkbox-form-single.tsx │ │ │ ├── checkbox-with-text.tsx │ │ │ ├── collapsible-demo.tsx │ │ │ ├── combobox-demo.tsx │ │ │ ├── combobox-dropdown-menu.tsx │ │ │ ├── combobox-form.tsx │ │ │ ├── combobox-popover.tsx │ │ │ ├── combobox-responsive.tsx │ │ │ ├── command-demo.tsx │ │ │ ├── command-dialog.tsx │ │ │ ├── context-menu-demo.tsx │ │ │ ├── data-table-demo.tsx │ │ │ ├── date-picker-demo.tsx │ │ │ ├── date-picker-form.tsx │ │ │ ├── date-picker-with-presets.tsx │ │ │ ├── date-picker-with-range.tsx │ │ │ ├── dialog-close-button.tsx │ │ │ ├── dialog-demo.tsx │ │ │ ├── drawer-demo.tsx │ │ │ ├── drawer-dialog.tsx │ │ │ ├── dropdown-menu-checkboxes.tsx │ │ │ ├── dropdown-menu-demo.tsx │ │ │ ├── dropdown-menu-radio-group.tsx │ │ │ ├── hover-card-demo.tsx │ │ │ ├── input-demo.tsx │ │ │ ├── input-disabled.tsx │ │ │ ├── input-file.tsx │ │ │ ├── input-form.tsx │ │ │ ├── input-otp-controlled.tsx │ │ │ ├── input-otp-demo.tsx │ │ │ ├── input-otp-form.tsx │ │ │ ├── input-otp-pattern.tsx │ │ │ ├── input-otp-separator.tsx │ │ │ ├── input-with-button.tsx │ │ │ ├── input-with-label.tsx │ │ │ ├── input-with-text.tsx │ │ │ ├── label-demo.tsx │ │ │ ├── menubar-demo.tsx │ │ │ ├── mode-toggle.tsx │ │ │ ├── navigation-menu-demo.tsx │ │ │ ├── pagination-demo.tsx │ │ │ ├── popover-demo.tsx │ │ │ ├── progress-demo.tsx │ │ │ ├── radio-group-demo.tsx │ │ │ ├── radio-group-form.tsx │ │ │ ├── resizable-demo-with-handle.tsx │ │ │ ├── resizable-demo.tsx │ │ │ ├── resizable-handle.tsx │ │ │ ├── resizable-vertical.tsx │ │ │ ├── scroll-area-demo.tsx │ │ │ ├── scroll-area-horizontal-demo.tsx │ │ │ ├── select-demo.tsx │ │ │ ├── select-form.tsx │ │ │ ├── select-scrollable.tsx │ │ │ ├── separator-demo.tsx │ │ │ ├── sheet-demo.tsx │ │ │ ├── sheet-side.tsx │ │ │ ├── skeleton-card.tsx │ │ │ ├── skeleton-demo.tsx │ │ │ ├── slider-demo.tsx │ │ │ ├── sonner-demo.tsx │ │ │ ├── switch-demo.tsx │ │ │ ├── switch-form.tsx │ │ │ ├── table-demo.tsx │ │ │ ├── tabs-demo.tsx │ │ │ ├── textarea-demo.tsx │ │ │ ├── textarea-disabled.tsx │ │ │ ├── textarea-form.tsx │ │ │ ├── textarea-with-button.tsx │ │ │ ├── textarea-with-label.tsx │ │ │ ├── textarea-with-text.tsx │ │ │ ├── toast-demo.tsx │ │ │ ├── toast-destructive.tsx │ │ │ ├── toast-simple.tsx │ │ │ ├── toast-with-action.tsx │ │ │ ├── toast-with-title.tsx │ │ │ ├── toggle-demo.tsx │ │ │ ├── toggle-disabled.tsx │ │ │ ├── toggle-group-demo.tsx │ │ │ ├── toggle-group-disabled.tsx │ │ │ ├── toggle-group-lg.tsx │ │ │ ├── toggle-group-outline.tsx │ │ │ ├── toggle-group-single.tsx │ │ │ ├── toggle-group-sm.tsx │ │ │ ├── toggle-lg.tsx │ │ │ ├── toggle-outline.tsx │ │ │ ├── toggle-sm.tsx │ │ │ ├── toggle-with-text.tsx │ │ │ ├── tooltip-demo.tsx │ │ │ ├── typography-blockquote.tsx │ │ │ ├── typography-demo.tsx │ │ │ ├── typography-h1.tsx │ │ │ ├── typography-h2.tsx │ │ │ ├── typography-h3.tsx │ │ │ ├── typography-h4.tsx │ │ │ ├── typography-inline-code.tsx │ │ │ ├── typography-large.tsx │ │ │ ├── typography-lead.tsx │ │ │ ├── typography-list.tsx │ │ │ ├── typography-muted.tsx │ │ │ ├── typography-p.tsx │ │ │ ├── typography-small.tsx │ │ │ └── typography-table.tsx │ │ └── ui │ │ │ ├── accordion.tsx │ │ │ ├── alert-dialog.tsx │ │ │ ├── alert.tsx │ │ │ ├── aspect-ratio.tsx │ │ │ ├── avatar.tsx │ │ │ ├── badge.tsx │ │ │ ├── breadcrumb.tsx │ │ │ ├── button.tsx │ │ │ ├── calendar.tsx │ │ │ ├── card.tsx │ │ │ ├── carousel.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── collapsible.tsx │ │ │ ├── command.tsx │ │ │ ├── context-menu.tsx │ │ │ ├── dialog.tsx │ │ │ ├── drawer.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── form.tsx │ │ │ ├── hover-card.tsx │ │ │ ├── input-otp.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── menubar.tsx │ │ │ ├── navigation-menu.tsx │ │ │ ├── pagination.tsx │ │ │ ├── popover.tsx │ │ │ ├── progress.tsx │ │ │ ├── radio-group.tsx │ │ │ ├── resizable.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── slider.tsx │ │ │ ├── sonner.tsx │ │ │ ├── switch.tsx │ │ │ ├── table.tsx │ │ │ ├── tabs.tsx │ │ │ ├── textarea.tsx │ │ │ ├── toast.tsx │ │ │ ├── toaster.tsx │ │ │ ├── toggle-group.tsx │ │ │ ├── toggle.tsx │ │ │ ├── tooltip.tsx │ │ │ └── use-toast.ts │ ├── registry.ts │ ├── schema.ts │ ├── styles.ts │ ├── themes.ts │ └── ui.ts ├── styles │ └── mdx.css └── types │ └── unist.ts ├── ss.png ├── tailwind.config.js └── tsconfig.json /.env.example: -------------------------------------------------------------------------------- 1 | 2 | UPSTASH_REDIS_REST_URL= 3 | UPSTASH_REDIS_REST_TOKEN= 4 | RESEND_API_KEY= -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # shadcn/ui customizer 2 | 3 | This is an open-source extension of [shadcn/ui](https://github.com/shaddcn-ui/ui) themes for customizing the theme. 4 | 5 | > [!IMPORTANT] 6 | > Original theme customizer: [https://ui.shadcn.com/themes](https://ui.shadcn.com/themes) 7 | 8 | ## Screenhsots 9 | 10 | ![Customizer](https://raw.githubusercontent.com/Railly/shadcn-ui-customizer/main/ss.png) 11 | 12 | ## Features 13 | 14 | ### Customizing CSS Variables 15 | 16 | With shadcn/ui customizer, you can tweak and customize the following CSS variables: 17 | 18 | - `--background` 19 | - `--foreground` 20 | - `--card` 21 | - `--card-foreground` 22 | - `--popover` 23 | - `--popover-foreground` 24 | - `--primary` 25 | - `--primary-foreground` 26 | - `--secondary` 27 | - `--secondary-foreground` 28 | - `--muted` 29 | - `--muted-foreground` 30 | - `--accent` 31 | - `--accent-foreground` 32 | - `--destructive` 33 | - `--destructive-foreground` 34 | - `--border` 35 | - `--input` 36 | - `--ring` 37 | - `--radius` 38 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Railly/shadcn-ui-customizer/aea975e3cfc55f5aa7136889058d2f81353b2c09/bun.lockb -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "default", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.js", 8 | "css": "src/app/global.css", 9 | "baseColor": "slate", 10 | "cssVariables": true 11 | }, 12 | "aliases": { 13 | "components": "@/components", 14 | "utils": "@/lib/utils" 15 | } 16 | } -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | eslint: { 4 | ignoreDuringBuilds: true, 5 | } 6 | } 7 | 8 | module.exports = nextConfig 9 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/placeholder-user.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Railly/shadcn-ui-customizer/aea975e3cfc55f5aa7136889058d2f81353b2c09/public/placeholder-user.jpg -------------------------------------------------------------------------------- /public/tinte-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Railly/shadcn-ui-customizer/aea975e3cfc55f5aa7136889058d2f81353b2c09/public/tinte-2.png -------------------------------------------------------------------------------- /public/tinte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Railly/shadcn-ui-customizer/aea975e3cfc55f5aa7136889058d2f81353b2c09/public/tinte.png -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/__registry__/.autogenerated: -------------------------------------------------------------------------------- 1 | // The content of this directory is autogenerated by the registry server. 2 | -------------------------------------------------------------------------------- /src/__registry__/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Railly/shadcn-ui-customizer/aea975e3cfc55f5aa7136889058d2f81353b2c09/src/__registry__/.gitkeep -------------------------------------------------------------------------------- /src/__registry__/README.md: -------------------------------------------------------------------------------- 1 | > Files inside this directory is autogenerated by `./scripts/build-registry.ts`. **Do not edit them manually.** - shadcn 2 | -------------------------------------------------------------------------------- /src/__registry__/default/example/alert-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Terminal } from "lucide-react" 2 | 3 | import { 4 | Alert, 5 | AlertDescription, 6 | AlertTitle, 7 | } from "@/registry/default/ui/alert" 8 | 9 | export default function AlertDemo() { 10 | return ( 11 | 12 | 13 | Heads up! 14 | 15 | You can add components to your app using the cli. 16 | 17 | 18 | ) 19 | } 20 | -------------------------------------------------------------------------------- /src/__registry__/default/example/alert-destructive.tsx: -------------------------------------------------------------------------------- 1 | import { AlertCircle } from "lucide-react" 2 | 3 | import { 4 | Alert, 5 | AlertDescription, 6 | AlertTitle, 7 | } from "@/registry/default/ui/alert" 8 | 9 | export default function AlertDestructive() { 10 | return ( 11 | 12 | 13 | Error 14 | 15 | Your session has expired. Please log in again. 16 | 17 | 18 | ) 19 | } 20 | -------------------------------------------------------------------------------- /src/__registry__/default/example/aspect-ratio-demo.tsx: -------------------------------------------------------------------------------- 1 | import Image from "next/image" 2 | 3 | import { AspectRatio } from "@/registry/default/ui/aspect-ratio" 4 | 5 | export default function AspectRatioDemo() { 6 | return ( 7 | 8 | Photo by Drew Beamer 14 | 15 | ) 16 | } 17 | -------------------------------------------------------------------------------- /src/__registry__/default/example/avatar-demo.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | Avatar, 3 | AvatarFallback, 4 | AvatarImage, 5 | } from "@/registry/default/ui/avatar" 6 | 7 | export default function AvatarDemo() { 8 | return ( 9 | 10 | 11 | CN 12 | 13 | ) 14 | } 15 | -------------------------------------------------------------------------------- /src/__registry__/default/example/badge-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/default/ui/badge" 2 | 3 | export default function BadgeDemo() { 4 | return Badge 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/badge-destructive.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/default/ui/badge" 2 | 3 | export default function BadgeDestructive() { 4 | return Destructive 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/badge-outline.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/default/ui/badge" 2 | 3 | export default function BadgeOutline() { 4 | return Outline 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/badge-secondary.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/default/ui/badge" 2 | 3 | export default function BadgeSecondary() { 4 | return Secondary 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/breadcrumb-link.tsx: -------------------------------------------------------------------------------- 1 | import Link from "next/link" 2 | 3 | import { 4 | Breadcrumb, 5 | BreadcrumbItem, 6 | BreadcrumbLink, 7 | BreadcrumbList, 8 | BreadcrumbPage, 9 | BreadcrumbSeparator, 10 | } from "@/registry/default/ui/breadcrumb" 11 | 12 | export default function BreadcrumbWithCustomSeparator() { 13 | return ( 14 | 15 | 16 | 17 | 18 | Home 19 | 20 | 21 | 22 | 23 | 24 | Components 25 | 26 | 27 | 28 | 29 | Breadcrumb 30 | 31 | 32 | 33 | ) 34 | } 35 | -------------------------------------------------------------------------------- /src/__registry__/default/example/breadcrumb-separator.tsx: -------------------------------------------------------------------------------- 1 | import { Slash } from "lucide-react" 2 | 3 | import { 4 | Breadcrumb, 5 | BreadcrumbItem, 6 | BreadcrumbLink, 7 | BreadcrumbList, 8 | BreadcrumbPage, 9 | BreadcrumbSeparator, 10 | } from "@/registry/default/ui/breadcrumb" 11 | 12 | export default function BreadcrumbWithCustomSeparator() { 13 | return ( 14 | 15 | 16 | 17 | Home 18 | 19 | 20 | 21 | 22 | 23 | Components 24 | 25 | 26 | 27 | 28 | 29 | Breadcrumb 30 | 31 | 32 | 33 | ) 34 | } 35 | -------------------------------------------------------------------------------- /src/__registry__/default/example/button-as-child.tsx: -------------------------------------------------------------------------------- 1 | import Link from "next/link" 2 | 3 | import { Button } from "@/registry/default/ui/button" 4 | 5 | export default function ButtonAsChild() { 6 | return ( 7 | 10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /src/__registry__/default/example/button-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/default/ui/button" 2 | 3 | export default function ButtonDemo() { 4 | return 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/button-destructive.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/default/ui/button" 2 | 3 | export default function ButtonDestructive() { 4 | return 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/button-ghost.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/default/ui/button" 2 | 3 | export default function ButtonGhost() { 4 | return 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/button-icon.tsx: -------------------------------------------------------------------------------- 1 | import { ChevronRight } from "lucide-react" 2 | 3 | import { Button } from "@/registry/default/ui/button" 4 | 5 | export default function ButtonIcon() { 6 | return ( 7 | 10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /src/__registry__/default/example/button-link.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/default/ui/button" 2 | 3 | export default function ButtonLink() { 4 | return 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/button-loading.tsx: -------------------------------------------------------------------------------- 1 | import { Loader2 } from "lucide-react" 2 | 3 | import { Button } from "@/registry/default/ui/button" 4 | 5 | export default function ButtonLoading() { 6 | return ( 7 | 11 | ) 12 | } 13 | -------------------------------------------------------------------------------- /src/__registry__/default/example/button-outline.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/default/ui/button" 2 | 3 | export default function ButtonOutline() { 4 | return 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/button-secondary.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/default/ui/button" 2 | 3 | export default function ButtonSecondary() { 4 | return 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/button-with-icon.tsx: -------------------------------------------------------------------------------- 1 | import { Mail } from "lucide-react" 2 | 3 | import { Button } from "@/registry/default/ui/button" 4 | 5 | export default function ButtonWithIcon() { 6 | return ( 7 | 10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /src/__registry__/default/example/calendar-demo.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as React from "react" 4 | 5 | import { Calendar } from "@/registry/default/ui/calendar" 6 | 7 | export default function CalendarDemo() { 8 | const [date, setDate] = React.useState(new Date()) 9 | 10 | return ( 11 | 17 | ) 18 | } 19 | -------------------------------------------------------------------------------- /src/__registry__/default/example/carousel-demo.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | import { Card, CardContent } from "@/registry/default/ui/card" 4 | import { 5 | Carousel, 6 | CarouselContent, 7 | CarouselItem, 8 | CarouselNext, 9 | CarouselPrevious, 10 | } from "@/registry/default/ui/carousel" 11 | 12 | export default function CarouselDemo() { 13 | return ( 14 | 15 | 16 | {Array.from({ length: 5 }).map((_, index) => ( 17 | 18 |
19 | 20 | 21 | {index + 1} 22 | 23 | 24 |
25 |
26 | ))} 27 |
28 | 29 | 30 |
31 | ) 32 | } 33 | -------------------------------------------------------------------------------- /src/__registry__/default/example/checkbox-demo.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import { Checkbox } from "@/registry/default/ui/checkbox" 4 | 5 | export default function CheckboxDemo() { 6 | return ( 7 |
8 | 9 | 15 |
16 | ) 17 | } 18 | -------------------------------------------------------------------------------- /src/__registry__/default/example/checkbox-disabled.tsx: -------------------------------------------------------------------------------- 1 | import { Checkbox } from "@/registry/default/ui/checkbox" 2 | 3 | export default function CheckboxDisabled() { 4 | return ( 5 |
6 | 7 | 13 |
14 | ) 15 | } 16 | -------------------------------------------------------------------------------- /src/__registry__/default/example/checkbox-with-text.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import { Checkbox } from "@/registry/default/ui/checkbox" 4 | 5 | export default function CheckboxWithText() { 6 | return ( 7 |
8 | 9 |
10 | 16 |

17 | You agree to our Terms of Service and Privacy Policy. 18 |

19 |
20 |
21 | ) 22 | } 23 | -------------------------------------------------------------------------------- /src/__registry__/default/example/input-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Input } from "@/registry/default/ui/input" 2 | 3 | export default function InputDemo() { 4 | return 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/input-disabled.tsx: -------------------------------------------------------------------------------- 1 | import { Input } from "@/registry/default/ui/input" 2 | 3 | export default function InputDisabled() { 4 | return 5 | } 6 | -------------------------------------------------------------------------------- /src/__registry__/default/example/input-file.tsx: -------------------------------------------------------------------------------- 1 | import { Input } from "@/registry/default/ui/input" 2 | import { Label } from "@/registry/default/ui/label" 3 | 4 | export default function InputFile() { 5 | return ( 6 |
7 | 8 | 9 |
10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /src/__registry__/default/example/input-otp-demo.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | InputOTP, 3 | InputOTPGroup, 4 | InputOTPSeparator, 5 | InputOTPSlot, 6 | } from "@/registry/default/ui/input-otp" 7 | 8 | export default function InputOTPDemo() { 9 | return ( 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ) 24 | } 25 | -------------------------------------------------------------------------------- /src/__registry__/default/example/input-otp-pattern.tsx: -------------------------------------------------------------------------------- 1 | import { REGEXP_ONLY_DIGITS_AND_CHARS } from "input-otp" 2 | 3 | import { 4 | InputOTP, 5 | InputOTPGroup, 6 | InputOTPSlot, 7 | } from "@/registry/default/ui/input-otp" 8 | 9 | export default function InputOTPPattern() { 10 | return ( 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | ) 22 | } 23 | -------------------------------------------------------------------------------- /src/__registry__/default/example/input-otp-separator.tsx: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | 3 | import { 4 | InputOTP, 5 | InputOTPGroup, 6 | InputOTPSeparator, 7 | InputOTPSlot, 8 | } from "@/registry/default/ui/input-otp" 9 | 10 | export default function InputOTPWithSeparator() { 11 | return ( 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | ) 29 | } 30 | -------------------------------------------------------------------------------- /src/__registry__/default/example/input-with-button.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/default/ui/button" 2 | import { Input } from "@/registry/default/ui/input" 3 | 4 | export default function InputWithButton() { 5 | return ( 6 |
7 | 8 | 9 |
10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /src/__registry__/default/example/input-with-label.tsx: -------------------------------------------------------------------------------- 1 | import { Input } from "@/registry/default/ui/input" 2 | import { Label } from "@/registry/default/ui/label" 3 | 4 | export default function InputWithLabel() { 5 | return ( 6 |
7 | 8 | 9 |
10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /src/__registry__/default/example/input-with-text.tsx: -------------------------------------------------------------------------------- 1 | import { Input } from "@/registry/default/ui/input" 2 | import { Label } from "@/registry/default/ui/label" 3 | 4 | export default function InputWithText() { 5 | return ( 6 |
7 | 8 | 9 |

Enter your email address.

10 |
11 | ) 12 | } 13 | -------------------------------------------------------------------------------- /src/__registry__/default/example/label-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Checkbox } from "@/registry/default/ui/checkbox" 2 | import { Label } from "@/registry/default/ui/label" 3 | 4 | export default function LabelDemo() { 5 | return ( 6 |
7 |
8 | 9 | 10 |
11 |
12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /src/__registry__/default/example/progress-demo.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as React from "react" 4 | 5 | import { Progress } from "@/registry/default/ui/progress" 6 | 7 | export default function ProgressDemo() { 8 | const [progress, setProgress] = React.useState(13) 9 | 10 | React.useEffect(() => { 11 | const timer = setTimeout(() => setProgress(66), 500) 12 | return () => clearTimeout(timer) 13 | }, []) 14 | 15 | return 16 | } 17 | -------------------------------------------------------------------------------- /src/__registry__/default/example/radio-group-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Label } from "@/registry/default/ui/label" 2 | import { RadioGroup, RadioGroupItem } from "@/registry/default/ui/radio-group" 3 | 4 | export default function RadioGroupDemo() { 5 | return ( 6 | 7 |
8 | 9 | 10 |
11 |
12 | 13 | 14 |
15 |
16 | 17 | 18 |
19 |
20 | ) 21 | } 22 | -------------------------------------------------------------------------------- /src/__registry__/default/example/resizable-handle.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | ResizableHandle, 3 | ResizablePanel, 4 | ResizablePanelGroup, 5 | } from "@/registry/default/ui/resizable" 6 | 7 | export default function ResizableDemo() { 8 | return ( 9 | 13 | 14 |
15 | Sidebar 16 |
17 |
18 | 19 | 20 |
21 | Content 22 |
23 |
24 |
25 | ) 26 | } 27 | -------------------------------------------------------------------------------- /src/__registry__/default/example/resizable-vertical.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | ResizableHandle, 3 | ResizablePanel, 4 | ResizablePanelGroup, 5 | } from "@/registry/default/ui/resizable" 6 | 7 | export default function ResizableDemo() { 8 | return ( 9 | 13 | 14 |
15 | Header 16 |
17 |
18 | 19 | 20 |
21 | Content 22 |
23 |
24 |
25 | ) 26 | } 27 | -------------------------------------------------------------------------------- /src/__registry__/default/example/scroll-area-demo.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | import { ScrollArea } from "@/registry/default/ui/scroll-area" 4 | import { Separator } from "@/registry/default/ui/separator" 5 | 6 | const tags = Array.from({ length: 50 }).map( 7 | (_, i, a) => `v1.2.0-beta.${a.length - i}` 8 | ) 9 | 10 | export default function ScrollAreaDemo() { 11 | return ( 12 | 13 |
14 |

Tags

15 | {tags.map((tag) => ( 16 | <> 17 |
18 | {tag} 19 |
20 | 21 | 22 | ))} 23 |
24 |
25 | ) 26 | } 27 | -------------------------------------------------------------------------------- /src/__registry__/default/example/select-demo.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | import { 4 | Select, 5 | SelectContent, 6 | SelectGroup, 7 | SelectItem, 8 | SelectLabel, 9 | SelectTrigger, 10 | SelectValue, 11 | } from "@/registry/default/ui/select" 12 | 13 | export default function SelectDemo() { 14 | return ( 15 | 30 | ) 31 | } 32 | -------------------------------------------------------------------------------- /src/__registry__/default/example/separator-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Separator } from "@/registry/default/ui/separator" 2 | 3 | export default function SeparatorDemo() { 4 | return ( 5 |
6 |
7 |

Radix Primitives

8 |

9 | An open-source UI component library. 10 |

11 |
12 | 13 |
14 |
Blog
15 | 16 |
Docs
17 | 18 |
Source
19 |
20 |
21 | ) 22 | } 23 | -------------------------------------------------------------------------------- /src/__registry__/default/example/skeleton-card.tsx: -------------------------------------------------------------------------------- 1 | import { Skeleton } from "@/registry/default/ui/skeleton" 2 | 3 | export default function SkeletonCard() { 4 | return ( 5 |
6 | 7 |
8 | 9 | 10 |
11 |
12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /src/__registry__/default/example/skeleton-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Skeleton } from "@/registry/default/ui/skeleton" 2 | 3 | export default function SkeletonDemo() { 4 | return ( 5 |
6 | 7 |
8 | 9 | 10 |
11 |
12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /src/__registry__/default/example/slider-demo.tsx: -------------------------------------------------------------------------------- 1 | import { cn } from "@/lib/utils" 2 | import { Slider } from "@/registry/default/ui/slider" 3 | 4 | type SliderProps = React.ComponentProps 5 | 6 | export default function SliderDemo({ className, ...props }: SliderProps) { 7 | return ( 8 | 15 | ) 16 | } 17 | -------------------------------------------------------------------------------- /src/__registry__/default/example/sonner-demo.tsx: -------------------------------------------------------------------------------- 1 | import { toast } from "sonner" 2 | 3 | import { Button } from "@/registry/default/ui/button" 4 | 5 | export default function SonnerDemo() { 6 | return ( 7 | 21 | ) 22 | } 23 | -------------------------------------------------------------------------------- /src/__registry__/default/example/switch-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Label } from "@/registry/default/ui/label" 2 | import { Switch } from "@/registry/default/ui/switch" 3 | 4 | export default function SwitchDemo() { 5 | return ( 6 |
7 | 8 | 9 |
10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /src/__registry__/default/example/textarea-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Textarea } from "@/registry/default/ui/textarea" 2 | 3 | export default function TextareaDemo() { 4 | return