Full Code of shadcn-ui/ui for AI

main 5b40b9de5ad5 cached
6754 files
32.8 MB
9.0M tokens
6320 symbols
4 requests
Copy disabled (too large) Download .txt
Showing preview only (35,795K chars total). Download the full file to get everything.
Repository: shadcn-ui/ui
Branch: main
Commit: 5b40b9de5ad5
Files: 6754
Total size: 32.8 MB

Directory structure:
gitextract_4oo2mby8/

├── .changeset/
│   ├── README.md
│   └── config.json
├── .claude/
│   └── settings.local.json
├── .commitlintrc.json
├── .cursor/
│   └── rules/
│       └── registry-bases-parity.mdc
├── .editorconfig
├── .eslintignore
├── .eslintrc.json
├── .github/
│   ├── DISCUSSION_TEMPLATE/
│   │   └── blocks-request.yml
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   └── feature_request.yml
│   ├── changeset-version.js
│   ├── dependabot.yml
│   ├── version-script-beta.js
│   ├── version-script-next.js
│   └── workflows/
│       ├── code-check.yml
│       ├── issue-stale.yml
│       ├── prerelease-comment.yml
│       ├── prerelease.yml
│       ├── release.yml
│       ├── test.yml
│       └── validate-registries.yml
├── .gitignore
├── .kodiak.toml
├── .npmrc
├── .nvmrc
├── .prettierignore
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── SECURITY.md
├── apps/
│   └── v4/
│       ├── .env.example
│       ├── .gitignore
│       ├── .prettierignore
│       ├── README.md
│       ├── app/
│       │   ├── (app)/
│       │   │   ├── (root)/
│       │   │   │   ├── components/
│       │   │   │   │   ├── appearance-settings.tsx
│       │   │   │   │   ├── button-group-demo.tsx
│       │   │   │   │   ├── button-group-input-group.tsx
│       │   │   │   │   ├── button-group-nested.tsx
│       │   │   │   │   ├── button-group-popover.tsx
│       │   │   │   │   ├── empty-avatar-group.tsx
│       │   │   │   │   ├── empty-input-group.tsx
│       │   │   │   │   ├── field-checkbox.tsx
│       │   │   │   │   ├── field-choice-card.tsx
│       │   │   │   │   ├── field-demo.tsx
│       │   │   │   │   ├── field-hear.tsx
│       │   │   │   │   ├── field-slider.tsx
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   ├── input-group-button.tsx
│       │   │   │   │   ├── input-group-demo.tsx
│       │   │   │   │   ├── input-group-textarea.tsx
│       │   │   │   │   ├── item-avatar.tsx
│       │   │   │   │   ├── item-demo.tsx
│       │   │   │   │   ├── notion-prompt-form.tsx
│       │   │   │   │   ├── spinner-badge.tsx
│       │   │   │   │   └── spinner-empty.tsx
│       │   │   │   └── page.tsx
│       │   │   ├── blocks/
│       │   │   │   ├── [...categories]/
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── layout.tsx
│       │   │   │   └── page.tsx
│       │   │   ├── charts/
│       │   │   │   ├── [type]/
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── charts.tsx
│       │   │   │   └── layout.tsx
│       │   │   ├── colors/
│       │   │   │   ├── layout.tsx
│       │   │   │   └── page.tsx
│       │   │   ├── docs/
│       │   │   │   ├── [[...slug]]/
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── changelog/
│       │   │   │   │   └── page.tsx
│       │   │   │   └── layout.tsx
│       │   │   ├── examples/
│       │   │   │   ├── authentication/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   └── user-auth-form.tsx
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── dashboard/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── app-sidebar.tsx
│       │   │   │   │   │   ├── chart-area-interactive.tsx
│       │   │   │   │   │   ├── data-table.tsx
│       │   │   │   │   │   ├── nav-documents.tsx
│       │   │   │   │   │   ├── nav-main.tsx
│       │   │   │   │   │   ├── nav-secondary.tsx
│       │   │   │   │   │   ├── nav-user.tsx
│       │   │   │   │   │   ├── section-cards.tsx
│       │   │   │   │   │   └── site-header.tsx
│       │   │   │   │   ├── data.json
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── layout.tsx
│       │   │   │   ├── playground/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── code-viewer.tsx
│       │   │   │   │   │   ├── maxlength-selector.tsx
│       │   │   │   │   │   ├── model-selector.tsx
│       │   │   │   │   │   ├── preset-actions.tsx
│       │   │   │   │   │   ├── preset-save.tsx
│       │   │   │   │   │   ├── preset-selector.tsx
│       │   │   │   │   │   ├── preset-share.tsx
│       │   │   │   │   │   ├── temperature-selector.tsx
│       │   │   │   │   │   └── top-p-selector.tsx
│       │   │   │   │   ├── data/
│       │   │   │   │   │   ├── models.ts
│       │   │   │   │   │   └── presets.ts
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── rtl/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── appearance-settings.tsx
│       │   │   │   │   │   ├── button-group-demo.tsx
│       │   │   │   │   │   ├── button-group-input-group.tsx
│       │   │   │   │   │   ├── button-group-nested.tsx
│       │   │   │   │   │   ├── button-group-popover.tsx
│       │   │   │   │   │   ├── empty-avatar-group.tsx
│       │   │   │   │   │   ├── field-checkbox.tsx
│       │   │   │   │   │   ├── field-demo.tsx
│       │   │   │   │   │   ├── field-hear.tsx
│       │   │   │   │   │   ├── field-slider.tsx
│       │   │   │   │   │   ├── index.tsx
│       │   │   │   │   │   ├── input-group-button.tsx
│       │   │   │   │   │   ├── input-group-demo.tsx
│       │   │   │   │   │   ├── item-demo.tsx
│       │   │   │   │   │   ├── notion-prompt-form.tsx
│       │   │   │   │   │   ├── spinner-badge.tsx
│       │   │   │   │   │   └── spinner-empty.tsx
│       │   │   │   │   └── page.tsx
│       │   │   │   └── tasks/
│       │   │   │       ├── components/
│       │   │   │       │   ├── columns.tsx
│       │   │   │       │   ├── data-table-column-header.tsx
│       │   │   │       │   ├── data-table-faceted-filter.tsx
│       │   │   │       │   ├── data-table-pagination.tsx
│       │   │   │       │   ├── data-table-row-actions.tsx
│       │   │   │       │   ├── data-table-toolbar.tsx
│       │   │   │       │   ├── data-table-view-options.tsx
│       │   │   │       │   ├── data-table.tsx
│       │   │   │       │   └── user-nav.tsx
│       │   │   │       ├── data/
│       │   │   │       │   ├── data.tsx
│       │   │   │       │   ├── schema.ts
│       │   │   │       │   ├── seed.ts
│       │   │   │       │   └── tasks.json
│       │   │   │       └── page.tsx
│       │   │   ├── layout.tsx
│       │   │   ├── llm/
│       │   │   │   └── [[...slug]]/
│       │   │   │       └── route.ts
│       │   │   └── themes/
│       │   │       ├── layout.tsx
│       │   │       └── page.tsx
│       │   ├── (create)/
│       │   │   ├── components/
│       │   │   │   ├── accent-picker.tsx
│       │   │   │   ├── action-menu.tsx
│       │   │   │   ├── base-color-picker.tsx
│       │   │   │   ├── base-picker.tsx
│       │   │   │   ├── chart-color-picker.tsx
│       │   │   │   ├── copy-preset.tsx
│       │   │   │   ├── customizer.tsx
│       │   │   │   ├── design-system-provider.tsx
│       │   │   │   ├── font-picker.tsx
│       │   │   │   ├── history-buttons.tsx
│       │   │   │   ├── icon-library-picker.tsx
│       │   │   │   ├── icon-placeholder.tsx
│       │   │   │   ├── item-explorer.tsx
│       │   │   │   ├── lock-button.tsx
│       │   │   │   ├── main-menu.tsx
│       │   │   │   ├── menu-picker.tsx
│       │   │   │   ├── mode-switcher.tsx
│       │   │   │   ├── picker.tsx
│       │   │   │   ├── preset-handler.tsx
│       │   │   │   ├── preset-picker.tsx
│       │   │   │   ├── preview-style.tsx
│       │   │   │   ├── preview.tsx
│       │   │   │   ├── project-form.tsx
│       │   │   │   ├── radius-picker.tsx
│       │   │   │   ├── random-button.tsx
│       │   │   │   ├── reset-button.tsx
│       │   │   │   ├── share-button.tsx
│       │   │   │   ├── style-picker.tsx
│       │   │   │   ├── theme-picker.tsx
│       │   │   │   ├── v0-button.tsx
│       │   │   │   └── welcome-dialog.tsx
│       │   │   ├── create/
│       │   │   │   ├── layout.tsx
│       │   │   │   └── page.tsx
│       │   │   ├── hooks/
│       │   │   │   ├── use-action-menu.ts
│       │   │   │   ├── use-design-system.ts
│       │   │   │   ├── use-history.tsx
│       │   │   │   ├── use-iframe-sync.tsx
│       │   │   │   ├── use-locks.tsx
│       │   │   │   ├── use-random.tsx
│       │   │   │   ├── use-reset.tsx
│       │   │   │   └── use-theme-toggle.tsx
│       │   │   ├── init/
│       │   │   │   ├── md/
│       │   │   │   │   ├── build-instructions.ts
│       │   │   │   │   └── route.ts
│       │   │   │   ├── parse-config.test.ts
│       │   │   │   ├── parse-config.ts
│       │   │   │   ├── route.ts
│       │   │   │   └── v0/
│       │   │   │       └── route.ts
│       │   │   ├── lib/
│       │   │   │   ├── api.ts
│       │   │   │   ├── constants.ts
│       │   │   │   ├── fonts.ts
│       │   │   │   ├── merge-theme.ts
│       │   │   │   ├── preset-code.ts
│       │   │   │   ├── preset-query.test.ts
│       │   │   │   ├── preset-query.ts
│       │   │   │   ├── randomize-biases.ts
│       │   │   │   ├── search-params.ts
│       │   │   │   ├── templates.ts
│       │   │   │   ├── utils.ts
│       │   │   │   ├── v0.test.ts
│       │   │   │   └── v0.ts
│       │   │   └── preview/
│       │   │       └── [base]/
│       │   │           └── [name]/
│       │   │               └── page.tsx
│       │   ├── (examples)/
│       │   │   ├── dashboard/
│       │   │   │   ├── components/
│       │   │   │   │   ├── app-sidebar.tsx
│       │   │   │   │   ├── chart-area-interactive.tsx
│       │   │   │   │   ├── data-table.tsx
│       │   │   │   │   ├── mode-toggle.tsx
│       │   │   │   │   ├── nav-documents.tsx
│       │   │   │   │   ├── nav-main.tsx
│       │   │   │   │   ├── nav-secondary.tsx
│       │   │   │   │   ├── nav-user.tsx
│       │   │   │   │   ├── section-cards.tsx
│       │   │   │   │   ├── site-header.tsx
│       │   │   │   │   └── theme-selector.tsx
│       │   │   │   ├── data.json
│       │   │   │   ├── layout.tsx
│       │   │   │   ├── page.tsx
│       │   │   │   └── theme.css
│       │   │   └── dashboard-03/
│       │   │       ├── components/
│       │   │       │   ├── analytics-date-picker.tsx
│       │   │       │   ├── app-sidebar.tsx
│       │   │       │   ├── chart-revenue.tsx
│       │   │       │   ├── chart-visitors.tsx
│       │   │       │   ├── mode-toggle.tsx
│       │   │       │   ├── nav-main.tsx
│       │   │       │   ├── nav-secondary.tsx
│       │   │       │   ├── nav-user.tsx
│       │   │       │   ├── products-table.tsx
│       │   │       │   ├── search-form.tsx
│       │   │       │   └── site-header.tsx
│       │   │       ├── customers/
│       │   │       │   └── page.tsx
│       │   │       ├── layout.tsx
│       │   │       ├── page.tsx
│       │   │       └── settings/
│       │   │           └── page.tsx
│       │   ├── (internal)/
│       │   │   └── sink/
│       │   │       ├── (pages)/
│       │   │       │   ├── forms/
│       │   │       │   │   ├── appearance-settings.tsx
│       │   │       │   │   ├── chat-settings.tsx
│       │   │       │   │   ├── display-settings.tsx
│       │   │       │   │   ├── notion-prompt-form.tsx
│       │   │       │   │   ├── page.tsx
│       │   │       │   │   ├── ship-registration-form.tsx
│       │   │       │   │   └── shipping-form.tsx
│       │   │       │   ├── next-form/
│       │   │       │   │   ├── actions.ts
│       │   │       │   │   ├── example-form.tsx
│       │   │       │   │   └── page.tsx
│       │   │       │   ├── react-hook-form/
│       │   │       │   │   ├── example-form.tsx
│       │   │       │   │   └── page.tsx
│       │   │       │   ├── schema.ts
│       │   │       │   └── tanstack-form/
│       │   │       │       ├── example-form.tsx
│       │   │       │       └── page.tsx
│       │   │       ├── [name]/
│       │   │       │   └── page.tsx
│       │   │       ├── component-registry.ts
│       │   │       ├── components/
│       │   │       │   ├── accordion-demo.tsx
│       │   │       │   ├── alert-demo.tsx
│       │   │       │   ├── alert-dialog-demo.tsx
│       │   │       │   ├── app-breadcrumbs.tsx
│       │   │       │   ├── app-sidebar.tsx
│       │   │       │   ├── aspect-ratio-demo.tsx
│       │   │       │   ├── avatar-demo.tsx
│       │   │       │   ├── badge-demo.tsx
│       │   │       │   ├── breadcrumb-demo.tsx
│       │   │       │   ├── button-demo.tsx
│       │   │       │   ├── button-group-demo.tsx
│       │   │       │   ├── calendar-demo.tsx
│       │   │       │   ├── card-demo.tsx
│       │   │       │   ├── carousel-demo.tsx
│       │   │       │   ├── chart-area-demo.tsx
│       │   │       │   ├── chart-bar-demo.tsx
│       │   │       │   ├── chart-bar-mixed.tsx
│       │   │       │   ├── chart-demo.tsx
│       │   │       │   ├── chart-line-demo.tsx
│       │   │       │   ├── checkbox-demo.tsx
│       │   │       │   ├── collapsible-demo.tsx
│       │   │       │   ├── combobox-demo.tsx
│       │   │       │   ├── command-demo.tsx
│       │   │       │   ├── component-wrapper.tsx
│       │   │       │   ├── context-menu-demo.tsx
│       │   │       │   ├── date-picker-demo.tsx
│       │   │       │   ├── dialog-demo.tsx
│       │   │       │   ├── drawer-demo.tsx
│       │   │       │   ├── dropdown-menu-demo.tsx
│       │   │       │   ├── empty-demo.tsx
│       │   │       │   ├── field-demo.tsx
│       │   │       │   ├── form-demo.tsx
│       │   │       │   ├── hover-card-demo.tsx
│       │   │       │   ├── input-demo.tsx
│       │   │       │   ├── input-group-demo.tsx
│       │   │       │   ├── input-otp-demo.tsx
│       │   │       │   ├── item-demo.tsx
│       │   │       │   ├── kbd-demo.tsx
│       │   │       │   ├── label-demo.tsx
│       │   │       │   ├── menubar-demo.tsx
│       │   │       │   ├── native-select-demo.tsx
│       │   │       │   ├── navigation-menu-demo.tsx
│       │   │       │   ├── pagination-demo.tsx
│       │   │       │   ├── popover-demo.tsx
│       │   │       │   ├── progress-demo.tsx
│       │   │       │   ├── radio-group-demo.tsx
│       │   │       │   ├── resizable-demo.tsx
│       │   │       │   ├── scroll-area-demo.tsx
│       │   │       │   ├── select-demo.tsx
│       │   │       │   ├── separator-demo.tsx
│       │   │       │   ├── sheet-demo.tsx
│       │   │       │   ├── skeleton-demo.tsx
│       │   │       │   ├── slider-demo.tsx
│       │   │       │   ├── sonner-demo.tsx
│       │   │       │   ├── spinner-demo.tsx
│       │   │       │   ├── switch-demo.tsx
│       │   │       │   ├── table-demo.tsx
│       │   │       │   ├── tabs-demo.tsx
│       │   │       │   ├── textarea-demo.tsx
│       │   │       │   ├── theme-selector.tsx
│       │   │       │   ├── toggle-demo.tsx
│       │   │       │   ├── toggle-group-demo.tsx
│       │   │       │   └── tooltip-demo.tsx
│       │   │       ├── layout.tsx
│       │   │       └── page.tsx
│       │   ├── (view)/
│       │   │   └── view/
│       │   │       └── [style]/
│       │   │           └── [name]/
│       │   │               ├── component-preview.tsx
│       │   │               └── page.tsx
│       │   ├── api/
│       │   │   └── search/
│       │   │       └── route.ts
│       │   ├── layout.tsx
│       │   ├── og/
│       │   │   ├── geist-regular-otf.json
│       │   │   ├── geist-semibold-otf.json
│       │   │   ├── geistmono-regular-otf.json
│       │   │   └── route.tsx
│       │   └── rss.xml/
│       │       └── route.ts
│       ├── components/
│       │   ├── active-theme.tsx
│       │   ├── analytics.tsx
│       │   ├── announcement.tsx
│       │   ├── block-display.tsx
│       │   ├── block-image.tsx
│       │   ├── block-viewer.tsx
│       │   ├── blocks-nav.tsx
│       │   ├── callout.tsx
│       │   ├── cards/
│       │   │   ├── activity-goal.tsx
│       │   │   ├── calendar.tsx
│       │   │   ├── chat.tsx
│       │   │   ├── cookie-settings.tsx
│       │   │   ├── create-account.tsx
│       │   │   ├── exercise-minutes.tsx
│       │   │   ├── forms.tsx
│       │   │   ├── index.tsx
│       │   │   ├── payment-method.tsx
│       │   │   ├── payments.tsx
│       │   │   ├── report-issue.tsx
│       │   │   ├── share.tsx
│       │   │   ├── stats.tsx
│       │   │   └── team-members.tsx
│       │   ├── chart-code-viewer.tsx
│       │   ├── chart-copy-button.tsx
│       │   ├── chart-display.tsx
│       │   ├── chart-iframe.tsx
│       │   ├── chart-toolbar.tsx
│       │   ├── charts-nav.tsx
│       │   ├── code-block-command.tsx
│       │   ├── code-collapsible-wrapper.tsx
│       │   ├── code-tabs.tsx
│       │   ├── color-format-selector.tsx
│       │   ├── color-palette.tsx
│       │   ├── color.tsx
│       │   ├── colors-nav.tsx
│       │   ├── command-menu.tsx
│       │   ├── component-preview-tabs.tsx
│       │   ├── component-preview.tsx
│       │   ├── component-source.tsx
│       │   ├── component-wrapper.tsx
│       │   ├── components-list.tsx
│       │   ├── copy-button.tsx
│       │   ├── directory-add-button.tsx
│       │   ├── directory-list.tsx
│       │   ├── docs-base-switcher.tsx
│       │   ├── docs-breadcrumb.tsx
│       │   ├── docs-copy-page.tsx
│       │   ├── docs-page-links.tsx
│       │   ├── docs-sidebar.tsx
│       │   ├── docs-toc.tsx
│       │   ├── examples-nav.tsx
│       │   ├── github-link.tsx
│       │   ├── icons.tsx
│       │   ├── language-selector.tsx
│       │   ├── lo-fi/
│       │   │   ├── accordion.tsx
│       │   │   ├── alert.tsx
│       │   │   ├── atom.tsx
│       │   │   ├── component.tsx
│       │   │   └── index.tsx
│       │   ├── main-nav.tsx
│       │   ├── mobile-nav.tsx
│       │   ├── mode-switcher.tsx
│       │   ├── nav-header.tsx
│       │   ├── nav-user.tsx
│       │   ├── open-in-v0-button.tsx
│       │   ├── open-in-v0-cta.tsx
│       │   ├── page-header.tsx
│       │   ├── page-nav.tsx
│       │   ├── search-directory.tsx
│       │   ├── site-config.tsx
│       │   ├── site-footer.tsx
│       │   ├── site-header.tsx
│       │   ├── tailwind-indicator.tsx
│       │   ├── theme-customizer.tsx
│       │   ├── theme-provider.tsx
│       │   └── theme-selector.tsx
│       ├── components.json
│       ├── content/
│       │   └── docs/
│       │       ├── (root)/
│       │       │   ├── _blocks.mdx
│       │       │   ├── cli.mdx
│       │       │   ├── components-json.mdx
│       │       │   ├── directory.mdx
│       │       │   ├── figma.mdx
│       │       │   ├── index.mdx
│       │       │   ├── javascript.mdx
│       │       │   ├── legacy.mdx
│       │       │   ├── mcp.mdx
│       │       │   ├── meta.json
│       │       │   ├── monorepo.mdx
│       │       │   ├── new.mdx
│       │       │   ├── react-19.mdx
│       │       │   ├── skills.mdx
│       │       │   ├── tailwind-v4.mdx
│       │       │   ├── theming.mdx
│       │       │   └── v0.mdx
│       │       ├── changelog/
│       │       │   ├── 2023-06-new-cli.mdx
│       │       │   ├── 2023-07-javascript.mdx
│       │       │   ├── 2023-12-new-components.mdx
│       │       │   ├── 2024-03-blocks.mdx
│       │       │   ├── 2024-03-breadcrumb-otp.mdx
│       │       │   ├── 2024-04-lift-mode.mdx
│       │       │   ├── 2024-08-npx-shadcn-init.mdx
│       │       │   ├── 2024-10-react-19.mdx
│       │       │   ├── 2024-10-sidebar.mdx
│       │       │   ├── 2024-11-icons.mdx
│       │       │   ├── 2024-12-monorepo.mdx
│       │       │   ├── 2025-01-blocks.mdx
│       │       │   ├── 2025-02-registry-schema.mdx
│       │       │   ├── 2025-02-tailwind-v4.mdx
│       │       │   ├── 2025-04-cross-framework.mdx
│       │       │   ├── 2025-04-mcp.mdx
│       │       │   ├── 2025-04-shadcn-2-5.mdx
│       │       │   ├── 2025-05-new-site.mdx
│       │       │   ├── 2025-06-calendar.mdx
│       │       │   ├── 2025-06-radix-ui.mdx
│       │       │   ├── 2025-07-local-file-support.mdx
│       │       │   ├── 2025-07-universal-registry.mdx
│       │       │   ├── 2025-08-cli-3-mcp.mdx
│       │       │   ├── 2025-09-registry-index.mdx
│       │       │   ├── 2025-10-new-components.mdx
│       │       │   ├── 2025-10-registry-directory.mdx
│       │       │   ├── 2025-12-shadcn-create.mdx
│       │       │   ├── 2026-01-base-ui.mdx
│       │       │   ├── 2026-01-inline-side-styles.mdx
│       │       │   ├── 2026-01-rtl.mdx
│       │       │   ├── 2026-02-blocks.mdx
│       │       │   ├── 2026-02-radix-ui.mdx
│       │       │   ├── 2026-03-cli-v4.mdx
│       │       │   ├── index.mdx
│       │       │   └── meta.json
│       │       ├── components/
│       │       │   ├── base/
│       │       │   │   ├── accordion.mdx
│       │       │   │   ├── alert-dialog.mdx
│       │       │   │   ├── alert.mdx
│       │       │   │   ├── aspect-ratio.mdx
│       │       │   │   ├── avatar.mdx
│       │       │   │   ├── badge.mdx
│       │       │   │   ├── breadcrumb.mdx
│       │       │   │   ├── button-group.mdx
│       │       │   │   ├── button.mdx
│       │       │   │   ├── calendar.mdx
│       │       │   │   ├── card.mdx
│       │       │   │   ├── carousel.mdx
│       │       │   │   ├── chart.mdx
│       │       │   │   ├── checkbox.mdx
│       │       │   │   ├── collapsible.mdx
│       │       │   │   ├── combobox.mdx
│       │       │   │   ├── command.mdx
│       │       │   │   ├── context-menu.mdx
│       │       │   │   ├── data-table.mdx
│       │       │   │   ├── date-picker.mdx
│       │       │   │   ├── dialog.mdx
│       │       │   │   ├── direction.mdx
│       │       │   │   ├── drawer.mdx
│       │       │   │   ├── dropdown-menu.mdx
│       │       │   │   ├── empty.mdx
│       │       │   │   ├── field.mdx
│       │       │   │   ├── hover-card.mdx
│       │       │   │   ├── input-group.mdx
│       │       │   │   ├── input-otp.mdx
│       │       │   │   ├── input.mdx
│       │       │   │   ├── item.mdx
│       │       │   │   ├── kbd.mdx
│       │       │   │   ├── label.mdx
│       │       │   │   ├── menubar.mdx
│       │       │   │   ├── meta.json
│       │       │   │   ├── native-select.mdx
│       │       │   │   ├── navigation-menu.mdx
│       │       │   │   ├── pagination.mdx
│       │       │   │   ├── popover.mdx
│       │       │   │   ├── progress.mdx
│       │       │   │   ├── radio-group.mdx
│       │       │   │   ├── resizable.mdx
│       │       │   │   ├── scroll-area.mdx
│       │       │   │   ├── select.mdx
│       │       │   │   ├── separator.mdx
│       │       │   │   ├── sheet.mdx
│       │       │   │   ├── sidebar.mdx
│       │       │   │   ├── skeleton.mdx
│       │       │   │   ├── slider.mdx
│       │       │   │   ├── sonner.mdx
│       │       │   │   ├── spinner.mdx
│       │       │   │   ├── switch.mdx
│       │       │   │   ├── table.mdx
│       │       │   │   ├── tabs.mdx
│       │       │   │   ├── textarea.mdx
│       │       │   │   ├── toast.mdx
│       │       │   │   ├── toggle-group.mdx
│       │       │   │   ├── toggle.mdx
│       │       │   │   ├── tooltip.mdx
│       │       │   │   └── typography.mdx
│       │       │   ├── index.mdx
│       │       │   ├── meta.json
│       │       │   └── radix/
│       │       │       ├── accordion.mdx
│       │       │       ├── alert-dialog.mdx
│       │       │       ├── alert.mdx
│       │       │       ├── aspect-ratio.mdx
│       │       │       ├── avatar.mdx
│       │       │       ├── badge.mdx
│       │       │       ├── breadcrumb.mdx
│       │       │       ├── button-group.mdx
│       │       │       ├── button.mdx
│       │       │       ├── calendar.mdx
│       │       │       ├── card.mdx
│       │       │       ├── carousel.mdx
│       │       │       ├── chart.mdx
│       │       │       ├── checkbox.mdx
│       │       │       ├── collapsible.mdx
│       │       │       ├── combobox.mdx
│       │       │       ├── command.mdx
│       │       │       ├── context-menu.mdx
│       │       │       ├── data-table.mdx
│       │       │       ├── date-picker.mdx
│       │       │       ├── dialog.mdx
│       │       │       ├── direction.mdx
│       │       │       ├── drawer.mdx
│       │       │       ├── dropdown-menu.mdx
│       │       │       ├── empty.mdx
│       │       │       ├── field.mdx
│       │       │       ├── hover-card.mdx
│       │       │       ├── input-group.mdx
│       │       │       ├── input-otp.mdx
│       │       │       ├── input.mdx
│       │       │       ├── item.mdx
│       │       │       ├── kbd.mdx
│       │       │       ├── label.mdx
│       │       │       ├── menubar.mdx
│       │       │       ├── meta.json
│       │       │       ├── native-select.mdx
│       │       │       ├── navigation-menu.mdx
│       │       │       ├── pagination.mdx
│       │       │       ├── popover.mdx
│       │       │       ├── progress.mdx
│       │       │       ├── radio-group.mdx
│       │       │       ├── resizable.mdx
│       │       │       ├── scroll-area.mdx
│       │       │       ├── select.mdx
│       │       │       ├── separator.mdx
│       │       │       ├── sheet.mdx
│       │       │       ├── sidebar.mdx
│       │       │       ├── skeleton.mdx
│       │       │       ├── slider.mdx
│       │       │       ├── sonner.mdx
│       │       │       ├── spinner.mdx
│       │       │       ├── switch.mdx
│       │       │       ├── table.mdx
│       │       │       ├── tabs.mdx
│       │       │       ├── textarea.mdx
│       │       │       ├── toast.mdx
│       │       │       ├── toggle-group.mdx
│       │       │       ├── toggle.mdx
│       │       │       ├── tooltip.mdx
│       │       │       └── typography.mdx
│       │       ├── dark-mode/
│       │       │   ├── astro.mdx
│       │       │   ├── index.mdx
│       │       │   ├── meta.json
│       │       │   ├── next.mdx
│       │       │   ├── remix.mdx
│       │       │   └── vite.mdx
│       │       ├── forms/
│       │       │   ├── index.mdx
│       │       │   ├── meta.json
│       │       │   ├── next.mdx
│       │       │   ├── react-hook-form.mdx
│       │       │   └── tanstack-form.mdx
│       │       ├── installation/
│       │       │   ├── astro.mdx
│       │       │   ├── gatsby.mdx
│       │       │   ├── index.mdx
│       │       │   ├── laravel.mdx
│       │       │   ├── manual.mdx
│       │       │   ├── meta.json
│       │       │   ├── next.mdx
│       │       │   ├── react-router.mdx
│       │       │   ├── remix.mdx
│       │       │   ├── tanstack-router.mdx
│       │       │   ├── tanstack.mdx
│       │       │   └── vite.mdx
│       │       ├── meta.json
│       │       ├── registry/
│       │       │   ├── authentication.mdx
│       │       │   ├── examples.mdx
│       │       │   ├── faq.mdx
│       │       │   ├── getting-started.mdx
│       │       │   ├── index.mdx
│       │       │   ├── mcp.mdx
│       │       │   ├── meta.json
│       │       │   ├── namespace.mdx
│       │       │   ├── open-in-v0.mdx
│       │       │   ├── registry-index.mdx
│       │       │   ├── registry-item-json.mdx
│       │       │   └── registry-json.mdx
│       │       └── rtl/
│       │           ├── index.mdx
│       │           ├── meta.json
│       │           ├── next.mdx
│       │           ├── start.mdx
│       │           └── vite.mdx
│       ├── eslint.config.mjs
│       ├── examples/
│       │   ├── README.md
│       │   ├── __index__.tsx
│       │   ├── base/
│       │   │   ├── accordion-basic.tsx
│       │   │   ├── accordion-borders.tsx
│       │   │   ├── accordion-card.tsx
│       │   │   ├── accordion-demo.tsx
│       │   │   ├── accordion-disabled.tsx
│       │   │   ├── accordion-multiple.tsx
│       │   │   ├── accordion-rtl.tsx
│       │   │   ├── alert-action.tsx
│       │   │   ├── alert-basic.tsx
│       │   │   ├── alert-colors.tsx
│       │   │   ├── alert-demo.tsx
│       │   │   ├── alert-destructive.tsx
│       │   │   ├── alert-dialog-basic.tsx
│       │   │   ├── alert-dialog-demo.tsx
│       │   │   ├── alert-dialog-destructive.tsx
│       │   │   ├── alert-dialog-media.tsx
│       │   │   ├── alert-dialog-rtl.tsx
│       │   │   ├── alert-dialog-small-media.tsx
│       │   │   ├── alert-dialog-small.tsx
│       │   │   ├── alert-rtl.tsx
│       │   │   ├── aspect-ratio-demo.tsx
│       │   │   ├── aspect-ratio-portrait.tsx
│       │   │   ├── aspect-ratio-rtl.tsx
│       │   │   ├── aspect-ratio-square.tsx
│       │   │   ├── avatar-badge-icon.tsx
│       │   │   ├── avatar-badge.tsx
│       │   │   ├── avatar-basic.tsx
│       │   │   ├── avatar-demo.tsx
│       │   │   ├── avatar-dropdown.tsx
│       │   │   ├── avatar-group-count-icon.tsx
│       │   │   ├── avatar-group-count.tsx
│       │   │   ├── avatar-group.tsx
│       │   │   ├── avatar-rtl.tsx
│       │   │   ├── avatar-size.tsx
│       │   │   ├── badge-colors.tsx
│       │   │   ├── badge-demo.tsx
│       │   │   ├── badge-icon.tsx
│       │   │   ├── badge-link.tsx
│       │   │   ├── badge-rtl.tsx
│       │   │   ├── badge-spinner.tsx
│       │   │   ├── badge-variants.tsx
│       │   │   ├── breadcrumb-basic.tsx
│       │   │   ├── breadcrumb-demo.tsx
│       │   │   ├── breadcrumb-dropdown.tsx
│       │   │   ├── breadcrumb-ellipsis.tsx
│       │   │   ├── breadcrumb-link.tsx
│       │   │   ├── breadcrumb-rtl.tsx
│       │   │   ├── breadcrumb-separator.tsx
│       │   │   ├── button-default.tsx
│       │   │   ├── button-demo.tsx
│       │   │   ├── button-destructive.tsx
│       │   │   ├── button-ghost.tsx
│       │   │   ├── button-group-demo.tsx
│       │   │   ├── button-group-dropdown.tsx
│       │   │   ├── button-group-input-group.tsx
│       │   │   ├── button-group-input.tsx
│       │   │   ├── button-group-nested.tsx
│       │   │   ├── button-group-orientation.tsx
│       │   │   ├── button-group-popover.tsx
│       │   │   ├── button-group-rtl.tsx
│       │   │   ├── button-group-select.tsx
│       │   │   ├── button-group-separator.tsx
│       │   │   ├── button-group-size.tsx
│       │   │   ├── button-group-split.tsx
│       │   │   ├── button-icon.tsx
│       │   │   ├── button-link.tsx
│       │   │   ├── button-outline.tsx
│       │   │   ├── button-render.tsx
│       │   │   ├── button-rounded.tsx
│       │   │   ├── button-rtl.tsx
│       │   │   ├── button-secondary.tsx
│       │   │   ├── button-size.tsx
│       │   │   ├── button-spinner.tsx
│       │   │   ├── button-with-icon.tsx
│       │   │   ├── calendar-basic.tsx
│       │   │   ├── calendar-booked-dates.tsx
│       │   │   ├── calendar-caption.tsx
│       │   │   ├── calendar-custom-days.tsx
│       │   │   ├── calendar-demo.tsx
│       │   │   ├── calendar-hijri.tsx
│       │   │   ├── calendar-multiple.tsx
│       │   │   ├── calendar-presets.tsx
│       │   │   ├── calendar-range.tsx
│       │   │   ├── calendar-rtl.tsx
│       │   │   ├── calendar-time.tsx
│       │   │   ├── calendar-week-numbers.tsx
│       │   │   ├── card-demo.tsx
│       │   │   ├── card-image.tsx
│       │   │   ├── card-rtl.tsx
│       │   │   ├── card-small.tsx
│       │   │   ├── carousel-api.tsx
│       │   │   ├── carousel-demo.tsx
│       │   │   ├── carousel-multiple.tsx
│       │   │   ├── carousel-orientation.tsx
│       │   │   ├── carousel-plugin.tsx
│       │   │   ├── carousel-rtl.tsx
│       │   │   ├── carousel-size.tsx
│       │   │   ├── carousel-spacing.tsx
│       │   │   ├── chart-demo.tsx
│       │   │   ├── chart-example-axis.tsx
│       │   │   ├── chart-example-grid.tsx
│       │   │   ├── chart-example-legend.tsx
│       │   │   ├── chart-example-tooltip.tsx
│       │   │   ├── chart-example.tsx
│       │   │   ├── chart-rtl.tsx
│       │   │   ├── chart-tooltip.tsx
│       │   │   ├── checkbox-basic.tsx
│       │   │   ├── checkbox-demo.tsx
│       │   │   ├── checkbox-description.tsx
│       │   │   ├── checkbox-disabled.tsx
│       │   │   ├── checkbox-group.tsx
│       │   │   ├── checkbox-invalid.tsx
│       │   │   ├── checkbox-rtl.tsx
│       │   │   ├── checkbox-table.tsx
│       │   │   ├── collapsible-basic.tsx
│       │   │   ├── collapsible-demo.tsx
│       │   │   ├── collapsible-file-tree.tsx
│       │   │   ├── collapsible-rtl.tsx
│       │   │   ├── collapsible-settings.tsx
│       │   │   ├── combobox-auto-highlight.tsx
│       │   │   ├── combobox-basic.tsx
│       │   │   ├── combobox-clear.tsx
│       │   │   ├── combobox-custom.tsx
│       │   │   ├── combobox-demo.tsx
│       │   │   ├── combobox-disabled.tsx
│       │   │   ├── combobox-groups.tsx
│       │   │   ├── combobox-input-group.tsx
│       │   │   ├── combobox-invalid.tsx
│       │   │   ├── combobox-multiple.tsx
│       │   │   ├── combobox-popup.tsx
│       │   │   ├── combobox-rtl.tsx
│       │   │   ├── command-basic.tsx
│       │   │   ├── command-demo.tsx
│       │   │   ├── command-dialog.tsx
│       │   │   ├── command-groups.tsx
│       │   │   ├── command-rtl.tsx
│       │   │   ├── command-scrollable.tsx
│       │   │   ├── command-shortcuts.tsx
│       │   │   ├── context-menu-basic.tsx
│       │   │   ├── context-menu-checkboxes.tsx
│       │   │   ├── context-menu-demo.tsx
│       │   │   ├── context-menu-destructive.tsx
│       │   │   ├── context-menu-groups.tsx
│       │   │   ├── context-menu-icons.tsx
│       │   │   ├── context-menu-radio.tsx
│       │   │   ├── context-menu-rtl.tsx
│       │   │   ├── context-menu-shortcuts.tsx
│       │   │   ├── context-menu-sides.tsx
│       │   │   ├── context-menu-submenu.tsx
│       │   │   ├── data-picker-with-dropdowns.tsx
│       │   │   ├── data-table-demo.tsx
│       │   │   ├── data-table-rtl.tsx
│       │   │   ├── date-picker-basic.tsx
│       │   │   ├── date-picker-demo.tsx
│       │   │   ├── date-picker-dob.tsx
│       │   │   ├── date-picker-input.tsx
│       │   │   ├── date-picker-natural-language.tsx
│       │   │   ├── date-picker-range.tsx
│       │   │   ├── date-picker-rtl.tsx
│       │   │   ├── date-picker-time.tsx
│       │   │   ├── dialog-close-button.tsx
│       │   │   ├── dialog-demo.tsx
│       │   │   ├── dialog-no-close-button.tsx
│       │   │   ├── dialog-rtl.tsx
│       │   │   ├── dialog-scrollable-content.tsx
│       │   │   ├── dialog-sticky-footer.tsx
│       │   │   ├── drawer-demo.tsx
│       │   │   ├── drawer-dialog.tsx
│       │   │   ├── drawer-rtl.tsx
│       │   │   ├── drawer-scrollable-content.tsx
│       │   │   ├── drawer-sides.tsx
│       │   │   ├── dropdown-menu-avatar.tsx
│       │   │   ├── dropdown-menu-basic.tsx
│       │   │   ├── dropdown-menu-checkboxes-icons.tsx
│       │   │   ├── dropdown-menu-checkboxes.tsx
│       │   │   ├── dropdown-menu-complex.tsx
│       │   │   ├── dropdown-menu-demo.tsx
│       │   │   ├── dropdown-menu-destructive.tsx
│       │   │   ├── dropdown-menu-icons.tsx
│       │   │   ├── dropdown-menu-radio-group.tsx
│       │   │   ├── dropdown-menu-radio-icons.tsx
│       │   │   ├── dropdown-menu-rtl.tsx
│       │   │   ├── dropdown-menu-shortcuts.tsx
│       │   │   ├── dropdown-menu-submenu.tsx
│       │   │   ├── empty-avatar-group.tsx
│       │   │   ├── empty-avatar.tsx
│       │   │   ├── empty-background.tsx
│       │   │   ├── empty-card.tsx
│       │   │   ├── empty-demo.tsx
│       │   │   ├── empty-input-group.tsx
│       │   │   ├── empty-outline.tsx
│       │   │   ├── empty-rtl.tsx
│       │   │   ├── field-checkbox.tsx
│       │   │   ├── field-choice-card.tsx
│       │   │   ├── field-demo.tsx
│       │   │   ├── field-fieldset.tsx
│       │   │   ├── field-group.tsx
│       │   │   ├── field-input.tsx
│       │   │   ├── field-radio.tsx
│       │   │   ├── field-responsive.tsx
│       │   │   ├── field-rtl.tsx
│       │   │   ├── field-select.tsx
│       │   │   ├── field-slider.tsx
│       │   │   ├── field-switch.tsx
│       │   │   ├── field-textarea.tsx
│       │   │   ├── file-upload-list.tsx
│       │   │   ├── hooks/
│       │   │   │   └── use-mobile.ts
│       │   │   ├── hover-card-demo.tsx
│       │   │   ├── hover-card-rtl.tsx
│       │   │   ├── hover-card-sides.tsx
│       │   │   ├── input-badge.tsx
│       │   │   ├── input-basic.tsx
│       │   │   ├── input-button-group.tsx
│       │   │   ├── input-demo.tsx
│       │   │   ├── input-disabled.tsx
│       │   │   ├── input-field.tsx
│       │   │   ├── input-fieldgroup.tsx
│       │   │   ├── input-file.tsx
│       │   │   ├── input-form.tsx
│       │   │   ├── input-grid.tsx
│       │   │   ├── input-group-basic.tsx
│       │   │   ├── input-group-block-end.tsx
│       │   │   ├── input-group-block-start.tsx
│       │   │   ├── input-group-button-group.tsx
│       │   │   ├── input-group-button.tsx
│       │   │   ├── input-group-custom.tsx
│       │   │   ├── input-group-demo.tsx
│       │   │   ├── input-group-dropdown.tsx
│       │   │   ├── input-group-icon.tsx
│       │   │   ├── input-group-in-card.tsx
│       │   │   ├── input-group-inline-end.tsx
│       │   │   ├── input-group-inline-start.tsx
│       │   │   ├── input-group-kbd.tsx
│       │   │   ├── input-group-label.tsx
│       │   │   ├── input-group-rtl.tsx
│       │   │   ├── input-group-spinner.tsx
│       │   │   ├── input-group-text.tsx
│       │   │   ├── input-group-textarea-examples.tsx
│       │   │   ├── input-group-textarea.tsx
│       │   │   ├── input-group-tooltip.tsx
│       │   │   ├── input-group-with-addons.tsx
│       │   │   ├── input-group-with-buttons.tsx
│       │   │   ├── input-group-with-kbd.tsx
│       │   │   ├── input-group-with-tooltip.tsx
│       │   │   ├── input-inline.tsx
│       │   │   ├── input-input-group.tsx
│       │   │   ├── input-invalid.tsx
│       │   │   ├── input-otp-alphanumeric.tsx
│       │   │   ├── input-otp-controlled.tsx
│       │   │   ├── input-otp-demo.tsx
│       │   │   ├── input-otp-disabled.tsx
│       │   │   ├── input-otp-form.tsx
│       │   │   ├── input-otp-four-digits.tsx
│       │   │   ├── input-otp-invalid.tsx
│       │   │   ├── input-otp-pattern.tsx
│       │   │   ├── input-otp-rtl.tsx
│       │   │   ├── input-otp-separator.tsx
│       │   │   ├── input-required.tsx
│       │   │   ├── input-rtl.tsx
│       │   │   ├── item-avatar.tsx
│       │   │   ├── item-demo.tsx
│       │   │   ├── item-dropdown.tsx
│       │   │   ├── item-group.tsx
│       │   │   ├── item-header.tsx
│       │   │   ├── item-icon.tsx
│       │   │   ├── item-image.tsx
│       │   │   ├── item-link.tsx
│       │   │   ├── item-rtl.tsx
│       │   │   ├── item-size.tsx
│       │   │   ├── item-variant.tsx
│       │   │   ├── kbd-button.tsx
│       │   │   ├── kbd-demo.tsx
│       │   │   ├── kbd-group.tsx
│       │   │   ├── kbd-input-group.tsx
│       │   │   ├── kbd-rtl.tsx
│       │   │   ├── kbd-tooltip.tsx
│       │   │   ├── label-demo.tsx
│       │   │   ├── label-rtl.tsx
│       │   │   ├── lib/
│       │   │   │   └── utils.ts
│       │   │   ├── menubar-checkbox.tsx
│       │   │   ├── menubar-demo.tsx
│       │   │   ├── menubar-icons.tsx
│       │   │   ├── menubar-radio.tsx
│       │   │   ├── menubar-rtl.tsx
│       │   │   ├── menubar-submenu.tsx
│       │   │   ├── muted-item-group.tsx
│       │   │   ├── native-select-demo.tsx
│       │   │   ├── native-select-disabled.tsx
│       │   │   ├── native-select-groups.tsx
│       │   │   ├── native-select-invalid.tsx
│       │   │   ├── native-select-rtl.tsx
│       │   │   ├── navigation-menu-demo.tsx
│       │   │   ├── navigation-menu-rtl.tsx
│       │   │   ├── outline-item-group.tsx
│       │   │   ├── pagination-demo.tsx
│       │   │   ├── pagination-icons-only.tsx
│       │   │   ├── pagination-rtl.tsx
│       │   │   ├── pagination-simple.tsx
│       │   │   ├── popover-alignments.tsx
│       │   │   ├── popover-basic.tsx
│       │   │   ├── popover-demo.tsx
│       │   │   ├── popover-form.tsx
│       │   │   ├── popover-rtl.tsx
│       │   │   ├── progress-controlled.tsx
│       │   │   ├── progress-demo.tsx
│       │   │   ├── progress-label.tsx
│       │   │   ├── progress-rtl.tsx
│       │   │   ├── radio-fields.tsx
│       │   │   ├── radio-group-choice-card.tsx
│       │   │   ├── radio-group-demo.tsx
│       │   │   ├── radio-group-description.tsx
│       │   │   ├── radio-group-disabled.tsx
│       │   │   ├── radio-group-fieldset.tsx
│       │   │   ├── radio-group-invalid.tsx
│       │   │   ├── radio-group-rtl.tsx
│       │   │   ├── resizable-demo.tsx
│       │   │   ├── resizable-handle.tsx
│       │   │   ├── resizable-rtl.tsx
│       │   │   ├── resizable-vertical.tsx
│       │   │   ├── scroll-area-demo.tsx
│       │   │   ├── scroll-area-horizontal-demo.tsx
│       │   │   ├── scroll-area-rtl.tsx
│       │   │   ├── select-align-item.tsx
│       │   │   ├── select-demo.tsx
│       │   │   ├── select-disabled.tsx
│       │   │   ├── select-groups.tsx
│       │   │   ├── select-invalid.tsx
│       │   │   ├── select-rtl.tsx
│       │   │   ├── select-scrollable.tsx
│       │   │   ├── separator-demo.tsx
│       │   │   ├── separator-list.tsx
│       │   │   ├── separator-menu.tsx
│       │   │   ├── separator-rtl.tsx
│       │   │   ├── separator-vertical.tsx
│       │   │   ├── sheet-demo.tsx
│       │   │   ├── sheet-no-close-button.tsx
│       │   │   ├── sheet-rtl.tsx
│       │   │   ├── sheet-side.tsx
│       │   │   ├── sidebar-controlled.tsx
│       │   │   ├── sidebar-demo.tsx
│       │   │   ├── sidebar-footer.tsx
│       │   │   ├── sidebar-group-action.tsx
│       │   │   ├── sidebar-group-collapsible.tsx
│       │   │   ├── sidebar-group.tsx
│       │   │   ├── sidebar-header.tsx
│       │   │   ├── sidebar-menu-action.tsx
│       │   │   ├── sidebar-menu-badge.tsx
│       │   │   ├── sidebar-menu-collapsible.tsx
│       │   │   ├── sidebar-menu-sub.tsx
│       │   │   ├── sidebar-menu.tsx
│       │   │   ├── sidebar-rsc.tsx
│       │   │   ├── sidebar-rtl.tsx
│       │   │   ├── skeleton-avatar.tsx
│       │   │   ├── skeleton-card.tsx
│       │   │   ├── skeleton-demo.tsx
│       │   │   ├── skeleton-form.tsx
│       │   │   ├── skeleton-rtl.tsx
│       │   │   ├── skeleton-table.tsx
│       │   │   ├── skeleton-text.tsx
│       │   │   ├── slider-controlled.tsx
│       │   │   ├── slider-demo.tsx
│       │   │   ├── slider-disabled.tsx
│       │   │   ├── slider-multiple.tsx
│       │   │   ├── slider-range.tsx
│       │   │   ├── slider-rtl.tsx
│       │   │   ├── slider-vertical.tsx
│       │   │   ├── sonner-demo.tsx
│       │   │   ├── sonner-description.tsx
│       │   │   ├── sonner-position.tsx
│       │   │   ├── sonner-types.tsx
│       │   │   ├── spinner-badge.tsx
│       │   │   ├── spinner-button.tsx
│       │   │   ├── spinner-custom.tsx
│       │   │   ├── spinner-demo.tsx
│       │   │   ├── spinner-empty.tsx
│       │   │   ├── spinner-input-group.tsx
│       │   │   ├── spinner-rtl.tsx
│       │   │   ├── spinner-size.tsx
│       │   │   ├── switch-choice-card.tsx
│       │   │   ├── switch-demo.tsx
│       │   │   ├── switch-description.tsx
│       │   │   ├── switch-disabled.tsx
│       │   │   ├── switch-invalid.tsx
│       │   │   ├── switch-rtl.tsx
│       │   │   ├── switch-sizes.tsx
│       │   │   ├── table-actions.tsx
│       │   │   ├── table-demo.tsx
│       │   │   ├── table-footer.tsx
│       │   │   ├── table-rtl.tsx
│       │   │   ├── tabs-demo.tsx
│       │   │   ├── tabs-disabled.tsx
│       │   │   ├── tabs-icons.tsx
│       │   │   ├── tabs-line.tsx
│       │   │   ├── tabs-rtl.tsx
│       │   │   ├── tabs-vertical.tsx
│       │   │   ├── textarea-button.tsx
│       │   │   ├── textarea-demo.tsx
│       │   │   ├── textarea-disabled.tsx
│       │   │   ├── textarea-field.tsx
│       │   │   ├── textarea-invalid.tsx
│       │   │   ├── textarea-rtl.tsx
│       │   │   ├── toggle-demo.tsx
│       │   │   ├── toggle-disabled.tsx
│       │   │   ├── toggle-group-demo.tsx
│       │   │   ├── toggle-group-disabled.tsx
│       │   │   ├── toggle-group-font-weight-selector.tsx
│       │   │   ├── toggle-group-outline.tsx
│       │   │   ├── toggle-group-rtl.tsx
│       │   │   ├── toggle-group-sizes.tsx
│       │   │   ├── toggle-group-spacing.tsx
│       │   │   ├── toggle-group-vertical.tsx
│       │   │   ├── toggle-outline.tsx
│       │   │   ├── toggle-rtl.tsx
│       │   │   ├── toggle-sizes.tsx
│       │   │   ├── toggle-text.tsx
│       │   │   ├── tooltip-demo.tsx
│       │   │   ├── tooltip-disabled.tsx
│       │   │   ├── tooltip-keyboard.tsx
│       │   │   ├── tooltip-rtl.tsx
│       │   │   ├── tooltip-sides.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-rtl.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-group.tsx
│       │   │   │   ├── button.tsx
│       │   │   │   ├── calendar.tsx
│       │   │   │   ├── card.tsx
│       │   │   │   ├── carousel.tsx
│       │   │   │   ├── chart.tsx
│       │   │   │   ├── checkbox.tsx
│       │   │   │   ├── collapsible.tsx
│       │   │   │   ├── combobox.tsx
│       │   │   │   ├── command.tsx
│       │   │   │   ├── context-menu.tsx
│       │   │   │   ├── dialog.tsx
│       │   │   │   ├── direction.tsx
│       │   │   │   ├── drawer.tsx
│       │   │   │   ├── dropdown-menu.tsx
│       │   │   │   ├── empty.tsx
│       │   │   │   ├── field.tsx
│       │   │   │   ├── hover-card.tsx
│       │   │   │   ├── input-group.tsx
│       │   │   │   ├── input-otp.tsx
│       │   │   │   ├── input.tsx
│       │   │   │   ├── item.tsx
│       │   │   │   ├── kbd.tsx
│       │   │   │   ├── label.tsx
│       │   │   │   ├── menubar.tsx
│       │   │   │   ├── native-select.tsx
│       │   │   │   ├── navigation-menu.tsx
│       │   │   │   ├── pagination.tsx
│       │   │   │   ├── popover.tsx
│       │   │   │   ├── progress.tsx
│       │   │   │   ├── radio-group.tsx
│       │   │   │   ├── resizable.tsx
│       │   │   │   ├── scroll-area.tsx
│       │   │   │   ├── select.tsx
│       │   │   │   ├── separator.tsx
│       │   │   │   ├── sheet.tsx
│       │   │   │   ├── sidebar.tsx
│       │   │   │   ├── skeleton.tsx
│       │   │   │   ├── slider.tsx
│       │   │   │   ├── sonner.tsx
│       │   │   │   ├── spinner.tsx
│       │   │   │   ├── switch.tsx
│       │   │   │   ├── table.tsx
│       │   │   │   ├── tabs.tsx
│       │   │   │   ├── textarea.tsx
│       │   │   │   ├── toggle-group.tsx
│       │   │   │   ├── toggle.tsx
│       │   │   │   └── tooltip.tsx
│       │   │   └── ui-rtl/
│       │   │       ├── accordion.tsx
│       │   │       ├── alert-dialog.tsx
│       │   │       ├── alert.tsx
│       │   │       ├── aspect-ratio.tsx
│       │   │       ├── avatar.tsx
│       │   │       ├── badge.tsx
│       │   │       ├── breadcrumb.tsx
│       │   │       ├── button-group.tsx
│       │   │       ├── button.tsx
│       │   │       ├── calendar.tsx
│       │   │       ├── card.tsx
│       │   │       ├── carousel.tsx
│       │   │       ├── chart.tsx
│       │   │       ├── checkbox.tsx
│       │   │       ├── collapsible.tsx
│       │   │       ├── combobox.tsx
│       │   │       ├── command.tsx
│       │   │       ├── context-menu.tsx
│       │   │       ├── dialog.tsx
│       │   │       ├── direction.tsx
│       │   │       ├── drawer.tsx
│       │   │       ├── dropdown-menu.tsx
│       │   │       ├── empty.tsx
│       │   │       ├── field.tsx
│       │   │       ├── hover-card.tsx
│       │   │       ├── input-group.tsx
│       │   │       ├── input-otp.tsx
│       │   │       ├── input.tsx
│       │   │       ├── item.tsx
│       │   │       ├── kbd.tsx
│       │   │       ├── label.tsx
│       │   │       ├── menubar.tsx
│       │   │       ├── native-select.tsx
│       │   │       ├── navigation-menu.tsx
│       │   │       ├── pagination.tsx
│       │   │       ├── popover.tsx
│       │   │       ├── progress.tsx
│       │   │       ├── radio-group.tsx
│       │   │       ├── resizable.tsx
│       │   │       ├── scroll-area.tsx
│       │   │       ├── select.tsx
│       │   │       ├── separator.tsx
│       │   │       ├── sheet.tsx
│       │   │       ├── sidebar.tsx
│       │   │       ├── skeleton.tsx
│       │   │       ├── slider.tsx
│       │   │       ├── sonner.tsx
│       │   │       ├── spinner.tsx
│       │   │       ├── switch.tsx
│       │   │       ├── table.tsx
│       │   │       ├── tabs.tsx
│       │   │       ├── textarea.tsx
│       │   │       ├── toggle-group.tsx
│       │   │       ├── toggle.tsx
│       │   │       └── tooltip.tsx
│       │   └── radix/
│       │       ├── accordion-basic.tsx
│       │       ├── accordion-borders.tsx
│       │       ├── accordion-card.tsx
│       │       ├── accordion-demo.tsx
│       │       ├── accordion-disabled.tsx
│       │       ├── accordion-multiple.tsx
│       │       ├── accordion-rtl.tsx
│       │       ├── alert-action.tsx
│       │       ├── alert-basic.tsx
│       │       ├── alert-colors.tsx
│       │       ├── alert-demo.tsx
│       │       ├── alert-destructive.tsx
│       │       ├── alert-dialog-basic.tsx
│       │       ├── alert-dialog-demo.tsx
│       │       ├── alert-dialog-destructive.tsx
│       │       ├── alert-dialog-media.tsx
│       │       ├── alert-dialog-rtl.tsx
│       │       ├── alert-dialog-small-media.tsx
│       │       ├── alert-dialog-small.tsx
│       │       ├── alert-rtl.tsx
│       │       ├── aspect-ratio-demo.tsx
│       │       ├── aspect-ratio-portrait.tsx
│       │       ├── aspect-ratio-rtl.tsx
│       │       ├── aspect-ratio-square.tsx
│       │       ├── avatar-badge-icon.tsx
│       │       ├── avatar-badge.tsx
│       │       ├── avatar-basic.tsx
│       │       ├── avatar-demo.tsx
│       │       ├── avatar-dropdown.tsx
│       │       ├── avatar-group-count-icon.tsx
│       │       ├── avatar-group-count.tsx
│       │       ├── avatar-group.tsx
│       │       ├── avatar-rtl.tsx
│       │       ├── avatar-size.tsx
│       │       ├── badge-colors.tsx
│       │       ├── badge-demo.tsx
│       │       ├── badge-icon.tsx
│       │       ├── badge-link.tsx
│       │       ├── badge-rtl.tsx
│       │       ├── badge-spinner.tsx
│       │       ├── badge-variants.tsx
│       │       ├── breadcrumb-basic.tsx
│       │       ├── breadcrumb-demo.tsx
│       │       ├── breadcrumb-dropdown.tsx
│       │       ├── breadcrumb-ellipsis.tsx
│       │       ├── breadcrumb-link.tsx
│       │       ├── breadcrumb-rtl.tsx
│       │       ├── breadcrumb-separator.tsx
│       │       ├── button-aschild.tsx
│       │       ├── button-default.tsx
│       │       ├── button-demo.tsx
│       │       ├── button-destructive.tsx
│       │       ├── button-ghost.tsx
│       │       ├── button-group-demo.tsx
│       │       ├── button-group-dropdown.tsx
│       │       ├── button-group-input-group.tsx
│       │       ├── button-group-input.tsx
│       │       ├── button-group-nested.tsx
│       │       ├── button-group-orientation.tsx
│       │       ├── button-group-popover.tsx
│       │       ├── button-group-rtl.tsx
│       │       ├── button-group-select.tsx
│       │       ├── button-group-separator.tsx
│       │       ├── button-group-size.tsx
│       │       ├── button-group-split.tsx
│       │       ├── button-icon.tsx
│       │       ├── button-link.tsx
│       │       ├── button-outline.tsx
│       │       ├── button-rounded.tsx
│       │       ├── button-rtl.tsx
│       │       ├── button-secondary.tsx
│       │       ├── button-size.tsx
│       │       ├── button-spinner.tsx
│       │       ├── button-with-icon.tsx
│       │       ├── calendar-basic.tsx
│       │       ├── calendar-booked-dates.tsx
│       │       ├── calendar-caption.tsx
│       │       ├── calendar-custom-days.tsx
│       │       ├── calendar-demo.tsx
│       │       ├── calendar-hijri.tsx
│       │       ├── calendar-multiple.tsx
│       │       ├── calendar-presets.tsx
│       │       ├── calendar-range.tsx
│       │       ├── calendar-rtl.tsx
│       │       ├── calendar-time.tsx
│       │       ├── calendar-week-numbers.tsx
│       │       ├── card-demo.tsx
│       │       ├── card-image.tsx
│       │       ├── card-rtl.tsx
│       │       ├── card-small.tsx
│       │       ├── carousel-api.tsx
│       │       ├── carousel-demo.tsx
│       │       ├── carousel-multiple.tsx
│       │       ├── carousel-orientation.tsx
│       │       ├── carousel-plugin.tsx
│       │       ├── carousel-rtl.tsx
│       │       ├── carousel-size.tsx
│       │       ├── carousel-spacing.tsx
│       │       ├── chart-demo.tsx
│       │       ├── chart-example-axis.tsx
│       │       ├── chart-example-grid.tsx
│       │       ├── chart-example-legend.tsx
│       │       ├── chart-example-tooltip.tsx
│       │       ├── chart-example.tsx
│       │       ├── chart-rtl.tsx
│       │       ├── chart-tooltip.tsx
│       │       ├── checkbox-basic.tsx
│       │       ├── checkbox-demo.tsx
│       │       ├── checkbox-description.tsx
│       │       ├── checkbox-disabled.tsx
│       │       ├── checkbox-group.tsx
│       │       ├── checkbox-invalid.tsx
│       │       ├── checkbox-rtl.tsx
│       │       ├── checkbox-table.tsx
│       │       ├── collapsible-basic.tsx
│       │       ├── collapsible-demo.tsx
│       │       ├── collapsible-file-tree.tsx
│       │       ├── collapsible-rtl.tsx
│       │       ├── collapsible-settings.tsx
│       │       ├── combobox-auto-highlight.tsx
│       │       ├── combobox-basic.tsx
│       │       ├── combobox-clear.tsx
│       │       ├── combobox-custom.tsx
│       │       ├── combobox-demo.tsx
│       │       ├── combobox-disabled.tsx
│       │       ├── combobox-groups.tsx
│       │       ├── combobox-input-group.tsx
│       │       ├── combobox-invalid.tsx
│       │       ├── combobox-multiple.tsx
│       │       ├── combobox-popup.tsx
│       │       ├── combobox-rtl.tsx
│       │       ├── command-basic.tsx
│       │       ├── command-demo.tsx
│       │       ├── command-dialog.tsx
│       │       ├── command-groups.tsx
│       │       ├── command-rtl.tsx
│       │       ├── command-scrollable.tsx
│       │       ├── command-shortcuts.tsx
│       │       ├── context-menu-basic.tsx
│       │       ├── context-menu-checkboxes.tsx
│       │       ├── context-menu-demo.tsx
│       │       ├── context-menu-destructive.tsx
│       │       ├── context-menu-groups.tsx
│       │       ├── context-menu-icons.tsx
│       │       ├── context-menu-radio.tsx
│       │       ├── context-menu-rtl.tsx
│       │       ├── context-menu-shortcuts.tsx
│       │       ├── context-menu-sides.tsx
│       │       ├── context-menu-submenu.tsx
│       │       ├── data-picker-with-dropdowns.tsx
│       │       ├── data-table-demo.tsx
│       │       ├── data-table-rtl.tsx
│       │       ├── date-picker-basic.tsx
│       │       ├── date-picker-demo.tsx
│       │       ├── date-picker-dob.tsx
│       │       ├── date-picker-input.tsx
│       │       ├── date-picker-natural-language.tsx
│       │       ├── date-picker-range.tsx
│       │       ├── date-picker-rtl.tsx
│       │       ├── date-picker-time.tsx
│       │       ├── dialog-close-button.tsx
│       │       ├── dialog-demo.tsx
│       │       ├── dialog-no-close-button.tsx
│       │       ├── dialog-rtl.tsx
│       │       ├── dialog-scrollable-content.tsx
│       │       ├── dialog-sticky-footer.tsx
│       │       ├── drawer-demo.tsx
│       │       ├── drawer-dialog.tsx
│       │       ├── drawer-rtl.tsx
│       │       ├── drawer-scrollable-content.tsx
│       │       ├── drawer-sides.tsx
│       │       ├── dropdown-menu-avatar.tsx
│       │       ├── dropdown-menu-basic.tsx
│       │       ├── dropdown-menu-checkboxes-icons.tsx
│       │       ├── dropdown-menu-checkboxes.tsx
│       │       ├── dropdown-menu-complex.tsx
│       │       ├── dropdown-menu-demo.tsx
│       │       ├── dropdown-menu-destructive.tsx
│       │       ├── dropdown-menu-icons.tsx
│       │       ├── dropdown-menu-radio-group.tsx
│       │       ├── dropdown-menu-radio-icons.tsx
│       │       ├── dropdown-menu-rtl.tsx
│       │       ├── dropdown-menu-shortcuts.tsx
│       │       ├── dropdown-menu-submenu.tsx
│       │       ├── empty-avatar-group.tsx
│       │       ├── empty-avatar.tsx
│       │       ├── empty-background.tsx
│       │       ├── empty-card.tsx
│       │       ├── empty-demo.tsx
│       │       ├── empty-input-group.tsx
│       │       ├── empty-outline.tsx
│       │       ├── empty-rtl.tsx
│       │       ├── field-checkbox.tsx
│       │       ├── field-choice-card.tsx
│       │       ├── field-demo.tsx
│       │       ├── field-fieldset.tsx
│       │       ├── field-group.tsx
│       │       ├── field-input.tsx
│       │       ├── field-radio.tsx
│       │       ├── field-responsive.tsx
│       │       ├── field-rtl.tsx
│       │       ├── field-select.tsx
│       │       ├── field-slider.tsx
│       │       ├── field-switch.tsx
│       │       ├── field-textarea.tsx
│       │       ├── file-upload-list.tsx
│       │       ├── hooks/
│       │       │   └── use-mobile.ts
│       │       ├── hover-card-demo.tsx
│       │       ├── hover-card-rtl.tsx
│       │       ├── hover-card-sides.tsx
│       │       ├── input-badge.tsx
│       │       ├── input-basic.tsx
│       │       ├── input-button-group.tsx
│       │       ├── input-demo.tsx
│       │       ├── input-disabled.tsx
│       │       ├── input-field.tsx
│       │       ├── input-fieldgroup.tsx
│       │       ├── input-file.tsx
│       │       ├── input-form.tsx
│       │       ├── input-grid.tsx
│       │       ├── input-group-basic.tsx
│       │       ├── input-group-block-end.tsx
│       │       ├── input-group-block-start.tsx
│       │       ├── input-group-button-group.tsx
│       │       ├── input-group-button.tsx
│       │       ├── input-group-custom.tsx
│       │       ├── input-group-demo.tsx
│       │       ├── input-group-dropdown.tsx
│       │       ├── input-group-icon.tsx
│       │       ├── input-group-in-card.tsx
│       │       ├── input-group-inline-end.tsx
│       │       ├── input-group-inline-start.tsx
│       │       ├── input-group-kbd.tsx
│       │       ├── input-group-label.tsx
│       │       ├── input-group-rtl.tsx
│       │       ├── input-group-spinner.tsx
│       │       ├── input-group-text.tsx
│       │       ├── input-group-textarea-examples.tsx
│       │       ├── input-group-textarea.tsx
│       │       ├── input-group-tooltip.tsx
│       │       ├── input-group-with-addons.tsx
│       │       ├── input-group-with-buttons.tsx
│       │       ├── input-group-with-kbd.tsx
│       │       ├── input-group-with-tooltip.tsx
│       │       ├── input-inline.tsx
│       │       ├── input-input-group.tsx
│       │       ├── input-invalid.tsx
│       │       ├── input-otp-alphanumeric.tsx
│       │       ├── input-otp-controlled.tsx
│       │       ├── input-otp-demo.tsx
│       │       ├── input-otp-disabled.tsx
│       │       ├── input-otp-form.tsx
│       │       ├── input-otp-four-digits.tsx
│       │       ├── input-otp-invalid.tsx
│       │       ├── input-otp-pattern.tsx
│       │       ├── input-otp-rtl.tsx
│       │       ├── input-otp-separator.tsx
│       │       ├── input-required.tsx
│       │       ├── input-rtl.tsx
│       │       ├── item-avatar.tsx
│       │       ├── item-demo.tsx
│       │       ├── item-dropdown.tsx
│       │       ├── item-group.tsx
│       │       ├── item-header.tsx
│       │       ├── item-icon.tsx
│       │       ├── item-image.tsx
│       │       ├── item-link.tsx
│       │       ├── item-rtl.tsx
│       │       ├── item-size.tsx
│       │       ├── item-variant.tsx
│       │       ├── kbd-button.tsx
│       │       ├── kbd-demo.tsx
│       │       ├── kbd-group.tsx
│       │       ├── kbd-input-group.tsx
│       │       ├── kbd-rtl.tsx
│       │       ├── kbd-tooltip.tsx
│       │       ├── label-demo.tsx
│       │       ├── label-rtl.tsx
│       │       ├── lib/
│       │       │   └── utils.ts
│       │       ├── menubar-checkbox.tsx
│       │       ├── menubar-demo.tsx
│       │       ├── menubar-icons.tsx
│       │       ├── menubar-radio.tsx
│       │       ├── menubar-rtl.tsx
│       │       ├── menubar-submenu.tsx
│       │       ├── muted-item-group.tsx
│       │       ├── native-select-demo.tsx
│       │       ├── native-select-disabled.tsx
│       │       ├── native-select-groups.tsx
│       │       ├── native-select-invalid.tsx
│       │       ├── native-select-rtl.tsx
│       │       ├── navigation-menu-demo.tsx
│       │       ├── navigation-menu-rtl.tsx
│       │       ├── outline-item-group.tsx
│       │       ├── pagination-demo.tsx
│       │       ├── pagination-icons-only.tsx
│       │       ├── pagination-rtl.tsx
│       │       ├── pagination-simple.tsx
│       │       ├── popover-alignments.tsx
│       │       ├── popover-basic.tsx
│       │       ├── popover-demo.tsx
│       │       ├── popover-form.tsx
│       │       ├── popover-rtl.tsx
│       │       ├── progress-controlled.tsx
│       │       ├── progress-demo.tsx
│       │       ├── progress-label.tsx
│       │       ├── progress-rtl.tsx
│       │       ├── radio-fields.tsx
│       │       ├── radio-group-choice-card.tsx
│       │       ├── radio-group-demo.tsx
│       │       ├── radio-group-description.tsx
│       │       ├── radio-group-disabled.tsx
│       │       ├── radio-group-fieldset.tsx
│       │       ├── radio-group-invalid.tsx
│       │       ├── radio-group-rtl.tsx
│       │       ├── resizable-demo.tsx
│       │       ├── resizable-handle.tsx
│       │       ├── resizable-rtl.tsx
│       │       ├── resizable-vertical.tsx
│       │       ├── scroll-area-demo.tsx
│       │       ├── scroll-area-horizontal-demo.tsx
│       │       ├── scroll-area-rtl.tsx
│       │       ├── select-align-item.tsx
│       │       ├── select-demo.tsx
│       │       ├── select-disabled.tsx
│       │       ├── select-groups.tsx
│       │       ├── select-invalid.tsx
│       │       ├── select-rtl.tsx
│       │       ├── select-scrollable.tsx
│       │       ├── separator-demo.tsx
│       │       ├── separator-list.tsx
│       │       ├── separator-menu.tsx
│       │       ├── separator-rtl.tsx
│       │       ├── separator-vertical.tsx
│       │       ├── sheet-demo.tsx
│       │       ├── sheet-no-close-button.tsx
│       │       ├── sheet-rtl.tsx
│       │       ├── sheet-side.tsx
│       │       ├── sidebar-controlled.tsx
│       │       ├── sidebar-demo.tsx
│       │       ├── sidebar-footer.tsx
│       │       ├── sidebar-group-action.tsx
│       │       ├── sidebar-group-collapsible.tsx
│       │       ├── sidebar-group.tsx
│       │       ├── sidebar-header.tsx
│       │       ├── sidebar-menu-action.tsx
│       │       ├── sidebar-menu-badge.tsx
│       │       ├── sidebar-menu-collapsible.tsx
│       │       ├── sidebar-menu-sub.tsx
│       │       ├── sidebar-menu.tsx
│       │       ├── sidebar-rsc.tsx
│       │       ├── sidebar-rtl.tsx
│       │       ├── skeleton-avatar.tsx
│       │       ├── skeleton-card.tsx
│       │       ├── skeleton-demo.tsx
│       │       ├── skeleton-form.tsx
│       │       ├── skeleton-rtl.tsx
│       │       ├── skeleton-table.tsx
│       │       ├── skeleton-text.tsx
│       │       ├── slider-controlled.tsx
│       │       ├── slider-demo.tsx
│       │       ├── slider-disabled.tsx
│       │       ├── slider-multiple.tsx
│       │       ├── slider-range.tsx
│       │       ├── slider-rtl.tsx
│       │       ├── slider-vertical.tsx
│       │       ├── sonner-demo.tsx
│       │       ├── sonner-description.tsx
│       │       ├── sonner-position.tsx
│       │       ├── sonner-types.tsx
│       │       ├── spinner-badge.tsx
│       │       ├── spinner-button.tsx
│       │       ├── spinner-custom.tsx
│       │       ├── spinner-demo.tsx
│       │       ├── spinner-empty.tsx
│       │       ├── spinner-input-group.tsx
│       │       ├── spinner-rtl.tsx
│       │       ├── spinner-size.tsx
│       │       ├── switch-choice-card.tsx
│       │       ├── switch-demo.tsx
│       │       ├── switch-description.tsx
│       │       ├── switch-disabled.tsx
│       │       ├── switch-invalid.tsx
│       │       ├── switch-rtl.tsx
│       │       ├── switch-sizes.tsx
│       │       ├── table-actions.tsx
│       │       ├── table-demo.tsx
│       │       ├── table-footer.tsx
│       │       ├── table-rtl.tsx
│       │       ├── tabs-demo.tsx
│       │       ├── tabs-disabled.tsx
│       │       ├── tabs-icons.tsx
│       │       ├── tabs-line.tsx
│       │       ├── tabs-rtl.tsx
│       │       ├── tabs-vertical.tsx
│       │       ├── textarea-button.tsx
│       │       ├── textarea-demo.tsx
│       │       ├── textarea-disabled.tsx
│       │       ├── textarea-field.tsx
│       │       ├── textarea-invalid.tsx
│       │       ├── textarea-rtl.tsx
│       │       ├── toggle-demo.tsx
│       │       ├── toggle-disabled.tsx
│       │       ├── toggle-group-demo.tsx
│       │       ├── toggle-group-disabled.tsx
│       │       ├── toggle-group-font-weight-selector.tsx
│       │       ├── toggle-group-outline.tsx
│       │       ├── toggle-group-rtl.tsx
│       │       ├── toggle-group-sizes.tsx
│       │       ├── toggle-group-spacing.tsx
│       │       ├── toggle-group-vertical.tsx
│       │       ├── toggle-outline.tsx
│       │       ├── toggle-rtl.tsx
│       │       ├── toggle-sizes.tsx
│       │       ├── toggle-text.tsx
│       │       ├── tooltip-demo.tsx
│       │       ├── tooltip-disabled.tsx
│       │       ├── tooltip-keyboard.tsx
│       │       ├── tooltip-rtl.tsx
│       │       ├── tooltip-sides.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-rtl.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-group.tsx
│       │       │   ├── button.tsx
│       │       │   ├── calendar.tsx
│       │       │   ├── card.tsx
│       │       │   ├── carousel.tsx
│       │       │   ├── chart.tsx
│       │       │   ├── checkbox.tsx
│       │       │   ├── collapsible.tsx
│       │       │   ├── combobox.tsx
│       │       │   ├── command.tsx
│       │       │   ├── context-menu.tsx
│       │       │   ├── dialog.tsx
│       │       │   ├── direction.tsx
│       │       │   ├── drawer.tsx
│       │       │   ├── dropdown-menu.tsx
│       │       │   ├── empty.tsx
│       │       │   ├── field.tsx
│       │       │   ├── hover-card.tsx
│       │       │   ├── input-group.tsx
│       │       │   ├── input-otp.tsx
│       │       │   ├── input.tsx
│       │       │   ├── item.tsx
│       │       │   ├── kbd.tsx
│       │       │   ├── label.tsx
│       │       │   ├── menubar.tsx
│       │       │   ├── native-select.tsx
│       │       │   ├── navigation-menu.tsx
│       │       │   ├── pagination.tsx
│       │       │   ├── popover.tsx
│       │       │   ├── progress.tsx
│       │       │   ├── radio-group.tsx
│       │       │   ├── resizable.tsx
│       │       │   ├── scroll-area.tsx
│       │       │   ├── select.tsx
│       │       │   ├── separator.tsx
│       │       │   ├── sheet.tsx
│       │       │   ├── sidebar.tsx
│       │       │   ├── skeleton.tsx
│       │       │   ├── slider.tsx
│       │       │   ├── sonner.tsx
│       │       │   ├── spinner.tsx
│       │       │   ├── switch.tsx
│       │       │   ├── table.tsx
│       │       │   ├── tabs.tsx
│       │       │   ├── textarea.tsx
│       │       │   ├── toggle-group.tsx
│       │       │   ├── toggle.tsx
│       │       │   └── tooltip.tsx
│       │       └── ui-rtl/
│       │           ├── accordion.tsx
│       │           ├── alert-dialog.tsx
│       │           ├── alert.tsx
│       │           ├── aspect-ratio.tsx
│       │           ├── avatar.tsx
│       │           ├── badge.tsx
│       │           ├── breadcrumb.tsx
│       │           ├── button-group.tsx
│       │           ├── button.tsx
│       │           ├── calendar.tsx
│       │           ├── card.tsx
│       │           ├── carousel.tsx
│       │           ├── chart.tsx
│       │           ├── checkbox.tsx
│       │           ├── collapsible.tsx
│       │           ├── combobox.tsx
│       │           ├── command.tsx
│       │           ├── context-menu.tsx
│       │           ├── dialog.tsx
│       │           ├── direction.tsx
│       │           ├── drawer.tsx
│       │           ├── dropdown-menu.tsx
│       │           ├── empty.tsx
│       │           ├── field.tsx
│       │           ├── hover-card.tsx
│       │           ├── input-group.tsx
│       │           ├── input-otp.tsx
│       │           ├── input.tsx
│       │           ├── item.tsx
│       │           ├── kbd.tsx
│       │           ├── label.tsx
│       │           ├── menubar.tsx
│       │           ├── native-select.tsx
│       │           ├── navigation-menu.tsx
│       │           ├── pagination.tsx
│       │           ├── popover.tsx
│       │           ├── progress.tsx
│       │           ├── radio-group.tsx
│       │           ├── resizable.tsx
│       │           ├── scroll-area.tsx
│       │           ├── select.tsx
│       │           ├── separator.tsx
│       │           ├── sheet.tsx
│       │           ├── sidebar.tsx
│       │           ├── skeleton.tsx
│       │           ├── slider.tsx
│       │           ├── sonner.tsx
│       │           ├── spinner.tsx
│       │           ├── switch.tsx
│       │           ├── table.tsx
│       │           ├── tabs.tsx
│       │           ├── textarea.tsx
│       │           ├── toggle-group.tsx
│       │           ├── toggle.tsx
│       │           └── tooltip.tsx
│       ├── hooks/
│       │   ├── use-colors.ts
│       │   ├── use-config.ts
│       │   ├── use-copy-to-clipboard.ts
│       │   ├── use-layout.tsx
│       │   ├── use-media-query.tsx
│       │   ├── use-meta-color.ts
│       │   ├── use-mobile.ts
│       │   ├── use-mounted.ts
│       │   ├── use-mutation-observer.ts
│       │   └── use-search-registry.ts
│       ├── lib/
│       │   ├── blocks.ts
│       │   ├── categories.ts
│       │   ├── changelog.ts
│       │   ├── colors.ts
│       │   ├── components.ts
│       │   ├── config.ts
│       │   ├── docs.ts
│       │   ├── events.ts
│       │   ├── explore.ts
│       │   ├── flags.ts
│       │   ├── font-definitions.ts
│       │   ├── fonts.ts
│       │   ├── format-code.ts
│       │   ├── highlight-code.ts
│       │   ├── llm.ts
│       │   ├── page-tree.ts
│       │   ├── read-file.ts
│       │   ├── registry.ts
│       │   ├── rehype.ts
│       │   ├── source.ts
│       │   ├── themes.ts
│       │   └── utils.ts
│       ├── mdx-components.tsx
│       ├── next.config.mjs
│       ├── package.json
│       ├── postcss.config.mjs
│       ├── public/
│       │   ├── llms.txt
│       │   ├── r/
│       │   │   ├── colors/
│       │   │   │   ├── gray.json
│       │   │   │   ├── index.json
│       │   │   │   ├── mauve.json
│       │   │   │   ├── mist.json
│       │   │   │   ├── neutral.json
│       │   │   │   ├── olive.json
│       │   │   │   ├── slate.json
│       │   │   │   ├── stone.json
│       │   │   │   ├── taupe.json
│       │   │   │   └── zinc.json
│       │   │   ├── config.json
│       │   │   ├── icons/
│       │   │   │   └── index.json
│       │   │   ├── index.json
│       │   │   ├── registries-legacy.json
│       │   │   ├── registries.json
│       │   │   ├── styles/
│       │   │   │   ├── base-lyra/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── base-maia/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── base-mira/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── base-nova/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── base-vega/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── default/
│       │   │   │   │   ├── accordion-demo.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-demo.json
│       │   │   │   │   ├── alert-destructive.json
│       │   │   │   │   ├── alert-dialog-demo.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-demo.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-demo.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-demo.json
│       │   │   │   │   ├── badge-destructive.json
│       │   │   │   │   ├── badge-outline.json
│       │   │   │   │   ├── badge-secondary.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-demo.json
│       │   │   │   │   ├── breadcrumb-dropdown.json
│       │   │   │   │   ├── breadcrumb-ellipsis.json
│       │   │   │   │   ├── breadcrumb-link.json
│       │   │   │   │   ├── breadcrumb-responsive.json
│       │   │   │   │   ├── breadcrumb-separator.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-as-child.json
│       │   │   │   │   ├── button-demo.json
│       │   │   │   │   ├── button-destructive.json
│       │   │   │   │   ├── button-ghost.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button-icon.json
│       │   │   │   │   ├── button-link.json
│       │   │   │   │   ├── button-loading.json
│       │   │   │   │   ├── button-outline.json
│       │   │   │   │   ├── button-secondary.json
│       │   │   │   │   ├── button-with-icon.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-01.json
│       │   │   │   │   ├── calendar-02.json
│       │   │   │   │   ├── calendar-03.json
│       │   │   │   │   ├── calendar-04.json
│       │   │   │   │   ├── calendar-05.json
│       │   │   │   │   ├── calendar-06.json
│       │   │   │   │   ├── calendar-07.json
│       │   │   │   │   ├── calendar-08.json
│       │   │   │   │   ├── calendar-09.json
│       │   │   │   │   ├── calendar-10.json
│       │   │   │   │   ├── calendar-11.json
│       │   │   │   │   ├── calendar-12.json
│       │   │   │   │   ├── calendar-13.json
│       │   │   │   │   ├── calendar-14.json
│       │   │   │   │   ├── calendar-15.json
│       │   │   │   │   ├── calendar-16.json
│       │   │   │   │   ├── calendar-17.json
│       │   │   │   │   ├── calendar-18.json
│       │   │   │   │   ├── calendar-19.json
│       │   │   │   │   ├── calendar-20.json
│       │   │   │   │   ├── calendar-21.json
│       │   │   │   │   ├── calendar-22.json
│       │   │   │   │   ├── calendar-23.json
│       │   │   │   │   ├── calendar-24.json
│       │   │   │   │   ├── calendar-25.json
│       │   │   │   │   ├── calendar-26.json
│       │   │   │   │   ├── calendar-27.json
│       │   │   │   │   ├── calendar-28.json
│       │   │   │   │   ├── calendar-29.json
│       │   │   │   │   ├── calendar-30.json
│       │   │   │   │   ├── calendar-31.json
│       │   │   │   │   ├── calendar-32.json
│       │   │   │   │   ├── calendar-demo.json
│       │   │   │   │   ├── calendar-form.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-demo.json
│       │   │   │   │   ├── card-with-form.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-api.json
│       │   │   │   │   ├── carousel-demo.json
│       │   │   │   │   ├── carousel-orientation.json
│       │   │   │   │   ├── carousel-plugin.json
│       │   │   │   │   ├── carousel-size.json
│       │   │   │   │   ├── carousel-spacing.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-area-axes.json
│       │   │   │   │   ├── chart-area-default.json
│       │   │   │   │   ├── chart-area-gradient.json
│       │   │   │   │   ├── chart-area-icons.json
│       │   │   │   │   ├── chart-area-interactive.json
│       │   │   │   │   ├── chart-area-legend.json
│       │   │   │   │   ├── chart-area-linear.json
│       │   │   │   │   ├── chart-area-stacked-expand.json
│       │   │   │   │   ├── chart-area-stacked.json
│       │   │   │   │   ├── chart-area-step.json
│       │   │   │   │   ├── chart-bar-active.json
│       │   │   │   │   ├── chart-bar-default.json
│       │   │   │   │   ├── chart-bar-demo-axis.json
│       │   │   │   │   ├── chart-bar-demo-grid.json
│       │   │   │   │   ├── chart-bar-demo-legend.json
│       │   │   │   │   ├── chart-bar-demo-tooltip.json
│       │   │   │   │   ├── chart-bar-demo.json
│       │   │   │   │   ├── chart-bar-horizontal.json
│       │   │   │   │   ├── chart-bar-interactive.json
│       │   │   │   │   ├── chart-bar-label-custom.json
│       │   │   │   │   ├── chart-bar-label.json
│       │   │   │   │   ├── chart-bar-mixed.json
│       │   │   │   │   ├── chart-bar-multiple.json
│       │   │   │   │   ├── chart-bar-negative.json
│       │   │   │   │   ├── chart-bar-stacked.json
│       │   │   │   │   ├── chart-line-default.json
│       │   │   │   │   ├── chart-line-dots-colors.json
│       │   │   │   │   ├── chart-line-dots-custom.json
│       │   │   │   │   ├── chart-line-dots.json
│       │   │   │   │   ├── chart-line-interactive.json
│       │   │   │   │   ├── chart-line-label-custom.json
│       │   │   │   │   ├── chart-line-label.json
│       │   │   │   │   ├── chart-line-linear.json
│       │   │   │   │   ├── chart-line-multiple.json
│       │   │   │   │   ├── chart-line-step.json
│       │   │   │   │   ├── chart-pie-donut-active.json
│       │   │   │   │   ├── chart-pie-donut-text.json
│       │   │   │   │   ├── chart-pie-donut.json
│       │   │   │   │   ├── chart-pie-interactive.json
│       │   │   │   │   ├── chart-pie-label-custom.json
│       │   │   │   │   ├── chart-pie-label-list.json
│       │   │   │   │   ├── chart-pie-label.json
│       │   │   │   │   ├── chart-pie-legend.json
│       │   │   │   │   ├── chart-pie-separator-none.json
│       │   │   │   │   ├── chart-pie-simple.json
│       │   │   │   │   ├── chart-pie-stacked.json
│       │   │   │   │   ├── chart-radar-default.json
│       │   │   │   │   ├── chart-radar-dots.json
│       │   │   │   │   ├── chart-radar-grid-circle-fill.json
│       │   │   │   │   ├── chart-radar-grid-circle-no-lines.json
│       │   │   │   │   ├── chart-radar-grid-circle.json
│       │   │   │   │   ├── chart-radar-grid-custom.json
│       │   │   │   │   ├── chart-radar-grid-fill.json
│       │   │   │   │   ├── chart-radar-grid-none.json
│       │   │   │   │   ├── chart-radar-icons.json
│       │   │   │   │   ├── chart-radar-label-custom.json
│       │   │   │   │   ├── chart-radar-legend.json
│       │   │   │   │   ├── chart-radar-lines-only.json
│       │   │   │   │   ├── chart-radar-multiple.json
│       │   │   │   │   ├── chart-radar-radius.json
│       │   │   │   │   ├── chart-radial-grid.json
│       │   │   │   │   ├── chart-radial-label.json
│       │   │   │   │   ├── chart-radial-shape.json
│       │   │   │   │   ├── chart-radial-simple.json
│       │   │   │   │   ├── chart-radial-stacked.json
│       │   │   │   │   ├── chart-radial-text.json
│       │   │   │   │   ├── chart-tooltip-advanced.json
│       │   │   │   │   ├── chart-tooltip-default.json
│       │   │   │   │   ├── chart-tooltip-demo.json
│       │   │   │   │   ├── chart-tooltip-formatter.json
│       │   │   │   │   ├── chart-tooltip-icons.json
│       │   │   │   │   ├── chart-tooltip-indicator-line.json
│       │   │   │   │   ├── chart-tooltip-indicator-none.json
│       │   │   │   │   ├── chart-tooltip-label-custom.json
│       │   │   │   │   ├── chart-tooltip-label-formatter.json
│       │   │   │   │   ├── chart-tooltip-label-none.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-demo.json
│       │   │   │   │   ├── checkbox-disabled.json
│       │   │   │   │   ├── checkbox-form-multiple.json
│       │   │   │   │   ├── checkbox-form-single.json
│       │   │   │   │   ├── checkbox-with-text.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-demo.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-demo.json
│       │   │   │   │   ├── combobox-dropdown-menu.json
│       │   │   │   │   ├── combobox-form.json
│       │   │   │   │   ├── combobox-popover.json
│       │   │   │   │   ├── combobox-responsive.json
│       │   │   │   │   ├── command-demo.json
│       │   │   │   │   ├── command-dialog.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── context-menu-demo.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── data-table-demo.json
│       │   │   │   │   ├── date-picker-demo.json
│       │   │   │   │   ├── date-picker-form.json
│       │   │   │   │   ├── date-picker-with-presets.json
│       │   │   │   │   ├── date-picker-with-range.json
│       │   │   │   │   ├── dialog-close-button.json
│       │   │   │   │   ├── dialog-demo.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── drawer-demo.json
│       │   │   │   │   ├── drawer-dialog.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-checkboxes.json
│       │   │   │   │   ├── dropdown-menu-demo.json
│       │   │   │   │   ├── dropdown-menu-radio-group.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-demo.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-demo.json
│       │   │   │   │   ├── input-disabled.json
│       │   │   │   │   ├── input-file.json
│       │   │   │   │   ├── input-form.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-controlled.json
│       │   │   │   │   ├── input-otp-demo.json
│       │   │   │   │   ├── input-otp-form.json
│       │   │   │   │   ├── input-otp-pattern.json
│       │   │   │   │   ├── input-otp-separator.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input-with-button.json
│       │   │   │   │   ├── input-with-label.json
│       │   │   │   │   ├── input-with-text.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-demo.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-demo.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── mode-toggle.json
│       │   │   │   │   ├── navigation-menu-demo.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-demo.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-demo.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── progress-demo.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-demo.json
│       │   │   │   │   ├── radio-group-form.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-demo-with-handle.json
│       │   │   │   │   ├── resizable-demo.json
│       │   │   │   │   ├── resizable-handle.json
│       │   │   │   │   ├── resizable-vertical.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-demo.json
│       │   │   │   │   ├── scroll-area-horizontal-demo.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-demo.json
│       │   │   │   │   ├── select-form.json
│       │   │   │   │   ├── select-scrollable.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-demo.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-demo.json
│       │   │   │   │   ├── sheet-side.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-controlled.json
│       │   │   │   │   ├── sidebar-demo.json
│       │   │   │   │   ├── sidebar-footer.json
│       │   │   │   │   ├── sidebar-group-action.json
│       │   │   │   │   ├── sidebar-group-collapsible.json
│       │   │   │   │   ├── sidebar-group.json
│       │   │   │   │   ├── sidebar-header.json
│       │   │   │   │   ├── sidebar-menu-action.json
│       │   │   │   │   ├── sidebar-menu-badge.json
│       │   │   │   │   ├── sidebar-menu-collapsible.json
│       │   │   │   │   ├── sidebar-menu-sub.json
│       │   │   │   │   ├── sidebar-menu.json
│       │   │   │   │   ├── sidebar-rsc.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── sink.json
│       │   │   │   │   ├── skeleton-card.json
│       │   │   │   │   ├── skeleton-demo.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-demo.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-demo.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-demo.json
│       │   │   │   │   ├── switch-form.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-demo.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-demo.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-demo.json
│       │   │   │   │   ├── textarea-disabled.json
│       │   │   │   │   ├── textarea-form.json
│       │   │   │   │   ├── textarea-with-button.json
│       │   │   │   │   ├── textarea-with-label.json
│       │   │   │   │   ├── textarea-with-text.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── theme-daylight.json
│       │   │   │   │   ├── theme-emerald.json
│       │   │   │   │   ├── theme-midnight.json
│       │   │   │   │   ├── toast-demo.json
│       │   │   │   │   ├── toast-destructive.json
│       │   │   │   │   ├── toast-simple.json
│       │   │   │   │   ├── toast-with-action.json
│       │   │   │   │   ├── toast-with-title.json
│       │   │   │   │   ├── toast.json
│       │   │   │   │   ├── toggle-demo.json
│       │   │   │   │   ├── toggle-disabled.json
│       │   │   │   │   ├── toggle-group-demo.json
│       │   │   │   │   ├── toggle-group-disabled.json
│       │   │   │   │   ├── toggle-group-lg.json
│       │   │   │   │   ├── toggle-group-outline.json
│       │   │   │   │   ├── toggle-group-single.json
│       │   │   │   │   ├── toggle-group-sm.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle-lg.json
│       │   │   │   │   ├── toggle-outline.json
│       │   │   │   │   ├── toggle-sm.json
│       │   │   │   │   ├── toggle-with-text.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-demo.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── typography-blockquote.json
│       │   │   │   │   ├── typography-demo.json
│       │   │   │   │   ├── typography-h1.json
│       │   │   │   │   ├── typography-h2.json
│       │   │   │   │   ├── typography-h3.json
│       │   │   │   │   ├── typography-h4.json
│       │   │   │   │   ├── typography-inline-code.json
│       │   │   │   │   ├── typography-large.json
│       │   │   │   │   ├── typography-lead.json
│       │   │   │   │   ├── typography-list.json
│       │   │   │   │   ├── typography-muted.json
│       │   │   │   │   ├── typography-p.json
│       │   │   │   │   ├── typography-small.json
│       │   │   │   │   ├── typography-table.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   ├── use-toast.json
│       │   │   │   │   ├── utils.json
│       │   │   │   │   ├── v0-login-01.json
│       │   │   │   │   ├── v0-sidebar-01.json
│       │   │   │   │   ├── v0-sidebar-02.json
│       │   │   │   │   ├── v0-sidebar-03.json
│       │   │   │   │   ├── v0-sidebar-04.json
│       │   │   │   │   ├── v0-sidebar-05.json
│       │   │   │   │   ├── v0-sidebar-06.json
│       │   │   │   │   ├── v0-sidebar-07.json
│       │   │   │   │   ├── v0-sidebar-08.json
│       │   │   │   │   ├── v0-sidebar-09.json
│       │   │   │   │   ├── v0-sidebar-10.json
│       │   │   │   │   ├── v0-sidebar-11.json
│       │   │   │   │   ├── v0-sidebar-12.json
│       │   │   │   │   ├── v0-sidebar-13.json
│       │   │   │   │   ├── v0-sidebar-14.json
│       │   │   │   │   ├── v0-sidebar-15.json
│       │   │   │   │   └── v0-sidebar-16.json
│       │   │   │   ├── index.json
│       │   │   │   ├── new-york/
│       │   │   │   │   ├── accordion-demo.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-demo.json
│       │   │   │   │   ├── alert-destructive.json
│       │   │   │   │   ├── alert-dialog-demo.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── app-01.json
│       │   │   │   │   ├── aspect-ratio-demo.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-demo.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-demo.json
│       │   │   │   │   ├── badge-destructive.json
│       │   │   │   │   ├── badge-outline.json
│       │   │   │   │   ├── badge-secondary.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-demo.json
│       │   │   │   │   ├── breadcrumb-dropdown.json
│       │   │   │   │   ├── breadcrumb-ellipsis.json
│       │   │   │   │   ├── breadcrumb-link.json
│       │   │   │   │   ├── breadcrumb-responsive.json
│       │   │   │   │   ├── breadcrumb-separator.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-01.json
│       │   │   │   │   ├── button-as-child.json
│       │   │   │   │   ├── button-demo.json
│       │   │   │   │   ├── button-destructive.json
│       │   │   │   │   ├── button-ghost.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button-icon.json
│       │   │   │   │   ├── button-link.json
│       │   │   │   │   ├── button-loading.json
│       │   │   │   │   ├── button-outline.json
│       │   │   │   │   ├── button-secondary.json
│       │   │   │   │   ├── button-with-icon.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-01.json
│       │   │   │   │   ├── calendar-02.json
│       │   │   │   │   ├── calendar-03.json
│       │   │   │   │   ├── calendar-04.json
│       │   │   │   │   ├── calendar-05.json
│       │   │   │   │   ├── calendar-06.json
│       │   │   │   │   ├── calendar-07.json
│       │   │   │   │   ├── calendar-08.json
│       │   │   │   │   ├── calendar-09.json
│       │   │   │   │   ├── calendar-10.json
│       │   │   │   │   ├── calendar-11.json
│       │   │   │   │   ├── calendar-12.json
│       │   │   │   │   ├── calendar-13.json
│       │   │   │   │   ├── calendar-14.json
│       │   │   │   │   ├── calendar-15.json
│       │   │   │   │   ├── calendar-16.json
│       │   │   │   │   ├── calendar-17.json
│       │   │   │   │   ├── calendar-18.json
│       │   │   │   │   ├── calendar-19.json
│       │   │   │   │   ├── calendar-20.json
│       │   │   │   │   ├── calendar-21.json
│       │   │   │   │   ├── calendar-22.json
│       │   │   │   │   ├── calendar-23.json
│       │   │   │   │   ├── calendar-24.json
│       │   │   │   │   ├── calendar-25.json
│       │   │   │   │   ├── calendar-26.json
│       │   │   │   │   ├── calendar-27.json
│       │   │   │   │   ├── calendar-28.json
│       │   │   │   │   ├── calendar-29.json
│       │   │   │   │   ├── calendar-30.json
│       │   │   │   │   ├── calendar-31.json
│       │   │   │   │   ├── calendar-32.json
│       │   │   │   │   ├── calendar-demo.json
│       │   │   │   │   ├── calendar-form.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-demo.json
│       │   │   │   │   ├── card-with-form.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-api.json
│       │   │   │   │   ├── carousel-demo.json
│       │   │   │   │   ├── carousel-orientation.json
│       │   │   │   │   ├── carousel-plugin.json
│       │   │   │   │   ├── carousel-size.json
│       │   │   │   │   ├── carousel-spacing.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-area-axes.json
│       │   │   │   │   ├── chart-area-default.json
│       │   │   │   │   ├── chart-area-gradient.json
│       │   │   │   │   ├── chart-area-icons.json
│       │   │   │   │   ├── chart-area-interactive.json
│       │   │   │   │   ├── chart-area-legend.json
│       │   │   │   │   ├── chart-area-linear.json
│       │   │   │   │   ├── chart-area-stacked-expand.json
│       │   │   │   │   ├── chart-area-stacked.json
│       │   │   │   │   ├── chart-area-step.json
│       │   │   │   │   ├── chart-bar-active.json
│       │   │   │   │   ├── chart-bar-default.json
│       │   │   │   │   ├── chart-bar-demo-axis.json
│       │   │   │   │   ├── chart-bar-demo-grid.json
│       │   │   │   │   ├── chart-bar-demo-legend.json
│       │   │   │   │   ├── chart-bar-demo-tooltip.json
│       │   │   │   │   ├── chart-bar-demo.json
│       │   │   │   │   ├── chart-bar-horizontal.json
│       │   │   │   │   ├── chart-bar-interactive.json
│       │   │   │   │   ├── chart-bar-label-custom.json
│       │   │   │   │   ├── chart-bar-label.json
│       │   │   │   │   ├── chart-bar-mixed.json
│       │   │   │   │   ├── chart-bar-multiple.json
│       │   │   │   │   ├── chart-bar-negative.json
│       │   │   │   │   ├── chart-bar-stacked.json
│       │   │   │   │   ├── chart-line-default.json
│       │   │   │   │   ├── chart-line-dots-colors.json
│       │   │   │   │   ├── chart-line-dots-custom.json
│       │   │   │   │   ├── chart-line-dots.json
│       │   │   │   │   ├── chart-line-interactive.json
│       │   │   │   │   ├── chart-line-label-custom.json
│       │   │   │   │   ├── chart-line-label.json
│       │   │   │   │   ├── chart-line-linear.json
│       │   │   │   │   ├── chart-line-multiple.json
│       │   │   │   │   ├── chart-line-step.json
│       │   │   │   │   ├── chart-pie-donut-active.json
│       │   │   │   │   ├── chart-pie-donut-text.json
│       │   │   │   │   ├── chart-pie-donut.json
│       │   │   │   │   ├── chart-pie-interactive.json
│       │   │   │   │   ├── chart-pie-label-custom.json
│       │   │   │   │   ├── chart-pie-label-list.json
│       │   │   │   │   ├── chart-pie-label.json
│       │   │   │   │   ├── chart-pie-legend.json
│       │   │   │   │   ├── chart-pie-separator-none.json
│       │   │   │   │   ├── chart-pie-simple.json
│       │   │   │   │   ├── chart-pie-stacked.json
│       │   │   │   │   ├── chart-radar-default.json
│       │   │   │   │   ├── chart-radar-dots.json
│       │   │   │   │   ├── chart-radar-grid-circle-fill.json
│       │   │   │   │   ├── chart-radar-grid-circle-no-lines.json
│       │   │   │   │   ├── chart-radar-grid-circle.json
│       │   │   │   │   ├── chart-radar-grid-custom.json
│       │   │   │   │   ├── chart-radar-grid-fill.json
│       │   │   │   │   ├── chart-radar-grid-none.json
│       │   │   │   │   ├── chart-radar-icons.json
│       │   │   │   │   ├── chart-radar-label-custom.json
│       │   │   │   │   ├── chart-radar-legend.json
│       │   │   │   │   ├── chart-radar-lines-only.json
│       │   │   │   │   ├── chart-radar-multiple.json
│       │   │   │   │   ├── chart-radar-radius.json
│       │   │   │   │   ├── chart-radial-grid.json
│       │   │   │   │   ├── chart-radial-label.json
│       │   │   │   │   ├── chart-radial-shape.json
│       │   │   │   │   ├── chart-radial-simple.json
│       │   │   │   │   ├── chart-radial-stacked.json
│       │   │   │   │   ├── chart-radial-text.json
│       │   │   │   │   ├── chart-tooltip-advanced.json
│       │   │   │   │   ├── chart-tooltip-default.json
│       │   │   │   │   ├── chart-tooltip-demo.json
│       │   │   │   │   ├── chart-tooltip-formatter.json
│       │   │   │   │   ├── chart-tooltip-icons.json
│       │   │   │   │   ├── chart-tooltip-indicator-line.json
│       │   │   │   │   ├── chart-tooltip-indicator-none.json
│       │   │   │   │   ├── chart-tooltip-label-custom.json
│       │   │   │   │   ├── chart-tooltip-label-formatter.json
│       │   │   │   │   ├── chart-tooltip-label-none.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-demo.json
│       │   │   │   │   ├── checkbox-disabled.json
│       │   │   │   │   ├── checkbox-form-multiple.json
│       │   │   │   │   ├── checkbox-form-single.json
│       │   │   │   │   ├── checkbox-with-text.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-demo.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-demo.json
│       │   │   │   │   ├── combobox-dropdown-menu.json
│       │   │   │   │   ├── combobox-form.json
│       │   │   │   │   ├── combobox-popover.json
│       │   │   │   │   ├── combobox-responsive.json
│       │   │   │   │   ├── command-demo.json
│       │   │   │   │   ├── command-dialog.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── context-menu-demo.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── data-table-demo.json
│       │   │   │   │   ├── date-picker-demo.json
│       │   │   │   │   ├── date-picker-form.json
│       │   │   │   │   ├── date-picker-with-presets.json
│       │   │   │   │   ├── date-picker-with-range.json
│       │   │   │   │   ├── dialog-close-button.json
│       │   │   │   │   ├── dialog-demo.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── drawer-demo.json
│       │   │   │   │   ├── drawer-dialog.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-checkboxes.json
│       │   │   │   │   ├── dropdown-menu-demo.json
│       │   │   │   │   ├── dropdown-menu-radio-group.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-demo.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-demo.json
│       │   │   │   │   ├── input-disabled.json
│       │   │   │   │   ├── input-file.json
│       │   │   │   │   ├── input-form.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-controlled.json
│       │   │   │   │   ├── input-otp-demo.json
│       │   │   │   │   ├── input-otp-form.json
│       │   │   │   │   ├── input-otp-pattern.json
│       │   │   │   │   ├── input-otp-separator.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input-with-button.json
│       │   │   │   │   ├── input-with-label.json
│       │   │   │   │   ├── input-with-text.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-demo.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-demo.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── mode-toggle.json
│       │   │   │   │   ├── navigation-menu-demo.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-demo.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-demo.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── progress-demo.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-demo.json
│       │   │   │   │   ├── radio-group-form.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-demo-with-handle.json
│       │   │   │   │   ├── resizable-demo.json
│       │   │   │   │   ├── resizable-handle.json
│       │   │   │   │   ├── resizable-vertical.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-demo.json
│       │   │   │   │   ├── scroll-area-horizontal-demo.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-demo.json
│       │   │   │   │   ├── select-form.json
│       │   │   │   │   ├── select-scrollable.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-demo.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-demo.json
│       │   │   │   │   ├── sheet-side.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-controlled.json
│       │   │   │   │   ├── sidebar-demo.json
│       │   │   │   │   ├── sidebar-footer.json
│       │   │   │   │   ├── sidebar-group-action.json
│       │   │   │   │   ├── sidebar-group-collapsible.json
│       │   │   │   │   ├── sidebar-group.json
│       │   │   │   │   ├── sidebar-header.json
│       │   │   │   │   ├── sidebar-menu-action.json
│       │   │   │   │   ├── sidebar-menu-badge.json
│       │   │   │   │   ├── sidebar-menu-collapsible.json
│       │   │   │   │   ├── sidebar-menu-sub.json
│       │   │   │   │   ├── sidebar-menu.json
│       │   │   │   │   ├── sidebar-rsc.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── sink.json
│       │   │   │   │   ├── skeleton-card.json
│       │   │   │   │   ├── skeleton-demo.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-demo.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-demo.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-demo.json
│       │   │   │   │   ├── switch-form.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-demo.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-demo.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-demo.json
│       │   │   │   │   ├── textarea-disabled.json
│       │   │   │   │   ├── textarea-form.json
│       │   │   │   │   ├── textarea-with-button.json
│       │   │   │   │   ├── textarea-with-label.json
│       │   │   │   │   ├── textarea-with-text.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── theme-daylight.json
│       │   │   │   │   ├── theme-emerald.json
│       │   │   │   │   ├── theme-midnight.json
│       │   │   │   │   ├── toast-demo.json
│       │   │   │   │   ├── toast-destructive.json
│       │   │   │   │   ├── toast-simple.json
│       │   │   │   │   ├── toast-with-action.json
│       │   │   │   │   ├── toast-with-title.json
│       │   │   │   │   ├── toast.json
│       │   │   │   │   ├── toggle-demo.json
│       │   │   │   │   ├── toggle-disabled.json
│       │   │   │   │   ├── toggle-group-demo.json
│       │   │   │   │   ├── toggle-group-disabled.json
│       │   │   │   │   ├── toggle-group-lg.json
│       │   │   │   │   ├── toggle-group-outline.json
│       │   │   │   │   ├── toggle-group-single.json
│       │   │   │   │   ├── toggle-group-sm.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle-lg.json
│       │   │   │   │   ├── toggle-outline.json
│       │   │   │   │   ├── toggle-sm.json
│       │   │   │   │   ├── toggle-with-text.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-demo.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── typography-blockquote.json
│       │   │   │   │   ├── typography-demo.json
│       │   │   │   │   ├── typography-h1.json
│       │   │   │   │   ├── typography-h2.json
│       │   │   │   │   ├── typography-h3.json
│       │   │   │   │   ├── typography-h4.json
│       │   │   │   │   ├── typography-inline-code.json
│       │   │   │   │   ├── typography-large.json
│       │   │   │   │   ├── typography-lead.json
│       │   │   │   │   ├── typography-list.json
│       │   │   │   │   ├── typography-muted.json
│       │   │   │   │   ├── typography-p.json
│       │   │   │   │   ├── typography-small.json
│       │   │   │   │   ├── typography-table.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   ├── use-toast.json
│       │   │   │   │   ├── utils.json
│       │   │   │   │   ├── v0-login-01.json
│       │   │   │   │   ├── v0-sidebar-01.json
│       │   │   │   │   ├── v0-sidebar-02.json
│       │   │   │   │   ├── v0-sidebar-03.json
│       │   │   │   │   ├── v0-sidebar-04.json
│       │   │   │   │   ├── v0-sidebar-05.json
│       │   │   │   │   ├── v0-sidebar-06.json
│       │   │   │   │   ├── v0-sidebar-07.json
│       │   │   │   │   ├── v0-sidebar-08.json
│       │   │   │   │   ├── v0-sidebar-09.json
│       │   │   │   │   ├── v0-sidebar-10.json
│       │   │   │   │   ├── v0-sidebar-11.json
│       │   │   │   │   ├── v0-sidebar-12.json
│       │   │   │   │   ├── v0-sidebar-13.json
│       │   │   │   │   ├── v0-sidebar-14.json
│       │   │   │   │   ├── v0-sidebar-15.json
│       │   │   │   │   └── v0-sidebar-16.json
│       │   │   │   ├── new-york-v4/
│       │   │   │   │   ├── accordion-demo.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-demo.json
│       │   │   │   │   ├── alert-destructive.json
│       │   │   │   │   ├── alert-dialog-demo.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-demo.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-demo.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-demo.json
│       │   │   │   │   ├── badge-destructive.json
│       │   │   │   │   ├── badge-outline.json
│       │   │   │   │   ├── badge-secondary.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-demo.json
│       │   │   │   │   ├── breadcrumb-dropdown.json
│       │   │   │   │   ├── breadcrumb-ellipsis.json
│       │   │   │   │   ├── breadcrumb-link.json
│       │   │   │   │   ├── breadcrumb-responsive.json
│       │   │   │   │   ├── breadcrumb-separator.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-as-child.json
│       │   │   │   │   ├── button-default.json
│       │   │   │   │   ├── button-demo.json
│       │   │   │   │   ├── button-destructive.json
│       │   │   │   │   ├── button-ghost.json
│       │   │   │   │   ├── button-group-demo.json
│       │   │   │   │   ├── button-group-dropdown.json
│       │   │   │   │   ├── button-group-input-group.json
│       │   │   │   │   ├── button-group-input.json
│       │   │   │   │   ├── button-group-nested.json
│       │   │   │   │   ├── button-group-orientation.json
│       │   │   │   │   ├── button-group-popover.json
│       │   │   │   │   ├── button-group-select.json
│       │   │   │   │   ├── button-group-separator.json
│       │   │   │   │   ├── button-group-size.json
│       │   │   │   │   ├── button-group-split.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button-icon.json
│       │   │   │   │   ├── button-link.json
│       │   │   │   │   ├── button-loading.json
│       │   │   │   │   ├── button-outline.json
│       │   │   │   │   ├── button-rounded.json
│       │   │   │   │   ├── button-secondary.json
│       │   │   │   │   ├── button-size.json
│       │   │   │   │   ├── button-with-icon.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-01.json
│       │   │   │   │   ├── calendar-02.json
│       │   │   │   │   ├── calendar-03.json
│       │   │   │   │   ├── calendar-04.json
│       │   │   │   │   ├── calendar-05.json
│       │   │   │   │   ├── calendar-06.json
│       │   │   │   │   ├── calendar-07.json
│       │   │   │   │   ├── calendar-08.json
│       │   │   │   │   ├── calendar-09.json
│       │   │   │   │   ├── calendar-10.json
│       │   │   │   │   ├── calendar-11.json
│       │   │   │   │   ├── calendar-12.json
│       │   │   │   │   ├── calendar-13.json
│       │   │   │   │   ├── calendar-14.json
│       │   │   │   │   ├── calendar-15.json
│       │   │   │   │   ├── calendar-16.json
│       │   │   │   │   ├── calendar-17.json
│       │   │   │   │   ├── calendar-18.json
│       │   │   │   │   ├── calendar-19.json
│       │   │   │   │   ├── calendar-20.json
│       │   │   │   │   ├── calendar-21.json
│       │   │   │   │   ├── calendar-22.json
│       │   │   │   │   ├── calendar-23.json
│       │   │   │   │   ├── calendar-24.json
│       │   │   │   │   ├── calendar-25.json
│       │   │   │   │   ├── calendar-26.json
│       │   │   │   │   ├── calendar-27.json
│       │   │   │   │   ├── calendar-28.json
│       │   │   │   │   ├── calendar-29.json
│       │   │   │   │   ├── calendar-30.json
│       │   │   │   │   ├── calendar-31.json
│       │   │   │   │   ├── calendar-32.json
│       │   │   │   │   ├── calendar-demo.json
│       │   │   │   │   ├── calendar-form.json
│       │   │   │   │   ├── calendar-hijri.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-demo.json
│       │   │   │   │   ├── card-with-form.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-api.json
│       │   │   │   │   ├── carousel-demo.json
│       │   │   │   │   ├── carousel-orientation.json
│       │   │   │   │   ├── carousel-plugin.json
│       │   │   │   │   ├── carousel-size.json
│       │   │   │   │   ├── carousel-spacing.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-area-axes.json
│       │   │   │   │   ├── chart-area-default.json
│       │   │   │   │   ├── chart-area-gradient.json
│       │   │   │   │   ├── chart-area-icons.json
│       │   │   │   │   ├── chart-area-interactive.json
│       │   │   │   │   ├── chart-area-legend.json
│       │   │   │   │   ├── chart-area-linear.json
│       │   │   │   │   ├── chart-area-stacked-expand.json
│       │   │   │   │   ├── chart-area-stacked.json
│       │   │   │   │   ├── chart-area-step.json
│       │   │   │   │   ├── chart-bar-active.json
│       │   │   │   │   ├── chart-bar-default.json
│       │   │   │   │   ├── chart-bar-demo-axis.json
│       │   │   │   │   ├── chart-bar-demo-grid.json
│       │   │   │   │   ├── chart-bar-demo-legend.json
│       │   │   │   │   ├── chart-bar-demo-tooltip.json
│       │   │   │   │   ├── chart-bar-demo.json
│       │   │   │   │   ├── chart-bar-horizontal.json
│       │   │   │   │   ├── chart-bar-interactive.json
│       │   │   │   │   ├── chart-bar-label-custom.json
│       │   │   │   │   ├── chart-bar-label.json
│       │   │   │   │   ├── chart-bar-mixed.json
│       │   │   │   │   ├── chart-bar-multiple.json
│       │   │   │   │   ├── chart-bar-negative.json
│       │   │   │   │   ├── chart-bar-stacked.json
│       │   │   │   │   ├── chart-line-default.json
│       │   │   │   │   ├── chart-line-dots-colors.json
│       │   │   │   │   ├── chart-line-dots-custom.json
│       │   │   │   │   ├── chart-line-dots.json
│       │   │   │   │   ├── chart-line-interactive.json
│       │   │   │   │   ├── chart-line-label-custom.json
│       │   │   │   │   ├── chart-line-label.json
│       │   │   │   │   ├── chart-line-linear.json
│       │   │   │   │   ├── chart-line-multiple.json
│       │   │   │   │   ├── chart-line-step.json
│       │   │   │   │   ├── chart-pie-donut-active.json
│       │   │   │   │   ├── chart-pie-donut-text.json
│       │   │   │   │   ├── chart-pie-donut.json
│       │   │   │   │   ├── chart-pie-interactive.json
│       │   │   │   │   ├── chart-pie-label-custom.json
│       │   │   │   │   ├── chart-pie-label-list.json
│       │   │   │   │   ├── chart-pie-label.json
│       │   │   │   │   ├── chart-pie-legend.json
│       │   │   │   │   ├── chart-pie-separator-none.json
│       │   │   │   │   ├── chart-pie-simple.json
│       │   │   │   │   ├── chart-pie-stacked.json
│       │   │   │   │   ├── chart-radar-default.json
│       │   │   │   │   ├── chart-radar-dots.json
│       │   │   │   │   ├── chart-radar-grid-circle-fill.json
│       │   │   │   │   ├── chart-radar-grid-circle-no-lines.json
│       │   │   │   │   ├── chart-radar-grid-circle.json
│       │   │   │   │   ├── chart-radar-grid-custom.json
│       │   │   │   │   ├── chart-radar-grid-fill.json
│       │   │   │   │   ├── chart-radar-grid-none.json
│       │   │   │   │   ├── chart-radar-icons.json
│       │   │   │   │   ├── chart-radar-label-custom.json
│       │   │   │   │   ├── chart-radar-legend.json
│       │   │   │   │   ├── chart-radar-lines-only.json
│       │   │   │   │   ├── chart-radar-multiple.json
│       │   │   │   │   ├── chart-radar-radius.json
│       │   │   │   │   ├── chart-radial-grid.json
│       │   │   │   │   ├── chart-radial-label.json
│       │   │   │   │   ├── chart-radial-shape.json
│       │   │   │   │   ├── chart-radial-simple.json
│       │   │   │   │   ├── chart-radial-stacked.json
│       │   │   │   │   ├── chart-radial-text.json
│       │   │   │   │   ├── chart-tooltip-advanced.json
│       │   │   │   │   ├── chart-tooltip-default.json
│       │   │   │   │   ├── chart-tooltip-demo.json
│       │   │   │   │   ├── chart-tooltip-formatter.json
│       │   │   │   │   ├── chart-tooltip-icons.json
│       │   │   │   │   ├── chart-tooltip-indicator-line.json
│       │   │   │   │   ├── chart-tooltip-indicator-none.json
│       │   │   │   │   ├── chart-tooltip-label-custom.json
│       │   │   │   │   ├── chart-tooltip-label-formatter.json
│       │   │   │   │   ├── chart-tooltip-label-none.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-demo.json
│       │   │   │   │   ├── checkbox-disabled.json
│       │   │   │   │   ├── checkbox-form-multiple.json
│       │   │   │   │   ├── checkbox-form-single.json
│       │   │   │   │   ├── checkbox-with-text.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-demo.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-demo.json
│       │   │   │   │   ├── combobox-dropdown-menu.json
│       │   │   │   │   ├── combobox-form.json
│       │   │   │   │   ├── combobox-popover.json
│       │   │   │   │   ├── combobox-responsive.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-demo.json
│       │   │   │   │   ├── command-dialog.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── context-menu-demo.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── data-table-demo.json
│       │   │   │   │   ├── date-picker-demo.json
│       │   │   │   │   ├── date-picker-form.json
│       │   │   │   │   ├── date-picker-with-presets.json
│       │   │   │   │   ├── date-picker-with-range.json
│       │   │   │   │   ├── dialog-close-button.json
│       │   │   │   │   ├── dialog-demo.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-demo.json
│       │   │   │   │   ├── drawer-dialog.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-checkboxes.json
│       │   │   │   │   ├── dropdown-menu-demo.json
│       │   │   │   │   ├── dropdown-menu-dialog.json
│       │   │   │   │   ├── dropdown-menu-radio-group.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-avatar-group.json
│       │   │   │   │   ├── empty-avatar.json
│       │   │   │   │   ├── empty-background.json
│       │   │   │   │   ├── empty-demo.json
│       │   │   │   │   ├── empty-icon.json
│       │   │   │   │   ├── empty-image.json
│       │   │   │   │   ├── empty-input-group.json
│       │   │   │   │   ├── empty-muted.json
│       │   │   │   │   ├── empty-outline.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── field-badge.json
│       │   │   │   │   ├── field-checkbox.json
│       │   │   │   │   ├── field-choice-card.json
│       │   │   │   │   ├── field-demo.json
│       │   │   │   │   ├── field-fieldset.json
│       │   │   │   │   ├── field-group.json
│       │   │   │   │   ├── field-input.json
│       │   │   │   │   ├── field-radio.json
│       │   │   │   │   ├── field-responsive.json
│       │   │   │   │   ├── field-select.json
│       │   │   │   │   ├── field-slider.json
│       │   │   │   │   ├── field-switch.json
│       │   │   │   │   ├── field-textarea.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── form-next-complex.json
│       │   │   │   │   ├── form-next-demo.json
│       │   │   │   │   ├── form-rhf-array.json
│       │   │   │   │   ├── form-rhf-checkbox.json
│       │   │   │   │   ├── form-rhf-complex.json
│       │   │   │   │   ├── form-rhf-demo.json
│       │   │   │   │   ├── form-rhf-input.json
│       │   │   │   │   ├── form-rhf-password.json
│       │   │   │   │   ├── form-rhf-radiogroup.json
│       │   │   │   │   ├── form-rhf-select.json
│       │   │   │   │   ├── form-rhf-switch.json
│       │   │   │   │   ├── form-rhf-textarea.json
│       │   │   │   │   ├── form-tanstack-array.json
│       │   │   │   │   ├── form-tanstack-checkbox.json
│       │   │   │   │   ├── form-tanstack-complex.json
│       │   │   │   │   ├── form-tanstack-demo.json
│       │   │   │   │   ├── form-tanstack-input.json
│       │   │   │   │   ├── form-tanstack-radiogroup.json
│       │   │   │   │   ├── form-tanstack-select.json
│       │   │   │   │   ├── form-tanstack-switch.json
│       │   │   │   │   ├── form-tanstack-textarea.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-demo.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-demo.json
│       │   │   │   │   ├── input-disabled.json
│       │   │   │   │   ├── input-file.json
│       │   │   │   │   ├── input-form.json
│       │   │   │   │   ├── input-group-align.json
│       │   │   │   │   ├── input-group-button-group.json
│       │   │   │   │   ├── input-group-button.json
│       │   │   │   │   ├── input-group-custom.json
│       │   │   │   │   ├── input-group-demo.json
│       │   │   │   │   ├── input-group-dropdown.json
│       │   │   │   │   ├── input-group-icon.json
│       │   │   │   │   ├── input-group-label.json
│       │   │   │   │   ├── input-group-select.json
│       │   │   │   │   ├── input-group-spinner.json
│       │   │   │   │   ├── input-group-text.json
│       │   │   │   │   ├── input-group-textarea.json
│       │   │   │   │   ├── input-group-tooltip.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-controlled.json
│       │   │   │   │   ├── input-otp-demo.json
│       │   │   │   │   ├── input-otp-form.json
│       │   │   │   │   ├── input-otp-pattern.json
│       │   │   │   │   ├── input-otp-separator.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input-with-button.json
│       │   │   │   │   ├── input-with-label.json
│       │   │   │   │   ├── input-with-text.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-avatar.json
│       │   │   │   │   ├── item-demo.json
│       │   │   │   │   ├── item-dropdown.json
│       │   │   │   │   ├── item-group.json
│       │   │   │   │   ├── item-header.json
│       │   │   │   │   ├── item-icon.json
│       │   │   │   │   ├── item-image.json
│       │   │   │   │   ├── item-link.json
│       │   │   │   │   ├── item-select.json
│       │   │   │   │   ├── item-size.json
│       │   │   │   │   ├── item-variant.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-button.json
│       │   │   │   │   ├── kbd-demo.json
│       │   │   │   │   ├── kbd-group.json
│       │   │   │   │   ├── kbd-input-group.json
│       │   │   │   │   ├── kbd-tooltip.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-demo.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-demo.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── mode-toggle.json
│       │   │   │   │   ├── native-select-demo.json
│       │   │   │   │   ├── native-select-disabled.json
│       │   │   │   │   ├── native-select-groups.json
│       │   │   │   │   ├── native-select-invalid.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-demo.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── otp-01.json
│       │   │   │   │   ├── otp-02.json
│       │   │   │   │   ├── otp-03.json
│       │   │   │   │   ├── otp-04.json
│       │   │   │   │   ├── otp-05.json
│       │   │   │   │   ├── pagination-demo.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-demo.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── products-01.json
│       │   │   │   │   ├── progress-demo.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-demo.json
│       │   │   │   │   ├── radio-group-form.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-demo-with-handle.json
│       │   │   │   │   ├── resizable-demo.json
│       │   │   │   │   ├── resizable-handle.json
│       │   │   │   │   ├── resizable-vertical.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-demo.json
│       │   │   │   │   ├── scroll-area-horizontal-demo.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-demo.json
│       │   │   │   │   ├── select-form.json
│       │   │   │   │   ├── select-scrollable.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-demo.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-demo.json
│       │   │   │   │   ├── sheet-side.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-controlled.json
│       │   │   │   │   ├── sidebar-demo.json
│       │   │   │   │   ├── sidebar-footer.json
│       │   │   │   │   ├── sidebar-group-action.json
│       │   │   │   │   ├── sidebar-group-collapsible.json
│       │   │   │   │   ├── sidebar-group.json
│       │   │   │   │   ├── sidebar-header.json
│       │   │   │   │   ├── sidebar-menu-action.json
│       │   │   │   │   ├── sidebar-menu-badge.json
│       │   │   │   │   ├── sidebar-menu-collapsible.json
│       │   │   │   │   ├── sidebar-menu-sub.json
│       │   │   │   │   ├── sidebar-menu.json
│       │   │   │   │   ├── sidebar-rsc.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-card.json
│       │   │   │   │   ├── skeleton-demo.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-demo.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-demo.json
│       │   │   │   │   ├── sonner-types.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-badge.json
│       │   │   │   │   ├── spinner-basic.json
│       │   │   │   │   ├── spinner-button.json
│       │   │   │   │   ├── spinner-color.json
│       │   │   │   │   ├── spinner-custom.json
│       │   │   │   │   ├── spinner-demo.json
│       │   │   │   │   ├── spinner-empty.json
│       │   │   │   │   ├── spinner-input-group.json
│       │   │   │   │   ├── spinner-item.json
│       │   │   │   │   ├── spinner-size.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-demo.json
│       │   │   │   │   ├── switch-form.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-demo.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-demo.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-demo.json
│       │   │   │   │   ├── textarea-disabled.json
│       │   │   │   │   ├── textarea-form.json
│       │   │   │   │   ├── textarea-with-button.json
│       │   │   │   │   ├── textarea-with-label.json
│       │   │   │   │   ├── textarea-with-text.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── theme-gray.json
│       │   │   │   │   ├── theme-neutral.json
│       │   │   │   │   ├── theme-slate.json
│       │   │   │   │   ├── theme-stone.json
│       │   │   │   │   ├── theme-zinc.json
│       │   │   │   │   ├── toast-demo.json
│       │   │   │   │   ├── toast-destructive.json
│       │   │   │   │   ├── toast-simple.json
│       │   │   │   │   ├── toast-with-action.json
│       │   │   │   │   ├── toast-with-title.json
│       │   │   │   │   ├── toggle-demo.json
│       │   │   │   │   ├── toggle-disabled.json
│       │   │   │   │   ├── toggle-group-demo.json
│       │   │   │   │   ├── toggle-group-disabled.json
│       │   │   │   │   ├── toggle-group-lg.json
│       │   │   │   │   ├── toggle-group-outline.json
│       │   │   │   │   ├── toggle-group-single.json
│       │   │   │   │   ├── toggle-group-sm.json
│       │   │   │   │   ├── toggle-group-spacing.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle-lg.json
│       │   │   │   │   ├── toggle-outline.json
│       │   │   │   │   ├── toggle-sm.json
│       │   │   │   │   ├── toggle-with-text.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-demo.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── typography-blockquote.json
│       │   │   │   │   ├── typography-demo.json
│       │   │   │   │   ├── typography-h1.json
│       │   │   │   │   ├── typography-h2.json
│       │   │   │   │   ├── typography-h3.json
│       │   │   │   │   ├── typography-h4.json
│       │   │   │   │   ├── typography-inline-code.json
│       │   │   │   │   ├── typography-large.json
│       │   │   │   │   ├── typography-lead.json
│       │   │   │   │   ├── typography-list.json
│       │   │   │   │   ├── typography-muted.json
│       │   │   │   │   ├── typography-p.json
│       │   │   │   │   ├── typography-small.json
│       │   │   │   │   ├── typography-table.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── radix-lyra/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── cards.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── radix-maia/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── cards.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── radix-mira/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── cards.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-

================================================
FILE CONTENTS
================================================

================================================
FILE: .changeset/README.md
================================================
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)


================================================
FILE: .changeset/config.json
================================================
{
  "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json",
  "changelog": ["@changesets/changelog-github", { "repo": "shadcn-ui/ui" }],
  "commit": false,
  "fixed": [],
  "linked": [],
  "access": "public",
  "baseBranch": "main",
  "updateInternalDependencies": "patch",
  "ignore": ["v4", "tests"]
}


================================================
FILE: .claude/settings.local.json
================================================
{
  "permissions": {
    "allow": [
      "Bash(npm test:*)",
      "Bash(npm run typecheck:*)",
      "Bash(ls:*)",
      "Bash(cat:*)",
      "WebSearch",
      "WebFetch(domain:github.com)"
    ],
    "deny": []
  }
}


================================================
FILE: .commitlintrc.json
================================================
{
  "extends": ["@commitlint/config-conventional"]
}


================================================
FILE: .cursor/rules/registry-bases-parity.mdc
================================================
---
description: Keep registry base and radix trees in sync when editing shared UI
globs: apps/v4/registry/bases/**/*
alwaysApply: false
---

# Registry bases: Base UI ↔ Radix parity

`apps/v4/registry/bases/base` and `apps/v4/registry/bases/radix` are **parallel registries**. Anything that exists in both trees for the same purpose (preview blocks, mirrored examples, shared card layouts, etc.) **must stay in sync**.

## When editing

- If you change a file under **`bases/base/...`**, apply the **same behavioral and visual change** to the matching path under **`bases/radix/...`** (and the reverse).
- Only diverge where APIs differ (e.g. import paths like `@/registry/bases/base/ui/*` vs `@/registry/bases/radix/ui/*`, or Base UI vs Radix component props).
- Do **not** update only one side unless the user explicitly asks for a single-base change.

## Typical mirrored paths

- `blocks/preview/**` — preview cards and blocks
- Parallel `ui/*` components when both exist for the same component

After edits, briefly confirm both trees were updated (or state why one side is intentionally unchanged).


================================================
FILE: .editorconfig
================================================
# editorconfig.org
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true


================================================
FILE: .eslintignore
================================================
node_modules/
target/
.next/
build/
dist/

/templates/
/fixtures/


================================================
FILE: .eslintrc.json
================================================
{
  "$schema": "https://json.schemastore.org/eslintrc",
  "root": true,
  "extends": [
    "next/core-web-vitals",
    "turbo",
    "prettier",
    "plugin:tailwindcss/recommended"
  ],
  "plugins": ["tailwindcss"],
  "ignorePatterns": ["**/fixtures/**"],
  "rules": {
    "@next/next/no-html-link-for-pages": "off",
    "tailwindcss/no-custom-classname": "off",
    "tailwindcss/classnames-order": "error"
  },
  "settings": {
    "tailwindcss": {
      "callees": ["cn", "cva"],
      "config": "tailwind.config.cjs"
    },
    "next": {
      "rootDir": ["apps/*/"]
    }
  },
  "overrides": [
    {
      "files": ["*.ts", "*.tsx"],
      "parser": "@typescript-eslint/parser"
    }
  ]
}


================================================
FILE: .github/DISCUSSION_TEMPLATE/blocks-request.yml
================================================
title: "[blocks]: "
labels: ["Blocks Request"]
body:
  - type: markdown
    attributes:
      value: |
        ### Thanks for taking the time to create a block request! Please search open/closed requests before submitting, as the block or a similar one may have already been requested.

  - type: textarea
    id: block-description
    attributes:
      label: Description
      description: Tell us about your block request
      placeholder: "A dashboard for an e-commerce website showing sales, orders, and customers..."
    validations:
      required: true

  - type: input
    id: block-example-url
    attributes:
      label: Example
      description: Link to an example of the block
      placeholder: ex. https://example.com
    validations:
      required: false


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: [shadcn]


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: "Bug report"
description: Report an issue
title: '[bug]: '
labels: ["bug"]
body:
  - type: markdown
    attributes:
      value: |
        ### Thanks for taking the time to create a bug report. Please search open/closed issues before submitting, as the issue may have already been reported/addressed.
 
  - type: markdown
    attributes:
      value: |
        #### If you aren't sure this is a bug or not, please open a discussion instead:
        - [Discussions](https://github.com/shadcn-ui/ui/discussions/new?category=general)

  - type: textarea
    id: bug-description
    attributes:
      label: Describe the bug
      description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us how in the description. Thanks!
      placeholder: Bug description
    validations:
      required: true

  - type: input
    id: components-affected
    attributes:
      label: Affected component/components
      description: Which shadcn/ui components are affected?
      placeholder: ex. Button, Checkbox...
    validations:
      required: true

  - type: textarea
    id: reproduction
    attributes:
      label: How to reproduce
      description:  A step-by-step description of how to reproduce the bug.
      placeholder: |
        1. Go to '...'
        2. Click on '....'
        3. See error
    validations:
      required: true

  - type: input
    id: codesandbox-stackblitz
    attributes:
      label: Codesandbox/StackBlitz link
      description: | 
        A link to a CodeSandbox or StackBlitz that includes a minimal reproduction of the problem. In rare cases when not applicable, you can link to a GitHub repository that we can easily run to recreate the issue. If a report is vague and does not have a reproduction, it will be closed without warning. 

        > [!CAUTION]
        > If you skip this step, this issue might be **labeled** with `please add a reproduction` and **closed**.
    validations:
      required: false

  - type: textarea
    id: logs
    attributes:
      label: Logs
      description: "Please include browser console and server logs around the time this bug occurred. Optional if provided reproduction. Please try not to insert an image but copy paste the log text."
      render: bash

  - type: textarea
    id: system-info
    attributes:
      label: System Info
      description: Information about browsers, system or binaries that's relevant.
      render: bash
      placeholder: System, Binaries, Browsers
    validations:
      required: true

  - type: checkboxes
    id: terms
    attributes:
      label: Before submitting
      description: By submitting this issue, you agree to follow our [Contributing Guidelines](https://github.com/shadcn-ui/ui/blob/main/CONTRIBUTING.md).
      options:
        - label: I've made research efforts and searched the documentation
          required: true
        - label: I've searched for existing issues
          required: true


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Get Help
    url: https://github.com/shadcn-ui/ui/discussions/new?category=general
    about: If you can't get something to work the way you expect, open a question in our discussion forums.

================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: "Feature request"
description: Create a feature request for shadcn/ui
title: '[feat]: '
labels: ['area: request']
body:
  - type: markdown
    attributes:
      value: |
        ### Thanks for taking the time to create a feature request! Please search open/closed issues before submitting, as the issue may have already been reported/addressed.
 
  - type: markdown
    attributes:
      value: |
        #### If you aren't sure this is a bug or not, please open a discussion instead:
        - [Discussions](https://github.com/shadcn-ui/ui/discussions/new?category=general)

  - type: textarea
    id: feature-description
    attributes:
      label: Feature description
      description: Tell us about your feature request
      placeholder: 'I think this feature would be great because...'
      value: 'Describe your feature request...'
    validations:
      required: true

  - type: input
    id: components-affected
    attributes:
      label: Affected component/components
      description: Is this feature request relevant to any of the already existing components?
      placeholder: ex. Button, Checkbox...
    validations:
      required: false

  - type: textarea
    id: context
    attributes:
      label: Additional Context
      description: Add any other context about the feature here.
      placeholder: ex. screenshots, Stack Overflow links, forum links, etc.
      value: 'Additional details here...'
    validations:
      required: false

  - type: checkboxes
    id: terms
    attributes:
      label: Before submitting
      description: By submitting this issue, you agree to follow our [Contributing Guidelines](https://github.com/shadcn-ui/ui/blob/main/CONTRIBUTING.md).
      options:
        - label: I've made research efforts and searched the documentation
          required: true
        - label: I've searched for existing issues and PRs
          required: true


================================================
FILE: .github/changeset-version.js
================================================
// ORIGINALLY FROM CLOUDFLARE WRANGLER:
// https://github.com/cloudflare/wrangler2/blob/main/.github/changeset-version.js

import { execSync } from "child_process"

// This script is used by the `release.yml` workflow to update the version of the packages being released.
// The standard step is only to run `changeset version` but this does not update the pnpm-lock.yaml file.
// So we also run `pnpm install`, which does this update.
// This is a workaround until this is handled automatically by `changeset version`.
// See https://github.com/changesets/changesets/issues/421.
execSync("npx changeset version", { stdio: "inherit" })
execSync("pnpm install --lockfile-only", { stdio: "inherit" })


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/templates/astro-app"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/templates/astro-monorepo"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/templates/next-app"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/templates/next-monorepo"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/templates/react-router-app"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/templates/react-router-monorepo"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/templates/start-app"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/templates/start-monorepo"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/templates/vite-app"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/templates/vite-monorepo"
    schedule:
      interval: "weekly"


================================================
FILE: .github/version-script-beta.js
================================================
// ORIGINALLY FROM CLOUDFLARE WRANGLER:
// https://github.com/cloudflare/wrangler2/blob/main/.github/version-script.js

import { exec } from "child_process"
import fs from "fs"

const pkgJsonPath = "packages/shadcn/package.json"
try {
  const pkg = JSON.parse(fs.readFileSync(pkgJsonPath))
  exec("git rev-parse --short HEAD", (err, stdout) => {
    if (err) {
      console.log(err)
      process.exit(1)
    }
    pkg.version = "0.0.0-beta." + stdout.trim()
    fs.writeFileSync(pkgJsonPath, JSON.stringify(pkg, null, "\t") + "\n")
  })
} catch (error) {
  console.error(error)
  process.exit(1)
}


================================================
FILE: .github/version-script-next.js
================================================
// ORIGINALLY FROM CLOUDFLARE WRANGLER:
// https://github.com/cloudflare/wrangler2/blob/main/.github/version-script.js

import { exec } from "child_process"
import fs from "fs"

const pkgJsonPath = "packages/shadcn/package.json"
try {
  const pkg = JSON.parse(fs.readFileSync(pkgJsonPath))
  exec("git rev-parse --short HEAD", (err, stdout) => {
    if (err) {
      console.log(err)
      process.exit(1)
    }
    pkg.version = "0.0.0-next." + stdout.trim()
    fs.writeFileSync(pkgJsonPath, JSON.stringify(pkg, null, "\t") + "\n")
  })
} catch (error) {
  console.error(error)
  process.exit(1)
}


================================================
FILE: .github/workflows/code-check.yml
================================================
name: Code check

on:
  pull_request:
    branches: ["*"]

jobs:
  lint:
    runs-on: ubuntu-latest
    name: pnpm lint
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 20

      - uses: pnpm/action-setup@v4
        name: Install pnpm
        id: pnpm-install
        with:
          version: 9.0.6
          run_install: false

      - name: Get pnpm store directory
        id: pnpm-cache
        run: |
          echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
      - uses: actions/cache@v3
        name: Setup pnpm cache
        with:
          path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
          key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-store-
      - name: Install dependencies
        run: pnpm install

      - run: pnpm lint

  format:
    runs-on: ubuntu-latest
    name: pnpm format:check
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 20

      - uses: pnpm/action-setup@v4
        name: Install pnpm
        id: pnpm-install
        with:
          version: 9.0.6
          run_install: false

      - name: Get pnpm store directory
        id: pnpm-cache
        run: |
          echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT

      - uses: actions/cache@v3
        name: Setup pnpm cache
        with:
          path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
          key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-store-

      - name: Install dependencies
        run: pnpm install

      - name: Build packages
        run: pnpm --filter=shadcn build

      - run: pnpm format:check

  tsc:
    runs-on: ubuntu-latest
    name: pnpm typecheck
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 20

      - uses: pnpm/action-setup@v4
        name: Install pnpm
        id: pnpm-install
        with:
          version: 9.0.6
          run_install: false

      - name: Get pnpm store directory
        id: pnpm-cache
        run: |
          echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
      - uses: actions/cache@v3
        name: Setup pnpm cache
        with:
          path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
          key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-store-
      - name: Install dependencies
        run: pnpm install

      - name: Build packages
        run: pnpm --filter=shadcn build

      - run: pnpm typecheck


================================================
FILE: .github/workflows/issue-stale.yml
================================================
# Adapted from vercel/next.js
name: "Stale issue handler"
on:
  workflow_dispatch:
  schedule:
    # This runs every day 20 minutes before midnight: https://crontab.guru/#40_23_*_*_*
    - cron: "40 23 * * *"

jobs:
  stale:
    runs-on: ubuntu-latest
    if: github.repository_owner == 'shadcn-ui'
    steps:
      - uses: actions/stale@v9
        id: issue-stale
        name: "Mark stale issues, close stale issues"
        with:
          repo-token: ${{ secrets.STALE_TOKEN }}
          ascending: true
          days-before-issue-close: 7
          days-before-issue-stale: 365
          days-before-pr-stale: -1
          days-before-pr-close: -1
          remove-issue-stale-when-updated: true
          stale-issue-label: "stale?"
          exempt-issue-labels: "roadmap,next"
          stale-issue-message: "This issue has been automatically marked as stale due to one year of inactivity. It will be closed in 7 days unless there’s further input. If you believe this issue is still relevant, please leave a comment or provide updated details. Thank you. (This is an automated message)"
          close-issue-message: "This issue has been automatically closed due to one year of inactivity. If you’re still experiencing a similar problem or have additional details to share, please open a new issue following our current issue template. Your updated report helps us investigate and address concerns more efficiently. Thank you for your understanding! (This is an automated message)"
          operations-per-run: 300
      - uses: actions/stale@v9
        id: pr-state
        name: "Mark stale PRs, close stale PRs"
        with:
          repo-token: ${{ secrets.STALE_TOKEN }}
          ascending: true
          days-before-issue-close: -1
          days-before-issue-stale: -1
          days-before-pr-close: 7
          days-before-pr-stale: 365
          remove-pr-stale-when-updated: true
          exempt-pr-labels: "roadmap,next,bug"
          stale-pr-label: "stale?"
          stale-pr-message: "This PR has been automatically marked as stale due to one year of inactivity. It will be closed in 7 days unless there’s further input. If you believe this PR is still relevant, please leave a comment or provide updated details. Thank you. (This is an automated message)"
          close-pr-message: "This PR has been automatically closed due to one year of inactivity. Thank you for your understanding! (This is an automated message)"
          operations-per-run: 300


================================================
FILE: .github/workflows/prerelease-comment.yml
================================================
# Adapted from create-t3-app.
name: Write Beta Release comment

on:
  workflow_run:
    workflows: ["Release - Beta"]
    types:
      - completed

jobs:
  comment:
    if: |
      github.repository_owner == 'shadcn-ui' &&
      ${{ github.event.workflow_run.conclusion == 'success' }}
    runs-on: ubuntu-latest
    name: Write comment to the PR
    steps:
      - name: "Comment on PR"
        uses: actions/github-script@v6
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
              owner: context.repo.owner,
              repo: context.repo.repo,
              run_id: context.payload.workflow_run.id,
            });

            for (const artifact of allArtifacts.data.artifacts) {
              // Extract the PR number and package version from the artifact name
              const match = /^npm-package-shadcn@(.*?)-pr-(\d+)/.exec(artifact.name);

              if (match) {
                require("fs").appendFileSync(
                  process.env.GITHUB_ENV,
                  `\nBETA_PACKAGE_VERSION=${match[1]}` +
                  `\nWORKFLOW_RUN_PR=${match[2]}` +
                  `\nWORKFLOW_RUN_ID=${context.payload.workflow_run.id}`
                );
                break;
              }
            }

      - name: "Comment on PR with Link"
        uses: marocchino/sticky-pull-request-comment@v2
        with:
          number: ${{ env.WORKFLOW_RUN_PR }}
          message: |
            A new prerelease is available for testing:

            ```sh
            pnpm dlx shadcn@${{ env.BETA_PACKAGE_VERSION }}
            ```

      - name: "Remove the autorelease label once published"
        uses: actions/github-script@v6
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            github.rest.issues.removeLabel({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: '${{ env.WORKFLOW_RUN_PR }}',
              name: '🚀 autorelease',
            });


================================================
FILE: .github/workflows/prerelease.yml
================================================
# Adapted from create-t3-app.

name: Release - Beta

on:
  pull_request:
    types: [labeled]
    branches:
      - main

permissions:
  id-token: write
  contents: read

jobs:
  prerelease:
    if: |
      github.repository_owner == 'shadcn-ui' &&
      contains(github.event.pull_request.labels.*.name, '🚀 autorelease')
    name: Build & Publish a beta release to NPM
    runs-on: ubuntu-latest
    environment: Preview

    steps:
      - name: Checkout Repo
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Use PNPM
        uses: pnpm/action-setup@v4
        with:
          version: 9.0.6

      - name: Use Node.js 20
        uses: actions/setup-node@v4
        with:
          node-version: 20
          registry-url: "https://registry.npmjs.org"
          cache: "pnpm"

      - name: Update npm for OIDC support
        run: npm install -g npm@latest

      - name: Install NPM Dependencies
        run: pnpm install

      - name: Modify package.json version
        run: node .github/version-script-beta.js

      - name: Publish Beta to NPM
        run: pnpm pub:beta

      - name: get-npm-version
        id: package-version
        uses: martinbeentjes/npm-get-version-action@main
        with:
          path: packages/shadcn

      - name: Upload packaged artifact
        uses: actions/upload-artifact@v4
        with:
          name: npm-package-shadcn@${{ steps.package-version.outputs.current-version }}-pr-${{ github.event.number }} # encode the PR number into the artifact name
          path: packages/shadcn/dist/index.js


================================================
FILE: .github/workflows/release.yml
================================================
# Adapted from create-t3-app.

name: Release

on:
  push:
    branches:
      - main

permissions:
  id-token: write
  contents: write
  pull-requests: write

jobs:
  release:
    if: ${{ github.repository_owner == 'shadcn-ui' }}
    name: Create a PR for release workflow
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Use PNPM
        uses: pnpm/action-setup@v4
        with:
          version: 9.0.6

      - name: Use Node.js 20
        uses: actions/setup-node@v4
        with:
          node-version: 20
          registry-url: "https://registry.npmjs.org"
          cache: "pnpm"

      - name: Update npm for OIDC support
        run: npm install -g npm@latest

      - name: Install NPM Dependencies
        run: pnpm install

      # - name: Check for errors
      #   run: pnpm check

      - name: Build the package
        run: pnpm shadcn:build

      - name: Create Version PR or Publish to NPM
        id: changesets
        uses: changesets/action@v1
        with:
          commit: "chore(release): version packages"
          title: "chore(release): version packages"
          version: node .github/changeset-version.js
          publish: npx changeset publish
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          NODE_ENV: "production"


================================================
FILE: .github/workflows/test.yml
================================================
name: Test

on:
  pull_request:
    branches: ["*"]

jobs:
  test:
    runs-on: ubuntu-latest
    name: pnpm test
    env:
      NEXT_PUBLIC_APP_URL: http://localhost:4000
      NEXT_PUBLIC_V0_URL: https://v0.dev
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 22

      - uses: pnpm/action-setup@v4
        name: Install pnpm
        id: pnpm-install
        with:
          version: 9.0.6
          run_install: false

      - name: Get pnpm store directory
        id: pnpm-cache
        run: |
          echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
      - uses: actions/cache@v3
        name: Setup pnpm cache
        with:
          path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
          key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-store-
      - name: Install dependencies
        run: pnpm install

      - run: pnpm test


================================================
FILE: .github/workflows/validate-registries.yml
================================================
name: Validate Registries

on:
  pull_request:
    paths:
      - "apps/v4/public/r/registries.json"
      - "apps/v4/registry/directory.json"
  push:
    branches:
      - main
    paths:
      - "apps/v4/public/r/registries.json"
      - "apps/v4/registry/directory.json"

jobs:
  check-registry-sync:
    if: github.event_name == 'pull_request'
    runs-on: ubuntu-latest
    name: check-registry-sync
    permissions:
      contents: read
      pull-requests: write
    steps:
      - name: Check changed files
        id: changed
        env:
          GH_TOKEN: ${{ github.token }}
        run: |
          CHANGED_FILES=$(gh pr diff ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --name-only)

          DIRECTORY_CHANGED=false
          REGISTRIES_CHANGED=false

          if echo "$CHANGED_FILES" | grep -q "^apps/v4/registry/directory.json$"; then
            DIRECTORY_CHANGED=true
          fi

          if echo "$CHANGED_FILES" | grep -q "^apps/v4/public/r/registries.json$"; then
            REGISTRIES_CHANGED=true
          fi

          echo "directory_changed=$DIRECTORY_CHANGED" >> $GITHUB_OUTPUT
          echo "registries_changed=$REGISTRIES_CHANGED" >> $GITHUB_OUTPUT

      - name: Flag missing registries.json update
        if: steps.changed.outputs.directory_changed == 'true' && steps.changed.outputs.registries_changed == 'false'
        env:
          GH_TOKEN: ${{ github.token }}
        run: |
          gh pr edit ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --add-label "registries: invalid"
          gh pr comment ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --body "can you run \`pnpm registry:build\` and commit the json files please?"
          exit 1

  validate:
    runs-on: ubuntu-latest
    name: pnpm validate:registries
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 20

      - name: Block reserved registry namespaces
        env:
          RESERVED_NAMESPACES: "@shadcn,@ui,@blocks,@components,@block,@component,@util,@utils,@registry,@lib,@hook,@hooks,@theme,@themes,@chart,@charts"
        run: |
          node <<'EOF'
          const fs = require("node:fs")

          const files = [
            "apps/v4/public/r/registries.json",
            "apps/v4/registry/directory.json",
          ]
          const reservedNamespaces = new Set(
            process.env.RESERVED_NAMESPACES.split(",").filter(Boolean)
          )

          function readNames(filePath) {
            return JSON.parse(fs.readFileSync(filePath, "utf8")).map(
              (entry) => entry.name
            )
          }

          const violations = files.flatMap((filePath) => {
            return readNames(filePath)
              .filter((name) => reservedNamespaces.has(name))
              .map((name) => `${filePath}: ${name}`)
          })

          if (violations.length > 0) {
            console.error("Reserved registry namespaces are not allowed:")

            for (const violation of violations) {
              console.error(`- ${violation}`)
            }

            process.exit(1)
          }
          EOF

      - uses: pnpm/action-setup@v4
        name: Install pnpm
        id: pnpm-install
        with:
          version: 9.0.6
          run_install: false

      - name: Get pnpm store directory
        id: pnpm-cache
        run: |
          echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
      - uses: actions/cache@v3
        name: Setup pnpm cache
        with:
          path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
          key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-store-
      - name: Install dependencies
        run: pnpm install

      - name: Validate registries
        run: pnpm --filter=v4 validate:registries


================================================
FILE: .gitignore
================================================
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
node_modules
.pnp
.pnp.js

# testing
coverage

# next.js
.next/
out/
build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local

# turbo
.turbo

.contentlayer
tsconfig.tsbuildinfo

# ide
.idea
.fleet
.vscode

.notes
.playwright-mcp
shadcn-workspace


================================================
FILE: .kodiak.toml
================================================
# .kodiak.toml
version = 1

[merge]
automerge_label = "automerge"
require_automerge_label = true
method = "squash"
delete_branch_on_merge = true
optimistic_updates = false
prioritize_ready_to_merge = true
notify_on_conflict = true

[merge.message]
title = "pull_request_title"
body = "pull_request_body"
include_pr_number = true
body_type = "markdown"
strip_html_comments = true


================================================
FILE: .npmrc
================================================
auto-install-peers=true
link-workspace-packages=true


================================================
FILE: .nvmrc
================================================
v20.5.1


================================================
FILE: .prettierignore
================================================
dist
node_modules
.next
build
.contentlayer
**/fixtures
deprecated
apps/v4/registry/styles/**/*.css


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

Thanks for your interest in contributing to ui.shadcn.com. We're happy to have you here.

Please take a moment to review this document before submitting your first pull request. We also strongly recommend that you check for open issues and pull requests to see if someone else is working on something similar.

If you need any help, feel free to reach out to [@shadcn](https://twitter.com/shadcn).

## About this repository

This repository is a monorepo.

- We use [pnpm](https://pnpm.io) and [`workspaces`](https://pnpm.io/workspaces) for development.
- We use [Turborepo](https://turbo.build/repo) as our build system.
- We use [changesets](https://github.com/changesets/changesets) for managing releases.

## Structure

This repository is structured as follows:

```
apps
└── v4
    ├── app
    ├── components
    ├── content
    └── registry
        └── new-york-v4
            ├── example
            └── ui
packages
└── shadcn
```

| Path                 | Description                              |
| -------------------- | ---------------------------------------- |
| `apps/v4/app`        | The Next.js application for the website. |
| `apps/v4/components` | The React components for the website.    |
| `apps/v4/content`    | The content for the website.             |
| `apps/v4/registry`   | The registry for the components.         |
| `packages/shadcn`    | The `shadcn` package.                    |

## Development

### Fork this repo

You can fork this repo by clicking the fork button in the top right corner of this page.

### Clone on your local machine

```bash
git clone https://github.com/your-username/ui.git
```

### Navigate to project directory

```bash
cd ui
```

### Create a new Branch

```bash
git checkout -b my-new-branch
```

### Install dependencies

```bash
pnpm install
```

### Run a workspace

You can use the `pnpm --filter=[WORKSPACE]` command to start the development process for a workspace.

#### Examples

1. To run the `ui.shadcn.com` website:

```bash
pnpm --filter=v4 dev
```

2. To run the `shadcn` package:

```bash
pnpm --filter=shadcn dev
```

## Running the CLI Locally

To run the CLI locally, you can follow the workflow:

1. Start by running the dev server:

   ```bash
   pnpm dev
   ```

2. In another terminal tab, test the CLI by running:

   ```bash
   pnpm shadcn
   ```

   To test the CLI in a specific app, use a command like:

   ```bash
   pnpm shadcn <init | add | ...> -c ~/Desktop/my-app
   ```

This workflow ensures that you are running the most recent version of the registry and testing the CLI properly in your local environment.

## Documentation

The documentation for this project is located in the `v4` workspace. You can run the documentation locally by running the following command:

```bash
pnpm --filter=v4 dev
```

Documentation is written using [MDX](https://mdxjs.com). You can find the documentation files in the `apps/v4/content/docs` directory.

## Components

We use a registry system for developing components. You can find the source code for the components under `apps/v4/registry`. The components are organized by styles.

```bash
apps
└── v4
    └── registry
        └── new-york-v4
            ├── example
            └── ui
```

When adding or modifying components, please ensure that:

1. You make the changes for every style.
2. You update the documentation.
3. You run `pnpm registry:build` to update the registry.

## Commit Convention

Before you create a Pull Request, please check whether your commits comply with
the commit conventions used in this repository.

When you create a commit we kindly ask you to follow the convention
`category(scope or module): message` in your commit message while using one of
the following categories:

- `feat / feature`: all changes that introduce completely new code or new
  features
- `fix`: changes that fix a bug (ideally you will additionally reference an
  issue if present)
- `refactor`: any code related change that is not a fix nor a feature
- `docs`: changing existing or creating new documentation (i.e. README, docs for
  usage of a lib or cli usage)
- `build`: all changes regarding the build of the software, changes to
  dependencies or the addition of new dependencies
- `test`: all changes regarding tests (adding new tests or changing existing
  ones)
- `ci`: all changes regarding the configuration of continuous integration (i.e.
  github actions, ci system)
- `chore`: all changes to the repository that do not fit into any of the above
  categories

  e.g. `feat(components): add new prop to the avatar component`

If you are interested in the detailed specification you can visit
https://www.conventionalcommits.org/ or check out the
[Angular Commit Message Guidelines](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines).

## Requests for new components

If you have a request for a new component, please open a discussion on GitHub. We'll be happy to help you out.

## CLI

The `shadcn` package is a CLI for adding components to your project. You can find the documentation for the CLI [here](https://ui.shadcn.com/docs/cli).

Any changes to the CLI should be made in the `packages/shadcn` directory. If you can, it would be great if you could add tests for your changes.

## Testing

Tests are written using [Vitest](https://vitest.dev). You can run all the tests from the root of the repository.

```bash
pnpm test
```

Please ensure that the tests are passing when submitting a pull request. If you're adding new features, please include tests.


================================================
FILE: LICENSE.md
================================================
MIT License

Copyright (c) 2023 shadcn

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
# shadcn/ui

A set of beautifully designed components that you can customize, extend, and build on. Start here then make it your own. Open Source. Open Code. **Use this to build your own component library**.

![hero](apps/v4/public/opengraph-image.png)

## Documentation

Visit https://ui.shadcn.com/docs to view the documentation.

## Contributing

Please read the [contributing guide](/CONTRIBUTING.md).

## License

Licensed under the [MIT license](./LICENSE.md).


================================================
FILE: SECURITY.md
================================================
# Security Policy

If you believe you have found a security vulnerability, we encourage you to let us know right away.

We will investigate all legitimate reports and do our best to quickly fix the problem.

Our preference is that you make use of GitHub's private vulnerability reporting feature to disclose potential security vulnerabilities in our Open Source Software. 

To do this, please visit the security tab of the repository and click the [Report a vulnerability](https://github.com/shadcn-ui/ui/security/advisories/new) button.


================================================
FILE: apps/v4/.env.example
================================================
NEXT_PUBLIC_V0_URL=https://v0.dev
NEXT_PUBLIC_APP_URL=http://localhost:4000

================================================
FILE: apps/v4/.gitignore
================================================
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*
!.env.example

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts


# generated content
.contentlayer
.content-collections
.source


================================================
FILE: apps/v4/.prettierignore
================================================
dist
node_modules
.next
build
.contentlayer
registry/__index__.tsx
content/docs/components/calendar.mdx
registry/styles/**/*.css


================================================
FILE: apps/v4/README.md
================================================
This is a wip registry for the `shadcn` canary version. It has React 19 and Tailwind v4 components.


================================================
FILE: apps/v4/app/(app)/(root)/components/appearance-settings.tsx
================================================
"use client"

import * as React from "react"
import { Button } from "@/examples/radix/ui/button"
import { ButtonGroup } from "@/examples/radix/ui/button-group"
import {
  Field,
  FieldContent,
  FieldDescription,
  FieldGroup,
  FieldLabel,
  FieldLegend,
  FieldSeparator,
  FieldSet,
  FieldTitle,
} from "@/examples/radix/ui/field"
import { Input } from "@/examples/radix/ui/input"
import { RadioGroup, RadioGroupItem } from "@/examples/radix/ui/radio-group"
import { Switch } from "@/examples/radix/ui/switch"
import { IconMinus, IconPlus } from "@tabler/icons-react"

export function AppearanceSettings() {
  const [gpuCount, setGpuCount] = React.useState(8)

  const handleGpuAdjustment = React.useCallback((adjustment: number) => {
    setGpuCount((prevCount) =>
      Math.max(1, Math.min(99, prevCount + adjustment))
    )
  }, [])

  const handleGpuInputChange = React.useCallback(
    (e: React.ChangeEvent<HTMLInputElement>) => {
      const value = parseInt(e.target.value, 10)
      if (!isNaN(value) && value >= 1 && value <= 99) {
        setGpuCount(value)
      }
    },
    []
  )

  return (
    <FieldSet>
      <FieldGroup>
        <FieldSet>
          <FieldLegend>Compute Environment</FieldLegend>
          <FieldDescription>
            Select the compute environment for your cluster.
          </FieldDescription>
          <RadioGroup defaultValue="kubernetes">
            <FieldLabel htmlFor="kubernetes-r2h">
              <Field orientation="horizontal">
                <FieldContent>
                  <FieldTitle>Kubernetes</FieldTitle>
                  <FieldDescription>
                    Run GPU workloads on a K8s configured cluster. This is the
                    default.
                  </FieldDescription>
                </FieldContent>
                <RadioGroupItem
                  value="kubernetes"
                  id="kubernetes-r2h"
                  aria-label="Kubernetes"
                />
              </Field>
            </FieldLabel>
            <FieldLabel htmlFor="vm-z4k">
              <Field orientation="horizontal">
                <FieldContent>
                  <FieldTitle>Virtual Machine</FieldTitle>
                  <FieldDescription>
                    Access a VM configured cluster to run workloads. (Coming
                    soon)
                  </FieldDescription>
                </FieldContent>
                <RadioGroupItem
                  value="vm"
                  id="vm-z4k"
                  aria-label="Virtual Machine"
                />
              </Field>
            </FieldLabel>
          </RadioGroup>
        </FieldSet>
        <FieldSeparator />
        <Field orientation="horizontal">
          <FieldContent>
            <FieldLabel htmlFor="number-of-gpus-f6l">Number of GPUs</FieldLabel>
            <FieldDescription>You can add more later.</FieldDescription>
          </FieldContent>
          <ButtonGroup>
            <Input
              id="number-of-gpus-f6l"
              value={gpuCount}
              onChange={handleGpuInputChange}
              size={3}
              className="h-7 w-14! font-mono"
              maxLength={3}
            />
            <Button
              variant="outline"
              size="icon-sm"
              type="button"
              aria-label="Decrement"
              onClick={() => handleGpuAdjustment(-1)}
              disabled={gpuCount <= 1}
            >
              <IconMinus />
            </Button>
            <Button
              variant="outline"
              size="icon-sm"
              type="button"
              aria-label="Increment"
              onClick={() => handleGpuAdjustment(1)}
              disabled={gpuCount >= 99}
            >
              <IconPlus />
            </Button>
          </ButtonGroup>
        </Field>
        <FieldSeparator />
        <Field orientation="horizontal">
          <FieldContent>
            <FieldLabel htmlFor="tinting">Wallpaper Tinting</FieldLabel>
            <FieldDescription>
              Allow the wallpaper to be tinted.
            </FieldDescription>
          </FieldContent>
          <Switch id="tinting" defaultChecked />
        </Field>
      </FieldGroup>
    </FieldSet>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/button-group-demo.tsx
================================================
"use client"

import * as React from "react"
import { Button } from "@/examples/radix/ui/button"
import { ButtonGroup } from "@/examples/radix/ui/button-group"
import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuGroup,
  DropdownMenuItem,
  DropdownMenuRadioGroup,
  DropdownMenuRadioItem,
  DropdownMenuSeparator,
  DropdownMenuSub,
  DropdownMenuSubContent,
  DropdownMenuSubTrigger,
  DropdownMenuTrigger,
} from "@/examples/radix/ui/dropdown-menu"
import {
  ArchiveIcon,
  ArrowLeftIcon,
  CalendarPlusIcon,
  ClockIcon,
  ListFilterIcon,
  MailCheckIcon,
  MoreHorizontalIcon,
  TagIcon,
  Trash2Icon,
} from "lucide-react"

export function ButtonGroupDemo() {
  const [label, setLabel] = React.useState("personal")

  return (
    <ButtonGroup>
      <ButtonGroup className="hidden sm:flex">
        <Button variant="outline" size="icon-sm" aria-label="Go Back">
          <ArrowLeftIcon />
        </Button>
      </ButtonGroup>
      <ButtonGroup>
        <Button variant="outline" size="sm">
          Archive
        </Button>
        <Button variant="outline" size="sm">
          Report
        </Button>
      </ButtonGroup>
      <ButtonGroup>
        <Button variant="outline" size="sm">
          Snooze
        </Button>
        <DropdownMenu>
          <DropdownMenuTrigger asChild>
            <Button variant="outline" size="icon-sm" aria-label="More Options">
              <MoreHorizontalIcon />
            </Button>
          </DropdownMenuTrigger>
          <DropdownMenuContent align="end" className="w-48">
            <DropdownMenuGroup>
              <DropdownMenuItem>
                <MailCheckIcon />
                Mark as Read
              </DropdownMenuItem>
              <DropdownMenuItem>
                <ArchiveIcon />
                Archive
              </DropdownMenuItem>
            </DropdownMenuGroup>
            <DropdownMenuSeparator />
            <DropdownMenuGroup>
              <DropdownMenuItem>
                <ClockIcon />
                Snooze
              </DropdownMenuItem>
              <DropdownMenuItem>
                <CalendarPlusIcon />
                Add to Calendar
              </DropdownMenuItem>
              <DropdownMenuItem>
                <ListFilterIcon />
                Add to List
              </DropdownMenuItem>
              <DropdownMenuSub>
                <DropdownMenuSubTrigger>
                  <TagIcon />
                  Label As...
                </DropdownMenuSubTrigger>
                <DropdownMenuSubContent>
                  <DropdownMenuRadioGroup
                    value={label}
                    onValueChange={setLabel}
                  >
                    <DropdownMenuRadioItem value="personal">
                      Personal
                    </DropdownMenuRadioItem>
                    <DropdownMenuRadioItem value="work">
                      Work
                    </DropdownMenuRadioItem>
                    <DropdownMenuRadioItem value="other">
                      Other
                    </DropdownMenuRadioItem>
                  </DropdownMenuRadioGroup>
                </DropdownMenuSubContent>
              </DropdownMenuSub>
            </DropdownMenuGroup>
            <DropdownMenuSeparator />
            <DropdownMenuGroup>
              <DropdownMenuItem variant="destructive">
                <Trash2Icon />
                Trash
              </DropdownMenuItem>
            </DropdownMenuGroup>
          </DropdownMenuContent>
        </DropdownMenu>
      </ButtonGroup>
    </ButtonGroup>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/button-group-input-group.tsx
================================================
"use client"

import * as React from "react"
import { Button } from "@/examples/radix/ui/button"
import { ButtonGroup } from "@/examples/radix/ui/button-group"
import {
  InputGroup,
  InputGroupAddon,
  InputGroupButton,
  InputGroupInput,
} from "@/examples/radix/ui/input-group"
import {
  Tooltip,
  TooltipContent,
  TooltipTrigger,
} from "@/examples/radix/ui/tooltip"
import { AudioLinesIcon, PlusIcon } from "lucide-react"

export function ButtonGroupInputGroup() {
  const [voiceEnabled, setVoiceEnabled] = React.useState(false)
  return (
    <ButtonGroup className="[--radius:9999rem]">
      <ButtonGroup>
        <Button variant="outline" size="icon" aria-label="Add">
          <PlusIcon />
        </Button>
      </ButtonGroup>
      <ButtonGroup className="flex-1">
        <InputGroup>
          <InputGroupInput
            placeholder={
              voiceEnabled ? "Record and send audio..." : "Send a message..."
            }
            disabled={voiceEnabled}
          />
          <InputGroupAddon align="inline-end">
            <Tooltip>
              <TooltipTrigger asChild>
                <InputGroupButton
                  onClick={() => setVoiceEnabled(!voiceEnabled)}
                  data-active={voiceEnabled}
                  className="data-[active=true]:bg-primary data-[active=true]:text-primary-foreground"
                  aria-pressed={voiceEnabled}
                  size="icon-xs"
                  aria-label="Voice Mode"
                >
                  <AudioLinesIcon />
                </InputGroupButton>
              </TooltipTrigger>
              <TooltipContent>Voice Mode</TooltipContent>
            </Tooltip>
          </InputGroupAddon>
        </InputGroup>
      </ButtonGroup>
    </ButtonGroup>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/button-group-nested.tsx
================================================
"use client"

import { Button } from "@/examples/radix/ui/button"
import { ButtonGroup } from "@/examples/radix/ui/button-group"
import { ArrowLeftIcon, ArrowRightIcon } from "lucide-react"

export function ButtonGroupNested() {
  return (
    <ButtonGroup>
      <ButtonGroup>
        <Button variant="outline" size="sm">
          1
        </Button>
        <Button variant="outline" size="sm">
          2
        </Button>
        <Button variant="outline" size="sm">
          3
        </Button>
      </ButtonGroup>
      <ButtonGroup>
        <Button variant="outline" size="icon-sm" aria-label="Previous">
          <ArrowLeftIcon />
        </Button>
        <Button variant="outline" size="icon-sm" aria-label="Next">
          <ArrowRightIcon />
        </Button>
      </ButtonGroup>
    </ButtonGroup>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/button-group-popover.tsx
================================================
import { Button } from "@/examples/radix/ui/button"
import { ButtonGroup } from "@/examples/radix/ui/button-group"
import {
  Popover,
  PopoverContent,
  PopoverTrigger,
} from "@/examples/radix/ui/popover"
import { Separator } from "@/examples/radix/ui/separator"
import { Textarea } from "@/examples/radix/ui/textarea"
import { BotIcon, ChevronDownIcon } from "lucide-react"

export function ButtonGroupPopover() {
  return (
    <ButtonGroup>
      <Button variant="outline" size="sm">
        <BotIcon /> Copilot
      </Button>
      <Popover>
        <PopoverTrigger asChild>
          <Button variant="outline" size="icon-sm" aria-label="Open Popover">
            <ChevronDownIcon />
          </Button>
        </PopoverTrigger>
        <PopoverContent align="end" className="gap-0 rounded-xl p-0 text-sm">
          <div className="px-4 py-3">
            <div className="text-sm font-medium">Agent Tasks</div>
          </div>
          <Separator />
          <div className="p-4 text-sm *:[p:not(:last-child)]:mb-2">
            <Textarea
              placeholder="Describe your task in natural language."
              className="mb-4 resize-none"
            />
            <p className="font-medium">Start a new task with Copilot</p>
            <p className="text-muted-foreground">
              Describe your task in natural language. Copilot will work in the
              background and open a pull request for your review.
            </p>
          </div>
        </PopoverContent>
      </Popover>
    </ButtonGroup>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/empty-avatar-group.tsx
================================================
import {
  Avatar,
  AvatarFallback,
  AvatarGroup,
  AvatarImage,
} from "@/examples/radix/ui/avatar"
import { Button } from "@/examples/radix/ui/button"
import {
  Empty,
  EmptyContent,
  EmptyDescription,
  EmptyHeader,
  EmptyMedia,
  EmptyTitle,
} from "@/examples/radix/ui/empty"
import { PlusIcon } from "lucide-react"

export function EmptyAvatarGroup() {
  return (
    <Empty className="flex-none border py-10">
      <EmptyHeader>
        <EmptyMedia>
          <AvatarGroup className="grayscale">
            <Avatar>
              <AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
              <AvatarFallback>CN</AvatarFallback>
            </Avatar>
            <Avatar>
              <AvatarImage
                src="https://github.com/maxleiter.png"
                alt="@maxleiter"
              />
              <AvatarFallback>LR</AvatarFallback>
            </Avatar>
            <Avatar>
              <AvatarImage
                src="https://github.com/evilrabbit.png"
                alt="@evilrabbit"
              />
              <AvatarFallback>ER</AvatarFallback>
            </Avatar>
          </AvatarGroup>
        </EmptyMedia>
        <EmptyTitle>No Team Members</EmptyTitle>
        <EmptyDescription>
          Invite your team to collaborate on this project.
        </EmptyDescription>
      </EmptyHeader>
      <EmptyContent>
        <Button size="sm">
          <PlusIcon />
          Invite Members
        </Button>
      </EmptyContent>
    </Empty>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/empty-input-group.tsx
================================================
import { SearchIcon } from "lucide-react"

import {
  Empty,
  EmptyContent,
  EmptyDescription,
  EmptyHeader,
  EmptyTitle,
} from "@/registry/new-york-v4/ui/empty"
import {
  InputGroup,
  InputGroupAddon,
  InputGroupInput,
} from "@/registry/new-york-v4/ui/input-group"
import { Kbd } from "@/registry/new-york-v4/ui/kbd"

export function EmptyInputGroup() {
  return (
    <Empty>
      <EmptyHeader>
        <EmptyTitle>404 - Not Found</EmptyTitle>
        <EmptyDescription>
          The page you&apos;re looking for doesn&apos;t exist. Try searching for
          what you need below.
        </EmptyDescription>
      </EmptyHeader>
      <EmptyContent>
        <InputGroup className="w-3/4">
          <InputGroupInput placeholder="Try searching for pages..." />
          <InputGroupAddon>
            <SearchIcon />
          </InputGroupAddon>
          <InputGroupAddon align="inline-end">
            <Kbd>/</Kbd>
          </InputGroupAddon>
        </InputGroup>
        <EmptyDescription>
          Need help? <a href="#">Contact support</a>
        </EmptyDescription>
      </EmptyContent>
    </Empty>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/field-checkbox.tsx
================================================
import { Checkbox } from "@/examples/radix/ui/checkbox"
import { Field, FieldLabel } from "@/examples/radix/ui/field"

export function FieldCheckbox() {
  return (
    <FieldLabel htmlFor="checkbox-demo">
      <Field orientation="horizontal">
        <Checkbox id="checkbox-demo" defaultChecked />
        <FieldLabel htmlFor="checkbox-demo" className="line-clamp-1">
          I agree to the terms and conditions
        </FieldLabel>
      </Field>
    </FieldLabel>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/field-choice-card.tsx
================================================
import {
  Field,
  FieldContent,
  FieldDescription,
  FieldGroup,
  FieldLabel,
  FieldSet,
  FieldTitle,
} from "@/registry/new-york-v4/ui/field"
import {
  RadioGroup,
  RadioGroupItem,
} from "@/registry/new-york-v4/ui/radio-group"

export function FieldChoiceCard() {
  return (
    <div className="w-full max-w-md">
      <FieldGroup>
        <FieldSet>
          <FieldLabel htmlFor="compute-environment-p8w">
            Compute Environment
          </FieldLabel>
          <FieldDescription>
            Select the compute environment for your cluster.
          </FieldDescription>
          <RadioGroup defaultValue="kubernetes">
            <FieldLabel htmlFor="kubernetes-r2h">
              <Field orientation="horizontal">
                <RadioGroupItem
                  value="kubernetes"
                  id="kubernetes-r2h"
                  aria-label="Kubernetes"
                />
                <FieldContent>
                  <FieldTitle>Kubernetes</FieldTitle>
                  <FieldDescription>
                    Run GPU workloads on a K8s configured cluster.
                  </FieldDescription>
                </FieldContent>
              </Field>
            </FieldLabel>
            <FieldLabel htmlFor="vm-z4k">
              <Field orientation="horizontal">
                <RadioGroupItem
                  value="vm"
                  id="vm-z4k"
                  aria-label="Virtual Machine"
                />
                <FieldContent>
                  <FieldTitle>Virtual Machine</FieldTitle>
                  <FieldDescription>
                    Access a VM configured cluster to run workloads.
                  </FieldDescription>
                </FieldContent>
              </Field>
            </FieldLabel>
          </RadioGroup>
        </FieldSet>
      </FieldGroup>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/field-demo.tsx
================================================
import { Button } from "@/examples/radix/ui/button"
import { Checkbox } from "@/examples/radix/ui/checkbox"
import {
  Field,
  FieldDescription,
  FieldGroup,
  FieldLabel,
  FieldLegend,
  FieldSeparator,
  FieldSet,
} from "@/examples/radix/ui/field"
import { Input } from "@/examples/radix/ui/input"
import {
  Select,
  SelectContent,
  SelectGroup,
  SelectItem,
  SelectTrigger,
  SelectValue,
} from "@/examples/radix/ui/select"
import { Textarea } from "@/examples/radix/ui/textarea"

export function FieldDemo() {
  return (
    <div className="w-full max-w-md rounded-xl border p-6">
      <form>
        <FieldGroup>
          <FieldSet>
            <FieldLegend>Payment Method</FieldLegend>
            <FieldDescription>
              All transactions are secure and encrypted
            </FieldDescription>
            <FieldGroup>
              <Field>
                <FieldLabel htmlFor="checkout-7j9-card-name-43j">
                  Name on Card
                </FieldLabel>
                <Input
                  id="checkout-7j9-card-name-43j"
                  placeholder="John Doe"
                  required
                />
              </Field>
              <div className="grid grid-cols-3 gap-4">
                <Field className="col-span-2">
                  <FieldLabel htmlFor="checkout-7j9-card-number-uw1">
                    Card Number
                  </FieldLabel>
                  <Input
                    id="checkout-7j9-card-number-uw1"
                    placeholder="1234 5678 9012 3456"
                    required
                  />
                  <FieldDescription>
                    Enter your 16-digit number.
                  </FieldDescription>
                </Field>
                <Field className="col-span-1">
                  <FieldLabel htmlFor="checkout-7j9-cvv">CVV</FieldLabel>
                  <Input id="checkout-7j9-cvv" placeholder="123" required />
                </Field>
              </div>
              <div className="grid grid-cols-2 gap-4">
                <Field>
                  <FieldLabel htmlFor="checkout-7j9-exp-month-ts6">
                    Month
                  </FieldLabel>
                  <Select defaultValue="">
                    <SelectTrigger id="checkout-7j9-exp-month-ts6">
                      <SelectValue placeholder="MM" />
                    </SelectTrigger>
                    <SelectContent>
                      <SelectGroup>
                        <SelectItem value="01">01</SelectItem>
                        <SelectItem value="02">02</SelectItem>
                        <SelectItem value="03">03</SelectItem>
                        <SelectItem value="04">04</SelectItem>
                        <SelectItem value="05">05</SelectItem>
                        <SelectItem value="06">06</SelectItem>
                        <SelectItem value="07">07</SelectItem>
                        <SelectItem value="08">08</SelectItem>
                        <SelectItem value="09">09</SelectItem>
                        <SelectItem value="10">10</SelectItem>
                        <SelectItem value="11">11</SelectItem>
                        <SelectItem value="12">12</SelectItem>
                      </SelectGroup>
                    </SelectContent>
                  </Select>
                </Field>
                <Field>
                  <FieldLabel htmlFor="checkout-7j9-exp-year-f59">
                    Year
                  </FieldLabel>
                  <Select defaultValue="">
                    <SelectTrigger id="checkout-7j9-exp-year-f59">
                      <SelectValue placeholder="YYYY" />
                    </SelectTrigger>
                    <SelectContent>
                      <SelectGroup>
                        <SelectItem value="2024">2024</SelectItem>
                        <SelectItem value="2025">2025</SelectItem>
                        <SelectItem value="2026">2026</SelectItem>
                        <SelectItem value="2027">2027</SelectItem>
                        <SelectItem value="2028">2028</SelectItem>
                        <SelectItem value="2029">2029</SelectItem>
                      </SelectGroup>
                    </SelectContent>
                  </Select>
                </Field>
              </div>
            </FieldGroup>
          </FieldSet>
          <FieldSeparator />
          <FieldSet>
            <FieldLegend>Billing Address</FieldLegend>
            <FieldDescription>
              The billing address associated with your payment method
            </FieldDescription>
            <FieldGroup>
              <Field orientation="horizontal">
                <Checkbox
                  id="checkout-7j9-same-as-shipping-wgm"
                  defaultChecked
                />
                <FieldLabel
                  htmlFor="checkout-7j9-same-as-shipping-wgm"
                  className="font-normal"
                >
                  Same as shipping address
                </FieldLabel>
              </Field>
            </FieldGroup>
          </FieldSet>
          <FieldSeparator />
          <FieldSet>
            <FieldGroup>
              <Field>
                <FieldLabel htmlFor="checkout-7j9-optional-comments">
                  Comments
                </FieldLabel>
                <Textarea
                  id="checkout-7j9-optional-comments"
                  placeholder="Add any additional comments"
                />
              </Field>
            </FieldGroup>
          </FieldSet>
          <Field orientation="horizontal">
            <Button type="submit">Submit</Button>
            <Button variant="outline" type="button">
              Cancel
            </Button>
          </Field>
        </FieldGroup>
      </form>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/field-hear.tsx
================================================
import { Card, CardContent } from "@/examples/radix/ui/card"
import { Checkbox } from "@/examples/radix/ui/checkbox"
import {
  Field,
  FieldDescription,
  FieldGroup,
  FieldLabel,
  FieldLegend,
  FieldSet,
  FieldTitle,
} from "@/examples/radix/ui/field"

const options = [
  {
    label: "Social Media",
    value: "social-media",
  },

  {
    label: "Search Engine",
    value: "search-engine",
  },
  {
    label: "Referral",
    value: "referral",
  },
  {
    label: "Other",
    value: "other",
  },
]

export function FieldHear() {
  return (
    <Card className="py-4 shadow-none">
      <CardContent className="px-4">
        <form>
          <FieldGroup>
            <FieldSet className="gap-4">
              <FieldLegend>How did you hear about us?</FieldLegend>
              <FieldDescription className="line-clamp-1">
                Select the option that best describes how you heard about us.
              </FieldDescription>
              <FieldGroup className="flex flex-row flex-wrap gap-2 [--radius:9999rem]">
                {options.map((option) => (
                  <FieldLabel
                    htmlFor={option.value}
                    key={option.value}
                    className="w-fit!"
                  >
                    <Field
                      orientation="horizontal"
                      className="gap-1.5 overflow-hidden px-3! py-1.5! transition-all duration-100 ease-linear group-has-data-[state=checked]/field-label:px-2!"
                    >
                      <Checkbox
                        value={option.value}
                        id={option.value}
                        defaultChecked={option.value === "social-media"}
                        className="-ml-6 -translate-x-1 rounded-full transition-all duration-100 ease-linear data-[state=checked]:ml-0 data-[state=checked]:translate-x-0"
                      />
                      <FieldTitle>{option.label}</FieldTitle>
                    </Field>
                  </FieldLabel>
                ))}
              </FieldGroup>
            </FieldSet>
          </FieldGroup>
        </form>
      </CardContent>
    </Card>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/field-slider.tsx
================================================
"use client"

import { useState } from "react"
import { Field, FieldDescription, FieldTitle } from "@/examples/radix/ui/field"
import { Slider } from "@/examples/radix/ui/slider"

export function FieldSlider() {
  const [value, setValue] = useState([200, 800])
  return (
    <div className="w-full max-w-md">
      <Field>
        <FieldTitle>Price Range</FieldTitle>
        <FieldDescription>
          Set your budget range ($
          <span className="font-medium tabular-nums">{value[0]}</span> -{" "}
          <span className="font-medium tabular-nums">{value[1]}</span>).
        </FieldDescription>
        <Slider
          value={value}
          onValueChange={setValue}
          max={1000}
          min={0}
          step={10}
          className="mt-2 w-full"
          aria-label="Price Range"
        />
      </Field>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/index.tsx
================================================
import { FieldSeparator } from "@/examples/radix/ui/field"

import { AppearanceSettings } from "./appearance-settings"
import { ButtonGroupDemo } from "./button-group-demo"
import { ButtonGroupInputGroup } from "./button-group-input-group"
import { ButtonGroupNested } from "./button-group-nested"
import { ButtonGroupPopover } from "./button-group-popover"
import { EmptyAvatarGroup } from "./empty-avatar-group"
import { FieldCheckbox } from "./field-checkbox"
import { FieldDemo } from "./field-demo"
import { FieldHear } from "./field-hear"
import { FieldSlider } from "./field-slider"
import { InputGroupButtonExample } from "./input-group-button"
import { InputGroupDemo } from "./input-group-demo"
import { ItemDemo } from "./item-demo"
import { NotionPromptForm } from "./notion-prompt-form"
import { SpinnerBadge } from "./spinner-badge"
import { SpinnerEmpty } from "./spinner-empty"

export function RootComponents() {
  return (
    <div className="mx-auto grid gap-8 py-1 theme-container md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 xl:gap-6 2xl:gap-8">
      <div className="flex flex-col gap-6 *:[div]:w-full *:[div]:max-w-full">
        <FieldDemo />
      </div>
      <div className="flex flex-col gap-6 *:[div]:w-full *:[div]:max-w-full">
        <EmptyAvatarGroup />
        <SpinnerBadge />
        <ButtonGroupInputGroup />
        <FieldSlider />
        <InputGroupDemo />
      </div>
      <div className="flex flex-col gap-6 *:[div]:w-full *:[div]:max-w-full">
        <InputGroupButtonExample />
        <ItemDemo />
        <FieldSeparator className="my-4">Appearance Settings</FieldSeparator>
        <AppearanceSettings />
      </div>
      <div className="order-first flex flex-col gap-6 lg:hidden xl:order-last xl:flex *:[div]:w-full *:[div]:max-w-full">
        <NotionPromptForm />
        <ButtonGroupDemo />
        <FieldCheckbox />
        <div className="flex justify-between gap-4">
          <ButtonGroupNested />
          <ButtonGroupPopover />
        </div>
        <FieldHear />
        <SpinnerEmpty />
      </div>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/input-group-button.tsx
================================================
"use client"

import * as React from "react"
import {
  InputGroup,
  InputGroupAddon,
  InputGroupButton,
  InputGroupInput,
} from "@/examples/radix/ui/input-group"
import { Label } from "@/examples/radix/ui/label"
import {
  Popover,
  PopoverContent,
  PopoverTrigger,
} from "@/examples/radix/ui/popover"
import { IconInfoCircle, IconStar } from "@tabler/icons-react"

export function InputGroupButtonExample() {
  const [isFavorite, setIsFavorite] = React.useState(false)

  return (
    <div className="grid w-full max-w-sm gap-6">
      <Label htmlFor="input-secure-19" className="sr-only">
        Input Secure
      </Label>
      <InputGroup className="[--radius:9999px]">
        <InputGroupInput id="input-secure-19" className="pl-0.5!" />
        <Popover>
          <PopoverTrigger asChild>
            <InputGroupAddon>
              <InputGroupButton
                variant="secondary"
                size="icon-xs"
                aria-label="Info"
              >
                <IconInfoCircle />
              </InputGroupButton>
            </InputGroupAddon>
          </PopoverTrigger>
          <PopoverContent
            align="start"
            alignOffset={10}
            className="flex flex-col gap-1 rounded-xl text-sm"
          >
            <p className="font-medium">Your connection is not secure.</p>
            <p>You should not enter any sensitive information on this site.</p>
          </PopoverContent>
        </Popover>
        <InputGroupAddon className="pl-1! text-muted-foreground">
          https://
        </InputGroupAddon>
        <InputGroupAddon align="inline-end">
          <InputGroupButton
            onClick={() => setIsFavorite(!isFavorite)}
            size="icon-xs"
            aria-label="Favorite"
          >
            <IconStar
              data-favorite={isFavorite}
              className="data-[favorite=true]:fill-primary data-[favorite=true]:stroke-primary"
            />
          </InputGroupButton>
        </InputGroupAddon>
      </InputGroup>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/input-group-demo.tsx
================================================
import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuTrigger,
} from "@/examples/radix/ui/dropdown-menu"
import {
  InputGroup,
  InputGroupAddon,
  InputGroupButton,
  InputGroupInput,
  InputGroupText,
  InputGroupTextarea,
} from "@/examples/radix/ui/input-group"
import { Separator } from "@/examples/radix/ui/separator"
import {
  Tooltip,
  TooltipContent,
  TooltipTrigger,
} from "@/examples/radix/ui/tooltip"
import { IconCheck, IconInfoCircle, IconPlus } from "@tabler/icons-react"
import { ArrowUpIcon, Search } from "lucide-react"

export function InputGroupDemo() {
  return (
    <div className="grid w-full max-w-sm gap-6">
      <InputGroup>
        <InputGroupInput placeholder="Search..." />
        <InputGroupAddon>
          <Search />
        </InputGroupAddon>
        <InputGroupAddon align="inline-end">12 results</InputGroupAddon>
      </InputGroup>
      <InputGroup>
        <InputGroupInput placeholder="example.com" className="pl-1!" />
        <InputGroupAddon>
          <InputGroupText>https://</InputGroupText>
        </InputGroupAddon>
        <InputGroupAddon align="inline-end">
          <Tooltip>
            <TooltipTrigger asChild>
              <InputGroupButton
                className="rounded-full"
                size="icon-xs"
                aria-label="Info"
              >
                <IconInfoCircle />
              </InputGroupButton>
            </TooltipTrigger>
            <TooltipContent>This is content in a tooltip.</TooltipContent>
          </Tooltip>
        </InputGroupAddon>
      </InputGroup>
      <InputGroup>
        <InputGroupTextarea placeholder="Ask, Search or Chat..." />
        <InputGroupAddon align="block-end">
          <InputGroupButton
            variant="outline"
            className="rounded-full"
            size="icon-xs"
            aria-label="Add"
          >
            <IconPlus />
          </InputGroupButton>
          <DropdownMenu>
            <DropdownMenuTrigger asChild>
              <InputGroupButton variant="ghost">Auto</InputGroupButton>
            </DropdownMenuTrigger>
            <DropdownMenuContent side="top" align="start">
              <DropdownMenuItem>Auto</DropdownMenuItem>
              <DropdownMenuItem>Agent</DropdownMenuItem>
              <DropdownMenuItem>Manual</DropdownMenuItem>
            </DropdownMenuContent>
          </DropdownMenu>
          <InputGroupText className="ml-auto">52% used</InputGroupText>
          <Separator orientation="vertical" className="h-4!" />
          <InputGroupButton
            variant="default"
            className="rounded-full"
            size="icon-xs"
          >
            <ArrowUpIcon />
            <span className="sr-only">Send</span>
          </InputGroupButton>
        </InputGroupAddon>
      </InputGroup>
      <InputGroup>
        <InputGroupInput placeholder="@shadcn" />
        <InputGroupAddon align="inline-end">
          <div className="flex size-4 items-center justify-center rounded-full bg-primary text-foreground">
            <IconCheck className="size-3 text-white" />
          </div>
        </InputGroupAddon>
      </InputGroup>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/input-group-textarea.tsx
================================================
import {
  IconBrandJavascript,
  IconCopy,
  IconCornerDownLeft,
  IconRefresh,
} from "@tabler/icons-react"

import {
  InputGroup,
  InputGroupAddon,
  InputGroupButton,
  InputGroupText,
  InputGroupTextarea,
} from "@/registry/new-york-v4/ui/input-group"

export function InputGroupTextareaExample() {
  return (
    <div className="grid w-full max-w-md gap-4">
      <InputGroup>
        <InputGroupTextarea
          id="textarea-code-32"
          placeholder="console.log('Hello, world!');"
          className="min-h-[180px]"
        />
        <InputGroupAddon align="block-end" className="border-t">
          <InputGroupText>Line 1, Column 1</InputGroupText>
          <InputGroupButton size="sm" className="ml-auto" variant="default">
            Run <IconCornerDownLeft />
          </InputGroupButton>
        </InputGroupAddon>
        <InputGroupAddon align="block-start" className="border-b">
          <InputGroupText className="font-mono font-medium">
            <IconBrandJavascript />
            script.js
          </InputGroupText>
          <InputGroupButton className="ml-auto">
            <IconRefresh />
          </InputGroupButton>
          <InputGroupButton variant="ghost">
            <IconCopy />
          </InputGroupButton>
        </InputGroupAddon>
      </InputGroup>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/item-avatar.tsx
================================================
import { Plus } from "lucide-react"

import {
  Avatar,
  AvatarFallback,
  AvatarImage,
} from "@/registry/new-york-v4/ui/avatar"
import { Button } from "@/registry/new-york-v4/ui/button"
import {
  Item,
  ItemActions,
  ItemContent,
  ItemDescription,
  ItemMedia,
  ItemTitle,
} from "@/registry/new-york-v4/ui/item"

export function ItemAvatar() {
  return (
    <div className="flex w-full max-w-lg flex-col gap-6">
      <Item variant="outline" className="hidden">
        <ItemMedia>
          <Avatar className="size-10">
            <AvatarImage src="https://github.com/maxleiter.png" />
            <AvatarFallback>LR</AvatarFallback>
          </Avatar>
        </ItemMedia>
        <ItemContent>
          <ItemTitle>Max Leiter</ItemTitle>
          <ItemDescription>Last seen 5 months ago</ItemDescription>
        </ItemContent>
        <ItemActions>
          <Button
            size="icon-sm"
            variant="outline"
            className="rounded-full"
            aria-label="Invite"
          >
            <Plus />
          </Button>
        </ItemActions>
      </Item>
      <Item variant="outline">
        <ItemMedia>
          <div className="flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background *:data-[slot=avatar]:grayscale">
            <Avatar className="hidden sm:flex">
              <AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
              <AvatarFallback>CN</AvatarFallback>
            </Avatar>
            <Avatar className="hidden sm:flex">
              <AvatarImage
                src="https://github.com/maxleiter.png"
                alt="@maxleiter"
              />
              <AvatarFallback>LR</AvatarFallback>
            </Avatar>
            <Avatar>
              <AvatarImage
                src="https://github.com/evilrabbit.png"
                alt="@evilrabbit"
              />
              <AvatarFallback>ER</AvatarFallback>
            </Avatar>
          </div>
        </ItemMedia>
        <ItemContent>
          <ItemTitle>No Team Members</ItemTitle>
          <ItemDescription>Invite your team to collaborate.</ItemDescription>
        </ItemContent>
        <ItemActions>
          <Button size="sm" variant="outline">
            Invite
          </Button>
        </ItemActions>
      </Item>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/item-demo.tsx
================================================
import { Button } from "@/examples/radix/ui/button"
import {
  Item,
  ItemActions,
  ItemContent,
  ItemDescription,
  ItemMedia,
  ItemTitle,
} from "@/examples/radix/ui/item"
import { BadgeCheckIcon, ChevronRightIcon } from "lucide-react"

export function ItemDemo() {
  return (
    <div className="flex w-full max-w-md flex-col gap-6">
      <Item variant="outline">
        <ItemContent>
          <ItemTitle>Two-factor authentication</ItemTitle>
          <ItemDescription className="text-pretty xl:hidden 2xl:block">
            Verify via email or phone number.
          </ItemDescription>
        </ItemContent>
        <ItemActions>
          <Button size="sm">Enable</Button>
        </ItemActions>
      </Item>
      <Item variant="outline" size="sm" asChild>
        <a href="#">
          <ItemMedia>
            <BadgeCheckIcon className="size-5" />
          </ItemMedia>
          <ItemContent>
            <ItemTitle>Your profile has been verified.</ItemTitle>
          </ItemContent>
          <ItemActions>
            <ChevronRightIcon className="size-4" />
          </ItemActions>
        </a>
      </Item>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/notion-prompt-form.tsx
================================================
"use client"

import { useMemo, useState } from "react"
import { Avatar, AvatarFallback, AvatarImage } from "@/examples/radix/ui/avatar"
import { Badge } from "@/examples/radix/ui/badge"
import {
  Command,
  CommandEmpty,
  CommandGroup,
  CommandInput,
  CommandItem,
  CommandList,
} from "@/examples/radix/ui/command"
import {
  DropdownMenu,
  DropdownMenuCheckboxItem,
  DropdownMenuContent,
  DropdownMenuGroup,
  DropdownMenuItem,
  DropdownMenuLabel,
  DropdownMenuSeparator,
  DropdownMenuSub,
  DropdownMenuSubContent,
  DropdownMenuSubTrigger,
  DropdownMenuTrigger,
} from "@/examples/radix/ui/dropdown-menu"
import { Field, FieldLabel } from "@/examples/radix/ui/field"
import {
  InputGroup,
  InputGroupAddon,
  InputGroupButton,
  InputGroupTextarea,
} from "@/examples/radix/ui/input-group"
import {
  Popover,
  PopoverContent,
  PopoverTrigger,
} from "@/examples/radix/ui/popover"
import { Switch } from "@/examples/radix/ui/switch"
import {
  Tooltip,
  TooltipContent,
  TooltipTrigger,
} from "@/examples/radix/ui/tooltip"
import {
  IconApps,
  IconArrowUp,
  IconAt,
  IconBook,
  IconCircleDashedPlus,
  IconPaperclip,
  IconPlus,
  IconWorld,
  IconX,
} from "@tabler/icons-react"

const SAMPLE_DATA = {
  mentionable: [
    {
      type: "page",
      title: "Meeting Notes",
      image: "📝",
    },
    {
      type: "page",
      title: "Project Dashboard",
      image: "📊",
    },
    {
      type: "page",
      title: "Ideas & Brainstorming",
      image: "💡",
    },
    {
      type: "page",
      title: "Calendar & Events",
      image: "📅",
    },
    {
      type: "page",
      title: "Documentation",
      image: "📚",
    },
    {
      type: "page",
      title: "Goals & Objectives",
      image: "🎯",
    },
    {
      type: "page",
      title: "Budget Planning",
      image: "💰",
    },
    {
      type: "page",
      title: "Team Directory",
      image: "👥",
    },
    {
      type: "page",
      title: "Technical Specs",
      image: "🔧",
    },
    {
      type: "page",
      title: "Analytics Report",
      image: "📈",
    },
    {
      type: "user",
      title: "shadcn",
      image: "https://github.com/shadcn.png",
      workspace: "Workspace",
    },
    {
      type: "user",
      title: "maxleiter",
      image: "https://github.com/maxleiter.png",
      workspace: "Workspace",
    },
    {
      type: "user",
      title: "evilrabbit",
      image: "https://github.com/evilrabbit.png",
      workspace: "Workspace",
    },
  ],
  models: [
    {
      name: "Auto",
    },
    {
      name: "Agent Mode",
      badge: "Beta",
    },
    {
      name: "Plan Mode",
    },
  ],
}

function MentionableIcon({
  item,
}: {
  item: (typeof SAMPLE_DATA.mentionable)[0]
}) {
  return item.type === "page" ? (
    <span className="flex size-4 items-center justify-center">
      {item.image}
    </span>
  ) : (
    <Avatar className="size-4">
      <AvatarImage src={item.image} />
      <AvatarFallback>{item.title[0]}</AvatarFallback>
    </Avatar>
  )
}

export function NotionPromptForm() {
  const [mentions, setMentions] = useState<string[]>([])
  const [mentionPopoverOpen, setMentionPopoverOpen] = useState(false)
  const [modelPopoverOpen, setModelPopoverOpen] = useState(false)
  const [selectedModel, setSelectedModel] = useState<
    (typeof SAMPLE_DATA.models)[0]
  >(SAMPLE_DATA.models[0])
  const [scopeMenuOpen, setScopeMenuOpen] = useState(false)

  const grouped = useMemo(() => {
    return SAMPLE_DATA.mentionable.reduce(
      (acc, item) => {
        const isAvailable = !mentions.includes(item.title)

        if (isAvailable) {
          if (!acc[item.type]) {
            acc[item.type] = []
          }
          acc[item.type].push(item)
        }
        return acc
      },
      {} as Record<string, typeof SAMPLE_DATA.mentionable>
    )
  }, [mentions])

  const hasMentions = mentions.length > 0

  return (
    <form>
      <Field>
        <FieldLabel htmlFor="notion-prompt" className="sr-only">
          Prompt
        </FieldLabel>
        <InputGroup className="rounded-xl">
          <InputGroupTextarea
            id="notion-prompt"
            placeholder="Ask, search, or make anything..."
          />
          <InputGroupAddon align="block-start" className="pt-3">
            <Popover
              open={mentionPopoverOpen}
              onOpenChange={setMentionPopoverOpen}
            >
              <Tooltip>
                <TooltipTrigger
                  asChild
                  onFocusCapture={(e) => e.stopPropagation()}
                >
                  <PopoverTrigger asChild>
                    <InputGroupButton
                      variant="outline"
                      size={!hasMentions ? "sm" : "icon-sm"}
                      className="transition-transform"
                    >
                      <IconAt /> {!hasMentions && "Add context"}
                    </InputGroupButton>
                  </PopoverTrigger>
                </TooltipTrigger>
                <TooltipContent>Mention a person, page, or date</TooltipContent>
              </Tooltip>
              <PopoverContent className="p-0" align="start">
                <Command>
                  <CommandInput placeholder="Search pages..." />
                  <CommandList>
                    <CommandEmpty>No pages found</CommandEmpty>
                    {Object.entries(grouped).map(([type, items]) => (
                      <CommandGroup
                        key={type}
                        heading={type === "page" ? "Pages" : "Users"}
                      >
                        {items.map((item) => (
                          <CommandItem
                            key={item.title}
                            value={item.title}
                            onSelect={(currentValue) => {
                              setMentions((prev) => [...prev, currentValue])
                              setMentionPopoverOpen(false)
                            }}
                            className="rounded-lg"
                          >
                            <MentionableIcon item={item} />
                            {item.title}
                          </CommandItem>
                        ))}
                      </CommandGroup>
                    ))}
                  </CommandList>
                </Command>
              </PopoverContent>
            </Popover>
            <div className="-m-1.5 no-scrollbar flex gap-1 overflow-y-auto p-1.5">
              {mentions.map((mention) => {
                const item = SAMPLE_DATA.mentionable.find(
                  (item) => item.title === mention
                )

                if (!item) {
                  return null
                }

                return (
                  <InputGroupButton
                    key={mention}
                    size="sm"
                    variant="secondary"
                    className="rounded-full pl-2!"
                    onClick={() => {
                      setMentions((prev) => prev.filter((m) => m !== mention))
                    }}
                  >
                    <MentionableIcon item={item} />
                    {item.title}
                    <IconX />
                  </InputGroupButton>
                )
              })}
            </div>
          </InputGroupAddon>
          <InputGroupAddon align="block-end" className="gap-1">
            <Tooltip>
              <TooltipTrigger asChild>
                <InputGroupButton
                  size="icon-sm"
                  className="rounded-full"
                  aria-label="Attach file"
                >
                  <IconPaperclip />
                </InputGroupButton>
              </TooltipTrigger>
              <TooltipContent>Attach file</TooltipContent>
            </Tooltip>
            <DropdownMenu
              open={modelPopoverOpen}
              onOpenChange={setModelPopoverOpen}
            >
              <Tooltip>
                <TooltipTrigger asChild>
                  <DropdownMenuTrigger asChild>
                    <InputGroupButton size="sm" className="rounded-full">
                      {selectedModel.name}
                    </InputGroupButton>
                  </DropdownMenuTrigger>
                </TooltipTrigger>
                <TooltipContent>Select AI model</TooltipContent>
              </Tooltip>
              <DropdownMenuContent
                side="top"
                align="start"
                className="min-w-48"
              >
                <DropdownMenuGroup>
                  <DropdownMenuLabel className="text-xs text-muted-foreground">
                    Select Agent Mode
                  </DropdownMenuLabel>
                  {SAMPLE_DATA.models.map((model) => (
                    <DropdownMenuCheckboxItem
                      key={model.name}
                      checked={model.name === selectedModel.name}
                      onCheckedChange={(checked) => {
                        if (checked) {
                          setSelectedModel(model)
                        }
                      }}
                      className="pl-2 *:[span:first-child]:right-2 *:[span:first-child]:left-auto"
                    >
                      {model.name}
                      {model.badge && (
                        <Badge
                          variant="secondary"
                          className="h-5 rounded-sm bg-blue-100 px-1 text-xs text-blue-800 dark:bg-blue-900 dark:text-blue-100"
                        >
                          {model.badge}
                        </Badge>
                      )}
                    </DropdownMenuCheckboxItem>
                  ))}
                </DropdownMenuGroup>
              </DropdownMenuContent>
            </DropdownMenu>
            <DropdownMenu open={scopeMenuOpen} onOpenChange={setScopeMenuOpen}>
              <DropdownMenuTrigger asChild>
                <InputGroupButton size="sm" className="rounded-full">
                  <IconWorld /> All Sources
                </InputGroupButton>
              </DropdownMenuTrigger>
              <DropdownMenuContent side="top" align="end" className="w-72">
                <DropdownMenuGroup>
                  <DropdownMenuItem
                    asChild
                    onSelect={(e) => e.preventDefault()}
                  >
                    <label htmlFor="web-search">
                      <IconWorld /> Web Search{" "}
                      <Switch
                        id="web-search"
                        className="ml-auto"
                        defaultChecked
                      />
                    </label>
                  </DropdownMenuItem>
                </DropdownMenuGroup>
                <DropdownMenuSeparator />
                <DropdownMenuGroup>
                  <DropdownMenuItem
                    asChild
                    onSelect={(e) => e.preventDefault()}
                  >
                    <label htmlFor="apps">
                      <IconApps /> Apps and Integrations
                      <Switch id="apps" className="ml-auto" defaultChecked />
                    </label>
                  </DropdownMenuItem>
                  <DropdownMenuItem>
                    <IconCircleDashedPlus /> All Sources I can access
                  </DropdownMenuItem>
                  <DropdownMenuSub>
                    <DropdownMenuSubTrigger>
                      <Avatar className="size-4">
                        <AvatarImage src="https://github.com/shadcn.png" />
                        <AvatarFallback>CN</AvatarFallback>
                      </Avatar>
                      shadcn
                    </DropdownMenuSubTrigger>
                    <DropdownMenuSubContent className="w-72 p-0 [--radius:1rem]">
                      <Command>
                        <CommandInput
                          placeholder="Find or use knowledge in..."
                          autoFocus
                        />
                        <CommandList>
                          <CommandEmpty>No knowledge found</CommandEmpty>
                          <CommandGroup>
                            {SAMPLE_DATA.mentionable
                              .filter((item) => item.type === "user")
                              .map((user) => (
                                <CommandItem
                                  key={user.title}
                                  value={user.title}
                                  onSelect={() => {
                                    // Handle user selection here
                                    console.log("Selected user:", user.title)
                                  }}
                                >
                                  <Avatar className="size-4">
                                    <AvatarImage src={user.image} />
                                    <AvatarFallback>
                                      {user.title[0]}
                                    </AvatarFallback>
                                  </Avatar>
                                  {user.title}{" "}
                                  <span className="text-muted-foreground">
                                    - {user.workspace}
                                  </span>
                                </CommandItem>
                              ))}
                          </CommandGroup>
                        </CommandList>
                      </Command>
                    </DropdownMenuSubContent>
                  </DropdownMenuSub>
                  <DropdownMenuItem>
                    <IconBook /> Help Center
                  </DropdownMenuItem>
                </DropdownMenuGroup>
                <DropdownMenuSeparator />
                <DropdownMenuGroup>
                  <DropdownMenuItem>
                    <IconPlus /> Connect Apps
                  </DropdownMenuItem>
                  <DropdownMenuLabel className="text-xs text-muted-foreground">
                    We&apos;ll only search in the sources selected here.
                  </DropdownMenuLabel>
                </DropdownMenuGroup>
              </DropdownMenuContent>
            </DropdownMenu>
            <InputGroupButton
              aria-label="Send"
              className="ml-auto rounded-full"
              variant="default"
              size="icon-sm"
            >
              <IconArrowUp />
            </InputGroupButton>
          </InputGroupAddon>
        </InputGroup>
      </Field>
    </form>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/spinner-badge.tsx
================================================
import { Badge } from "@/examples/radix/ui/badge"
import { Spinner } from "@/examples/radix/ui/spinner"

export function SpinnerBadge() {
  return (
    <div className="flex items-center gap-2">
      <Badge>
        <Spinner />
        Syncing
      </Badge>
      <Badge variant="secondary">
        <Spinner />
        Updating
      </Badge>
      <Badge variant="outline">
        <Spinner />
        Loading
      </Badge>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/components/spinner-empty.tsx
================================================
import { Button } from "@/examples/radix/ui/button"
import {
  Empty,
  EmptyContent,
  EmptyDescription,
  EmptyHeader,
  EmptyMedia,
  EmptyTitle,
} from "@/examples/radix/ui/empty"
import { Spinner } from "@/examples/radix/ui/spinner"

export function SpinnerEmpty() {
  return (
    <Empty className="w-full border md:p-6">
      <EmptyHeader>
        <EmptyMedia variant="icon">
          <Spinner />
        </EmptyMedia>
        <EmptyTitle>Processing your request</EmptyTitle>
        <EmptyDescription>
          Please wait while we process your request. Do not refresh the page.
        </EmptyDescription>
      </EmptyHeader>
      <EmptyContent>
        <Button variant="outline" size="sm">
          Cancel
        </Button>
      </EmptyContent>
    </Empty>
  )
}


================================================
FILE: apps/v4/app/(app)/(root)/page.tsx
================================================
import { type Metadata } from "next"
import Image from "next/image"
import Link from "next/link"

import { Announcement } from "@/components/announcement"
import { ExamplesNav } from "@/components/examples-nav"
import {
  PageActions,
  PageHeader,
  PageHeaderDescription,
  PageHeaderHeading,
} from "@/components/page-header"
import { PageNav } from "@/components/page-nav"
import { ThemeSelector } from "@/components/theme-selector"
import { Button } from "@/registry/new-york-v4/ui/button"

import { RootComponents } from "./components"

const title = "The Foundation for your Design System"
const description =
  "A set of beautifully designed components that you can customize, extend, and build on. Start here then make it your own. Open Source. Open Code."

export const dynamic = "force-static"
export const revalidate = false

export const metadata: Metadata = {
  title,
  description,
  openGraph: {
    images: [
      {
        url: `/og?title=${encodeURIComponent(
          title
        )}&description=${encodeURIComponent(description)}`,
      },
    ],
  },
  twitter: {
    card: "summary_large_image",
    images: [
      {
        url: `/og?title=${encodeURIComponent(
          title
        )}&description=${encodeURIComponent(description)}`,
      },
    ],
  },
}

export default function IndexPage() {
  return (
    <div className="flex flex-1 flex-col">
      <PageHeader>
        <Announcement />
        <PageHeaderHeading className="max-w-4xl">{title}</PageHeaderHeading>
        <PageHeaderDescription>{description}</PageHeaderDescription>
        <PageActions>
          <Button asChild size="sm" className="h-[31px] rounded-lg">
            <Link href="/create">New Project</Link>
          </Button>
          <Button asChild size="sm" variant="ghost" className="rounded-lg">
            <Link href="/docs/components">View Components</Link>
          </Button>
        </PageActions>
      </PageHeader>
      <PageNav className="hidden md:flex">
        <ExamplesNav className="flex-1 overflow-hidden [&>a:first-child]:text-primary" />
        <ThemeSelector className="mr-4 hidden md:flex" />
      </PageNav>
      <div className="container-wrapper flex-1 section-soft pb-6">
        <div className="container overflow-hidden">
          <section className="-mx-4 w-[160vw] overflow-hidden rounded-lg border border-border/50 md:hidden md:w-[150vw]">
            <Image
              src="/r/styles/new-york-v4/dashboard-01-light.png"
              width={1400}
              height={875}
              alt="Dashboard"
              className="block dark:hidden"
              priority
            />
            <Image
              src="/r/styles/new-york-v4/dashboard-01-dark.png"
              width={1400}
              height={875}
              alt="Dashboard"
              className="hidden dark:block"
              priority
            />
          </section>
          <section className="hidden theme-container md:block">
            <RootComponents />
          </section>
        </div>
      </div>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/blocks/[...categories]/page.tsx
================================================
import { getAllBlockIds } from "@/lib/blocks"
import { registryCategories } from "@/lib/categories"
import { BlockDisplay } from "@/components/block-display"
import { getActiveStyle } from "@/registry/_legacy-styles"

export const revalidate = false
export const dynamic = "force-static"
export const dynamicParams = false

export async function generateStaticParams() {
  return registryCategories.map((category) => ({
    categories: [category.slug],
  }))
}

export default async function BlocksPage({
  params,
}: {
  params: Promise<{ categories?: string[] }>
}) {
  const [{ categories = [] }, activeStyle] = await Promise.all([
    params,
    getActiveStyle(),
  ])
  const blocks = await getAllBlockIds(["registry:block"], categories)

  return (
    <div className="flex flex-col gap-12 md:gap-24">
      {blocks.map((name) => (
        <BlockDisplay name={name} key={name} styleName={activeStyle.name} />
      ))}
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/blocks/layout.tsx
================================================
import { type Metadata } from "next"
import Link from "next/link"

import { Announcement } from "@/components/announcement"
import { BlocksNav } from "@/components/blocks-nav"
import {
  PageActions,
  PageHeader,
  PageHeaderDescription,
  PageHeaderHeading,
} from "@/components/page-header"
import { PageNav } from "@/components/page-nav"
import { Button } from "@/registry/new-york-v4/ui/button"

const title = "Building Blocks for the Web"
const description =
  "Clean, modern building blocks. Copy and paste into your apps. Works with all React frameworks. Open Source. Free forever."

export const metadata: Metadata = {
  title,
  description,
  openGraph: {
    images: [
      {
        url: `/og?title=${encodeURIComponent(
          title
        )}&description=${encodeURIComponent(description)}`,
      },
    ],
  },
  twitter: {
    card: "summary_large_image",
    images: [
      {
        url: `/og?title=${encodeURIComponent(
          title
        )}&description=${encodeURIComponent(description)}`,
      },
    ],
  },
}

export default function BlocksLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <>
      <PageHeader>
        <Announcement />
        <PageHeaderHeading>{title}</PageHeaderHeading>
        <PageHeaderDescription>{description}</PageHeaderDescription>
        <PageActions>
          <Button asChild size="sm">
            <a href="#blocks">Browse Blocks</a>
          </Button>
          <Button asChild variant="ghost" size="sm">
            <Link href="/docs/blocks">Add a block</Link>
          </Button>
        </PageActions>
      </PageHeader>
      <PageNav id="blocks">
        <BlocksNav />
        <Button
          asChild
          variant="secondary"
          size="sm"
          className="mr-7 hidden shadow-none lg:flex"
        >
          <Link href="/blocks/sidebar">Browse all blocks</Link>
        </Button>
      </PageNav>
      <div className="container-wrapper flex-1 section-soft md:py-12">
        <div className="container">{children}</div>
      </div>
    </>
  )
}


================================================
FILE: apps/v4/app/(app)/blocks/page.tsx
================================================
import Link from "next/link"

import { BlockDisplay } from "@/components/block-display"
import { getActiveStyle } from "@/registry/_legacy-styles"
import { Button } from "@/registry/new-york-v4/ui/button"

export const dynamic = "force-static"
export const revalidate = false

const FEATURED_BLOCKS = [
  "dashboard-01",
  "sidebar-07",
  "sidebar-03",
  "login-03",
  "login-04",
]

export default async function BlocksPage() {
  const activeStyle = await getActiveStyle()

  return (
    <div className="flex flex-col gap-12 md:gap-24">
      {FEATURED_BLOCKS.map((name) => (
        <BlockDisplay name={name} key={name} styleName={activeStyle.name} />
      ))}
      <div className="container-wrapper">
        <div className="container flex justify-center py-6">
          <Button asChild variant="outline">
            <Link href="/blocks/sidebar">Browse more blocks</Link>
          </Button>
        </div>
      </div>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/charts/[type]/page.tsx
================================================
import * as React from "react"
import { notFound } from "next/navigation"

import { cn } from "@/lib/utils"
import {
  ChartDisplay,
  getCachedRegistryItem,
  getChartHighlightedCode,
} from "@/components/chart-display"
import { getActiveStyle } from "@/registry/_legacy-styles"
import { charts } from "@/app/(app)/charts/charts"

export const revalidate = false
export const dynamic = "force-static"
export const dynamicParams = false

interface ChartPageProps {
  params: Promise<{
    type: string
  }>
}

const chartTypes = [
  "area",
  "bar",
  "line",
  "pie",
  "radar",
  "radial",
  "tooltip",
] as const
type ChartType = (typeof chartTypes)[number]

export async function generateStaticParams() {
  return chartTypes.map((type) => ({
    type,
  }))
}

export default async function ChartPage({ params }: ChartPageProps) {
  const { type } = await params

  if (!chartTypes.includes(type as ChartType)) {
    return notFound()
  }

  const chartType = type as ChartType
  const chartList = charts[chartType]
  const activeStyle = await getActiveStyle()

  // Prefetch all chart data in parallel for better performance.
  // Charts are rendered via iframes, so we only need the metadata and highlighted code.
  const chartDataPromises = chartList.map(async (chart) => {
    const registryItem = await getCachedRegistryItem(chart.id, activeStyle.name)
    if (!registryItem) return null

    const highlightedCode = await getChartHighlightedCode(
      registryItem.files?.[0]?.content ?? ""
    )
    if (!highlightedCode) return null

    return {
      ...registryItem,
      highlightedCode,
      fullWidth: chart.fullWidth,
    }
  })

  const prefetchedCharts = await Promise.all(chartDataPromises)

  return (
    <div className="grid flex-1 gap-12 lg:gap-24">
      <h2 className="sr-only">
        {type.charAt(0).toUpperCase() + type.slice(1)} Charts
      </h2>
      <div className="grid flex-1 scroll-mt-20 items-stretch gap-10 md:grid-cols-2 md:gap-6 lg:grid-cols-3 xl:gap-10">
        {Array.from({ length: 12 }).map((_, index) => {
          const chart = prefetchedCharts[index]
          return chart ? (
            <ChartDisplay
              key={chart.name}
              chart={chart}
              style={activeStyle.name}
              className={cn(chart.fullWidth && "md:col-span-2 lg:col-span-3")}
            />
          ) : (
            <div
              key={`empty-${index}`}
              className="hidden aspect-square w-full rounded-lg border border-dashed xl:block"
            />
          )
        })}
      </div>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/charts/charts.tsx
================================================
import type * as React from "react"

import { ChartAreaAxes } from "@/registry/new-york-v4/charts/chart-area-axes"
import { ChartAreaDefault } from "@/registry/new-york-v4/charts/chart-area-default"
import { ChartAreaGradient } from "@/registry/new-york-v4/charts/chart-area-gradient"
import { ChartAreaIcons } from "@/registry/new-york-v4/charts/chart-area-icons"
import { ChartAreaInteractive } from "@/registry/new-york-v4/charts/chart-area-interactive"
import { ChartAreaLegend } from "@/registry/new-york-v4/charts/chart-area-legend"
import { ChartAreaLinear } from "@/registry/new-york-v4/charts/chart-area-linear"
import { ChartAreaStacked } from "@/registry/new-york-v4/charts/chart-area-stacked"
import { ChartAreaStackedExpand } from "@/registry/new-york-v4/charts/chart-area-stacked-expand"
import { ChartAreaStep } from "@/registry/new-york-v4/charts/chart-area-step"
import { ChartBarActive } from "@/registry/new-york-v4/charts/chart-bar-active"
import { ChartBarDefault } from "@/registry/new-york-v4/charts/chart-bar-default"
import { ChartBarHorizontal } from "@/registry/new-york-v4/charts/chart-bar-horizontal"
import { ChartBarInteractive } from "@/registry/new-york-v4/charts/chart-bar-interactive"
import { ChartBarLabel } from "@/registry/new-york-v4/charts/chart-bar-label"
import { ChartBarLabelCustom } from "@/registry/new-york-v4/charts/chart-bar-label-custom"
import { ChartBarMixed } from "@/registry/new-york-v4/charts/chart-bar-mixed"
import { ChartBarMultiple } from "@/registry/new-york-v4/charts/chart-bar-multiple"
import { ChartBarNegative } from "@/registry/new-york-v4/charts/chart-bar-negative"
import { ChartBarStacked } from "@/registry/new-york-v4/charts/chart-bar-stacked"
import { ChartLineDefault } from "@/registry/new-york-v4/charts/chart-line-default"
import { ChartLineDots } from "@/registry/new-york-v4/charts/chart-line-dots"
import { ChartLineDotsColors } from "@/registry/new-york-v4/charts/chart-line-dots-colors"
import { ChartLineDotsCustom } from "@/registry/new-york-v4/charts/chart-line-dots-custom"
import { ChartLineInteractive } from "@/registry/new-york-v4/charts/chart-line-interactive"
import { ChartLineLabel } from "@/registry/new-york-v4/charts/chart-line-label"
import { ChartLineLabelCustom } from "@/registry/new-york-v4/charts/chart-line-label-custom"
import { ChartLineLinear } from "@/registry/new-york-v4/charts/chart-line-linear"
import { ChartLineMultiple } from "@/registry/new-york-v4/charts/chart-line-multiple"
import { ChartLineStep } from "@/registry/new-york-v4/charts/chart-line-step"
import { ChartPieDonut } from "@/registry/new-york-v4/charts/chart-pie-donut"
import { ChartPieDonutActive } from "@/registry/new-york-v4/charts/chart-pie-donut-active"
import { ChartPieDonutText } from "@/registry/new-york-v4/charts/chart-pie-donut-text"
import { ChartPieInteractive } from "@/registry/new-york-v4/charts/chart-pie-interactive"
import { ChartPieLabel } from "@/registry/new-york-v4/charts/chart-pie-label"
import { ChartPieLabelCustom } from "@/registry/new-york-v4/charts/chart-pie-label-custom"
import { ChartPieLabelList } from "@/registry/new-york-v4/charts/chart-pie-label-list"
import { ChartPieLegend } from "@/registry/new-york-v4/charts/chart-pie-legend"
import { ChartPieSeparatorNone } from "@/registry/new-york-v4/charts/chart-pie-separator-none"
import { ChartPieSimple } from "@/registry/new-york-v4/charts/chart-pie-simple"
import { ChartPieStacked } from "@/registry/new-york-v4/charts/chart-pie-stacked"
import { ChartRadarDefault } from "@/registry/new-york-v4/charts/chart-radar-default"
import { ChartRadarDots } from "@/registry/new-york-v4/charts/chart-radar-dots"
import { ChartRadarGridCircle } from "@/registry/new-york-v4/charts/chart-radar-grid-circle"
import { ChartRadarGridCircleFill } from "@/registry/new-york-v4/charts/chart-radar-grid-circle-fill"
import { ChartRadarGridCircleNoLines } from "@/registry/new-york-v4/charts/chart-radar-grid-circle-no-lines"
import { ChartRadarGridCustom } from "@/registry/new-york-v4/charts/chart-radar-grid-custom"
import { ChartRadarGridFill } from "@/registry/new-york-v4/charts/chart-radar-grid-fill"
import { ChartRadarGridNone } from "@/registry/new-york-v4/charts/chart-radar-grid-none"
import { ChartRadarIcons } from "@/registry/new-york-v4/charts/chart-radar-icons"
import { ChartRadarLabelCustom } from "@/registry/new-york-v4/charts/chart-radar-label-custom"
import { ChartRadarLegend } from "@/registry/new-york-v4/charts/chart-radar-legend"
import { ChartRadarLinesOnly } from "@/registry/new-york-v4/charts/chart-radar-lines-only"
import { ChartRadarMultiple } from "@/registry/new-york-v4/charts/chart-radar-multiple"
import { ChartRadarRadius } from "@/registry/new-york-v4/charts/chart-radar-radius"
import { ChartRadialGrid } from "@/registry/new-york-v4/charts/chart-radial-grid"
import { ChartRadialLabel } from "@/registry/new-york-v4/charts/chart-radial-label"
import { ChartRadialShape } from "@/registry/new-york-v4/charts/chart-radial-shape"
import { ChartRadialSimple } from "@/registry/new-york-v4/charts/chart-radial-simple"
import { ChartRadialStacked } from "@/registry/new-york-v4/charts/chart-radial-stacked"
import { ChartRadialText } from "@/registry/new-york-v4/charts/chart-radial-text"
import { ChartTooltipAdvanced } from "@/registry/new-york-v4/charts/chart-tooltip-advanced"
import { ChartTooltipDefault } from "@/registry/new-york-v4/charts/chart-tooltip-default"
import { ChartTooltipFormatter } from "@/registry/new-york-v4/charts/chart-tooltip-formatter"
import { ChartTooltipIcons } from "@/registry/new-york-v4/charts/chart-tooltip-icons"
import { ChartTooltipIndicatorLine } from "@/registry/new-york-v4/charts/chart-tooltip-indicator-line"
import { ChartTooltipIndicatorNone } from "@/registry/new-york-v4/charts/chart-tooltip-indicator-none"
import { ChartTooltipLabelCustom } from "@/registry/new-york-v4/charts/chart-tooltip-label-custom"
import { ChartTooltipLabelFormatter } from "@/registry/new-york-v4/charts/chart-tooltip-label-formatter"
import { ChartTooltipLabelNone } from "@/registry/new-york-v4/charts/chart-tooltip-label-none"

type ChartComponent = React.ComponentType

interface ChartItem {
  id: string
  component: ChartComponent
  fullWidth?: boolean
}

interface ChartGroups {
  area: ChartItem[]
  bar: ChartItem[]
  line: ChartItem[]
  pie: ChartItem[]
  radar: ChartItem[]
  radial: ChartItem[]
  tooltip: ChartItem[]
}

export const charts: ChartGroups = {
  area: [
    {
      id: "chart-area-interactive",
      component: ChartAreaInteractive,
      fullWidth: true,
    },
    { id: "chart-area-default", component: ChartAreaDefault },
    { id: "chart-area-linear", component: ChartAreaLinear },
    { id: "chart-area-step", component: ChartAreaStep },
    { id: "chart-area-legend", component: ChartAreaLegend },
    { id: "chart-area-stacked", component: ChartAreaStacked },
    { id: "chart-area-stacked-expand", component: ChartAreaStackedExpand },
    { id: "chart-area-icons", component: ChartAreaIcons },
    { id: "chart-area-gradient", component: ChartAreaGradient },
    { id: "chart-area-axes", component: ChartAreaAxes },
  ],
  bar: [
    {
      id: "chart-bar-interactive",
      component: ChartBarInteractive,
      fullWidth: true,
    },
    { id: "chart-bar-default", component: ChartBarDefault },
    { id: "chart-bar-horizontal", component: ChartBarHorizontal },
    { id: "chart-bar-multiple", component: ChartBarMultiple },
    { id: "chart-bar-stacked", component: ChartBarStacked },
    { id: "chart-bar-label", component: ChartBarLabel },
    { id: "chart-bar-label-custom", component: ChartBarLabelCustom },
    { id: "chart-bar-mixed", component: ChartBarMixed },
    { id: "chart-bar-active", component: ChartBarActive },
    { id: "chart-bar-negative", component: ChartBarNegative },
  ],
  line: [
    {
      id: "chart-line-interactive",
      component: ChartLineInteractive,
      fullWidth: true,
    },
    { id: "chart-line-default", component: ChartLineDefault },
    { id: "chart-line-linear", component: ChartLineLinear },
    { id: "chart-line-step", component: ChartLineStep },
    { id: "chart-line-multiple", component: ChartLineMultiple },
    { id: "chart-line-dots", component: ChartLineDots },
    { id: "chart-line-dots-custom", component: ChartLineDotsCustom },
    { id: "chart-line-dots-colors", component: ChartLineDotsColors },
    { id: "chart-line-label", component: ChartLineLabel },
    { id: "chart-line-label-custom", component: ChartLineLabelCustom },
  ],
  pie: [
    { id: "chart-pie-simple", component: ChartPieSimple },
    { id: "chart-pie-separator-none", component: ChartPieSeparatorNone },
    { id: "chart-pie-label", component: ChartPieLabel },
    { id: "chart-pie-label-custom", component: ChartPieLabelCustom },
    { id: "chart-pie-label-list", component: ChartPieLabelList },
    { id: "chart-pie-legend", component: ChartPieLegend },
    { id: "chart-pie-donut", component: ChartPieDonut },
    { id: "chart-pie-donut-active", component: ChartPieDonutActive },
    { id: "chart-pie-donut-text", component: ChartPieDonutText },
    { id: "chart-pie-stacked", component: ChartPieStacked },
    { id: "chart-pie-interactive", component: ChartPieInteractive },
  ],
  radar: [
    { id: "chart-radar-default", component: ChartRadarDefault },
    { id: "chart-radar-dots", component: ChartRadarDots },
    { id: "chart-radar-lines-only", component: ChartRadarLinesOnly },
    { id: "chart-radar-label-custom", component: ChartRadarLabelCustom },
    { id: "chart-radar-grid-custom", component: ChartRadarGridCustom },
    { id: "chart-radar-grid-none", component: ChartRadarGridNone },
    { id: "chart-radar-grid-circle", component: ChartRadarGridCircle },
    {
      id: "chart-radar-grid-circle-no-lines",
      component: ChartRadarGridCircleNoLines,
    },
    { id: "chart-radar-grid-circle-fill", component: ChartRadarGridCircleFill },
    { id: "chart-radar-grid-fill", component: ChartRadarGridFill },
    { id: "chart-radar-multiple", component: ChartRadarMultiple },
    { id: "chart-radar-legend", component: ChartRadarLegend },
    { id: "chart-radar-icons", component: ChartRadarIcons },
    { id: "chart-radar-radius", component: ChartRadarRadius },
  ],
  radial: [
    { id: "chart-radial-simple", component: ChartRadialSimple },
    { id: "chart-radial-label", component: ChartRadialLabel },
    { id: "chart-radial-grid", component: ChartRadialGrid },
    { id: "chart-radial-text", component: ChartRadialText },
    { id: "chart-radial-shape", component: ChartRadialShape },
    { id: "chart-radial-stacked", component: ChartRadialStacked },
  ],
  tooltip: [
    { id: "chart-tooltip-default", component: ChartTooltipDefault },
    {
      id: "chart-tooltip-indicator-line",
      component: ChartTooltipIndicatorLine,
    },
    {
      id: "chart-tooltip-indicator-none",
      component: ChartTooltipIndicatorNone,
    },
    { id: "chart-tooltip-label-custom", component: ChartTooltipLabelCustom },
    {
      id: "chart-tooltip-label-formatter",
      component: ChartTooltipLabelFormatter,
    },
    { id: "chart-tooltip-label-none", component: ChartTooltipLabelNone },
    { id: "chart-tooltip-formatter", component: ChartTooltipFormatter },
    { id: "chart-tooltip-icons", component: ChartTooltipIcons },
    { id: "chart-tooltip-advanced", component: ChartTooltipAdvanced },
  ],
}

// Export individual components for backward compatibility
export {
  ChartAreaDefault,
  ChartAreaLinear,
  ChartAreaStep,
  ChartAreaLegend,
  ChartAreaStacked,
  ChartAreaStackedExpand,
  ChartAreaIcons,
  ChartAreaGradient,
  ChartAreaAxes,
  ChartAreaInteractive,
  ChartBarDefault,
  ChartBarHorizontal,
  ChartBarMultiple,
  ChartBarStacked,
  ChartBarLabel,
  ChartBarLabelCustom,
  ChartBarMixed,
  ChartBarActive,
  ChartBarNegative,
  ChartBarInteractive,
  ChartLineDefault,
  ChartLineLinear,
  ChartLineStep,
  ChartLineMultiple,
  ChartLineDots,
  ChartLineDotsCustom,
  ChartLineDotsColors,
  ChartLineLabel,
  ChartLineLabelCustom,
  ChartLineInteractive,
  ChartPieSimple,
  ChartPieSeparatorNone,
  ChartPieLabel,
  ChartPieLabelCustom,
  ChartPieLabelList,
  ChartPieLegend,
  ChartPieDonut,
  ChartPieDonutActive,
  ChartPieDonutText,
  ChartPieStacked,
  ChartPieInteractive,
  ChartRadarDefault,
  ChartRadarDots,
  ChartRadarLinesOnly,
  ChartRadarLabelCustom,
  ChartRadarGridCustom,
  ChartRadarGridNone,
  ChartRadarGridCircle,
  ChartRadarGridCircleNoLines,
  ChartRadarGridCircleFill,
  ChartRadarGridFill,
  ChartRadarMultiple,
  ChartRadarLegend,
  ChartRadarIcons,
  ChartRadarRadius,
  ChartRadialSimple,
  ChartRadialLabel,
  ChartRadialGrid,
  ChartRadialText,
  ChartRadialShape,
  ChartRadialStacked,
  ChartTooltipDefault,
  ChartTooltipIndicatorLine,
  ChartTooltipIndicatorNone,
  ChartTooltipLabelCustom,
  ChartTooltipLabelFormatter,
  ChartTooltipLabelNone,
  ChartTooltipFormatter,
  ChartTooltipIcons,
  ChartTooltipAdvanced,
}


================================================
FILE: apps/v4/app/(app)/charts/layout.tsx
================================================
import { type Metadata } from "next"
import Link from "next/link"

import { Announcement } from "@/components/announcement"
import { ChartsNav } from "@/components/charts-nav"
import {
  PageActions,
  PageHeader,
  PageHeaderDescription,
  PageHeaderHeading,
} from "@/components/page-header"
import { PageNav } from "@/components/page-nav"
import { ThemeSelector } from "@/components/theme-selector"
import { Button } from "@/registry/new-york-v4/ui/button"

const title = "Beautiful Charts & Graphs"
const description =
  "A collection of ready-to-use chart components built with Recharts. From basic charts to rich data displays, copy and paste into your apps."

export const metadata: Metadata = {
  title,
  description,
  openGraph: {
    images: [
      {
        url: `/og?title=${encodeURIComponent(
          title
        )}&description=${encodeURIComponent(description)}`,
      },
    ],
  },
  twitter: {
    card: "summary_large_image",
    images: [
      {
        url: `/og?title=${encodeURIComponent(
          title
        )}&description=${encodeURIComponent(description)}`,
      },
    ],
  },
}

export default function ChartsLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <>
      <PageHeader>
        <Announcement />
        <PageHeaderHeading>{title}</PageHeaderHeading>
        <PageHeaderDescription>{description}</PageHeaderDescription>
        <PageActions>
          <Button asChild size="sm">
            <a href="#charts">Browse Charts</a>
          </Button>
          <Button asChild variant="ghost" size="sm">
            <Link href="/docs/components/chart">Documentation</Link>
          </Button>
        </PageActions>
      </PageHeader>
      <PageNav id="charts">
        <ChartsNav />
      </PageNav>
      <div className="container-wrapper flex-1">
        <div className="container pb-6">
          <section className="theme-container">{children}</section>
        </div>
      </div>
    </>
  )
}


================================================
FILE: apps/v4/app/(app)/colors/layout.tsx
================================================
import { type Metadata } from "next"
import Link from "next/link"

import { Announcement } from "@/components/announcement"
import { ColorsNav } from "@/components/colors-nav"
import {
  PageActions,
  PageHeader,
  PageHeaderDescription,
  PageHeaderHeading,
} from "@/components/page-header"
import { Button } from "@/registry/new-york-v4/ui/button"

const title = "Tailwind Colors in Every Format"
const description =
  "The complete Tailwind color palette in HEX, RGB, HSL, CSS variables, and classes. Ready to copy and paste into your project."

export const metadata: Metadata = {
  title,
  description,
  openGraph: {
    images: [
      {
        url: `/og?title=${encodeURIComponent(
          title
        )}&description=${encodeURIComponent(description)}`,
      },
    ],
  },
  twitter: {
    card: "summary_large_image",
    images: [
      {
        url: `/og?title=${encodeURIComponent(
          title
        )}&description=${encodeURIComponent(description)}`,
      },
    ],
  },
}

export default function ColorsLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <div>
      <PageHeader>
        <Announcement />
        <PageHeaderHeading>{title}</PageHeaderHeading>
        <PageHeaderDescription>{description}</PageHeaderDescription>
        <PageActions>
          <Button asChild size="sm">
            <a href="#colors">Browse Colors</a>
          </Button>
          <Button asChild variant="ghost" size="sm">
            <Link href="/docs/theming">Documentation</Link>
          </Button>
        </PageActions>
      </PageHeader>
      <div className="hidden">
        <div className="container-wrapper">
          <div className="container flex items-center justify-between gap-8 py-4">
            <ColorsNav className="flex-1 overflow-hidden [&>a:first-child]:text-primary" />
          </div>
        </div>
      </div>
      <div className="container-wrapper">
        <div className="container py-6">
          <section id="colors" className="scroll-mt-20">
            {children}
          </section>
        </div>
      </div>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/colors/page.tsx
================================================
import { getColors } from "@/lib/colors"
import { ColorPalette } from "@/components/color-palette"

export const dynamic = "force-static"
export const revalidate = false

export default function ColorsPage() {
  const colors = getColors()

  return (
    <div className="grid gap-8 lg:gap-16 xl:gap-20">
      {colors.map((colorPalette) => (
        <ColorPalette key={colorPalette.name} colorPalette={colorPalette} />
      ))}
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/docs/[[...slug]]/page.tsx
================================================
import Link from "next/link"
import { notFound } from "next/navigation"
import { mdxComponents } from "@/mdx-components"
import { IconArrowLeft, IconArrowRight } from "@tabler/icons-react"
import { findNeighbour } from "fumadocs-core/page-tree"

import { source } from "@/lib/source"
import { absoluteUrl } from "@/lib/utils"
import { DocsBaseSwitcher } from "@/components/docs-base-switcher"
import { DocsCopyPage } from "@/components/docs-copy-page"
import { DocsTableOfContents } from "@/components/docs-toc"
import { OpenInV0Cta } from "@/components/open-in-v0-cta"
import { Button } from "@/registry/new-york-v4/ui/button"

export const revalidate = false
export const dynamic = "force-static"
export const dynamicParams = false

export function generateStaticParams() {
  return source.generateParams()
}

export async function generateMetadata(props: {
  params: Promise<{ slug: string[] }>
}) {
  const params = await props.params
  const page = source.getPage(params.slug)

  if (!page) {
    notFound()
  }

  const doc = page.data

  if (!doc.title || !doc.description) {
    notFound()
  }

  return {
    title: doc.title,
    description: doc.description,
    openGraph: {
      title: doc.title,
      description: doc.description,
      type: "article",
      url: absoluteUrl(page.url),
      images: [
        {
          url: `/og?title=${encodeURIComponent(
            doc.title
          )}&description=${encodeURIComponent(doc.description)}`,
        },
      ],
    },
    twitter: {
      card: "summary_large_image",
      title: doc.title,
      description: doc.description,
      images: [
        {
          url: `/og?title=${encodeURIComponent(
            doc.title
          )}&description=${encodeURIComponent(doc.description)}`,
        },
      ],
      creator: "@shadcn",
    },
  }
}

export default async function Page(props: {
  params: Promise<{ slug: string[] }>
}) {
  const params = await props.params
  const page = source.getPage(params.slug)
  if (!page) {
    notFound()
  }

  const doc = page.data
  const MDX = doc.body
  const isChangelog = params.slug?.[0] === "changelog"
  const neighbours = isChangelog
    ? { previous: null, next: null }
    : findNeighbour(source.pageTree, page.url)
  const raw = await page.data.getText("raw")

  return (
    <div
      data-slot="docs"
      className="flex scroll-mt-24 items-stretch pb-8 text-[1.05rem] sm:text-[15px] xl:w-full"
    >
      <div className="flex min-w-0 flex-1 flex-col">
        <div className="h-(--top-spacing) shrink-0" />
        <div className="mx-auto flex w-full max-w-[40rem] min-w-0 flex-1 flex-col gap-6 px-4 py-6 text-neutral-800 md:px-0 lg:py-8 dark:text-neutral-300">
          <div className="flex flex-col gap-2">
            <div className="flex flex-col gap-2">
              <div className="flex items-center justify-between md:items-start">
                <h1 className="scroll-m-24 text-3xl font-semibold tracking-tight sm:text-3xl">
                  {doc.title}
                </h1>
                <div className="docs-nav flex items-center gap-2">
                  <div className="hidden sm:block">
                    <DocsCopyPage page={raw} url={absoluteUrl(page.url)} />
                  </div>
                  <div className="ml-auto flex gap-2">
                    {neighbours.previous && (
                      <Button
                        variant="secondary"
                        size="icon"
                        className="extend-touch-target size-8 shadow-none md:size-7"
                        asChild
                      >
                        <Link href={neighbours.previous.url}>
                          <IconArrowLeft />
                          <span className="sr-only">Previous</span>
                        </Link>
                      </Button>
                    )}
                    {neighbours.next && (
                      <Button
                        variant="secondary"
                        size="icon"
                        className="extend-touch-target size-8 shadow-none md:size-7"
                        asChild
                      >
                        <Link href={neighbours.next.url}>
                          <span className="sr-only">Next</span>
                          <IconArrowRight />
                        </Link>
                      </Button>
                    )}
                  </div>
                </div>
              </div>
              {doc.description && (
                <p className="text-[1.05rem] text-muted-foreground sm:text-base sm:text-balance md:max-w-[80%]">
                  {doc.description}
                </p>
              )}
            </div>
          </div>
          <div className="w-full flex-1 pb-16 *:data-[slot=alert]:first:mt-0 sm:pb-0">
            {params.slug &&
              params.slug[0] === "components" &&
              params.slug[1] &&
              params.slug[2] && (
                <DocsBaseSwitcher
                  base={params.slug[1]}
                  component={params.slug[2]}
                  className="mb-4"
                />
              )}
            <MDX components={mdxComponents} />
          </div>
          <div className="hidden h-16 w-full items-center gap-2 px-4 sm:flex sm:px-0">
            {neighbours.previous && (
              <Button
                variant="secondary"
                size="sm"
                asChild
                className="shadow-none"
              >
                <Link href={neighbours.previous.url}>
                  <IconArrowLeft /> {neighbours.previous.name}
                </Link>
              </Button>
            )}
            {neighbours.next && (
              <Button
                variant="secondary"
                size="sm"
                className="ml-auto shadow-none"
                asChild
              >
                <Link href={neighbours.next.url}>
                  {neighbours.next.name} <IconArrowRight />
                </Link>
              </Button>
            )}
          </div>
        </div>
      </div>
      <div className="sticky top-[calc(var(--header-height)+1px)] z-30 ml-auto hidden h-[90svh] w-(--sidebar-width) flex-col gap-4 overflow-hidden overscroll-none pb-8 xl:flex">
        <div className="h-(--top-spacing) shrink-0"></div>
        {doc.toc?.length ? (
          <div className="no-scrollbar flex flex-col gap-8 overflow-y-auto px-8">
            <DocsTableOfContents toc={doc.toc} />
          </div>
        ) : null}
        <div className="hidden flex-1 flex-col gap-6 px-6 xl:flex">
          <OpenInV0Cta />
        </div>
      </div>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/docs/changelog/page.tsx
================================================
import Link from "next/link"
import { Button } from "@/examples/radix/ui/button"
import { mdxComponents } from "@/mdx-components"
import { IconRss } from "@tabler/icons-react"

import { getChangelogPages, type ChangelogPageData } from "@/lib/changelog"
import { absoluteUrl } from "@/lib/utils"
import { OpenInV0Cta } from "@/components/open-in-v0-cta"

export const revalidate = false
export const dynamic = "force-static"

export function generateMetadata() {
  return {
    title: "Changelog",
    description: "Latest updates and announcements.",
    openGraph: {
      title: "Changelog",
      description: "Latest updates and announcements.",
      type: "article",
      url: absoluteUrl("/docs/changelog"),
      images: [
        {
          url: `/og?title=${encodeURIComponent(
            "Changelog"
          )}&description=${encodeURIComponent(
            "Latest updates and announcements."
          )}`,
        },
      ],
    },
  }
}

export default function ChangelogPage() {
  const pages = getChangelogPages()
  const latestPages = pages.slice(0, 5)
  const olderPages = pages.slice(5)

  return (
    <div
      data-slot="docs"
      className="flex scroll-mt-24 items-stretch pb-8 text-[1.05rem] sm:text-[15px] xl:w-full"
    >
      <div className="flex min-w-0 flex-1 flex-col">
        <div className="h-(--top-spacing) shrink-0" />
        <div className="mx-auto flex w-full max-w-[40rem] min-w-0 flex-1 flex-col gap-6 px-4 py-6 text-neutral-800 md:px-0 lg:py-8 dark:text-neutral-300">
          <div className="flex flex-col gap-2">
            <div className="flex items-center justify-between">
              <h1 className="scroll-m-24 text-4xl font-semibold tracking-tight sm:text-3xl">
                Changelog
              </h1>
              <Button variant="secondary" size="sm" asChild>
                <a href="/rss.xml" target="_blank" rel="noopener noreferrer">
                  <IconRss />
                  RSS
                </a>
              </Button>
            </div>
            <p className="text-[1.05rem] text-muted-foreground sm:text-base sm:text-balance md:max-w-[80%]">
              Latest updates and announcements.
            </p>
          </div>
          <div className="w-full flex-1 pb-16 sm:pb-0">
            {latestPages.map((page) => {
              const data = page.data as ChangelogPageData
              const MDX = page.data.body

              return (
                <article key={page.url} className="mb-12 border-b pb-12">
                  <h2 className="font-heading text-xl font-semibold tracking-tight">
                    {data.title}
                  </h2>
                  <div className="prose-changelog mt-6 *:first:mt-0">
                    <MDX components={mdxComponents} />
                  </div>
                </article>
              )
            })}
            {olderPages.length > 0 && (
              <div id="more-updates" className="mb-24 scroll-mt-24">
                <h2 className="mb-6 font-heading text-xl font-semibold tracking-tight">
                  More Updates
                </h2>
                <div className="grid auto-rows-fr gap-3 sm:grid-cols-2">
                  {olderPages.map((page) => {
                    const data = page.data as ChangelogPageData
                    const [date, ...titleParts] = data.title.split(" - ")
                    const title = titleParts.join(" - ")
                    return (
                      <Link
                        key={page.url}
                        href={page.url}
                        className="flex w-full flex-col rounded-xl bg-surface px-4 py-3 text-surface-foreground transition-colors hover:bg-surface/80"
                      >
                        <span className="text-xs text-muted-foreground">
                          {date}
                        </span>
                        <span className="text-sm font-medium">{title}</span>
                      </Link>
                    )
                  })}
                </div>
              </div>
            )}
          </div>
        </div>
      </div>
      <div className="sticky top-[calc(var(--header-height)+1px)] z-30 ml-auto hidden h-[90svh] w-72 flex-col gap-4 overflow-hidden overscroll-none pb-8 lg:flex">
        <div className="h-(--top-spacing) shrink-0"></div>
        <div className="no-scrollbar flex flex-col gap-8 overflow-y-auto px-8">
          <div className="flex flex-col gap-2 p-4 pt-0 text-sm">
            <p className="sticky top-0 h-6 bg-background text-xs font-medium text-muted-foreground">
              On This Page
            </p>
            {latestPages.map((page) => {
              const data = page.data as ChangelogPageData
              return (
                <Link
                  key={page.url}
                  href={page.url}
                  className="text-[0.8rem] text-muted-foreground no-underline transition-colors hover:text-foreground"
                >
                  {data.title}
                </Link>
              )
            })}
            {olderPages.length > 0 && (
              <a
                href="#more-updates"
                className="text-[0.8rem] text-muted-foreground no-underline transition-colors hover:text-foreground"
              >
                More Updates
              </a>
            )}
          </div>
        </div>
        <div className="hidden flex-1 flex-col gap-6 px-6 xl:flex">
          <OpenInV0Cta />
        </div>
      </div>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/docs/layout.tsx
================================================
import { source } from "@/lib/source"
import { DocsSidebar } from "@/components/docs-sidebar"
import { SidebarProvider } from "@/registry/new-york-v4/ui/sidebar"

export default function DocsLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <div className="container-wrapper flex flex-1 flex-col px-2">
      <SidebarProvider
        className="min-h-min flex-1 items-start px-0 [--top-spacing:0] lg:grid lg:grid-cols-[var(--sidebar-width)_minmax(0,1fr)] lg:[--top-spacing:calc(var(--spacing)*4)] 3xl:fixed:container 3xl:fixed:px-3"
        style={
          {
            "--sidebar-width": "calc(var(--spacing) * 72)",
          } as React.CSSProperties
        }
      >
        <DocsSidebar tree={source.pageTree} />
        <div className="h-full w-full">{children}</div>
      </SidebarProvider>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/examples/authentication/components/user-auth-form.tsx
================================================
"use client"

import * as React from "react"

import { cn } from "@/lib/utils"
import { Icons } from "@/components/icons"
import { Button } from "@/registry/new-york-v4/ui/button"
import {
  Field,
  FieldGroup,
  FieldLabel,
  FieldSeparator,
} from "@/registry/new-york-v4/ui/field"
import { Input } from "@/registry/new-york-v4/ui/input"
import { Spinner } from "@/registry/new-york-v4/ui/spinner"

export function UserAuthForm({
  className,
  ...props
}: React.ComponentProps<"div">) {
  const [isLoading, setIsLoading] = React.useState<boolean>(false)

  async function onSubmit(event: React.SyntheticEvent) {
    event.preventDefault()
    setIsLoading(true)

    setTimeout(() => {
      setIsLoading(false)
    }, 3000)
  }

  return (
    <div className={cn("grid gap-6", className)} {...props}>
      <form onSubmit={onSubmit}>
        <FieldGroup>
          <Field>
            <FieldLabel className="sr-only" htmlFor="email">
              Email
            </FieldLabel>
            <Input
              id="email"
              placeholder="name@example.com"
              type="email"
              autoCapitalize="none"
              autoComplete="email"
              autoCorrect="off"
              disabled={isLoading}
            />
          </Field>
          <Field>
            <Button disabled={isLoading}>
              {isLoading && <Spinner />}
              Sign In with Email
            </Button>
          </Field>
        </FieldGroup>
      </form>
      <FieldSeparator>Or continue with</FieldSeparator>
      <Button variant="outline" type="button" disabled={isLoading}>
        {isLoading ? <Spinner /> : <Icons.gitHub className="mr-2 h-4 w-4" />}{" "}
        GitHub
      </Button>
    </div>
  )
}


================================================
FILE: apps/v4/app/(app)/examples/authentication/page.tsx
================================================
import { type Metadata } from "next"
import Image from "next/image"
import Link from "next/link"

import { cn } from "@/lib/utils"
import { buttonVariants } from "@/registry/new-york-v4/ui/button"
import { FieldDescription } from "@/registry/new-york-v4/ui/field"
import { UserAuthForm } from "@/app/(app)/examples/authentication/components/user-auth-form"

export const metadata: Metadata = {
  title: "Authentication",
  description: "Authentication forms built using the components.",
}

export default function AuthenticationPage() {
  return (
    <>
      <div className="md:hidden">
        <Image
          src="/examples/authentication-light.png"
          width={1280}
          height={843}
          alt="Authentication"
          className="block dark:hidden"
          priority
        />
        <Image
          src="/examples/authentication-dark.png"
          width={1280}
          height={843}
          alt="Authentication"
          className="hidden dark:block"
          priority
        />
      </div>
      <div className="relative container hidden flex-1 shrink-0 items-center justify-center md:grid lg:max-w-none lg:grid-cols-2 lg:px-0">
        <Link
          href="/examples/authentication"
          className={cn(
            buttonVariants({ variant: "ghost" }),
            "absolute top-4 right-4 md:top-8 md:right-8"
          )}
        >
          Login
        </Link>
        <div className="relative hidden h-full flex-col p-10 text-primary lg:flex dark:border-r">
          <div className="absolute inset-0 bg-primary/5" />
          <div className="relative z-20 flex items-center text-lg font-medium">
            <svg
              xmlns="http://www.w3.org/2000/svg"
              viewBox="0 0 24 24"
              fill="none"
              stroke="currentColor"
              strokeWidth="2"
              strokeLinecap="round"
              strokeLinejoin="round"
              className="mr-2 h-6 w-6"
            >
              <path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3" />
            </svg>
            Acme Inc
          </div>
          <div className="relative z-20 mt-auto">
            <blockquote className="leading-normal text-balance">
              &ldquo;This library has saved me countless hours of work and
              helped me deliver stunning designs to my clients faster than ever
              before.&rdquo; - Sofia Davis
            </blockquote>
          </div>
        </div>
        <div className="flex items-center justify-center lg:h-[1000px] lg:p-8">
          <div className="mx-auto flex w-full flex-col justify-center gap-6 sm:w-[350px]">
            <div className="flex flex-col gap-2 text-center">
              <h1 className="text-2xl font-semibold tracking-tight">
                Create an account
              </h1>
              <p className="text-sm text-muted-foreground">
                Enter your email below to create your account
              </p>
            </div>
            <UserAuthForm />
            <FieldDescription className="px-6 text-center">
              By clicking continue, you agree to our{" "}
              <Link href="/terms">Terms of Service</Link> and{" "}
              <Link href="/privacy">Privacy Policy</Link>.
            </FieldDescription>
          </div>
        </div>
      </div>
    </>
  )
}


================================================
FILE: apps/v4/app/(app)/examples/dashboard/components/app-sidebar.tsx
================================================
"use client"

import * as React from "react"
import Link from "next/link"
import {
  IconCamera,
  IconChartBar,
  IconDashboard,
  IconDatabase,
  IconFileAi,
  IconFileDescription,
  IconFileWord,
  IconFolder,
  IconHelp,
  IconInnerShadowTop,
  IconListDetails,
  IconReport,
  IconSearch,
  IconSettings,
  IconUsers,
} from "@tabler/icons-react"

import {
  Sidebar,
  SidebarContent,
  SidebarFooter,
  SidebarHeader,
  SidebarMenu,
  SidebarMenuButton,
  SidebarMenuItem,
} from "@/registry/new-york-v4/ui/sidebar"
import { NavDocuments } from "@/app/(app)/examples/dashboard/components/nav-documents"
import { NavMain } from "@/app/(app)/examples/dashboard/components/nav-main"
import { NavSecondary } from "@/app/(app)/examples/dashboard/components/nav-secondary"
import { NavUser } from "@/app/(app)/examples/dashboard/components/nav-user"

const data = {
  user: {
    name: "shadcn",
    email: "m@example.com",
    avatar: "/avatars/shadcn.jpg",
  },
  navMain: [
    {
      title: "Dashboard",
      url: "#",
      icon: IconDashboard,
    },
    {
      title: "Lifecycle",
      url: "#",
      icon: IconListDetails,
    },
    {
      title: "Analytics",
      url: "#",
      icon: IconChartBar,
    },
    {
      title: "Projects",
      url: "#",
      icon: IconFolder,
    },
    {
      title: "Team",
      url: "#",
      icon: IconUsers,
    },
  ],
  navClouds: [
    {
      title: "Capture",
      icon: IconCamera,
      isActive: true,
      url: "#",
      items: [
        {
          title: "Active Proposals",
          url: "#",
        },
        {
          title: "Archived",
          url: "#",
        },
      ],
    },
    {
      title: "Proposal",
      icon: IconFileDescription,
      url: "#",
      items: [
        {
          title: "Active Proposals",
          url: "#",
        },
        {
          title: "Archived",
          url: "#",
        },
      ],
    },
    {
      title: "Prompts",
      icon: IconFileAi,
      url: "#",
      items: [
        {
          title: "Active Proposals",
          url: "#",
        },
        {
          title: "Archived",
          url: "#",
        },
      ],
    },
  ],
  navSecondary: [
    {
      title: "Settings",
      url: "#",
      icon: IconSettings,
    },
    {
      title: "Get Help",
      url: "#",
      icon: IconHelp,
    },
    {
      title: "Search",
      url: "#",
      icon: IconSearch,
    },
  ],
  documents: [
    {
      name: "Data Library",
      url: "#",
      icon: IconDatabase,
    },
    {
      name: "Reports",
      url: "#",
      icon: IconReport,
    },
    {
      name: "Word Assistant",
      url: "#",
      icon: IconFileWord,
    },
  ],
}

export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
  return (
    <Sidebar collapsible="none" className="h-auto border-r" {...props}>
      <SidebarHeader className="border-b">
        <SidebarMenu>
          <SidebarMenuItem>
            <SidebarMenuButton
              asChild
              className="data-[slot=sidebar-menu-button]:p-1.5!"
            >
              <Link href="#">
                <IconInnerShadowTop className="size-5!" />
                <span className="text-base font-semibold">Acme Inc.</span>
              </Link>
            </SidebarMenuButton>
          </SidebarMenuItem>
        </SidebarMenu>
      </SidebarHeader>
      <SidebarContent>
        <NavMain items={data.navMain} />
        <NavDocuments items={data.documents} />
        <NavSecondary items={data.navSecondary} className="mt-auto" />
      </SidebarContent>
      <SidebarFooter>
        <NavUser user={data.user} />
      </SidebarFooter>
    </Sidebar>
  )
}


================================================
FILE: apps/v4/app/(app)/examples/dashboard/components/chart-area-interactive.tsx
================================================
"use client"

import * as React from "react"
import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"

import { useIsMobile } from "@/registry/new-york-v4/hooks/use-mobile"
import {
  Card,
  CardAction,
  CardContent,
  CardDescription,
  CardHeader,
  CardTitle,
} from "@/registry/new-york-v4/ui/card"
import {
  ChartContainer,
  ChartTooltip,
  ChartTooltipContent,
  type ChartConfig,
} from "@/registry/new-york-v4/ui/chart"
import {
  Select,
  SelectContent,
  SelectItem,
  SelectTrigger,
  SelectValue,
} from "@/registry/new-york-v4/ui/select"
import {
  ToggleGroup,
  ToggleGroupItem,
} from "@/registry/new-york-v4/ui/toggle-group"

export const description = "An interactive area chart"

const chartData = [
  { date: "2024-04-01", desktop: 222, mobile: 150 },
  { date: "2024-04-02", desktop: 97, mobile: 180 },
  { date: "2024-04-03", desktop: 167, mobile: 120 },
  { date: "2024-04-04", desktop: 242, mobile: 260 },
  { date: "2024-04-05", desktop: 373, mobile: 290 },
  { date: "2024-04-06", desktop: 301, mobile: 340 },
  { date: "2024-04-07", desktop: 245, mobile: 180 },
  { date: "2024-04-08", desktop: 409, mobile: 320 },
  { date: "2024-04-09", desktop: 59, mobile: 110 },
  { date: "2024-04-10", desktop: 261, mobile: 190 },
  { date: "2024-04-11", desktop: 327, mobile: 350 },
  { date: "2024-04-12", desktop: 292, mobile: 210 },
  { date: "2024-04-13", desktop: 342, mobile: 380 },
  { date: "2024-04-14", desktop: 137, mobile: 220 },
  { date: "2024-04-15", desktop: 120, mobile: 170 },
  { date: "2024-04-16", desktop: 138, mobile: 190 },
  { date: "2024-04-17", desktop: 446, mobile: 360 },
  { date: "2024-04-18", desktop: 364, mobile: 410 },
  { date: "2024-04-19", desktop: 243, mobile: 180 },
  { date: "2024-04-20", desktop: 89, mobile: 150 },
  { date: "2024-04-21", desktop: 137, mobile: 200 },
  { date: "2024-04-22", desktop: 224, mobile: 170 },
  { date: "2024-04-23", desktop: 138, mobile: 230 },
  { date: "2024-04-24", desktop: 387, mobile: 290 },
  { date: "2024-04-25", desktop: 215, mobile: 250 },
  { date: "2024-04-26", desktop: 75, mobile: 130 },
  { date: "2024-04-27", desktop: 383, mobile: 420 },
  { date: "2024-04-28", desktop: 122, mobile: 180 },
  { date: "2024-04-29", desktop: 315, mobile: 240 },
  { date: "2024-04-30", desktop: 454, mobile: 380 },
  { date: "2024-05-01", desktop: 165, mobile: 220 },
  { date: "2024-05-02", desktop: 293, mobile: 310 },
  { date: "2024-05-03", desktop: 247, mobile: 190 },
  { date: "2024-05-04", desktop: 385, mobile: 420 },
  { date: "2024-05-05", desktop: 481, mobile: 390 },
  { date: "2024-05-06", desktop: 498, mobile: 520 },
  { date: "2024-05-07", desktop: 388, mobile: 300 },
  { date: "2024-05-08", desktop: 149, mobile: 210 },
  { date: "2024-05-09", desktop: 227, mobile: 180 },
  { date: "2024-05-10", desktop: 293, mobile: 330 },
  { date: "2024-05-11", desktop: 335, mobile: 270 },
  { date: "2024-05-12", desktop: 197, mobile: 240 },
  { date: "2024-05-13", desktop: 197, mobile: 160 },
  { date: "2024-05-14", desktop: 448, mobile: 490 },
  { date: "2024-05-15", desktop: 473, mobile: 380 },
  { date: "2024-05-16", desktop: 338, mobile: 400 },
  { date: "2024-05-17", desktop: 499, mobile: 420 },
  { date: "2024-05-18", desktop: 315, mobile: 350 },
  { date: "2024-05-19", desktop: 235, mobile: 180 },
  { date: "2024-05-20", desktop: 177, mobile: 230 },
  { date: "2024-05-21", desktop: 82, mobile: 140 },
  { date: "2024-05-22", desktop: 81, mobile: 120 },
  { date: "2024-05-23", desktop: 252, mobile: 290 },
  { date: "2024-05-24", desktop: 294, mobile: 220 },
  { date: "2024-05-25", desktop: 201, mobile: 250 },
  { date: "2024-05-26", desktop: 213, mobile: 170 },
  { date: "2024-05-27", desktop: 420, mobile: 460 },
  { date: "2024-05-28", desktop: 233, mobile: 190 },
  { date: "2024-05-29", desktop: 78, mobile: 130 },
  { date: "2024-05-30", desktop: 340, mobile: 280 },
  { date: "2024-05-31", desktop: 178, mobile: 230 },
  { date: "2024-06-01", desktop: 178, mobile: 200 },
  { date: "2024-06-02", desktop: 470, mobile: 410 },
  { date: "2024-06-03", desktop: 103, mobile: 160 },
  { date: "2024-06-04", desktop: 439, mobile: 380 },
  { date: "2024-06-05", desktop: 88, mobile: 140 },
  { date: "2024-06-06", desktop: 294, mobile: 250 },
  { date: "2024-06-07", desktop: 323, mobile: 370 },
  { date: "2024-06-08", desktop: 385, mobile: 320 },
  { date: "2024-06-09", desktop: 438, mobile: 480 },
  { date: "2024-06-10", desktop: 155, mobile: 200 },
  { date: "2024-06-11", desktop: 92, mobile: 150 },
  { date: "2024-06-12", desktop: 492, mobile: 420 },
  { date: "2024-06-13", desktop: 81, mobile: 130 },
  { date: "2024-06-14", desktop: 426, mobile: 380 },
  { date: "2024-06-15", desktop: 307, mobile: 350 },
  { date: "2024-06-16", desktop: 371, mobile: 310 },
  { date: "2024-06-17", desktop: 475, mobile: 520 },
  { date: "2024-06-18", desktop: 107, mobile: 170 },
  { date: "2024-06-19", desktop: 341, mobile: 290 },
  { date: "2024-06-20", desktop: 408, mobile: 450 },
  { date: "2024-06-21", desktop: 169, mobile: 210 },
  { date: "2024-06-22", desktop: 317, mobile: 270 },
  { date: "2024-06-23", desktop: 480, mobile: 530 },
  { date: "2024-06-24", desktop: 132, mobile: 180 },
  { date: "2024-06-25", desktop: 141, mobile: 190 },
  { date: "2024-06-26", desktop: 434, mobile: 380 },
  { date: "2024-06-27", desktop: 448, mobile: 490 },
  { date: "2024-06-28", desktop: 149, mobile: 200 },
  { date: "2024-06-29", desktop: 103, mobile: 160 },
  { date: "2024-06-30", desktop: 446, mobile: 400 },
]

const chartConfig = {
  visitors: {
    label: "Visitors",
  },
  desktop: {
    label: "Desktop",
    color: "var(--primary)",
  },
  mobile: {
    label: "Mobile",
    color: "var(--primary)",
  },
} satisfies ChartConfig

export function ChartAreaInteractive() {
  const isMobile = useIsMobile()
  const [timeRange, setTimeRange] = React.useState("7d")

  const filteredData = chartData.filter((item) => {
    const date = new Date(item.date)
    const referenceDate = new Date("2024-06-30")
    let daysToSubtract = 90
    if (timeRange === "30d") {
      daysToSubtract = 30
    } else if (timeRange === "7d") {
      daysToSubtract = 7
    }
    const startDate = new Date(referenceDate)
    startDate.setDate(startDate.getDate() - daysToSubtract)
    return date >= startDate
  })

  return (
    <Card className="@container/card">
      <CardHeader>
        <CardTitle>Total Visitors</CardTitle>
        <CardDescription>
          <span className="hidden @[540px]/card:block">
            Total for the last 3 months
          </span>
          <span className="@[540px]/card:hidden">Last 3 months</span>
        </CardDescription>
        <CardAction>
          <ToggleGroup
            type="single"
            value={timeRange}
            onValueChange={setTimeRange}
            variant="outline"
            className="hidden *:data-[slot=toggle-group-item]:px-4! @[767px]/card:flex"
          >
            <ToggleGroupItem value="90d">Last 3 months</ToggleGroupItem>
            <ToggleGroupItem value="30d">Last 30 days</ToggleGroupItem>
            <ToggleGroupItem value="7d">Last 7 days</ToggleGroupItem>
          </ToggleGroup>
          <Select value={timeRange} onValueChange={setTimeRange}>
            <SelectTrigger
              className="flex w-40 **:data-[slot=select-value]:block **:data-[slot=select-value]:truncate @[767px]/card:hidden"
              size="sm"
              aria-label="Select a value"
            >
              <SelectValue placeholder="Last 3 months" />
            </SelectTrigger>
            <SelectContent className="rounded-xl">
              <SelectItem value="90d" className="rounded-lg">
                Last 3 months
              </SelectItem>
              <SelectItem value="30d" className="rounded-lg">
                Last 30 days
              </SelectItem>
              <SelectItem value="7d" className="rounded-lg">
                Last 7 days
              </SelectItem>
            </SelectContent>
          </Select>
        </CardAction>
      </CardHeader>
      <CardContent className="px-2 pt-4 sm:px-6 sm:pt-6">
        <ChartContainer
          config={chartConfig}
          className="aspect-auto h-[250px] w-full"
        >
          <AreaChart data={filteredData}>
            <defs>
              <linearGradient id="fillDesktop" x1="0" y1="0" x2="0" y2="1">
                <stop
                  offset="5%"
                  stopColor="var(--color-desktop)"
                  stopOpacity={1.0}
                />
                <stop
                  offset="95%"
                  stopColor="var(--color-desktop)"
                  stopOpacity={0.1}
                />
              </linearGradient>
              <linearGradient id="fillMobile" x1="0" y1="0" x2="0" y2="1">
                <stop
                  offset="5%"
                  stopColor="var(--color-mobile)"
                  stopOpacity={0.8}
                />
                <stop
                  offset="95%"
                  stopColor="var(--color-mobile)"
                  stopOpacity={0.1}
                />
              </linearGradient>
            </defs>
            <CartesianGrid vertical={false} />
            <XAxis
              dataKey="date"
              tickLine={false}
              axisLine={false}
              tickMargin={8}
              minTickGap={32}
              tickFormatter={(value) => {
                const date = new Date(value)
                return date.toLocaleDateString("en-US", {
                  month: "short",
                  day: "numeric",
                })
              }}
            />
            <ChartTooltip
              cursor={false}
              defaultIndex={isMobile ? -1 : 10}
              content={
                <ChartTooltipContent
                  labelFormatter={(value) => {
                    return new Date(value).toLocaleDateString("en-US", {
                      month: "short",
                      day: "numeric",
                    })
                  }}
                  indicator="dot"
                />
              }
            />
            <Area
              dataKey="mobile"
              type="natural"
              fill="url(#fillMobile)"
              stroke="var(--color-mobile)"
              stackId="a"
            />
            <Area
              dataKey="desktop"
              type="natural"
              fill="url(#fillDesktop)"
              stroke="var(--color-desktop)"
              stackId="a"
            />
          </AreaChart>
        </ChartContainer>
      </CardContent>
    </Card>
  )
}


================================================
FILE: apps/v4/app/(app)/examples/dashboard/components/data-table.tsx
================================================
"use client"

import * as React from "react"
import {
  closestCenter,
  DndContext,
  KeyboardSensor,
  MouseSensor,
  TouchSensor,
  useSensor,
  useSensors,
  type DragEndEvent,
  type UniqueIdentifier,
} from "@dnd-kit/core"
import { restrictToVerticalAxis } from "@dnd-kit/modifiers"
import {
  arrayMove,
  SortableContext,
  useSortable,
  verticalListSortingStrategy,
} from "@dnd-kit/sortable"
import { CSS } from "@dnd-kit/utilities"
import {
  IconChevronDown,
  IconChevronLeft,
  IconChevronRight,
  IconChevronsLeft,
  IconChevronsRight,
  IconCircleCheckFilled,
  IconDotsVertical,
  IconGripVertical,
  IconLayoutColumns,
  IconLoader,
  IconPlus,
  IconTrendingUp,
} from "@tabler/icons-react"
import {
  flexRender,
  getCoreRowModel,
  getFacetedRowModel,
  getFacetedUniqueValues,
  getFilteredRowModel,
  getPaginationRowModel,
  getSortedRowModel,
  useReactTable,
  type ColumnDef,
  type ColumnFiltersState,
  type Row,
  type SortingState,
  type VisibilityState,
} from "@tanstack/react-table"
import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
import { toast } from "sonner"
import { z } from "zod"

import { useIsMobile } from "@/registry/new-york-v4/hooks/use-mobile"
import { Badge } from "@/registry/new-york-v4/ui/badge"
import { Button } from "@/registry/new-york-v4/ui/button"
import {
  ChartContainer,
  ChartTooltip,
  ChartTooltipContent,
  type ChartConfig,
} from "@/registry/new-york-v4/ui/chart"
import { Checkbox } from "@/registry/new-york-v4/ui/checkbox"
import {
  Drawer,
  DrawerClose,
  DrawerContent,
  DrawerDescription,
  DrawerFooter,
  DrawerHeader,
  DrawerTitle,
  DrawerTrigger,
} from "@/registry/new-york-v4/ui/drawer"
import {
  DropdownMenu,
  DropdownMenuCheckboxItem,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuSeparator,
  DropdownMenuTrigger,
} from "@/registry/new-york-v4/ui/dropdown-menu"
import { Input } from "@/registry/new-york-v4/ui/input"
import { Label } from "@/registry/new-york-v4/ui/label"
import {
  Select,
  SelectContent,
  SelectItem,
  SelectTrigger,
  SelectValue,
} from "@/registry/new-york-v4/ui/select"
import { Separator } from "@/registry/new-york-v4/ui/separator"
import {
  Table,
  TableBody,
  TableCell,
  TableHead,
  TableHeader,
  TableRow,
} from "@/registry/new-york-v4/ui/table"
import {
  Tabs,
  TabsContent,
  TabsList,
  TabsTrigger,
} from "@/registry/new-york-v4/ui/tabs"

export const schema = z.object({
  id: z.number(),
  header: z.string(),
  type: z.string(),
  status: z.string(),
  target: z.string(),
  limit: z.string(),
  reviewer: z.string(),
})

// Create a separate component for the drag handle
function DragHandle({ id }: { id: number }) {
  const { attributes, listeners } = useSortable({
    id,
  })

  return (
    <Button
      {...attributes}
      {...listeners}
      variant="ghost"
      size="icon"
      className="size-7 text-muted-foreground hover:bg-transparent"
    >
      <IconGripVertical className="size-3 text-muted-foreground" />
      <span className="sr-only">Drag to reorder</span>
    </Button>
  )
}

const columns: ColumnDef<z.infer<typeof schema>>[] = [
  {
    id: "drag",
    header: () => null,
    cell: ({ row }) => <DragHandle id={row.original.id} />,
  },
  {
    id: "select",
    header: ({ table }) => (
      <div className="flex items-center justify-center">
        <Checkbox
          checked={
            table.getIsAllPageRowsSelected() ||
            (table.getIsSomePageRowsSelected() && "indeterminate")
          }
          onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}
          aria-label="Select all"
        />
      </div>
    ),
    cell: ({ row }) => (
      <div className="flex items-center justify-center">
        <Checkbox
          checked={row.getIsSelected()}
          onCheckedChange={(value) => row.toggleSelected(!!value)}
          aria-label="Select row"
        />
      </div>
    ),
    enableSorting: false,
    enableHiding: false,
  },
  {
    accessorKey: "header",
    header: "Header",
    cell: ({ row }) => {
      return <TableCellViewer item={row.original} />
    },
    enableHiding: false,
  },
  {
    accessorKey: "type",
    header: "Section Type",
    cell: ({ row }) => (
      <div className="w-32">
        <Badge variant="outline" className="px-1.5 text-muted-foreground">
          {row.original.type}
        </Badge>
      </div>
    ),
  },
  {
    accessorKey: "status",
    header: "Status",
    cell: ({ row }) => (
      <Badge variant="outline" className="px-1.5 text-muted-foreground">
        {row.original.status === "Done" ? (
          <IconCircleCheckFilled className="fill-green-500 dark:fill-green-400" />
        ) : (
          <IconLoader />
        )}
        {row.original.status}
      </Badge>
    ),
  },
  {
    accessorKey: "target",
    header: () => <div className="w-full text-right">Target</div>,
    cell: ({ row }) => (
      <form
        onSubmit={(e) => {
          e.preventDefault()
          toast.promise(new Promise((resolve) => setTimeout(resolve, 1000)), {
            loading: `Saving ${row.original.header}`,
            success: "Done",
            error: "Error",
          })
        }}
      >
        <Label htmlFor={`${row.original.id}-target`} className="sr-only">
          Target
        </Label>
        <Input
          className="h-8 w-16 border-transparent bg-transparent text-right shadow-none hover:bg-input/30 focus-visible:border focus-visible:bg-background dark:bg-transparent dark:hover:bg-input/30 dark:focus-visible:bg-input/30"
          defaultValue={row.original.target}
          id={`${row.original.id}-target`}
        />
      </form>
    ),
  },
  {
    accessorKey: "limit",
    header: () => <div className="w-full text-right">Limit</div>,
    cell: ({ row }) => (
      <form
        onSubmit={(e) => {
          e.preventDefault()
          toast.promise(new Promise((resolve) => setTimeout(resolve, 1000)), {
            loading: `Saving ${row.original.header}`,
            success: "Done",
            error: "Error",
          })
        }}
      >
        <Label htmlFor={`${row.original.id}-limit`} className="sr-only">
          Limit
        </Label>
        <Input
          className="h-8 w-16 border-transparent bg-transparent text-right shadow-none hover:bg-input/30 focus-visible:border focus-visible:bg-background dark:bg-transparent dark:hover:bg-input/30 dark:focus-visible:bg-input/30"
          defaultValue={row.original.limit}
          id={`${row.original.id}-limit`}
        />
      </form>
    ),
  },
  {
    accessorKey: "reviewer",
    header: "Reviewer",
    cell: ({ row }) => {
      const isAssigned = row.original.reviewer !== "Assign reviewer"

      if (isAssigned) {
        return row.original.reviewer
      }

      return (
        <>
          <Label htmlFor={`${row.original.id}-reviewer`} className="sr-only">
            Reviewer
          </Label>
          <Select>
            <SelectTrigger
              className="w-38 **:data-[slot=select-value]:block **:data-[slot=select-value]:truncate"
              size="sm"
              id={`${row.original.id}-reviewer`}
            >
              <SelectValue placeholder="Assign reviewer" />
            </SelectTrigger>
            <SelectContent align="end">
              <SelectItem value="Eddie Lake">Eddie Lake</SelectItem>
              <SelectItem value="Jamik Tashpulatov">
                Jamik Tashpulatov
              </SelectItem>
            </SelectContent>
          </Select>
        </>
      )
    },
  },
  {
    id: "actions",
    cell: () => (
      <DropdownMenu>
        <DropdownMenuTrigger asChild>
          <Button
            variant="ghost"
            className="flex size-8 text-muted-foreground data-[state=open]:bg-muted"
            size="icon"
          >
            <IconDotsVertical />
            <span className="sr-only">Open menu</span>
          </Button>
        </DropdownMenuTrigger>
        <DropdownMenuContent align="end" className="w-32">
          <DropdownMenuItem>Edit</DropdownMenuItem>
          <DropdownMenuItem>Make a copy</DropdownMenuItem>
          <DropdownMenuItem>Favorite</DropdownMenuItem>
          <DropdownMenuSeparator />
          <DropdownMenuItem variant="destructive">Delete</DropdownMenuItem>
        </DropdownMenuContent>
      </DropdownMenu>
    ),
  },
]

function DraggableRow({ row }: { row: Row<z.infer<typeof schema>> }) {
  const { transform, transition, setNodeRef, isDragging } = useSortable({
    id: row.original.id,
  })

  return (
    <TableRow
      data-state={row.getIsSelected() && "selected"}
      data-dragging={isDragging}
      ref={setNodeRef}
      className="relative z-0 data-[dragging=true]:z-10 data-[dragging=true]:opacity-80"
      style={{
        transform: CSS.Transform.toString(transform),
        transition: transition,
      }}
    >
      {row.getVisibleCells().map((cell) => (
        <TableCell key={cell.id}>
          {flexRender(cell.column.columnDef.cell, cell.getContext())}
        </TableCell>
      ))}
    </TableRow>
  )
}

export function DataTable({
  data: initialData,
}: {
  data: z.infer<typeof schema>[]
}) {
  const [data, setData] = React.useState(() => initialData)
  const [rowSelection, setRowSelection] = React.useState({})
  const [columnVisibility, setColumnVisibility] =
    React.useState<VisibilityState>({})
  const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(
    []
  )
  const [sorting, setSorting] = React.useState<SortingState>([])
  const [pagination, setPagination] = React.useState({
    pageIndex: 0,
    pageSize: 10,
  })
  const sortableId = React.useId()
  const sensors = useSensors(
    useSensor(MouseSensor, {}),
    useSensor(TouchSensor, {}),
    useSensor(KeyboardSensor, {})
  )

  const dataIds = React.useMemo<UniqueIdentifier[]>(
    () => data?.map(({ id }) => id) || [],
    [data]
  )

  const table = useReactTable({
    data,
    columns,
    state: {
      sorting,
      columnVisibility,
      rowSelection,
      columnFilters,
      pagination,
    },
    getRowId: (row) => row.id.toString(),
    enableRowSelection: true,
    onRowSelectionChange: setRowSelection,
    onSortingChange: setSorting,
    onColumnFiltersChange: setColumnFilters,
    onColumnVisibilityChange: setColumnVisibility,
    onPaginationChange: setPagination,
    getCoreRowModel: getCoreRowModel(),
    getFilteredRowModel: getFilteredRowModel(),
    getPaginationRowModel: getPaginationRowModel(),
    getSortedRowModel: getSortedRowModel(),
    getFacetedRowModel: getFacetedRowModel(),
    getFacetedUniqueValues: getFacetedUniqueValues(),
  })

  function handleDragEnd(event: DragEndEvent) {
    const { active, over } = event
    if (active && over && active.id !== over.id) {
      setData((data) => {
        const oldIndex = dataIds.indexOf(active.id)
        const newIndex = dataIds.indexOf(over.id)
        return arrayMove(data, oldIndex, newIndex)
      })
    }
  }

  return (
    <Tabs
      defaultValue="outline"
      className="w-full flex-col justify-start gap-6"
    >
      <div className="flex items-center justify-between px-4 lg:px-6">
        <Label htmlFor="view-selector" className="sr-only">
          View
        </Label>
        <Select defaultValue="outline">
          <SelectTrigger
            className="flex w-fit @4xl/main:hidden"
            size="sm"
            id="view-selector"
          >
            <SelectValue placeholder="Select a view" />
          </SelectTrigger>
          <SelectContent>
            <SelectItem value="outline">Outline</SelectItem>
            <SelectItem value="past-performance">Past Performance</SelectItem>
            <SelectItem value="key-personnel">Key Personnel</SelectItem>
            <SelectItem value="focus-documents">Focus Documents</SelectItem>
          </SelectContent>
        </Select>
        <TabsList className="hidden **:data-[slot=badge]:size-5 **:data-[slot=badge]:rounded-full **:data-[slot=badge]:bg-muted-foreground/30 **:data-[slot=badge]:px-1 @4xl/main:flex">
          <TabsTrigger value="outline">Outline</TabsTrigger>
          <TabsTrigger value="past-performance">
            Past Performance <Badge variant="secondary">3</Badge>
          </TabsTrigger>
          <TabsTrigger value="key-personnel">
            Key Personnel <Badge variant="secondary">2</Badge>
          </TabsTrigger>
          <TabsTrigger value="focus-documents">Focus Documents</TabsTrigger>
        </TabsList>
        <div className="flex items-center gap-2">
          <DropdownMenu>
            <DropdownMenuTrigger asChild>
              <Button variant="outline" size="sm">
                <IconLayoutColumns />
                <span className="hidden lg:inline">Customize Columns</span>
                <span className="lg:hidden">Columns</span>
                <IconChevronDown />
              </Button>
            </DropdownMenuTrigger>
            <DropdownMenuContent align="end" className="w-56">
              {table
                .getAllColumns()
                .filter(
                  (column) =>
                    typeof column.accessorFn !== "undefined" &&
                    column.getCanHide()
                )
                .map((column) => {
                  return (
                    <DropdownMenuCheckboxItem
                      key={column.id}
                      className="capitalize"
                      checked={column.getIsVisible()}
                      onCheckedChange={(value) =>
                        column.toggleVisibility(!!value)
                      }
                    >
                      {column.id}
                    </DropdownMenuCheckboxItem>
                  )
                })}
            </DropdownMenuContent>
          </DropdownMenu>
          <Button variant="outline" size="sm">
            <IconPlus />
            <span className="hidden lg:inline">Add Section</span>
          </Button>
        </div>
      </div>
      <TabsContent
        value="outline"
        className="relative flex flex-col gap-4 overflow-auto px-4 lg:px-6"
      >
        <div className="overflow-hidden rounded-lg border">
          <DndContext
            collisionDetection={closestCenter}
            modifiers={[restrictToVerticalAxis]}
            onDragEnd={handleDragEnd}
            sensors={sensors}
            id={sortableId}
          >
            <Table>
              <TableHeader className="sticky top-0 z-10 bg-muted">
                {table.getHeaderGroups().map((headerGroup) => (
                  <TableRow key={headerGroup.id}>
                    {headerGroup.headers.map((header) => {
                      return (
                        <TableHead key={header.id} colSpan={header.colSpan}>
                          {header.isPlaceholder
                            ? null
                            : flexRender(
                                header.column.columnDef.header,
                                header.getContext()
                              )}
                        </TableHead>
                      )
                    })}
                  </TableRow>
                ))}
              </TableHeader>
              <TableBody className="**:data-[slot=table-cell]:first:w-8">
                {table.getRowModel().rows?.length ? (
                  <SortableContext
                    items={dataIds}
                    strategy={verticalListSortingStrategy}
                  >
                    {table.getRowModel().rows.map((row) => (
                      <DraggableRow key={row.id} row={row} />
                    ))}
                  </SortableContext>
                ) : (
                  <TableRow>
                    <TableCell
                      colSpan={columns.length}
                      className="h-24 text-center"
                    >
                      No results.
                    </TableCell>
                  </TableRow>
                )}
              </TableBody>
            </Table>
          </DndContext>
        </div>
        <div className="flex items-center justify-between px-4">
          <div className="hidden flex-1 text-sm text-muted-foreground lg:flex">
            {table.getFilteredSelectedRowModel().rows.length} of{" "}
            {table.getFilteredRowModel().rows.length} row(s) selected.
          </div>
          <div className="flex w-full items-center gap-8 lg:w-fit">
            <div className="hidden items-center gap-2 lg:flex">
              <Label htmlFor="rows-per-page" className="text-sm font-medium">
                Rows per page
              </Label>
              <Select
                value={`${table.getState().pagination.pageSize}`}
                onValueChange={(value) => {
                  table.setPageSize(Number(value))
                }}
              >
                <SelectTrigger size="sm" className="w-20" id="rows-per-page">
                  <SelectValue
                    placeholder={table.getState().pagination.pageSize}
                  />
                </SelectTrigger>
                <SelectContent side="top">
                  {[10, 20, 30, 40, 50].map((pageSize) => (
                    <SelectItem key={pageSize} value={`${pageSize}`}>
                      {pageSize}
                    </SelectItem>
                  ))}
                </SelectContent>
              </Select>
            </div>
            <div className="flex w-fit items-center justify-center text-sm font-medium">
              Page {table.getState().pagination.pageIndex + 1} of{" "}
              {table.getPageCount()}
            </div>
            <div className="ml-auto flex items-center gap-2 lg:ml-0">
              <Button
                variant="outline"
                className="hidden h-8 w-8 p-0 lg:flex"
                onClick={() => table.setPageIndex(0)}
                disabled={!table.getCanPreviousPage()}
              >
                <span className="sr-only">Go to first page</span>
                <IconChevronsLeft />
              </Button>
              <Button
                variant="outline"
                className="size-8"
                size="icon"
                onClick={() => table.previousPage()}
                disabled={!table.getCanPreviousPage()}
              >
                <span className="sr-only">Go to previous page</span>
                <IconChevronLeft />
              </Button>
              <Button
                variant="outline"
                className="size-8"
                size="icon"
                onClick={() => table.nextPage()}
                disabled={!table.getCanNextPage()}
              >
                <span className="sr-only">Go to next page</span>
                <IconChevronRight />
              </Button>
              <Button
                variant="outline"
                className="hidden size-8 lg:flex"
                size="icon"
                onClick={() => table.setPageIndex(table.getPageCount() - 1)}
                disabled={!table.getCanNextPage()}
              >
                <span className="sr-only">Go to last page</span>
                <IconChevronsRight />
              </Button>
            </div>
          </div>
        </div>
      </TabsContent>
      <TabsContent
        value="past-performance"
        className="flex flex-col px-4 lg:px-6"
      >
        <div className="aspect-video w-full flex-1 rounded-lg border border-dashed"></div>
      </TabsContent>
      <TabsContent value="key-personnel" className="flex flex-col px-4 lg:px-6">
        <div className="aspect-video w-full flex-1 rounded-lg border border-dashed"></div>
      </TabsContent>
      <TabsContent
        value="focus-documents"
        className="flex flex-col px-4 lg:px-6"
      >
        <div className="aspect-video w-full flex-1 rounded-lg border border-dashed"></div>
      </TabsContent>
    </Tabs>
  )
}

const chartData = [
  { month: "January", desktop: 186, mobile: 80 },
  { month: "February", desktop: 305, mobile: 200 },
  { month: "March", desktop: 237, mobile: 120 },
  { month: "April", desktop: 73, mobile: 190 },
  { month: "May", desktop: 209, mobile: 130 },
  { month: "June", desktop: 214, mobile: 140 },
]

const chartConfig = {
  desktop: {
    label: "Desktop",
    color: "var(--primary)",
  },
  mobile: {
    label: "Mobile",
    color: "var(--primary)",
  },
} satisfies ChartConfig

function TableCellViewer({ item }: { item: z.infer<typeof schema> }) {
  const isMobile = useIsMobile()

  return (
    <Drawer direction={isMobile ? "bottom" : "right"}>
      <DrawerTrigger asChild>
        <Button variant="link" className="w-fit px-0 text-left text-foreground">
          {item.header}
        </Button>
      </DrawerTrigger>
      <DrawerContent>
        <DrawerHeader className="gap-1">
          <DrawerTitle>{item.header}</DrawerTitle>
          <DrawerDescription>
            Showing total visitors for the last 6 months
          </DrawerDescription>
        </DrawerHeader>
        <div className="flex flex-col gap-4 overflow-y-auto px-4 text-sm">
          {!isMobile && (
            <>
              <ChartContainer config={chartConfig}>
                <AreaChart
                  accessibilityLayer
                  data={chartData}
                  margin={{
                    left: 0,
                    right: 10,
                  }}
                >
                  <CartesianGrid vertical={false} />
                  <XAxis
                    dataKey="month"
                    tickLine={false}
                    axisLine={false}
                    tickMargin={8}
                    tickFormatter={(value) => value.slice(0, 3)}
                    hide
                  />
                  <ChartTooltip
                    cursor={false}
                    content={<ChartTooltipContent indicator="dot" />}
                  />
                  <Area
                    dataKey="mobile"
                    type="natural"
                    fill="var(--color-mobile)"
                    fillOpacity={0.6}
                    stroke="var(--color-mobile)"
                    stackId="a"
                  />
                  <Area
                    dataKey="desktop"
                    type="natural"
                    fill="var(--color-desktop)"
                    fillOpacity={0.4}
                    stroke="var(--color-desktop)"
                    stackId="a"
                  />
                </AreaChart>
              </ChartContainer>
              <Separator />
              <div className="grid gap-2">
                <div className="flex gap-2 leading-none font-medium">
                  Trending up by 5.2% this month{" "}
                  <IconTrendingUp className="size-4" />
                </div>
                <div className="text-muted-foreground">
                  Showing total visitors for the last 6 months. This is just
                  some random text to test the layout. It spans multiple lines
                  and should wrap around.
                </div>
              </div>
              <Separator />
            </>
          )}
          <form className="flex flex-col gap-4">
            <div className="flex flex-col gap-3">
              <Label htmlFor="header">Header</Label>
              <Input id="header" defaultValue={item.header} />
            </div>
            <div className="grid grid-cols-2 gap-4">
              <div className="flex flex-col gap-3">
                <Label htmlFor="type">Type</Label>
                <Select defaultValue={item.type}>
                  <SelectTrigger id="type" className="w-full">
                    <SelectValue placeholder="Select a type" />
                  </SelectTrigger>
                  <SelectContent>
                    <SelectItem value="Table of Contents">
                      Table of Contents
                    </SelectItem>
                    <SelectItem value="Executive Summary">
                      Executive Summary
                    </SelectItem>
                    <SelectItem value="Technical Approach">
                      Technical Approach
                    </SelectItem>
                    <SelectItem value="Design">Design</SelectItem>
                    <SelectItem value="Capabilities">Capabilities</SelectItem>
                    <SelectItem value="Focus Documents">
                      Focus Documents
                    </SelectItem>
                    <SelectItem value="Narrative">Narrative</SelectItem>
                    <SelectItem value="Cover Page">Cover Page</SelectItem>
                  </SelectContent>
                </Select>
              </div>
              <div className="flex flex-col gap-3">
                <Label htmlFor="status">Status</Label>
                <Select defaultValue={item.status}>
                  <SelectTrigger id="status" className="w-full">
                    <SelectValue placeholder="Select a status" />
                  </SelectTrigger>
                  <SelectContent>
                    <SelectItem value="Done">Done</SelectItem>
                    <SelectItem value="In Progress">In Progress</SelectItem>
                    <SelectItem value="Not Started">Not Started</SelectItem>
                  </SelectContent>
                </Select>
              </div>
            </div>
            <div className="grid grid-cols-2 gap-4">
              <div className="flex flex-col gap-3">
                <Label htmlFor="target">Target</Label>
                <Input id="target" defaultValue={item.target} />
              </div>
              <div className="flex flex-col gap-3">
                <Label htmlFor="limit">Limit</Label>
                <Input id="limit" defaultValue={item.limit} />
              </div>
            </div>
            <div className="flex flex-col gap-3">
              <Label htmlFor="reviewer">Reviewer</Label>
              <Select defaultValue={item.reviewer}>
                <SelectTrigger id="reviewer" className="w-full">
                  <SelectValue placeholder="Select a reviewer" />
                </SelectTrigger>
                <SelectContent>
                  <SelectItem value="Eddie Lake">Eddie Lake</SelectItem>
                  <SelectItem value="Jamik Tashpulatov">
                    Jamik Tashpulatov
                  </SelectItem>
                  <SelectItem value="Emily Whalen">Emily Whalen</SelectItem>
                </SelectContent>
              </Select>
            </div>
          </form>
        </div>
        <DrawerFooter>
          <Button>Submit</Button>
          <DrawerClose asChild>
            <Button variant="outline">Done</Button>
          </DrawerClose>
        </DrawerFooter>
      </DrawerContent>
    </Drawer>
  )
}


================================================
FILE: apps/v4/app/(app)/examples/dashboard/components/nav-documents.tsx
================================================
"use client"

import {
  IconDots,
  IconFolder,
  IconShare3,
  IconTrash,
  type Icon,
} from "@tabler/icons-react"

import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuSeparator,
  DropdownMenuTrigger,
} from "@/registry/new-york-v4/ui/dropdown-menu"
import {
  SidebarGroup,
  SidebarGroupLabel,
  SidebarMenu,
  SidebarMenuAction,
  SidebarMenuButton,
  SidebarMenuItem,
  useSidebar,
} from "@/registry/new-york-v4/ui/sidebar"

export function NavDocuments({
  items,
}: {
  items: {
    name: string
    url: string
    icon: Icon
  }[]
}) {
  const { isMobile } = useSidebar()

  return (
    <SidebarGroup className="group-data-[collapsible=icon]:hidden">
      <SidebarGroupLabel>Documents</SidebarGroupLabel>
      <SidebarMenu>
        {items.map((item) => (
          <SidebarMenuItem key={item.name}>
            <SidebarMenuButton asChild>
              <a href={item.url}>
                <item.icon />
                <span>{item.name}</span>
              </a>
            </SidebarMenuButton>
            <DropdownMenu>
              <DropdownMenuTrigger asChild>
                <SidebarMenuAction
                  showOnHover
                  className="rounded-sm data-[state=open]:bg-accent"
                >
                  <IconDots />
                  <span className="sr-only">More</span>
                </SidebarMenuAction>
              </DropdownMenuTrigger>
              <DropdownMenuContent
                className="w-24 rounded-lg"
                side={isMobile ? "bottom" : "right"}
                align={isMobile ? "end" : "start"}
              >
                <DropdownMenuItem>
                  <IconFolder />
                  <span>Open</span>
                </DropdownMenuItem>
                <DropdownMenuItem>
                  <IconShare3 />
                  <span>Share</span>
                </DropdownMenuItem>
                <DropdownMenuSeparator />
                <DropdownMenuItem variant="destructive">
                  <IconTrash />
                  <span>Delete</span>
                </DropdownMenuItem>
              </DropdownMenuContent>
            </DropdownMenu>
          </SidebarMenuItem>
        ))}
        <SidebarMenuItem>
          <SidebarMenuButton className="text-sidebar-foreground/70">
            <IconDots className="text-sidebar-foreground/70" />
            <span>More</span>
          </SidebarMenuButton>
        </SidebarMenuItem>
      </SidebarMenu>
    </SidebarGroup>
  )
}


================================================
FILE: apps/v4/app/(app)/examples/dashboard/components/nav-main.tsx
================================================
"use client"

import { type Icon } from "@tabler/icons-react"

import {
  SidebarGroup,
  SidebarGroupContent,
  SidebarGroupLabel,
  SidebarMenu,
  SidebarMenuButton,
  SidebarMenuItem,
} from "@/registry/new-york-v4/ui/sidebar"

export function NavMain({
  items,
}: {
  items: {
    title: string
    url: string
    icon?: Icon
  }[]
}) {
  return (
    <SidebarGroup>
      <SidebarGroupContent>
        <SidebarGroupLabel>Home</SidebarGroupLabel>
        <SidebarMenu>
          {items.map((item) => (
            <SidebarMenuItem key={item.title}>
              <SidebarMenuButton tooltip={item.title}>
                {item.icon && <item.icon />}
                <span>{item.title}</span>
              </SidebarMenuButton>
            </SidebarMenuItem>
          ))}
        </SidebarMenu>
      </SidebarGroupContent>
    </SidebarGroup>
  )
}


================================================
FILE: apps/v4/app/(app)/examples/dashboard/components/nav-secondary.tsx
================================================
"use client"

import * as React from "react"
import { type Icon } from "@tabler/icons-react"

import {
  SidebarGroup,
  SidebarGroupContent,
  SidebarMenu,
  SidebarMenuButton,
  SidebarMenuItem,
} from "@/registry/new-york-v4/ui/sidebar"

export function NavSecondary({
  items,
  ...props
}: {
  items: {
    title: string
    url: string
    icon: Icon
  }[]
} & React.ComponentPropsWithoutRef<typeof SidebarGroup>) {
  return (
    <SidebarGroup {...props}>
      <SidebarGroupContent>
        <SidebarMenu>
          {items.map((item) => (
            <SidebarMenuItem key={item.title}>
              <SidebarMenuButton asChild>
                <a href={item.url}>
                  <item.icon />
                  <span>{item.title}</span>
                </a>
              </SidebarMenuButton>
            </SidebarMenuItem>
          ))}
        </SidebarMenu>
      </SidebarGroupContent>
    </SidebarGroup>
  )
}


================================================
FILE: apps/v4/app/(app)/examples/dashboard/components/nav-user.tsx
================================================
"use client"

import {
  IconCreditCard,
  IconDotsVertical,
  IconLogout,
  IconNotification,
  IconUserCircle,
} from "@tabler/icons-react"

import {
  Avatar,
  AvatarFallback,
  AvatarImage,
} from "@/registry/new-york-v4/ui/avatar"
import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuGroup,
  DropdownMenuItem,
  DropdownMenuLabel,
  DropdownMenuSeparator,
  DropdownMenuTrigger,
} from "@/registry/new-york-v4/ui/dropdown-menu"
import {
  SidebarMenu,
  SidebarMenuButton,
  SidebarMenuItem,
  useSidebar,
} from "@/registry/new-york-v4/ui/sidebar"

export function NavUser({
  user,
}: {
  user: {
    name: string
    email: string
    avatar: string
  }
}) {
  const { isMobile } = useSidebar()

  return (
    <SidebarMenu>
      <SidebarMenuItem>
        <DropdownMenu>
          <DropdownMenuTrigger asChild>
            <SidebarMenuButton
              size="lg"
              className="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
            >
              <Avatar className="h-8 w-8 rounded-lg grayscale">
                <AvatarImage src={user.avatar} alt={user.name} />
                <AvatarFallback className="rounded-lg">CN</AvatarFallback>
              </Avatar>
              <div className="grid flex-1 text-left text-sm leading-tight">
                <span className="truncate font-medium">{user.name}</span>
                <span className="truncate text-xs text-muted-foreground">
                  {user.email}
                </span>
              </div>
              <IconDotsVertical className="ml-auto size-4" />
            </SidebarMenuButton>
          </DropdownMenuTrigger>
          <DropdownMenuContent
            className="w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg"
            side={isMobile ? "bottom" : "right"}
            align="end"
            sideOffset={4}
          >
            <DropdownMenuLabel className="p-0 font-normal">
              <div className="flex items-center gap-2 px-1 py-1.5 text-left text-sm">
                <Avatar className="h-8 w-8 rounded-lg">
                  <AvatarImage src={user.avatar} alt={user.name} />
                  <AvatarFallback className="rounded-lg">CN</AvatarFallback>
                </Avatar>
                <div className="grid flex-1 text-left text-sm leading-tight">
                  <span className="truncate font-medium">{user.name}</span>
                  <span className="truncate text-xs text-muted-foreground">
                    {user.email}
                  </span>
                </div>
              </div>
            </DropdownMenuLabel>
            <DropdownMenuSeparator />
            <DropdownMenuGroup>
              <DropdownMenuItem>
                <IconUserCircle />
                Account
              </DropdownMenuItem>
              <DropdownMenuItem>
                <IconCreditCard />
                Billing
              </DropdownMenuItem>
              <DropdownMenuItem>
                <IconNotification />
                Notifications
              </DropdownMenuItem>
            </DropdownMenuGroup>
            <DropdownMenuSeparator />
            <DropdownMenuItem>
              <IconLogout />
              Log out
            </DropdownMenuItem>
          </DropdownMenuContent>
        </DropdownMenu>
      </SidebarMenuItem>
    </SidebarMenu>
  )
}


================================================
FILE: apps/v4/app/(app)/examples/dashboard/components/section-cards.tsx
================================================
import { IconTrendingDown, IconTrendingUp } from "@tabler/icons-react"

import { Badge } from "@/registry/new-york-v4/ui/badge"
import {
  Card,
  CardAction,
  CardDescription,
  CardFooter,
  CardHeader,
  CardTitle,
} from "@/registry/new-york-v4/ui/card"

export function SectionCards() {
  return (
    <div className="grid grid-cols-1 gap-4 px-4 *:data-[slot=card]:bg-gradient-to-t *:data-[slot=card]:shadow-xs lg:px-6 @xl/main:grid-cols-2 @5xl/main:grid-cols-4">
      <Card className="@container/card">
        <CardHeader>
          <CardDescription>Total Revenue</CardDescription>
          <CardTitle className="text-2xl font-semibold tabular-nums @[250px]/card:text-3xl">
            $1,250.00
          </CardTitle>
          <CardAction>
            <Badge variant="outline">
              <IconTrendingUp />
              +12.5%
            </Badge>
          </CardAction>
        </CardHeader>
        <CardFooter className="flex-col items-start gap-1.5 text-sm">
          <div className="line-clamp-1 flex gap-2 font-medium">
            Trending up this month <IconTrendingUp className="size-4" />
          </div>
          <div className="text-muted-foreground">
            Visitors for the last 6 months
          </div>
        </CardFooter>
      </Card>
      <Card className="@container/card">
        <CardHeader>
          <CardDescription>New Customers</CardDescription>
          <CardTitle className="text-2xl font-semibold tabular-nums @[250px]/card:text-3xl">
            1,234
          </CardTitle>
          <CardAction>
            <Badge variant="outline">
              <IconTrendingDown />
              -20%
            </Badge>
          </CardAction>
        </CardHeader>
        <CardFooter className="flex-col items-start gap-1.5 text-sm">
          <div className="line-clamp-1 flex gap-2 font-medium">
            Down 20% this period <IconTrendingDown className="size-4" />
          </div>
          <div className="text-muted-foreground">
            Acquisition needs attention
          </div>
        </CardFooter>
      </Card>
      <Card className="@container/card">
        <CardHeader>
          <CardDescription>Active Accounts</CardDescription>
          <CardTitle className="text-2xl font-semibold tabular-nums @[250px]/card:text-3xl">
            45,678
          </CardTitle>
          <CardAction>
            <Badge variant="outline">
              <IconTrendingUp />
              +12.5%
            </Badge>
          </CardAction>
        </CardHeader>
        <CardFooter className="flex-col items-start gap-1.5 text-sm">
          <div className="line-clamp-1 flex gap-2 font-medium">
            Strong user retention <IconTrendingUp className="size-4" />
          </div>
          <div className="text-muted-foreground">Engagement exceed targets</div>
        </CardFooter>
      </Card>
      <Card className="@conta
Download .txt
Showing preview only (314K chars total). Download the full file or copy to clipboard to get everything.
gitextract_4oo2mby8/

├── .changeset/
│   ├── README.md
│   └── config.json
├── .claude/
│   └── settings.local.json
├── .commitlintrc.json
├── .cursor/
│   └── rules/
│       └── registry-bases-parity.mdc
├── .editorconfig
├── .eslintignore
├── .eslintrc.json
├── .github/
│   ├── DISCUSSION_TEMPLATE/
│   │   └── blocks-request.yml
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   └── feature_request.yml
│   ├── changeset-version.js
│   ├── dependabot.yml
│   ├── version-script-beta.js
│   ├── version-script-next.js
│   └── workflows/
│       ├── code-check.yml
│       ├── issue-stale.yml
│       ├── prerelease-comment.yml
│       ├── prerelease.yml
│       ├── release.yml
│       ├── test.yml
│       └── validate-registries.yml
├── .gitignore
├── .kodiak.toml
├── .npmrc
├── .nvmrc
├── .prettierignore
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── SECURITY.md
├── apps/
│   └── v4/
│       ├── .env.example
│       ├── .gitignore
│       ├── .prettierignore
│       ├── README.md
│       ├── app/
│       │   ├── (app)/
│       │   │   ├── (root)/
│       │   │   │   ├── components/
│       │   │   │   │   ├── appearance-settings.tsx
│       │   │   │   │   ├── button-group-demo.tsx
│       │   │   │   │   ├── button-group-input-group.tsx
│       │   │   │   │   ├── button-group-nested.tsx
│       │   │   │   │   ├── button-group-popover.tsx
│       │   │   │   │   ├── empty-avatar-group.tsx
│       │   │   │   │   ├── empty-input-group.tsx
│       │   │   │   │   ├── field-checkbox.tsx
│       │   │   │   │   ├── field-choice-card.tsx
│       │   │   │   │   ├── field-demo.tsx
│       │   │   │   │   ├── field-hear.tsx
│       │   │   │   │   ├── field-slider.tsx
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   ├── input-group-button.tsx
│       │   │   │   │   ├── input-group-demo.tsx
│       │   │   │   │   ├── input-group-textarea.tsx
│       │   │   │   │   ├── item-avatar.tsx
│       │   │   │   │   ├── item-demo.tsx
│       │   │   │   │   ├── notion-prompt-form.tsx
│       │   │   │   │   ├── spinner-badge.tsx
│       │   │   │   │   └── spinner-empty.tsx
│       │   │   │   └── page.tsx
│       │   │   ├── blocks/
│       │   │   │   ├── [...categories]/
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── layout.tsx
│       │   │   │   └── page.tsx
│       │   │   ├── charts/
│       │   │   │   ├── [type]/
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── charts.tsx
│       │   │   │   └── layout.tsx
│       │   │   ├── colors/
│       │   │   │   ├── layout.tsx
│       │   │   │   └── page.tsx
│       │   │   ├── docs/
│       │   │   │   ├── [[...slug]]/
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── changelog/
│       │   │   │   │   └── page.tsx
│       │   │   │   └── layout.tsx
│       │   │   ├── examples/
│       │   │   │   ├── authentication/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   └── user-auth-form.tsx
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── dashboard/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── app-sidebar.tsx
│       │   │   │   │   │   ├── chart-area-interactive.tsx
│       │   │   │   │   │   ├── data-table.tsx
│       │   │   │   │   │   ├── nav-documents.tsx
│       │   │   │   │   │   ├── nav-main.tsx
│       │   │   │   │   │   ├── nav-secondary.tsx
│       │   │   │   │   │   ├── nav-user.tsx
│       │   │   │   │   │   ├── section-cards.tsx
│       │   │   │   │   │   └── site-header.tsx
│       │   │   │   │   ├── data.json
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── layout.tsx
│       │   │   │   ├── playground/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── code-viewer.tsx
│       │   │   │   │   │   ├── maxlength-selector.tsx
│       │   │   │   │   │   ├── model-selector.tsx
│       │   │   │   │   │   ├── preset-actions.tsx
│       │   │   │   │   │   ├── preset-save.tsx
│       │   │   │   │   │   ├── preset-selector.tsx
│       │   │   │   │   │   ├── preset-share.tsx
│       │   │   │   │   │   ├── temperature-selector.tsx
│       │   │   │   │   │   └── top-p-selector.tsx
│       │   │   │   │   ├── data/
│       │   │   │   │   │   ├── models.ts
│       │   │   │   │   │   └── presets.ts
│       │   │   │   │   └── page.tsx
│       │   │   │   ├── rtl/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── appearance-settings.tsx
│       │   │   │   │   │   ├── button-group-demo.tsx
│       │   │   │   │   │   ├── button-group-input-group.tsx
│       │   │   │   │   │   ├── button-group-nested.tsx
│       │   │   │   │   │   ├── button-group-popover.tsx
│       │   │   │   │   │   ├── empty-avatar-group.tsx
│       │   │   │   │   │   ├── field-checkbox.tsx
│       │   │   │   │   │   ├── field-demo.tsx
│       │   │   │   │   │   ├── field-hear.tsx
│       │   │   │   │   │   ├── field-slider.tsx
│       │   │   │   │   │   ├── index.tsx
│       │   │   │   │   │   ├── input-group-button.tsx
│       │   │   │   │   │   ├── input-group-demo.tsx
│       │   │   │   │   │   ├── item-demo.tsx
│       │   │   │   │   │   ├── notion-prompt-form.tsx
│       │   │   │   │   │   ├── spinner-badge.tsx
│       │   │   │   │   │   └── spinner-empty.tsx
│       │   │   │   │   └── page.tsx
│       │   │   │   └── tasks/
│       │   │   │       ├── components/
│       │   │   │       │   ├── columns.tsx
│       │   │   │       │   ├── data-table-column-header.tsx
│       │   │   │       │   ├── data-table-faceted-filter.tsx
│       │   │   │       │   ├── data-table-pagination.tsx
│       │   │   │       │   ├── data-table-row-actions.tsx
│       │   │   │       │   ├── data-table-toolbar.tsx
│       │   │   │       │   ├── data-table-view-options.tsx
│       │   │   │       │   ├── data-table.tsx
│       │   │   │       │   └── user-nav.tsx
│       │   │   │       ├── data/
│       │   │   │       │   ├── data.tsx
│       │   │   │       │   ├── schema.ts
│       │   │   │       │   ├── seed.ts
│       │   │   │       │   └── tasks.json
│       │   │   │       └── page.tsx
│       │   │   ├── layout.tsx
│       │   │   ├── llm/
│       │   │   │   └── [[...slug]]/
│       │   │   │       └── route.ts
│       │   │   └── themes/
│       │   │       ├── layout.tsx
│       │   │       └── page.tsx
│       │   ├── (create)/
│       │   │   ├── components/
│       │   │   │   ├── accent-picker.tsx
│       │   │   │   ├── action-menu.tsx
│       │   │   │   ├── base-color-picker.tsx
│       │   │   │   ├── base-picker.tsx
│       │   │   │   ├── chart-color-picker.tsx
│       │   │   │   ├── copy-preset.tsx
│       │   │   │   ├── customizer.tsx
│       │   │   │   ├── design-system-provider.tsx
│       │   │   │   ├── font-picker.tsx
│       │   │   │   ├── history-buttons.tsx
│       │   │   │   ├── icon-library-picker.tsx
│       │   │   │   ├── icon-placeholder.tsx
│       │   │   │   ├── item-explorer.tsx
│       │   │   │   ├── lock-button.tsx
│       │   │   │   ├── main-menu.tsx
│       │   │   │   ├── menu-picker.tsx
│       │   │   │   ├── mode-switcher.tsx
│       │   │   │   ├── picker.tsx
│       │   │   │   ├── preset-handler.tsx
│       │   │   │   ├── preset-picker.tsx
│       │   │   │   ├── preview-style.tsx
│       │   │   │   ├── preview.tsx
│       │   │   │   ├── project-form.tsx
│       │   │   │   ├── radius-picker.tsx
│       │   │   │   ├── random-button.tsx
│       │   │   │   ├── reset-button.tsx
│       │   │   │   ├── share-button.tsx
│       │   │   │   ├── style-picker.tsx
│       │   │   │   ├── theme-picker.tsx
│       │   │   │   ├── v0-button.tsx
│       │   │   │   └── welcome-dialog.tsx
│       │   │   ├── create/
│       │   │   │   ├── layout.tsx
│       │   │   │   └── page.tsx
│       │   │   ├── hooks/
│       │   │   │   ├── use-action-menu.ts
│       │   │   │   ├── use-design-system.ts
│       │   │   │   ├── use-history.tsx
│       │   │   │   ├── use-iframe-sync.tsx
│       │   │   │   ├── use-locks.tsx
│       │   │   │   ├── use-random.tsx
│       │   │   │   ├── use-reset.tsx
│       │   │   │   └── use-theme-toggle.tsx
│       │   │   ├── init/
│       │   │   │   ├── md/
│       │   │   │   │   ├── build-instructions.ts
│       │   │   │   │   └── route.ts
│       │   │   │   ├── parse-config.test.ts
│       │   │   │   ├── parse-config.ts
│       │   │   │   ├── route.ts
│       │   │   │   └── v0/
│       │   │   │       └── route.ts
│       │   │   ├── lib/
│       │   │   │   ├── api.ts
│       │   │   │   ├── constants.ts
│       │   │   │   ├── fonts.ts
│       │   │   │   ├── merge-theme.ts
│       │   │   │   ├── preset-code.ts
│       │   │   │   ├── preset-query.test.ts
│       │   │   │   ├── preset-query.ts
│       │   │   │   ├── randomize-biases.ts
│       │   │   │   ├── search-params.ts
│       │   │   │   ├── templates.ts
│       │   │   │   ├── utils.ts
│       │   │   │   ├── v0.test.ts
│       │   │   │   └── v0.ts
│       │   │   └── preview/
│       │   │       └── [base]/
│       │   │           └── [name]/
│       │   │               └── page.tsx
│       │   ├── (examples)/
│       │   │   ├── dashboard/
│       │   │   │   ├── components/
│       │   │   │   │   ├── app-sidebar.tsx
│       │   │   │   │   ├── chart-area-interactive.tsx
│       │   │   │   │   ├── data-table.tsx
│       │   │   │   │   ├── mode-toggle.tsx
│       │   │   │   │   ├── nav-documents.tsx
│       │   │   │   │   ├── nav-main.tsx
│       │   │   │   │   ├── nav-secondary.tsx
│       │   │   │   │   ├── nav-user.tsx
│       │   │   │   │   ├── section-cards.tsx
│       │   │   │   │   ├── site-header.tsx
│       │   │   │   │   └── theme-selector.tsx
│       │   │   │   ├── data.json
│       │   │   │   ├── layout.tsx
│       │   │   │   ├── page.tsx
│       │   │   │   └── theme.css
│       │   │   └── dashboard-03/
│       │   │       ├── components/
│       │   │       │   ├── analytics-date-picker.tsx
│       │   │       │   ├── app-sidebar.tsx
│       │   │       │   ├── chart-revenue.tsx
│       │   │       │   ├── chart-visitors.tsx
│       │   │       │   ├── mode-toggle.tsx
│       │   │       │   ├── nav-main.tsx
│       │   │       │   ├── nav-secondary.tsx
│       │   │       │   ├── nav-user.tsx
│       │   │       │   ├── products-table.tsx
│       │   │       │   ├── search-form.tsx
│       │   │       │   └── site-header.tsx
│       │   │       ├── customers/
│       │   │       │   └── page.tsx
│       │   │       ├── layout.tsx
│       │   │       ├── page.tsx
│       │   │       └── settings/
│       │   │           └── page.tsx
│       │   ├── (internal)/
│       │   │   └── sink/
│       │   │       ├── (pages)/
│       │   │       │   ├── forms/
│       │   │       │   │   ├── appearance-settings.tsx
│       │   │       │   │   ├── chat-settings.tsx
│       │   │       │   │   ├── display-settings.tsx
│       │   │       │   │   ├── notion-prompt-form.tsx
│       │   │       │   │   ├── page.tsx
│       │   │       │   │   ├── ship-registration-form.tsx
│       │   │       │   │   └── shipping-form.tsx
│       │   │       │   ├── next-form/
│       │   │       │   │   ├── actions.ts
│       │   │       │   │   ├── example-form.tsx
│       │   │       │   │   └── page.tsx
│       │   │       │   ├── react-hook-form/
│       │   │       │   │   ├── example-form.tsx
│       │   │       │   │   └── page.tsx
│       │   │       │   ├── schema.ts
│       │   │       │   └── tanstack-form/
│       │   │       │       ├── example-form.tsx
│       │   │       │       └── page.tsx
│       │   │       ├── [name]/
│       │   │       │   └── page.tsx
│       │   │       ├── component-registry.ts
│       │   │       ├── components/
│       │   │       │   ├── accordion-demo.tsx
│       │   │       │   ├── alert-demo.tsx
│       │   │       │   ├── alert-dialog-demo.tsx
│       │   │       │   ├── app-breadcrumbs.tsx
│       │   │       │   ├── app-sidebar.tsx
│       │   │       │   ├── aspect-ratio-demo.tsx
│       │   │       │   ├── avatar-demo.tsx
│       │   │       │   ├── badge-demo.tsx
│       │   │       │   ├── breadcrumb-demo.tsx
│       │   │       │   ├── button-demo.tsx
│       │   │       │   ├── button-group-demo.tsx
│       │   │       │   ├── calendar-demo.tsx
│       │   │       │   ├── card-demo.tsx
│       │   │       │   ├── carousel-demo.tsx
│       │   │       │   ├── chart-area-demo.tsx
│       │   │       │   ├── chart-bar-demo.tsx
│       │   │       │   ├── chart-bar-mixed.tsx
│       │   │       │   ├── chart-demo.tsx
│       │   │       │   ├── chart-line-demo.tsx
│       │   │       │   ├── checkbox-demo.tsx
│       │   │       │   ├── collapsible-demo.tsx
│       │   │       │   ├── combobox-demo.tsx
│       │   │       │   ├── command-demo.tsx
│       │   │       │   ├── component-wrapper.tsx
│       │   │       │   ├── context-menu-demo.tsx
│       │   │       │   ├── date-picker-demo.tsx
│       │   │       │   ├── dialog-demo.tsx
│       │   │       │   ├── drawer-demo.tsx
│       │   │       │   ├── dropdown-menu-demo.tsx
│       │   │       │   ├── empty-demo.tsx
│       │   │       │   ├── field-demo.tsx
│       │   │       │   ├── form-demo.tsx
│       │   │       │   ├── hover-card-demo.tsx
│       │   │       │   ├── input-demo.tsx
│       │   │       │   ├── input-group-demo.tsx
│       │   │       │   ├── input-otp-demo.tsx
│       │   │       │   ├── item-demo.tsx
│       │   │       │   ├── kbd-demo.tsx
│       │   │       │   ├── label-demo.tsx
│       │   │       │   ├── menubar-demo.tsx
│       │   │       │   ├── native-select-demo.tsx
│       │   │       │   ├── navigation-menu-demo.tsx
│       │   │       │   ├── pagination-demo.tsx
│       │   │       │   ├── popover-demo.tsx
│       │   │       │   ├── progress-demo.tsx
│       │   │       │   ├── radio-group-demo.tsx
│       │   │       │   ├── resizable-demo.tsx
│       │   │       │   ├── scroll-area-demo.tsx
│       │   │       │   ├── select-demo.tsx
│       │   │       │   ├── separator-demo.tsx
│       │   │       │   ├── sheet-demo.tsx
│       │   │       │   ├── skeleton-demo.tsx
│       │   │       │   ├── slider-demo.tsx
│       │   │       │   ├── sonner-demo.tsx
│       │   │       │   ├── spinner-demo.tsx
│       │   │       │   ├── switch-demo.tsx
│       │   │       │   ├── table-demo.tsx
│       │   │       │   ├── tabs-demo.tsx
│       │   │       │   ├── textarea-demo.tsx
│       │   │       │   ├── theme-selector.tsx
│       │   │       │   ├── toggle-demo.tsx
│       │   │       │   ├── toggle-group-demo.tsx
│       │   │       │   └── tooltip-demo.tsx
│       │   │       ├── layout.tsx
│       │   │       └── page.tsx
│       │   ├── (view)/
│       │   │   └── view/
│       │   │       └── [style]/
│       │   │           └── [name]/
│       │   │               ├── component-preview.tsx
│       │   │               └── page.tsx
│       │   ├── api/
│       │   │   └── search/
│       │   │       └── route.ts
│       │   ├── layout.tsx
│       │   ├── og/
│       │   │   ├── geist-regular-otf.json
│       │   │   ├── geist-semibold-otf.json
│       │   │   ├── geistmono-regular-otf.json
│       │   │   └── route.tsx
│       │   └── rss.xml/
│       │       └── route.ts
│       ├── components/
│       │   ├── active-theme.tsx
│       │   ├── analytics.tsx
│       │   ├── announcement.tsx
│       │   ├── block-display.tsx
│       │   ├── block-image.tsx
│       │   ├── block-viewer.tsx
│       │   ├── blocks-nav.tsx
│       │   ├── callout.tsx
│       │   ├── cards/
│       │   │   ├── activity-goal.tsx
│       │   │   ├── calendar.tsx
│       │   │   ├── chat.tsx
│       │   │   ├── cookie-settings.tsx
│       │   │   ├── create-account.tsx
│       │   │   ├── exercise-minutes.tsx
│       │   │   ├── forms.tsx
│       │   │   ├── index.tsx
│       │   │   ├── payment-method.tsx
│       │   │   ├── payments.tsx
│       │   │   ├── report-issue.tsx
│       │   │   ├── share.tsx
│       │   │   ├── stats.tsx
│       │   │   └── team-members.tsx
│       │   ├── chart-code-viewer.tsx
│       │   ├── chart-copy-button.tsx
│       │   ├── chart-display.tsx
│       │   ├── chart-iframe.tsx
│       │   ├── chart-toolbar.tsx
│       │   ├── charts-nav.tsx
│       │   ├── code-block-command.tsx
│       │   ├── code-collapsible-wrapper.tsx
│       │   ├── code-tabs.tsx
│       │   ├── color-format-selector.tsx
│       │   ├── color-palette.tsx
│       │   ├── color.tsx
│       │   ├── colors-nav.tsx
│       │   ├── command-menu.tsx
│       │   ├── component-preview-tabs.tsx
│       │   ├── component-preview.tsx
│       │   ├── component-source.tsx
│       │   ├── component-wrapper.tsx
│       │   ├── components-list.tsx
│       │   ├── copy-button.tsx
│       │   ├── directory-add-button.tsx
│       │   ├── directory-list.tsx
│       │   ├── docs-base-switcher.tsx
│       │   ├── docs-breadcrumb.tsx
│       │   ├── docs-copy-page.tsx
│       │   ├── docs-page-links.tsx
│       │   ├── docs-sidebar.tsx
│       │   ├── docs-toc.tsx
│       │   ├── examples-nav.tsx
│       │   ├── github-link.tsx
│       │   ├── icons.tsx
│       │   ├── language-selector.tsx
│       │   ├── lo-fi/
│       │   │   ├── accordion.tsx
│       │   │   ├── alert.tsx
│       │   │   ├── atom.tsx
│       │   │   ├── component.tsx
│       │   │   └── index.tsx
│       │   ├── main-nav.tsx
│       │   ├── mobile-nav.tsx
│       │   ├── mode-switcher.tsx
│       │   ├── nav-header.tsx
│       │   ├── nav-user.tsx
│       │   ├── open-in-v0-button.tsx
│       │   ├── open-in-v0-cta.tsx
│       │   ├── page-header.tsx
│       │   ├── page-nav.tsx
│       │   ├── search-directory.tsx
│       │   ├── site-config.tsx
│       │   ├── site-footer.tsx
│       │   ├── site-header.tsx
│       │   ├── tailwind-indicator.tsx
│       │   ├── theme-customizer.tsx
│       │   ├── theme-provider.tsx
│       │   └── theme-selector.tsx
│       ├── components.json
│       ├── content/
│       │   └── docs/
│       │       ├── (root)/
│       │       │   ├── _blocks.mdx
│       │       │   ├── cli.mdx
│       │       │   ├── components-json.mdx
│       │       │   ├── directory.mdx
│       │       │   ├── figma.mdx
│       │       │   ├── index.mdx
│       │       │   ├── javascript.mdx
│       │       │   ├── legacy.mdx
│       │       │   ├── mcp.mdx
│       │       │   ├── meta.json
│       │       │   ├── monorepo.mdx
│       │       │   ├── new.mdx
│       │       │   ├── react-19.mdx
│       │       │   ├── skills.mdx
│       │       │   ├── tailwind-v4.mdx
│       │       │   ├── theming.mdx
│       │       │   └── v0.mdx
│       │       ├── changelog/
│       │       │   ├── 2023-06-new-cli.mdx
│       │       │   ├── 2023-07-javascript.mdx
│       │       │   ├── 2023-12-new-components.mdx
│       │       │   ├── 2024-03-blocks.mdx
│       │       │   ├── 2024-03-breadcrumb-otp.mdx
│       │       │   ├── 2024-04-lift-mode.mdx
│       │       │   ├── 2024-08-npx-shadcn-init.mdx
│       │       │   ├── 2024-10-react-19.mdx
│       │       │   ├── 2024-10-sidebar.mdx
│       │       │   ├── 2024-11-icons.mdx
│       │       │   ├── 2024-12-monorepo.mdx
│       │       │   ├── 2025-01-blocks.mdx
│       │       │   ├── 2025-02-registry-schema.mdx
│       │       │   ├── 2025-02-tailwind-v4.mdx
│       │       │   ├── 2025-04-cross-framework.mdx
│       │       │   ├── 2025-04-mcp.mdx
│       │       │   ├── 2025-04-shadcn-2-5.mdx
│       │       │   ├── 2025-05-new-site.mdx
│       │       │   ├── 2025-06-calendar.mdx
│       │       │   ├── 2025-06-radix-ui.mdx
│       │       │   ├── 2025-07-local-file-support.mdx
│       │       │   ├── 2025-07-universal-registry.mdx
│       │       │   ├── 2025-08-cli-3-mcp.mdx
│       │       │   ├── 2025-09-registry-index.mdx
│       │       │   ├── 2025-10-new-components.mdx
│       │       │   ├── 2025-10-registry-directory.mdx
│       │       │   ├── 2025-12-shadcn-create.mdx
│       │       │   ├── 2026-01-base-ui.mdx
│       │       │   ├── 2026-01-inline-side-styles.mdx
│       │       │   ├── 2026-01-rtl.mdx
│       │       │   ├── 2026-02-blocks.mdx
│       │       │   ├── 2026-02-radix-ui.mdx
│       │       │   ├── 2026-03-cli-v4.mdx
│       │       │   ├── index.mdx
│       │       │   └── meta.json
│       │       ├── components/
│       │       │   ├── base/
│       │       │   │   ├── accordion.mdx
│       │       │   │   ├── alert-dialog.mdx
│       │       │   │   ├── alert.mdx
│       │       │   │   ├── aspect-ratio.mdx
│       │       │   │   ├── avatar.mdx
│       │       │   │   ├── badge.mdx
│       │       │   │   ├── breadcrumb.mdx
│       │       │   │   ├── button-group.mdx
│       │       │   │   ├── button.mdx
│       │       │   │   ├── calendar.mdx
│       │       │   │   ├── card.mdx
│       │       │   │   ├── carousel.mdx
│       │       │   │   ├── chart.mdx
│       │       │   │   ├── checkbox.mdx
│       │       │   │   ├── collapsible.mdx
│       │       │   │   ├── combobox.mdx
│       │       │   │   ├── command.mdx
│       │       │   │   ├── context-menu.mdx
│       │       │   │   ├── data-table.mdx
│       │       │   │   ├── date-picker.mdx
│       │       │   │   ├── dialog.mdx
│       │       │   │   ├── direction.mdx
│       │       │   │   ├── drawer.mdx
│       │       │   │   ├── dropdown-menu.mdx
│       │       │   │   ├── empty.mdx
│       │       │   │   ├── field.mdx
│       │       │   │   ├── hover-card.mdx
│       │       │   │   ├── input-group.mdx
│       │       │   │   ├── input-otp.mdx
│       │       │   │   ├── input.mdx
│       │       │   │   ├── item.mdx
│       │       │   │   ├── kbd.mdx
│       │       │   │   ├── label.mdx
│       │       │   │   ├── menubar.mdx
│       │       │   │   ├── meta.json
│       │       │   │   ├── native-select.mdx
│       │       │   │   ├── navigation-menu.mdx
│       │       │   │   ├── pagination.mdx
│       │       │   │   ├── popover.mdx
│       │       │   │   ├── progress.mdx
│       │       │   │   ├── radio-group.mdx
│       │       │   │   ├── resizable.mdx
│       │       │   │   ├── scroll-area.mdx
│       │       │   │   ├── select.mdx
│       │       │   │   ├── separator.mdx
│       │       │   │   ├── sheet.mdx
│       │       │   │   ├── sidebar.mdx
│       │       │   │   ├── skeleton.mdx
│       │       │   │   ├── slider.mdx
│       │       │   │   ├── sonner.mdx
│       │       │   │   ├── spinner.mdx
│       │       │   │   ├── switch.mdx
│       │       │   │   ├── table.mdx
│       │       │   │   ├── tabs.mdx
│       │       │   │   ├── textarea.mdx
│       │       │   │   ├── toast.mdx
│       │       │   │   ├── toggle-group.mdx
│       │       │   │   ├── toggle.mdx
│       │       │   │   ├── tooltip.mdx
│       │       │   │   └── typography.mdx
│       │       │   ├── index.mdx
│       │       │   ├── meta.json
│       │       │   └── radix/
│       │       │       ├── accordion.mdx
│       │       │       ├── alert-dialog.mdx
│       │       │       ├── alert.mdx
│       │       │       ├── aspect-ratio.mdx
│       │       │       ├── avatar.mdx
│       │       │       ├── badge.mdx
│       │       │       ├── breadcrumb.mdx
│       │       │       ├── button-group.mdx
│       │       │       ├── button.mdx
│       │       │       ├── calendar.mdx
│       │       │       ├── card.mdx
│       │       │       ├── carousel.mdx
│       │       │       ├── chart.mdx
│       │       │       ├── checkbox.mdx
│       │       │       ├── collapsible.mdx
│       │       │       ├── combobox.mdx
│       │       │       ├── command.mdx
│       │       │       ├── context-menu.mdx
│       │       │       ├── data-table.mdx
│       │       │       ├── date-picker.mdx
│       │       │       ├── dialog.mdx
│       │       │       ├── direction.mdx
│       │       │       ├── drawer.mdx
│       │       │       ├── dropdown-menu.mdx
│       │       │       ├── empty.mdx
│       │       │       ├── field.mdx
│       │       │       ├── hover-card.mdx
│       │       │       ├── input-group.mdx
│       │       │       ├── input-otp.mdx
│       │       │       ├── input.mdx
│       │       │       ├── item.mdx
│       │       │       ├── kbd.mdx
│       │       │       ├── label.mdx
│       │       │       ├── menubar.mdx
│       │       │       ├── meta.json
│       │       │       ├── native-select.mdx
│       │       │       ├── navigation-menu.mdx
│       │       │       ├── pagination.mdx
│       │       │       ├── popover.mdx
│       │       │       ├── progress.mdx
│       │       │       ├── radio-group.mdx
│       │       │       ├── resizable.mdx
│       │       │       ├── scroll-area.mdx
│       │       │       ├── select.mdx
│       │       │       ├── separator.mdx
│       │       │       ├── sheet.mdx
│       │       │       ├── sidebar.mdx
│       │       │       ├── skeleton.mdx
│       │       │       ├── slider.mdx
│       │       │       ├── sonner.mdx
│       │       │       ├── spinner.mdx
│       │       │       ├── switch.mdx
│       │       │       ├── table.mdx
│       │       │       ├── tabs.mdx
│       │       │       ├── textarea.mdx
│       │       │       ├── toast.mdx
│       │       │       ├── toggle-group.mdx
│       │       │       ├── toggle.mdx
│       │       │       ├── tooltip.mdx
│       │       │       └── typography.mdx
│       │       ├── dark-mode/
│       │       │   ├── astro.mdx
│       │       │   ├── index.mdx
│       │       │   ├── meta.json
│       │       │   ├── next.mdx
│       │       │   ├── remix.mdx
│       │       │   └── vite.mdx
│       │       ├── forms/
│       │       │   ├── index.mdx
│       │       │   ├── meta.json
│       │       │   ├── next.mdx
│       │       │   ├── react-hook-form.mdx
│       │       │   └── tanstack-form.mdx
│       │       ├── installation/
│       │       │   ├── astro.mdx
│       │       │   ├── gatsby.mdx
│       │       │   ├── index.mdx
│       │       │   ├── laravel.mdx
│       │       │   ├── manual.mdx
│       │       │   ├── meta.json
│       │       │   ├── next.mdx
│       │       │   ├── react-router.mdx
│       │       │   ├── remix.mdx
│       │       │   ├── tanstack-router.mdx
│       │       │   ├── tanstack.mdx
│       │       │   └── vite.mdx
│       │       ├── meta.json
│       │       ├── registry/
│       │       │   ├── authentication.mdx
│       │       │   ├── examples.mdx
│       │       │   ├── faq.mdx
│       │       │   ├── getting-started.mdx
│       │       │   ├── index.mdx
│       │       │   ├── mcp.mdx
│       │       │   ├── meta.json
│       │       │   ├── namespace.mdx
│       │       │   ├── open-in-v0.mdx
│       │       │   ├── registry-index.mdx
│       │       │   ├── registry-item-json.mdx
│       │       │   └── registry-json.mdx
│       │       └── rtl/
│       │           ├── index.mdx
│       │           ├── meta.json
│       │           ├── next.mdx
│       │           ├── start.mdx
│       │           └── vite.mdx
│       ├── eslint.config.mjs
│       ├── examples/
│       │   ├── README.md
│       │   ├── __index__.tsx
│       │   ├── base/
│       │   │   ├── accordion-basic.tsx
│       │   │   ├── accordion-borders.tsx
│       │   │   ├── accordion-card.tsx
│       │   │   ├── accordion-demo.tsx
│       │   │   ├── accordion-disabled.tsx
│       │   │   ├── accordion-multiple.tsx
│       │   │   ├── accordion-rtl.tsx
│       │   │   ├── alert-action.tsx
│       │   │   ├── alert-basic.tsx
│       │   │   ├── alert-colors.tsx
│       │   │   ├── alert-demo.tsx
│       │   │   ├── alert-destructive.tsx
│       │   │   ├── alert-dialog-basic.tsx
│       │   │   ├── alert-dialog-demo.tsx
│       │   │   ├── alert-dialog-destructive.tsx
│       │   │   ├── alert-dialog-media.tsx
│       │   │   ├── alert-dialog-rtl.tsx
│       │   │   ├── alert-dialog-small-media.tsx
│       │   │   ├── alert-dialog-small.tsx
│       │   │   ├── alert-rtl.tsx
│       │   │   ├── aspect-ratio-demo.tsx
│       │   │   ├── aspect-ratio-portrait.tsx
│       │   │   ├── aspect-ratio-rtl.tsx
│       │   │   ├── aspect-ratio-square.tsx
│       │   │   ├── avatar-badge-icon.tsx
│       │   │   ├── avatar-badge.tsx
│       │   │   ├── avatar-basic.tsx
│       │   │   ├── avatar-demo.tsx
│       │   │   ├── avatar-dropdown.tsx
│       │   │   ├── avatar-group-count-icon.tsx
│       │   │   ├── avatar-group-count.tsx
│       │   │   ├── avatar-group.tsx
│       │   │   ├── avatar-rtl.tsx
│       │   │   ├── avatar-size.tsx
│       │   │   ├── badge-colors.tsx
│       │   │   ├── badge-demo.tsx
│       │   │   ├── badge-icon.tsx
│       │   │   ├── badge-link.tsx
│       │   │   ├── badge-rtl.tsx
│       │   │   ├── badge-spinner.tsx
│       │   │   ├── badge-variants.tsx
│       │   │   ├── breadcrumb-basic.tsx
│       │   │   ├── breadcrumb-demo.tsx
│       │   │   ├── breadcrumb-dropdown.tsx
│       │   │   ├── breadcrumb-ellipsis.tsx
│       │   │   ├── breadcrumb-link.tsx
│       │   │   ├── breadcrumb-rtl.tsx
│       │   │   ├── breadcrumb-separator.tsx
│       │   │   ├── button-default.tsx
│       │   │   ├── button-demo.tsx
│       │   │   ├── button-destructive.tsx
│       │   │   ├── button-ghost.tsx
│       │   │   ├── button-group-demo.tsx
│       │   │   ├── button-group-dropdown.tsx
│       │   │   ├── button-group-input-group.tsx
│       │   │   ├── button-group-input.tsx
│       │   │   ├── button-group-nested.tsx
│       │   │   ├── button-group-orientation.tsx
│       │   │   ├── button-group-popover.tsx
│       │   │   ├── button-group-rtl.tsx
│       │   │   ├── button-group-select.tsx
│       │   │   ├── button-group-separator.tsx
│       │   │   ├── button-group-size.tsx
│       │   │   ├── button-group-split.tsx
│       │   │   ├── button-icon.tsx
│       │   │   ├── button-link.tsx
│       │   │   ├── button-outline.tsx
│       │   │   ├── button-render.tsx
│       │   │   ├── button-rounded.tsx
│       │   │   ├── button-rtl.tsx
│       │   │   ├── button-secondary.tsx
│       │   │   ├── button-size.tsx
│       │   │   ├── button-spinner.tsx
│       │   │   ├── button-with-icon.tsx
│       │   │   ├── calendar-basic.tsx
│       │   │   ├── calendar-booked-dates.tsx
│       │   │   ├── calendar-caption.tsx
│       │   │   ├── calendar-custom-days.tsx
│       │   │   ├── calendar-demo.tsx
│       │   │   ├── calendar-hijri.tsx
│       │   │   ├── calendar-multiple.tsx
│       │   │   ├── calendar-presets.tsx
│       │   │   ├── calendar-range.tsx
│       │   │   ├── calendar-rtl.tsx
│       │   │   ├── calendar-time.tsx
│       │   │   ├── calendar-week-numbers.tsx
│       │   │   ├── card-demo.tsx
│       │   │   ├── card-image.tsx
│       │   │   ├── card-rtl.tsx
│       │   │   ├── card-small.tsx
│       │   │   ├── carousel-api.tsx
│       │   │   ├── carousel-demo.tsx
│       │   │   ├── carousel-multiple.tsx
│       │   │   ├── carousel-orientation.tsx
│       │   │   ├── carousel-plugin.tsx
│       │   │   ├── carousel-rtl.tsx
│       │   │   ├── carousel-size.tsx
│       │   │   ├── carousel-spacing.tsx
│       │   │   ├── chart-demo.tsx
│       │   │   ├── chart-example-axis.tsx
│       │   │   ├── chart-example-grid.tsx
│       │   │   ├── chart-example-legend.tsx
│       │   │   ├── chart-example-tooltip.tsx
│       │   │   ├── chart-example.tsx
│       │   │   ├── chart-rtl.tsx
│       │   │   ├── chart-tooltip.tsx
│       │   │   ├── checkbox-basic.tsx
│       │   │   ├── checkbox-demo.tsx
│       │   │   ├── checkbox-description.tsx
│       │   │   ├── checkbox-disabled.tsx
│       │   │   ├── checkbox-group.tsx
│       │   │   ├── checkbox-invalid.tsx
│       │   │   ├── checkbox-rtl.tsx
│       │   │   ├── checkbox-table.tsx
│       │   │   ├── collapsible-basic.tsx
│       │   │   ├── collapsible-demo.tsx
│       │   │   ├── collapsible-file-tree.tsx
│       │   │   ├── collapsible-rtl.tsx
│       │   │   ├── collapsible-settings.tsx
│       │   │   ├── combobox-auto-highlight.tsx
│       │   │   ├── combobox-basic.tsx
│       │   │   ├── combobox-clear.tsx
│       │   │   ├── combobox-custom.tsx
│       │   │   ├── combobox-demo.tsx
│       │   │   ├── combobox-disabled.tsx
│       │   │   ├── combobox-groups.tsx
│       │   │   ├── combobox-input-group.tsx
│       │   │   ├── combobox-invalid.tsx
│       │   │   ├── combobox-multiple.tsx
│       │   │   ├── combobox-popup.tsx
│       │   │   ├── combobox-rtl.tsx
│       │   │   ├── command-basic.tsx
│       │   │   ├── command-demo.tsx
│       │   │   ├── command-dialog.tsx
│       │   │   ├── command-groups.tsx
│       │   │   ├── command-rtl.tsx
│       │   │   ├── command-scrollable.tsx
│       │   │   ├── command-shortcuts.tsx
│       │   │   ├── context-menu-basic.tsx
│       │   │   ├── context-menu-checkboxes.tsx
│       │   │   ├── context-menu-demo.tsx
│       │   │   ├── context-menu-destructive.tsx
│       │   │   ├── context-menu-groups.tsx
│       │   │   ├── context-menu-icons.tsx
│       │   │   ├── context-menu-radio.tsx
│       │   │   ├── context-menu-rtl.tsx
│       │   │   ├── context-menu-shortcuts.tsx
│       │   │   ├── context-menu-sides.tsx
│       │   │   ├── context-menu-submenu.tsx
│       │   │   ├── data-picker-with-dropdowns.tsx
│       │   │   ├── data-table-demo.tsx
│       │   │   ├── data-table-rtl.tsx
│       │   │   ├── date-picker-basic.tsx
│       │   │   ├── date-picker-demo.tsx
│       │   │   ├── date-picker-dob.tsx
│       │   │   ├── date-picker-input.tsx
│       │   │   ├── date-picker-natural-language.tsx
│       │   │   ├── date-picker-range.tsx
│       │   │   ├── date-picker-rtl.tsx
│       │   │   ├── date-picker-time.tsx
│       │   │   ├── dialog-close-button.tsx
│       │   │   ├── dialog-demo.tsx
│       │   │   ├── dialog-no-close-button.tsx
│       │   │   ├── dialog-rtl.tsx
│       │   │   ├── dialog-scrollable-content.tsx
│       │   │   ├── dialog-sticky-footer.tsx
│       │   │   ├── drawer-demo.tsx
│       │   │   ├── drawer-dialog.tsx
│       │   │   ├── drawer-rtl.tsx
│       │   │   ├── drawer-scrollable-content.tsx
│       │   │   ├── drawer-sides.tsx
│       │   │   ├── dropdown-menu-avatar.tsx
│       │   │   ├── dropdown-menu-basic.tsx
│       │   │   ├── dropdown-menu-checkboxes-icons.tsx
│       │   │   ├── dropdown-menu-checkboxes.tsx
│       │   │   ├── dropdown-menu-complex.tsx
│       │   │   ├── dropdown-menu-demo.tsx
│       │   │   ├── dropdown-menu-destructive.tsx
│       │   │   ├── dropdown-menu-icons.tsx
│       │   │   ├── dropdown-menu-radio-group.tsx
│       │   │   ├── dropdown-menu-radio-icons.tsx
│       │   │   ├── dropdown-menu-rtl.tsx
│       │   │   ├── dropdown-menu-shortcuts.tsx
│       │   │   ├── dropdown-menu-submenu.tsx
│       │   │   ├── empty-avatar-group.tsx
│       │   │   ├── empty-avatar.tsx
│       │   │   ├── empty-background.tsx
│       │   │   ├── empty-card.tsx
│       │   │   ├── empty-demo.tsx
│       │   │   ├── empty-input-group.tsx
│       │   │   ├── empty-outline.tsx
│       │   │   ├── empty-rtl.tsx
│       │   │   ├── field-checkbox.tsx
│       │   │   ├── field-choice-card.tsx
│       │   │   ├── field-demo.tsx
│       │   │   ├── field-fieldset.tsx
│       │   │   ├── field-group.tsx
│       │   │   ├── field-input.tsx
│       │   │   ├── field-radio.tsx
│       │   │   ├── field-responsive.tsx
│       │   │   ├── field-rtl.tsx
│       │   │   ├── field-select.tsx
│       │   │   ├── field-slider.tsx
│       │   │   ├── field-switch.tsx
│       │   │   ├── field-textarea.tsx
│       │   │   ├── file-upload-list.tsx
│       │   │   ├── hooks/
│       │   │   │   └── use-mobile.ts
│       │   │   ├── hover-card-demo.tsx
│       │   │   ├── hover-card-rtl.tsx
│       │   │   ├── hover-card-sides.tsx
│       │   │   ├── input-badge.tsx
│       │   │   ├── input-basic.tsx
│       │   │   ├── input-button-group.tsx
│       │   │   ├── input-demo.tsx
│       │   │   ├── input-disabled.tsx
│       │   │   ├── input-field.tsx
│       │   │   ├── input-fieldgroup.tsx
│       │   │   ├── input-file.tsx
│       │   │   ├── input-form.tsx
│       │   │   ├── input-grid.tsx
│       │   │   ├── input-group-basic.tsx
│       │   │   ├── input-group-block-end.tsx
│       │   │   ├── input-group-block-start.tsx
│       │   │   ├── input-group-button-group.tsx
│       │   │   ├── input-group-button.tsx
│       │   │   ├── input-group-custom.tsx
│       │   │   ├── input-group-demo.tsx
│       │   │   ├── input-group-dropdown.tsx
│       │   │   ├── input-group-icon.tsx
│       │   │   ├── input-group-in-card.tsx
│       │   │   ├── input-group-inline-end.tsx
│       │   │   ├── input-group-inline-start.tsx
│       │   │   ├── input-group-kbd.tsx
│       │   │   ├── input-group-label.tsx
│       │   │   ├── input-group-rtl.tsx
│       │   │   ├── input-group-spinner.tsx
│       │   │   ├── input-group-text.tsx
│       │   │   ├── input-group-textarea-examples.tsx
│       │   │   ├── input-group-textarea.tsx
│       │   │   ├── input-group-tooltip.tsx
│       │   │   ├── input-group-with-addons.tsx
│       │   │   ├── input-group-with-buttons.tsx
│       │   │   ├── input-group-with-kbd.tsx
│       │   │   ├── input-group-with-tooltip.tsx
│       │   │   ├── input-inline.tsx
│       │   │   ├── input-input-group.tsx
│       │   │   ├── input-invalid.tsx
│       │   │   ├── input-otp-alphanumeric.tsx
│       │   │   ├── input-otp-controlled.tsx
│       │   │   ├── input-otp-demo.tsx
│       │   │   ├── input-otp-disabled.tsx
│       │   │   ├── input-otp-form.tsx
│       │   │   ├── input-otp-four-digits.tsx
│       │   │   ├── input-otp-invalid.tsx
│       │   │   ├── input-otp-pattern.tsx
│       │   │   ├── input-otp-rtl.tsx
│       │   │   ├── input-otp-separator.tsx
│       │   │   ├── input-required.tsx
│       │   │   ├── input-rtl.tsx
│       │   │   ├── item-avatar.tsx
│       │   │   ├── item-demo.tsx
│       │   │   ├── item-dropdown.tsx
│       │   │   ├── item-group.tsx
│       │   │   ├── item-header.tsx
│       │   │   ├── item-icon.tsx
│       │   │   ├── item-image.tsx
│       │   │   ├── item-link.tsx
│       │   │   ├── item-rtl.tsx
│       │   │   ├── item-size.tsx
│       │   │   ├── item-variant.tsx
│       │   │   ├── kbd-button.tsx
│       │   │   ├── kbd-demo.tsx
│       │   │   ├── kbd-group.tsx
│       │   │   ├── kbd-input-group.tsx
│       │   │   ├── kbd-rtl.tsx
│       │   │   ├── kbd-tooltip.tsx
│       │   │   ├── label-demo.tsx
│       │   │   ├── label-rtl.tsx
│       │   │   ├── lib/
│       │   │   │   └── utils.ts
│       │   │   ├── menubar-checkbox.tsx
│       │   │   ├── menubar-demo.tsx
│       │   │   ├── menubar-icons.tsx
│       │   │   ├── menubar-radio.tsx
│       │   │   ├── menubar-rtl.tsx
│       │   │   ├── menubar-submenu.tsx
│       │   │   ├── muted-item-group.tsx
│       │   │   ├── native-select-demo.tsx
│       │   │   ├── native-select-disabled.tsx
│       │   │   ├── native-select-groups.tsx
│       │   │   ├── native-select-invalid.tsx
│       │   │   ├── native-select-rtl.tsx
│       │   │   ├── navigation-menu-demo.tsx
│       │   │   ├── navigation-menu-rtl.tsx
│       │   │   ├── outline-item-group.tsx
│       │   │   ├── pagination-demo.tsx
│       │   │   ├── pagination-icons-only.tsx
│       │   │   ├── pagination-rtl.tsx
│       │   │   ├── pagination-simple.tsx
│       │   │   ├── popover-alignments.tsx
│       │   │   ├── popover-basic.tsx
│       │   │   ├── popover-demo.tsx
│       │   │   ├── popover-form.tsx
│       │   │   ├── popover-rtl.tsx
│       │   │   ├── progress-controlled.tsx
│       │   │   ├── progress-demo.tsx
│       │   │   ├── progress-label.tsx
│       │   │   ├── progress-rtl.tsx
│       │   │   ├── radio-fields.tsx
│       │   │   ├── radio-group-choice-card.tsx
│       │   │   ├── radio-group-demo.tsx
│       │   │   ├── radio-group-description.tsx
│       │   │   ├── radio-group-disabled.tsx
│       │   │   ├── radio-group-fieldset.tsx
│       │   │   ├── radio-group-invalid.tsx
│       │   │   ├── radio-group-rtl.tsx
│       │   │   ├── resizable-demo.tsx
│       │   │   ├── resizable-handle.tsx
│       │   │   ├── resizable-rtl.tsx
│       │   │   ├── resizable-vertical.tsx
│       │   │   ├── scroll-area-demo.tsx
│       │   │   ├── scroll-area-horizontal-demo.tsx
│       │   │   ├── scroll-area-rtl.tsx
│       │   │   ├── select-align-item.tsx
│       │   │   ├── select-demo.tsx
│       │   │   ├── select-disabled.tsx
│       │   │   ├── select-groups.tsx
│       │   │   ├── select-invalid.tsx
│       │   │   ├── select-rtl.tsx
│       │   │   ├── select-scrollable.tsx
│       │   │   ├── separator-demo.tsx
│       │   │   ├── separator-list.tsx
│       │   │   ├── separator-menu.tsx
│       │   │   ├── separator-rtl.tsx
│       │   │   ├── separator-vertical.tsx
│       │   │   ├── sheet-demo.tsx
│       │   │   ├── sheet-no-close-button.tsx
│       │   │   ├── sheet-rtl.tsx
│       │   │   ├── sheet-side.tsx
│       │   │   ├── sidebar-controlled.tsx
│       │   │   ├── sidebar-demo.tsx
│       │   │   ├── sidebar-footer.tsx
│       │   │   ├── sidebar-group-action.tsx
│       │   │   ├── sidebar-group-collapsible.tsx
│       │   │   ├── sidebar-group.tsx
│       │   │   ├── sidebar-header.tsx
│       │   │   ├── sidebar-menu-action.tsx
│       │   │   ├── sidebar-menu-badge.tsx
│       │   │   ├── sidebar-menu-collapsible.tsx
│       │   │   ├── sidebar-menu-sub.tsx
│       │   │   ├── sidebar-menu.tsx
│       │   │   ├── sidebar-rsc.tsx
│       │   │   ├── sidebar-rtl.tsx
│       │   │   ├── skeleton-avatar.tsx
│       │   │   ├── skeleton-card.tsx
│       │   │   ├── skeleton-demo.tsx
│       │   │   ├── skeleton-form.tsx
│       │   │   ├── skeleton-rtl.tsx
│       │   │   ├── skeleton-table.tsx
│       │   │   ├── skeleton-text.tsx
│       │   │   ├── slider-controlled.tsx
│       │   │   ├── slider-demo.tsx
│       │   │   ├── slider-disabled.tsx
│       │   │   ├── slider-multiple.tsx
│       │   │   ├── slider-range.tsx
│       │   │   ├── slider-rtl.tsx
│       │   │   ├── slider-vertical.tsx
│       │   │   ├── sonner-demo.tsx
│       │   │   ├── sonner-description.tsx
│       │   │   ├── sonner-position.tsx
│       │   │   ├── sonner-types.tsx
│       │   │   ├── spinner-badge.tsx
│       │   │   ├── spinner-button.tsx
│       │   │   ├── spinner-custom.tsx
│       │   │   ├── spinner-demo.tsx
│       │   │   ├── spinner-empty.tsx
│       │   │   ├── spinner-input-group.tsx
│       │   │   ├── spinner-rtl.tsx
│       │   │   ├── spinner-size.tsx
│       │   │   ├── switch-choice-card.tsx
│       │   │   ├── switch-demo.tsx
│       │   │   ├── switch-description.tsx
│       │   │   ├── switch-disabled.tsx
│       │   │   ├── switch-invalid.tsx
│       │   │   ├── switch-rtl.tsx
│       │   │   ├── switch-sizes.tsx
│       │   │   ├── table-actions.tsx
│       │   │   ├── table-demo.tsx
│       │   │   ├── table-footer.tsx
│       │   │   ├── table-rtl.tsx
│       │   │   ├── tabs-demo.tsx
│       │   │   ├── tabs-disabled.tsx
│       │   │   ├── tabs-icons.tsx
│       │   │   ├── tabs-line.tsx
│       │   │   ├── tabs-rtl.tsx
│       │   │   ├── tabs-vertical.tsx
│       │   │   ├── textarea-button.tsx
│       │   │   ├── textarea-demo.tsx
│       │   │   ├── textarea-disabled.tsx
│       │   │   ├── textarea-field.tsx
│       │   │   ├── textarea-invalid.tsx
│       │   │   ├── textarea-rtl.tsx
│       │   │   ├── toggle-demo.tsx
│       │   │   ├── toggle-disabled.tsx
│       │   │   ├── toggle-group-demo.tsx
│       │   │   ├── toggle-group-disabled.tsx
│       │   │   ├── toggle-group-font-weight-selector.tsx
│       │   │   ├── toggle-group-outline.tsx
│       │   │   ├── toggle-group-rtl.tsx
│       │   │   ├── toggle-group-sizes.tsx
│       │   │   ├── toggle-group-spacing.tsx
│       │   │   ├── toggle-group-vertical.tsx
│       │   │   ├── toggle-outline.tsx
│       │   │   ├── toggle-rtl.tsx
│       │   │   ├── toggle-sizes.tsx
│       │   │   ├── toggle-text.tsx
│       │   │   ├── tooltip-demo.tsx
│       │   │   ├── tooltip-disabled.tsx
│       │   │   ├── tooltip-keyboard.tsx
│       │   │   ├── tooltip-rtl.tsx
│       │   │   ├── tooltip-sides.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-rtl.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-group.tsx
│       │   │   │   ├── button.tsx
│       │   │   │   ├── calendar.tsx
│       │   │   │   ├── card.tsx
│       │   │   │   ├── carousel.tsx
│       │   │   │   ├── chart.tsx
│       │   │   │   ├── checkbox.tsx
│       │   │   │   ├── collapsible.tsx
│       │   │   │   ├── combobox.tsx
│       │   │   │   ├── command.tsx
│       │   │   │   ├── context-menu.tsx
│       │   │   │   ├── dialog.tsx
│       │   │   │   ├── direction.tsx
│       │   │   │   ├── drawer.tsx
│       │   │   │   ├── dropdown-menu.tsx
│       │   │   │   ├── empty.tsx
│       │   │   │   ├── field.tsx
│       │   │   │   ├── hover-card.tsx
│       │   │   │   ├── input-group.tsx
│       │   │   │   ├── input-otp.tsx
│       │   │   │   ├── input.tsx
│       │   │   │   ├── item.tsx
│       │   │   │   ├── kbd.tsx
│       │   │   │   ├── label.tsx
│       │   │   │   ├── menubar.tsx
│       │   │   │   ├── native-select.tsx
│       │   │   │   ├── navigation-menu.tsx
│       │   │   │   ├── pagination.tsx
│       │   │   │   ├── popover.tsx
│       │   │   │   ├── progress.tsx
│       │   │   │   ├── radio-group.tsx
│       │   │   │   ├── resizable.tsx
│       │   │   │   ├── scroll-area.tsx
│       │   │   │   ├── select.tsx
│       │   │   │   ├── separator.tsx
│       │   │   │   ├── sheet.tsx
│       │   │   │   ├── sidebar.tsx
│       │   │   │   ├── skeleton.tsx
│       │   │   │   ├── slider.tsx
│       │   │   │   ├── sonner.tsx
│       │   │   │   ├── spinner.tsx
│       │   │   │   ├── switch.tsx
│       │   │   │   ├── table.tsx
│       │   │   │   ├── tabs.tsx
│       │   │   │   ├── textarea.tsx
│       │   │   │   ├── toggle-group.tsx
│       │   │   │   ├── toggle.tsx
│       │   │   │   └── tooltip.tsx
│       │   │   └── ui-rtl/
│       │   │       ├── accordion.tsx
│       │   │       ├── alert-dialog.tsx
│       │   │       ├── alert.tsx
│       │   │       ├── aspect-ratio.tsx
│       │   │       ├── avatar.tsx
│       │   │       ├── badge.tsx
│       │   │       ├── breadcrumb.tsx
│       │   │       ├── button-group.tsx
│       │   │       ├── button.tsx
│       │   │       ├── calendar.tsx
│       │   │       ├── card.tsx
│       │   │       ├── carousel.tsx
│       │   │       ├── chart.tsx
│       │   │       ├── checkbox.tsx
│       │   │       ├── collapsible.tsx
│       │   │       ├── combobox.tsx
│       │   │       ├── command.tsx
│       │   │       ├── context-menu.tsx
│       │   │       ├── dialog.tsx
│       │   │       ├── direction.tsx
│       │   │       ├── drawer.tsx
│       │   │       ├── dropdown-menu.tsx
│       │   │       ├── empty.tsx
│       │   │       ├── field.tsx
│       │   │       ├── hover-card.tsx
│       │   │       ├── input-group.tsx
│       │   │       ├── input-otp.tsx
│       │   │       ├── input.tsx
│       │   │       ├── item.tsx
│       │   │       ├── kbd.tsx
│       │   │       ├── label.tsx
│       │   │       ├── menubar.tsx
│       │   │       ├── native-select.tsx
│       │   │       ├── navigation-menu.tsx
│       │   │       ├── pagination.tsx
│       │   │       ├── popover.tsx
│       │   │       ├── progress.tsx
│       │   │       ├── radio-group.tsx
│       │   │       ├── resizable.tsx
│       │   │       ├── scroll-area.tsx
│       │   │       ├── select.tsx
│       │   │       ├── separator.tsx
│       │   │       ├── sheet.tsx
│       │   │       ├── sidebar.tsx
│       │   │       ├── skeleton.tsx
│       │   │       ├── slider.tsx
│       │   │       ├── sonner.tsx
│       │   │       ├── spinner.tsx
│       │   │       ├── switch.tsx
│       │   │       ├── table.tsx
│       │   │       ├── tabs.tsx
│       │   │       ├── textarea.tsx
│       │   │       ├── toggle-group.tsx
│       │   │       ├── toggle.tsx
│       │   │       └── tooltip.tsx
│       │   └── radix/
│       │       ├── accordion-basic.tsx
│       │       ├── accordion-borders.tsx
│       │       ├── accordion-card.tsx
│       │       ├── accordion-demo.tsx
│       │       ├── accordion-disabled.tsx
│       │       ├── accordion-multiple.tsx
│       │       ├── accordion-rtl.tsx
│       │       ├── alert-action.tsx
│       │       ├── alert-basic.tsx
│       │       ├── alert-colors.tsx
│       │       ├── alert-demo.tsx
│       │       ├── alert-destructive.tsx
│       │       ├── alert-dialog-basic.tsx
│       │       ├── alert-dialog-demo.tsx
│       │       ├── alert-dialog-destructive.tsx
│       │       ├── alert-dialog-media.tsx
│       │       ├── alert-dialog-rtl.tsx
│       │       ├── alert-dialog-small-media.tsx
│       │       ├── alert-dialog-small.tsx
│       │       ├── alert-rtl.tsx
│       │       ├── aspect-ratio-demo.tsx
│       │       ├── aspect-ratio-portrait.tsx
│       │       ├── aspect-ratio-rtl.tsx
│       │       ├── aspect-ratio-square.tsx
│       │       ├── avatar-badge-icon.tsx
│       │       ├── avatar-badge.tsx
│       │       ├── avatar-basic.tsx
│       │       ├── avatar-demo.tsx
│       │       ├── avatar-dropdown.tsx
│       │       ├── avatar-group-count-icon.tsx
│       │       ├── avatar-group-count.tsx
│       │       ├── avatar-group.tsx
│       │       ├── avatar-rtl.tsx
│       │       ├── avatar-size.tsx
│       │       ├── badge-colors.tsx
│       │       ├── badge-demo.tsx
│       │       ├── badge-icon.tsx
│       │       ├── badge-link.tsx
│       │       ├── badge-rtl.tsx
│       │       ├── badge-spinner.tsx
│       │       ├── badge-variants.tsx
│       │       ├── breadcrumb-basic.tsx
│       │       ├── breadcrumb-demo.tsx
│       │       ├── breadcrumb-dropdown.tsx
│       │       ├── breadcrumb-ellipsis.tsx
│       │       ├── breadcrumb-link.tsx
│       │       ├── breadcrumb-rtl.tsx
│       │       ├── breadcrumb-separator.tsx
│       │       ├── button-aschild.tsx
│       │       ├── button-default.tsx
│       │       ├── button-demo.tsx
│       │       ├── button-destructive.tsx
│       │       ├── button-ghost.tsx
│       │       ├── button-group-demo.tsx
│       │       ├── button-group-dropdown.tsx
│       │       ├── button-group-input-group.tsx
│       │       ├── button-group-input.tsx
│       │       ├── button-group-nested.tsx
│       │       ├── button-group-orientation.tsx
│       │       ├── button-group-popover.tsx
│       │       ├── button-group-rtl.tsx
│       │       ├── button-group-select.tsx
│       │       ├── button-group-separator.tsx
│       │       ├── button-group-size.tsx
│       │       ├── button-group-split.tsx
│       │       ├── button-icon.tsx
│       │       ├── button-link.tsx
│       │       ├── button-outline.tsx
│       │       ├── button-rounded.tsx
│       │       ├── button-rtl.tsx
│       │       ├── button-secondary.tsx
│       │       ├── button-size.tsx
│       │       ├── button-spinner.tsx
│       │       ├── button-with-icon.tsx
│       │       ├── calendar-basic.tsx
│       │       ├── calendar-booked-dates.tsx
│       │       ├── calendar-caption.tsx
│       │       ├── calendar-custom-days.tsx
│       │       ├── calendar-demo.tsx
│       │       ├── calendar-hijri.tsx
│       │       ├── calendar-multiple.tsx
│       │       ├── calendar-presets.tsx
│       │       ├── calendar-range.tsx
│       │       ├── calendar-rtl.tsx
│       │       ├── calendar-time.tsx
│       │       ├── calendar-week-numbers.tsx
│       │       ├── card-demo.tsx
│       │       ├── card-image.tsx
│       │       ├── card-rtl.tsx
│       │       ├── card-small.tsx
│       │       ├── carousel-api.tsx
│       │       ├── carousel-demo.tsx
│       │       ├── carousel-multiple.tsx
│       │       ├── carousel-orientation.tsx
│       │       ├── carousel-plugin.tsx
│       │       ├── carousel-rtl.tsx
│       │       ├── carousel-size.tsx
│       │       ├── carousel-spacing.tsx
│       │       ├── chart-demo.tsx
│       │       ├── chart-example-axis.tsx
│       │       ├── chart-example-grid.tsx
│       │       ├── chart-example-legend.tsx
│       │       ├── chart-example-tooltip.tsx
│       │       ├── chart-example.tsx
│       │       ├── chart-rtl.tsx
│       │       ├── chart-tooltip.tsx
│       │       ├── checkbox-basic.tsx
│       │       ├── checkbox-demo.tsx
│       │       ├── checkbox-description.tsx
│       │       ├── checkbox-disabled.tsx
│       │       ├── checkbox-group.tsx
│       │       ├── checkbox-invalid.tsx
│       │       ├── checkbox-rtl.tsx
│       │       ├── checkbox-table.tsx
│       │       ├── collapsible-basic.tsx
│       │       ├── collapsible-demo.tsx
│       │       ├── collapsible-file-tree.tsx
│       │       ├── collapsible-rtl.tsx
│       │       ├── collapsible-settings.tsx
│       │       ├── combobox-auto-highlight.tsx
│       │       ├── combobox-basic.tsx
│       │       ├── combobox-clear.tsx
│       │       ├── combobox-custom.tsx
│       │       ├── combobox-demo.tsx
│       │       ├── combobox-disabled.tsx
│       │       ├── combobox-groups.tsx
│       │       ├── combobox-input-group.tsx
│       │       ├── combobox-invalid.tsx
│       │       ├── combobox-multiple.tsx
│       │       ├── combobox-popup.tsx
│       │       ├── combobox-rtl.tsx
│       │       ├── command-basic.tsx
│       │       ├── command-demo.tsx
│       │       ├── command-dialog.tsx
│       │       ├── command-groups.tsx
│       │       ├── command-rtl.tsx
│       │       ├── command-scrollable.tsx
│       │       ├── command-shortcuts.tsx
│       │       ├── context-menu-basic.tsx
│       │       ├── context-menu-checkboxes.tsx
│       │       ├── context-menu-demo.tsx
│       │       ├── context-menu-destructive.tsx
│       │       ├── context-menu-groups.tsx
│       │       ├── context-menu-icons.tsx
│       │       ├── context-menu-radio.tsx
│       │       ├── context-menu-rtl.tsx
│       │       ├── context-menu-shortcuts.tsx
│       │       ├── context-menu-sides.tsx
│       │       ├── context-menu-submenu.tsx
│       │       ├── data-picker-with-dropdowns.tsx
│       │       ├── data-table-demo.tsx
│       │       ├── data-table-rtl.tsx
│       │       ├── date-picker-basic.tsx
│       │       ├── date-picker-demo.tsx
│       │       ├── date-picker-dob.tsx
│       │       ├── date-picker-input.tsx
│       │       ├── date-picker-natural-language.tsx
│       │       ├── date-picker-range.tsx
│       │       ├── date-picker-rtl.tsx
│       │       ├── date-picker-time.tsx
│       │       ├── dialog-close-button.tsx
│       │       ├── dialog-demo.tsx
│       │       ├── dialog-no-close-button.tsx
│       │       ├── dialog-rtl.tsx
│       │       ├── dialog-scrollable-content.tsx
│       │       ├── dialog-sticky-footer.tsx
│       │       ├── drawer-demo.tsx
│       │       ├── drawer-dialog.tsx
│       │       ├── drawer-rtl.tsx
│       │       ├── drawer-scrollable-content.tsx
│       │       ├── drawer-sides.tsx
│       │       ├── dropdown-menu-avatar.tsx
│       │       ├── dropdown-menu-basic.tsx
│       │       ├── dropdown-menu-checkboxes-icons.tsx
│       │       ├── dropdown-menu-checkboxes.tsx
│       │       ├── dropdown-menu-complex.tsx
│       │       ├── dropdown-menu-demo.tsx
│       │       ├── dropdown-menu-destructive.tsx
│       │       ├── dropdown-menu-icons.tsx
│       │       ├── dropdown-menu-radio-group.tsx
│       │       ├── dropdown-menu-radio-icons.tsx
│       │       ├── dropdown-menu-rtl.tsx
│       │       ├── dropdown-menu-shortcuts.tsx
│       │       ├── dropdown-menu-submenu.tsx
│       │       ├── empty-avatar-group.tsx
│       │       ├── empty-avatar.tsx
│       │       ├── empty-background.tsx
│       │       ├── empty-card.tsx
│       │       ├── empty-demo.tsx
│       │       ├── empty-input-group.tsx
│       │       ├── empty-outline.tsx
│       │       ├── empty-rtl.tsx
│       │       ├── field-checkbox.tsx
│       │       ├── field-choice-card.tsx
│       │       ├── field-demo.tsx
│       │       ├── field-fieldset.tsx
│       │       ├── field-group.tsx
│       │       ├── field-input.tsx
│       │       ├── field-radio.tsx
│       │       ├── field-responsive.tsx
│       │       ├── field-rtl.tsx
│       │       ├── field-select.tsx
│       │       ├── field-slider.tsx
│       │       ├── field-switch.tsx
│       │       ├── field-textarea.tsx
│       │       ├── file-upload-list.tsx
│       │       ├── hooks/
│       │       │   └── use-mobile.ts
│       │       ├── hover-card-demo.tsx
│       │       ├── hover-card-rtl.tsx
│       │       ├── hover-card-sides.tsx
│       │       ├── input-badge.tsx
│       │       ├── input-basic.tsx
│       │       ├── input-button-group.tsx
│       │       ├── input-demo.tsx
│       │       ├── input-disabled.tsx
│       │       ├── input-field.tsx
│       │       ├── input-fieldgroup.tsx
│       │       ├── input-file.tsx
│       │       ├── input-form.tsx
│       │       ├── input-grid.tsx
│       │       ├── input-group-basic.tsx
│       │       ├── input-group-block-end.tsx
│       │       ├── input-group-block-start.tsx
│       │       ├── input-group-button-group.tsx
│       │       ├── input-group-button.tsx
│       │       ├── input-group-custom.tsx
│       │       ├── input-group-demo.tsx
│       │       ├── input-group-dropdown.tsx
│       │       ├── input-group-icon.tsx
│       │       ├── input-group-in-card.tsx
│       │       ├── input-group-inline-end.tsx
│       │       ├── input-group-inline-start.tsx
│       │       ├── input-group-kbd.tsx
│       │       ├── input-group-label.tsx
│       │       ├── input-group-rtl.tsx
│       │       ├── input-group-spinner.tsx
│       │       ├── input-group-text.tsx
│       │       ├── input-group-textarea-examples.tsx
│       │       ├── input-group-textarea.tsx
│       │       ├── input-group-tooltip.tsx
│       │       ├── input-group-with-addons.tsx
│       │       ├── input-group-with-buttons.tsx
│       │       ├── input-group-with-kbd.tsx
│       │       ├── input-group-with-tooltip.tsx
│       │       ├── input-inline.tsx
│       │       ├── input-input-group.tsx
│       │       ├── input-invalid.tsx
│       │       ├── input-otp-alphanumeric.tsx
│       │       ├── input-otp-controlled.tsx
│       │       ├── input-otp-demo.tsx
│       │       ├── input-otp-disabled.tsx
│       │       ├── input-otp-form.tsx
│       │       ├── input-otp-four-digits.tsx
│       │       ├── input-otp-invalid.tsx
│       │       ├── input-otp-pattern.tsx
│       │       ├── input-otp-rtl.tsx
│       │       ├── input-otp-separator.tsx
│       │       ├── input-required.tsx
│       │       ├── input-rtl.tsx
│       │       ├── item-avatar.tsx
│       │       ├── item-demo.tsx
│       │       ├── item-dropdown.tsx
│       │       ├── item-group.tsx
│       │       ├── item-header.tsx
│       │       ├── item-icon.tsx
│       │       ├── item-image.tsx
│       │       ├── item-link.tsx
│       │       ├── item-rtl.tsx
│       │       ├── item-size.tsx
│       │       ├── item-variant.tsx
│       │       ├── kbd-button.tsx
│       │       ├── kbd-demo.tsx
│       │       ├── kbd-group.tsx
│       │       ├── kbd-input-group.tsx
│       │       ├── kbd-rtl.tsx
│       │       ├── kbd-tooltip.tsx
│       │       ├── label-demo.tsx
│       │       ├── label-rtl.tsx
│       │       ├── lib/
│       │       │   └── utils.ts
│       │       ├── menubar-checkbox.tsx
│       │       ├── menubar-demo.tsx
│       │       ├── menubar-icons.tsx
│       │       ├── menubar-radio.tsx
│       │       ├── menubar-rtl.tsx
│       │       ├── menubar-submenu.tsx
│       │       ├── muted-item-group.tsx
│       │       ├── native-select-demo.tsx
│       │       ├── native-select-disabled.tsx
│       │       ├── native-select-groups.tsx
│       │       ├── native-select-invalid.tsx
│       │       ├── native-select-rtl.tsx
│       │       ├── navigation-menu-demo.tsx
│       │       ├── navigation-menu-rtl.tsx
│       │       ├── outline-item-group.tsx
│       │       ├── pagination-demo.tsx
│       │       ├── pagination-icons-only.tsx
│       │       ├── pagination-rtl.tsx
│       │       ├── pagination-simple.tsx
│       │       ├── popover-alignments.tsx
│       │       ├── popover-basic.tsx
│       │       ├── popover-demo.tsx
│       │       ├── popover-form.tsx
│       │       ├── popover-rtl.tsx
│       │       ├── progress-controlled.tsx
│       │       ├── progress-demo.tsx
│       │       ├── progress-label.tsx
│       │       ├── progress-rtl.tsx
│       │       ├── radio-fields.tsx
│       │       ├── radio-group-choice-card.tsx
│       │       ├── radio-group-demo.tsx
│       │       ├── radio-group-description.tsx
│       │       ├── radio-group-disabled.tsx
│       │       ├── radio-group-fieldset.tsx
│       │       ├── radio-group-invalid.tsx
│       │       ├── radio-group-rtl.tsx
│       │       ├── resizable-demo.tsx
│       │       ├── resizable-handle.tsx
│       │       ├── resizable-rtl.tsx
│       │       ├── resizable-vertical.tsx
│       │       ├── scroll-area-demo.tsx
│       │       ├── scroll-area-horizontal-demo.tsx
│       │       ├── scroll-area-rtl.tsx
│       │       ├── select-align-item.tsx
│       │       ├── select-demo.tsx
│       │       ├── select-disabled.tsx
│       │       ├── select-groups.tsx
│       │       ├── select-invalid.tsx
│       │       ├── select-rtl.tsx
│       │       ├── select-scrollable.tsx
│       │       ├── separator-demo.tsx
│       │       ├── separator-list.tsx
│       │       ├── separator-menu.tsx
│       │       ├── separator-rtl.tsx
│       │       ├── separator-vertical.tsx
│       │       ├── sheet-demo.tsx
│       │       ├── sheet-no-close-button.tsx
│       │       ├── sheet-rtl.tsx
│       │       ├── sheet-side.tsx
│       │       ├── sidebar-controlled.tsx
│       │       ├── sidebar-demo.tsx
│       │       ├── sidebar-footer.tsx
│       │       ├── sidebar-group-action.tsx
│       │       ├── sidebar-group-collapsible.tsx
│       │       ├── sidebar-group.tsx
│       │       ├── sidebar-header.tsx
│       │       ├── sidebar-menu-action.tsx
│       │       ├── sidebar-menu-badge.tsx
│       │       ├── sidebar-menu-collapsible.tsx
│       │       ├── sidebar-menu-sub.tsx
│       │       ├── sidebar-menu.tsx
│       │       ├── sidebar-rsc.tsx
│       │       ├── sidebar-rtl.tsx
│       │       ├── skeleton-avatar.tsx
│       │       ├── skeleton-card.tsx
│       │       ├── skeleton-demo.tsx
│       │       ├── skeleton-form.tsx
│       │       ├── skeleton-rtl.tsx
│       │       ├── skeleton-table.tsx
│       │       ├── skeleton-text.tsx
│       │       ├── slider-controlled.tsx
│       │       ├── slider-demo.tsx
│       │       ├── slider-disabled.tsx
│       │       ├── slider-multiple.tsx
│       │       ├── slider-range.tsx
│       │       ├── slider-rtl.tsx
│       │       ├── slider-vertical.tsx
│       │       ├── sonner-demo.tsx
│       │       ├── sonner-description.tsx
│       │       ├── sonner-position.tsx
│       │       ├── sonner-types.tsx
│       │       ├── spinner-badge.tsx
│       │       ├── spinner-button.tsx
│       │       ├── spinner-custom.tsx
│       │       ├── spinner-demo.tsx
│       │       ├── spinner-empty.tsx
│       │       ├── spinner-input-group.tsx
│       │       ├── spinner-rtl.tsx
│       │       ├── spinner-size.tsx
│       │       ├── switch-choice-card.tsx
│       │       ├── switch-demo.tsx
│       │       ├── switch-description.tsx
│       │       ├── switch-disabled.tsx
│       │       ├── switch-invalid.tsx
│       │       ├── switch-rtl.tsx
│       │       ├── switch-sizes.tsx
│       │       ├── table-actions.tsx
│       │       ├── table-demo.tsx
│       │       ├── table-footer.tsx
│       │       ├── table-rtl.tsx
│       │       ├── tabs-demo.tsx
│       │       ├── tabs-disabled.tsx
│       │       ├── tabs-icons.tsx
│       │       ├── tabs-line.tsx
│       │       ├── tabs-rtl.tsx
│       │       ├── tabs-vertical.tsx
│       │       ├── textarea-button.tsx
│       │       ├── textarea-demo.tsx
│       │       ├── textarea-disabled.tsx
│       │       ├── textarea-field.tsx
│       │       ├── textarea-invalid.tsx
│       │       ├── textarea-rtl.tsx
│       │       ├── toggle-demo.tsx
│       │       ├── toggle-disabled.tsx
│       │       ├── toggle-group-demo.tsx
│       │       ├── toggle-group-disabled.tsx
│       │       ├── toggle-group-font-weight-selector.tsx
│       │       ├── toggle-group-outline.tsx
│       │       ├── toggle-group-rtl.tsx
│       │       ├── toggle-group-sizes.tsx
│       │       ├── toggle-group-spacing.tsx
│       │       ├── toggle-group-vertical.tsx
│       │       ├── toggle-outline.tsx
│       │       ├── toggle-rtl.tsx
│       │       ├── toggle-sizes.tsx
│       │       ├── toggle-text.tsx
│       │       ├── tooltip-demo.tsx
│       │       ├── tooltip-disabled.tsx
│       │       ├── tooltip-keyboard.tsx
│       │       ├── tooltip-rtl.tsx
│       │       ├── tooltip-sides.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-rtl.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-group.tsx
│       │       │   ├── button.tsx
│       │       │   ├── calendar.tsx
│       │       │   ├── card.tsx
│       │       │   ├── carousel.tsx
│       │       │   ├── chart.tsx
│       │       │   ├── checkbox.tsx
│       │       │   ├── collapsible.tsx
│       │       │   ├── combobox.tsx
│       │       │   ├── command.tsx
│       │       │   ├── context-menu.tsx
│       │       │   ├── dialog.tsx
│       │       │   ├── direction.tsx
│       │       │   ├── drawer.tsx
│       │       │   ├── dropdown-menu.tsx
│       │       │   ├── empty.tsx
│       │       │   ├── field.tsx
│       │       │   ├── hover-card.tsx
│       │       │   ├── input-group.tsx
│       │       │   ├── input-otp.tsx
│       │       │   ├── input.tsx
│       │       │   ├── item.tsx
│       │       │   ├── kbd.tsx
│       │       │   ├── label.tsx
│       │       │   ├── menubar.tsx
│       │       │   ├── native-select.tsx
│       │       │   ├── navigation-menu.tsx
│       │       │   ├── pagination.tsx
│       │       │   ├── popover.tsx
│       │       │   ├── progress.tsx
│       │       │   ├── radio-group.tsx
│       │       │   ├── resizable.tsx
│       │       │   ├── scroll-area.tsx
│       │       │   ├── select.tsx
│       │       │   ├── separator.tsx
│       │       │   ├── sheet.tsx
│       │       │   ├── sidebar.tsx
│       │       │   ├── skeleton.tsx
│       │       │   ├── slider.tsx
│       │       │   ├── sonner.tsx
│       │       │   ├── spinner.tsx
│       │       │   ├── switch.tsx
│       │       │   ├── table.tsx
│       │       │   ├── tabs.tsx
│       │       │   ├── textarea.tsx
│       │       │   ├── toggle-group.tsx
│       │       │   ├── toggle.tsx
│       │       │   └── tooltip.tsx
│       │       └── ui-rtl/
│       │           ├── accordion.tsx
│       │           ├── alert-dialog.tsx
│       │           ├── alert.tsx
│       │           ├── aspect-ratio.tsx
│       │           ├── avatar.tsx
│       │           ├── badge.tsx
│       │           ├── breadcrumb.tsx
│       │           ├── button-group.tsx
│       │           ├── button.tsx
│       │           ├── calendar.tsx
│       │           ├── card.tsx
│       │           ├── carousel.tsx
│       │           ├── chart.tsx
│       │           ├── checkbox.tsx
│       │           ├── collapsible.tsx
│       │           ├── combobox.tsx
│       │           ├── command.tsx
│       │           ├── context-menu.tsx
│       │           ├── dialog.tsx
│       │           ├── direction.tsx
│       │           ├── drawer.tsx
│       │           ├── dropdown-menu.tsx
│       │           ├── empty.tsx
│       │           ├── field.tsx
│       │           ├── hover-card.tsx
│       │           ├── input-group.tsx
│       │           ├── input-otp.tsx
│       │           ├── input.tsx
│       │           ├── item.tsx
│       │           ├── kbd.tsx
│       │           ├── label.tsx
│       │           ├── menubar.tsx
│       │           ├── native-select.tsx
│       │           ├── navigation-menu.tsx
│       │           ├── pagination.tsx
│       │           ├── popover.tsx
│       │           ├── progress.tsx
│       │           ├── radio-group.tsx
│       │           ├── resizable.tsx
│       │           ├── scroll-area.tsx
│       │           ├── select.tsx
│       │           ├── separator.tsx
│       │           ├── sheet.tsx
│       │           ├── sidebar.tsx
│       │           ├── skeleton.tsx
│       │           ├── slider.tsx
│       │           ├── sonner.tsx
│       │           ├── spinner.tsx
│       │           ├── switch.tsx
│       │           ├── table.tsx
│       │           ├── tabs.tsx
│       │           ├── textarea.tsx
│       │           ├── toggle-group.tsx
│       │           ├── toggle.tsx
│       │           └── tooltip.tsx
│       ├── hooks/
│       │   ├── use-colors.ts
│       │   ├── use-config.ts
│       │   ├── use-copy-to-clipboard.ts
│       │   ├── use-layout.tsx
│       │   ├── use-media-query.tsx
│       │   ├── use-meta-color.ts
│       │   ├── use-mobile.ts
│       │   ├── use-mounted.ts
│       │   ├── use-mutation-observer.ts
│       │   └── use-search-registry.ts
│       ├── lib/
│       │   ├── blocks.ts
│       │   ├── categories.ts
│       │   ├── changelog.ts
│       │   ├── colors.ts
│       │   ├── components.ts
│       │   ├── config.ts
│       │   ├── docs.ts
│       │   ├── events.ts
│       │   ├── explore.ts
│       │   ├── flags.ts
│       │   ├── font-definitions.ts
│       │   ├── fonts.ts
│       │   ├── format-code.ts
│       │   ├── highlight-code.ts
│       │   ├── llm.ts
│       │   ├── page-tree.ts
│       │   ├── read-file.ts
│       │   ├── registry.ts
│       │   ├── rehype.ts
│       │   ├── source.ts
│       │   ├── themes.ts
│       │   └── utils.ts
│       ├── mdx-components.tsx
│       ├── next.config.mjs
│       ├── package.json
│       ├── postcss.config.mjs
│       ├── public/
│       │   ├── llms.txt
│       │   ├── r/
│       │   │   ├── colors/
│       │   │   │   ├── gray.json
│       │   │   │   ├── index.json
│       │   │   │   ├── mauve.json
│       │   │   │   ├── mist.json
│       │   │   │   ├── neutral.json
│       │   │   │   ├── olive.json
│       │   │   │   ├── slate.json
│       │   │   │   ├── stone.json
│       │   │   │   ├── taupe.json
│       │   │   │   └── zinc.json
│       │   │   ├── config.json
│       │   │   ├── icons/
│       │   │   │   └── index.json
│       │   │   ├── index.json
│       │   │   ├── registries-legacy.json
│       │   │   ├── registries.json
│       │   │   ├── styles/
│       │   │   │   ├── base-lyra/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── base-maia/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── base-mira/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── base-nova/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── base-vega/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── default/
│       │   │   │   │   ├── accordion-demo.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-demo.json
│       │   │   │   │   ├── alert-destructive.json
│       │   │   │   │   ├── alert-dialog-demo.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-demo.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-demo.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-demo.json
│       │   │   │   │   ├── badge-destructive.json
│       │   │   │   │   ├── badge-outline.json
│       │   │   │   │   ├── badge-secondary.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-demo.json
│       │   │   │   │   ├── breadcrumb-dropdown.json
│       │   │   │   │   ├── breadcrumb-ellipsis.json
│       │   │   │   │   ├── breadcrumb-link.json
│       │   │   │   │   ├── breadcrumb-responsive.json
│       │   │   │   │   ├── breadcrumb-separator.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-as-child.json
│       │   │   │   │   ├── button-demo.json
│       │   │   │   │   ├── button-destructive.json
│       │   │   │   │   ├── button-ghost.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button-icon.json
│       │   │   │   │   ├── button-link.json
│       │   │   │   │   ├── button-loading.json
│       │   │   │   │   ├── button-outline.json
│       │   │   │   │   ├── button-secondary.json
│       │   │   │   │   ├── button-with-icon.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-01.json
│       │   │   │   │   ├── calendar-02.json
│       │   │   │   │   ├── calendar-03.json
│       │   │   │   │   ├── calendar-04.json
│       │   │   │   │   ├── calendar-05.json
│       │   │   │   │   ├── calendar-06.json
│       │   │   │   │   ├── calendar-07.json
│       │   │   │   │   ├── calendar-08.json
│       │   │   │   │   ├── calendar-09.json
│       │   │   │   │   ├── calendar-10.json
│       │   │   │   │   ├── calendar-11.json
│       │   │   │   │   ├── calendar-12.json
│       │   │   │   │   ├── calendar-13.json
│       │   │   │   │   ├── calendar-14.json
│       │   │   │   │   ├── calendar-15.json
│       │   │   │   │   ├── calendar-16.json
│       │   │   │   │   ├── calendar-17.json
│       │   │   │   │   ├── calendar-18.json
│       │   │   │   │   ├── calendar-19.json
│       │   │   │   │   ├── calendar-20.json
│       │   │   │   │   ├── calendar-21.json
│       │   │   │   │   ├── calendar-22.json
│       │   │   │   │   ├── calendar-23.json
│       │   │   │   │   ├── calendar-24.json
│       │   │   │   │   ├── calendar-25.json
│       │   │   │   │   ├── calendar-26.json
│       │   │   │   │   ├── calendar-27.json
│       │   │   │   │   ├── calendar-28.json
│       │   │   │   │   ├── calendar-29.json
│       │   │   │   │   ├── calendar-30.json
│       │   │   │   │   ├── calendar-31.json
│       │   │   │   │   ├── calendar-32.json
│       │   │   │   │   ├── calendar-demo.json
│       │   │   │   │   ├── calendar-form.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-demo.json
│       │   │   │   │   ├── card-with-form.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-api.json
│       │   │   │   │   ├── carousel-demo.json
│       │   │   │   │   ├── carousel-orientation.json
│       │   │   │   │   ├── carousel-plugin.json
│       │   │   │   │   ├── carousel-size.json
│       │   │   │   │   ├── carousel-spacing.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-area-axes.json
│       │   │   │   │   ├── chart-area-default.json
│       │   │   │   │   ├── chart-area-gradient.json
│       │   │   │   │   ├── chart-area-icons.json
│       │   │   │   │   ├── chart-area-interactive.json
│       │   │   │   │   ├── chart-area-legend.json
│       │   │   │   │   ├── chart-area-linear.json
│       │   │   │   │   ├── chart-area-stacked-expand.json
│       │   │   │   │   ├── chart-area-stacked.json
│       │   │   │   │   ├── chart-area-step.json
│       │   │   │   │   ├── chart-bar-active.json
│       │   │   │   │   ├── chart-bar-default.json
│       │   │   │   │   ├── chart-bar-demo-axis.json
│       │   │   │   │   ├── chart-bar-demo-grid.json
│       │   │   │   │   ├── chart-bar-demo-legend.json
│       │   │   │   │   ├── chart-bar-demo-tooltip.json
│       │   │   │   │   ├── chart-bar-demo.json
│       │   │   │   │   ├── chart-bar-horizontal.json
│       │   │   │   │   ├── chart-bar-interactive.json
│       │   │   │   │   ├── chart-bar-label-custom.json
│       │   │   │   │   ├── chart-bar-label.json
│       │   │   │   │   ├── chart-bar-mixed.json
│       │   │   │   │   ├── chart-bar-multiple.json
│       │   │   │   │   ├── chart-bar-negative.json
│       │   │   │   │   ├── chart-bar-stacked.json
│       │   │   │   │   ├── chart-line-default.json
│       │   │   │   │   ├── chart-line-dots-colors.json
│       │   │   │   │   ├── chart-line-dots-custom.json
│       │   │   │   │   ├── chart-line-dots.json
│       │   │   │   │   ├── chart-line-interactive.json
│       │   │   │   │   ├── chart-line-label-custom.json
│       │   │   │   │   ├── chart-line-label.json
│       │   │   │   │   ├── chart-line-linear.json
│       │   │   │   │   ├── chart-line-multiple.json
│       │   │   │   │   ├── chart-line-step.json
│       │   │   │   │   ├── chart-pie-donut-active.json
│       │   │   │   │   ├── chart-pie-donut-text.json
│       │   │   │   │   ├── chart-pie-donut.json
│       │   │   │   │   ├── chart-pie-interactive.json
│       │   │   │   │   ├── chart-pie-label-custom.json
│       │   │   │   │   ├── chart-pie-label-list.json
│       │   │   │   │   ├── chart-pie-label.json
│       │   │   │   │   ├── chart-pie-legend.json
│       │   │   │   │   ├── chart-pie-separator-none.json
│       │   │   │   │   ├── chart-pie-simple.json
│       │   │   │   │   ├── chart-pie-stacked.json
│       │   │   │   │   ├── chart-radar-default.json
│       │   │   │   │   ├── chart-radar-dots.json
│       │   │   │   │   ├── chart-radar-grid-circle-fill.json
│       │   │   │   │   ├── chart-radar-grid-circle-no-lines.json
│       │   │   │   │   ├── chart-radar-grid-circle.json
│       │   │   │   │   ├── chart-radar-grid-custom.json
│       │   │   │   │   ├── chart-radar-grid-fill.json
│       │   │   │   │   ├── chart-radar-grid-none.json
│       │   │   │   │   ├── chart-radar-icons.json
│       │   │   │   │   ├── chart-radar-label-custom.json
│       │   │   │   │   ├── chart-radar-legend.json
│       │   │   │   │   ├── chart-radar-lines-only.json
│       │   │   │   │   ├── chart-radar-multiple.json
│       │   │   │   │   ├── chart-radar-radius.json
│       │   │   │   │   ├── chart-radial-grid.json
│       │   │   │   │   ├── chart-radial-label.json
│       │   │   │   │   ├── chart-radial-shape.json
│       │   │   │   │   ├── chart-radial-simple.json
│       │   │   │   │   ├── chart-radial-stacked.json
│       │   │   │   │   ├── chart-radial-text.json
│       │   │   │   │   ├── chart-tooltip-advanced.json
│       │   │   │   │   ├── chart-tooltip-default.json
│       │   │   │   │   ├── chart-tooltip-demo.json
│       │   │   │   │   ├── chart-tooltip-formatter.json
│       │   │   │   │   ├── chart-tooltip-icons.json
│       │   │   │   │   ├── chart-tooltip-indicator-line.json
│       │   │   │   │   ├── chart-tooltip-indicator-none.json
│       │   │   │   │   ├── chart-tooltip-label-custom.json
│       │   │   │   │   ├── chart-tooltip-label-formatter.json
│       │   │   │   │   ├── chart-tooltip-label-none.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-demo.json
│       │   │   │   │   ├── checkbox-disabled.json
│       │   │   │   │   ├── checkbox-form-multiple.json
│       │   │   │   │   ├── checkbox-form-single.json
│       │   │   │   │   ├── checkbox-with-text.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-demo.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-demo.json
│       │   │   │   │   ├── combobox-dropdown-menu.json
│       │   │   │   │   ├── combobox-form.json
│       │   │   │   │   ├── combobox-popover.json
│       │   │   │   │   ├── combobox-responsive.json
│       │   │   │   │   ├── command-demo.json
│       │   │   │   │   ├── command-dialog.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── context-menu-demo.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── data-table-demo.json
│       │   │   │   │   ├── date-picker-demo.json
│       │   │   │   │   ├── date-picker-form.json
│       │   │   │   │   ├── date-picker-with-presets.json
│       │   │   │   │   ├── date-picker-with-range.json
│       │   │   │   │   ├── dialog-close-button.json
│       │   │   │   │   ├── dialog-demo.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── drawer-demo.json
│       │   │   │   │   ├── drawer-dialog.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-checkboxes.json
│       │   │   │   │   ├── dropdown-menu-demo.json
│       │   │   │   │   ├── dropdown-menu-radio-group.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-demo.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-demo.json
│       │   │   │   │   ├── input-disabled.json
│       │   │   │   │   ├── input-file.json
│       │   │   │   │   ├── input-form.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-controlled.json
│       │   │   │   │   ├── input-otp-demo.json
│       │   │   │   │   ├── input-otp-form.json
│       │   │   │   │   ├── input-otp-pattern.json
│       │   │   │   │   ├── input-otp-separator.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input-with-button.json
│       │   │   │   │   ├── input-with-label.json
│       │   │   │   │   ├── input-with-text.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-demo.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-demo.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── mode-toggle.json
│       │   │   │   │   ├── navigation-menu-demo.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-demo.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-demo.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── progress-demo.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-demo.json
│       │   │   │   │   ├── radio-group-form.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-demo-with-handle.json
│       │   │   │   │   ├── resizable-demo.json
│       │   │   │   │   ├── resizable-handle.json
│       │   │   │   │   ├── resizable-vertical.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-demo.json
│       │   │   │   │   ├── scroll-area-horizontal-demo.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-demo.json
│       │   │   │   │   ├── select-form.json
│       │   │   │   │   ├── select-scrollable.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-demo.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-demo.json
│       │   │   │   │   ├── sheet-side.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-controlled.json
│       │   │   │   │   ├── sidebar-demo.json
│       │   │   │   │   ├── sidebar-footer.json
│       │   │   │   │   ├── sidebar-group-action.json
│       │   │   │   │   ├── sidebar-group-collapsible.json
│       │   │   │   │   ├── sidebar-group.json
│       │   │   │   │   ├── sidebar-header.json
│       │   │   │   │   ├── sidebar-menu-action.json
│       │   │   │   │   ├── sidebar-menu-badge.json
│       │   │   │   │   ├── sidebar-menu-collapsible.json
│       │   │   │   │   ├── sidebar-menu-sub.json
│       │   │   │   │   ├── sidebar-menu.json
│       │   │   │   │   ├── sidebar-rsc.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── sink.json
│       │   │   │   │   ├── skeleton-card.json
│       │   │   │   │   ├── skeleton-demo.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-demo.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-demo.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-demo.json
│       │   │   │   │   ├── switch-form.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-demo.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-demo.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-demo.json
│       │   │   │   │   ├── textarea-disabled.json
│       │   │   │   │   ├── textarea-form.json
│       │   │   │   │   ├── textarea-with-button.json
│       │   │   │   │   ├── textarea-with-label.json
│       │   │   │   │   ├── textarea-with-text.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── theme-daylight.json
│       │   │   │   │   ├── theme-emerald.json
│       │   │   │   │   ├── theme-midnight.json
│       │   │   │   │   ├── toast-demo.json
│       │   │   │   │   ├── toast-destructive.json
│       │   │   │   │   ├── toast-simple.json
│       │   │   │   │   ├── toast-with-action.json
│       │   │   │   │   ├── toast-with-title.json
│       │   │   │   │   ├── toast.json
│       │   │   │   │   ├── toggle-demo.json
│       │   │   │   │   ├── toggle-disabled.json
│       │   │   │   │   ├── toggle-group-demo.json
│       │   │   │   │   ├── toggle-group-disabled.json
│       │   │   │   │   ├── toggle-group-lg.json
│       │   │   │   │   ├── toggle-group-outline.json
│       │   │   │   │   ├── toggle-group-single.json
│       │   │   │   │   ├── toggle-group-sm.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle-lg.json
│       │   │   │   │   ├── toggle-outline.json
│       │   │   │   │   ├── toggle-sm.json
│       │   │   │   │   ├── toggle-with-text.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-demo.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── typography-blockquote.json
│       │   │   │   │   ├── typography-demo.json
│       │   │   │   │   ├── typography-h1.json
│       │   │   │   │   ├── typography-h2.json
│       │   │   │   │   ├── typography-h3.json
│       │   │   │   │   ├── typography-h4.json
│       │   │   │   │   ├── typography-inline-code.json
│       │   │   │   │   ├── typography-large.json
│       │   │   │   │   ├── typography-lead.json
│       │   │   │   │   ├── typography-list.json
│       │   │   │   │   ├── typography-muted.json
│       │   │   │   │   ├── typography-p.json
│       │   │   │   │   ├── typography-small.json
│       │   │   │   │   ├── typography-table.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   ├── use-toast.json
│       │   │   │   │   ├── utils.json
│       │   │   │   │   ├── v0-login-01.json
│       │   │   │   │   ├── v0-sidebar-01.json
│       │   │   │   │   ├── v0-sidebar-02.json
│       │   │   │   │   ├── v0-sidebar-03.json
│       │   │   │   │   ├── v0-sidebar-04.json
│       │   │   │   │   ├── v0-sidebar-05.json
│       │   │   │   │   ├── v0-sidebar-06.json
│       │   │   │   │   ├── v0-sidebar-07.json
│       │   │   │   │   ├── v0-sidebar-08.json
│       │   │   │   │   ├── v0-sidebar-09.json
│       │   │   │   │   ├── v0-sidebar-10.json
│       │   │   │   │   ├── v0-sidebar-11.json
│       │   │   │   │   ├── v0-sidebar-12.json
│       │   │   │   │   ├── v0-sidebar-13.json
│       │   │   │   │   ├── v0-sidebar-14.json
│       │   │   │   │   ├── v0-sidebar-15.json
│       │   │   │   │   └── v0-sidebar-16.json
│       │   │   │   ├── index.json
│       │   │   │   ├── new-york/
│       │   │   │   │   ├── accordion-demo.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-demo.json
│       │   │   │   │   ├── alert-destructive.json
│       │   │   │   │   ├── alert-dialog-demo.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── app-01.json
│       │   │   │   │   ├── aspect-ratio-demo.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-demo.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-demo.json
│       │   │   │   │   ├── badge-destructive.json
│       │   │   │   │   ├── badge-outline.json
│       │   │   │   │   ├── badge-secondary.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-demo.json
│       │   │   │   │   ├── breadcrumb-dropdown.json
│       │   │   │   │   ├── breadcrumb-ellipsis.json
│       │   │   │   │   ├── breadcrumb-link.json
│       │   │   │   │   ├── breadcrumb-responsive.json
│       │   │   │   │   ├── breadcrumb-separator.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-01.json
│       │   │   │   │   ├── button-as-child.json
│       │   │   │   │   ├── button-demo.json
│       │   │   │   │   ├── button-destructive.json
│       │   │   │   │   ├── button-ghost.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button-icon.json
│       │   │   │   │   ├── button-link.json
│       │   │   │   │   ├── button-loading.json
│       │   │   │   │   ├── button-outline.json
│       │   │   │   │   ├── button-secondary.json
│       │   │   │   │   ├── button-with-icon.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-01.json
│       │   │   │   │   ├── calendar-02.json
│       │   │   │   │   ├── calendar-03.json
│       │   │   │   │   ├── calendar-04.json
│       │   │   │   │   ├── calendar-05.json
│       │   │   │   │   ├── calendar-06.json
│       │   │   │   │   ├── calendar-07.json
│       │   │   │   │   ├── calendar-08.json
│       │   │   │   │   ├── calendar-09.json
│       │   │   │   │   ├── calendar-10.json
│       │   │   │   │   ├── calendar-11.json
│       │   │   │   │   ├── calendar-12.json
│       │   │   │   │   ├── calendar-13.json
│       │   │   │   │   ├── calendar-14.json
│       │   │   │   │   ├── calendar-15.json
│       │   │   │   │   ├── calendar-16.json
│       │   │   │   │   ├── calendar-17.json
│       │   │   │   │   ├── calendar-18.json
│       │   │   │   │   ├── calendar-19.json
│       │   │   │   │   ├── calendar-20.json
│       │   │   │   │   ├── calendar-21.json
│       │   │   │   │   ├── calendar-22.json
│       │   │   │   │   ├── calendar-23.json
│       │   │   │   │   ├── calendar-24.json
│       │   │   │   │   ├── calendar-25.json
│       │   │   │   │   ├── calendar-26.json
│       │   │   │   │   ├── calendar-27.json
│       │   │   │   │   ├── calendar-28.json
│       │   │   │   │   ├── calendar-29.json
│       │   │   │   │   ├── calendar-30.json
│       │   │   │   │   ├── calendar-31.json
│       │   │   │   │   ├── calendar-32.json
│       │   │   │   │   ├── calendar-demo.json
│       │   │   │   │   ├── calendar-form.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-demo.json
│       │   │   │   │   ├── card-with-form.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-api.json
│       │   │   │   │   ├── carousel-demo.json
│       │   │   │   │   ├── carousel-orientation.json
│       │   │   │   │   ├── carousel-plugin.json
│       │   │   │   │   ├── carousel-size.json
│       │   │   │   │   ├── carousel-spacing.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-area-axes.json
│       │   │   │   │   ├── chart-area-default.json
│       │   │   │   │   ├── chart-area-gradient.json
│       │   │   │   │   ├── chart-area-icons.json
│       │   │   │   │   ├── chart-area-interactive.json
│       │   │   │   │   ├── chart-area-legend.json
│       │   │   │   │   ├── chart-area-linear.json
│       │   │   │   │   ├── chart-area-stacked-expand.json
│       │   │   │   │   ├── chart-area-stacked.json
│       │   │   │   │   ├── chart-area-step.json
│       │   │   │   │   ├── chart-bar-active.json
│       │   │   │   │   ├── chart-bar-default.json
│       │   │   │   │   ├── chart-bar-demo-axis.json
│       │   │   │   │   ├── chart-bar-demo-grid.json
│       │   │   │   │   ├── chart-bar-demo-legend.json
│       │   │   │   │   ├── chart-bar-demo-tooltip.json
│       │   │   │   │   ├── chart-bar-demo.json
│       │   │   │   │   ├── chart-bar-horizontal.json
│       │   │   │   │   ├── chart-bar-interactive.json
│       │   │   │   │   ├── chart-bar-label-custom.json
│       │   │   │   │   ├── chart-bar-label.json
│       │   │   │   │   ├── chart-bar-mixed.json
│       │   │   │   │   ├── chart-bar-multiple.json
│       │   │   │   │   ├── chart-bar-negative.json
│       │   │   │   │   ├── chart-bar-stacked.json
│       │   │   │   │   ├── chart-line-default.json
│       │   │   │   │   ├── chart-line-dots-colors.json
│       │   │   │   │   ├── chart-line-dots-custom.json
│       │   │   │   │   ├── chart-line-dots.json
│       │   │   │   │   ├── chart-line-interactive.json
│       │   │   │   │   ├── chart-line-label-custom.json
│       │   │   │   │   ├── chart-line-label.json
│       │   │   │   │   ├── chart-line-linear.json
│       │   │   │   │   ├── chart-line-multiple.json
│       │   │   │   │   ├── chart-line-step.json
│       │   │   │   │   ├── chart-pie-donut-active.json
│       │   │   │   │   ├── chart-pie-donut-text.json
│       │   │   │   │   ├── chart-pie-donut.json
│       │   │   │   │   ├── chart-pie-interactive.json
│       │   │   │   │   ├── chart-pie-label-custom.json
│       │   │   │   │   ├── chart-pie-label-list.json
│       │   │   │   │   ├── chart-pie-label.json
│       │   │   │   │   ├── chart-pie-legend.json
│       │   │   │   │   ├── chart-pie-separator-none.json
│       │   │   │   │   ├── chart-pie-simple.json
│       │   │   │   │   ├── chart-pie-stacked.json
│       │   │   │   │   ├── chart-radar-default.json
│       │   │   │   │   ├── chart-radar-dots.json
│       │   │   │   │   ├── chart-radar-grid-circle-fill.json
│       │   │   │   │   ├── chart-radar-grid-circle-no-lines.json
│       │   │   │   │   ├── chart-radar-grid-circle.json
│       │   │   │   │   ├── chart-radar-grid-custom.json
│       │   │   │   │   ├── chart-radar-grid-fill.json
│       │   │   │   │   ├── chart-radar-grid-none.json
│       │   │   │   │   ├── chart-radar-icons.json
│       │   │   │   │   ├── chart-radar-label-custom.json
│       │   │   │   │   ├── chart-radar-legend.json
│       │   │   │   │   ├── chart-radar-lines-only.json
│       │   │   │   │   ├── chart-radar-multiple.json
│       │   │   │   │   ├── chart-radar-radius.json
│       │   │   │   │   ├── chart-radial-grid.json
│       │   │   │   │   ├── chart-radial-label.json
│       │   │   │   │   ├── chart-radial-shape.json
│       │   │   │   │   ├── chart-radial-simple.json
│       │   │   │   │   ├── chart-radial-stacked.json
│       │   │   │   │   ├── chart-radial-text.json
│       │   │   │   │   ├── chart-tooltip-advanced.json
│       │   │   │   │   ├── chart-tooltip-default.json
│       │   │   │   │   ├── chart-tooltip-demo.json
│       │   │   │   │   ├── chart-tooltip-formatter.json
│       │   │   │   │   ├── chart-tooltip-icons.json
│       │   │   │   │   ├── chart-tooltip-indicator-line.json
│       │   │   │   │   ├── chart-tooltip-indicator-none.json
│       │   │   │   │   ├── chart-tooltip-label-custom.json
│       │   │   │   │   ├── chart-tooltip-label-formatter.json
│       │   │   │   │   ├── chart-tooltip-label-none.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-demo.json
│       │   │   │   │   ├── checkbox-disabled.json
│       │   │   │   │   ├── checkbox-form-multiple.json
│       │   │   │   │   ├── checkbox-form-single.json
│       │   │   │   │   ├── checkbox-with-text.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-demo.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-demo.json
│       │   │   │   │   ├── combobox-dropdown-menu.json
│       │   │   │   │   ├── combobox-form.json
│       │   │   │   │   ├── combobox-popover.json
│       │   │   │   │   ├── combobox-responsive.json
│       │   │   │   │   ├── command-demo.json
│       │   │   │   │   ├── command-dialog.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── context-menu-demo.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── data-table-demo.json
│       │   │   │   │   ├── date-picker-demo.json
│       │   │   │   │   ├── date-picker-form.json
│       │   │   │   │   ├── date-picker-with-presets.json
│       │   │   │   │   ├── date-picker-with-range.json
│       │   │   │   │   ├── dialog-close-button.json
│       │   │   │   │   ├── dialog-demo.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── drawer-demo.json
│       │   │   │   │   ├── drawer-dialog.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-checkboxes.json
│       │   │   │   │   ├── dropdown-menu-demo.json
│       │   │   │   │   ├── dropdown-menu-radio-group.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-demo.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-demo.json
│       │   │   │   │   ├── input-disabled.json
│       │   │   │   │   ├── input-file.json
│       │   │   │   │   ├── input-form.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-controlled.json
│       │   │   │   │   ├── input-otp-demo.json
│       │   │   │   │   ├── input-otp-form.json
│       │   │   │   │   ├── input-otp-pattern.json
│       │   │   │   │   ├── input-otp-separator.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input-with-button.json
│       │   │   │   │   ├── input-with-label.json
│       │   │   │   │   ├── input-with-text.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-demo.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-demo.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── mode-toggle.json
│       │   │   │   │   ├── navigation-menu-demo.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-demo.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-demo.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── progress-demo.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-demo.json
│       │   │   │   │   ├── radio-group-form.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-demo-with-handle.json
│       │   │   │   │   ├── resizable-demo.json
│       │   │   │   │   ├── resizable-handle.json
│       │   │   │   │   ├── resizable-vertical.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-demo.json
│       │   │   │   │   ├── scroll-area-horizontal-demo.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-demo.json
│       │   │   │   │   ├── select-form.json
│       │   │   │   │   ├── select-scrollable.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-demo.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-demo.json
│       │   │   │   │   ├── sheet-side.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-controlled.json
│       │   │   │   │   ├── sidebar-demo.json
│       │   │   │   │   ├── sidebar-footer.json
│       │   │   │   │   ├── sidebar-group-action.json
│       │   │   │   │   ├── sidebar-group-collapsible.json
│       │   │   │   │   ├── sidebar-group.json
│       │   │   │   │   ├── sidebar-header.json
│       │   │   │   │   ├── sidebar-menu-action.json
│       │   │   │   │   ├── sidebar-menu-badge.json
│       │   │   │   │   ├── sidebar-menu-collapsible.json
│       │   │   │   │   ├── sidebar-menu-sub.json
│       │   │   │   │   ├── sidebar-menu.json
│       │   │   │   │   ├── sidebar-rsc.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── sink.json
│       │   │   │   │   ├── skeleton-card.json
│       │   │   │   │   ├── skeleton-demo.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-demo.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-demo.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-demo.json
│       │   │   │   │   ├── switch-form.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-demo.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-demo.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-demo.json
│       │   │   │   │   ├── textarea-disabled.json
│       │   │   │   │   ├── textarea-form.json
│       │   │   │   │   ├── textarea-with-button.json
│       │   │   │   │   ├── textarea-with-label.json
│       │   │   │   │   ├── textarea-with-text.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── theme-daylight.json
│       │   │   │   │   ├── theme-emerald.json
│       │   │   │   │   ├── theme-midnight.json
│       │   │   │   │   ├── toast-demo.json
│       │   │   │   │   ├── toast-destructive.json
│       │   │   │   │   ├── toast-simple.json
│       │   │   │   │   ├── toast-with-action.json
│       │   │   │   │   ├── toast-with-title.json
│       │   │   │   │   ├── toast.json
│       │   │   │   │   ├── toggle-demo.json
│       │   │   │   │   ├── toggle-disabled.json
│       │   │   │   │   ├── toggle-group-demo.json
│       │   │   │   │   ├── toggle-group-disabled.json
│       │   │   │   │   ├── toggle-group-lg.json
│       │   │   │   │   ├── toggle-group-outline.json
│       │   │   │   │   ├── toggle-group-single.json
│       │   │   │   │   ├── toggle-group-sm.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle-lg.json
│       │   │   │   │   ├── toggle-outline.json
│       │   │   │   │   ├── toggle-sm.json
│       │   │   │   │   ├── toggle-with-text.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-demo.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── typography-blockquote.json
│       │   │   │   │   ├── typography-demo.json
│       │   │   │   │   ├── typography-h1.json
│       │   │   │   │   ├── typography-h2.json
│       │   │   │   │   ├── typography-h3.json
│       │   │   │   │   ├── typography-h4.json
│       │   │   │   │   ├── typography-inline-code.json
│       │   │   │   │   ├── typography-large.json
│       │   │   │   │   ├── typography-lead.json
│       │   │   │   │   ├── typography-list.json
│       │   │   │   │   ├── typography-muted.json
│       │   │   │   │   ├── typography-p.json
│       │   │   │   │   ├── typography-small.json
│       │   │   │   │   ├── typography-table.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   ├── use-toast.json
│       │   │   │   │   ├── utils.json
│       │   │   │   │   ├── v0-login-01.json
│       │   │   │   │   ├── v0-sidebar-01.json
│       │   │   │   │   ├── v0-sidebar-02.json
│       │   │   │   │   ├── v0-sidebar-03.json
│       │   │   │   │   ├── v0-sidebar-04.json
│       │   │   │   │   ├── v0-sidebar-05.json
│       │   │   │   │   ├── v0-sidebar-06.json
│       │   │   │   │   ├── v0-sidebar-07.json
│       │   │   │   │   ├── v0-sidebar-08.json
│       │   │   │   │   ├── v0-sidebar-09.json
│       │   │   │   │   ├── v0-sidebar-10.json
│       │   │   │   │   ├── v0-sidebar-11.json
│       │   │   │   │   ├── v0-sidebar-12.json
│       │   │   │   │   ├── v0-sidebar-13.json
│       │   │   │   │   ├── v0-sidebar-14.json
│       │   │   │   │   ├── v0-sidebar-15.json
│       │   │   │   │   └── v0-sidebar-16.json
│       │   │   │   ├── new-york-v4/
│       │   │   │   │   ├── accordion-demo.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-demo.json
│       │   │   │   │   ├── alert-destructive.json
│       │   │   │   │   ├── alert-dialog-demo.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-demo.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-demo.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-demo.json
│       │   │   │   │   ├── badge-destructive.json
│       │   │   │   │   ├── badge-outline.json
│       │   │   │   │   ├── badge-secondary.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-demo.json
│       │   │   │   │   ├── breadcrumb-dropdown.json
│       │   │   │   │   ├── breadcrumb-ellipsis.json
│       │   │   │   │   ├── breadcrumb-link.json
│       │   │   │   │   ├── breadcrumb-responsive.json
│       │   │   │   │   ├── breadcrumb-separator.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-as-child.json
│       │   │   │   │   ├── button-default.json
│       │   │   │   │   ├── button-demo.json
│       │   │   │   │   ├── button-destructive.json
│       │   │   │   │   ├── button-ghost.json
│       │   │   │   │   ├── button-group-demo.json
│       │   │   │   │   ├── button-group-dropdown.json
│       │   │   │   │   ├── button-group-input-group.json
│       │   │   │   │   ├── button-group-input.json
│       │   │   │   │   ├── button-group-nested.json
│       │   │   │   │   ├── button-group-orientation.json
│       │   │   │   │   ├── button-group-popover.json
│       │   │   │   │   ├── button-group-select.json
│       │   │   │   │   ├── button-group-separator.json
│       │   │   │   │   ├── button-group-size.json
│       │   │   │   │   ├── button-group-split.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button-icon.json
│       │   │   │   │   ├── button-link.json
│       │   │   │   │   ├── button-loading.json
│       │   │   │   │   ├── button-outline.json
│       │   │   │   │   ├── button-rounded.json
│       │   │   │   │   ├── button-secondary.json
│       │   │   │   │   ├── button-size.json
│       │   │   │   │   ├── button-with-icon.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-01.json
│       │   │   │   │   ├── calendar-02.json
│       │   │   │   │   ├── calendar-03.json
│       │   │   │   │   ├── calendar-04.json
│       │   │   │   │   ├── calendar-05.json
│       │   │   │   │   ├── calendar-06.json
│       │   │   │   │   ├── calendar-07.json
│       │   │   │   │   ├── calendar-08.json
│       │   │   │   │   ├── calendar-09.json
│       │   │   │   │   ├── calendar-10.json
│       │   │   │   │   ├── calendar-11.json
│       │   │   │   │   ├── calendar-12.json
│       │   │   │   │   ├── calendar-13.json
│       │   │   │   │   ├── calendar-14.json
│       │   │   │   │   ├── calendar-15.json
│       │   │   │   │   ├── calendar-16.json
│       │   │   │   │   ├── calendar-17.json
│       │   │   │   │   ├── calendar-18.json
│       │   │   │   │   ├── calendar-19.json
│       │   │   │   │   ├── calendar-20.json
│       │   │   │   │   ├── calendar-21.json
│       │   │   │   │   ├── calendar-22.json
│       │   │   │   │   ├── calendar-23.json
│       │   │   │   │   ├── calendar-24.json
│       │   │   │   │   ├── calendar-25.json
│       │   │   │   │   ├── calendar-26.json
│       │   │   │   │   ├── calendar-27.json
│       │   │   │   │   ├── calendar-28.json
│       │   │   │   │   ├── calendar-29.json
│       │   │   │   │   ├── calendar-30.json
│       │   │   │   │   ├── calendar-31.json
│       │   │   │   │   ├── calendar-32.json
│       │   │   │   │   ├── calendar-demo.json
│       │   │   │   │   ├── calendar-form.json
│       │   │   │   │   ├── calendar-hijri.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-demo.json
│       │   │   │   │   ├── card-with-form.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── carousel-api.json
│       │   │   │   │   ├── carousel-demo.json
│       │   │   │   │   ├── carousel-orientation.json
│       │   │   │   │   ├── carousel-plugin.json
│       │   │   │   │   ├── carousel-size.json
│       │   │   │   │   ├── carousel-spacing.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-area-axes.json
│       │   │   │   │   ├── chart-area-default.json
│       │   │   │   │   ├── chart-area-gradient.json
│       │   │   │   │   ├── chart-area-icons.json
│       │   │   │   │   ├── chart-area-interactive.json
│       │   │   │   │   ├── chart-area-legend.json
│       │   │   │   │   ├── chart-area-linear.json
│       │   │   │   │   ├── chart-area-stacked-expand.json
│       │   │   │   │   ├── chart-area-stacked.json
│       │   │   │   │   ├── chart-area-step.json
│       │   │   │   │   ├── chart-bar-active.json
│       │   │   │   │   ├── chart-bar-default.json
│       │   │   │   │   ├── chart-bar-demo-axis.json
│       │   │   │   │   ├── chart-bar-demo-grid.json
│       │   │   │   │   ├── chart-bar-demo-legend.json
│       │   │   │   │   ├── chart-bar-demo-tooltip.json
│       │   │   │   │   ├── chart-bar-demo.json
│       │   │   │   │   ├── chart-bar-horizontal.json
│       │   │   │   │   ├── chart-bar-interactive.json
│       │   │   │   │   ├── chart-bar-label-custom.json
│       │   │   │   │   ├── chart-bar-label.json
│       │   │   │   │   ├── chart-bar-mixed.json
│       │   │   │   │   ├── chart-bar-multiple.json
│       │   │   │   │   ├── chart-bar-negative.json
│       │   │   │   │   ├── chart-bar-stacked.json
│       │   │   │   │   ├── chart-line-default.json
│       │   │   │   │   ├── chart-line-dots-colors.json
│       │   │   │   │   ├── chart-line-dots-custom.json
│       │   │   │   │   ├── chart-line-dots.json
│       │   │   │   │   ├── chart-line-interactive.json
│       │   │   │   │   ├── chart-line-label-custom.json
│       │   │   │   │   ├── chart-line-label.json
│       │   │   │   │   ├── chart-line-linear.json
│       │   │   │   │   ├── chart-line-multiple.json
│       │   │   │   │   ├── chart-line-step.json
│       │   │   │   │   ├── chart-pie-donut-active.json
│       │   │   │   │   ├── chart-pie-donut-text.json
│       │   │   │   │   ├── chart-pie-donut.json
│       │   │   │   │   ├── chart-pie-interactive.json
│       │   │   │   │   ├── chart-pie-label-custom.json
│       │   │   │   │   ├── chart-pie-label-list.json
│       │   │   │   │   ├── chart-pie-label.json
│       │   │   │   │   ├── chart-pie-legend.json
│       │   │   │   │   ├── chart-pie-separator-none.json
│       │   │   │   │   ├── chart-pie-simple.json
│       │   │   │   │   ├── chart-pie-stacked.json
│       │   │   │   │   ├── chart-radar-default.json
│       │   │   │   │   ├── chart-radar-dots.json
│       │   │   │   │   ├── chart-radar-grid-circle-fill.json
│       │   │   │   │   ├── chart-radar-grid-circle-no-lines.json
│       │   │   │   │   ├── chart-radar-grid-circle.json
│       │   │   │   │   ├── chart-radar-grid-custom.json
│       │   │   │   │   ├── chart-radar-grid-fill.json
│       │   │   │   │   ├── chart-radar-grid-none.json
│       │   │   │   │   ├── chart-radar-icons.json
│       │   │   │   │   ├── chart-radar-label-custom.json
│       │   │   │   │   ├── chart-radar-legend.json
│       │   │   │   │   ├── chart-radar-lines-only.json
│       │   │   │   │   ├── chart-radar-multiple.json
│       │   │   │   │   ├── chart-radar-radius.json
│       │   │   │   │   ├── chart-radial-grid.json
│       │   │   │   │   ├── chart-radial-label.json
│       │   │   │   │   ├── chart-radial-shape.json
│       │   │   │   │   ├── chart-radial-simple.json
│       │   │   │   │   ├── chart-radial-stacked.json
│       │   │   │   │   ├── chart-radial-text.json
│       │   │   │   │   ├── chart-tooltip-advanced.json
│       │   │   │   │   ├── chart-tooltip-default.json
│       │   │   │   │   ├── chart-tooltip-demo.json
│       │   │   │   │   ├── chart-tooltip-formatter.json
│       │   │   │   │   ├── chart-tooltip-icons.json
│       │   │   │   │   ├── chart-tooltip-indicator-line.json
│       │   │   │   │   ├── chart-tooltip-indicator-none.json
│       │   │   │   │   ├── chart-tooltip-label-custom.json
│       │   │   │   │   ├── chart-tooltip-label-formatter.json
│       │   │   │   │   ├── chart-tooltip-label-none.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-demo.json
│       │   │   │   │   ├── checkbox-disabled.json
│       │   │   │   │   ├── checkbox-form-multiple.json
│       │   │   │   │   ├── checkbox-form-single.json
│       │   │   │   │   ├── checkbox-with-text.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-demo.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-demo.json
│       │   │   │   │   ├── combobox-dropdown-menu.json
│       │   │   │   │   ├── combobox-form.json
│       │   │   │   │   ├── combobox-popover.json
│       │   │   │   │   ├── combobox-responsive.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-demo.json
│       │   │   │   │   ├── command-dialog.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── context-menu-demo.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── data-table-demo.json
│       │   │   │   │   ├── date-picker-demo.json
│       │   │   │   │   ├── date-picker-form.json
│       │   │   │   │   ├── date-picker-with-presets.json
│       │   │   │   │   ├── date-picker-with-range.json
│       │   │   │   │   ├── dialog-close-button.json
│       │   │   │   │   ├── dialog-demo.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-demo.json
│       │   │   │   │   ├── drawer-dialog.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-checkboxes.json
│       │   │   │   │   ├── dropdown-menu-demo.json
│       │   │   │   │   ├── dropdown-menu-dialog.json
│       │   │   │   │   ├── dropdown-menu-radio-group.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-avatar-group.json
│       │   │   │   │   ├── empty-avatar.json
│       │   │   │   │   ├── empty-background.json
│       │   │   │   │   ├── empty-demo.json
│       │   │   │   │   ├── empty-icon.json
│       │   │   │   │   ├── empty-image.json
│       │   │   │   │   ├── empty-input-group.json
│       │   │   │   │   ├── empty-muted.json
│       │   │   │   │   ├── empty-outline.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── field-badge.json
│       │   │   │   │   ├── field-checkbox.json
│       │   │   │   │   ├── field-choice-card.json
│       │   │   │   │   ├── field-demo.json
│       │   │   │   │   ├── field-fieldset.json
│       │   │   │   │   ├── field-group.json
│       │   │   │   │   ├── field-input.json
│       │   │   │   │   ├── field-radio.json
│       │   │   │   │   ├── field-responsive.json
│       │   │   │   │   ├── field-select.json
│       │   │   │   │   ├── field-slider.json
│       │   │   │   │   ├── field-switch.json
│       │   │   │   │   ├── field-textarea.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── form-next-complex.json
│       │   │   │   │   ├── form-next-demo.json
│       │   │   │   │   ├── form-rhf-array.json
│       │   │   │   │   ├── form-rhf-checkbox.json
│       │   │   │   │   ├── form-rhf-complex.json
│       │   │   │   │   ├── form-rhf-demo.json
│       │   │   │   │   ├── form-rhf-input.json
│       │   │   │   │   ├── form-rhf-password.json
│       │   │   │   │   ├── form-rhf-radiogroup.json
│       │   │   │   │   ├── form-rhf-select.json
│       │   │   │   │   ├── form-rhf-switch.json
│       │   │   │   │   ├── form-rhf-textarea.json
│       │   │   │   │   ├── form-tanstack-array.json
│       │   │   │   │   ├── form-tanstack-checkbox.json
│       │   │   │   │   ├── form-tanstack-complex.json
│       │   │   │   │   ├── form-tanstack-demo.json
│       │   │   │   │   ├── form-tanstack-input.json
│       │   │   │   │   ├── form-tanstack-radiogroup.json
│       │   │   │   │   ├── form-tanstack-select.json
│       │   │   │   │   ├── form-tanstack-switch.json
│       │   │   │   │   ├── form-tanstack-textarea.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-demo.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-demo.json
│       │   │   │   │   ├── input-disabled.json
│       │   │   │   │   ├── input-file.json
│       │   │   │   │   ├── input-form.json
│       │   │   │   │   ├── input-group-align.json
│       │   │   │   │   ├── input-group-button-group.json
│       │   │   │   │   ├── input-group-button.json
│       │   │   │   │   ├── input-group-custom.json
│       │   │   │   │   ├── input-group-demo.json
│       │   │   │   │   ├── input-group-dropdown.json
│       │   │   │   │   ├── input-group-icon.json
│       │   │   │   │   ├── input-group-label.json
│       │   │   │   │   ├── input-group-select.json
│       │   │   │   │   ├── input-group-spinner.json
│       │   │   │   │   ├── input-group-text.json
│       │   │   │   │   ├── input-group-textarea.json
│       │   │   │   │   ├── input-group-tooltip.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-controlled.json
│       │   │   │   │   ├── input-otp-demo.json
│       │   │   │   │   ├── input-otp-form.json
│       │   │   │   │   ├── input-otp-pattern.json
│       │   │   │   │   ├── input-otp-separator.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input-with-button.json
│       │   │   │   │   ├── input-with-label.json
│       │   │   │   │   ├── input-with-text.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-avatar.json
│       │   │   │   │   ├── item-demo.json
│       │   │   │   │   ├── item-dropdown.json
│       │   │   │   │   ├── item-group.json
│       │   │   │   │   ├── item-header.json
│       │   │   │   │   ├── item-icon.json
│       │   │   │   │   ├── item-image.json
│       │   │   │   │   ├── item-link.json
│       │   │   │   │   ├── item-select.json
│       │   │   │   │   ├── item-size.json
│       │   │   │   │   ├── item-variant.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-button.json
│       │   │   │   │   ├── kbd-demo.json
│       │   │   │   │   ├── kbd-group.json
│       │   │   │   │   ├── kbd-input-group.json
│       │   │   │   │   ├── kbd-tooltip.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-demo.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-demo.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── mode-toggle.json
│       │   │   │   │   ├── native-select-demo.json
│       │   │   │   │   ├── native-select-disabled.json
│       │   │   │   │   ├── native-select-groups.json
│       │   │   │   │   ├── native-select-invalid.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-demo.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── otp-01.json
│       │   │   │   │   ├── otp-02.json
│       │   │   │   │   ├── otp-03.json
│       │   │   │   │   ├── otp-04.json
│       │   │   │   │   ├── otp-05.json
│       │   │   │   │   ├── pagination-demo.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-demo.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── products-01.json
│       │   │   │   │   ├── progress-demo.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-demo.json
│       │   │   │   │   ├── radio-group-form.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-demo-with-handle.json
│       │   │   │   │   ├── resizable-demo.json
│       │   │   │   │   ├── resizable-handle.json
│       │   │   │   │   ├── resizable-vertical.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-demo.json
│       │   │   │   │   ├── scroll-area-horizontal-demo.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-demo.json
│       │   │   │   │   ├── select-form.json
│       │   │   │   │   ├── select-scrollable.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-demo.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-demo.json
│       │   │   │   │   ├── sheet-side.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-controlled.json
│       │   │   │   │   ├── sidebar-demo.json
│       │   │   │   │   ├── sidebar-footer.json
│       │   │   │   │   ├── sidebar-group-action.json
│       │   │   │   │   ├── sidebar-group-collapsible.json
│       │   │   │   │   ├── sidebar-group.json
│       │   │   │   │   ├── sidebar-header.json
│       │   │   │   │   ├── sidebar-menu-action.json
│       │   │   │   │   ├── sidebar-menu-badge.json
│       │   │   │   │   ├── sidebar-menu-collapsible.json
│       │   │   │   │   ├── sidebar-menu-sub.json
│       │   │   │   │   ├── sidebar-menu.json
│       │   │   │   │   ├── sidebar-rsc.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-card.json
│       │   │   │   │   ├── skeleton-demo.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-demo.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-demo.json
│       │   │   │   │   ├── sonner-types.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-badge.json
│       │   │   │   │   ├── spinner-basic.json
│       │   │   │   │   ├── spinner-button.json
│       │   │   │   │   ├── spinner-color.json
│       │   │   │   │   ├── spinner-custom.json
│       │   │   │   │   ├── spinner-demo.json
│       │   │   │   │   ├── spinner-empty.json
│       │   │   │   │   ├── spinner-input-group.json
│       │   │   │   │   ├── spinner-item.json
│       │   │   │   │   ├── spinner-size.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-demo.json
│       │   │   │   │   ├── switch-form.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-demo.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-demo.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-demo.json
│       │   │   │   │   ├── textarea-disabled.json
│       │   │   │   │   ├── textarea-form.json
│       │   │   │   │   ├── textarea-with-button.json
│       │   │   │   │   ├── textarea-with-label.json
│       │   │   │   │   ├── textarea-with-text.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── theme-gray.json
│       │   │   │   │   ├── theme-neutral.json
│       │   │   │   │   ├── theme-slate.json
│       │   │   │   │   ├── theme-stone.json
│       │   │   │   │   ├── theme-zinc.json
│       │   │   │   │   ├── toast-demo.json
│       │   │   │   │   ├── toast-destructive.json
│       │   │   │   │   ├── toast-simple.json
│       │   │   │   │   ├── toast-with-action.json
│       │   │   │   │   ├── toast-with-title.json
│       │   │   │   │   ├── toggle-demo.json
│       │   │   │   │   ├── toggle-disabled.json
│       │   │   │   │   ├── toggle-group-demo.json
│       │   │   │   │   ├── toggle-group-disabled.json
│       │   │   │   │   ├── toggle-group-lg.json
│       │   │   │   │   ├── toggle-group-outline.json
│       │   │   │   │   ├── toggle-group-single.json
│       │   │   │   │   ├── toggle-group-sm.json
│       │   │   │   │   ├── toggle-group-spacing.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle-lg.json
│       │   │   │   │   ├── toggle-outline.json
│       │   │   │   │   ├── toggle-sm.json
│       │   │   │   │   ├── toggle-with-text.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-demo.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── typography-blockquote.json
│       │   │   │   │   ├── typography-demo.json
│       │   │   │   │   ├── typography-h1.json
│       │   │   │   │   ├── typography-h2.json
│       │   │   │   │   ├── typography-h3.json
│       │   │   │   │   ├── typography-h4.json
│       │   │   │   │   ├── typography-inline-code.json
│       │   │   │   │   ├── typography-large.json
│       │   │   │   │   ├── typography-lead.json
│       │   │   │   │   ├── typography-list.json
│       │   │   │   │   ├── typography-muted.json
│       │   │   │   │   ├── typography-p.json
│       │   │   │   │   ├── typography-small.json
│       │   │   │   │   ├── typography-table.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── radix-lyra/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── cards.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── radix-maia/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── cards.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-slab.json
│       │   │   │   │   ├── font-heading-roboto.json
│       │   │   │   │   ├── font-heading-source-sans-3.json
│       │   │   │   │   ├── font-heading-space-grotesk.json
│       │   │   │   │   ├── font-heading-tomorrow.json
│       │   │   │   │   ├── font-ibm-plex-sans.json
│       │   │   │   │   ├── font-instrument-sans.json
│       │   │   │   │   ├── font-inter.json
│       │   │   │   │   ├── font-jetbrains-mono.json
│       │   │   │   │   ├── font-lora.json
│       │   │   │   │   ├── font-manrope.json
│       │   │   │   │   ├── font-merriweather.json
│       │   │   │   │   ├── font-montserrat.json
│       │   │   │   │   ├── font-noto-sans.json
│       │   │   │   │   ├── font-noto-serif.json
│       │   │   │   │   ├── font-nunito-sans.json
│       │   │   │   │   ├── font-outfit.json
│       │   │   │   │   ├── font-oxanium.json
│       │   │   │   │   ├── font-playfair-display.json
│       │   │   │   │   ├── font-public-sans.json
│       │   │   │   │   ├── font-raleway.json
│       │   │   │   │   ├── font-roboto-slab.json
│       │   │   │   │   ├── font-roboto.json
│       │   │   │   │   ├── font-source-sans-3.json
│       │   │   │   │   ├── font-space-grotesk.json
│       │   │   │   │   ├── font-tomorrow.json
│       │   │   │   │   ├── form.json
│       │   │   │   │   ├── hover-card-example.json
│       │   │   │   │   ├── hover-card.json
│       │   │   │   │   ├── index.json
│       │   │   │   │   ├── input-example.json
│       │   │   │   │   ├── input-group-example.json
│       │   │   │   │   ├── input-group.json
│       │   │   │   │   ├── input-otp-example.json
│       │   │   │   │   ├── input-otp.json
│       │   │   │   │   ├── input.json
│       │   │   │   │   ├── item-example.json
│       │   │   │   │   ├── item.json
│       │   │   │   │   ├── kbd-example.json
│       │   │   │   │   ├── kbd.json
│       │   │   │   │   ├── label-example.json
│       │   │   │   │   ├── label.json
│       │   │   │   │   ├── login-01.json
│       │   │   │   │   ├── login-02.json
│       │   │   │   │   ├── login-03.json
│       │   │   │   │   ├── login-04.json
│       │   │   │   │   ├── login-05.json
│       │   │   │   │   ├── menubar-example.json
│       │   │   │   │   ├── menubar.json
│       │   │   │   │   ├── native-select-example.json
│       │   │   │   │   ├── native-select.json
│       │   │   │   │   ├── navigation-menu-example.json
│       │   │   │   │   ├── navigation-menu.json
│       │   │   │   │   ├── pagination-example.json
│       │   │   │   │   ├── pagination.json
│       │   │   │   │   ├── popover-example.json
│       │   │   │   │   ├── popover.json
│       │   │   │   │   ├── preview.json
│       │   │   │   │   ├── progress-example.json
│       │   │   │   │   ├── progress.json
│       │   │   │   │   ├── radio-group-example.json
│       │   │   │   │   ├── radio-group.json
│       │   │   │   │   ├── registry.json
│       │   │   │   │   ├── resizable-example.json
│       │   │   │   │   ├── resizable.json
│       │   │   │   │   ├── scroll-area-example.json
│       │   │   │   │   ├── scroll-area.json
│       │   │   │   │   ├── select-example.json
│       │   │   │   │   ├── select.json
│       │   │   │   │   ├── separator-example.json
│       │   │   │   │   ├── separator.json
│       │   │   │   │   ├── sheet-example.json
│       │   │   │   │   ├── sheet.json
│       │   │   │   │   ├── sidebar-01.json
│       │   │   │   │   ├── sidebar-02.json
│       │   │   │   │   ├── sidebar-03.json
│       │   │   │   │   ├── sidebar-04.json
│       │   │   │   │   ├── sidebar-05.json
│       │   │   │   │   ├── sidebar-06.json
│       │   │   │   │   ├── sidebar-07.json
│       │   │   │   │   ├── sidebar-08.json
│       │   │   │   │   ├── sidebar-09.json
│       │   │   │   │   ├── sidebar-10.json
│       │   │   │   │   ├── sidebar-11.json
│       │   │   │   │   ├── sidebar-12.json
│       │   │   │   │   ├── sidebar-13.json
│       │   │   │   │   ├── sidebar-14.json
│       │   │   │   │   ├── sidebar-15.json
│       │   │   │   │   ├── sidebar-16.json
│       │   │   │   │   ├── sidebar-example.json
│       │   │   │   │   ├── sidebar-floating-example.json
│       │   │   │   │   ├── sidebar-icon-example.json
│       │   │   │   │   ├── sidebar-inset-example.json
│       │   │   │   │   ├── sidebar.json
│       │   │   │   │   ├── signup-01.json
│       │   │   │   │   ├── signup-02.json
│       │   │   │   │   ├── signup-03.json
│       │   │   │   │   ├── signup-04.json
│       │   │   │   │   ├── signup-05.json
│       │   │   │   │   ├── skeleton-example.json
│       │   │   │   │   ├── skeleton.json
│       │   │   │   │   ├── slider-example.json
│       │   │   │   │   ├── slider.json
│       │   │   │   │   ├── sonner-example.json
│       │   │   │   │   ├── sonner.json
│       │   │   │   │   ├── spinner-example.json
│       │   │   │   │   ├── spinner.json
│       │   │   │   │   ├── style.json
│       │   │   │   │   ├── switch-example.json
│       │   │   │   │   ├── switch.json
│       │   │   │   │   ├── table-example.json
│       │   │   │   │   ├── table.json
│       │   │   │   │   ├── tabs-example.json
│       │   │   │   │   ├── tabs.json
│       │   │   │   │   ├── textarea-example.json
│       │   │   │   │   ├── textarea.json
│       │   │   │   │   ├── toggle-example.json
│       │   │   │   │   ├── toggle-group-example.json
│       │   │   │   │   ├── toggle-group.json
│       │   │   │   │   ├── toggle.json
│       │   │   │   │   ├── tooltip-example.json
│       │   │   │   │   ├── tooltip.json
│       │   │   │   │   ├── use-mobile.json
│       │   │   │   │   └── utils.json
│       │   │   │   ├── radix-mira/
│       │   │   │   │   ├── accordion-example.json
│       │   │   │   │   ├── accordion.json
│       │   │   │   │   ├── alert-dialog-example.json
│       │   │   │   │   ├── alert-dialog.json
│       │   │   │   │   ├── alert-example.json
│       │   │   │   │   ├── alert.json
│       │   │   │   │   ├── aspect-ratio-example.json
│       │   │   │   │   ├── aspect-ratio.json
│       │   │   │   │   ├── avatar-example.json
│       │   │   │   │   ├── avatar.json
│       │   │   │   │   ├── badge-example.json
│       │   │   │   │   ├── badge.json
│       │   │   │   │   ├── breadcrumb-example.json
│       │   │   │   │   ├── breadcrumb.json
│       │   │   │   │   ├── button-example.json
│       │   │   │   │   ├── button-group-example.json
│       │   │   │   │   ├── button-group.json
│       │   │   │   │   ├── button.json
│       │   │   │   │   ├── calendar-example.json
│       │   │   │   │   ├── calendar.json
│       │   │   │   │   ├── card-example.json
│       │   │   │   │   ├── card.json
│       │   │   │   │   ├── cards.json
│       │   │   │   │   ├── carousel-example.json
│       │   │   │   │   ├── carousel.json
│       │   │   │   │   ├── chart-example.json
│       │   │   │   │   ├── chart.json
│       │   │   │   │   ├── checkbox-example.json
│       │   │   │   │   ├── checkbox.json
│       │   │   │   │   ├── collapsible-example.json
│       │   │   │   │   ├── collapsible.json
│       │   │   │   │   ├── combobox-example.json
│       │   │   │   │   ├── combobox.json
│       │   │   │   │   ├── command-example.json
│       │   │   │   │   ├── command.json
│       │   │   │   │   ├── component-example.json
│       │   │   │   │   ├── context-menu-example.json
│       │   │   │   │   ├── context-menu.json
│       │   │   │   │   ├── dashboard-01.json
│       │   │   │   │   ├── demo.json
│       │   │   │   │   ├── dialog-example.json
│       │   │   │   │   ├── dialog.json
│       │   │   │   │   ├── direction.json
│       │   │   │   │   ├── drawer-example.json
│       │   │   │   │   ├── drawer.json
│       │   │   │   │   ├── dropdown-menu-example.json
│       │   │   │   │   ├── dropdown-menu.json
│       │   │   │   │   ├── empty-example.json
│       │   │   │   │   ├── empty.json
│       │   │   │   │   ├── example.json
│       │   │   │   │   ├── field-example.json
│       │   │   │   │   ├── field.json
│       │   │   │   │   ├── font-dm-sans.json
│       │   │   │   │   ├── font-figtree.json
│       │   │   │   │   ├── font-geist-mono.json
│       │   │   │   │   ├── font-geist.json
│       │   │   │   │   ├── font-heading-dm-sans.json
│       │   │   │   │   ├── font-heading-figtree.json
│       │   │   │   │   ├── font-heading-geist-mono.json
│       │   │   │   │   ├── font-heading-geist.json
│       │   │   │   │   ├── font-heading-ibm-plex-sans.json
│       │   │   │   │   ├── font-heading-instrument-sans.json
│       │   │   │   │   ├── font-heading-inter.json
│       │   │   │   │   ├── font-heading-jetbrains-mono.json
│       │   │   │   │   ├── font-heading-lora.json
│       │   │   │   │   ├── font-heading-manrope.json
│       │   │   │   │   ├── font-heading-merriweather.json
│       │   │   │   │   ├── font-heading-montserrat.json
│       │   │   │   │   ├── font-heading-noto-sans.json
│       │   │   │   │   ├── font-heading-noto-serif.json
│       │   │   │   │   ├── font-heading-nunito-sans.json
│       │   │   │   │   ├── font-heading-outfit.json
│       │   │   │   │   ├── font-heading-oxanium.json
│       │   │   │   │   ├── font-heading-playfair-display.json
│       │   │   │   │   ├── font-heading-public-sans.json
│       │   │   │   │   ├── font-heading-raleway.json
│       │   │   │   │   ├── font-heading-roboto-s
Download .txt
Showing preview only (622K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (6320 symbols across 2617 files)

FILE: apps/v4/app/(app)/(root)/components/appearance-settings.tsx
  function AppearanceSettings (line 22) | function AppearanceSettings() {

FILE: apps/v4/app/(app)/(root)/components/button-group-demo.tsx
  function ButtonGroupDemo (line 31) | function ButtonGroupDemo() {

FILE: apps/v4/app/(app)/(root)/components/button-group-input-group.tsx
  function ButtonGroupInputGroup (line 19) | function ButtonGroupInputGroup() {

FILE: apps/v4/app/(app)/(root)/components/button-group-nested.tsx
  function ButtonGroupNested (line 7) | function ButtonGroupNested() {

FILE: apps/v4/app/(app)/(root)/components/button-group-popover.tsx
  function ButtonGroupPopover (line 12) | function ButtonGroupPopover() {

FILE: apps/v4/app/(app)/(root)/components/empty-avatar-group.tsx
  function EmptyAvatarGroup (line 18) | function EmptyAvatarGroup() {

FILE: apps/v4/app/(app)/(root)/components/empty-input-group.tsx
  function EmptyInputGroup (line 17) | function EmptyInputGroup() {

FILE: apps/v4/app/(app)/(root)/components/field-checkbox.tsx
  function FieldCheckbox (line 4) | function FieldCheckbox() {

FILE: apps/v4/app/(app)/(root)/components/field-choice-card.tsx
  function FieldChoiceCard (line 15) | function FieldChoiceCard() {

FILE: apps/v4/app/(app)/(root)/components/field-demo.tsx
  function FieldDemo (line 23) | function FieldDemo() {

FILE: apps/v4/app/(app)/(root)/components/field-hear.tsx
  function FieldHear (line 33) | function FieldHear() {

FILE: apps/v4/app/(app)/(root)/components/field-slider.tsx
  function FieldSlider (line 7) | function FieldSlider() {

FILE: apps/v4/app/(app)/(root)/components/index.tsx
  function RootComponents (line 20) | function RootComponents() {

FILE: apps/v4/app/(app)/(root)/components/input-group-button.tsx
  function InputGroupButtonExample (line 18) | function InputGroupButtonExample() {

FILE: apps/v4/app/(app)/(root)/components/input-group-demo.tsx
  function InputGroupDemo (line 24) | function InputGroupDemo() {

FILE: apps/v4/app/(app)/(root)/components/input-group-textarea.tsx
  function InputGroupTextareaExample (line 16) | function InputGroupTextareaExample() {

FILE: apps/v4/app/(app)/(root)/components/item-avatar.tsx
  function ItemAvatar (line 18) | function ItemAvatar() {

FILE: apps/v4/app/(app)/(root)/components/item-demo.tsx
  function ItemDemo (line 12) | function ItemDemo() {

FILE: apps/v4/app/(app)/(root)/components/notion-prompt-form.tsx
  constant SAMPLE_DATA (line 57) | const SAMPLE_DATA = {
  function MentionableIcon (line 142) | function MentionableIcon({
  function NotionPromptForm (line 159) | function NotionPromptForm() {

FILE: apps/v4/app/(app)/(root)/components/spinner-badge.tsx
  function SpinnerBadge (line 4) | function SpinnerBadge() {

FILE: apps/v4/app/(app)/(root)/components/spinner-empty.tsx
  function SpinnerEmpty (line 12) | function SpinnerEmpty() {

FILE: apps/v4/app/(app)/(root)/page.tsx
  function IndexPage (line 50) | function IndexPage() {

FILE: apps/v4/app/(app)/blocks/[...categories]/page.tsx
  function generateStaticParams (line 10) | async function generateStaticParams() {
  function BlocksPage (line 16) | async function BlocksPage({

FILE: apps/v4/app/(app)/blocks/layout.tsx
  function BlocksLayout (line 43) | function BlocksLayout({

FILE: apps/v4/app/(app)/blocks/page.tsx
  constant FEATURED_BLOCKS (line 10) | const FEATURED_BLOCKS = [
  function BlocksPage (line 18) | async function BlocksPage() {

FILE: apps/v4/app/(app)/charts/[type]/page.tsx
  type ChartPageProps (line 17) | interface ChartPageProps {
  type ChartType (line 32) | type ChartType = (typeof chartTypes)[number]
  function generateStaticParams (line 34) | async function generateStaticParams() {
  function ChartPage (line 40) | async function ChartPage({ params }: ChartPageProps) {

FILE: apps/v4/app/(app)/charts/charts.tsx
  type ChartComponent (line 74) | type ChartComponent = React.ComponentType
  type ChartItem (line 76) | interface ChartItem {
  type ChartGroups (line 82) | interface ChartGroups {

FILE: apps/v4/app/(app)/charts/layout.tsx
  function ChartsLayout (line 44) | function ChartsLayout({

FILE: apps/v4/app/(app)/colors/layout.tsx
  function ColorsLayout (line 42) | function ColorsLayout({

FILE: apps/v4/app/(app)/colors/page.tsx
  function ColorsPage (line 7) | function ColorsPage() {

FILE: apps/v4/app/(app)/docs/[[...slug]]/page.tsx
  function generateStaticParams (line 19) | function generateStaticParams() {
  function generateMetadata (line 23) | async function generateMetadata(props: {
  function Page (line 71) | async function Page(props: {

FILE: apps/v4/app/(app)/docs/changelog/page.tsx
  function generateMetadata (line 13) | function generateMetadata() {
  function ChangelogPage (line 35) | function ChangelogPage() {

FILE: apps/v4/app/(app)/docs/layout.tsx
  function DocsLayout (line 5) | function DocsLayout({

FILE: apps/v4/app/(app)/examples/authentication/components/user-auth-form.tsx
  function UserAuthForm (line 17) | function UserAuthForm({

FILE: apps/v4/app/(app)/examples/authentication/page.tsx
  function AuthenticationPage (line 15) | function AuthenticationPage() {

FILE: apps/v4/app/(app)/examples/dashboard/components/app-sidebar.tsx
  function AppSidebar (line 154) | function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {

FILE: apps/v4/app/(app)/examples/dashboard/components/chart-area-interactive.tsx
  function ChartAreaInteractive (line 143) | function ChartAreaInteractive() {

FILE: apps/v4/app/(app)/examples/dashboard/components/data-table.tsx
  function DragHandle (line 120) | function DragHandle({ id }: { id: number }) {
  function DraggableRow (line 314) | function DraggableRow({ row }: { row: Row<z.infer<typeof schema>> }) {
  function DataTable (line 339) | function DataTable({
  function TableCellViewer (line 650) | function TableCellViewer({ item }: { item: z.infer<typeof schema> }) {

FILE: apps/v4/app/(app)/examples/dashboard/components/nav-documents.tsx
  function NavDocuments (line 28) | function NavDocuments({

FILE: apps/v4/app/(app)/examples/dashboard/components/nav-main.tsx
  function NavMain (line 14) | function NavMain({

FILE: apps/v4/app/(app)/examples/dashboard/components/nav-secondary.tsx
  function NavSecondary (line 14) | function NavSecondary({

FILE: apps/v4/app/(app)/examples/dashboard/components/nav-user.tsx
  function NavUser (line 32) | function NavUser({

FILE: apps/v4/app/(app)/examples/dashboard/components/section-cards.tsx
  function SectionCards (line 13) | function SectionCards() {

FILE: apps/v4/app/(app)/examples/dashboard/components/site-header.tsx
  function SiteHeader (line 5) | function SiteHeader() {

FILE: apps/v4/app/(app)/examples/dashboard/page.tsx
  function Page (line 15) | function Page() {

FILE: apps/v4/app/(app)/examples/layout.tsx
  function ExamplesLayout (line 47) | function ExamplesLayout({

FILE: apps/v4/app/(app)/examples/playground/components/code-viewer.tsx
  function CodeViewer (line 11) | function CodeViewer() {

FILE: apps/v4/app/(app)/examples/playground/components/maxlength-selector.tsx
  type MaxLengthSelectorProps (line 14) | interface MaxLengthSelectorProps {
  function MaxLengthSelector (line 20) | function MaxLengthSelector({ defaultValue }: MaxLengthSelectorProps) {

FILE: apps/v4/app/(app)/examples/playground/components/model-selector.tsx
  type ModelSelectorProps (line 32) | interface ModelSelectorProps
  function ModelSelector (line 38) | function ModelSelector({ models, types, ...props }: ModelSelectorProps) {
  type ModelItemProps (line 128) | interface ModelItemProps {
  function ModelItem (line 135) | function ModelItem({ model, isSelected, onSelect, onPeek }: ModelItemPro...

FILE: apps/v4/app/(app)/examples/playground/components/preset-actions.tsx
  function PresetActions (line 36) | function PresetActions() {

FILE: apps/v4/app/(app)/examples/playground/components/preset-save.tsx
  function PresetSave (line 15) | function PresetSave() {

FILE: apps/v4/app/(app)/examples/playground/components/preset-selector.tsx
  type PresetSelectorProps (line 26) | interface PresetSelectorProps
  function PresetSelector (line 31) | function PresetSelector({ presets, ...props }: PresetSelectorProps) {

FILE: apps/v4/app/(app)/examples/playground/components/preset-share.tsx
  function PresetShare (line 12) | function PresetShare() {

FILE: apps/v4/app/(app)/examples/playground/components/temperature-selector.tsx
  type TemperatureSelectorProps (line 14) | interface TemperatureSelectorProps {
  function TemperatureSelector (line 20) | function TemperatureSelector({

FILE: apps/v4/app/(app)/examples/playground/components/top-p-selector.tsx
  type TopPSelectorProps (line 14) | interface TopPSelectorProps {
  function TopPSelector (line 20) | function TopPSelector({ defaultValue }: TopPSelectorProps) {

FILE: apps/v4/app/(app)/examples/playground/data/models.ts
  type ModelType (line 3) | type ModelType = (typeof types)[number]
  type Model (line 5) | interface Model<Type = string> {

FILE: apps/v4/app/(app)/examples/playground/data/presets.ts
  type Preset (line 1) | interface Preset {

FILE: apps/v4/app/(app)/examples/playground/page.tsx
  function PlaygroundPage (line 38) | function PlaygroundPage() {

FILE: apps/v4/app/(app)/examples/rtl/components/appearance-settings.tsx
  function AppearanceSettings (line 59) | function AppearanceSettings() {

FILE: apps/v4/app/(app)/examples/rtl/components/button-group-demo.tsx
  function ButtonGroupDemo (line 69) | function ButtonGroupDemo() {

FILE: apps/v4/app/(app)/examples/rtl/components/button-group-input-group.tsx
  function ButtonGroupInputGroup (line 38) | function ButtonGroupInputGroup() {

FILE: apps/v4/app/(app)/examples/rtl/components/button-group-nested.tsx
  function formatNumber (line 24) | function formatNumber(value: number, locale: string) {
  function ButtonGroupNested (line 28) | function ButtonGroupNested() {

FILE: apps/v4/app/(app)/examples/rtl/components/button-group-popover.tsx
  function ButtonGroupPopover (line 39) | function ButtonGroupPopover() {

FILE: apps/v4/app/(app)/examples/rtl/components/empty-avatar-group.tsx
  function EmptyAvatarGroup (line 37) | function EmptyAvatarGroup() {

FILE: apps/v4/app/(app)/examples/rtl/components/field-checkbox.tsx
  function FieldCheckbox (line 19) | function FieldCheckbox() {

FILE: apps/v4/app/(app)/examples/rtl/components/field-demo.tsx
  function formatCardNumber (line 70) | function formatCardNumber(locale: string) {
  function formatCvv (line 75) | function formatCvv(locale: string) {
  function getMonths (line 79) | function getMonths(locale: string) {
  function getYears (line 90) | function getYears(locale: string) {
  function FieldDemo (line 98) | function FieldDemo() {

FILE: apps/v4/app/(app)/examples/rtl/components/field-hear.tsx
  function FieldHear (line 38) | function FieldHear() {

FILE: apps/v4/app/(app)/examples/rtl/components/field-slider.tsx
  function formatNumber (line 32) | function formatNumber(value: number, locale: string) {
  function FieldSlider (line 36) | function FieldSlider() {

FILE: apps/v4/app/(app)/examples/rtl/components/index.tsx
  function RtlComponentsContent (line 29) | function RtlComponentsContent() {
  function RtlComponents (line 84) | function RtlComponents() {

FILE: apps/v4/app/(app)/examples/rtl/components/input-group-button.tsx
  function InputGroupButtonExample (line 41) | function InputGroupButtonExample() {

FILE: apps/v4/app/(app)/examples/rtl/components/input-group-demo.tsx
  function InputGroupDemo (line 64) | function InputGroupDemo() {

FILE: apps/v4/app/(app)/examples/rtl/components/item-demo.tsx
  function ItemDemo (line 33) | function ItemDemo() {

FILE: apps/v4/app/(app)/examples/rtl/components/notion-prompt-form.tsx
  function MentionableIcon (line 140) | function MentionableIcon({
  function NotionPromptForm (line 157) | function NotionPromptForm() {

FILE: apps/v4/app/(app)/examples/rtl/components/spinner-badge.tsx
  function SpinnerBadge (line 23) | function SpinnerBadge() {

FILE: apps/v4/app/(app)/examples/rtl/components/spinner-empty.tsx
  function SpinnerEmpty (line 31) | function SpinnerEmpty() {

FILE: apps/v4/app/(app)/examples/rtl/page.tsx
  function RtlPage (line 10) | function RtlPage() {

FILE: apps/v4/app/(app)/examples/tasks/components/data-table-column-header.tsx
  type DataTableColumnHeaderProps (line 14) | interface DataTableColumnHeaderProps<TData, TValue>
  function DataTableColumnHeader (line 20) | function DataTableColumnHeader<TData, TValue>({

FILE: apps/v4/app/(app)/examples/tasks/components/data-table-faceted-filter.tsx
  type DataTableFacetedFilterProps (line 24) | interface DataTableFacetedFilterProps<TData, TValue> {
  function DataTableFacetedFilter (line 34) | function DataTableFacetedFilter<TData, TValue>({

FILE: apps/v4/app/(app)/examples/tasks/components/data-table-pagination.tsx
  type DataTablePaginationProps (line 18) | interface DataTablePaginationProps<TData> {
  function DataTablePagination (line 22) | function DataTablePagination<TData>({

FILE: apps/v4/app/(app)/examples/tasks/components/data-table-row-actions.tsx
  type DataTableRowActionsProps (line 24) | interface DataTableRowActionsProps<TData> {
  function DataTableRowActions (line 28) | function DataTableRowActions<TData>({

FILE: apps/v4/app/(app)/examples/tasks/components/data-table-toolbar.tsx
  type DataTableToolbarProps (line 13) | interface DataTableToolbarProps<TData> {
  function DataTableToolbar (line 17) | function DataTableToolbar<TData>({

FILE: apps/v4/app/(app)/examples/tasks/components/data-table-view-options.tsx
  function DataTableViewOptions (line 16) | function DataTableViewOptions<TData>({

FILE: apps/v4/app/(app)/examples/tasks/components/data-table.tsx
  type DataTableProps (line 31) | interface DataTableProps<TData, TValue> {
  function DataTable (line 36) | function DataTable<TData, TValue>({

FILE: apps/v4/app/(app)/examples/tasks/components/user-nav.tsx
  function UserNav (line 18) | function UserNav() {

FILE: apps/v4/app/(app)/examples/tasks/data/schema.ts
  type Task (line 13) | type Task = z.infer<typeof taskSchema>

FILE: apps/v4/app/(app)/examples/tasks/page.tsx
  function getTasks (line 18) | async function getTasks() {
  function TaskPage (line 28) | async function TaskPage() {

FILE: apps/v4/app/(app)/layout.tsx
  function AppLayout (line 4) | function AppLayout({ children }: { children: React.ReactNode }) {

FILE: apps/v4/app/(app)/llm/[[...slug]]/route.ts
  function getStyleFromSlug (line 10) | function getStyleFromSlug(slug: string[] | undefined, fallbackStyle: str...
  function GET (line 23) | async function GET(
  function generateStaticParams (line 49) | function generateStaticParams() {

FILE: apps/v4/app/(app)/themes/layout.tsx
  function ThemesLayout (line 41) | function ThemesLayout({

FILE: apps/v4/app/(app)/themes/page.tsx
  function ThemesPage (line 7) | function ThemesPage() {

FILE: apps/v4/app/(create)/components/accent-picker.tsx
  function MenuAccentPicker (line 15) | function MenuAccentPicker({

FILE: apps/v4/app/(create)/components/action-menu.tsx
  constant CMD_K_FORWARD_TYPE (line 17) | const CMD_K_FORWARD_TYPE = "cmd-k-forward"
  function ActionMenu (line 19) | function ActionMenu({
  function ActionMenuScript (line 62) | function ActionMenuScript() {

FILE: apps/v4/app/(create)/components/base-color-picker.tsx
  function BaseColorPicker (line 18) | function BaseColorPicker({

FILE: apps/v4/app/(create)/components/base-picker.tsx
  function BasePicker (line 16) | function BasePicker({

FILE: apps/v4/app/(create)/components/chart-color-picker.tsx
  function ChartColorPicker (line 23) | function ChartColorPicker({

FILE: apps/v4/app/(create)/components/copy-preset.tsx
  function CopyPreset (line 10) | function CopyPreset({ className }: React.ComponentProps<typeof Button>) {

FILE: apps/v4/app/(create)/components/customizer.tsx
  function Customizer (line 34) | function Customizer({

FILE: apps/v4/app/(create)/components/design-system-provider.tsx
  constant THEME_STYLE_ELEMENT_ID (line 17) | const THEME_STYLE_ELEMENT_ID = "design-system-theme-vars"
  constant MANAGED_BODY_CLASS_PREFIXES (line 18) | const MANAGED_BODY_CLASS_PREFIXES = ["style-", "base-color-"] as const
  type RegistryThemeCssVars (line 20) | type RegistryThemeCssVars = NonNullable<
  function removeManagedBodyClasses (line 24) | function removeManagedBodyClasses(body: Element) {
  function buildCssRule (line 34) | function buildCssRule(selector: string, cssVars?: Record<string, string>) {
  function buildThemeCssText (line 47) | function buildThemeCssText(cssVars: RegistryThemeCssVars) {
  function DesignSystemProvider (line 57) | function DesignSystemProvider({

FILE: apps/v4/app/(create)/components/font-picker.tsx
  type FontPickerOption (line 22) | type FontPickerOption = {
  function FontPicker (line 33) | function FontPicker({

FILE: apps/v4/app/(create)/components/history-buttons.tsx
  constant UNDO_FORWARD_TYPE (line 10) | const UNDO_FORWARD_TYPE = "undo-forward"
  constant REDO_FORWARD_TYPE (line 11) | const REDO_FORWARD_TYPE = "redo-forward"
  function HistoryButtons (line 13) | function HistoryButtons() {
  function HistoryScript (line 42) | function HistoryScript() {

FILE: apps/v4/app/(create)/components/icon-library-picker.tsx
  function IconLibraryPicker (line 112) | function IconLibraryPicker({

FILE: apps/v4/app/(create)/components/icon-placeholder.tsx
  function IconPlaceholder (line 48) | function IconPlaceholder({

FILE: apps/v4/app/(create)/components/item-explorer.tsx
  function ItemExplorer (line 33) | function ItemExplorer({

FILE: apps/v4/app/(create)/components/lock-button.tsx
  function LockButton (line 12) | function LockButton({

FILE: apps/v4/app/(create)/components/main-menu.tsx
  constant APPLE_PLATFORM_REGEX (line 24) | const APPLE_PLATFORM_REGEX = /Mac|iPhone|iPad|iPod/
  function MainMenu (line 26) | function MainMenu({ className }: React.ComponentProps<typeof Button>) {

FILE: apps/v4/app/(create)/components/menu-picker.tsx
  type ColorChoice (line 26) | type ColorChoice = "default" | "inverted"
  type SurfaceChoice (line 27) | type SurfaceChoice = "solid" | "translucent"
  function getMenuColorValue (line 29) | function getMenuColorValue(
  constant MENU_OPTIONS (line 40) | const MENU_OPTIONS: { value: MenuColorValue; label: string }[] = [
  function MenuColorPicker (line 47) | function MenuColorPicker({

FILE: apps/v4/app/(create)/components/mode-switcher.tsx
  constant DARK_MODE_FORWARD_TYPE (line 10) | const DARK_MODE_FORWARD_TYPE = "dark-mode-forward"
  function ModeSwitcher (line 12) | function ModeSwitcher({
  function DarkModeScript (line 53) | function DarkModeScript() {

FILE: apps/v4/app/(create)/components/picker.tsx
  function Picker (line 9) | function Picker({ ...props }: MenuPrimitive.Root.Props) {
  function PickerPortal (line 13) | function PickerPortal({ ...props }: MenuPrimitive.Portal.Props) {
  function PickerTrigger (line 17) | function PickerTrigger({ className, ...props }: MenuPrimitive.Trigger.Pr...
  function PickerContent (line 30) | function PickerContent({
  function PickerGroup (line 67) | function PickerGroup({ ...props }: MenuPrimitive.Group.Props) {
  function PickerLabel (line 71) | function PickerLabel({
  function PickerItem (line 91) | function PickerItem({
  function PickerSub (line 114) | function PickerSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {
  function PickerSubTrigger (line 118) | function PickerSubTrigger({
  function PickerSubContent (line 149) | function PickerSubContent({
  function PickerCheckboxItem (line 173) | function PickerCheckboxItem({
  function PickerRadioGroup (line 205) | function PickerRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {
  function PickerRadioItem (line 214) | function PickerRadioItem({
  function PickerSeparator (line 248) | function PickerSeparator({
  function PickerShortcut (line 264) | function PickerShortcut({ className, ...props }: React.ComponentProps<"s...

FILE: apps/v4/app/(create)/components/preset-handler.tsx
  function PresetHandler (line 9) | function PresetHandler() {

FILE: apps/v4/app/(create)/components/preset-picker.tsx
  function PresetPicker (line 16) | function PresetPicker({

FILE: apps/v4/app/(create)/components/preview-style.tsx
  function PreviewStyle (line 3) | function PreviewStyle() {

FILE: apps/v4/app/(create)/components/preview.tsx
  constant MAC_REGEX (line 19) | const MAC_REGEX = /Mac|iPhone|iPad|iPod/
  function handleMessage (line 22) | function handleMessage(event: MessageEvent) {
  function Preview (line 84) | function Preview() {

FILE: apps/v4/app/(create)/components/project-form.tsx
  constant TURBOREPO_LOGO (line 51) | const TURBOREPO_LOGO =
  constant ORIGIN (line 53) | const ORIGIN = process.env.NEXT_PUBLIC_APP_URL || "http://localhost:4000"
  constant IS_LOCAL_DEV (line 54) | const IS_LOCAL_DEV = ORIGIN.includes("localhost")
  constant SHADCN_VERSION (line 55) | const SHADCN_VERSION = process.env.NEXT_PUBLIC_RC ? "@rc" : "@latest"
  constant PACKAGE_MANAGERS (line 56) | const PACKAGE_MANAGERS = ["pnpm", "npm", "yarn", "bun"] as const
  type PackageManager (line 57) | type PackageManager = (typeof PACKAGE_MANAGERS)[number]
  function ProjectForm (line 59) | function ProjectForm({

FILE: apps/v4/app/(create)/components/radius-picker.tsx
  function RadiusPicker (line 18) | function RadiusPicker({

FILE: apps/v4/app/(create)/components/random-button.tsx
  constant RANDOMIZE_FORWARD_TYPE (line 11) | const RANDOMIZE_FORWARD_TYPE = "randomize-forward"
  function RandomButton (line 13) | function RandomButton({
  function RandomizeScript (line 35) | function RandomizeScript() {

FILE: apps/v4/app/(create)/components/reset-button.tsx
  function ResetDialog (line 16) | function ResetDialog() {

FILE: apps/v4/app/(create)/components/share-button.tsx
  function ShareButton (line 12) | function ShareButton() {

FILE: apps/v4/app/(create)/components/style-picker.tsx
  function StylePicker (line 17) | function StylePicker({

FILE: apps/v4/app/(create)/components/theme-picker.tsx
  function ThemePicker (line 19) | function ThemePicker({

FILE: apps/v4/app/(create)/components/v0-button.tsx
  function V0Button (line 13) | function V0Button({ className }: { className?: string }) {

FILE: apps/v4/app/(create)/components/welcome-dialog.tsx
  constant STORAGE_KEY (line 17) | const STORAGE_KEY = "shadcn-create-welcome-dialog"
  function WelcomeDialog (line 19) | function WelcomeDialog() {

FILE: apps/v4/app/(create)/create/layout.tsx
  function CreateLayout (line 6) | function CreateLayout({

FILE: apps/v4/app/(create)/create/page.tsx
  function CreatePage (line 41) | async function CreatePage() {

FILE: apps/v4/app/(create)/hooks/use-action-menu.ts
  constant ACTION_MENU_OPEN_KEY (line 10) | const ACTION_MENU_OPEN_KEY = "create:action-menu-open"
  type ActionMenuItem (line 12) | type ActionMenuItem = {
  type ActionMenuGroup (line 19) | type ActionMenuGroup = {
  type ActionMenuSourceItem (line 25) | type ActionMenuSourceItem = Pick<RegistryItem, "name" | "title" | "type">
  constant SEARCH_KEYWORDS (line 27) | const SEARCH_KEYWORDS: Record<string, string> = {
  function sortRegistryGroups (line 32) | function sortRegistryGroups(groups: ReturnType<typeof groupItemsByType>) {
  function useActionMenu (line 47) | function useActionMenu(
  function useActionMenuTrigger (line 127) | function useActionMenuTrigger() {

FILE: apps/v4/app/(create)/hooks/use-design-system.ts
  function usePresetCode (line 7) | function usePresetCode() {

FILE: apps/v4/app/(create)/hooks/use-history.tsx
  type HistoryContextValue (line 6) | type HistoryContextValue = {
  function HistoryProvider (line 15) | function HistoryProvider({ children }: { children: React.ReactNode }) {
  function useHistory (line 139) | function useHistory() {

FILE: apps/v4/app/(create)/hooks/use-iframe-sync.tsx
  type ParentToIframeMessage (line 7) | type ParentToIframeMessage = {
  function useIframeMessageListener (line 19) | function useIframeMessageListener<
  function sendToIframe (line 50) | function sendToIframe<

FILE: apps/v4/app/(create)/hooks/use-locks.tsx
  type LockableParam (line 5) | type LockableParam =
  type LocksContextValue (line 17) | type LocksContextValue = {
  function LocksProvider (line 25) | function LocksProvider({ children }: { children: React.ReactNode }) {
  function useLocks (line 53) | function useLocks() {

FILE: apps/v4/app/(create)/hooks/use-random.tsx
  function randomItem (line 27) | function randomItem<T>(array: readonly T[]): T {
  function useRandom (line 31) | function useRandom() {

FILE: apps/v4/app/(create)/hooks/use-reset.tsx
  constant RESET_DIALOG_KEY (line 9) | const RESET_DIALOG_KEY = "create:reset-dialog-open"
  function useReset (line 11) | function useReset() {

FILE: apps/v4/app/(create)/hooks/use-theme-toggle.tsx
  function useThemeToggle (line 8) | function useThemeToggle() {

FILE: apps/v4/app/(create)/init/md/build-instructions.ts
  function buildInstructions (line 13) | function buildInstructions(config: DesignSystemConfig) {
  function buildDependenciesSection (line 57) | function buildDependenciesSection(dependencies: string[]) {
  function buildUtilsSection (line 69) | function buildUtilsSection() {
  function buildCssSection (line 84) | function buildCssSection(
  function buildFontSection (line 164) | function buildFontSection(
  function buildComponentsJsonSection (line 236) | function buildComponentsJsonSection(config: DesignSystemConfig) {
  function buildAvailableComponentsSection (line 265) | function buildAvailableComponentsSection(config: DesignSystemConfig) {
  function buildRtlSection (line 282) | function buildRtlSection(config: DesignSystemConfig) {

FILE: apps/v4/app/(create)/init/md/route.ts
  function GET (line 8) | async function GET(request: NextRequest) {

FILE: apps/v4/app/(create)/init/parse-config.ts
  function parseDesignSystemConfig (line 10) | function parseDesignSystemConfig(searchParams: URLSearchParams) {

FILE: apps/v4/app/(create)/init/route.ts
  function GET (line 10) | async function GET(request: NextRequest) {

FILE: apps/v4/app/(create)/init/v0/route.ts
  function GET (line 9) | async function GET(request: NextRequest) {

FILE: apps/v4/app/(create)/lib/api.ts
  function getItemsForBase (line 11) | async function getItemsForBase(base: BaseName) {
  function getBaseItem (line 26) | async function getBaseItem(name: string, base: BaseName) {
  function getBaseComponent (line 37) | async function getBaseComponent(name: string, base: BaseName) {
  function getAllItems (line 48) | async function getAllItems() {

FILE: apps/v4/app/(create)/lib/constants.ts
  constant ALLOWED_ITEM_TYPES (line 1) | const ALLOWED_ITEM_TYPES = ["registry:block", "registry:example"]
  constant EXCLUDED_ITEMS (line 3) | const EXCLUDED_ITEMS = ["component-example"]

FILE: apps/v4/app/(create)/lib/fonts.ts
  type PreviewFont (line 30) | type PreviewFont = ReturnType<typeof Inter>
  constant PREVIEW_FONTS (line 152) | const PREVIEW_FONTS = {
  function createFontOption (line 179) | function createFontOption(name: FontName) {
  constant FONTS (line 194) | const FONTS = [
  type Font (line 221) | type Font = (typeof FONTS)[number]
  constant FONT_HEADING_OPTIONS (line 223) | const FONT_HEADING_OPTIONS = [
  type FontHeadingOption (line 233) | type FontHeadingOption = (typeof FONT_HEADING_OPTIONS)[number]

FILE: apps/v4/app/(create)/lib/merge-theme.ts
  function buildTheme (line 5) | function buildTheme(baseColorName: string, themeName: string) {

FILE: apps/v4/app/(create)/lib/preset-code.ts
  type PresetCodeConfig (line 5) | type PresetCodeConfig = Pick<
  function getPresetCode (line 19) | function getPresetCode(config: PresetCodeConfig) {

FILE: apps/v4/app/(create)/lib/preset-query.ts
  type SearchParamsLike (line 5) | type SearchParamsLike = Pick<URLSearchParams, "get" | "has">
  function resolvePresetOverrides (line 7) | function resolvePresetOverrides(

FILE: apps/v4/app/(create)/lib/randomize-biases.ts
  type RandomizeContext (line 12) | type RandomizeContext = {
  type BiasFilter (line 24) | type BiasFilter<T> = (
  type RandomizeBiases (line 29) | type RandomizeBiases = {
  constant CHART_COLOR_PAIRINGS (line 37) | const CHART_COLOR_PAIRINGS: Record<string, string[]> = {
  constant RANDOMIZE_BIASES (line 61) | const RANDOMIZE_BIASES: RandomizeBiases = {
  function applyBias (line 98) | function applyBias<T>(

FILE: apps/v4/app/(create)/lib/search-params.ts
  constant DESIGN_SYSTEM_KEYS (line 99) | const DESIGN_SYSTEM_KEYS = [
  function normalizeFontHeading (line 112) | function normalizeFontHeading(
  constant NON_DESIGN_SYSTEM_KEYS (line 123) | const NON_DESIGN_SYSTEM_KEYS = [
  type DesignSystemSearchParams (line 141) | type DesignSystemSearchParams = inferParserType<
  function isTranslucentMenuColor (line 145) | function isTranslucentMenuColor(
  function normalizePartialDesignSystemParams (line 153) | function normalizePartialDesignSystemParams(
  function normalizeDesignSystemParams (line 169) | function normalizeDesignSystemParams(
  type SearchParamsLike (line 209) | type SearchParamsLike = Pick<URLSearchParams, "get" | "has">
  function resolvePresetParams (line 211) | function resolvePresetParams(
  function useDesignSystemSearchParams (line 238) | function useDesignSystemSearchParams(options: Options = {}) {

FILE: apps/v4/app/(create)/lib/templates.ts
  constant TEMPLATES (line 1) | const TEMPLATES = [
  type TemplateValue (line 34) | type TemplateValue = (typeof TEMPLATES)[number]["value"]
  function getFramework (line 37) | function getFramework(template: string) {
  constant NO_MONOREPO_FRAMEWORKS (line 42) | const NO_MONOREPO_FRAMEWORKS = ["laravel"] as const
  function getTemplateValue (line 45) | function getTemplateValue(framework: string, monorepo: boolean) {

FILE: apps/v4/app/(create)/lib/utils.ts
  function groupItemsByType (line 8) | function groupItemsByType(

FILE: apps/v4/app/(create)/lib/v0.ts
  function buildThemeInline (line 27) | function buildThemeInline(fontHeadingValue: string) {
  constant ALIASES (line 153) | const ALIASES = {
  type V0Transformer (line 161) | type V0Transformer = (opts: {
  function getStyle (line 176) | function getStyle(designSystemConfig: DesignSystemConfig) {
  function buildV0Payload (line 180) | async function buildV0Payload(designSystemConfig: DesignSystemConfig) {
  function buildGlobalsCss (line 215) | function buildGlobalsCss(
  function buildComponentsJson (line 268) | function buildComponentsJson(designSystemConfig: DesignSystemConfig) {
  function buildPackageJson (line 297) | function buildPackageJson(dependencies: string[]) {
  function buildLayoutFile (line 374) | function buildLayoutFile(
  function buildComponentFiles (line 452) | async function buildComponentFiles(designSystemConfig: DesignSystemConfi...
  function buildTransformConfig (line 532) | function buildTransformConfig(designSystemConfig: DesignSystemConfig) {
  function getRegistryItemFile (line 562) | async function getRegistryItemFile(
  function transformFileContent (line 596) | async function transformFileContent(

FILE: apps/v4/app/(create)/preview/[base]/[name]/page.tsx
  function PreventScrollOnFocusScript (line 25) | function PreventScrollOnFocusScript() {
  function generateMetadata (line 47) | async function generateMetadata({
  function generateStaticParams (line 97) | async function generateStaticParams() {
  function BlockPage (line 113) | async function BlockPage({

FILE: apps/v4/app/(examples)/dashboard-03/components/analytics-date-picker.tsx
  function AnalyticsDatePicker (line 17) | function AnalyticsDatePicker() {

FILE: apps/v4/app/(examples)/dashboard-03/components/app-sidebar.tsx
  function AppSidebar (line 72) | function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {

FILE: apps/v4/app/(examples)/dashboard-03/components/chart-revenue.tsx
  function ChartRevenue (line 47) | function ChartRevenue() {

FILE: apps/v4/app/(examples)/dashboard-03/components/chart-visitors.tsx
  function ChartVisitors (line 70) | function ChartVisitors() {

FILE: apps/v4/app/(examples)/dashboard-03/components/mode-toggle.tsx
  function ModeToggle (line 9) | function ModeToggle() {

FILE: apps/v4/app/(examples)/dashboard-03/components/nav-main.tsx
  function NavMain (line 23) | function NavMain({

FILE: apps/v4/app/(examples)/dashboard-03/components/nav-secondary.tsx
  function NavSecondary (line 12) | function NavSecondary({

FILE: apps/v4/app/(examples)/dashboard-03/components/nav-user.tsx
  function NavUser (line 21) | function NavUser({

FILE: apps/v4/app/(examples)/dashboard-03/components/products-table.tsx
  function ProductsTable (line 49) | function ProductsTable({

FILE: apps/v4/app/(examples)/dashboard-03/components/search-form.tsx
  function SearchForm (line 6) | function SearchForm({ ...props }: React.ComponentProps<"form">) {

FILE: apps/v4/app/(examples)/dashboard-03/components/site-header.tsx
  function SiteHeader (line 23) | function SiteHeader() {

FILE: apps/v4/app/(examples)/dashboard-03/customers/page.tsx
  function CustomersPage (line 1) | function CustomersPage() {

FILE: apps/v4/app/(examples)/dashboard-03/layout.tsx
  function DashboardLayout (line 10) | async function DashboardLayout({

FILE: apps/v4/app/(examples)/dashboard-03/page.tsx
  function DashboardPage (line 118) | function DashboardPage() {

FILE: apps/v4/app/(examples)/dashboard-03/settings/page.tsx
  function SettingsPage (line 129) | function SettingsPage() {
  function FieldGroup (line 438) | function FieldGroup({ children }: React.ComponentProps<"div">) {
  function Field (line 449) | function Field({ children, className, ...props }: React.ComponentProps<"...
  function FieldControl (line 464) | function FieldControl({
  function FieldDescription (line 483) | function FieldDescription({

FILE: apps/v4/app/(examples)/dashboard/components/app-sidebar.tsx
  function AppSidebar (line 153) | function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {

FILE: apps/v4/app/(examples)/dashboard/components/chart-area-interactive.tsx
  function ChartAreaInteractive (line 143) | function ChartAreaInteractive() {

FILE: apps/v4/app/(examples)/dashboard/components/data-table.tsx
  function DragHandle (line 120) | function DragHandle({ id }: { id: number }) {
  function DraggableRow (line 314) | function DraggableRow({ row }: { row: Row<z.infer<typeof schema>> }) {
  function DataTable (line 339) | function DataTable({
  function TableCellViewer (line 650) | function TableCellViewer({ item }: { item: z.infer<typeof schema> }) {

FILE: apps/v4/app/(examples)/dashboard/components/mode-toggle.tsx
  function ModeToggle (line 9) | function ModeToggle() {

FILE: apps/v4/app/(examples)/dashboard/components/nav-documents.tsx
  function NavDocuments (line 28) | function NavDocuments({

FILE: apps/v4/app/(examples)/dashboard/components/nav-main.tsx
  function NavMain (line 14) | function NavMain({

FILE: apps/v4/app/(examples)/dashboard/components/nav-secondary.tsx
  function NavSecondary (line 17) | function NavSecondary({

FILE: apps/v4/app/(examples)/dashboard/components/nav-user.tsx
  function NavUser (line 32) | function NavUser({

FILE: apps/v4/app/(examples)/dashboard/components/section-cards.tsx
  function SectionCards (line 13) | function SectionCards() {

FILE: apps/v4/app/(examples)/dashboard/components/site-header.tsx
  function SiteHeader (line 7) | function SiteHeader() {

FILE: apps/v4/app/(examples)/dashboard/components/theme-selector.tsx
  constant DEFAULT_THEMES (line 16) | const DEFAULT_THEMES = [
  constant SCALED_THEMES (line 35) | const SCALED_THEMES = [
  constant MONO_THEMES (line 46) | const MONO_THEMES = [
  function ThemeSelector (line 53) | function ThemeSelector() {

FILE: apps/v4/app/(examples)/dashboard/layout.tsx
  function DashboardLayout (line 12) | async function DashboardLayout({

FILE: apps/v4/app/(examples)/dashboard/page.tsx
  function Page (line 6) | function Page() {

FILE: apps/v4/app/(internal)/sink/(pages)/forms/appearance-settings.tsx
  function AppearanceSettings (line 66) | function AppearanceSettings() {

FILE: apps/v4/app/(internal)/sink/(pages)/forms/chat-settings.tsx
  function ChatSettings (line 126) | function ChatSettings() {

FILE: apps/v4/app/(internal)/sink/(pages)/forms/display-settings.tsx
  function DisplaySettings (line 25) | function DisplaySettings() {

FILE: apps/v4/app/(internal)/sink/(pages)/forms/notion-prompt-form.tsx
  constant SAMPLE_DATA (line 65) | const SAMPLE_DATA = {
  function MentionableIcon (line 154) | function MentionableIcon({
  function NotionPromptForm (line 171) | function NotionPromptForm() {

FILE: apps/v4/app/(internal)/sink/(pages)/forms/page.tsx
  function FormsPage (line 8) | function FormsPage() {

FILE: apps/v4/app/(internal)/sink/(pages)/forms/ship-registration-form.tsx
  function ShipRegistrationForm (line 33) | function ShipRegistrationForm() {

FILE: apps/v4/app/(internal)/sink/(pages)/forms/shipping-form.tsx
  function ShippingForm (line 20) | function ShippingForm() {

FILE: apps/v4/app/(internal)/sink/(pages)/next-form/actions.ts
  function subscriptionAction (line 6) | async function subscriptionAction(

FILE: apps/v4/app/(internal)/sink/(pages)/next-form/example-form.tsx
  type FormState (line 58) | type FormState = {
  function ExampleForm (line 66) | function ExampleForm() {

FILE: apps/v4/app/(internal)/sink/(pages)/next-form/page.tsx
  function NextFormPage (line 3) | function NextFormPage() {

FILE: apps/v4/app/(internal)/sink/(pages)/react-hook-form/example-form.tsx
  function ExampleForm (line 65) | function ExampleForm() {

FILE: apps/v4/app/(internal)/sink/(pages)/react-hook-form/page.tsx
  function ReactHookFormPage (line 3) | function ReactHookFormPage() {

FILE: apps/v4/app/(internal)/sink/(pages)/tanstack-form/example-form.tsx
  function ExampleForm (line 64) | function ExampleForm() {

FILE: apps/v4/app/(internal)/sink/(pages)/tanstack-form/page.tsx
  function TanstackFormPage (line 3) | function TanstackFormPage() {

FILE: apps/v4/app/(internal)/sink/[name]/page.tsx
  function generateStaticParams (line 9) | async function generateStaticParams() {
  function generateMetadata (line 15) | async function generateMetadata({
  function ComponentPage (line 35) | async function ComponentPage({

FILE: apps/v4/app/(internal)/sink/component-registry.ts
  type ComponentConfig (line 62) | type ComponentConfig = {
  type ComponentKey (line 437) | type ComponentKey = keyof typeof componentRegistry

FILE: apps/v4/app/(internal)/sink/components/accordion-demo.tsx
  function AccordionDemo (line 8) | function AccordionDemo() {

FILE: apps/v4/app/(internal)/sink/components/alert-demo.tsx
  function AlertDemo (line 17) | function AlertDemo() {

FILE: apps/v4/app/(internal)/sink/components/alert-dialog-demo.tsx
  function AlertDialogDemo (line 17) | function AlertDialogDemo() {

FILE: apps/v4/app/(internal)/sink/components/app-breadcrumbs.tsx
  function AppBreadcrumbs (line 14) | function AppBreadcrumbs() {

FILE: apps/v4/app/(internal)/sink/components/app-sidebar.tsx
  function AppSidebar (line 171) | function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {

FILE: apps/v4/app/(internal)/sink/components/aspect-ratio-demo.tsx
  function AspectRatioDemo (line 5) | function AspectRatioDemo() {

FILE: apps/v4/app/(internal)/sink/components/avatar-demo.tsx
  function AvatarDemo (line 12) | function AvatarDemo() {

FILE: apps/v4/app/(internal)/sink/components/badge-demo.tsx
  function BadgeDemo (line 5) | function BadgeDemo() {

FILE: apps/v4/app/(internal)/sink/components/breadcrumb-demo.tsx
  function BreadcrumbDemo (line 17) | function BreadcrumbDemo() {

FILE: apps/v4/app/(internal)/sink/components/button-demo.tsx
  function ButtonDemo (line 5) | function ButtonDemo() {

FILE: apps/v4/app/(internal)/sink/components/button-group-demo.tsx
  function ButtonGroupDemo (line 79) | function ButtonGroupDemo() {
  function ExportButtonGroup (line 560) | function ExportButtonGroup() {

FILE: apps/v4/app/(internal)/sink/components/calendar-demo.tsx
  function CalendarDemo (line 15) | function CalendarDemo() {
  function CalendarSingle (line 30) | function CalendarSingle() {
  function CalendarMultiple (line 48) | function CalendarMultiple() {
  function CalendarRange (line 57) | function CalendarRange() {
  function CalendarRangeMultipleMonths (line 79) | function CalendarRangeMultipleMonths() {
  function CalendarBookedDates (line 102) | function CalendarBookedDates() {
  function CalendarWithTime (line 132) | function CalendarWithTime() {
  function CalendarCustomDays (line 182) | function CalendarCustomDays() {
  function CalendarWithPresets (line 225) | function CalendarWithPresets() {

FILE: apps/v4/app/(internal)/sink/components/card-demo.tsx
  function CardDemo (line 22) | function CardDemo() {

FILE: apps/v4/app/(internal)/sink/components/carousel-demo.tsx
  function CarouselDemo (line 12) | function CarouselDemo() {

FILE: apps/v4/app/(internal)/sink/components/chart-area-demo.tsx
  function ChartAreaDemo (line 39) | function ChartAreaDemo() {

FILE: apps/v4/app/(internal)/sink/components/chart-bar-demo.tsx
  function ChartBarDemo (line 43) | function ChartBarDemo() {

FILE: apps/v4/app/(internal)/sink/components/chart-bar-mixed.tsx
  function ChartBarMixed (line 57) | function ChartBarMixed() {

FILE: apps/v4/app/(internal)/sink/components/chart-demo.tsx
  function ChartDemo (line 6) | function ChartDemo() {

FILE: apps/v4/app/(internal)/sink/components/chart-line-demo.tsx
  function ChartLineDemo (line 43) | function ChartLineDemo() {

FILE: apps/v4/app/(internal)/sink/components/checkbox-demo.tsx
  function CheckboxDemo (line 6) | function CheckboxDemo() {

FILE: apps/v4/app/(internal)/sink/components/collapsible-demo.tsx
  function CollapsibleDemo (line 13) | function CollapsibleDemo() {

FILE: apps/v4/app/(internal)/sink/components/combobox-demo.tsx
  function ComboboxDemo (line 57) | function ComboboxDemo() {
  function ComboboxMultiple (line 147) | function ComboboxMultiple() {

FILE: apps/v4/app/(internal)/sink/components/command-demo.tsx
  function CommandDemo (line 24) | function CommandDemo() {

FILE: apps/v4/app/(internal)/sink/components/component-wrapper.tsx
  function ComponentWrapper (line 7) | function ComponentWrapper({
  class ComponentErrorBoundary (line 33) | class ComponentErrorBoundary extends React.Component<
    method constructor (line 37) | constructor(props: { children: React.ReactNode; name: string }) {
    method getDerivedStateFromError (line 42) | static getDerivedStateFromError() {
    method componentDidCatch (line 46) | componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {
    method render (line 50) | render() {
  function getComponentName (line 63) | function getComponentName(name: string) {

FILE: apps/v4/app/(internal)/sink/components/context-menu-demo.tsx
  function ContextMenuDemo (line 19) | function ContextMenuDemo() {

FILE: apps/v4/app/(internal)/sink/components/date-picker-demo.tsx
  function DatePickerDemo (line 26) | function DatePickerDemo() {
  function DatePickerSimple (line 36) | function DatePickerSimple() {
  function DatePickerWithRange (line 60) | function DatePickerWithRange() {
  function DataPickerWithDropdowns (line 105) | function DataPickerWithDropdowns() {

FILE: apps/v4/app/(internal)/sink/components/dialog-demo.tsx
  function DialogDemo (line 15) | function DialogDemo() {
  function DialogWithForm (line 25) | function DialogWithForm() {
  function DialogScrollableContent (line 62) | function DialogScrollableContent() {
  function DialogWithStickyFooter (line 94) | function DialogWithStickyFooter() {

FILE: apps/v4/app/(internal)/sink/components/drawer-demo.tsx
  function DrawerDemo (line 61) | function DrawerDemo() {
  function DrawerBottom (line 71) | function DrawerBottom() {
  function DrawerScrollableContent (line 148) | function DrawerScrollableContent() {
  function DrawerDirections (line 186) | function DrawerDirections() {

FILE: apps/v4/app/(internal)/sink/components/dropdown-menu-demo.tsx
  function DropdownMenuDemo (line 30) | function DropdownMenuDemo() {
  function DropdownMenuSimple (line 43) | function DropdownMenuSimple() {
  function DropdownMenuCheckboxes (line 102) | function DropdownMenuCheckboxes() {
  function DropdownMenuRadioGroupDemo (line 187) | function DropdownMenuRadioGroupDemo() {
  function DropdownMenuWithAvatar (line 211) | function DropdownMenuWithAvatar() {
  function DropdownMenuAvatarOnly (line 319) | function DropdownMenuAvatarOnly() {
  function DropdownMenuIconColor (line 419) | function DropdownMenuIconColor() {

FILE: apps/v4/app/(internal)/sink/components/empty-demo.tsx
  function EmptyDemo (line 34) | function EmptyDemo() {

FILE: apps/v4/app/(internal)/sink/components/field-demo.tsx
  function FieldDemo (line 91) | function FieldDemo() {
  function BasicFields (line 145) | function BasicFields() {
  function SubscriptionPlan (line 431) | function SubscriptionPlan() {
  function PrivacySettings (line 575) | function PrivacySettings() {
  function HearAboutUs (line 767) | function HearAboutUs() {
  function ClusterConfig (line 828) | function ClusterConfig() {
  function ShippingMethods (line 968) | function ShippingMethods() {
  function SignupForm (line 1136) | function SignupForm() {
  function LoginForm (line 1213) | function LoginForm() {
  function FinderPreferencesForm (line 1322) | function FinderPreferencesForm() {
  function ContactForm (line 1433) | function ContactForm() {
  function FeedbackForm (line 1515) | function FeedbackForm() {
  function JobApplicationForm (line 1641) | function JobApplicationForm() {
  function NewsletterForm (line 1767) | function NewsletterForm() {
  function PaymentForm (line 1855) | function PaymentForm() {
  function FormInputDemo (line 1960) | function FormInputDemo() {
  function FormTextareaDemo (line 2028) | function FormTextareaDemo() {
  function FormSelectDemo (line 2076) | function FormSelectDemo() {
  function FormRadioDemo (line 2136) | function FormRadioDemo() {
  function FormCheckboxDemo (line 2281) | function FormCheckboxDemo() {
  function FormSliderDemo (line 2388) | function FormSliderDemo() {
  function FormSwitchDemo (line 2442) | function FormSwitchDemo() {
  function FormToggleGroupDemo (line 2554) | function FormToggleGroupDemo() {
  function FormInputTypesDemo (line 2617) | function FormInputTypesDemo() {
  function FormSpecialInputTypesDemo (line 2696) | function FormSpecialInputTypesDemo() {
  function FormOTPDemo (line 2755) | function FormOTPDemo() {
  function FormDatePickerDemo (line 2891) | function FormDatePickerDemo() {
  function FormFieldSetDemo (line 3134) | function FormFieldSetDemo() {
  function FormFieldSeparatorDemo (line 3373) | function FormFieldSeparatorDemo() {
  function FormFieldGroupOutlineDemo (line 3487) | function FormFieldGroupOutlineDemo() {
  function ProfileSettingsForm (line 3635) | function ProfileSettingsForm() {
  function SurveyForm (line 3752) | function SurveyForm() {
  function ComplexFormDemo (line 3922) | function ComplexFormDemo() {
  function ComplexFormInvalidDemo (line 4172) | function ComplexFormInvalidDemo() {
  function FormOrientationDemo (line 4493) | function FormOrientationDemo() {
  function CheckoutForm (line 4679) | function CheckoutForm() {

FILE: apps/v4/app/(internal)/sink/components/form-demo.tsx
  function FormDemo (line 101) | function FormDemo() {

FILE: apps/v4/app/(internal)/sink/components/hover-card-demo.tsx
  function HoverCardDemo (line 15) | function HoverCardDemo() {

FILE: apps/v4/app/(internal)/sink/components/input-demo.tsx
  function InputDemo (line 3) | function InputDemo() {

FILE: apps/v4/app/(internal)/sink/components/input-group-demo.tsx
  function InputGroupDemo (line 70) | function InputGroupDemo() {

FILE: apps/v4/app/(internal)/sink/components/input-otp-demo.tsx
  function InputOTPDemo (line 14) | function InputOTPDemo() {
  function InputOTPSimple (line 25) | function InputOTPSimple() {
  function InputOTPPattern (line 46) | function InputOTPPattern() {
  function InputOTPWithSeparator (line 64) | function InputOTPWithSeparator() {
  function InputOTPWithSpacing (line 95) | function InputOTPWithSpacing() {

FILE: apps/v4/app/(internal)/sink/components/item-demo.tsx
  function ItemDemo (line 149) | function ItemDemo() {

FILE: apps/v4/app/(internal)/sink/components/kbd-demo.tsx
  function KbdDemo (line 18) | function KbdDemo() {

FILE: apps/v4/app/(internal)/sink/components/label-demo.tsx
  function LabelDemo (line 6) | function LabelDemo() {

FILE: apps/v4/app/(internal)/sink/components/menubar-demo.tsx
  function MenubarDemo (line 20) | function MenubarDemo() {

FILE: apps/v4/app/(internal)/sink/components/native-select-demo.tsx
  function NativeSelectDemo (line 16) | function NativeSelectDemo() {

FILE: apps/v4/app/(internal)/sink/components/navigation-menu-demo.tsx
  function NavigationMenuDemo (line 53) | function NavigationMenuDemo() {
  function ListItem (line 209) | function ListItem({

FILE: apps/v4/app/(internal)/sink/components/pagination-demo.tsx
  function PaginationDemo (line 11) | function PaginationDemo() {

FILE: apps/v4/app/(internal)/sink/components/popover-demo.tsx
  function PopoverDemo (line 13) | function PopoverDemo() {

FILE: apps/v4/app/(internal)/sink/components/progress-demo.tsx
  function ProgressDemo (line 7) | function ProgressDemo() {

FILE: apps/v4/app/(internal)/sink/components/radio-group-demo.tsx
  function RadioGroupDemo (line 23) | function RadioGroupDemo() {

FILE: apps/v4/app/(internal)/sink/components/resizable-demo.tsx
  function ResizableDemo (line 7) | function ResizableDemo() {

FILE: apps/v4/app/(internal)/sink/components/scroll-area-demo.tsx
  function ScrollAreaDemo (line 7) | function ScrollAreaDemo() {
  function ScrollAreaVertical (line 20) | function ScrollAreaVertical() {
  function ScrollAreaHorizontalDemo (line 53) | function ScrollAreaHorizontalDemo() {

FILE: apps/v4/app/(internal)/sink/components/select-demo.tsx
  function SelectDemo (line 19) | function SelectDemo() {

FILE: apps/v4/app/(internal)/sink/components/separator-demo.tsx
  function SeparatorDemo (line 3) | function SeparatorDemo() {

FILE: apps/v4/app/(internal)/sink/components/sheet-demo.tsx
  constant SHEET_SIDES (line 15) | const SHEET_SIDES = ["top", "right", "bottom", "left"] as const
  function SheetDemo (line 17) | function SheetDemo() {

FILE: apps/v4/app/(internal)/sink/components/skeleton-demo.tsx
  function SkeletonDemo (line 4) | function SkeletonDemo() {

FILE: apps/v4/app/(internal)/sink/components/slider-demo.tsx
  function SliderDemo (line 8) | function SliderDemo() {
  function SliderControlled (line 23) | function SliderControlled() {

FILE: apps/v4/app/(internal)/sink/components/sonner-demo.tsx
  function SonnerDemo (line 96) | function SonnerDemo() {

FILE: apps/v4/app/(internal)/sink/components/spinner-demo.tsx
  function SpinnerDemo (line 21) | function SpinnerDemo() {

FILE: apps/v4/app/(internal)/sink/components/switch-demo.tsx
  function SwitchDemo (line 4) | function SwitchDemo() {

FILE: apps/v4/app/(internal)/sink/components/table-demo.tsx
  function TableDemo (line 57) | function TableDemo() {

FILE: apps/v4/app/(internal)/sink/components/tabs-demo.tsx
  function TabsDemo (line 21) | function TabsDemo() {

FILE: apps/v4/app/(internal)/sink/components/textarea-demo.tsx
  function TextareaDemo (line 4) | function TextareaDemo() {

FILE: apps/v4/app/(internal)/sink/components/theme-selector.tsx
  constant THEMES (line 17) | const THEMES = {
  function ThemeSelector (line 104) | function ThemeSelector({ className }: React.ComponentProps<"div">) {

FILE: apps/v4/app/(internal)/sink/components/toggle-demo.tsx
  function ToggleDemo (line 5) | function ToggleDemo() {

FILE: apps/v4/app/(internal)/sink/components/toggle-group-demo.tsx
  function ToggleGroupDemo (line 15) | function ToggleGroupDemo() {

FILE: apps/v4/app/(internal)/sink/components/tooltip-demo.tsx
  function TooltipDemo (line 10) | function TooltipDemo() {

FILE: apps/v4/app/(internal)/sink/layout.tsx
  function SinkLayout (line 35) | async function SinkLayout({

FILE: apps/v4/app/(internal)/sink/page.tsx
  function SinkPage (line 14) | function SinkPage() {

FILE: apps/v4/app/(view)/view/[style]/[name]/component-preview.tsx
  function ComponentPreview (line 3) | function ComponentPreview({ children }: { children: React.ReactNode }) {

FILE: apps/v4/app/(view)/view/[style]/[name]/page.tsx
  function generateMetadata (line 34) | async function generateMetadata({
  function generateStaticParams (line 85) | async function generateStaticParams() {
  function BlockPage (line 161) | async function BlockPage({

FILE: apps/v4/app/layout.tsx
  function RootLayout (line 69) | function RootLayout({

FILE: apps/v4/app/og/route.tsx
  function loadAssets (line 3) | async function loadAssets(): Promise<
  function GET (line 38) | async function GET(request: Request) {

FILE: apps/v4/app/rss.xml/route.ts
  function GET (line 8) | async function GET() {

FILE: apps/v4/components/active-theme.tsx
  constant DEFAULT_THEME (line 11) | const DEFAULT_THEME = "default"
  type ThemeContextType (line 13) | type ThemeContextType = {
  function ActiveThemeProvider (line 20) | function ActiveThemeProvider({
  function useThemeConfig (line 50) | function useThemeConfig() {

FILE: apps/v4/components/analytics.tsx
  function Analytics (line 5) | function Analytics() {

FILE: apps/v4/components/announcement.tsx
  function Announcement (line 6) | function Announcement() {

FILE: apps/v4/components/block-display.tsx
  function BlockDisplay (line 15) | async function BlockDisplay({

FILE: apps/v4/components/block-image.tsx
  function BlockImage (line 5) | function BlockImage({

FILE: apps/v4/components/block-viewer.tsx
  type BlockViewerContext (line 65) | type BlockViewerContext = {
  function useBlockViewer (line 84) | function useBlockViewer() {
  function BlockViewerProvider (line 92) | function BlockViewerProvider({
  type BlockViewerProps (line 138) | type BlockViewerProps = Pick<
  function BlockViewerToolbar (line 146) | function BlockViewerToolbar({ styleName }: { styleName: Style["name"] }) {
  function BlockViewerIframe (line 240) | function BlockViewerIframe({
  function BlockViewerView (line 263) | function BlockViewerView({ styleName }: { styleName: Style["name"] }) {
  function BlockViewerMobile (line 290) | function BlockViewerMobile({ children }: { children: React.ReactNode }) {
  function BlockViewerCode (line 329) | function BlockViewerCode() {
  function BlockViewerFileTree (line 371) | function BlockViewerFileTree() {
  function Tree (line 398) | function Tree({ item, index }: { item: FileTree; index: number }) {
  function BlockCopyCodeButton (line 455) | function BlockCopyCodeButton() {
  function BlockViewer (line 490) | function BlockViewer({

FILE: apps/v4/components/blocks-nav.tsx
  function BlocksNav (line 9) | function BlocksNav() {
  function BlocksNavLink (line 34) | function BlocksNavLink({

FILE: apps/v4/components/callout.tsx
  function Callout (line 8) | function Callout({

FILE: apps/v4/components/cards/activity-goal.tsx
  function CardsActivityGoal (line 70) | function CardsActivityGoal() {

FILE: apps/v4/components/cards/calendar.tsx
  function CardsCalendar (line 10) | function CardsCalendar() {

FILE: apps/v4/components/cards/chat.tsx
  type User (line 76) | type User = (typeof users)[number]
  function CardsChat (line 78) | function CardsChat() {

FILE: apps/v4/components/cards/cookie-settings.tsx
  function CardsCookieSettings (line 19) | function CardsCookieSettings() {

FILE: apps/v4/components/cards/create-account.tsx
  function CardsCreateAccount (line 19) | function CardsCreateAccount() {

FILE: apps/v4/components/cards/exercise-minutes.tsx
  function CardsExerciseMinutes (line 68) | function CardsExerciseMinutes() {

FILE: apps/v4/components/cards/forms.tsx
  function CardsForms (line 44) | function CardsForms() {

FILE: apps/v4/components/cards/index.tsx
  function CardsDemo (line 14) | function CardsDemo() {

FILE: apps/v4/components/cards/payment-method.tsx
  function CardsPaymentMethod (line 41) | function CardsPaymentMethod() {

FILE: apps/v4/components/cards/payments.tsx
  type Payment (line 84) | type Payment = {
  function CardsPayments (line 172) | function CardsPayments() {

FILE: apps/v4/components/cards/report-issue.tsx
  function CardsReportIssue (line 24) | function CardsReportIssue() {

FILE: apps/v4/components/cards/share.tsx
  function CardsShare (line 57) | function CardsShare() {

FILE: apps/v4/components/cards/stats.tsx
  function CardsStats (line 65) | function CardsStats() {

FILE: apps/v4/components/cards/team-members.tsx
  function CardsTeamMembers (line 80) | function CardsTeamMembers() {

FILE: apps/v4/components/chart-code-viewer.tsx
  function ChartCodeViewer (line 27) | function ChartCodeViewer({

FILE: apps/v4/components/chart-copy-button.tsx
  function ChartCopyButton (line 15) | function ChartCopyButton({

FILE: apps/v4/components/chart-display.tsx
  type Chart (line 12) | type Chart = z.infer<typeof registryItemSchema> & {
  function ChartDisplay (line 16) | function ChartDisplay({

FILE: apps/v4/components/chart-iframe.tsx
  function ChartIframe (line 7) | function ChartIframe({

FILE: apps/v4/components/chart-toolbar.tsx
  function ChartToolbar (line 19) | function ChartToolbar({
  function ChartTitle (line 48) | function ChartTitle({ chart }: { chart: Chart }) {

FILE: apps/v4/components/charts-nav.tsx
  function ChartsNav (line 40) | function ChartsNav({

FILE: apps/v4/components/code-block-command.tsx
  function CodeBlockCommand (line 21) | function CodeBlockCommand({

FILE: apps/v4/components/code-collapsible-wrapper.tsx
  function CodeCollapsibleWrapper (line 14) | function CodeCollapsibleWrapper({

FILE: apps/v4/components/code-tabs.tsx
  function CodeTabs (line 8) | function CodeTabs({ children }: React.ComponentProps<typeof Tabs>) {

FILE: apps/v4/components/color-format-selector.tsx
  function ColorFormatSelector (line 16) | function ColorFormatSelector({
  function ColorFormatSelectorSkeleton (line 61) | function ColorFormatSelectorSkeleton({

FILE: apps/v4/components/color-palette.tsx
  function ColorPalette (line 5) | function ColorPalette({ colorPalette }: { colorPalette: ColorPalette }) {

FILE: apps/v4/components/color.tsx
  function Color (line 11) | function Color({ color }: { color: Color }) {

FILE: apps/v4/components/colors-nav.tsx
  function ColorsNav (line 10) | function ColorsNav({

FILE: apps/v4/components/command-menu.tsx
  function CommandMenu (line 40) | function CommandMenu({
  function CommandMenuItem (line 468) | function CommandMenuItem({
  function CommandMenuKbd (line 506) | function CommandMenuKbd({ className, ...props }: React.ComponentProps<"k...
  type Query (line 518) | type Query = Awaited<ReturnType<typeof useDocsSearch>>["query"]
  function SearchResults (line 520) | function SearchResults({
  function DialogContent (line 582) | function DialogContent({

FILE: apps/v4/components/component-preview-tabs.tsx
  function ComponentPreviewTabs (line 25) | function ComponentPreviewTabs({
  function RtlLanguageSelector (line 194) | function RtlLanguageSelector({ className }: { className?: string }) {
  function PreviewWrapper (line 208) | function PreviewWrapper({
  function DirectionProviderWrapper (line 246) | function DirectionProviderWrapper({

FILE: apps/v4/components/component-preview.tsx
  function ComponentPreview (line 8) | function ComponentPreview({

FILE: apps/v4/components/component-source.tsx
  function ComponentSource (line 12) | async function ComponentSource({
  function ComponentCode (line 87) | function ComponentCode({

FILE: apps/v4/components/component-wrapper.tsx
  function ComponentWrapper (line 7) | function ComponentWrapper({
  class ComponentErrorBoundary (line 33) | class ComponentErrorBoundary extends React.Component<
    method constructor (line 37) | constructor(props: { children: React.ReactNode; name: string }) {
    method getDerivedStateFromError (line 42) | static getDerivedStateFromError() {
    method componentDidCatch (line 46) | componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {
    method render (line 50) | render() {
  function getComponentName (line 63) | function getComponentName(name: string) {

FILE: apps/v4/components/components-list.tsx
  function ComponentsList (line 6) | function ComponentsList({

FILE: apps/v4/components/copy-button.tsx
  function legacyCopyToClipboard (line 10) | function legacyCopyToClipboard(value: string) {
  function copyToClipboardWithMeta (line 34) | async function copyToClipboardWithMeta(value: string, event?: Event) {
  function CopyButton (line 67) | function CopyButton({

FILE: apps/v4/components/directory-add-button.tsx
  function DirectoryAddButton (line 42) | function DirectoryAddButton({

FILE: apps/v4/components/directory-list.tsx
  function getHomepageUrl (line 24) | function getHomepageUrl(homepage: string) {
  function DirectoryList (line 32) | function DirectoryList() {

FILE: apps/v4/components/docs-base-switcher.tsx
  function DocsBaseSwitcher (line 6) | function DocsBaseSwitcher({

FILE: apps/v4/components/docs-breadcrumb.tsx
  function DocsBreadcrumb (line 18) | function DocsBreadcrumb({

FILE: apps/v4/components/docs-copy-page.tsx
  function getPromptUrl (line 21) | function getPromptUrl(baseURL: string, url: string) {
  function DocsCopyPage (line 156) | function DocsCopyPage({ page, url }: { page: string; url: string }) {

FILE: apps/v4/components/docs-page-links.tsx
  function getPromptUrl (line 7) | function getPromptUrl(baseURL: string, url: string) {
  function DocsPageLinks (line 15) | function DocsPageLinks({ page, url }: { page: string; url: string }) {

FILE: apps/v4/components/docs-sidebar.tsx
  constant TOP_LEVEL_SECTIONS (line 21) | const TOP_LEVEL_SECTIONS = [
  constant EXCLUDED_SECTIONS (line 64) | const EXCLUDED_SECTIONS = ["installation", "dark-mode", "changelog", "rtl"]
  constant EXCLUDED_PAGES (line 65) | const EXCLUDED_PAGES = ["/docs", "/docs/changelog", "/docs/rtl", "/docs/...
  function DocsSidebar (line 67) | function DocsSidebar({

FILE: apps/v4/components/docs-toc.tsx
  function useActiveItem (line 15) | function useActiveItem(itemIds: string[]) {
  function DocsTableOfContents (line 50) | function DocsTableOfContents({

FILE: apps/v4/components/examples-nav.tsx
  function ExamplesNav (line 42) | function ExamplesNav({
  function ExampleLink (line 70) | function ExampleLink({

FILE: apps/v4/components/github-link.tsx
  function GitHubLink (line 9) | function GitHubLink() {
  function StarsCount (line 22) | async function StarsCount() {

FILE: apps/v4/components/icons.tsx
  type IconProps (line 3) | type IconProps = React.HTMLAttributes<SVGElement>
  function getIconForLanguageExtension (line 192) | function getIconForLanguageExtension(language: string) {

FILE: apps/v4/components/language-selector.tsx
  type Language (line 15) | type Language = "en" | "ar" | "he"
  type Direction (line 17) | type Direction = "ltr" | "rtl"
  type Translations (line 19) | type Translations<
  type LanguageContextType (line 36) | type LanguageContextType = {
  function LanguageProvider (line 45) | function LanguageProvider({
  function useLanguageContext (line 61) | function useLanguageContext() {
  function useTranslation (line 66) | function useTranslation<T extends Record<string, string>>(
  type LanguageSelectorProps (line 81) | interface LanguageSelectorProps {
  function LanguageSelector (line 86) | function LanguageSelector({

FILE: apps/v4/components/lo-fi/accordion.tsx
  function AccordionLoFi (line 5) | function AccordionLoFi() {

FILE: apps/v4/components/lo-fi/alert.tsx
  function AlertLoFi (line 5) | function AlertLoFi() {

FILE: apps/v4/components/lo-fi/atom.tsx
  function Atom (line 29) | function Atom({

FILE: apps/v4/components/lo-fi/component.tsx
  function Component (line 5) | function Component({ href, ...props }: React.ComponentProps<typeof Link>) {
  function ComponentContent (line 9) | function ComponentContent({ ...props }: React.ComponentProps<typeof Atom...
  function ComponentName (line 19) | function ComponentName({ ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/components/lo-fi/index.tsx
  function LoFi (line 9) | function LoFi() {

FILE: apps/v4/components/main-nav.tsx
  function MainNav (line 10) | function MainNav({

FILE: apps/v4/components/mobile-nav.tsx
  constant TOP_LEVEL_SECTIONS (line 19) | const TOP_LEVEL_SECTIONS = [
  function MobileNav (line 63) | function MobileNav({
  function MobileLink (line 194) | function MobileLink({

FILE: apps/v4/components/mode-switcher.tsx
  constant DARK_MODE_FORWARD_TYPE (line 11) | const DARK_MODE_FORWARD_TYPE = "dark-mode-forward"
  function ModeSwitcher (line 13) | function ModeSwitcher({
  function DarkModeScript (line 62) | function DarkModeScript() {

FILE: apps/v4/components/nav-header.tsx
  function NavHeader (line 13) | function NavHeader() {

FILE: apps/v4/components/nav-user.tsx
  function NavUser (line 33) | function NavUser({

FILE: apps/v4/components/open-in-v0-button.tsx
  constant V0_STYLE (line 6) | const V0_STYLE = "new-york-v4"
  function OpenInV0Button (line 8) | function OpenInV0Button({

FILE: apps/v4/components/open-in-v0-cta.tsx
  function OpenInV0Cta (line 4) | function OpenInV0Cta({ className }: React.ComponentProps<"div">) {

FILE: apps/v4/components/page-header.tsx
  function PageHeader (line 3) | function PageHeader({
  function PageHeaderHeading (line 19) | function PageHeaderHeading({
  function PageHeaderDescription (line 34) | function PageHeaderDescription({
  function PageActions (line 49) | function PageActions({ className, ...props }: React.ComponentProps<"div"...

FILE: apps/v4/components/page-nav.tsx
  function PageNav (line 3) | function PageNav({

FILE: apps/v4/components/site-config.tsx
  function SiteConfig (line 11) | function SiteConfig({ className }: React.ComponentProps<typeof Button>) {

FILE: apps/v4/components/site-footer.tsx
  function SiteFooter (line 3) | function SiteFooter() {

FILE: apps/v4/components/site-header.tsx
  function SiteHeader (line 20) | function SiteHeader() {

FILE: apps/v4/components/tailwind-indicator.tsx
  constant SHOW (line 1) | const SHOW = true
  function TailwindIndicator (line 3) | function TailwindIndicator({

FILE: apps/v4/components/theme-customizer.tsx
  type BaseColorOKLCH (line 51) | interface BaseColorOKLCH {
  function ThemeCustomizer (line 56) | function ThemeCustomizer({ className }: React.ComponentProps<"div">) {
  function CopyCodeButton (line 114) | function CopyCodeButton({
  function CustomizerCode (line 166) | function CustomizerCode({ themeName }: { themeName: string }) {
  function ColorIndicator (line 632) | function ColorIndicator({ color }: { color: string }) {
  function getThemeCodeOKLCH (line 641) | function getThemeCodeOKLCH(theme: BaseColorOKLCH | undefined, radius: nu...
  function getThemeCode (line 662) | function getThemeCode(theme: BaseColor | undefined, radius: number) {
  function getThemeCodeHSLV4 (line 673) | function getThemeCodeHSLV4(theme: BaseColor | undefined, radius: number) {
  constant BASE_STYLES_WITH_VARIABLES (line 694) | const BASE_STYLES_WITH_VARIABLES = `

FILE: apps/v4/components/theme-provider.tsx
  function ThemeShortcut (line 6) | function ThemeShortcut() {
  function ThemeProvider (line 38) | function ThemeProvider({

FILE: apps/v4/components/theme-selector.tsx
  function ThemeSelector (line 20) | function ThemeSelector({ className }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/accordion-basic.tsx
  function AccordionBasic (line 29) | function AccordionBasic() {

FILE: apps/v4/examples/base/accordion-borders.tsx
  function AccordionBorders (line 29) | function AccordionBorders() {

FILE: apps/v4/examples/base/accordion-card.tsx
  function AccordionCard (line 36) | function AccordionCard() {

FILE: apps/v4/examples/base/accordion-demo.tsx
  function AccordionDemo (line 8) | function AccordionDemo() {

FILE: apps/v4/examples/base/accordion-disabled.tsx
  function AccordionDisabled (line 8) | function AccordionDisabled() {

FILE: apps/v4/examples/base/accordion-multiple.tsx
  function AccordionMultiple (line 29) | function AccordionMultiple() {

FILE: apps/v4/examples/base/accordion-rtl.tsx
  function AccordionRtl (line 78) | function AccordionRtl() {

FILE: apps/v4/examples/base/alert-action.tsx
  function AlertActionExample (line 9) | function AlertActionExample() {

FILE: apps/v4/examples/base/alert-basic.tsx
  function AlertBasic (line 4) | function AlertBasic() {

FILE: apps/v4/examples/base/alert-colors.tsx
  function AlertColors (line 4) | function AlertColors() {

FILE: apps/v4/examples/base/alert-demo.tsx
  function AlertDemo (line 4) | function AlertDemo() {

FILE: apps/v4/examples/base/alert-destructive.tsx
  function AlertDestructive (line 4) | function AlertDestructive() {

FILE: apps/v4/examples/base/alert-dialog-basic.tsx
  function AlertDialogBasic (line 14) | function AlertDialogBasic() {

FILE: apps/v4/examples/base/alert-dialog-demo.tsx
  function AlertDialogDemo (line 14) | function AlertDialogDemo() {

FILE: apps/v4/examples/base/alert-dialog-destructive.tsx
  function AlertDialogDestructive (line 16) | function AlertDialogDestructive() {

FILE: apps/v4/examples/base/alert-dialog-media.tsx
  function AlertDialogWithMedia (line 16) | function AlertDialogWithMedia() {

FILE: apps/v4/examples/base/alert-dialog-rtl.tsx
  function AlertDialogRtl (line 75) | function AlertDialogRtl() {

FILE: apps/v4/examples/base/alert-dialog-small-media.tsx
  function AlertDialogSmallWithMedia (line 16) | function AlertDialogSmallWithMedia() {

FILE: apps/v4/examples/base/alert-dialog-small.tsx
  function AlertDialogSmall (line 14) | function AlertDialogSmall() {

FILE: apps/v4/examples/base/alert-rtl.tsx
  function AlertRtl (line 65) | function AlertRtl() {

FILE: apps/v4/examples/base/aspect-ratio-demo.tsx
  function AspectRatioDemo (line 4) | function AspectRatioDemo() {

FILE: apps/v4/examples/base/aspect-ratio-portrait.tsx
  function AspectRatioPortrait (line 4) | function AspectRatioPortrait() {

FILE: apps/v4/examples/base/aspect-ratio-rtl.tsx
  function AspectRatioRtl (line 33) | function AspectRatioRtl() {

FILE: apps/v4/examples/base/aspect-ratio-square.tsx
  function AspectRatioSquare (line 4) | function AspectRatioSquare() {

FILE: apps/v4/examples/base/avatar-badge-icon.tsx
  function AvatarBadgeIconExample (line 9) | function AvatarBadgeIconExample() {

FILE: apps/v4/examples/base/avatar-badge.tsx
  function AvatarWithBadge (line 8) | function AvatarWithBadge() {

FILE: apps/v4/examples/base/avatar-basic.tsx
  function AvatarDemo (line 3) | function AvatarDemo() {

FILE: apps/v4/examples/base/avatar-demo.tsx
  function AvatarDemo (line 10) | function AvatarDemo() {

FILE: apps/v4/examples/base/avatar-dropdown.tsx
  function AvatarDropdown (line 14) | function AvatarDropdown() {

FILE: apps/v4/examples/base/avatar-group-count-icon.tsx
  function AvatarGroupCountIconExample (line 10) | function AvatarGroupCountIconExample() {

FILE: apps/v4/examples/base/avatar-group-count.tsx
  function AvatarGroupCountExample (line 9) | function AvatarGroupCountExample() {

FILE: apps/v4/examples/base/avatar-group.tsx
  function AvatarGroupExample (line 8) | function AvatarGroupExample() {

FILE: apps/v4/examples/base/avatar-rtl.tsx
  function AvatarRtl (line 39) | function AvatarRtl() {

FILE: apps/v4/examples/base/avatar-size.tsx
  function AvatarSizeExample (line 3) | function AvatarSizeExample() {

FILE: apps/v4/examples/base/badge-colors.tsx
  function BadgeCustomColors (line 3) | function BadgeCustomColors() {

FILE: apps/v4/examples/base/badge-demo.tsx
  function BadgeDemo (line 3) | function BadgeDemo() {

FILE: apps/v4/examples/base/badge-icon.tsx
  function BadgeWithIconLeft (line 4) | function BadgeWithIconLeft() {

FILE: apps/v4/examples/base/badge-link.tsx
  function BadgeAsLink (line 4) | function BadgeAsLink() {

FILE: apps/v4/examples/base/badge-rtl.tsx
  function BadgeRtl (line 48) | function BadgeRtl() {

FILE: apps/v4/examples/base/badge-spinner.tsx
  function BadgeWithSpinner (line 4) | function BadgeWithSpinner() {

FILE: apps/v4/examples/base/badge-variants.tsx
  function BadgeVariants (line 3) | function BadgeVariants() {

FILE: apps/v4/examples/base/breadcrumb-basic.tsx
  function BreadcrumbBasic (line 10) | function BreadcrumbBasic() {

FILE: apps/v4/examples/base/breadcrumb-demo.tsx
  function BreadcrumbDemo (line 20) | function BreadcrumbDemo() {

FILE: apps/v4/examples/base/breadcrumb-dropdown.tsx
  function BreadcrumbDropdown (line 19) | function BreadcrumbDropdown() {

FILE: apps/v4/examples/base/breadcrumb-ellipsis.tsx
  function BreadcrumbEllipsisDemo (line 12) | function BreadcrumbEllipsisDemo() {

FILE: apps/v4/examples/base/breadcrumb-link.tsx
  function BreadcrumbLinkDemo (line 11) | function BreadcrumbLinkDemo() {

FILE: apps/v4/examples/base/breadcrumb-rtl.tsx
  function BreadcrumbRtl (line 62) | function BreadcrumbRtl() {

FILE: apps/v4/examples/base/breadcrumb-separator.tsx
  function BreadcrumbSeparatorDemo (line 12) | function BreadcrumbSeparatorDemo() {

FILE: apps/v4/examples/base/button-default.tsx
  function ButtonDefault (line 3) | function ButtonDefault() {

FILE: apps/v4/examples/base/button-demo.tsx
  function ButtonDemo (line 4) | function ButtonDemo() {

FILE: apps/v4/examples/base/button-destructive.tsx
  function ButtonDestructive (line 3) | function ButtonDestructive() {

FILE: apps/v4/examples/base/button-ghost.tsx
  function ButtonGhost (line 3) | function ButtonGhost() {

FILE: apps/v4/examples/base/button-group-demo.tsx
  function ButtonGroupDemo (line 31) | function ButtonGroupDemo() {

FILE: apps/v4/examples/base/button-group-dropdown.tsx
  function ButtonGroupDropdown (line 24) | function ButtonGroupDropdown() {

FILE: apps/v4/examples/base/button-group-input-group.tsx
  function ButtonGroupInputGroup (line 19) | function ButtonGroupInputGroup() {

FILE: apps/v4/examples/base/button-group-input.tsx
  function ButtonGroupInput (line 6) | function ButtonGroupInput() {

FILE: apps/v4/examples/base/button-group-nested.tsx
  function ButtonGroupNested (line 16) | function ButtonGroupNested() {

FILE: apps/v4/examples/base/button-group-orientation.tsx
  function ButtonGroupOrientation (line 5) | function ButtonGroupOrientation() {

FILE: apps/v4/examples/base/button-group-popover.tsx
  function ButtonGroupPopover (line 15) | function ButtonGroupPopover() {

FILE: apps/v4/examples/base/button-group-rtl.tsx
  function ButtonGroupRtl (line 87) | function ButtonGroupRtl() {

FILE: apps/v4/examples/base/button-group-select.tsx
  constant CURRENCIES (line 16) | const CURRENCIES = [
  function ButtonGroupSelect (line 22) | function ButtonGroupSelect() {

FILE: apps/v4/examples/base/button-group-separator.tsx
  function ButtonGroupSeparatorDemo (line 7) | function ButtonGroupSeparatorDemo() {

FILE: apps/v4/examples/base/button-group-size.tsx
  function ButtonGroupSize (line 5) | function ButtonGroupSize() {

FILE: apps/v4/examples/base/button-group-split.tsx
  function ButtonGroupSplit (line 8) | function ButtonGroupSplit() {

FILE: apps/v4/examples/base/button-icon.tsx
  function ButtonIcon (line 4) | function ButtonIcon() {

FILE: apps/v4/examples/base/button-link.tsx
  function ButtonLink (line 3) | function ButtonLink() {

FILE: apps/v4/examples/base/button-outline.tsx
  function ButtonOutline (line 3) | function ButtonOutline() {

FILE: apps/v4/examples/base/button-render.tsx
  function ButtonRender (line 5) | function ButtonRender() {

FILE: apps/v4/examples/base/button-rounded.tsx
  function ButtonRounded (line 4) | function ButtonRounded() {

FILE: apps/v4/examples/base/button-rtl.tsx
  function ButtonRtl (line 42) | function ButtonRtl() {

FILE: apps/v4/examples/base/button-secondary.tsx
  function ButtonSecondary (line 3) | function ButtonSecondary() {

FILE: apps/v4/examples/base/button-size.tsx
  function ButtonSize (line 4) | function ButtonSize() {

FILE: apps/v4/examples/base/button-spinner.tsx
  function ButtonLoading (line 4) | function ButtonLoading() {

FILE: apps/v4/examples/base/button-with-icon.tsx
  function ButtonWithIcon (line 4) | function ButtonWithIcon() {

FILE: apps/v4/examples/base/calendar-basic.tsx
  function CalendarBasic (line 5) | function CalendarBasic() {

FILE: apps/v4/examples/base/calendar-booked-dates.tsx
  function CalendarBookedDates (line 7) | function CalendarBookedDates() {

FILE: apps/v4/examples/base/calendar-caption.tsx
  function CalendarCaption (line 5) | function CalendarCaption() {

FILE: apps/v4/examples/base/calendar-custom-days.tsx
  function CalendarCustomDays (line 9) | function CalendarCustomDays() {

FILE: apps/v4/examples/base/calendar-demo.tsx
  function CalendarDemo (line 6) | function CalendarDemo() {

FILE: apps/v4/examples/base/calendar-hijri.tsx
  function CalendarHijri (line 18) | function CalendarHijri() {
  function Calendar (line 40) | function Calendar({
  function CalendarDayButton (line 198) | function CalendarDayButton({

FILE: apps/v4/examples/base/calendar-multiple.tsx
  function CalendarMultiple (line 4) | function CalendarMultiple() {

FILE: apps/v4/examples/base/calendar-presets.tsx
  function CalendarWithPresets (line 9) | function CalendarWithPresets() {

FILE: apps/v4/examples/base/calendar-range.tsx
  function CalendarRange (line 9) | function CalendarRange() {

FILE: apps/v4/examples/base/calendar-rtl.tsx
  function CalendarRtl (line 32) | function CalendarRtl() {

FILE: apps/v4/examples/base/calendar-time.tsx
  function CalendarWithTime (line 14) | function CalendarWithTime() {

FILE: apps/v4/examples/base/calendar-week-numbers.tsx
  function CalendarWeekNumbers (line 7) | function CalendarWeekNumbers() {

FILE: apps/v4/examples/base/card-demo.tsx
  function CardDemo (line 14) | function CardDemo() {

FILE: apps/v4/examples/base/card-image.tsx
  function CardImage (line 12) | function CardImage() {

FILE: apps/v4/examples/base/card-rtl.tsx
  function CardRtl (line 67) | function CardRtl() {

FILE: apps/v4/examples/base/card-small.tsx
  function CardSmall (line 12) | function CardSmall() {

FILE: apps/v4/examples/base/carousel-api.tsx
  function CarouselDApiDemo (line 14) | function CarouselDApiDemo() {

FILE: apps/v4/examples/base/carousel-demo.tsx
  function CarouselDemo (line 11) | function CarouselDemo() {

FILE: apps/v4/examples/base/carousel-multiple.tsx
  function CarouselMultiple (line 10) | function CarouselMultiple() {

FILE: apps/v4/examples/base/carousel-orientation.tsx
  function CarouselOrientation (line 11) | function CarouselOrientation() {

FILE: apps/v4/examples/base/carousel-plugin.tsx
  function CarouselPlugin (line 14) | function CarouselPlugin() {

FILE: apps/v4/examples/base/carousel-rtl.tsx
  function toArabicNumerals (line 33) | function toArabicNumerals(num: number): string {
  function CarouselRtl (line 42) | function CarouselRtl() {

FILE: apps/v4/examples/base/carousel-size.tsx
  function CarouselSize (line 11) | function CarouselSize() {

FILE: apps/v4/examples/base/carousel-spacing.tsx
  function CarouselSpacing (line 11) | function CarouselSpacing() {

FILE: apps/v4/examples/base/chart-demo.tsx
  function ChartDemo (line 69) | function ChartDemo() {

FILE: apps/v4/examples/base/chart-example-axis.tsx
  function ChartBarDemoAxis (line 26) | function ChartBarDemoAxis() {

FILE: apps/v4/examples/base/chart-example-grid.tsx
  function ChartBarDemoGrid (line 26) | function ChartBarDemoGrid() {

FILE: apps/v4/examples/base/chart-example-legend.tsx
  function ChartBarDemoLegend (line 33) | function ChartBarDemoLegend() {

FILE: apps/v4/examples/base/chart-example-tooltip.tsx
  function ChartBarDemoTooltip (line 31) | function ChartBarDemoTooltip() {

FILE: apps/v4/examples/base/chart-example.tsx
  function ChartExample (line 26) | function ChartExample() {

FILE: apps/v4/examples/base/chart-rtl.tsx
  function ChartRtl (line 69) | function ChartRtl() {

FILE: apps/v4/examples/base/chart-tooltip.tsx
  function ChartTooltipDemo (line 7) | function ChartTooltipDemo() {
  function TooltipDemo (line 122) | function TooltipDemo({

FILE: apps/v4/examples/base/checkbox-basic.tsx
  function CheckboxBasic (line 4) | function CheckboxBasic() {

FILE: apps/v4/examples/base/checkbox-demo.tsx
  function CheckboxDemo (line 14) | function CheckboxDemo() {

FILE: apps/v4/examples/base/checkbox-description.tsx
  function CheckboxDescription (line 10) | function CheckboxDescription() {

FILE: apps/v4/examples/base/checkbox-disabled.tsx
  function CheckboxDisabled (line 4) | function CheckboxDisabled() {

FILE: apps/v4/examples/base/checkbox-group.tsx
  function CheckboxGroup (line 11) | function CheckboxGroup() {

FILE: apps/v4/examples/base/checkbox-invalid.tsx
  function CheckboxInvalid (line 4) | function CheckboxInvalid() {

FILE: apps/v4/examples/base/checkbox-rtl.tsx
  function CheckboxRtl (line 55) | function CheckboxRtl() {

FILE: apps/v4/examples/base/checkbox-table.tsx
  function CheckboxInTable (line 41) | function CheckboxInTable() {

FILE: apps/v4/examples/base/collapsible-basic.tsx
  function CollapsibleBasic (line 11) | function CollapsibleBasic() {

FILE: apps/v4/examples/base/collapsible-demo.tsx
  function CollapsibleDemo (line 12) | function CollapsibleDemo() {

FILE: apps/v4/examples/base/collapsible-file-tree.tsx
  type FileTreeItem (line 11) | type FileTreeItem = { name: string } | { name: string; items: FileTreeIt...
  function CollapsibleFileTree (line 13) | function CollapsibleFileTree() {

FILE: apps/v4/examples/base/collapsible-rtl.tsx
  function CollapsibleRtl (line 56) | function CollapsibleRtl() {

FILE: apps/v4/examples/base/collapsible-settings.tsx
  function CollapsibleSettings (line 21) | function CollapsibleSettings() {

FILE: apps/v4/examples/base/combobox-auto-highlight.tsx
  function ComboboxAutoHighlight (line 20) | function ComboboxAutoHighlight() {

FILE: apps/v4/examples/base/combobox-basic.tsx
  function ComboboxBasic (line 20) | function ComboboxBasic() {

FILE: apps/v4/examples/base/combobox-clear.tsx
  function ComboboxWithClear (line 20) | function ComboboxWithClear() {

FILE: apps/v4/examples/base/combobox-custom.tsx
  function ComboboxWithCustomItems (line 71) | function ComboboxWithCustomItems() {

FILE: apps/v4/examples/base/combobox-demo.tsx
  function ComboboxBasic (line 20) | function ComboboxBasic() {

FILE: apps/v4/examples/base/combobox-disabled.tsx
  function ComboboxDisabled (line 20) | function ComboboxDisabled() {

FILE: apps/v4/examples/base/combobox-groups.tsx
  function ComboboxWithGroupsAndSeparator (line 52) | function ComboboxWithGroupsAndSeparator() {

FILE: apps/v4/examples/base/combobox-input-group.tsx
  function ComboxboxInputGroup (line 53) | function ComboxboxInputGroup() {

FILE: apps/v4/examples/base/combobox-invalid.tsx
  function ComboboxInvalid (line 20) | function ComboboxInvalid() {

FILE: apps/v4/examples/base/combobox-multiple.tsx
  function ComboboxMultiple (line 25) | function ComboboxMultiple() {

FILE: apps/v4/examples/base/combobox-popup.tsx
  function ComboboxPopup (line 68) | function ComboboxPopup() {

FILE: apps/v4/examples/base/combobox-rtl.tsx
  function ComboboxRtl (line 77) | function ComboboxRtl() {

FILE: apps/v4/examples/base/command-basic.tsx
  function CommandBasic (line 15) | function CommandBasic() {

FILE: apps/v4/examples/base/command-demo.tsx
  function CommandDemo (line 20) | function CommandDemo() {

FILE: apps/v4/examples/base/command-dialog.tsx
  function CommandDialogDemo (line 23) | function CommandDialogDemo() {

FILE: apps/v4/examples/base/command-groups.tsx
  function CommandWithGroups (line 25) | function CommandWithGroups() {

FILE: apps/v4/examples/base/command-rtl.tsx
  function CommandRtl (line 73) | function CommandRtl() {

FILE: apps/v4/examples/base/command-scrollable.tsx
  function CommandManyItems (line 42) | function CommandManyItems() {

FILE: apps/v4/examples/base/command-shortcuts.tsx
  function CommandWithShortcuts (line 17) | function CommandWithShortcuts() {

FILE: apps/v4/examples/base/context-menu-basic.tsx
  function ContextMenuBasic (line 9) | function ContextMenuBasic() {

FILE: apps/v4/examples/base/context-menu-checkboxes.tsx
  function ContextMenuCheckboxes (line 9) | function ContextMenuCheckboxes() {

FILE: apps/v4/examples/base/context-menu-demo.tsx
  function ContextMenuDemo (line 18) | function ContextMenuDemo() {

FILE: apps/v4/examples/base/context-menu-destructive.tsx
  function ContextMenuDestructive (line 11) | function ContextMenuDestructive() {

FILE: apps/v4/examples/base/context-menu-groups.tsx
  function ContextMenuGroups (line 12) | function ContextMenuGroups() {

FILE: apps/v4/examples/base/context-menu-icons.tsx
  function ContextMenuIcons (line 16) | function ContextMenuIcons() {

FILE: apps/v4/examples/base/context-menu-radio.tsx
  function ContextMenuRadio (line 15) | function ContextMenuRadio() {

FILE: apps/v4/examples/base/context-menu-rtl.tsx
  function ContextMenuRtl (line 96) | function ContextMenuRtl() {

FILE: apps/v4/examples/base/context-menu-shortcuts.tsx
  function ContextMenuShortcuts (line 11) | function ContextMenuShortcuts() {

FILE: apps/v4/examples/base/context-menu-sides.tsx
  function ContextMenuSides (line 9) | function ContextMenuSides() {

FILE: apps/v4/examples/base/context-menu-submenu.tsx
  function ContextMenuSubmenu (line 14) | function ContextMenuSubmenu() {

FILE: apps/v4/examples/base/data-picker-with-dropdowns.tsx
  function DataPickerWithDropdowns (line 15) | function DataPickerWithDropdowns() {

FILE: apps/v4/examples/base/data-table-demo.tsx
  type Payment (line 72) | type Payment = {
  function DataTableDemo (line 174) | function DataTableDemo() {

FILE: apps/v4/examples/base/data-table-rtl.tsx
  type Payment (line 125) | type Payment = {
  function DataTableRtl (line 165) | function DataTableRtl() {

FILE: apps/v4/examples/base/date-picker-basic.tsx
  function DatePickerSimple (line 14) | function DatePickerSimple() {

FILE: apps/v4/examples/base/date-picker-demo.tsx
  function DatePickerDemo (line 14) | function DatePickerDemo() {

FILE: apps/v4/examples/base/date-picker-dob.tsx
  function DatePickerSimple (line 13) | function DatePickerSimple() {

FILE: apps/v4/examples/base/date-picker-input.tsx
  function formatDate (line 19) | function formatDate(date: Date | undefined) {
  function isValidDate (line 31) | function isValidDate(date: Date | undefined) {
  function DatePickerInput (line 38) | function DatePickerInput() {

FILE: apps/v4/examples/base/date-picker-natural-language.tsx
  function formatDate (line 20) | function formatDate(date: Date | undefined) {
  function DatePickerNaturalLanguage (line 32) | function DatePickerNaturalLanguage() {

FILE: apps/v4/examples/base/date-picker-range.tsx
  function DatePickerWithRange (line 16) | function DatePickerWithRange() {

FILE: apps/v4/examples/base/date-picker-rtl.tsx
  function DatePickerRtl (line 55) | function DatePickerRtl() {

FILE: apps/v4/examples/base/date-picker-time.tsx
  function DatePickerTime (line 16) | function DatePickerTime() {

FILE: apps/v4/examples/base/dialog-close-button.tsx
  function DialogCloseButton (line 15) | function DialogCloseButton() {

FILE: apps/v4/examples/base/dialog-demo.tsx
  function DialogDemo (line 16) | function DialogDemo() {

FILE: apps/v4/examples/base/dialog-no-close-button.tsx
  function DialogNoCloseButton (line 13) | function DialogNoCloseButton() {

FILE: apps/v4/examples/base/dialog-rtl.tsx
  function DialogRtl (line 64) | function DialogRtl() {

FILE: apps/v4/examples/base/dialog-scrollable-content.tsx
  function DialogScrollableContent (line 11) | function DialogScrollableContent() {

FILE: apps/v4/examples/base/dialog-sticky-footer.tsx
  function DialogStickyFooter (line 13) | function DialogStickyFooter() {

FILE: apps/v4/examples/base/drawer-demo.tsx
  function DrawerDemo (line 60) | function DrawerDemo() {

FILE: apps/v4/examples/base/drawer-dialog.tsx
  function DrawerDialogDemo (line 29) | function DrawerDialogDemo() {
  function ProfileForm (line 76) | function ProfileForm({ className }: React.ComponentProps<"form">) {

FILE: apps/v4/examples/base/drawer-rtl.tsx
  function DrawerRtl (line 110) | function DrawerRtl() {

FILE: apps/v4/examples/base/drawer-scrollable-content.tsx
  function DrawerScrollableContent (line 13) | function DrawerScrollableContent() {

FILE: apps/v4/examples/base/drawer-sides.tsx
  constant DRAWER_SIDES (line 13) | const DRAWER_SIDES = ["top", "right", "bottom", "left"] as const
  function DrawerWithSides (line 15) | function DrawerWithSides() {

FILE: apps/v4/examples/base/dropdown-menu-avatar.tsx
  function DropdownMenuAvatar (line 20) | function DropdownMenuAvatar() {

FILE: apps/v4/examples/base/dropdown-menu-basic.tsx
  function DropdownMenuBasic (line 14) | function DropdownMenuBasic() {

FILE: apps/v4/examples/base/dropdown-menu-checkboxes-icons.tsx
  function DropdownMenuCheckboxesIcons (line 15) | function DropdownMenuCheckboxesIcons() {

FILE: apps/v4/examples/base/dropdown-menu-checkboxes.tsx
  function DropdownMenuCheckboxes (line 14) | function DropdownMenuCheckboxes() {

FILE: apps/v4/examples/base/dropdown-menu-complex.tsx
  function DropdownMenuComplex (line 50) | function DropdownMenuComplex() {

FILE: apps/v4/examples/base/dropdown-menu-demo.tsx
  function DropdownMenuDemo (line 19) | function DropdownMenuDemo() {

FILE: apps/v4/examples/base/dropdown-menu-destructive.tsx
  function DropdownMenuDestructive (line 14) | function DropdownMenuDestructive() {

FILE: apps/v4/examples/base/dropdown-menu-icons.tsx
  function DropdownMenuIcons (line 18) | function DropdownMenuIcons() {

FILE: apps/v4/examples/base/dropdown-menu-radio-group.tsx
  function DropdownMenuRadioGroupDemo (line 15) | function DropdownMenuRadioGroupDemo() {

FILE: apps/v4/examples/base/dropdown-menu-radio-icons.tsx
  function DropdownMenuRadioIcons (line 16) | function DropdownMenuRadioIcons() {

FILE: apps/v4/examples/base/dropdown-menu-rtl.tsx
  function DropdownMenuRtl (line 122) | function DropdownMenuRtl() {

FILE: apps/v4/examples/base/dropdown-menu-shortcuts.tsx
  function DropdownMenuShortcuts (line 15) | function DropdownMenuShortcuts() {

FILE: apps/v4/examples/base/dropdown-menu-submenu.tsx
  function DropdownMenuSubmenu (line 18) | function DropdownMenuSubmenu() {

FILE: apps/v4/examples/base/empty-avatar-group.tsx
  function EmptyAvatarGroup (line 13) | function EmptyAvatarGroup() {

FILE: apps/v4/examples/base/empty-avatar.tsx
  function EmptyAvatar (line 12) | function EmptyAvatar() {

FILE: apps/v4/examples/base/empty-background.tsx
  function EmptyMuted (line 13) | function EmptyMuted() {

FILE: apps/v4/examples/base/empty-card.tsx
  function EmptyInCard (line 12) | function EmptyInCard() {

FILE: apps/v4/examples/base/empty-demo.tsx
  function EmptyDemo (line 13) | function EmptyDemo() {

FILE: apps/v4/examples/base/empty-input-group.tsx
  function EmptyInputGroup (line 16) | function EmptyInputGroup() {

FILE: apps/v4/examples/base/empty-outline.tsx
  function EmptyOutline (line 12) | function EmptyOutline() {

FILE: apps/v4/examples/base/empty-rtl.tsx
  function EmptyRtl (line 56) | function EmptyRtl() {

FILE: apps/v4/examples/base/field-checkbox.tsx
  function FieldCheckbox (line 13) | function FieldCheckbox() {

FILE: apps/v4/examples/base/field-choice-card.tsx
  function FieldChoiceCard (line 13) | function FieldChoiceCard() {

FILE: apps/v4/examples/base/field-demo.tsx
  function FieldDemo (line 49) | function FieldDemo() {

FILE: apps/v4/examples/base/field-fieldset.tsx
  function FieldFieldset (line 11) | function FieldFieldset() {

FILE: apps/v4/examples/base/field-group.tsx
  function FieldGroupExample (line 11) | function FieldGroupExample() {

FILE: apps/v4/examples/base/field-input.tsx
  function FieldInput (line 10) | function FieldInput() {

FILE: apps/v4/examples/base/field-radio.tsx
  function FieldRadio (line 10) | function FieldRadio() {

FILE: apps/v4/examples/base/field-responsive.tsx
  function FieldResponsive (line 13) | function FieldResponsive() {

FILE: apps/v4/examples/base/field-rtl.tsx
  function FieldRtl (line 160) | function FieldRtl() {

FILE: apps/v4/examples/base/field-select.tsx
  function FieldSelect (line 23) | function FieldSelect() {

FILE: apps/v4/examples/base/field-slider.tsx
  function FieldSlider (line 7) | function FieldSlider() {

FILE: apps/v4/examples/base/field-switch.tsx
  function FieldSwitch (line 4) | function FieldSwitch() {

FILE: apps/v4/examples/base/field-textarea.tsx
  function FieldTextarea (line 10) | function FieldTextarea() {

FILE: apps/v4/examples/base/file-upload-list.tsx
  function FileUploadList (line 15) | function FileUploadList() {

FILE: apps/v4/examples/base/hooks/use-mobile.ts
  constant MOBILE_BREAKPOINT (line 3) | const MOBILE_BREAKPOINT = 768
  function useIsMobile (line 5) | function useIsMobile() {

FILE: apps/v4/examples/base/hover-card-demo.tsx
  function HoverCardDemo (line 9) | function HoverCardDemo() {

FILE: apps/v4/examples/base/hover-card-rtl.tsx
  function HoverCardRtl (line 63) | function HoverCardRtl() {

FILE: apps/v4/examples/base/hover-card-sides.tsx
  constant HOVER_CARD_SIDES (line 8) | const HOVER_CARD_SIDES = ["left", "top", "bottom", "right"] as const
  function HoverCardSides (line 10) | function HoverCardSides() {

FILE: apps/v4/examples/base/input-badge.tsx
  function InputBadge (line 5) | function InputBadge() {

FILE: apps/v4/examples/base/input-basic.tsx
  function InputBasic (line 3) | function InputBasic() {

FILE: apps/v4/examples/base/input-button-group.tsx
  function InputButtonGroup (line 6) | function InputButtonGroup() {

FILE: apps/v4/examples/base/input-demo.tsx
  function InputDemo (line 4) | function InputDemo() {

FILE: apps/v4/examples/base/input-disabled.tsx
  function InputDisabled (line 4) | function InputDisabled() {

FILE: apps/v4/examples/base/input-field.tsx
  function InputField (line 4) | function InputField() {

FILE: apps/v4/examples/base/input-fieldgroup.tsx
  function InputFieldgroup (line 10) | function InputFieldgroup() {

FILE: apps/v4/examples/base/input-file.tsx
  function InputFile (line 4) | function InputFile() {

FILE: apps/v4/examples/base/input-form.tsx
  function InputForm (line 18) | function InputForm() {

FILE: apps/v4/examples/base/input-grid.tsx
  function InputGrid (line 4) | function InputGrid() {

FILE: apps/v4/examples/base/input-group-basic.tsx
  function InputGroupBasic (line 5) | function InputGroupBasic() {

FILE: apps/v4/examples/base/input-group-block-end.tsx
  function InputGroupBlockEnd (line 16) | function InputGroupBlockEnd() {

FILE: apps/v4/examples/base/input-group-block-start.tsx
  function InputGroupBlockStart (line 17) | function InputGroupBlockStart() {

FILE: apps/v4/examples/base/input-group-button-group.tsx
  function InputGroupButtonGroup (line 10) | function InputGroupButtonGroup() {

FILE: apps/v4/examples/base/input-group-button.tsx
  function InputGroupButtonExample (line 24) | function InputGroupButtonExample() {

FILE: apps/v4/examples/base/input-group-custom.tsx
  function InputGroupCustom (line 10) | function InputGroupCustom() {

FILE: apps/v4/examples/base/input-group-demo.tsx
  function InputGroupDemo (line 8) | function InputGroupDemo() {

FILE: apps/v4/examples/base/input-group-dropdown.tsx
  function InputGroupDropdown (line 18) | function InputGroupDropdown() {

FILE: apps/v4/examples/base/input-group-icon.tsx
  function InputGroupIcon (line 15) | function InputGroupIcon() {

FILE: apps/v4/examples/base/input-group-in-card.tsx
  function InputGroupInCard (line 21) | function InputGroupInCard() {

FILE: apps/v4/examples/base/input-group-inline-end.tsx
  function InputGroupInlineEnd (line 9) | function InputGroupInlineEnd() {

FILE: apps/v4/examples/base/input-group-inline-start.tsx
  function InputGroupInlineStart (line 9) | function InputGroupInlineStart() {

FILE: apps/v4/examples/base/input-group-kbd.tsx
  function InputGroupKbd (line 9) | function InputGroupKbd() {

FILE: apps/v4/examples/base/input-group-label.tsx
  function InputGroupLabel (line 15) | function InputGroupLabel() {

FILE: apps/v4/examples/base/input-group-rtl.tsx
  function InputGroupRtl (line 74) | function InputGroupRtl() {

FILE: apps/v4/examples/base/input-group-spinner.tsx
  function InputGroupSpinner (line 10) | function InputGroupSpinner() {

FILE: apps/v4/examples/base/input-group-text.tsx
  function InputGroupTextExample (line 9) | function InputGroupTextExample() {

FILE: apps/v4/examples/base/input-group-textarea-examples.tsx
  function InputGroupTextareaExamples (line 24) | function InputGroupTextareaExamples() {

FILE: apps/v4/examples/base/input-group-textarea.tsx
  function InputGroupTextareaExample (line 15) | function InputGroupTextareaExample() {

FILE: apps/v4/examples/base/input-group-tooltip.tsx
  function InputGroupTooltip (line 14) | function InputGroupTooltip() {

FILE: apps/v4/examples/base/input-group-with-addons.tsx
  function InputGroupWithAddons (line 27) | function InputGroupWithAddons() {

FILE: apps/v4/examples/base/input-group-with-buttons.tsx
  function InputGroupWithButtons (line 12) | function InputGroupWithButtons() {

FILE: apps/v4/examples/base/input-group-with-kbd.tsx
  function InputGroupWithKbd (line 17) | function InputGroupWithKbd() {

FILE: apps/v4/examples/base/input-group-with-tooltip.tsx
  function InputGroupWithTooltip (line 38) | function InputGroupWithTooltip({

FILE: apps/v4/examples/base/input-inline.tsx
  function InputInline (line 5) | function InputInline() {

FILE: apps/v4/examples/base/input-input-group.tsx
  function InputInputGroup (line 10) | function InputInputGroup() {

FILE: apps/v4/examples/base/input-invalid.tsx
  function InputInvalid (line 4) | function InputInvalid() {

FILE: apps/v4/examples/base/input-otp-alphanumeric.tsx
  function InputOTPAlphanumeric (line 11) | function InputOTPAlphanumeric() {

FILE: apps/v4/examples/base/input-otp-controlled.tsx
  function InputOTPControlled (line 10) | function InputOTPControlled() {

FILE: apps/v4/examples/base/input-otp-demo.tsx
  function InputOTPDemo (line 7) | function InputOTPDemo() {

FILE: apps/v4/examples/base/input-otp-disabled.tsx
  function InputOTPDisabled (line 9) | function InputOTPDisabled() {

FILE: apps/v4/examples/base/input-otp-form.tsx
  function InputOTPForm (line 19) | function InputOTPForm() {

FILE: apps/v4/examples/base/input-otp-four-digits.tsx
  function InputOTPFourDigits (line 10) | function InputOTPFourDigits() {

FILE: apps/v4/examples/base/input-otp-invalid.tsx
  function InputOTPInvalid (line 11) | function InputOTPInvalid() {

FILE: apps/v4/examples/base/input-otp-pattern.tsx
  function InputOTPPattern (line 11) | function InputOTPPattern() {

FILE: apps/v4/examples/base/input-otp-rtl.tsx
  function InputOTPRtl (line 37) | function InputOTPRtl() {

FILE: apps/v4/examples/base/input-otp-separator.tsx
  function InputOTPWithSeparator (line 8) | function InputOTPWithSeparator() {

FILE: apps/v4/examples/base/input-required.tsx
  function InputRequired (line 4) | function InputRequired() {

FILE: apps/v4/examples/base/input-rtl.tsx
  function InputRtl (line 43) | function InputRtl() {

FILE: apps/v4/examples/base/item-avatar.tsx
  function ItemAvatar (line 13) | function ItemAvatar() {

FILE: apps/v4/examples/base/item-demo.tsx
  function ItemDemo (line 12) | function ItemDemo() {

FILE: apps/v4/examples/base/item-dropdown.tsx
  function ItemDropdown (line 39) | function ItemDropdown() {

FILE: apps/v4/examples/base/item-group.tsx
  function ItemGroupExample (line 34) | function ItemGroupExample() {

FILE: apps/v4/examples/base/item-header.tsx
  function ItemHeaderDemo (line 35) | function ItemHeaderDemo() {

FILE: apps/v4/examples/base/item-icon.tsx
  function ItemIcon (line 12) | function ItemIcon() {

FILE: apps/v4/examples/base/item-image.tsx
  function ItemImage (line 32) | function ItemImage() {

FILE: apps/v4/examples/base/item-link.tsx
  function ItemLink (line 10) | function ItemLink() {

FILE: apps/v4/examples/base/item-rtl.tsx
  function ItemRtl (line 50) | function ItemRtl() {

FILE: apps/v4/examples/base/item-size.tsx
  function ItemSizeDemo (line 10) | function ItemSizeDemo() {

FILE: apps/v4/examples/base/item-variant.tsx
  function ItemVariant (line 10) | function ItemVariant() {

FILE: apps/v4/examples/base/kbd-button.tsx
  function KbdButton (line 4) | function KbdButton() {

FILE: apps/v4/examples/base/kbd-demo.tsx
  function KbdDemo (line 3) | function KbdDemo() {

FILE: apps/v4/examples/base/kbd-group.tsx
  function KbdGroupExample (line 3) | function KbdGroupExample() {

FILE: apps/v4/examples/base/kbd-input-group.tsx
  function KbdInputGroup (line 9) | function KbdInputGroup() {

FILE: apps/v4/examples/base/kbd-rtl.tsx
  function KbdRtl (line 26) | function KbdRtl() {

FILE: apps/v4/examples/base/kbd-tooltip.tsx
  function KbdTooltip (line 10) | function KbdTooltip() {

FILE: apps/v4/examples/base/label-demo.tsx
  function LabelDemo (line 4) | function LabelDemo() {

FILE: apps/v4/examples/base/label-rtl.tsx
  function LabelRtl (line 33) | function LabelRtl() {

FILE: apps/v4/examples/base/lib/utils.ts
  function cn (line 4) | function cn(...inputs: ClassValue[]) {

FILE: apps/v4/examples/base/menubar-checkbox.tsx
  function MenubarCheckbox (line 12) | function MenubarCheckbox() {

FILE: apps/v4/examples/base/menubar-demo.tsx
  function MenubarDemo (line 18) | function MenubarDemo() {

FILE: apps/v4/examples/base/menubar-icons.tsx
  function MenubarIcons (line 20) | function MenubarIcons() {

FILE: apps/v4/examples/base/menubar-radio.tsx
  function MenubarRadio (line 15) | function MenubarRadio() {

FILE: apps/v4/examples/base/menubar-rtl.tsx
  function MenubarRtl (line 143) | function MenubarRtl() {

FILE: apps/v4/examples/base/menubar-submenu.tsx
  function MenubarSubmenu (line 14) | function MenubarSubmenu() {

FILE: apps/v4/examples/base/muted-item-group.tsx
  function MutedItemGroup (line 11) | function MutedItemGroup() {

FILE: apps/v4/examples/base/native-select-demo.tsx
  function NativeSelectDemo (line 6) | function NativeSelectDemo() {

FILE: apps/v4/examples/base/native-select-disabled.tsx
  function NativeSelectDisabled (line 6) | function NativeSelectDisabled() {

FILE: apps/v4/examples/base/native-select-groups.tsx
  function NativeSelectGroups (line 7) | function NativeSelectGroups() {

FILE: apps/v4/examples/base/native-select-invalid.tsx
  function NativeSelectInvalid (line 6) | function NativeSelectInvalid() {

FILE: apps/v4/examples/base/native-select-rtl.tsx
  function NativeSelectRtl (line 47) | function NativeSelectRtl() {

FILE: apps/v4/examples/base/navigation-menu-demo.tsx
  function NavigationMenuDemo (line 58) | function NavigationMenuDemo() {
  function ListItem (line 140) | function ListItem({

FILE: apps/v4/examples/base/navigation-menu-rtl.tsx
  function NavigationMenuRtl (line 164) | function NavigationMenuRtl() {
  function ListItem (line 258) | function ListItem({

FILE: apps/v4/examples/base/outline-item-group.tsx
  function OutlineItemGroup (line 11) | function OutlineItemGroup() {

FILE: apps/v4/examples/base/pagination-demo.tsx
  function PaginationDemo (line 11) | function PaginationDemo() {

FILE: apps/v4/examples/base/pagination-icons-only.tsx
  function PaginationIconsOnly (line 18) | function PaginationIconsOnly() {

FILE: apps/v4/examples/base/pagination-rtl.tsx
  function toArabicNumerals (line 43) | function toArabicNumerals(num: number): string {
  function PaginationRtl (line 52) | function PaginationRtl() {

FILE: apps/v4/examples/base/pagination-simple.tsx
  function PaginationSimple (line 8) | function PaginationSimple() {

FILE: apps/v4/examples/base/popover-alignments.tsx
  function PopoverAlignments (line 8) | function PopoverAlignments() {

FILE: apps/v4/examples/base/popover-basic.tsx
  function PopoverBasic (line 11) | function PopoverBasic() {

FILE: apps/v4/examples/base/popover-demo.tsx
  function PopoverDemo (line 10) | function PopoverDemo() {

FILE: apps/v4/examples/base/popover-form.tsx
  function PopoverForm (line 13) | function PopoverForm() {

FILE: apps/v4/examples/base/popover-rtl.tsx
  function PopoverRtl (line 63) | function PopoverRtl() {

FILE: apps/v4/examples/base/progress-controlled.tsx
  function ProgressControlled (line 7) | function ProgressControlled() {

FILE: apps/v4/examples/base/progress-demo.tsx
  function ProgressDemo (line 6) | function ProgressDemo() {

FILE: apps/v4/examples/base/progress-label.tsx
  function ProgressWithLabel (line 7) | function ProgressWithLabel() {

FILE: apps/v4/examples/base/progress-rtl.tsx
  function toArabicNumerals (line 36) | function toArabicNumerals(num: number): string {
  function ProgressRtl (line 45) | function ProgressRtl() {

FILE: apps/v4/examples/base/radio-fields.tsx
  function RadioFields (line 13) | function RadioFields() {

FILE: apps/v4/examples/base/radio-group-choice-card.tsx
  function RadioGroupChoiceCard (line 10) | function RadioGroupChoiceCard() {

FILE: apps/v4/examples/base/radio-group-demo.tsx
  function RadioGroupDemo (line 4) | function RadioGroupDemo() {

FILE: apps/v4/examples/base/radio-group-description.tsx
  function RadioGroupDescription (line 9) | function RadioGroupDescription() {

FILE: apps/v4/examples/base/radio-group-disabled.tsx
  function RadioGroupDisabled (line 4) | function RadioGroupDisabled() {

FILE: apps/v4/examples/base/radio-group-fieldset.tsx
  function RadioGroupFieldset (line 10) | function RadioGroupFieldset() {

FILE: apps/v4/examples/base/radio-group-invalid.tsx
  function RadioGroupInvalid (line 10) | function RadioGroupInvalid() {

FILE: apps/v4/examples/base/radio-group-rtl.tsx
  function RadioGroupRtl (line 53) | function RadioGroupRtl() {

FILE: apps/v4/examples/base/resizable-demo.tsx
  function ResizableDemo (line 7) | function ResizableDemo() {

FILE: apps/v4/examples/base/resizable-handle.tsx
  function ResizableHandleDemo (line 7) | function ResizableHandleDemo() {

FILE: apps/v4/examples/base/resizable-rtl.tsx
  function ResizableRtl (line 42) | function ResizableRtl() {

FILE: apps/v4/examples/base/resizable-vertical.tsx
  function ResizableVertical (line 7) | function ResizableVertical() {

FILE: apps/v4/examples/base/scroll-area-demo.tsx
  function ScrollAreaDemo (line 9) | function ScrollAreaDemo() {

FILE: apps/v4/examples/base/scroll-area-horizontal-demo.tsx
  type Artwork (line 5) | interface Artwork {
  function ScrollAreaHorizontalDemo (line 25) | function ScrollAreaHorizontalDemo() {

FILE: apps/v4/examples/base/scroll-area-rtl.tsx
  function ScrollAreaRtl (line 37) | function ScrollAreaRtl() {

FILE: apps/v4/examples/base/select-align-item.tsx
  function SelectAlignItem (line 31) | function SelectAlignItem() {

FILE: apps/v4/examples/base/select-demo.tsx
  function SelectDemo (line 20) | function SelectDemo() {

FILE: apps/v4/examples/base/select-disabled.tsx
  function SelectDisabled (line 10) | function SelectDisabled() {

FILE: apps/v4/examples/base/select-groups.tsx
  function SelectGroups (line 12) | function SelectGroups() {

FILE: apps/v4/examples/base/select-invalid.tsx
  function SelectInvalid (line 18) | function SelectInvalid() {

FILE: apps/v4/examples/base/select-rtl.tsx
  function SelectRtl (line 72) | function SelectRtl() {

FILE: apps/v4/examples/base/select-scrollable.tsx
  function SelectScrollable (line 62) | function SelectScrollable() {

FILE: apps/v4/examples/base/separator-demo.tsx
  function SeparatorDemo (line 3) | function SeparatorDemo() {

FILE: apps/v4/examples/base/separator-list.tsx
  function SeparatorList (line 3) | function SeparatorList() {

FILE: apps/v4/examples/base/separator-menu.tsx
  function SeparatorMenu (line 3) | function SeparatorMenu() {

FILE: apps/v4/examples/base/separator-rtl.tsx
  function SeparatorRtl (line 41) | function SeparatorRtl() {

FILE: apps/v4/examples/base/separator-vertical.tsx
  function SeparatorVertical (line 3) | function SeparatorVertical() {

FILE: apps/v4/examples/base/sheet-demo.tsx
  function SheetDemo (line 15) | function SheetDemo() {

FILE: apps/v4/examples/base/sheet-no-close-button.tsx
  function SheetNoCloseButton (line 11) | function SheetNoCloseButton() {

FILE: apps/v4/examples/base/sheet-rtl.tsx
  function SheetRtl (line 63) | function SheetRtl() {

FILE: apps/v4/examples/base/sheet-side.tsx
  constant SHEET_SIDES (line 13) | const SHEET_SIDES = ["top", "right", "bottom", "left"] as const
  function SheetSide (line 15) | function SheetSide() {

FILE: apps/v4/examples/base/sidebar-controlled.tsx
  function AppSidebar (line 55) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-demo.tsx
  function TeamSwitcher (line 195) | function TeamSwitcher({
  function NavMain (line 274) | function NavMain({
  function NavProjects (line 325) | function NavProjects({
  function NavUser (line 384) | function NavUser({
  function AppSidebar (line 473) | function AppSidebar({

FILE: apps/v4/examples/base/sidebar-footer.tsx
  function AppSidebar (line 23) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-group-action.tsx
  function AppSidebar (line 18) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-group-collapsible.tsx
  function AppSidebar (line 21) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-group.tsx
  function AppSidebar (line 16) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-header.tsx
  function AppSidebar (line 21) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-menu-action.tsx
  function AppSidebar (line 58) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-menu-badge.tsx
  function AppSidebar (line 56) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-menu-collapsible.tsx
  function AppSidebar (line 151) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-menu-sub.tsx
  function AppSidebar (line 145) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-menu.tsx
  function AppSidebar (line 50) | function AppSidebar() {

FILE: apps/v4/examples/base/sidebar-rsc.tsx
  function fetchProjects (line 56) | async function fetchProjects() {
  function AppSidebar (line 61) | function AppSidebar() {
  function NavProjectsSkeleton (line 80) | function NavProjectsSkeleton() {
  function NavProjects (line 92) | async function NavProjects() {

FILE: apps/v4/examples/base/sidebar-rtl.tsx
  function SidebarRtl (line 187) | function SidebarRtl() {
  function AppSidebarWithProvider (line 195) | function AppSidebarWithProvider() {
  function AppSidebar (line 212) | function AppSidebar() {
  function SidebarContentInner (line 286) | function SidebarContentInner({

FILE: apps/v4/examples/base/skeleton-avatar.tsx
  function SkeletonAvatar (line 3) | function SkeletonAvatar() {

FILE: apps/v4/examples/base/skeleton-card.tsx
  function SkeletonCard (line 4) | function SkeletonCard() {

FILE: apps/v4/examples/base/skeleton-demo.tsx
  function SkeletonDemo (line 3) | function SkeletonDemo() {

FILE: apps/v4/examples/base/skeleton-form.tsx
  function SkeletonForm (line 3) | function SkeletonForm() {

FILE: apps/v4/examples/base/skeleton-rtl.tsx
  function SkeletonRtl (line 26) | function SkeletonRtl() {

FILE: apps/v4/examples/base/skeleton-table.tsx
  function SkeletonTable (line 3) | function SkeletonTable() {

FILE: apps/v4/examples/base/skeleton-text.tsx
  function SkeletonText (line 3) | function SkeletonText() {

FILE: apps/v4/examples/base/slider-controlled.tsx
  function SliderControlled (line 7) | function SliderControlled() {

FILE: apps/v4/examples/base/slider-demo.tsx
  function SliderDemo (line 3) | function SliderDemo() {

FILE: apps/v4/examples/base/slider-disabled.tsx
  function SliderDisabled (line 3) | function SliderDisabled() {

FILE: apps/v4/examples/base/slider-multiple.tsx
  function SliderMultiple (line 3) | function SliderMultiple() {

FILE: apps/v4/examples/base/slider-range.tsx
  function SliderRange (line 3) | function SliderRange() {

FILE: apps/v4/examples/base/slider-rtl.tsx
  function SliderRtl (line 26) | function SliderRtl() {

FILE: apps/v4/examples/base/slider-vertical.tsx
  function SliderVertical (line 3) | function SliderVertical() {

FILE: apps/v4/examples/base/sonner-demo.tsx
  function SonnerDemo (line 6) | function SonnerDemo() {

FILE: apps/v4/examples/base/sonner-description.tsx
  function SonnerDescription (line 6) | function SonnerDescription() {

FILE: apps/v4/examples/base/sonner-position.tsx
  function SonnerPosition (line 6) | function SonnerPosition() {

FILE: apps/v4/examples/base/sonner-types.tsx
  function SonnerTypes (line 6) | function SonnerTypes() {

FILE: apps/v4/examples/base/spinner-badge.tsx
  function SpinnerBadge (line 4) | function SpinnerBadge() {

FILE: apps/v4/examples/base/spinner-button.tsx
  function SpinnerButton (line 4) | function SpinnerButton() {

FILE: apps/v4/examples/base/spinner-custom.tsx
  function Spinner (line 5) | function Spinner({ className, ...props }: React.ComponentProps<"svg">) {
  function SpinnerCustom (line 16) | function SpinnerCustom() {

FILE: apps/v4/examples/base/spinner-demo.tsx
  function SpinnerDemo (line 9) | function SpinnerDemo() {

FILE: apps/v4/examples/base/spinner-empty.tsx
  function SpinnerEmpty (line 12) | function SpinnerEmpty() {

FILE: apps/v4/examples/base/spinner-input-group.tsx
  function SpinnerInputGroup (line 11) | function SpinnerInputGroup() {

FILE: apps/v4/examples/base/spinner-rtl.tsx
  function SpinnerRtl (line 41) | function SpinnerRtl() {

FILE: apps/v4/examples/base/spinner-size.tsx
  function SpinnerSize (line 3) | function SpinnerSize() {

FILE: apps/v4/examples/base/switch-choice-card.tsx
  function SwitchChoiceCard (line 11) | function SwitchChoiceCard() {

FILE: apps/v4/examples/base/switch-demo.tsx
  function SwitchDemo (line 4) | function SwitchDemo() {

FILE: apps/v4/examples/base/switch-description.tsx
  function SwitchDescription (line 9) | function SwitchDescription() {

FILE: apps/v4/examples/base/switch-disabled.tsx
  function SwitchDisabled (line 4) | function SwitchDisabled() {

FILE: apps/v4/examples/base/switch-invalid.tsx
  function SwitchInvalid (line 9) | function SwitchInvalid() {

FILE: apps/v4/examples/base/switch-rtl.tsx
  function SwitchRtl (line 43) | function SwitchRtl() {

FILE: apps/v4/examples/base/switch-sizes.tsx
  function SwitchSizes (line 4) | function SwitchSizes() {

FILE: apps/v4/examples/base/table-actions.tsx
  function TableActions (line 19) | function TableActions() {

FILE: apps/v4/examples/base/table-demo.tsx
  function TableDemo (line 57) | function TableDemo() {

FILE: apps/v4/examples/base/table-footer.tsx
  function TableFooterExample (line 57) | function TableFooterExample() {

FILE: apps/v4/examples/base/table-rtl.tsx
  function TableRtl (line 119) | function TableRtl() {

FILE: apps/v4/examples/base/tabs-demo.tsx
  function TabsDemo (line 15) | function TabsDemo() {

FILE: apps/v4/examples/base/tabs-disabled.tsx
  function TabsDisabled (line 3) | function TabsDisabled() {

FILE: apps/v4/examples/base/tabs-icons.tsx
  function TabsIcons (line 4) | function TabsIcons() {

FILE: apps/v4/examples/base/tabs-line.tsx
  function TabsLine (line 3) | function TabsLine() {

FILE: apps/v4/examples/base/tabs-rtl.tsx
  function TabsRtl (line 101) | function TabsRtl() {

FILE: apps/v4/examples/base/tabs-vertical.tsx
  function TabsVertical (line 3) | function TabsVertical() {

FILE: apps/v4/examples/base/textarea-button.tsx
  function TextareaButton (line 4) | function TextareaButton() {

FILE: apps/v4/examples/base/textarea-demo.tsx
  function TextareaDemo (line 3) | function TextareaDemo() {

FILE: apps/v4/examples/base/textarea-disabled.tsx
  function TextareaDisabled (line 4) | function TextareaDisabled() {

FILE: apps/v4/examples/base/textarea-field.tsx
  function TextareaField (line 4) | function TextareaField() {

FILE: apps/v4/examples/base/textarea-invalid.tsx
  function TextareaInvalid (line 4) | function TextareaInvalid() {

FILE: apps/v4/examples/base/textarea-rtl.tsx
  function TextareaRtl (line 43) | function TextareaRtl() {

FILE: apps/v4/examples/base/toggle-demo.tsx
  function ToggleDemo (line 4) | function ToggleDemo() {

FILE: apps/v4/examples/base/toggle-disabled.tsx
  function ToggleDisabled (line 3) | function ToggleDisabled() {

FILE: apps/v4/examples/base/toggle-group-demo.tsx
  function ToggleGroupDemo (line 4) | function ToggleGroupDemo() {

FILE: apps/v4/examples/base/toggle-group-disabled.tsx
  function ToggleGroupDisabled (line 4) | function ToggleGroupDisabled() {

FILE: apps/v4/examples/base/toggle-group-font-weight-selector.tsx
  function ToggleGroupFontWeightSelector (line 7) | function ToggleGroupFontWeightSelector() {

FILE: apps/v4/examples/base/toggle-group-outline.tsx
  function ToggleGroupOutline (line 3) | function ToggleGroupOutline() {

FILE: apps/v4/examples/base/toggle-group-rtl.tsx
  function ToggleGroupRtl (line 41) | function ToggleGroupRtl() {

FILE: apps/v4/examples/base/toggle-group-sizes.tsx
  function ToggleGroupSizes (line 3) | function ToggleGroupSizes() {

FILE: apps/v4/examples/base/toggle-group-spacing.tsx
  function ToggleGroupSpacing (line 3) | function ToggleGroupSpacing() {

FILE: apps/v4/examples/base/toggle-group-vertical.tsx
  function ToggleGroupVertical (line 4) | function ToggleGroupVertical() {

FILE: apps/v4/examples/base/toggle-outline.tsx
  function ToggleOutline (line 4) | function ToggleOutline() {

FILE: apps/v4/examples/base/toggle-rtl.tsx
  function ToggleRtl (line 33) | function ToggleRtl() {

FILE: apps/v4/examples/base/toggle-sizes.tsx
  function ToggleSizes (line 3) | function ToggleSizes() {

FILE: apps/v4/examples/base/toggle-text.tsx
  function ToggleText (line 4) | function ToggleText() {

FILE: apps/v4/examples/base/tooltip-demo.tsx
  function TooltipDemo (line 8) | function TooltipDemo() {

FILE: apps/v4/examples/base/tooltip-disabled.tsx
  function TooltipDisabled (line 8) | function TooltipDisabled() {

FILE: apps/v4/examples/base/tooltip-keyboard.tsx
  function TooltipKeyboard (line 10) | function TooltipKeyboard() {

FILE: apps/v4/examples/base/tooltip-rtl.tsx
  function TooltipRtl (line 57) | function TooltipRtl() {

FILE: apps/v4/examples/base/tooltip-sides.tsx
  function TooltipSides (line 8) | function TooltipSides() {

FILE: apps/v4/examples/base/typography-blockquote.tsx
  function TypographyBlockquote (line 1) | function TypographyBlockquote() {

FILE: apps/v4/examples/base/typography-demo.tsx
  function TypographyDemo (line 1) | function TypographyDemo() {

FILE: apps/v4/examples/base/typography-h1.tsx
  function TypographyH1 (line 1) | function TypographyH1() {

FILE: apps/v4/examples/base/typography-h2.tsx
  function TypographyH2 (line 1) | function TypographyH2() {

FILE: apps/v4/examples/base/typography-h3.tsx
  function TypographyH3 (line 1) | function TypographyH3() {

FILE: apps/v4/examples/base/typography-h4.tsx
  function TypographyH4 (line 1) | function TypographyH4() {

FILE: apps/v4/examples/base/typography-inline-code.tsx
  function TypographyInlineCode (line 1) | function TypographyInlineCode() {

FILE: apps/v4/examples/base/typography-large.tsx
  function TypographyLarge (line 1) | function TypographyLarge() {

FILE: apps/v4/examples/base/typography-lead.tsx
  function TypographyLead (line 1) | function TypographyLead() {

FILE: apps/v4/examples/base/typography-list.tsx
  function TypographyList (line 1) | function TypographyList() {

FILE: apps/v4/examples/base/typography-muted.tsx
  function TypographyMuted (line 1) | function TypographyMuted() {

FILE: apps/v4/examples/base/typography-p.tsx
  function TypographyP (line 1) | function TypographyP() {

FILE: apps/v4/examples/base/typography-rtl.tsx
  function TypographyRtl (line 139) | function TypographyRtl() {

FILE: apps/v4/examples/base/typography-small.tsx
  function TypographySmall (line 1) | function TypographySmall() {

FILE: apps/v4/examples/base/typography-table.tsx
  function TypographyTable (line 1) | function TypographyTable() {

FILE: apps/v4/examples/base/ui-rtl/accordion.tsx
  function Accordion (line 7) | function Accordion({ className, ...props }: AccordionPrimitive.Root.Prop...
  function AccordionItem (line 17) | function AccordionItem({ className, ...props }: AccordionPrimitive.Item....
  function AccordionTrigger (line 27) | function AccordionTrigger({
  function AccordionContent (line 56) | function AccordionContent({

FILE: apps/v4/examples/base/ui-rtl/alert-dialog.tsx
  function AlertDialog (line 8) | function AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {
  function AlertDialogTrigger (line 12) | function AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.P...
  function AlertDialogPortal (line 18) | function AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Pro...
  function AlertDialogOverlay (line 24) | function AlertDialogOverlay({
  function AlertDialogContent (line 40) | function AlertDialogContent({
  function AlertDialogHeader (line 63) | function AlertDialogHeader({
  function AlertDialogFooter (line 79) | function AlertDialogFooter({
  function AlertDialogMedia (line 95) | function AlertDialogMedia({
  function AlertDialogTitle (line 111) | function AlertDialogTitle({
  function AlertDialogDescription (line 127) | function AlertDialogDescription({
  function AlertDialogAction (line 143) | function AlertDialogAction({
  function AlertDialogCancel (line 156) | function AlertDialogCancel({

FILE: apps/v4/examples/base/ui-rtl/alert.tsx
  function Alert (line 21) | function Alert({
  function AlertTitle (line 36) | function AlertTitle({ className, ...props }: React.ComponentProps<"div">) {
  function AlertDescription (line 49) | function AlertDescription({
  function AlertAction (line 65) | function AlertAction({ className, ...props }: React.ComponentProps<"div"...

FILE: apps/v4/examples/base/ui-rtl/aspect-ratio.tsx
  function AspectRatio (line 3) | function AspectRatio({

FILE: apps/v4/examples/base/ui-rtl/avatar.tsx
  function Avatar (line 7) | function Avatar({
  function AvatarImage (line 27) | function AvatarImage({ className, ...props }: AvatarPrimitive.Image.Prop...
  function AvatarFallback (line 40) | function AvatarFallback({
  function AvatarBadge (line 56) | function AvatarBadge({ className, ...props }: React.ComponentProps<"span...
  function AvatarGroup (line 72) | function AvatarGroup({ className, ...props }: React.ComponentProps<"div"...
  function AvatarGroupCount (line 85) | function AvatarGroupCount({

FILE: apps/v4/examples/base/ui-rtl/badge.tsx
  function Badge (line 29) | function Badge({

FILE: apps/v4/examples/base/ui-rtl/breadcrumb.tsx
  function Breadcrumb (line 7) | function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
  function BreadcrumbList (line 18) | function BreadcrumbList({ className, ...props }: React.ComponentProps<"o...
  function BreadcrumbItem (line 31) | function BreadcrumbItem({ className, ...props }: React.ComponentProps<"l...
  function BreadcrumbLink (line 41) | function BreadcrumbLink({
  function BreadcrumbPage (line 61) | function BreadcrumbPage({ className, ...props }: React.ComponentProps<"s...
  function BreadcrumbSeparator (line 74) | function BreadcrumbSeparator({
  function BreadcrumbEllipsis (line 92) | function BreadcrumbEllipsis({

FILE: apps/v4/examples/base/ui-rtl/button-group.tsx
  function ButtonGroup (line 24) | function ButtonGroup({
  function ButtonGroupText (line 40) | function ButtonGroupText({
  function ButtonGroupSeparator (line 63) | function ButtonGroupSeparator({

FILE: apps/v4/examples/base/ui-rtl/button.tsx
  function Button (line 44) | function Button({

FILE: apps/v4/examples/base/ui-rtl/calendar.tsx
  function Calendar (line 18) | function Calendar({
  function CalendarDayButton (line 192) | function CalendarDayButton({

FILE: apps/v4/examples/base/ui-rtl/card.tsx
  function Card (line 4) | function Card({
  function CardHeader (line 22) | function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
  function CardTitle (line 35) | function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
  function CardDescription (line 48) | function CardDescription({ className, ...props }: React.ComponentProps<"...
  function CardAction (line 58) | function CardAction({ className, ...props }: React.ComponentProps<"div">) {
  function CardContent (line 71) | function CardContent({ className, ...props }: React.ComponentProps<"div"...
  function CardFooter (line 81) | function CardFooter({ className, ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/ui-rtl/carousel.tsx
  type CarouselApi (line 11) | type CarouselApi = UseEmblaCarouselType[1]
  type UseCarouselParameters (line 12) | type UseCarouselParameters = Parameters<typeof useEmblaCarousel>
  type CarouselOptions (line 13) | type CarouselOptions = UseCarouselParameters[0]
  type CarouselPlugin (line 14) | type CarouselPlugin = UseCarouselParameters[1]
  type CarouselProps (line 16) | type CarouselProps = {
  type CarouselContextProps (line 23) | type CarouselContextProps = {
  function useCarousel (line 34) | function useCarousel() {
  function Carousel (line 44) | function Carousel({
  function CarouselContent (line 134) | function CarouselContent({ className, ...props }: React.ComponentProps<"...
  function CarouselItem (line 155) | function CarouselItem({ className, ...props }: React.ComponentProps<"div...
  function CarouselPrevious (line 173) | function CarouselPrevious({
  function CarouselNext (line 203) | function CarouselNext({

FILE: apps/v4/examples/base/ui-rtl/chart.tsx
  constant THEMES (line 8) | const THEMES = { light: "", dark: ".dark" } as const
  type ChartConfig (line 10) | type ChartConfig = {
  type ChartContextProps (line 20) | type ChartContextProps = {
  function useChart (line 26) | function useChart() {
  function ChartContainer (line 36) | function ChartContainer({
  function ChartTooltipContent (line 106) | function ChartTooltipContent({
  function ChartLegendContent (line 254) | function ChartLegendContent({
  function getPayloadConfigFromPayload (line 310) | function getPayloadConfigFromPayload(

FILE: apps/v4/examples/base/ui-rtl/checkbox.tsx
  function Checkbox (line 7) | function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {

FILE: apps/v4/examples/base/ui-rtl/collapsible.tsx
  function Collapsible (line 5) | function Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {
  function CollapsibleTrigger (line 9) | function CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.P...
  function CollapsibleContent (line 15) | function CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Pro...

FILE: apps/v4/examples/base/ui-rtl/combobox.tsx
  function ComboboxValue (line 17) | function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {
  function ComboboxTrigger (line 21) | function ComboboxTrigger({
  function ComboboxClear (line 38) | function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear....
  function ComboboxInput (line 51) | function ComboboxInput({
  function ComboboxContent (line 86) | function ComboboxContent({
  function ComboboxList (line 123) | function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Pr...
  function ComboboxItem (line 136) | function ComboboxItem({
  function ComboboxGroup (line 162) | function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group....
  function ComboboxLabel (line 172) | function ComboboxLabel({
  function ComboboxCollection (line 185) | function ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.P...
  function ComboboxEmpty (line 191) | function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty....
  function ComboboxSeparator (line 204) | function ComboboxSeparator({
  function ComboboxChips (line 217) | function ComboboxChips({
  function ComboboxChip (line 234) | function ComboboxChip({
  function ComboboxChipsInput (line 265) | function ComboboxChipsInput({
  function useComboboxAnchor (line 278) | function useComboboxAnchor() {

FILE: apps/v4/examples/base/ui-rtl/command.tsx
  function Command (line 16) | function Command({
  function CommandDialog (line 32) | function CommandDialog({
  function CommandInput (line 65) | function CommandInput({
  function CommandList (line 88) | function CommandList({
  function CommandEmpty (line 104) | function CommandEmpty({
  function CommandGroup (line 117) | function CommandGroup({
  function CommandSeparator (line 133) | function CommandSeparator({
  function CommandItem (line 146) | function CommandItem({
  function CommandShortcut (line 166) | function CommandShortcut({

FILE: apps/v4/examples/base/ui-rtl/context-menu.tsx
  function ContextMenu (line 8) | function ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {
  function ContextMenuPortal (line 12) | function ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Pro...
  function ContextMenuTrigger (line 18) | function ContextMenuTrigger({
  function ContextMenuContent (line 31) | function ContextMenuContent({
  function ContextMenuGroup (line 65) | function ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props) {
  function ContextMenuLabel (line 71) | function ContextMenuLabel({
  function ContextMenuItem (line 91) | function ContextMenuItem({
  function ContextMenuSub (line 114) | function ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.P...
  function ContextMenuSubTrigger (line 120) | function ContextMenuSubTrigger({
  function ContextMenuSubContent (line 144) | function ContextMenuSubContent({
  function ContextMenuCheckboxItem (line 157) | function ContextMenuCheckboxItem({
  function ContextMenuRadioGroup (line 187) | function ContextMenuRadioGroup({
  function ContextMenuRadioItem (line 198) | function ContextMenuRadioItem({
  function ContextMenuSeparator (line 226) | function ContextMenuSeparator({
  function ContextMenuShortcut (line 239) | function ContextMenuShortcut({

FILE: apps/v4/examples/base/ui-rtl/dialog.tsx
  function Dialog (line 9) | function Dialog({ ...props }: DialogPrimitive.Root.Props) {
  function DialogTrigger (line 13) | function DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props) {
  function DialogPortal (line 17) | function DialogPortal({ ...props }: DialogPrimitive.Portal.Props) {
  function DialogClose (line 21) | function DialogClose({ ...props }: DialogPrimitive.Close.Props) {
  function DialogOverlay (line 25) | function DialogOverlay({
  function DialogContent (line 41) | function DialogContent({
  function DialogHeader (line 81) | function DialogHeader({ className, ...props }: React.ComponentProps<"div...
  function DialogFooter (line 91) | function DialogFooter({
  function DialogTitle (line 118) | function DialogTitle({ className, ...props }: DialogPrimitive.Title.Prop...
  function DialogDescription (line 131) | function DialogDescription({

FILE: apps/v4/examples/base/ui-rtl/drawer.tsx
  function Drawer (line 7) | function Drawer({
  function DrawerTrigger (line 13) | function DrawerTrigger({
  function DrawerPortal (line 19) | function DrawerPortal({
  function DrawerClose (line 25) | function DrawerClose({
  function DrawerOverlay (line 31) | function DrawerOverlay({
  function DrawerContent (line 47) | function DrawerContent({
  function DrawerHeader (line 70) | function DrawerHeader({ className, ...props }: React.ComponentProps<"div...
  function DrawerFooter (line 83) | function DrawerFooter({ className, ...props }: React.ComponentProps<"div...
  function DrawerTitle (line 93) | function DrawerTitle({
  function DrawerDescription (line 109) | function DrawerDescription({

FILE: apps/v4/examples/base/ui-rtl/dropdown-menu.tsx
  function DropdownMenu (line 8) | function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {
  function DropdownMenuPortal (line 12) | function DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {
  function DropdownMenuTrigger (line 16) | function DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {
  function DropdownMenuContent (line 20) | function DropdownMenuContent({
  function DropdownMenuGroup (line 54) | function DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {
  function DropdownMenuLabel (line 58) | function DropdownMenuLabel({
  function DropdownMenuItem (line 78) | function DropdownMenuItem({
  function DropdownMenuSub (line 101) | function DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {
  function DropdownMenuSubTrigger (line 105) | function DropdownMenuSubTrigger({
  function DropdownMenuSubContent (line 129) | function DropdownMenuSubContent({
  function DropdownMenuCheckboxItem (line 153) | function DropdownMenuCheckboxItem({
  function DropdownMenuRadioGroup (line 186) | function DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.P...
  function DropdownMenuRadioItem (line 195) | function DropdownMenuRadioItem({
  function DropdownMenuSeparator (line 226) | function DropdownMenuSeparator({
  function DropdownMenuShortcut (line 239) | function DropdownMenuShortcut({

FILE: apps/v4/examples/base/ui-rtl/empty.tsx
  function Empty (line 4) | function Empty({ className, ...props }: React.ComponentProps<"div">) {
  function EmptyHeader (line 17) | function EmptyHeader({ className, ...props }: React.ComponentProps<"div"...
  function EmptyMedia (line 42) | function EmptyMedia({
  function EmptyTitle (line 57) | function EmptyTitle({ className, ...props }: React.ComponentProps<"div">) {
  function EmptyDescription (line 70) | function EmptyDescription({ className, ...props }: React.ComponentProps<...
  function EmptyContent (line 83) | function EmptyContent({ className, ...props }: React.ComponentProps<"div...

FILE: apps/v4/examples/base/ui-rtl/field.tsx
  function FieldSet (line 9) | function FieldSet({ className, ...props }: React.ComponentProps<"fieldse...
  function FieldLegend (line 22) | function FieldLegend({
  function FieldGroup (line 40) | function FieldGroup({ className, ...props }: React.ComponentProps<"div">) {
  function Field (line 71) | function Field({
  function FieldContent (line 87) | function FieldContent({ className, ...props }: React.ComponentProps<"div...
  function FieldLabel (line 100) | function FieldLabel({
  function FieldTitle (line 117) | function FieldTitle({ className, ...props }: React.ComponentProps<"div">) {
  function FieldDescription (line 130) | function FieldDescription({ className, ...props }: React.ComponentProps<...
  function FieldSeparator (line 145) | function FieldSeparator({
  function FieldError (line 175) | function FieldError({

FILE: apps/v4/examples/base/ui-rtl/hover-card.tsx
  function HoverCard (line 6) | function HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {
  function HoverCardTrigger (line 10) | function HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Pro...
  function HoverCardContent (line 16) | function HoverCardContent({

FILE: apps/v4/examples/base/ui-rtl/input-group.tsx
  function InputGroup (line 10) | function InputGroup({ className, ...props }: React.ComponentProps<"div">) {
  function InputGroupAddon (line 45) | function InputGroupAddon({
  function InputGroupButton (line 85) | function InputGroupButton({
  function InputGroupText (line 106) | function InputGroupText({ className, ...props }: React.ComponentProps<"s...
  function InputGroupInput (line 118) | function InputGroupInput({
  function InputGroupTextarea (line 134) | function InputGroupTextarea({

FILE: apps/v4/examples/base/ui-rtl/input-otp.tsx
  function InputOTP (line 8) | function InputOTP({
  function InputOTPGroup (line 29) | function InputOTPGroup({ className, ...props }: React.ComponentProps<"di...
  function InputOTPSlot (line 42) | function InputOTPSlot({
  function InputOTPSeparator (line 72) | function InputOTPSeparator({ ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/ui-rtl/input.tsx
  function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<"inpu...

FILE: apps/v4/examples/base/ui-rtl/item.tsx
  function ItemGroup (line 8) | function ItemGroup({ className, ...props }: React.ComponentProps<"div">) {
  function ItemSeparator (line 22) | function ItemSeparator({
  function Item (line 58) | function Item({
  function ItemMedia (line 99) | function ItemMedia({
  function ItemContent (line 114) | function ItemContent({ className, ...props }: React.ComponentProps<"div"...
  function ItemTitle (line 127) | function ItemTitle({ className, ...props }: React.ComponentProps<"div">) {
  function ItemDescription (line 140) | function ItemDescription({ className, ...props }: React.ComponentProps<"...
  function ItemActions (line 153) | function ItemActions({ className, ...props }: React.ComponentProps<"div"...
  function ItemHeader (line 163) | function ItemHeader({ className, ...props }: React.ComponentProps<"div">) {
  function ItemFooter (line 176) | function ItemFooter({ className, ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/ui-rtl/kbd.tsx
  function Kbd (line 3) | function Kbd({ className, ...props }: React.ComponentProps<"kbd">) {
  function KbdGroup (line 16) | function KbdGroup({ className, ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/ui-rtl/label.tsx
  function Label (line 6) | function Label({ className, ...props }: React.ComponentProps<"label">) {

FILE: apps/v4/examples/base/ui-rtl/menubar.tsx
  function Menubar (line 24) | function Menubar({ className, ...props }: MenubarPrimitive.Props) {
  function MenubarMenu (line 37) | function MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownM...
  function MenubarGroup (line 41) | function MenubarGroup({
  function MenubarPortal (line 47) | function MenubarPortal({
  function MenubarTrigger (line 53) | function MenubarTrigger({
  function MenubarContent (line 69) | function MenubarContent({
  function MenubarItem (line 91) | function MenubarItem({
  function MenubarCheckboxItem (line 111) | function MenubarCheckboxItem({
  function MenubarRadioGroup (line 141) | function MenubarRadioGroup({
  function MenubarRadioItem (line 147) | function MenubarRadioItem({
  function MenubarLabel (line 175) | function MenubarLabel({
  function MenubarSeparator (line 195) | function MenubarSeparator({
  function MenubarShortcut (line 208) | function MenubarShortcut({
  function MenubarSub (line 224) | function MenubarSub({
  function MenubarSubTrigger (line 230) | function MenubarSubTrigger({
  function MenubarSubContent (line 250) | function MenubarSubContent({

FILE: apps/v4/examples/base/ui-rtl/native-select.tsx
  type NativeSelectProps (line 5) | type NativeSelectProps = Omit<React.ComponentProps<"select">, "size"> & {
  function NativeSelect (line 9) | function NativeSelect({
  function NativeSelectOption (line 38) | function NativeSelectOption({ ...props }: React.ComponentProps<"option">) {
  function NativeSelectOptGroup (line 42) | function NativeSelectOptGroup({

FILE: apps/v4/examples/base/ui-rtl/navigation-menu.tsx
  function NavigationMenu (line 6) | function NavigationMenu({
  function NavigationMenuList (line 28) | function NavigationMenuList({
  function NavigationMenuItem (line 44) | function NavigationMenuItem({
  function NavigationMenuTrigger (line 61) | function NavigationMenuTrigger({
  function NavigationMenuContent (line 81) | function NavigationMenuContent({
  function NavigationMenuPositioner (line 97) | function NavigationMenuPositioner({
  function NavigationMenuLink (line 126) | function NavigationMenuLink({
  function NavigationMenuIndicator (line 142) | function NavigationMenuIndicator({

FILE: apps/v4/examples/base/ui-rtl/pagination.tsx
  function Pagination (line 10) | function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
  function PaginationContent (line 22) | function PaginationContent({
  function PaginationItem (line 35) | function PaginationItem({ ...props }: React.ComponentProps<"li">) {
  type PaginationLinkProps (line 39) | type PaginationLinkProps = {
  function PaginationLink (line 44) | function PaginationLink({
  function PaginationPrevious (line 68) | function PaginationPrevious({
  function PaginationNext (line 86) | function PaginationNext({
  function PaginationEllipsis (line 104) | function PaginationEllipsis({

FILE: apps/v4/examples/base/ui-rtl/popover.tsx
  function Popover (line 7) | function Popover({ ...props }: PopoverPrimitive.Root.Props) {
  function PopoverTrigger (line 11) | function PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props) {
  function PopoverContent (line 15) | function PopoverContent({
  function PopoverHeader (line 49) | function PopoverHeader({ className, ...props }: React.ComponentProps<"di...
  function PopoverTitle (line 59) | function PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Pr...
  function PopoverDescription (line 69) | function PopoverDescription({

FILE: apps/v4/examples/base/ui-rtl/progress.tsx
  function Progress (line 6) | function Progress({
  function ProgressTrack (line 27) | function ProgressTrack({ className, ...props }: ProgressPrimitive.Track....
  function ProgressIndicator (line 40) | function ProgressIndicator({
  function ProgressLabel (line 53) | function ProgressLabel({ className, ...props }: ProgressPrimitive.Label....
  function ProgressValue (line 63) | function ProgressValue({ className, ...props }: ProgressPrimitive.Value....

FILE: apps/v4/examples/base/ui-rtl/radio-group.tsx
  function RadioGroup (line 7) | function RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {
  function RadioGroupItem (line 17) | function RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Pro...

FILE: apps/v4/examples/base/ui-rtl/resizable.tsx
  function ResizablePanelGroup (line 6) | function ResizablePanelGroup({
  function ResizablePanel (line 22) | function ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) {
  function ResizableHandle (line 26) | function ResizableHandle({

FILE: apps/v4/examples/base/ui-rtl/scroll-area.tsx
  function ScrollArea (line 7) | function ScrollArea({
  function ScrollBar (line 30) | function ScrollBar({

FILE: apps/v4/examples/base/ui-rtl/select.tsx
  function SelectGroup (line 10) | function SelectGroup({ className, ...props }: SelectPrimitive.Group.Prop...
  function SelectValue (line 20) | function SelectValue({ className, ...props }: SelectPrimitive.Value.Prop...
  function SelectTrigger (line 30) | function SelectTrigger({
  function SelectContent (line 58) | function SelectContent({
  function SelectLabel (line 100) | function SelectLabel({
  function SelectItem (line 113) | function SelectItem({
  function SelectSeparator (line 141) | function SelectSeparator({
  function SelectScrollUpButton (line 154) | function SelectScrollUpButton({
  function SelectScrollDownButton (line 172) | function SelectScrollDownButton({

FILE: apps/v4/examples/base/ui-rtl/separator.tsx
  function Separator (line 6) | function Separator({

FILE: apps/v4/examples/base/ui-rtl/sheet.tsx
  function Sheet (line 9) | function Sheet({ ...props }: SheetPrimitive.Root.Props) {
  function SheetTrigger (line 13) | function SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {
  function SheetClose (line 17) | function SheetClose({ ...props }: SheetPrimitive.Close.Props) {
  function SheetPortal (line 21) | function SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {
  function SheetOverlay (line 25) | function SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.P...
  function SheetContent (line 38) | function SheetContent({
  function SheetHeader (line 81) | function SheetHeader({ className, ...props }: React.ComponentProps<"div"...
  function SheetFooter (line 91) | function SheetFooter({ className, ...props }: React.ComponentProps<"div"...
  function SheetTitle (line 101) | function SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {
  function SheetDescription (line 114) | function SheetDescription({

FILE: apps/v4/examples/base/ui-rtl/sidebar.tsx
  constant SIDEBAR_COOKIE_NAME (line 27) | const SIDEBAR_COOKIE_NAME = "sidebar_state"
  constant SIDEBAR_COOKIE_MAX_AGE (line 28) | const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7
  constant SIDEBAR_WIDTH (line 29) | const SIDEBAR_WIDTH = "16rem"
  constant SIDEBAR_WIDTH_MOBILE (line 30) | const SIDEBAR_WIDTH_MOBILE = "18rem"
  constant SIDEBAR_WIDTH_ICON (line 31) | const SIDEBAR_WIDTH_ICON = "3rem"
  constant SIDEBAR_KEYBOARD_SHORTCUT (line 32) | const SIDEBAR_KEYBOARD_SHORTCUT = "b"
  type SidebarContextProps (line 34) | type SidebarContextProps = {
  function useSidebar (line 46) | function useSidebar() {
  function SidebarProvider (line 55) | function SidebarProvider({
  function Sidebar (line 151) | function Sidebar({
  function SidebarTrigger (line 253) | function SidebarTrigger({
  function SidebarRail (line 279) | function SidebarRail({ className, ...props }: React.ComponentProps<"butt...
  function SidebarInset (line 304) | function SidebarInset({ className, ...props }: React.ComponentProps<"mai...
  function SidebarInput (line 317) | function SidebarInput({
  function SidebarHeader (line 331) | function SidebarHeader({ className, ...props }: React.ComponentProps<"di...
  function SidebarFooter (line 342) | function SidebarFooter({ className, ...props }: React.ComponentProps<"di...
  function SidebarSeparator (line 353) | function SidebarSeparator({
  function SidebarContent (line 367) | function SidebarContent({ className, ...props }: React.ComponentProps<"d...
  function SidebarGroup (line 381) | function SidebarGroup({ className, ...props }: React.ComponentProps<"div...
  function SidebarGroupLabel (line 392) | function SidebarGroupLabel({
  function SidebarGroupAction (line 416) | function SidebarGroupAction({
  function SidebarGroupContent (line 440) | function SidebarGroupContent({
  function SidebarMenu (line 454) | function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">) {
  function SidebarMenuItem (line 465) | function SidebarMenuItem({ className, ...props }: React.ComponentProps<"...
  function SidebarMenuButton (line 498) | function SidebarMenuButton({
  function SidebarMenuAction (line 552) | function SidebarMenuAction({
  function SidebarMenuBadge (line 582) | function SidebarMenuBadge({
  function SidebarMenuSkeleton (line 599) | function SidebarMenuSkeleton({
  function SidebarMenuSub (line 637) | function SidebarMenuSub({ className, ...props }: React.ComponentProps<"u...
  function SidebarMenuSubItem (line 651) | function SidebarMenuSubItem({
  function SidebarMenuSubButton (line 665) | function SidebarMenuSubButton({

FILE: apps/v4/examples/base/ui-rtl/skeleton.tsx
  function Skeleton (line 3) | function Skeleton({ className, ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/ui-rtl/slider.tsx
  function Slider (line 7) | function Slider({

FILE: apps/v4/examples/base/ui-rtl/spinner.tsx
  function Spinner (line 4) | function Spinner({ className, ...props }: React.ComponentProps<"svg">) {

FILE: apps/v4/examples/base/ui-rtl/switch.tsx
  function Switch (line 6) | function Switch({

FILE: apps/v4/examples/base/ui-rtl/table.tsx
  function Table (line 6) | function Table({ className, ...props }: React.ComponentProps<"table">) {
  function TableHeader (line 21) | function TableHeader({ className, ...props }: React.ComponentProps<"thea...
  function TableBody (line 31) | function TableBody({ className, ...props }: React.ComponentProps<"tbody"...
  function TableFooter (line 41) | function TableFooter({ className, ...props }: React.ComponentProps<"tfoo...
  function TableRow (line 54) | function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
  function TableHead (line 67) | function TableHead({ className, ...props }: React.ComponentProps<"th">) {
  function TableCell (line 80) | function TableCell({ className, ...props }: React.ComponentProps<"td">) {
  function TableCaption (line 93) | function TableCaption({

FILE: apps/v4/examples/base/ui-rtl/tabs.tsx
  function Tabs (line 7) | function Tabs({
  function TabsList (line 40) | function TabsList({
  function TabsTrigger (line 55) | function TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {
  function TabsContent (line 71) | function TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {

FILE: apps/v4/examples/base/ui-rtl/textarea.tsx
  function Textarea (line 4) | function Textarea({ className, ...props }: React.ComponentProps<"textare...

FILE: apps/v4/examples/base/ui-rtl/toggle-group.tsx
  function ToggleGroup (line 22) | function ToggleGroup({
  function ToggleGroupItem (line 58) | function ToggleGroupItem({

FILE: apps/v4/examples/base/ui-rtl/toggle.tsx
  function Toggle (line 28) | function Toggle({

FILE: apps/v4/examples/base/ui-rtl/tooltip.tsx
  function TooltipProvider (line 6) | function TooltipProvider({
  function Tooltip (line 19) | function Tooltip({ ...props }: TooltipPrimitive.Root.Props) {
  function TooltipTrigger (line 23) | function TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {
  function TooltipContent (line 27) | function TooltipContent({

FILE: apps/v4/examples/base/ui/accordion.tsx
  function Accordion (line 7) | function Accordion({ className, ...props }: AccordionPrimitive.Root.Prop...
  function AccordionItem (line 17) | function AccordionItem({ className, ...props }: AccordionPrimitive.Item....
  function AccordionTrigger (line 27) | function AccordionTrigger({
  function AccordionContent (line 56) | function AccordionContent({

FILE: apps/v4/examples/base/ui/alert-dialog.tsx
  function AlertDialog (line 8) | function AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {
  function AlertDialogTrigger (line 12) | function AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.P...
  function AlertDialogPortal (line 18) | function AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Pro...
  function AlertDialogOverlay (line 24) | function AlertDialogOverlay({
  function AlertDialogContent (line 40) | function AlertDialogContent({
  function AlertDialogHeader (line 63) | function AlertDialogHeader({
  function AlertDialogFooter (line 79) | function AlertDialogFooter({
  function AlertDialogMedia (line 95) | function AlertDialogMedia({
  function AlertDialogTitle (line 111) | function AlertDialogTitle({
  function AlertDialogDescription (line 127) | function AlertDialogDescription({
  function AlertDialogAction (line 143) | function AlertDialogAction({
  function AlertDialogCancel (line 156) | function AlertDialogCancel({

FILE: apps/v4/examples/base/ui/alert.tsx
  function Alert (line 21) | function Alert({
  function AlertTitle (line 36) | function AlertTitle({ className, ...props }: React.ComponentProps<"div">) {
  function AlertDescription (line 49) | function AlertDescription({
  function AlertAction (line 65) | function AlertAction({ className, ...props }: React.ComponentProps<"div"...

FILE: apps/v4/examples/base/ui/aspect-ratio.tsx
  function AspectRatio (line 3) | function AspectRatio({

FILE: apps/v4/examples/base/ui/avatar.tsx
  function Avatar (line 7) | function Avatar({
  function AvatarImage (line 27) | function AvatarImage({ className, ...props }: AvatarPrimitive.Image.Prop...
  function AvatarFallback (line 40) | function AvatarFallback({
  function AvatarBadge (line 56) | function AvatarBadge({ className, ...props }: React.ComponentProps<"span...
  function AvatarGroup (line 72) | function AvatarGroup({ className, ...props }: React.ComponentProps<"div"...
  function AvatarGroupCount (line 85) | function AvatarGroupCount({

FILE: apps/v4/examples/base/ui/badge.tsx
  function Badge (line 29) | function Badge({

FILE: apps/v4/examples/base/ui/breadcrumb.tsx
  function Breadcrumb (line 7) | function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
  function BreadcrumbList (line 18) | function BreadcrumbList({ className, ...props }: React.ComponentProps<"o...
  function BreadcrumbItem (line 31) | function BreadcrumbItem({ className, ...props }: React.ComponentProps<"l...
  function BreadcrumbLink (line 41) | function BreadcrumbLink({
  function BreadcrumbPage (line 61) | function BreadcrumbPage({ className, ...props }: React.ComponentProps<"s...
  function BreadcrumbSeparator (line 74) | function BreadcrumbSeparator({
  function BreadcrumbEllipsis (line 92) | function BreadcrumbEllipsis({

FILE: apps/v4/examples/base/ui/button-group.tsx
  function ButtonGroup (line 24) | function ButtonGroup({
  function ButtonGroupText (line 40) | function ButtonGroupText({
  function ButtonGroupSeparator (line 63) | function ButtonGroupSeparator({

FILE: apps/v4/examples/base/ui/button.tsx
  function Button (line 44) | function Button({

FILE: apps/v4/examples/base/ui/calendar.tsx
  function Calendar (line 18) | function Calendar({
  function CalendarDayButton (line 192) | function CalendarDayButton({

FILE: apps/v4/examples/base/ui/card.tsx
  function Card (line 4) | function Card({
  function CardHeader (line 22) | function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
  function CardTitle (line 35) | function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
  function CardDescription (line 48) | function CardDescription({ className, ...props }: React.ComponentProps<"...
  function CardAction (line 58) | function CardAction({ className, ...props }: React.ComponentProps<"div">) {
  function CardContent (line 71) | function CardContent({ className, ...props }: React.ComponentProps<"div"...
  function CardFooter (line 81) | function CardFooter({ className, ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/ui/carousel.tsx
  type CarouselApi (line 11) | type CarouselApi = UseEmblaCarouselType[1]
  type UseCarouselParameters (line 12) | type UseCarouselParameters = Parameters<typeof useEmblaCarousel>
  type CarouselOptions (line 13) | type CarouselOptions = UseCarouselParameters[0]
  type CarouselPlugin (line 14) | type CarouselPlugin = UseCarouselParameters[1]
  type CarouselProps (line 16) | type CarouselProps = {
  type CarouselContextProps (line 23) | type CarouselContextProps = {
  function useCarousel (line 34) | function useCarousel() {
  function Carousel (line 44) | function Carousel({
  function CarouselContent (line 134) | function CarouselContent({ className, ...props }: React.ComponentProps<"...
  function CarouselItem (line 155) | function CarouselItem({ className, ...props }: React.ComponentProps<"div...
  function CarouselPrevious (line 173) | function CarouselPrevious({
  function CarouselNext (line 203) | function CarouselNext({

FILE: apps/v4/examples/base/ui/chart.tsx
  constant THEMES (line 8) | const THEMES = { light: "", dark: ".dark" } as const
  type ChartConfig (line 10) | type ChartConfig = {
  type ChartContextProps (line 20) | type ChartContextProps = {
  function useChart (line 26) | function useChart() {
  function ChartContainer (line 36) | function ChartContainer({
  function ChartTooltipContent (line 106) | function ChartTooltipContent({
  function ChartLegendContent (line 254) | function ChartLegendContent({
  function getPayloadConfigFromPayload (line 310) | function getPayloadConfigFromPayload(

FILE: apps/v4/examples/base/ui/checkbox.tsx
  function Checkbox (line 7) | function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {

FILE: apps/v4/examples/base/ui/collapsible.tsx
  function Collapsible (line 5) | function Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {
  function CollapsibleTrigger (line 9) | function CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.P...
  function CollapsibleContent (line 15) | function CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Pro...

FILE: apps/v4/examples/base/ui/combobox.tsx
  function ComboboxValue (line 17) | function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {
  function ComboboxTrigger (line 21) | function ComboboxTrigger({
  function ComboboxClear (line 38) | function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear....
  function ComboboxInput (line 51) | function ComboboxInput({
  function ComboboxContent (line 86) | function ComboboxContent({
  function ComboboxList (line 123) | function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Pr...
  function ComboboxItem (line 136) | function ComboboxItem({
  function ComboboxGroup (line 162) | function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group....
  function ComboboxLabel (line 172) | function ComboboxLabel({
  function ComboboxCollection (line 185) | function ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.P...
  function ComboboxEmpty (line 191) | function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty....
  function ComboboxSeparator (line 204) | function ComboboxSeparator({
  function ComboboxChips (line 217) | function ComboboxChips({
  function ComboboxChip (line 234) | function ComboboxChip({
  function ComboboxChipsInput (line 265) | function ComboboxChipsInput({
  function useComboboxAnchor (line 278) | function useComboboxAnchor() {

FILE: apps/v4/examples/base/ui/command.tsx
  function Command (line 16) | function Command({
  function CommandDialog (line 32) | function CommandDialog({
  function CommandInput (line 65) | function CommandInput({
  function CommandList (line 88) | function CommandList({
  function CommandEmpty (line 104) | function CommandEmpty({
  function CommandGroup (line 117) | function CommandGroup({
  function CommandSeparator (line 133) | function CommandSeparator({
  function CommandItem (line 146) | function CommandItem({
  function CommandShortcut (line 166) | function CommandShortcut({

FILE: apps/v4/examples/base/ui/context-menu.tsx
  function ContextMenu (line 8) | function ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {
  function ContextMenuPortal (line 12) | function ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Pro...
  function ContextMenuTrigger (line 18) | function ContextMenuTrigger({
  function ContextMenuContent (line 31) | function ContextMenuContent({
  function ContextMenuGroup (line 65) | function ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props) {
  function ContextMenuLabel (line 71) | function ContextMenuLabel({
  function ContextMenuItem (line 91) | function ContextMenuItem({
  function ContextMenuSub (line 114) | function ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.P...
  function ContextMenuSubTrigger (line 120) | function ContextMenuSubTrigger({
  function ContextMenuSubContent (line 144) | function ContextMenuSubContent({
  function ContextMenuCheckboxItem (line 157) | function ContextMenuCheckboxItem({
  function ContextMenuRadioGroup (line 187) | function ContextMenuRadioGroup({
  function ContextMenuRadioItem (line 198) | function ContextMenuRadioItem({
  function ContextMenuSeparator (line 226) | function ContextMenuSeparator({
  function ContextMenuShortcut (line 239) | function ContextMenuShortcut({

FILE: apps/v4/examples/base/ui/dialog.tsx
  function Dialog (line 9) | function Dialog({ ...props }: DialogPrimitive.Root.Props) {
  function DialogTrigger (line 13) | function DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props) {
  function DialogPortal (line 17) | function DialogPortal({ ...props }: DialogPrimitive.Portal.Props) {
  function DialogClose (line 21) | function DialogClose({ ...props }: DialogPrimitive.Close.Props) {
  function DialogOverlay (line 25) | function DialogOverlay({
  function DialogContent (line 41) | function DialogContent({
  function DialogHeader (line 81) | function DialogHeader({ className, ...props }: React.ComponentProps<"div...
  function DialogFooter (line 91) | function DialogFooter({
  function DialogTitle (line 118) | function DialogTitle({ className, ...props }: DialogPrimitive.Title.Prop...
  function DialogDescription (line 131) | function DialogDescription({

FILE: apps/v4/examples/base/ui/drawer.tsx
  function Drawer (line 7) | function Drawer({
  function DrawerTrigger (line 13) | function DrawerTrigger({
  function DrawerPortal (line 19) | function DrawerPortal({
  function DrawerClose (line 25) | function DrawerClose({
  function DrawerOverlay (line 31) | function DrawerOverlay({
  function DrawerContent (line 47) | function DrawerContent({
  function DrawerHeader (line 70) | function DrawerHeader({ className, ...props }: React.ComponentProps<"div...
  function DrawerFooter (line 83) | function DrawerFooter({ className, ...props }: React.ComponentProps<"div...
  function DrawerTitle (line 93) | function DrawerTitle({
  function DrawerDescription (line 109) | function DrawerDescription({

FILE: apps/v4/examples/base/ui/dropdown-menu.tsx
  function DropdownMenu (line 8) | function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {
  function DropdownMenuPortal (line 12) | function DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {
  function DropdownMenuTrigger (line 16) | function DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {
  function DropdownMenuContent (line 20) | function DropdownMenuContent({
  function DropdownMenuGroup (line 54) | function DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {
  function DropdownMenuLabel (line 58) | function DropdownMenuLabel({
  function DropdownMenuItem (line 78) | function DropdownMenuItem({
  function DropdownMenuSub (line 101) | function DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {
  function DropdownMenuSubTrigger (line 105) | function DropdownMenuSubTrigger({
  function DropdownMenuSubContent (line 129) | function DropdownMenuSubContent({
  function DropdownMenuCheckboxItem (line 153) | function DropdownMenuCheckboxItem({
  function DropdownMenuRadioGroup (line 186) | function DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.P...
  function DropdownMenuRadioItem (line 195) | function DropdownMenuRadioItem({
  function DropdownMenuSeparator (line 226) | function DropdownMenuSeparator({
  function DropdownMenuShortcut (line 239) | function DropdownMenuShortcut({

FILE: apps/v4/examples/base/ui/empty.tsx
  function Empty (line 4) | function Empty({ className, ...props }: React.ComponentProps<"div">) {
  function EmptyHeader (line 17) | function EmptyHeader({ className, ...props }: React.ComponentProps<"div"...
  function EmptyMedia (line 42) | function EmptyMedia({
  function EmptyTitle (line 57) | function EmptyTitle({ className, ...props }: React.ComponentProps<"div">) {
  function EmptyDescription (line 70) | function EmptyDescription({ className, ...props }: React.ComponentProps<...
  function EmptyContent (line 83) | function EmptyContent({ className, ...props }: React.ComponentProps<"div...

FILE: apps/v4/examples/base/ui/field.tsx
  function FieldSet (line 9) | function FieldSet({ className, ...props }: React.ComponentProps<"fieldse...
  function FieldLegend (line 22) | function FieldLegend({
  function FieldGroup (line 40) | function FieldGroup({ className, ...props }: React.ComponentProps<"div">) {
  function Field (line 71) | function Field({
  function FieldContent (line 87) | function FieldContent({ className, ...props }: React.ComponentProps<"div...
  function FieldLabel (line 100) | function FieldLabel({
  function FieldTitle (line 117) | function FieldTitle({ className, ...props }: React.ComponentProps<"div">) {
  function FieldDescription (line 130) | function FieldDescription({ className, ...props }: React.ComponentProps<...
  function FieldSeparator (line 145) | function FieldSeparator({
  function FieldError (line 175) | function FieldError({

FILE: apps/v4/examples/base/ui/hover-card.tsx
  function HoverCard (line 6) | function HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {
  function HoverCardTrigger (line 10) | function HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Pro...
  function HoverCardContent (line 16) | function HoverCardContent({

FILE: apps/v4/examples/base/ui/input-group.tsx
  function InputGroup (line 10) | function InputGroup({ className, ...props }: React.ComponentProps<"div">) {
  function InputGroupAddon (line 45) | function InputGroupAddon({
  function InputGroupButton (line 85) | function InputGroupButton({
  function InputGroupText (line 106) | function InputGroupText({ className, ...props }: React.ComponentProps<"s...
  function InputGroupInput (line 118) | function InputGroupInput({
  function InputGroupTextarea (line 134) | function InputGroupTextarea({

FILE: apps/v4/examples/base/ui/input-otp.tsx
  function InputOTP (line 8) | function InputOTP({
  function InputOTPGroup (line 29) | function InputOTPGroup({ className, ...props }: React.ComponentProps<"di...
  function InputOTPSlot (line 42) | function InputOTPSlot({
  function InputOTPSeparator (line 72) | function InputOTPSeparator({ ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/ui/input.tsx
  function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<"inpu...

FILE: apps/v4/examples/base/ui/item.tsx
  function ItemGroup (line 8) | function ItemGroup({ className, ...props }: React.ComponentProps<"div">) {
  function ItemSeparator (line 22) | function ItemSeparator({
  function Item (line 58) | function Item({
  function ItemMedia (line 99) | function ItemMedia({
  function ItemContent (line 114) | function ItemContent({ className, ...props }: React.ComponentProps<"div"...
  function ItemTitle (line 127) | function ItemTitle({ className, ...props }: React.ComponentProps<"div">) {
  function ItemDescription (line 140) | function ItemDescription({ className, ...props }: React.ComponentProps<"...
  function ItemActions (line 153) | function ItemActions({ className, ...props }: React.ComponentProps<"div"...
  function ItemHeader (line 163) | function ItemHeader({ className, ...props }: React.ComponentProps<"div">) {
  function ItemFooter (line 176) | function ItemFooter({ className, ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/ui/kbd.tsx
  function Kbd (line 3) | function Kbd({ className, ...props }: React.ComponentProps<"kbd">) {
  function KbdGroup (line 16) | function KbdGroup({ className, ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/ui/label.tsx
  function Label (line 6) | function Label({ className, ...props }: React.ComponentProps<"label">) {

FILE: apps/v4/examples/base/ui/menubar.tsx
  function Menubar (line 24) | function Menubar({ className, ...props }: MenubarPrimitive.Props) {
  function MenubarMenu (line 37) | function MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownM...
  function MenubarGroup (line 41) | function MenubarGroup({
  function MenubarPortal (line 47) | function MenubarPortal({
  function MenubarTrigger (line 53) | function MenubarTrigger({
  function MenubarContent (line 69) | function MenubarContent({
  function MenubarItem (line 91) | function MenubarItem({
  function MenubarCheckboxItem (line 111) | function MenubarCheckboxItem({
  function MenubarRadioGroup (line 141) | function MenubarRadioGroup({
  function MenubarRadioItem (line 147) | function MenubarRadioItem({
  function MenubarLabel (line 175) | function MenubarLabel({
  function MenubarSeparator (line 195) | function MenubarSeparator({
  function MenubarShortcut (line 208) | function MenubarShortcut({
  function MenubarSub (line 224) | function MenubarSub({
  function MenubarSubTrigger (line 230) | function MenubarSubTrigger({
  function MenubarSubContent (line 250) | function MenubarSubContent({

FILE: apps/v4/examples/base/ui/native-select.tsx
  type NativeSelectProps (line 5) | type NativeSelectProps = Omit<React.ComponentProps<"select">, "size"> & {
  function NativeSelect (line 9) | function NativeSelect({
  function NativeSelectOption (line 38) | function NativeSelectOption({ ...props }: React.ComponentProps<"option">) {
  function NativeSelectOptGroup (line 42) | function NativeSelectOptGroup({

FILE: apps/v4/examples/base/ui/navigation-menu.tsx
  function NavigationMenu (line 6) | function NavigationMenu({
  function NavigationMenuList (line 28) | function NavigationMenuList({
  function NavigationMenuItem (line 44) | function NavigationMenuItem({
  function NavigationMenuTrigger (line 61) | function NavigationMenuTrigger({
  function NavigationMenuContent (line 81) | function NavigationMenuContent({
  function NavigationMenuPositioner (line 97) | function NavigationMenuPositioner({
  function NavigationMenuLink (line 126) | function NavigationMenuLink({
  function NavigationMenuIndicator (line 142) | function NavigationMenuIndicator({

FILE: apps/v4/examples/base/ui/pagination.tsx
  function Pagination (line 10) | function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
  function PaginationContent (line 22) | function PaginationContent({
  function PaginationItem (line 35) | function PaginationItem({ ...props }: React.ComponentProps<"li">) {
  type PaginationLinkProps (line 39) | type PaginationLinkProps = {
  function PaginationLink (line 44) | function PaginationLink({
  function PaginationPrevious (line 68) | function PaginationPrevious({
  function PaginationNext (line 86) | function PaginationNext({
  function PaginationEllipsis (line 104) | function PaginationEllipsis({

FILE: apps/v4/examples/base/ui/popover.tsx
  function Popover (line 7) | function Popover({ ...props }: PopoverPrimitive.Root.Props) {
  function PopoverTrigger (line 11) | function PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props) {
  function PopoverContent (line 15) | function PopoverContent({
  function PopoverHeader (line 49) | function PopoverHeader({ className, ...props }: React.ComponentProps<"di...
  function PopoverTitle (line 59) | function PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Pr...
  function PopoverDescription (line 69) | function PopoverDescription({

FILE: apps/v4/examples/base/ui/progress.tsx
  function Progress (line 6) | function Progress({
  function ProgressTrack (line 27) | function ProgressTrack({ className, ...props }: ProgressPrimitive.Track....
  function ProgressIndicator (line 40) | function ProgressIndicator({
  function ProgressLabel (line 53) | function ProgressLabel({ className, ...props }: ProgressPrimitive.Label....
  function ProgressValue (line 63) | function ProgressValue({ className, ...props }: ProgressPrimitive.Value....

FILE: apps/v4/examples/base/ui/radio-group.tsx
  function RadioGroup (line 7) | function RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {
  function RadioGroupItem (line 17) | function RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Pro...

FILE: apps/v4/examples/base/ui/resizable.tsx
  function ResizablePanelGroup (line 6) | function ResizablePanelGroup({
  function ResizablePanel (line 22) | function ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) {
  function ResizableHandle (line 26) | function ResizableHandle({

FILE: apps/v4/examples/base/ui/scroll-area.tsx
  function ScrollArea (line 7) | function ScrollArea({
  function ScrollBar (line 30) | function ScrollBar({

FILE: apps/v4/examples/base/ui/select.tsx
  function SelectGroup (line 10) | function SelectGroup({ className, ...props }: SelectPrimitive.Group.Prop...
  function SelectValue (line 20) | function SelectValue({ className, ...props }: SelectPrimitive.Value.Prop...
  function SelectTrigger (line 30) | function SelectTrigger({
  function SelectContent (line 58) | function SelectContent({
  function SelectLabel (line 100) | function SelectLabel({
  function SelectItem (line 113) | function SelectItem({
  function SelectSeparator (line 141) | function SelectSeparator({
  function SelectScrollUpButton (line 154) | function SelectScrollUpButton({
  function SelectScrollDownButton (line 172) | function SelectScrollDownButton({

FILE: apps/v4/examples/base/ui/separator.tsx
  function Separator (line 6) | function Separator({

FILE: apps/v4/examples/base/ui/sheet.tsx
  function Sheet (line 9) | function Sheet({ ...props }: SheetPrimitive.Root.Props) {
  function SheetTrigger (line 13) | function SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {
  function SheetClose (line 17) | function SheetClose({ ...props }: SheetPrimitive.Close.Props) {
  function SheetPortal (line 21) | function SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {
  function SheetOverlay (line 25) | function SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.P...
  function SheetContent (line 38) | function SheetContent({
  function SheetHeader (line 81) | function SheetHeader({ className, ...props }: React.ComponentProps<"div"...
  function SheetFooter (line 91) | function SheetFooter({ className, ...props }: React.ComponentProps<"div"...
  function SheetTitle (line 101) | function SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {
  function SheetDescription (line 114) | function SheetDescription({

FILE: apps/v4/examples/base/ui/sidebar.tsx
  constant SIDEBAR_COOKIE_NAME (line 27) | const SIDEBAR_COOKIE_NAME = "sidebar_state"
  constant SIDEBAR_COOKIE_MAX_AGE (line 28) | const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7
  constant SIDEBAR_WIDTH (line 29) | const SIDEBAR_WIDTH = "16rem"
  constant SIDEBAR_WIDTH_MOBILE (line 30) | const SIDEBAR_WIDTH_MOBILE = "18rem"
  constant SIDEBAR_WIDTH_ICON (line 31) | const SIDEBAR_WIDTH_ICON = "3rem"
  constant SIDEBAR_KEYBOARD_SHORTCUT (line 32) | const SIDEBAR_KEYBOARD_SHORTCUT = "b"
  type SidebarContextProps (line 34) | type SidebarContextProps = {
  function useSidebar (line 46) | function useSidebar() {
  function SidebarProvider (line 55) | function SidebarProvider({
  function Sidebar (line 151) | function Sidebar({
  function SidebarTrigger (line 253) | function SidebarTrigger({
  function SidebarRail (line 279) | function SidebarRail({ className, ...props }: React.ComponentProps<"butt...
  function SidebarInset (line 304) | function SidebarInset({ className, ...props }: React.ComponentProps<"mai...
  function SidebarInput (line 317) | function SidebarInput({
  function SidebarHeader (line 331) | function SidebarHeader({ className, ...props }: React.ComponentProps<"di...
  function SidebarFooter (line 342) | function SidebarFooter({ className, ...props }: React.ComponentProps<"di...
  function SidebarSeparator (line 353) | function SidebarSeparator({
  function SidebarContent (line 367) | function SidebarContent({ className, ...props }: React.ComponentProps<"d...
  function SidebarGroup (line 381) | function SidebarGroup({ className, ...props }: React.ComponentProps<"div...
  function SidebarGroupLabel (line 392) | function SidebarGroupLabel({
  function SidebarGroupAction (line 416) | function SidebarGroupAction({
  function SidebarGroupContent (line 440) | function SidebarGroupContent({
  function SidebarMenu (line 454) | function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">) {
  function SidebarMenuItem (line 465) | function SidebarMenuItem({ className, ...props }: React.ComponentProps<"...
  function SidebarMenuButton (line 498) | function SidebarMenuButton({
  function SidebarMenuAction (line 552) | function SidebarMenuAction({
  function SidebarMenuBadge (line 582) | function SidebarMenuBadge({
  function SidebarMenuSkeleton (line 599) | function SidebarMenuSkeleton({
  function SidebarMenuSub (line 637) | function SidebarMenuSub({ className, ...props }: React.ComponentProps<"u...
  function SidebarMenuSubItem (line 651) | function SidebarMenuSubItem({
  function SidebarMenuSubButton (line 665) | function SidebarMenuSubButton({

FILE: apps/v4/examples/base/ui/skeleton.tsx
  function Skeleton (line 3) | function Skeleton({ className, ...props }: React.ComponentProps<"div">) {

FILE: apps/v4/examples/base/ui/slider.tsx
  function Slider (line 7) | function Slider({

FILE: apps/v4/examples/base/ui/spinner.tsx
  function Spinner (line 4) | function Spinner({ className, ...props }: React.ComponentProps<"svg">) {

FILE: apps/v4/examples/base/ui/switch.tsx
  function Switch (line 6) | function Switch({

FILE: apps/v4/examples/base/ui/table.tsx
  function Table (line 6) | function Table({ className, ...props }: React.ComponentProps<"table">) {
  function TableHeader (line 21) | function TableHeader({ className, ...props }: React.ComponentProps<"thea...
  function TableBody (line 31) | function TableBody({ className, ...props }: React.ComponentProps<"tbody"...
  function TableFooter (line 41) | function TableFooter({ className, ...props }: React.ComponentProps<"tfoo...
  function TableRow (line 54) | function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
  function TableHead (line 67) | function TableHead({ className, ...props }: React.ComponentProps<"th">) {
  function TableCell (line 80) | function TableCell({ className, ...props }: React.ComponentProps<"td">) {
  function TableCaption (line 93) | function TableCaption({

FILE: apps/v4/examples/base/ui/tabs.tsx
  function Tabs (line 7) | function Tabs({
  function TabsList (line 40) | function TabsList({
  function TabsTrigger (line 55) | function TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {
  function TabsContent (line 71) | function TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {

FILE: apps/v4/examples/base/ui/textarea.tsx
  function Textarea (line 4) | function Textarea({ className, ...props }: React.ComponentProps<"textare...

FILE: apps/v4/examples/base/ui/toggle-group.tsx
  function ToggleGroup (line 22) | function ToggleGroup({
  function ToggleGroupItem (line 58) | function ToggleGroupItem({

FILE: apps/v4/examples/base/ui/toggle.tsx
  function Toggle (line 28) | function Toggle({

FILE: apps/v4/examples/base/ui/tooltip.tsx
  function TooltipProvider (line 6) | function TooltipProvider({
  function Tooltip (line 19) | function Tooltip({ ...props }: TooltipPrimitive.Root.Props) {
  function TooltipTrigger (line 23) | function TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {
  function TooltipContent (line 27) | function TooltipContent({

FILE: apps/v4/examples/radix/accordion-basic.tsx
  function AccordionBasic (line 29) | function AccordionBasic() {

FILE: apps/v4/examples/radix/accordion-borders.tsx
  function AccordionBorders (line 29) | function AccordionBorders() {

FILE: apps/v4/examples/radix/accordion-card.tsx
  function AccordionCard (line 36) | function AccordionCard() {

FILE: apps/v4/examples/radix/accordion-demo.tsx
  function AccordionDemo (line 8) | function AccordionDemo() {

FILE: apps/v4/examples/radix/accordion-disabled.tsx
  function AccordionDisabled (line 8) | function AccordionDisabled() {

FILE: apps/v4/examples/radix/accordion-multiple.tsx
  function AccordionMultiple (line 29) | function AccordionMultiple() {

FILE: apps/v4/examples/radix/accordion-rtl.tsx
  function AccordionRtl (line 77) | function AccordionRtl() {

FILE: apps/v4/examples/radix/alert-action.tsx
  function AlertActionExample (line 9) | function AlertActionExample() {

FILE: apps/v4/examples/radix/alert-basic.tsx
  function AlertBasic (line 4) | function AlertBasic() {

FILE: apps/v4/examples/radix/alert-colors.tsx
  function AlertColors (line 4) | function AlertColors() {

FILE: apps/v4/examples/radix/alert-demo.tsx
  function AlertDemo (line 4) | function AlertDemo() {

FILE: apps/v4/examples/radix/alert-destructive.tsx
  function AlertDestructive (line 4) | function AlertDestructive() {

FILE: apps/v4/examples/radix/alert-dialog-basic.tsx
  function AlertDialogBasic (line 14) | function AlertDialogBasic() {

FILE: apps/v4/examples/radix/alert-dialog-demo.tsx
  function AlertDialogDemo (line 14) | function AlertDialogDemo() {

FILE: apps/v4/examples/radix/alert-dialog-destructive.tsx
  function AlertDialogDestructive (line 16) | function AlertDialogDestructive() {

FILE: apps/v4/examples/radix/alert-dialog-media.tsx
  function AlertDialogWithMedia (line 16) | function AlertDialogWithMedia() {

FILE: apps/v4/examples/radix/alert-dialog-rtl.tsx
  function AlertDialogRtl (line 76) | function AlertDialogRtl() {

FILE: apps/v4/examples/radix/alert-dialog-small-media.tsx
  function AlertDialogSmallWithMedia (line 16) | function AlertDialogSmallWithMedia() {

FILE: apps/v4/examples/radix/alert-dialog-small.tsx
  function AlertDialogSmall (line 14) | function AlertDialogSmall() {

FILE: apps/v4/examples/radix/alert-rtl.tsx
  function AlertRtl (line 65) | function AlertRtl() {

FILE: apps/v4/examples/radix/aspect-ratio-demo.tsx
  function AspectRatioDemo (line 4) | function AspectRatioDemo() {

FILE: apps/v4/examples/radix/aspect-ratio-portrait.tsx
  function AspectRatioPortrait (line 4) | function AspectRatioPortrait() {

FILE: apps/v4/examples/radix/aspect-ratio-rtl.tsx
  function AspectRatioRtl (line 33) | function AspectRatioRtl() {

FILE: apps/v4/examples/radix/aspect-ratio-square.tsx
  function AspectRatioSquare (line 4) | function AspectRatioSquare() {

FILE: apps/v4/examples/radix/avatar-badge-icon.tsx
  function AvatarBadgeIconExample (line 9) | function AvatarBadgeIconExample() {

FILE: apps/v4/examples/radix/avatar-badge.tsx
  function AvatarWithBadge (line 8) | function AvatarWithBadge() {

FILE: apps/v4/examples/radix/avatar-basic.tsx
  function AvatarDemo (line 3) | function AvatarDemo() {

FILE: apps/v4/examples/radix/avatar-demo.tsx
  function AvatarDemo (line 10) | function AvatarDemo() {

FILE: apps/v4/examples/radix/avatar-dropdown.tsx
  function AvatarDropdown (line 12) | function AvatarDropdown() {

FILE: apps/v4/examples/radix/avatar-group-count-icon.tsx
  function AvatarGroupCountIconExample (line 10) | function AvatarGroupCountIconExample() {

FILE: apps/v4/examples/radix/avatar-group-count.tsx
  function AvatarGroupCountExample (line 9) | function AvatarGroupCountExample() {

FILE: apps/v4/examples/radix/avatar-group.tsx
  function AvatarGroupExample (line 8) | function AvatarGroupExample() {

FILE: apps/v4/examples/radix/avatar-rtl.tsx
  function AvatarRtl (line 39) | function AvatarRtl() {

FILE: apps/v4/examples/radix/avatar-size.tsx
  function AvatarSizeExample (line 3) | function AvatarSizeExample() {

FILE: apps/v4/examples/radix/badge-colors.tsx
  function BadgeCustomColors (line 3) | function BadgeCustomColors() {

FILE: apps/v4/examples/radix/badge-demo.tsx
  function BadgeDemo (line 3) | function BadgeDemo() {

FILE: apps/v4/examples/radix/badge-icon.tsx
  function BadgeWithIconLeft (line 4) | function BadgeWithIconLeft() {

FILE: apps/v4/examples/radix/badge-link.tsx
  function BadgeAsLink (line 4) | function BadgeAsLink() {

FILE: apps/v4/examples/radix/badge-rtl.tsx
  function BadgeRtl (line 48) | function BadgeRtl() {

FILE: apps/v4/examples/radix/badge-spinner.tsx
  function BadgeWithSpinner (line 4) | function BadgeWithSpinner() {

FILE: apps/v4/examples/radix/badge-variants.tsx
  function BadgeVariants (line 3) | function BadgeVariants() {

FILE: apps/v4/examples/radix/breadcrumb-basic.tsx
  function BreadcrumbBasic (line 10) | function BreadcrumbBasic() {

FILE: apps/v4/examples/radix/breadcrumb-demo.tsx
  function BreadcrumbDemo (line 20) | function BreadcrumbDemo() {

FILE: apps/v4/examples/radix/breadcrumb-dropdown.tsx
  function BreadcrumbDropdown (line 19) | function BreadcrumbDropdown() {

FILE: apps/v4/examples/radix/breadcrumb-ellipsis.tsx
  function BreadcrumbEllipsisDemo (line 12) | function BreadcrumbEllipsisDemo() {

FILE: apps/v4/examples/radix/breadcrumb-link.tsx
  function BreadcrumbLinkDemo (line 11) | function BreadcrumbLinkDemo() {

FILE: apps/v4/examples/radix/breadcrumb-rtl.tsx
  function BreadcrumbRtl (line 63) | function BreadcrumbRtl() {

FILE: apps/v4/examples/radix/breadcrumb-separator.tsx
  function BreadcrumbSeparatorDemo (line 12) | function BreadcrumbSeparatorDemo() {

FILE: apps/v4/examples/radix/button-aschild.tsx
  function ButtonAsChild (line 4) | function ButtonAsChild() {

FILE: apps/v4/examples/radix/button-default.tsx
  function ButtonDefault (line 3) | function ButtonDefault() {

FILE: apps/v4/examples/radix/button-demo.tsx
  function ButtonDemo (line 4) | function ButtonDemo() {

FILE: apps/v4/examples/radix/button-destructive.tsx
  function ButtonDestructive (line 3) | function ButtonDestructive() {

FILE: apps/v4/examples/radix/button-ghost.tsx
  function ButtonGhost (line 3) | function ButtonGhost() {

FILE: apps/v4/examples/radix/button-group-demo.tsx
  function ButtonGroupDemo (line 31) | function ButtonGroupDemo() {

FILE: apps/v4/examples/radix/button-group-dropdown.tsx
  function ButtonGroupDropdown (line 24) | function ButtonGroupDropdown() {

FILE: apps/v4/examples/radix/button-group-input-group.tsx
  function ButtonGroupInputGroup (line 19) | function ButtonGroupInputGroup() {

FILE: apps/v4/examples/radix/button-group-input.tsx
  function ButtonGroupInput (line 6) | function ButtonGroupInput() {

FILE: apps/v4/examples/radix/button-group-nested.tsx
  function ButtonGroupNested (line 16) | function ButtonGroupNested() {

FILE: apps/v4/examples/radix/button-group-orientation.tsx
  function ButtonGroupOrientation (line 5) | function ButtonGroupOrientation() {

FILE: apps/v4/examples/radix/button-group-popover.tsx
  function ButtonGroupPopover (line 15) | function ButtonGroupPopover() {

FILE: apps/v4/examples/radix/button-group-rtl.tsx
  function ButtonGroupRtl (line 87) | function ButtonGroupRtl() {

FILE: apps/v4/examples/radix/button-group-select.tsx
  constant CURRENCIES (line 16) | const CURRENCIES = [
  function ButtonGroupSelect (line 31) | function ButtonGroupSelect() {

FILE: apps/v4/examples/radix/button-group-separator.tsx
  function ButtonGroupSeparatorDemo (line 7) | function ButtonGroupSeparatorDemo() {

FILE: apps/v4/examples/radix/button-group-size.tsx
  function ButtonGroupSize (line 5) | function ButtonGroupSize() {

FILE: apps/v4/examples/radix/button-group-split.tsx
  function ButtonGroupSplit (line 8) | function ButtonGroupSplit() {

FILE: apps/v4/examples/radix/button-icon.tsx
  function ButtonIcon (line 4) | function ButtonIcon() {

FILE: apps/v4/examples/radix/button-link.tsx
  function ButtonLink (line 3) | function ButtonLink() {

FILE: apps/v4/examples/radix/button-outline.tsx
  function ButtonOutline (line 3) | function ButtonOutline() {

FILE: apps/v4/examples/radix/button-rounded.tsx
  function ButtonRounded (line 4) | function ButtonRounded() {

FILE: apps/v4/examples/radix/button-rtl.tsx
  function ButtonRtl (line 42) | function ButtonRtl() {

FILE: apps/v4/examples/radix/button-secondary.tsx
  function ButtonSecondary (line 3) | function ButtonSecondary() {

FILE: apps/v4/examples/radix/button-size.tsx
  function ButtonSize (line 4) | function ButtonSize() {

FILE: apps/v4/examples/radix/button-spinner.tsx
  function ButtonSpinner (line 4) | function ButtonSpinner() {

FILE: apps/v4/examples/radix/button-with-icon.tsx
  function ButtonWithIcon (line 4) | function ButtonWithIcon() {

FILE: apps/v4/examples/radix/calendar-basic.tsx
  function CalendarBasic (line 5) | function CalendarBasic() {

FILE: apps/v4/examples/radix/calendar-booked-dates.tsx
  function CalendarBookedDates (line 8) | function CalendarBookedDates() {

FILE: apps/v4/examples/radix/calendar-caption.tsx
  function CalendarCaption (line 5) | function CalendarCaption() {

FILE: apps/v4/examples/radix/calendar-custom-days.tsx
  function CalendarCustomDays (line 9) | function CalendarCustomDays() {

FILE: apps/v4/examples/radix/calendar-demo.tsx
  function CalendarDemo (line 6) | function CalendarDemo() {

FILE: apps/v4/examples/radix/calendar-hijri.tsx
  function CalendarHijri (line 18) | function CalendarHijri() {
  function Calendar (line 40) | function Calendar({
  function CalendarDayButton (line 198) | function CalendarDayButton({

FILE: apps/v4/examples/radix/calendar-multiple.tsx
  function CalendarMultiple (line 4) | function CalendarMultiple() {

FILE: apps/v4/examples/radix/calendar-presets.tsx
  function CalendarWithPresets (line 9) | function CalendarWithPresets() {

FILE: apps/v4/examples/radix/calendar-range.tsx
  function CalendarRange (line 9) | function CalendarRange() {

FILE: apps/v4/examples/radix/calendar-rtl.tsx
  function CalendarRtl (line 32) | function CalendarRtl() {

FILE: apps/v4/examples/radix/calendar-time.tsx
  function CalendarWithTime (line 14) | function CalendarWithTime() {

FILE: apps/v4/examples/radix/calendar-week-numbers.tsx
  function CalendarWeekNumbers (line 7) | function CalendarWeekNumbers() {

FILE: apps/v4/examples/radix/card-demo.tsx
  function CardDemo (line 14) | function CardDemo() {

FILE: apps/v4/examples/radix/card-image.tsx
  function CardImage (line 12) | function CardImage() {

FILE: apps/v4/examples/radix/card-rtl.tsx
  function CardRtl (line 67) | function CardRtl() {

FILE: apps/v4/examples/radix/card-small.tsx
  function CardSmall (line 11) | function CardSmall() {

FILE: apps/v4/examples/radix/carousel-api.tsx
  function CarouselDApiDemo (line 14) | function CarouselDApiDemo() {

FILE: apps/v4/examples/radix/carousel-demo.tsx
  function CarouselDemo (line 11) | function CarouselDemo() {

FILE: apps/v4/examples/radix/carousel-multiple.tsx
  function CarouselMultiple (line 10) | function CarouselMultiple() {

FILE: apps/v4/examples/radix/carousel-orientation.tsx
  function CarouselOrientation (line 11) | function CarouselOrientation() {

FILE: apps/v4/examples/radix/carousel-plugin.tsx
  function CarouselPlugin (line 14) | function CarouselPlugin() {

FILE: apps/v4/examples/radix/carousel-rtl.tsx
  function toArabicNumerals (line 32) | function toArabicNumerals(num: number): string {
  function CarouselRtl (line 41) | function CarouselRtl() {

FILE: apps/v4/examples/radix/carousel-size.tsx
  function CarouselSize (line 11) | function CarouselSize() {

FILE: apps/v4/examples/radix/carousel-spacing.tsx
  function CarouselSpacing (line 11) | function CarouselSpacing() {

FILE: apps/v4/examples/radix/chart-demo.tsx
  function ChartDemo (line 69) | function ChartDemo() {

FILE: apps/v4/examples/radix/chart-example-axis.tsx
  function ChartBarDemoAxis (line 26) | function ChartBarDemoAxis() {

FILE: apps/v4/examples/radix/chart-example-grid.tsx
  function ChartBarDemoGrid (line 26) | function ChartBarDemoGrid() {

FILE: apps/v4/examples/radix/chart-example-legend.tsx
  function ChartBarDemoLegend (line 33) | function ChartBarDemoLegend() {

FILE: apps/v4/examples/radix/chart-example-tooltip.tsx
  function ChartBarDemoTooltip (line 31) | function ChartBarDemoTooltip() {

FILE: apps/v4/examples/radix/chart-example.tsx
  function ChartExample (line 26) | function ChartExample() {

FILE: apps/v4/examples/radix/chart-rtl.tsx
  function ChartRtl (line 69) | function ChartRtl() {

FILE: apps/v4/examples/radix/chart-tooltip.tsx
  function ChartTooltipDemo (line 7) | function ChartTooltipDemo() {
  function TooltipDemo (line 122) | function TooltipDemo({

FILE: apps/v4/examples/radix/checkbox-basic.tsx
  function CheckboxBasic (line 4) | function CheckboxBasic() {

FILE: apps/v4/examples/radix/checkbox-demo.tsx
  function CheckboxDemo (line 14) | function CheckboxDemo() {

FILE: apps/v4/examples/radix/checkbox-description.tsx
  function CheckboxDescription (line 10) | function CheckboxDescription() {

FILE: apps/v4/examples/radix/checkbox-disabled.tsx
  function CheckboxDisabled (line 4) | function CheckboxDisabled() {

FILE: apps/v4/examples/radix/checkbox-group.tsx
  function CheckboxGroup (line 11) | function CheckboxGroup() {

FILE: apps/v4/examples/radix/checkbox-invalid.tsx
  function CheckboxInvalid (line 4) | function CheckboxInvalid() {

FILE: apps/v4/examples/radix/checkbox-rtl.tsx
  function CheckboxRtl (line 55) | function CheckboxRtl() {

FILE: apps/v4/examples/radix/checkbox-table.tsx
  function CheckboxInTable (line 41) | function CheckboxInTable() {

FILE: apps/v4/examples/radix/collapsible-basic.tsx
  function CollapsibleBasic (line 11) | function CollapsibleBasic() {

FILE: apps/v4/examples/radix/collapsible-demo.tsx
  function CollapsibleDemo (line 12) | function CollapsibleDemo() {

FILE: apps/v4/examples/radix/collapsible-file-tree.tsx
  type FileTreeItem (line 11) | type FileTreeItem = { name: string } | { name: string; items: FileTreeIt...
  function CollapsibleFileTree (line 13) | function CollapsibleFileTree() {

FILE: apps/v4/examples/radix/collapsible-rtl.tsx
  function CollapsibleRtl (line 56) | function CollapsibleRtl() {

FILE: apps/v4/examples/radix/collapsible-settings.tsx
  function CollapsibleSettings (line 21) | function CollapsibleSettings() {

FILE: apps/v4/examples/radix/combobox-auto-highlight.tsx
  function ComboboxAutoHighlight (line 20) | function ComboboxAutoHighlight() {

FILE: apps/v4/examples/radix/combobox-basic.tsx
  function ComboboxBasic (line 20) | function ComboboxBasic() {

FILE: apps/v4/examples/radix/combobox-clear.tsx
  function ComboboxWithClear (line 20) | function ComboboxWithClear() {

FILE: apps/v4/examples/radix/combobox-custom.tsx
  function ComboboxWithCustomItems (line 71) | function ComboboxWithCustomItems() {

FILE: apps/v4/examples/radix/combobox-demo.tsx
  function ComboboxBasic (line 20) | function ComboboxBasic() {

FILE: apps/v4/examples/radix/combobox-disabled.tsx
  function ComboboxDisabled (line 20) | function ComboboxDisabled() {

FILE: apps/v4/examples/radix/combobox-groups.tsx
  function ComboboxWithGroupsAndSeparator (line 52) | function ComboboxWithGroupsAndSeparator() {

FILE: apps/v4/examples/radix/combobox-input-group.tsx
  function ComboxboxInputGroup (line 53) | function ComboxboxInputGroup() {

FILE: apps/v4/examples/radix/combobox-invalid.tsx
  function ComboboxInvalid (line 20) | function ComboboxInvalid() {

FILE: apps/v4/examples/radix/combobox-multiple.tsx
  function ComboboxMultiple (line 25) | function ComboboxMultiple() {

FILE: apps/v4/examples/radix/combobox-popup.tsx
  function ComboboxPopup (line 68) | function ComboboxPopup() {

FILE: apps/v4/examples/radix/combobox-rtl.tsx
  function ComboboxRtl (line 77) | function ComboboxRtl() {

FILE: apps/v4/examples/radix/command-basic.tsx
  function CommandBasic (line 15) | function CommandBasic() {

FILE: apps/v4/examples/radix/command-demo.tsx
  function CommandDemo (line 20) | function CommandDemo() {

FILE: apps/v4/examples/radix/command-dialog.tsx
  function CommandDialogDemo (line 23) | function CommandDialogDemo() {

FILE: apps/v4/examples/radix/command-groups.tsx
  function CommandWithGroups (line 25) | function CommandWithGroups() {

FILE: apps/v4/examples/radix/command-rtl.tsx
  function CommandRtl (line 73) | function CommandRtl() {

FILE: apps/v4/examples/radix/command-scrollable.tsx
  function CommandManyItems (line 42) | function CommandManyItems() {

FILE: apps/v4/examples/radix/command-shortcuts.tsx
  function CommandWithShortcuts (line 17) | function CommandWithShortcuts() {

FILE: apps/v4/examples/radix/context-menu-basic.tsx
  function ContextMenuBasic (line 9) | function ContextMenuBasic() {

FILE: apps/v4/examples/radix/context-menu-checkboxes.tsx
  function ContextMenuCheckboxes (line 9) | function ContextMenuCheckboxes() {

FILE: apps/v4/examples/radix/context-menu-demo.tsx
  function ContextMenuDemo (line 18) | function ContextMenuDemo() {

FILE: apps/v4/examples/radix/context-menu-destructive.tsx
  function ContextMenuDestructive (line 11) | function ContextMenuDestructive() {

FILE: apps/v4/examples/radix/context-menu-groups.tsx
  function ContextMenuGroups (line 12) | function ContextMenuGroups() {

FILE: apps/v4/examples/radix/context-menu-icons.tsx
  function ContextMenuIcons (line 16) | function ContextMenuIcons() {

FILE: apps/v4/examples/radix/context-menu-radio.tsx
  function ContextMenuRadio (line 15) | function ContextMenuRadio() {

FILE: apps/v4/examples/radix/context-menu-rtl.tsx
  function ContextMenuRtl (line 96) | function ContextMenuRtl() {

FILE: apps/v4/examples/radix/context-menu-shortcuts.tsx
  function ContextMenuShortcuts (line 11) | function ContextMenuShortcuts() {

FILE: apps/v4/examples/radix/context-menu-sides.tsx
  function ContextMenuSides (line 9) | function ContextMenuSides() {

FILE: apps/v4/examples/radix/context-menu-submenu.tsx
  function ContextMenuSubmenu (line 14) | function ContextMenuSubmenu() {

FILE: apps/v4/examples/radix/data-picker-with-dropdowns.tsx
  function DataPickerWithDropdowns (line 15) | function DataPickerWithDropdowns() {

FILE: apps/v4/examples/radix/data-table-demo.tsx
  type Payment (line 71) | type Payment = {
  function DataTableDemo (line 172) | function DataTableDemo() {

FILE: apps/v4/examples/radix/data-table-rtl.tsx
  type Payment (line 125) | type Payment = {
  function DataTableRtl (line 165) | function DataTableRtl() {

FILE: apps/v4/examples/radix/date-picker-basic.tsx
  function DatePickerSimple (line 14) | function DatePickerSimple() {

FILE: apps/v4/examples/radix/date-picker-demo.tsx
  function DatePickerDemo (line 14) | function DatePickerDemo() {

FILE: apps/v4/examples/radix/date-picker-dob.tsx
  function DatePickerSimple (line 13) | function DatePickerSimple() {

FILE: apps/v4/examples/radix/date-picker-input.tsx
  function formatDate (line 19) | function formatDate(date: Date | undefined) {
  function isValidDate (line 31) | function isValidDate(date: Date | undefined) {
  function DatePickerInput (line 38) | function DatePickerInput() {

FILE: apps/v4/examples/radix/date-picker-natural-language.tsx
  function formatDate (line 20) | function formatDate(date: Date | undefined) {
  function DatePickerNaturalLanguage (line 32) | function DatePickerNaturalLanguage() {

FILE: apps/v4/examples/radix/date-picker-range.tsx
  function DatePickerWithRange (line 16) | function DatePickerWithRange() {

FILE: apps/v4/examples/radix/date-picker-rtl.tsx
  function DatePickerRtl (line 55) | function DatePickerRtl() {

FILE: apps/v4/examples/radix/date-picker-time.tsx
  function DatePickerTime (line 16) | function DatePickerTime() {

FILE: apps/v4/examples/radix/dialog-close-button.tsx
  function DialogCloseButton (line 15) | function DialogCloseButton() {

FILE: apps/v4/examples/radix/dialog-demo.tsx
  function DialogDemo (line 16) | function DialogDemo() {

FILE: apps/v4/examples/radix/dialog-no-close-button.tsx
  function DialogNoCloseButton (line 11) | function DialogNoCloseButton() {

FILE: apps/v4/examples/radix/dialog-rtl.tsx
  function DialogRtl (line 64) | function DialogRtl() {

FILE: apps/v4/examples/radix/dialog-scrollable-content.tsx
  function DialogScrollableContent (line 11) | function DialogScrollableContent() {

FILE: apps/v4/examples/radix/dialog-sticky-footer.tsx
  function DialogStickyFooter (line 13) | function DialogStickyFooter() {

FILE: apps/v4/examples/radix/drawer-demo.tsx
  function DrawerDemo (line 60) | function DrawerDemo() {

FILE: apps/v4/examples/radix/drawer-dialog.tsx
  function DrawerDialogDemo (line 29) | function DrawerDialogDemo() {
  function ProfileForm (line 76) | function ProfileForm({ className }: React.ComponentProps<"form">) {

FILE: apps/v4/examples/radix/drawer-rtl.tsx
  function DrawerRtl (line 110) | function DrawerRtl() {

FILE: apps/v4/examples/radix/drawer-scrollable-content.tsx
  function DrawerScrollableContent (line 13) | function DrawerScrollableContent() {

FIL
Copy disabled (too large) Download .json
Condensed preview — 6754 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (37,456K chars).
[
  {
    "path": ".changeset/README.md",
    "chars": 510,
    "preview": "# Changesets\n\nHello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that wo"
  },
  {
    "path": ".changeset/config.json",
    "chars": 317,
    "preview": "{\n  \"$schema\": \"https://unpkg.com/@changesets/config@2.3.0/schema.json\",\n  \"changelog\": [\"@changesets/changelog-github\","
  },
  {
    "path": ".claude/settings.local.json",
    "chars": 221,
    "preview": "{\n  \"permissions\": {\n    \"allow\": [\n      \"Bash(npm test:*)\",\n      \"Bash(npm run typecheck:*)\",\n      \"Bash(ls:*)\",\n   "
  },
  {
    "path": ".commitlintrc.json",
    "chars": 53,
    "preview": "{\n  \"extends\": [\"@commitlint/config-conventional\"]\n}\n"
  },
  {
    "path": ".cursor/rules/registry-bases-parity.mdc",
    "chars": 1106,
    "preview": "---\ndescription: Keep registry base and radix trees in sync when editing shared UI\nglobs: apps/v4/registry/bases/**/*\nal"
  },
  {
    "path": ".editorconfig",
    "chars": 166,
    "preview": "# editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 2\nindent_style = space\ninsert_final_n"
  },
  {
    "path": ".eslintignore",
    "chars": 66,
    "preview": "node_modules/\ntarget/\n.next/\nbuild/\ndist/\n\n/templates/\n/fixtures/\n"
  },
  {
    "path": ".eslintrc.json",
    "chars": 693,
    "preview": "{\n  \"$schema\": \"https://json.schemastore.org/eslintrc\",\n  \"root\": true,\n  \"extends\": [\n    \"next/core-web-vitals\",\n    \""
  },
  {
    "path": ".github/DISCUSSION_TEMPLATE/blocks-request.yml",
    "chars": 775,
    "preview": "title: \"[blocks]: \"\nlabels: [\"Blocks Request\"]\nbody:\n  - type: markdown\n    attributes:\n      value: |\n        ### Thank"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 64,
    "preview": "# These are supported funding model platforms\n\ngithub: [shadcn]\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 2986,
    "preview": "name: \"Bug report\"\ndescription: Report an issue\ntitle: '[bug]: '\nlabels: [\"bug\"]\nbody:\n  - type: markdown\n    attributes"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 243,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Get Help\n    url: https://github.com/shadcn-ui/ui/discussions/new?c"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 1910,
    "preview": "name: \"Feature request\"\ndescription: Create a feature request for shadcn/ui\ntitle: '[feat]: '\nlabels: ['area: request']\n"
  },
  {
    "path": ".github/changeset-version.js",
    "chars": 699,
    "preview": "// ORIGINALLY FROM CLOUDFLARE WRANGLER:\n// https://github.com/cloudflare/wrangler2/blob/main/.github/changeset-version.j"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 1202,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: \"npm\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n  - package-e"
  },
  {
    "path": ".github/version-script-beta.js",
    "chars": 600,
    "preview": "// ORIGINALLY FROM CLOUDFLARE WRANGLER:\n// https://github.com/cloudflare/wrangler2/blob/main/.github/version-script.js\n\n"
  },
  {
    "path": ".github/version-script-next.js",
    "chars": 600,
    "preview": "// ORIGINALLY FROM CLOUDFLARE WRANGLER:\n// https://github.com/cloudflare/wrangler2/blob/main/.github/version-script.js\n\n"
  },
  {
    "path": ".github/workflows/code-check.yml",
    "chars": 3002,
    "preview": "name: Code check\n\non:\n  pull_request:\n    branches: [\"*\"]\n\njobs:\n  lint:\n    runs-on: ubuntu-latest\n    name: pnpm lint\n"
  },
  {
    "path": ".github/workflows/issue-stale.yml",
    "chars": 2487,
    "preview": "# Adapted from vercel/next.js\nname: \"Stale issue handler\"\non:\n  workflow_dispatch:\n  schedule:\n    # This runs every day"
  },
  {
    "path": ".github/workflows/prerelease-comment.yml",
    "chars": 2104,
    "preview": "# Adapted from create-t3-app.\nname: Write Beta Release comment\n\non:\n  workflow_run:\n    workflows: [\"Release - Beta\"]\n  "
  },
  {
    "path": ".github/workflows/prerelease.yml",
    "chars": 1586,
    "preview": "# Adapted from create-t3-app.\n\nname: Release - Beta\n\non:\n  pull_request:\n    types: [labeled]\n    branches:\n      - main"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 1386,
    "preview": "# Adapted from create-t3-app.\n\nname: Release\n\non:\n  push:\n    branches:\n      - main\n\npermissions:\n  id-token: write\n  c"
  },
  {
    "path": ".github/workflows/test.yml",
    "chars": 1080,
    "preview": "name: Test\n\non:\n  pull_request:\n    branches: [\"*\"]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    name: pnpm test\n    en"
  },
  {
    "path": ".github/workflows/validate-registries.yml",
    "chars": 4052,
    "preview": "name: Validate Registries\n\non:\n  pull_request:\n    paths:\n      - \"apps/v4/public/r/registries.json\"\n      - \"apps/v4/re"
  },
  {
    "path": ".gitignore",
    "chars": 486,
    "preview": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n.pnp\n"
  },
  {
    "path": ".kodiak.toml",
    "chars": 379,
    "preview": "# .kodiak.toml\nversion = 1\n\n[merge]\nautomerge_label = \"automerge\"\nrequire_automerge_label = true\nmethod = \"squash\"\ndelet"
  },
  {
    "path": ".npmrc",
    "chars": 53,
    "preview": "auto-install-peers=true\nlink-workspace-packages=true\n"
  },
  {
    "path": ".nvmrc",
    "chars": 8,
    "preview": "v20.5.1\n"
  },
  {
    "path": ".prettierignore",
    "chars": 100,
    "preview": "dist\nnode_modules\n.next\nbuild\n.contentlayer\n**/fixtures\ndeprecated\napps/v4/registry/styles/**/*.css\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 5571,
    "preview": "# Contributing\n\nThanks for your interest in contributing to ui.shadcn.com. We're happy to have you here.\n\nPlease take a "
  },
  {
    "path": "LICENSE.md",
    "chars": 1063,
    "preview": "MIT License\n\nCopyright (c) 2023 shadcn\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof "
  },
  {
    "path": "README.md",
    "chars": 467,
    "preview": "# shadcn/ui\n\nA set of beautifully designed components that you can customize, extend, and build on. Start here then make"
  },
  {
    "path": "SECURITY.md",
    "chars": 538,
    "preview": "# Security Policy\n\nIf you believe you have found a security vulnerability, we encourage you to let us know right away.\n\n"
  },
  {
    "path": "apps/v4/.env.example",
    "chars": 75,
    "preview": "NEXT_PUBLIC_V0_URL=https://v0.dev\nNEXT_PUBLIC_APP_URL=http://localhost:4000"
  },
  {
    "path": "apps/v4/.gitignore",
    "chars": 559,
    "preview": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pn"
  },
  {
    "path": "apps/v4/.prettierignore",
    "chars": 129,
    "preview": "dist\nnode_modules\n.next\nbuild\n.contentlayer\nregistry/__index__.tsx\ncontent/docs/components/calendar.mdx\nregistry/styles/"
  },
  {
    "path": "apps/v4/README.md",
    "chars": 100,
    "preview": "This is a wip registry for the `shadcn` canary version. It has React 19 and Tailwind v4 components.\n"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/appearance-settings.tsx",
    "chars": 4246,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/radix/ui/button\"\nimport { ButtonGroup } "
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/button-group-demo.tsx",
    "chars": 3573,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/radix/ui/button\"\nimport { ButtonGroup } "
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/button-group-input-group.tsx",
    "chars": 1775,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/radix/ui/button\"\nimport { ButtonGroup } "
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/button-group-nested.tsx",
    "chars": 823,
    "preview": "\"use client\"\n\nimport { Button } from \"@/examples/radix/ui/button\"\nimport { ButtonGroup } from \"@/examples/radix/ui/butto"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/button-group-popover.tsx",
    "chars": 1549,
    "preview": "import { Button } from \"@/examples/radix/ui/button\"\nimport { ButtonGroup } from \"@/examples/radix/ui/button-group\"\nimpor"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/empty-avatar-group.tsx",
    "chars": 1521,
    "preview": "import {\n  Avatar,\n  AvatarFallback,\n  AvatarGroup,\n  AvatarImage,\n} from \"@/examples/radix/ui/avatar\"\nimport { Button }"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/empty-input-group.tsx",
    "chars": 1131,
    "preview": "import { SearchIcon } from \"lucide-react\"\n\nimport {\n  Empty,\n  EmptyContent,\n  EmptyDescription,\n  EmptyHeader,\n  EmptyT"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/field-checkbox.tsx",
    "chars": 476,
    "preview": "import { Checkbox } from \"@/examples/radix/ui/checkbox\"\nimport { Field, FieldLabel } from \"@/examples/radix/ui/field\"\n\ne"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/field-choice-card.tsx",
    "chars": 1858,
    "preview": "import {\n  Field,\n  FieldContent,\n  FieldDescription,\n  FieldGroup,\n  FieldLabel,\n  FieldSet,\n  FieldTitle,\n} from \"@/re"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/field-demo.tsx",
    "chars": 5830,
    "preview": "import { Button } from \"@/examples/radix/ui/button\"\nimport { Checkbox } from \"@/examples/radix/ui/checkbox\"\nimport {\n  F"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/field-hear.tsx",
    "chars": 2170,
    "preview": "import { Card, CardContent } from \"@/examples/radix/ui/card\"\nimport { Checkbox } from \"@/examples/radix/ui/checkbox\"\nimp"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/field-slider.tsx",
    "chars": 856,
    "preview": "\"use client\"\n\nimport { useState } from \"react\"\nimport { Field, FieldDescription, FieldTitle } from \"@/examples/radix/ui/"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/index.tsx",
    "chars": 2082,
    "preview": "import { FieldSeparator } from \"@/examples/radix/ui/field\"\n\nimport { AppearanceSettings } from \"./appearance-settings\"\ni"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/input-group-button.tsx",
    "chars": 2051,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n  InputGroup,\n  InputGroupAddon,\n  InputGroupButton,\n  InputGroupI"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/input-group-demo.tsx",
    "chars": 3198,
    "preview": "import {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuTrigger,\n} from \"@/examples/radix/ui/d"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/input-group-textarea.tsx",
    "chars": 1330,
    "preview": "import {\n  IconBrandJavascript,\n  IconCopy,\n  IconCornerDownLeft,\n  IconRefresh,\n} from \"@tabler/icons-react\"\n\nimport {\n"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/item-avatar.tsx",
    "chars": 2342,
    "preview": "import { Plus } from \"lucide-react\"\n\nimport {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@/registry/new-york-v4/"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/item-demo.tsx",
    "chars": 1152,
    "preview": "import { Button } from \"@/examples/radix/ui/button\"\nimport {\n  Item,\n  ItemActions,\n  ItemContent,\n  ItemDescription,\n  "
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/notion-prompt-form.tsx",
    "chars": 14613,
    "preview": "\"use client\"\n\nimport { useMemo, useState } from \"react\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/examples/"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/spinner-badge.tsx",
    "chars": 446,
    "preview": "import { Badge } from \"@/examples/radix/ui/badge\"\nimport { Spinner } from \"@/examples/radix/ui/spinner\"\n\nexport function"
  },
  {
    "path": "apps/v4/app/(app)/(root)/components/spinner-empty.tsx",
    "chars": 781,
    "preview": "import { Button } from \"@/examples/radix/ui/button\"\nimport {\n  Empty,\n  EmptyContent,\n  EmptyDescription,\n  EmptyHeader,"
  },
  {
    "path": "apps/v4/app/(app)/(root)/page.tsx",
    "chars": 3071,
    "preview": "import { type Metadata } from \"next\"\nimport Image from \"next/image\"\nimport Link from \"next/link\"\n\nimport { Announcement "
  },
  {
    "path": "apps/v4/app/(app)/blocks/[...categories]/page.tsx",
    "chars": 943,
    "preview": "import { getAllBlockIds } from \"@/lib/blocks\"\nimport { registryCategories } from \"@/lib/categories\"\nimport { BlockDispla"
  },
  {
    "path": "apps/v4/app/(app)/blocks/layout.tsx",
    "chars": 2068,
    "preview": "import { type Metadata } from \"next\"\nimport Link from \"next/link\"\n\nimport { Announcement } from \"@/components/announceme"
  },
  {
    "path": "apps/v4/app/(app)/blocks/page.tsx",
    "chars": 945,
    "preview": "import Link from \"next/link\"\n\nimport { BlockDisplay } from \"@/components/block-display\"\nimport { getActiveStyle } from \""
  },
  {
    "path": "apps/v4/app/(app)/charts/[type]/page.tsx",
    "chars": 2586,
    "preview": "import * as React from \"react\"\nimport { notFound } from \"next/navigation\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n  C"
  },
  {
    "path": "apps/v4/app/(app)/charts/charts.tsx",
    "chars": 13004,
    "preview": "import type * as React from \"react\"\n\nimport { ChartAreaAxes } from \"@/registry/new-york-v4/charts/chart-area-axes\"\nimpor"
  },
  {
    "path": "apps/v4/app/(app)/charts/layout.tsx",
    "chars": 1975,
    "preview": "import { type Metadata } from \"next\"\nimport Link from \"next/link\"\n\nimport { Announcement } from \"@/components/announceme"
  },
  {
    "path": "apps/v4/app/(app)/colors/layout.tsx",
    "chars": 2110,
    "preview": "import { type Metadata } from \"next\"\nimport Link from \"next/link\"\n\nimport { Announcement } from \"@/components/announceme"
  },
  {
    "path": "apps/v4/app/(app)/colors/page.tsx",
    "chars": 446,
    "preview": "import { getColors } from \"@/lib/colors\"\nimport { ColorPalette } from \"@/components/color-palette\"\n\nexport const dynamic"
  },
  {
    "path": "apps/v4/app/(app)/docs/[[...slug]]/page.tsx",
    "chars": 6681,
    "preview": "import Link from \"next/link\"\nimport { notFound } from \"next/navigation\"\nimport { mdxComponents } from \"@/mdx-components\""
  },
  {
    "path": "apps/v4/app/(app)/docs/changelog/page.tsx",
    "chars": 5538,
    "preview": "import Link from \"next/link\"\nimport { Button } from \"@/examples/radix/ui/button\"\nimport { mdxComponents } from \"@/mdx-co"
  },
  {
    "path": "apps/v4/app/(app)/docs/layout.tsx",
    "chars": 843,
    "preview": "import { source } from \"@/lib/source\"\nimport { DocsSidebar } from \"@/components/docs-sidebar\"\nimport { SidebarProvider }"
  },
  {
    "path": "apps/v4/app/(app)/examples/authentication/components/user-auth-form.tsx",
    "chars": 1739,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Icons } from \"@/components/icons"
  },
  {
    "path": "apps/v4/app/(app)/examples/authentication/page.tsx",
    "chars": 3373,
    "preview": "import { type Metadata } from \"next\"\nimport Image from \"next/image\"\nimport Link from \"next/link\"\n\nimport { cn } from \"@/"
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/components/app-sidebar.tsx",
    "chars": 3695,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport Link from \"next/link\"\nimport {\n  IconCamera,\n  IconChartBar,\n  IconD"
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/components/chart-area-interactive.tsx",
    "chars": 10647,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport { "
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/components/data-table.tsx",
    "chars": 26873,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n  closestCenter,\n  DndContext,\n  KeyboardSensor,\n  MouseSensor,\n  "
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/components/nav-documents.tsx",
    "chars": 2511,
    "preview": "\"use client\"\n\nimport {\n  IconDots,\n  IconFolder,\n  IconShare3,\n  IconTrash,\n  type Icon,\n} from \"@tabler/icons-react\"\n\ni"
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/components/nav-main.tsx",
    "chars": 855,
    "preview": "\"use client\"\n\nimport { type Icon } from \"@tabler/icons-react\"\n\nimport {\n  SidebarGroup,\n  SidebarGroupContent,\n  Sidebar"
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/components/nav-secondary.tsx",
    "chars": 926,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { type Icon } from \"@tabler/icons-react\"\n\nimport {\n  SidebarGroup,\n "
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/components/nav-user.tsx",
    "chars": 3382,
    "preview": "\"use client\"\n\nimport {\n  IconCreditCard,\n  IconDotsVertical,\n  IconLogout,\n  IconNotification,\n  IconUserCircle,\n} from "
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/components/section-cards.tsx",
    "chars": 3660,
    "preview": "import { IconTrendingDown, IconTrendingUp } from \"@tabler/icons-react\"\n\nimport { Badge } from \"@/registry/new-york-v4/ui"
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/components/site-header.tsx",
    "chars": 790,
    "preview": "import { IconCirclePlusFilled } from \"@tabler/icons-react\"\n\nimport { Button } from \"@/registry/new-york-v4/ui/button\"\n\ne"
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/data.json",
    "chars": 12795,
    "preview": "[\n  {\n    \"id\": 1,\n    \"header\": \"Cover page\",\n    \"type\": \"Cover page\",\n    \"status\": \"In Process\",\n    \"target\": \"18\","
  },
  {
    "path": "apps/v4/app/(app)/examples/dashboard/page.tsx",
    "chars": 1961,
    "preview": "import Image from \"next/image\"\n\nimport {\n  SidebarInset,\n  SidebarProvider,\n} from \"@/registry/new-york-v4/ui/sidebar\"\ni"
  },
  {
    "path": "apps/v4/app/(app)/examples/layout.tsx",
    "chars": 2577,
    "preview": "import { type Metadata } from \"next\"\nimport Link from \"next/link\"\n\nimport { Announcement } from \"@/components/announceme"
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/components/code-viewer.tsx",
    "chars": 2931,
    "preview": "import { Button } from \"@/registry/new-york-v4/ui/button\"\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  Dia"
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/components/maxlength-selector.tsx",
    "chars": 1738,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport type { Slider as SliderPrimitive } from \"radix-ui\"\n\nimport {\n  Hover"
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/components/model-selector.tsx",
    "chars": 5225,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronsUpDown } from \"lucide-react\"\nimport type { Popover "
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/components/preset-actions.tsx",
    "chars": 4061,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { MoreHorizontal } from \"lucide-react\"\nimport { toast } from \"sonner"
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/components/preset-save.tsx",
    "chars": 1359,
    "preview": "import { Button } from \"@/registry/new-york-v4/ui/button\"\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  Dia"
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/components/preset-selector.tsx",
    "chars": 2493,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronsUpDown } from \"lucide-react\"\nimport type { Popover "
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/components/preset-share.tsx",
    "chars": 1556,
    "preview": "import { Copy } from \"lucide-react\"\n\nimport { Button } from \"@/registry/new-york-v4/ui/button\"\nimport { Input } from \"@/"
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/components/temperature-selector.tsx",
    "chars": 1738,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport type { Slider as SliderPrimitive } from \"radix-ui\"\n\nimport {\n  Hover"
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/components/top-p-selector.tsx",
    "chars": 1632,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport type { Slider as SliderPrimitive } from \"radix-ui\"\n\nimport {\n  Hover"
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/data/models.ts",
    "chars": 2170,
    "preview": "export const types = [\"GPT-3\", \"Codex\"] as const\n\nexport type ModelType = (typeof types)[number]\n\nexport interface Model"
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/data/presets.ts",
    "chars": 981,
    "preview": "export interface Preset {\n  id: string\n  name: string\n}\n\nexport const presets: Preset[] = [\n  {\n    id: \"9cb0e66a-9937-4"
  },
  {
    "path": "apps/v4/app/(app)/examples/playground/page.tsx",
    "chars": 13579,
    "preview": "import { type Metadata } from \"next\"\nimport Image from \"next/image\"\nimport { RotateCcw } from \"lucide-react\"\n\nimport { B"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/appearance-settings.tsx",
    "chars": 5653,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/base/ui-rtl/button\"\nimport { ButtonGroup"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/button-group-demo.tsx",
    "chars": 5246,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/base/ui-rtl/button\"\nimport { ButtonGroup"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/button-group-input-group.tsx",
    "chars": 2356,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/base/ui-rtl/button\"\nimport { ButtonGroup"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/button-group-nested.tsx",
    "chars": 1512,
    "preview": "\"use client\"\n\nimport { Button } from \"@/examples/base/ui-rtl/button\"\nimport { ButtonGroup } from \"@/examples/base/ui-rtl"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/button-group-popover.tsx",
    "chars": 2379,
    "preview": "\"use client\"\n\nimport { Button } from \"@/examples/base/ui-rtl/button\"\nimport { ButtonGroup } from \"@/examples/base/ui-rtl"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/empty-avatar-group.tsx",
    "chars": 2029,
    "preview": "\"use client\"\n\nimport {\n  Avatar,\n  AvatarFallback,\n  AvatarGroup,\n  AvatarImage,\n} from \"@/examples/base/ui-rtl/avatar\"\n"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/field-checkbox.tsx",
    "chars": 918,
    "preview": "\"use client\"\n\nimport { Checkbox } from \"@/examples/base/ui-rtl/checkbox\"\nimport { Field, FieldLabel } from \"@/examples/b"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/field-demo.tsx",
    "chars": 7342,
    "preview": "\"use client\"\n\nimport { Button } from \"@/examples/base/ui-rtl/button\"\nimport { Checkbox } from \"@/examples/base/ui-rtl/ch"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/field-hear.tsx",
    "chars": 2921,
    "preview": "\"use client\"\n\nimport { Card, CardContent } from \"@/examples/base/ui-rtl/card\"\nimport { Checkbox } from \"@/examples/base/"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/field-slider.tsx",
    "chars": 1630,
    "preview": "\"use client\"\n\nimport { useState } from \"react\"\nimport {\n  Field,\n  FieldDescription,\n  FieldTitle,\n} from \"@/examples/ba"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/index.tsx",
    "chars": 2965,
    "preview": "\"use client\"\n\nimport { DirectionProvider } from \"@/examples/base/ui-rtl/direction\"\nimport { FieldSeparator } from \"@/exa"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/input-group-button.tsx",
    "chars": 2764,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n  InputGroup,\n  InputGroupAddon,\n  InputGroupButton,\n  InputGroupI"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/input-group-demo.tsx",
    "chars": 4014,
    "preview": "\"use client\"\n\nimport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuTrigger,\n} from \"@/examp"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/item-demo.tsx",
    "chars": 1724,
    "preview": "\"use client\"\n\nimport { Button } from \"@/examples/base/ui-rtl/button\"\nimport {\n  Item,\n  ItemActions,\n  ItemContent,\n  It"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/notion-prompt-form.tsx",
    "chars": 18360,
    "preview": "\"use client\"\n\nimport { useMemo, useState } from \"react\"\nimport {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@/ex"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/spinner-badge.tsx",
    "chars": 944,
    "preview": "\"use client\"\n\nimport { Badge } from \"@/examples/base/ui-rtl/badge\"\nimport { Spinner } from \"@/examples/base/ui-rtl/spinn"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/components/spinner-empty.tsx",
    "chars": 1284,
    "preview": "\"use client\"\n\nimport { Button } from \"@/examples/base/ui-rtl/button\"\nimport {\n  Empty,\n  EmptyContent,\n  EmptyDescriptio"
  },
  {
    "path": "apps/v4/app/(app)/examples/rtl/page.tsx",
    "chars": 292,
    "preview": "import { type Metadata } from \"next\"\n\nimport { RtlComponents } from \"./components\"\n\nexport const metadata: Metadata = {\n"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/components/columns.tsx",
    "chars": 3304,
    "preview": "\"use client\"\n\nimport { type ColumnDef } from \"@tanstack/react-table\"\n\nimport { Badge } from \"@/registry/new-york-v4/ui/b"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/components/data-table-column-header.tsx",
    "chars": 1925,
    "preview": "import { type Column } from \"@tanstack/react-table\"\nimport { ArrowDown, ArrowUp, ChevronsUpDown, EyeOff } from \"lucide-r"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/components/data-table-faceted-filter.tsx",
    "chars": 4994,
    "preview": "import * as React from \"react\"\nimport { type Column } from \"@tanstack/react-table\"\nimport { Check, PlusCircle } from \"lu"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/components/data-table-pagination.tsx",
    "chars": 3266,
    "preview": "import { type Table } from \"@tanstack/react-table\"\nimport {\n  ChevronLeft,\n  ChevronRight,\n  ChevronsLeft,\n  ChevronsRig"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/components/data-table-row-actions.tsx",
    "chars": 2080,
    "preview": "\"use client\"\n\nimport { type Row } from \"@tanstack/react-table\"\nimport { MoreHorizontal } from \"lucide-react\"\n\nimport { B"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/components/data-table-toolbar.tsx",
    "chars": 1908,
    "preview": "\"use client\"\n\nimport { type Table } from \"@tanstack/react-table\"\nimport { X } from \"lucide-react\"\n\nimport { Button } fro"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/components/data-table-view-options.tsx",
    "chars": 1511,
    "preview": "\"use client\"\n\nimport { type Table } from \"@tanstack/react-table\"\nimport { Settings2 } from \"lucide-react\"\n\nimport { Butt"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/components/data-table.tsx",
    "chars": 3676,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n  flexRender,\n  getCoreRowModel,\n  getFacetedRowModel,\n  getFacete"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/components/user-nav.tsx",
    "chars": 1963,
    "preview": "import {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@/registry/new-york-v4/ui/avatar\"\nimport { Button } from \"@/"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/data/data.tsx",
    "chars": 949,
    "preview": "import {\n  ArrowDown,\n  ArrowRight,\n  ArrowUp,\n  CheckCircle,\n  Circle,\n  CircleOff,\n  HelpCircle,\n  Timer,\n} from \"luci"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/data/schema.ts",
    "chars": 325,
    "preview": "import { z } from \"zod\"\n\n// We're keeping a simple non-relational schema here.\n// IRL, you will have a schema for your d"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/data/seed.ts",
    "chars": 630,
    "preview": "import fs from \"fs\"\nimport path from \"path\"\nimport { faker } from \"@faker-js/faker\"\n\nimport { labels, priorities, status"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/data/tasks.json",
    "chars": 19515,
    "preview": "[\n  {\n    \"id\": \"TASK-8782\",\n    \"title\": \"You can't compress the program without quantifying the open-source SSD pixel!"
  },
  {
    "path": "apps/v4/app/(app)/examples/tasks/page.tsx",
    "chars": 1878,
    "preview": "import { promises as fs } from \"fs\"\nimport path from \"path\"\nimport { type Metadata } from \"next\"\nimport Image from \"next"
  },
  {
    "path": "apps/v4/app/(app)/layout.tsx",
    "chars": 433,
    "preview": "import { SiteFooter } from \"@/components/site-footer\"\nimport { SiteHeader } from \"@/components/site-header\"\n\nexport defa"
  },
  {
    "path": "apps/v4/app/(app)/llm/[[...slug]]/route.ts",
    "chars": 1320,
    "preview": "import { notFound } from \"next/navigation\"\nimport { NextResponse, type NextRequest } from \"next/server\"\n\nimport { proces"
  },
  {
    "path": "apps/v4/app/(app)/themes/layout.tsx",
    "chars": 1537,
    "preview": "import { type Metadata } from \"next\"\nimport Link from \"next/link\"\n\nimport { Announcement } from \"@/components/announceme"
  },
  {
    "path": "apps/v4/app/(app)/themes/page.tsx",
    "chars": 679,
    "preview": "import { CardsDemo } from \"@/components/cards\"\nimport { ThemeCustomizer } from \"@/components/theme-customizer\"\n\nexport c"
  },
  {
    "path": "apps/v4/app/(create)/components/accent-picker.tsx",
    "chars": 3869,
    "preview": "\"use client\"\n\nimport { MENU_ACCENTS, type MenuAccentValue } from \"@/registry/config\"\nimport { LockButton } from \"@/app/("
  },
  {
    "path": "apps/v4/app/(create)/components/action-menu.tsx",
    "chars": 2305,
    "preview": "\"use client\"\n\nimport Script from \"next/script\"\nimport {\n  Command,\n  CommandDialog,\n  CommandEmpty,\n  CommandGroup,\n  Co"
  },
  {
    "path": "apps/v4/app/(create)/components/base-color-picker.tsx",
    "chars": 2605,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { useMounted } from \"@/hooks/use-mounted\"\nimport { BASE_COLORS, typ"
  },
  {
    "path": "apps/v4/app/(create)/components/base-picker.tsx",
    "chars": 2367,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { BASES } from \"@/registry/config\"\nimport {\n  Picker,\n  PickerConte"
  },
  {
    "path": "apps/v4/app/(create)/components/chart-color-picker.tsx",
    "chars": 4150,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { useMounted } from \"@/hooks/use-mounted\"\nimport {\n  BASE_COLORS,\n "
  },
  {
    "path": "apps/v4/app/(create)/components/copy-preset.tsx",
    "chars": 1215,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/base/ui/button\"\n\nimport { cn } from \"@/l"
  },
  {
    "path": "apps/v4/app/(create)/components/customizer.tsx",
    "chars": 4468,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n  Card,\n  CardContent,\n  CardFooter,\n  CardHeader,\n} from \"@/examp"
  },
  {
    "path": "apps/v4/app/(create)/components/design-system-provider.tsx",
    "chars": 8442,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n  buildRegistryTheme,\n  DEFAULT_CONFIG,\n  type DesignSystemConfig"
  },
  {
    "path": "apps/v4/app/(create)/components/font-picker.tsx",
    "chars": 4476,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { LockButton } from \"@/app/(create)/components/lock-button\"\nimport "
  },
  {
    "path": "apps/v4/app/(create)/components/history-buttons.tsx",
    "chars": 2401,
    "preview": "\"use client\"\n\nimport Script from \"next/script\"\nimport { Button } from \"@/examples/base/ui/button\"\nimport { Redo02Icon, U"
  },
  {
    "path": "apps/v4/app/(create)/components/icon-library-picker.tsx",
    "chars": 5650,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { iconLibraries, type IconLibraryName } from \"@/registry/config\"\nim"
  },
  {
    "path": "apps/v4/app/(create)/components/icon-placeholder.tsx",
    "chars": 2095,
    "preview": "\"use client\"\n\nimport { lazy, Suspense } from \"react\"\nimport { SquareIcon } from \"lucide-react\"\nimport type { IconLibrary"
  },
  {
    "path": "apps/v4/app/(create)/components/item-explorer.tsx",
    "chars": 4143,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport Link from \"next/link\"\nimport {\n  Collapsible,\n  CollapsibleContent,\n"
  },
  {
    "path": "apps/v4/app/(create)/components/lock-button.tsx",
    "chars": 1174,
    "preview": "\"use client\"\n\nimport {\n  SquareLock01Icon,\n  SquareUnlock01Icon,\n} from \"@hugeicons/core-free-icons\"\nimport { HugeiconsI"
  },
  {
    "path": "apps/v4/app/(create)/components/main-menu.tsx",
    "chars": 2970,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { type Button } from \"@/examples/base/ui/button\"\nimport { Menu09Icon"
  },
  {
    "path": "apps/v4/app/(create)/components/menu-picker.tsx",
    "chars": 5234,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Menu02Icon } from \"@hugeicons/core-free-icons\"\nimport { HugeiconsI"
  },
  {
    "path": "apps/v4/app/(create)/components/mode-switcher.tsx",
    "chars": 2526,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport Script from \"next/script\"\nimport { Button } from \"@/examples/base/ui"
  },
  {
    "path": "apps/v4/app/(create)/components/picker.tsx",
    "chars": 9321,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\n\nimport { cn } "
  },
  {
    "path": "apps/v4/app/(create)/components/preset-handler.tsx",
    "chars": 915,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { generateRandomPreset, "
  },
  {
    "path": "apps/v4/app/(create)/components/preset-picker.tsx",
    "chars": 3831,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { STYLES, type Preset } from \"@/registry/config\"\nimport {\n  Picker,"
  },
  {
    "path": "apps/v4/app/(create)/components/preview-style.tsx",
    "chars": 257,
    "preview": "\"use client\"\n\nexport function PreviewStyle() {\n  return (\n    <style jsx global>{`\n      html {\n        -ms-overflow-sty"
  },
  {
    "path": "apps/v4/app/(create)/components/preview.tsx",
    "chars": 4198,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { CMD_K_FORWARD_TYPE } from \"@/app/(create)/components/action-menu\""
  },
  {
    "path": "apps/v4/app/(create)/components/project-form.tsx",
    "chars": 13323,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/base/ui/button\"\nimport {\n  Dialog,\n  Dia"
  },
  {
    "path": "apps/v4/app/(create)/components/radius-picker.tsx",
    "chars": 3484,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { RADII, type RadiusValue } from \"@/registry/config\"\nimport { LockB"
  },
  {
    "path": "apps/v4/app/(create)/components/random-button.tsx",
    "chars": 2010,
    "preview": "\"use client\"\n\nimport Script from \"next/script\"\nimport { Button } from \"@/examples/base/ui/button\"\nimport { DiceFaces05Ic"
  },
  {
    "path": "apps/v4/app/(create)/components/reset-button.tsx",
    "chars": 1039,
    "preview": "\"use client\"\n\nimport {\n  AlertDialog,\n  AlertDialogAction,\n  AlertDialogCancel,\n  AlertDialogContent,\n  AlertDialogDescr"
  },
  {
    "path": "apps/v4/app/(create)/components/share-button.tsx",
    "chars": 1643,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/base/ui/button\"\nimport { Share03Icon, Ti"
  },
  {
    "path": "apps/v4/app/(create)/components/style-picker.tsx",
    "chars": 2351,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { type Style, type StyleName } from \"@/registry/config\"\nimport { Lo"
  },
  {
    "path": "apps/v4/app/(create)/components/theme-picker.tsx",
    "chars": 3918,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { useMounted } from \"@/hooks/use-mounted\"\nimport { BASE_COLORS, typ"
  },
  {
    "path": "apps/v4/app/(create)/components/v0-button.tsx",
    "chars": 1638,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/base/ui/button\"\nimport { Skeleton } from"
  },
  {
    "path": "apps/v4/app/(create)/components/welcome-dialog.tsx",
    "chars": 2200,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Button } from \"@/examples/base/ui/button\"\nimport {\n  Dialog,\n  Dia"
  },
  {
    "path": "apps/v4/app/(create)/create/layout.tsx",
    "chars": 401,
    "preview": "import { Suspense } from \"react\"\n\nimport { HistoryProvider } from \"@/app/(create)/hooks/use-history\"\nimport { LocksProvi"
  },
  {
    "path": "apps/v4/app/(create)/create/page.tsx",
    "chars": 2045,
    "preview": "import { type Metadata } from \"next\"\n\nimport { siteConfig } from \"@/lib/config\"\nimport { absoluteUrl } from \"@/lib/utils"
  },
  {
    "path": "apps/v4/app/(create)/hooks/use-action-menu.ts",
    "chars": 3617,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { type RegistryItem } from \"shadcn/schema\"\nimport useSWR from \"swr\"\n"
  },
  {
    "path": "apps/v4/app/(create)/hooks/use-design-system.ts",
    "chars": 351,
    "preview": "\"use client\"\n\nimport { getPresetCode } from \"@/app/(create)/lib/preset-code\"\nimport { useDesignSystemSearchParams } from"
  },
  {
    "path": "apps/v4/app/(create)/hooks/use-history.tsx",
    "chars": 3833,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { usePathname, useRouter, useSearchParams } from \"next/navigation\"\n\n"
  },
  {
    "path": "apps/v4/app/(create)/hooks/use-iframe-sync.tsx",
    "chars": 1499,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport type { DesignSystemSearchParams } from \"@/app/(create)/lib/search-p"
  },
  {
    "path": "apps/v4/app/(create)/hooks/use-locks.tsx",
    "chars": 1332,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nexport type LockableParam =\n  | \"style\"\n  | \"baseColor\"\n  | \"theme\"\n  | \"c"
  },
  {
    "path": "apps/v4/app/(create)/hooks/use-random.tsx",
    "chars": 5448,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n  BASE_COLORS,\n  getThemesForBaseColor,\n  iconLibraries,\n  MENU_A"
  },
  {
    "path": "apps/v4/app/(create)/hooks/use-reset.tsx",
    "chars": 1659,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport useSWR from \"swr\"\n\nimport { DEFAULT_CONFIG } from \"@/registry/config"
  },
  {
    "path": "apps/v4/app/(create)/hooks/use-theme-toggle.tsx",
    "chars": 1244,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { useTheme } from \"next-themes\"\n\nimport { useMetaColor } from \"@/hoo"
  },
  {
    "path": "apps/v4/app/(create)/init/md/build-instructions.ts",
    "chars": 8487,
    "preview": "import dedent from \"dedent\"\n\nimport { UI_COMPONENTS } from \"@/lib/components\"\nimport {\n  buildRegistryBase,\n  getBodyFon"
  },
  {
    "path": "apps/v4/app/(create)/init/md/route.ts",
    "chars": 855,
    "preview": "import { type NextRequest } from \"next/server\"\nimport { track } from \"@vercel/analytics/server\"\n\nimport { parseDesignSys"
  },
  {
    "path": "apps/v4/app/(create)/init/parse-config.test.ts",
    "chars": 625,
    "preview": "import { describe, expect, it } from \"vitest\"\n\nimport { parseDesignSystemConfig } from \"./parse-config\"\n\ndescribe(\"parse"
  },
  {
    "path": "apps/v4/app/(create)/init/parse-config.ts",
    "chars": 1863,
    "preview": "import { decodePreset, isPresetCode } from \"shadcn/preset\"\n\nimport {\n  designSystemConfigSchema,\n  type DesignSystemConf"
  },
  {
    "path": "apps/v4/app/(create)/init/route.ts",
    "chars": 1576,
    "preview": "import { NextResponse, type NextRequest } from \"next/server\"\nimport { track } from \"@vercel/analytics/server\"\nimport { i"
  },
  {
    "path": "apps/v4/app/(create)/init/v0/route.ts",
    "chars": 1268,
    "preview": "import { after, NextResponse, type NextRequest } from \"next/server\"\nimport { track } from \"@vercel/analytics/server\"\nimp"
  },
  {
    "path": "apps/v4/app/(create)/lib/api.ts",
    "chars": 1827,
    "preview": "import \"server-only\"\n\nimport { registryItemSchema } from \"shadcn/schema\"\n\nimport { BASES, getThemesForBaseColor, type Ba"
  },
  {
    "path": "apps/v4/app/(create)/lib/constants.ts",
    "chars": 126,
    "preview": "export const ALLOWED_ITEM_TYPES = [\"registry:block\", \"registry:example\"]\n\nexport const EXCLUDED_ITEMS = [\"component-exam"
  },
  {
    "path": "apps/v4/app/(create)/lib/fonts.ts",
    "chars": 4663,
    "preview": "import {\n  DM_Sans,\n  Figtree,\n  Geist,\n  Geist_Mono,\n  IBM_Plex_Sans,\n  Instrument_Sans,\n  Inter,\n  JetBrains_Mono,\n  L"
  },
  {
    "path": "apps/v4/app/(create)/lib/merge-theme.ts",
    "chars": 881,
    "preview": "import { registryItemSchema, type RegistryItem } from \"shadcn/schema\"\n\nimport { BASE_COLORS, THEMES } from \"@/registry/c"
  },
  {
    "path": "apps/v4/app/(create)/lib/preset-code.ts",
    "chars": 1070,
    "preview": "import { encodePreset, type PresetConfig } from \"shadcn/preset\"\n\nimport { type DesignSystemConfig } from \"@/registry/con"
  },
  {
    "path": "apps/v4/app/(create)/lib/preset-query.test.ts",
    "chars": 909,
    "preview": "import { describe, expect, it } from \"vitest\"\n\nimport { resolvePresetOverrides } from \"./preset-query\"\n\ndescribe(\"resolv"
  },
  {
    "path": "apps/v4/app/(create)/lib/preset-query.ts",
    "chars": 989,
    "preview": "import { V1_CHART_COLOR_MAP, type PresetConfig } from \"shadcn/preset\"\n\nimport { type ChartColorName, type FontHeadingVal"
  },
  {
    "path": "apps/v4/app/(create)/lib/randomize-biases.ts",
    "chars": 2622,
    "preview": "import type {\n  BaseColor,\n  BaseColorName,\n  Radius,\n  StyleName,\n  Theme,\n  ThemeName,\n} from \"@/registry/config\"\n\nimp"
  },
  {
    "path": "apps/v4/app/(create)/lib/search-params.ts",
    "chars": 9083,
    "preview": "import * as React from \"react\"\nimport { useSearchParams } from \"next/navigation\"\nimport { useQueryStates } from \"nuqs\"\ni"
  },
  {
    "path": "apps/v4/app/(create)/lib/templates.ts",
    "chars": 11492,
    "preview": "export const TEMPLATES = [\n  {\n    value: \"next\",\n    title: \"Next.js\",\n    logo: '<svg role=\"img\" viewBox=\"0 0 24 24\" x"
  },
  {
    "path": "apps/v4/app/(create)/lib/utils.ts",
    "chars": 1168,
    "preview": "import { type RegistryItem } from \"shadcn/schema\"\n\nconst mapping = {\n  \"registry:block\": \"Blocks\",\n  \"registry:example\":"
  },
  {
    "path": "apps/v4/app/(create)/lib/v0.test.ts",
    "chars": 3076,
    "preview": "import { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\"\n\nimport { DEFAULT_CONFIG } from \"@/registry/con"
  },
  {
    "path": "apps/v4/app/(create)/lib/v0.ts",
    "chars": 16806,
    "preview": "import dedent from \"dedent\"\nimport {\n  registryItemFileSchema,\n  registryItemSchema,\n  type configSchema,\n  type Registr"
  },
  {
    "path": "apps/v4/app/(create)/preview/[base]/[name]/page.tsx",
    "chars": 3662,
    "preview": "import * as React from \"react\"\nimport { type Metadata } from \"next\"\nimport { notFound } from \"next/navigation\"\n\nimport {"
  },
  {
    "path": "apps/v4/app/(examples)/dashboard/components/app-sidebar.tsx",
    "chars": 3600,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n  IconCamera,\n  IconChartBar,\n  IconDashboard,\n  IconDatabase,\n  I"
  },
  {
    "path": "apps/v4/app/(examples)/dashboard/components/chart-area-interactive.tsx",
    "chars": 10743,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport { "
  },
  {
    "path": "apps/v4/app/(examples)/dashboard/components/data-table.tsx",
    "chars": 26873,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n  closestCenter,\n  DndContext,\n  KeyboardSensor,\n  MouseSensor,\n  "
  },
  {
    "path": "apps/v4/app/(examples)/dashboard/components/mode-toggle.tsx",
    "chars": 653,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { IconBrightness } from \"@tabler/icons-react\"\nimport { useTheme } fr"
  },
  {
    "path": "apps/v4/app/(examples)/dashboard/components/nav-documents.tsx",
    "chars": 2511,
    "preview": "\"use client\"\n\nimport {\n  IconDots,\n  IconFolder,\n  IconShare3,\n  IconTrash,\n  type Icon,\n} from \"@tabler/icons-react\"\n\ni"
  },
  {
    "path": "apps/v4/app/(examples)/dashboard/components/nav-main.tsx",
    "chars": 1699,
    "preview": "\"use client\"\n\nimport { IconCirclePlusFilled, IconMail, type Icon } from \"@tabler/icons-react\"\n\nimport { Button } from \"@"
  },
  {
    "path": "apps/v4/app/(examples)/dashboard/components/nav-secondary.tsx",
    "chars": 1986,
    "preview": "\"use client\"\n\nimport * as React from \"react\"\nimport { IconBrightness, type Icon } from \"@tabler/icons-react\"\nimport { us"
  }
]

// ... and 6554 more files (download for full content)

About this extraction

This page contains the full source code of the shadcn-ui/ui GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 6754 files (32.8 MB), approximately 9.0M tokens, and a symbol index with 6320 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!