diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md
new file mode 100644
index 0000000..dd84ea7
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.md
@@ -0,0 +1,38 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+ - Browser [e.g. chrome, safari]
+ - Version [e.g. 22]
+
+**Smartphone (please complete the following information):**
+ - Device: [e.g. iPhone6]
+ - OS: [e.g. iOS8.1]
+ - Browser [e.g. stock browser, safari]
+ - Version [e.g. 22]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md
new file mode 100644
index 0000000..bbcbbe7
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature-request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..8c7ac3d
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,35 @@
+
+
+### ๐ Linked issue
+
+
+
+### โ Type of change
+
+
+
+- [ ] ๐ Documentation (updates to the documentation, readme or JSdoc annotations)
+- [ ] ๐ Bug fix (a non-breaking change that fixes an issue)
+- [ ] ๐ Enhancement (improving an existing functionality like performance)
+- [ ] โจ New feature (a non-breaking change that adds functionality)
+- [ ] ๐งน Chore (updates to the build process or auxiliary tools and libraries)
+- [ ] โ ๏ธ Breaking change (fix or feature that would cause existing functionality to change)
+
+### ๐ Description
+
+
+
+
+
+### ๐ธ Screenshots (if appropriate)
+
+
+
+### ๐ Checklist
+
+
+
+
+
+- [ ] I have linked an issue or discussion.
+- [ ] I have updated the documentation accordingly.
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
new file mode 100644
index 0000000..536e9fc
--- /dev/null
+++ b/.github/workflows/release.yaml
@@ -0,0 +1,27 @@
+# .github/workflows/release.yml
+
+name: Release
+
+permissions:
+ contents: write
+
+on:
+ push:
+ tags:
+ - "v*"
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - uses: actions/setup-node@v3
+ with:
+ node-version: 18.x
+
+ - run: npx changelogithub
+ env:
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b494848
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,37 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+.nuxt
+.env
+node_modules
+.DS_Store
+dist
+dist-ssr
+coverage
+*.local
+
+/cypress/videos/
+/cypress/screenshots/
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+!.vscode/settings.json
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+test-results/
+playwright-report/
+vite.config.ts.timestamp*
+
+**/.vitepress/cache/*
\ No newline at end of file
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..3bd3b7d
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+shell-emulator=true
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..dc6958f
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,4 @@
+{
+ "singleQuote": false,
+ "semi": true
+}
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..64db0b2
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,6 @@
+{
+ "recommendations": [
+ "Vue.volar",
+ "dbaeumer.vscode-eslint"
+ ]
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..c9442fb
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,34 @@
+{
+ "vue.server.hybridMode": true,
+ "eslint.experimental.useFlatConfig": true,
+ "prettier.enable": false,
+ "editor.formatOnSave": false,
+ "editor.codeActionsOnSave": {
+ "source.fixAll.eslint": "explicit",
+ "source.organizeImports": "never"
+ },
+ "eslint.rules.customizations": [
+ { "rule": "style/*", "severity": "off" },
+ { "rule": "format/*", "severity": "off" },
+ { "rule": "*-indent", "severity": "off" },
+ { "rule": "*-spacing", "severity": "off" },
+ { "rule": "*-spaces", "severity": "off" },
+ { "rule": "*-order", "severity": "off" },
+ { "rule": "*-dangle", "severity": "off" },
+ { "rule": "*-newline", "severity": "off" },
+ { "rule": "*quotes", "severity": "off" },
+ { "rule": "*semi", "severity": "off" }
+ ],
+ "eslint.validate": [
+ "javascript",
+ "javascriptreact",
+ "typescript",
+ "typescriptreact",
+ "vue",
+ "html",
+ "markdown",
+ "json",
+ "jsonc",
+ "yaml"
+ ]
+}
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..b270fa6
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,128 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+* Demonstrating empathy and kindness toward other people
+* Being respectful of differing opinions, viewpoints, and experiences
+* Giving and gracefully accepting constructive feedback
+* Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+* Focusing on what is best not just for us as individuals, but for the
+ overall community
+
+Examples of unacceptable behavior include:
+
+* The use of sexualized language or imagery, and sexual attention or
+ advances of any kind
+* Trolling, insulting or derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or email
+ address, without their explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement at
+hello@lemonsqueezy.com.
+All complaints will be reviewed and investigated promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series
+of actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or
+permanent ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within
+the community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 2.0, available at
+https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+
+Community Impact Guidelines were inspired by [Mozilla's code of conduct
+enforcement ladder](https://github.com/mozilla/diversity).
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see the FAQ at
+https://www.contributor-covenant.org/faq. Translations are available at
+https://www.contributor-covenant.org/translations.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..48446e2
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,53 @@
+# Contributing to Wedges
+
+๐ Hey there! We're thrilled that you're interested in contributing to Wedges. Before submitting your contribution, please take a moment to read through this guide.
+
+## Repository Structure
+
+Our repository is managed with [PNPM](https://pnpm.io/). Make sure you have PNPM installed to work with this repository.
+
+1. **packages/wedges-vue**:
+ This is the heart of our project โ the UI library itself. Here you'll find all the components and utilities Wedges UI library.
+
+2. **apps/www**:
+ Contains the Vitepress documentation site for the Wedges UI library. This is where we maintain the documentation, examples, and guides for using the library.
+
+## Tooling and Technologies
+
+In the Wedges project, we utilize a variety of tools to ensure code quality, consistency, and smooth development processes.
+
+- **[Prettier](https://prettier.io/)**: for code formatting. Our codebase adheres to the configuration specified in `.prettierrc`.
+
+- **[ESLint](https://eslint.org/)**: for code linting. Make sure to check and fix any linting issues before submitting your code.
+
+- **[vite](https://vite.dev/)**: for bundling the library files. We bundle both ESM and CJS versions of the library.
+
+## Commit Convention
+
+Our project follows the [Conventional Commits](https://www.conventionalcommits.org/) specification for commit messages.
+
+When preparing your commits for a Pull Request, ensure they adhere to our commit message format: `type(scope): description`. The `type` and `scope` help categorize the commit, making our history readable and organized.
+
+### Types of Commits
+
+Your commits should fall into one of the following categories:
+
+- `feat` (or `feature`): Introduces new code or functionality to the project.
+
+- `fix`: Addresses and resolves a bug. Linking to an issue if available is highly encouraged.
+
+- `refactor`: Code changes that neither fix a bug nor add a feature, but improve the existing codebase.
+
+- `docs`: Updates or additions to documentation, such as README files, usage guides, etc.
+
+- `build`: Changes affecting the build system, including dependency updates and additions.
+
+- `test`: Modifications involving tests, including adding new tests or refining existing ones.
+
+- `ci`: Adjustments to our continuous integration setup, like GitHub Actions or other CI tools.
+
+- `chore`: General maintenance and organizational tasks that don't fit other categories.
+
+For example, a commit message might look like: `feat(components): introduce new Button styles`.
+
+Thank you for making Wedges better! ๐
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..9100080
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 radix-vue
+
+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.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..2c5980d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,61 @@
+
+
diff --git a/apps/docs/src/components/examples/TooltipPreview.vue b/apps/docs/src/components/examples/TooltipPreview.vue
new file mode 100644
index 0000000..77e3b42
--- /dev/null
+++ b/apps/docs/src/components/examples/TooltipPreview.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/docs/about.md b/apps/docs/src/content/docs/about.md
new file mode 100644
index 0000000..e5ed68c
--- /dev/null
+++ b/apps/docs/src/content/docs/about.md
@@ -0,0 +1,18 @@
+---
+title: About
+description: Powered by amazing open source projects.
+---
+
+## About
+
+[wedges-vue](https://github.com/raymondmuller/wedges-vue) is a Vue port of [Wedges](https://www.lemonsqueezy.com/wedges).
+
+## Credits
+
+- [wedges](https://www.lemonsqueezy.com/wedges) - A professionally designed design system by LemonSqueezy
+- [shadcn](https://twitter.com/shadcn) - The brilliant mind behind the designs, methodology, and implementation of the original [shadcn/ui](https://ui.shadcn.com).
+- [Radix Vue](https://radix-vue.com) - The headless components that power this project.
+- [Radix UI](https://radix-ui.com) - The headless components and examples that the original [shadcn/ui](https://ui.shadcn.com) was built on.
+
+## License
+Wedges is licensed under the MIT License.
diff --git a/apps/docs/src/content/docs/components/alert.md b/apps/docs/src/content/docs/components/alert.md
new file mode 100644
index 0000000..76f79d0
--- /dev/null
+++ b/apps/docs/src/content/docs/components/alert.md
@@ -0,0 +1,58 @@
+---
+title: Alert
+description: Displays a callout for user attention.
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+ Heads up!
+
+ You can add components to your app using the cli.
+
+
+
+```
+## API Reference
+### Props
+
+
+### Slots
+
+
+### Emits
+
+
+## Examples
+
+### Default
+
+### Destructive
+
+
diff --git a/apps/docs/src/content/docs/components/avatar-group.md b/apps/docs/src/content/docs/components/avatar-group.md
new file mode 100644
index 0000000..16b3e3f
--- /dev/null
+++ b/apps/docs/src/content/docs/components/avatar-group.md
@@ -0,0 +1,82 @@
+---
+title: Avatar Group
+description: A collection of Avatar elements.
+source: packages/wedges-vue/src/components/avatar
+primitive: https://www.radix-vue.com/components/avatar.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+For more advanced usage, `AvatarGroupRoot` component can be used to compose your own group of `AvatarGroupItem`.
+
+```vue
+
+
+
+
+
+
+
+ 3,000 followers
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+The following example shows an Avatar component with an image, size set to lg, using initials 'MQ" as a fallback, and status and notification set to different colors.
+
+
+
+The following example shows more advanced usage of the `AvatarGroup` component and how you can customize it with Tailwind CSS classes.
+
+
+
+For automatic inheritance of background color for borders in `AvatarGroup`, use the `wg-bg-{color}` utility class on parent element instead of `bg-{color}`. For example:
+
+
diff --git a/apps/docs/src/content/docs/components/avatar.md b/apps/docs/src/content/docs/components/avatar.md
new file mode 100644
index 0000000..d0bd74a
--- /dev/null
+++ b/apps/docs/src/content/docs/components/avatar.md
@@ -0,0 +1,46 @@
+---
+title: Avatar
+description: An image element with a fallback for representing the user.
+source: packages/wedges-vue/src/components/avatar
+primitive: https://www.radix-vue.com/components/avatar.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## API Reference
+
+#### Avatar
+
+Represents an avatar image. Extends the Radix Avatar Image primitive and includes all of its props.
+
+### Props
+
+
+## Examples
+
+The following example shows an Avatar component with an image, size set to lg, using initials "MQ" as a fallback, and status and notification set to different colors.
+
+
+
+The following examples show different variants of the Avatar component.
+
+
+
+The following example shows more advanced usage of the Avatar component and how you can customize it with Tailwind CSS classes.
+
+
diff --git a/apps/docs/src/content/docs/components/badge.md b/apps/docs/src/content/docs/components/badge.md
new file mode 100644
index 0000000..070898b
--- /dev/null
+++ b/apps/docs/src/content/docs/components/badge.md
@@ -0,0 +1,31 @@
+---
+title: Badge
+description: Displays a badge or a component that looks like a badge.
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+ Badge
+
+```
+
+## API Reference
+
+The `Badge` component also includes the following props:
+
+### Props
+
+
+## Examples
+
+### Default
+
+
diff --git a/apps/docs/src/content/docs/components/button-group.md b/apps/docs/src/content/docs/components/button-group.md
new file mode 100644
index 0000000..ef5640a
--- /dev/null
+++ b/apps/docs/src/content/docs/components/button-group.md
@@ -0,0 +1,48 @@
+---
+title: Button Group
+description: A collection of Button elements.
+source: packages/wedges-vue/src/components/avatar
+primitive: https://www.radix-vue.com/components/avatar.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+ Button
+ Button
+
+
+```
+
+### API Reference
+
+### ButtonGroup
+Alternatively, `ButtonGroupRoot` can be used in place of this component. `ButtonGroup` includes these props:
+
+
+### ButtonGroupItem
+Includes all props from the Button component, with the exception of variant, shape, and size props.
+
+Includes all props from the `Button` component, with the exception of `variant`, `shape`, and `size` props.
+
+The type `ButtonGroupItemProps` is defined as follows:
+
+
+
+## Examples
+
+The following examples shows different variants of the `ButtonGroup` component.
+
+
+
+The following examples shows a combination of the `ButtonGroup` and `Tooltip` components.
+
+
diff --git a/apps/docs/src/content/docs/components/button.md b/apps/docs/src/content/docs/components/button.md
new file mode 100644
index 0000000..b64625a
--- /dev/null
+++ b/apps/docs/src/content/docs/components/button.md
@@ -0,0 +1,27 @@
+---
+title: Button
+description: Displays a button or a component that looks like a button.
+---
+
+
+
+## API Reference
+
+The Button component includes the following props:
+
+### Props
+
+
+## Examples
+
+The following example shows different variants of the `Button` component.
+
+
+
+The following example shows various Button components with "sm" size prop.
+
+
+
+Next example shows different destructive Button components.
+
+
diff --git a/apps/docs/src/content/docs/components/checkbox-group.md b/apps/docs/src/content/docs/components/checkbox-group.md
new file mode 100644
index 0000000..03713a1
--- /dev/null
+++ b/apps/docs/src/content/docs/components/checkbox-group.md
@@ -0,0 +1,36 @@
+---
+title: Checkbox Group
+description: A visual group of Checkbox controls, allowing for the selection of multiple options within a set.
+source: packages/wedges-vue/src/components/checkbox-group
+primitive: https://www.radix-vue.com/components/checkbox.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+### API Reference
+
+#### CheckboxGroup
+
+Alternatively, `CheckboxGroupRoot` can be used in place of this component.`CheckboxGroup` includes these props:
+
+
+
+#### CheckboxGroupItem
+
+Shares all the properties of the `Checkbox` component. Details can be found here.
+
+## Examples
+
+
diff --git a/apps/docs/src/content/docs/components/checkbox.md b/apps/docs/src/content/docs/components/checkbox.md
new file mode 100644
index 0000000..67290b0
--- /dev/null
+++ b/apps/docs/src/content/docs/components/checkbox.md
@@ -0,0 +1,40 @@
+---
+title: Checkbox
+description: A user interface control enabling toggling between checked and unchecked states.
+source: packages/wedges-vue/src/components/checkbox
+primitive: https://www.radix-vue.com/components/checkbox.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+For more advanced usage you can use Checkbox.Root component to customize the appearance of the checkbox.
+
+## API Reference
+
+`Checkbox` component extends Radix Checkbox primitive and supports all of its props.
+
+## Props
+
+
+## Accessibility
+The Checkbox component supports all accessibility features of the Radix Checkbox primitive.
+
+## Examples
+
+
+
+The following example shows a customized Checkbox component:
+
+
diff --git a/apps/docs/src/content/docs/components/dropdown-menu.md b/apps/docs/src/content/docs/components/dropdown-menu.md
new file mode 100644
index 0000000..8a6fc2f
--- /dev/null
+++ b/apps/docs/src/content/docs/components/dropdown-menu.md
@@ -0,0 +1,103 @@
+---
+title: Dropdown Menu
+description: Displays a menu to the user โ such as a set of actions or functions โ triggered by a button.
+source: packages/wedges-vue/src/components/dropdown-menu
+primitive: https://www.radix-vue.com/components/dropdown-menu.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+ Open
+
+ My Account
+
+ Profile
+ Billing
+ Team
+ Subscription
+
+
+
+```
+
+### API Reference
+
+
+
+#### DropdownMenu
+
+Extends the Radix Dropdown Menu Root primitive.
+
+#### DropdownMenuTrigger
+
+Extends the Radix Dropdown Menu Trigger primitive.
+
+#### DropdownMenuPortal
+
+Extends the Radix Dropdown Menu Portal primitive.
+
+#### DropdownMenuContent
+
+Extends the Radix Dropdown Menu Content primitive with custom configuration.
+
+#### DropdownMenuItem
+
+Extends the Radix Dropdown Menu Item primitive with custom configuration.
+
+#### DropdownMenuGroup
+
+Extends the Radix Dropdown Menu Group primitive.
+
+#### DropdownMenuLabel
+
+Extends the Radix Dropdown Menu Label primitive with custom styling.
+
+#### DropdownMenuCheckboxItem
+
+Extends the Radix Dropdown Menu Checkbox Item primitive with custom configuration.
+
+#### DropdownMenuRadioGroup
+
+Extends the Radix Dropdown Menu Radio Group primitive.
+
+#### DropdownMenuRadioItem
+
+Extends the Radix Dropdown Menu Radio Item primitive with custom configuration.
+
+#### DropdownMenuSeparator
+
+Extends the Radix Dropdown Menu Radio Separator primitive with custom styling.
+
+#### DropdownMenuSub
+
+Extends the Radix Dropdown Menu Sub primitive with custom configuration.
+
+#### DropdownMenuSubTrigger
+
+Extends the Radix Dropdown Menu SubTrigger primitive with custom configuration.
+
+#### DropdownMenuSubContent
+
+Extends the Radix Dropdown Menu SubContent primitive with custom configuration.
+
+## Examples
+
+
+
+
diff --git a/apps/docs/src/content/docs/components/input.md b/apps/docs/src/content/docs/components/input.md
new file mode 100644
index 0000000..cdfe911
--- /dev/null
+++ b/apps/docs/src/content/docs/components/input.md
@@ -0,0 +1,23 @@
+---
+title: Input
+description: Displays a form input field or a component that looks like an input field.
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
diff --git a/apps/docs/src/content/docs/components/kbd.md b/apps/docs/src/content/docs/components/kbd.md
new file mode 100644
index 0000000..649d430
--- /dev/null
+++ b/apps/docs/src/content/docs/components/kbd.md
@@ -0,0 +1,27 @@
+---
+title: Kbd
+description: Displays a form input field or a component that looks like an input field.
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+ K
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+
diff --git a/apps/docs/src/content/docs/components/label.md b/apps/docs/src/content/docs/components/label.md
new file mode 100644
index 0000000..8a1beef
--- /dev/null
+++ b/apps/docs/src/content/docs/components/label.md
@@ -0,0 +1,31 @@
+---
+title: Label
+description: Renders an accessible label associated with controls.
+source: packages/wedges-vue/src/components/label
+primitive: https://www.radix-vue.com/components/label.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+The following example demonstrates using the `Label` component alongside a `Label.Helper` component with the `error` prop.
+
+
diff --git a/apps/docs/src/content/docs/components/loading.md b/apps/docs/src/content/docs/components/loading.md
new file mode 100644
index 0000000..961966e
--- /dev/null
+++ b/apps/docs/src/content/docs/components/loading.md
@@ -0,0 +1,35 @@
+---
+title: Loading
+description: Renders an accessible label associated with controls.
+source: packages/wedges-vue/src/components/label
+primitive: https://www.radix-vue.com/components/label.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+The following example demonstrates using the `Label` component alongside a `Label.Helper` component with the `error` prop.
+
+
+
+Change the color using the `color` prop, or set a custom text color with a `class`.
+
+
diff --git a/apps/docs/src/content/docs/components/popover.md b/apps/docs/src/content/docs/components/popover.md
new file mode 100644
index 0000000..776c73e
--- /dev/null
+++ b/apps/docs/src/content/docs/components/popover.md
@@ -0,0 +1,37 @@
+---
+title: Popover
+description: Displays rich content in a portal, triggered by a button.
+source: packages/wedges-vue/src/components/popover
+primitive: https://www.radix-vue.com/components/popover.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+ Open popover
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
diff --git a/apps/docs/src/content/docs/components/progress-bar.md b/apps/docs/src/content/docs/components/progress-bar.md
new file mode 100644
index 0000000..3d8698f
--- /dev/null
+++ b/apps/docs/src/content/docs/components/progress-bar.md
@@ -0,0 +1,35 @@
+---
+title: Progress Bar
+description: A progress bar visually showing the percentage of a task completed.
+source: packages/wedges-vue/src/components/progress
+primitive: https://www.radix-vue.com/components/progress.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+The following example shows different layout variants.
+
+
+
+Next example shows different color and layout combinations.
+
+
diff --git a/apps/docs/src/content/docs/components/progress-circle.md b/apps/docs/src/content/docs/components/progress-circle.md
new file mode 100644
index 0000000..65f2a2f
--- /dev/null
+++ b/apps/docs/src/content/docs/components/progress-circle.md
@@ -0,0 +1,28 @@
+---
+title: Progress Circle
+description: Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.
+source: packages/wedges-vue/src/components/progress
+primitive: https://www.radix-vue.com/components/progress.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
diff --git a/apps/docs/src/content/docs/components/radio-group.md b/apps/docs/src/content/docs/components/radio-group.md
new file mode 100644
index 0000000..09a1fe0
--- /dev/null
+++ b/apps/docs/src/content/docs/components/radio-group.md
@@ -0,0 +1,54 @@
+---
+title: Radio Group
+description: A set of checkable buttonsโknown as radio buttonsโwhere no more than one of the buttons can be checked at a time.
+source: packages/wedges-vue/src/components/radio-group
+primitive: https://www.radix-vue.com/components/radio-group.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+
+
+#### RadioGroupItem
+
+An item in the group that can be checked. An `input` element will also be rendered when used within a form to ensure events propagate correctly.
+
+
+
+## Examples
+
+
diff --git a/apps/docs/src/content/docs/components/slider.md b/apps/docs/src/content/docs/components/slider.md
new file mode 100644
index 0000000..deceba8
--- /dev/null
+++ b/apps/docs/src/content/docs/components/slider.md
@@ -0,0 +1,49 @@
+---
+title: Slider
+description: An input where the user selects a value from within a given range.
+source: packages/wedges-vue/src/components/slider
+primitive: https://www.radix-vue.com/components/slider.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+Use `orientation` prop to create vertical sliders.
+
+
+
+You can disable the slider by using the `disabled` prop.
+
+
+
+Use range values:
+
+
+
+Controlled component:
+
+
+
+Playground:
+
+
diff --git a/apps/docs/src/content/docs/components/switch-group.md b/apps/docs/src/content/docs/components/switch-group.md
new file mode 100644
index 0000000..e3f6c35
--- /dev/null
+++ b/apps/docs/src/content/docs/components/switch-group.md
@@ -0,0 +1,29 @@
+---
+title: Switch Group
+description: A control that allows the user to toggle between checked and not checked.
+source: packages/wedges-vue/src/components/switch
+primitive: https://www.radix-vue.com/components/switch.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+
diff --git a/apps/docs/src/content/docs/components/switch.md b/apps/docs/src/content/docs/components/switch.md
new file mode 100644
index 0000000..1a4f42d
--- /dev/null
+++ b/apps/docs/src/content/docs/components/switch.md
@@ -0,0 +1,29 @@
+---
+title: Switch
+description: A control that allows the user to toggle between checked and not checked.
+source: packages/wedges-vue/src/components/switch
+primitive: https://www.radix-vue.com/components/switch.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+
diff --git a/apps/docs/src/content/docs/components/tabs.md b/apps/docs/src/content/docs/components/tabs.md
new file mode 100644
index 0000000..8935530
--- /dev/null
+++ b/apps/docs/src/content/docs/components/tabs.md
@@ -0,0 +1,44 @@
+---
+title: Tabs
+description: A set of layered sections of contentโknown as tab panelsโthat are displayed one at a time.
+source: packages/wedges-vue/src/components/tabs
+primitive: https://www.radix-vue.com/components/tabs.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+
+ Account
+
+
+ Password
+
+
+
+ Make changes to your account here.
+
+
+ Change your password here.
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+
diff --git a/apps/docs/src/content/docs/components/tag.md b/apps/docs/src/content/docs/components/tag.md
new file mode 100644
index 0000000..629c04e
--- /dev/null
+++ b/apps/docs/src/content/docs/components/tag.md
@@ -0,0 +1,20 @@
+---
+title: Tag
+description: Tag inputs render tags inside an input, followed by an actual text input.
+source: packages/wedges-vue/src/components/tags-input
+primitive: https://www.radix-vue.com/components/tags-input.html
+---
+
+
+
+## Usage
+
+## API Reference
+
+### Props
+
+
+## Examples
+### Tags with Combobox
+
+
diff --git a/apps/docs/src/content/docs/components/textarea.md b/apps/docs/src/content/docs/components/textarea.md
new file mode 100644
index 0000000..2bbb318
--- /dev/null
+++ b/apps/docs/src/content/docs/components/textarea.md
@@ -0,0 +1,30 @@
+---
+title: Textarea
+description: Displays a form textarea or a component that looks like a textarea.
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+### Default
+
+
+
diff --git a/apps/docs/src/content/docs/components/toggle-group.md b/apps/docs/src/content/docs/components/toggle-group.md
new file mode 100644
index 0000000..9607e29
--- /dev/null
+++ b/apps/docs/src/content/docs/components/toggle-group.md
@@ -0,0 +1,41 @@
+---
+title: Toggle Group
+description: A set of two-state buttons that can be toggled on or off.
+source: packages/wedges-vue/src/components/toggle-group
+primitive: https://www.radix-vue.com/components/toggle-group.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+ A
+
+
+ B
+
+
+ C
+
+
+
+```
+
+## API Reference
+
+### Props
+
+
+## Examples
+
+### Default
+
+
diff --git a/apps/docs/src/content/docs/components/toggle.md b/apps/docs/src/content/docs/components/toggle.md
new file mode 100644
index 0000000..71a5d68
--- /dev/null
+++ b/apps/docs/src/content/docs/components/toggle.md
@@ -0,0 +1,25 @@
+---
+title: Toggle
+description: A two-state button that can be either on or off.
+source: packages/wedges-vue/src/components/toggle
+primitive: https://www.radix-vue.com/components/toggle.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+ Toggle
+
+```
+
+## API Reference
+
+### Props
+
diff --git a/apps/docs/src/content/docs/components/tooltip.md b/apps/docs/src/content/docs/components/tooltip.md
new file mode 100644
index 0000000..bee282e
--- /dev/null
+++ b/apps/docs/src/content/docs/components/tooltip.md
@@ -0,0 +1,70 @@
+---
+title: Tooltip
+description: A small box that appears when hovering over a UI element, providing additional information.
+source: wedges
+primitive: https://www.radix-vue.com/components/tooltip.html
+---
+
+
+
+## Usage
+
+```vue
+
+
+
+
+
+ Hover
+
+
Add to library
+
+
+
+
+```
+
+## API Reference
+
+### Tooltip
+
+Use this component for a quick usage
+
+
+
+#### TooltipProvider
+
+Extends the Radix Tooltip Provider primitive with custom configuration.
+
+#### TooltipRoot
+
+Extends the Radix Tooltip Root primitive with custom configuration.
+
+#### TooltipTrigger
+
+Extends the Radix Tooltip Trigger primitive with custom styling.
+
+#### TooltipArrow
+
+Extends the Radix Tooltip Arrow primitive with custom styling.
+
+#### TooltipContent
+
+Extends the Radix Tooltip Content primitive with custom styling.
+
+#### TooltipPortal
+
+Exports the Radix Tooltip Portal primitive.
+
+## Examples
+
+The example below demonstrates different color and size variations of the Tooltip component.
+
+
diff --git a/apps/docs/src/content/docs/installation.md b/apps/docs/src/content/docs/installation.md
new file mode 100644
index 0000000..8adf2e5
--- /dev/null
+++ b/apps/docs/src/content/docs/installation.md
@@ -0,0 +1,27 @@
+---
+title: Installation
+description: How to install dependencies and structure your app.
+---
+
+Straightforward setup guides are available for popular frameworks, as well as a manual installation guide suitable for any framework that supports Vue and Tailwind CSS.
+
+
+
+
+
+
+
+
+ Default
+
+
+
+
+
+
+
Laravel
+
+
+
diff --git a/apps/docs/src/content/docs/installation/default.md b/apps/docs/src/content/docs/installation/default.md
new file mode 100644
index 0000000..6f067ed
--- /dev/null
+++ b/apps/docs/src/content/docs/installation/default.md
@@ -0,0 +1,92 @@
+---
+title: Manual
+description: How to install and get started with Wedges.
+breadcrumbs:
+ - Installation
+---
+
+
+
+### Install Wedges
+
+
+
+ pnpm
+ npm
+ yarn
+
+
+
+
+```bash
+ pnpm i wedges-vue
+```
+
+
+
+
+```bash
+ npm i wedges-vue
+```
+
+
+
+
+
+```bash
+ yarn add wedges-vue
+```
+
+
+
+
+### Configure Tailwind CSS
+
+Wedges requires Tailwind CSS to be installed prior to use. If you haven't installed it already, follow the instructions in the official Tailwind CSS installation guide.
+
+Once Tailwind CSS is installed, update your `tailwind.config` file to add the necessary configuration for Wedges:
+
+```ts
+import type { Config } from "tailwindcss";
+import { wedgesTW } from "wedges-vue";
+
+const config: Config = {
+ content: [
+ // ...
+ "node_modules/wedges-vue/dist/**/*.{js,ts,vue}",
+ ],
+ theme: {},
+ darkMode: "class",
+ plugins: [wedgesTW()],
+};
+
+export default config;
+```
+
+### Setup pnpm (optional)
+
+If you're using pnpm, add the following line to your `.npmrc` file:
+
+```bash
+public-hoist-pattern[]=*@lmsqueezy/*
+```
+
+This ensures that pnpm correctly handles dependencies for Wedges, allowing necessary packages to be accessible at the top level of your node_modules.
+
+After updating, run `pnpm install` again to reconfigure your dependencies correctly.
+
+### Using the components
+
+That's all. You can now start using the components in your application.
+
+```vue
+
+
+
+ You're awesome!
+
+```
+
+
diff --git a/apps/docs/src/content/docs/installation/laravel.md b/apps/docs/src/content/docs/installation/laravel.md
new file mode 100644
index 0000000..f7cda97
--- /dev/null
+++ b/apps/docs/src/content/docs/installation/laravel.md
@@ -0,0 +1,107 @@
+---
+title: Laravel
+description: Start using Wedges with Laravel + Inertia.
+breadcrumbs:
+ - Installation
+---
+
+
+
+### Create Laravel project
+
+To set up a new Laravel project with Inertia and Vue, run the following command in your terminal:
+
+```bash
+laravel new my-laravel-app --typescript --breeze --stack=vue --git --no-interaction
+```
+
+
+This command requires the Laravel Installer version 5.2.0 or higher. Ensure you have this version installed to utilize the features and options specified in the command.
+
+
+### Install Wedges
+
+
+
+ pnpm
+ npm
+ yarn
+
+
+
+
+```bash
+pnpm add wedges-vue
+```
+
+
+
+
+
+```bash
+npm i wedges-vue
+```
+
+
+
+
+
+```bash
+yarn add wedges-vue
+```
+
+
+
+
+
+### Configure Tailwind CSS
+
+Wedges requires Tailwind CSS to be installed prior to use. If you haven't installed it already, follow the instructions in the official Tailwind CSS installation guide.
+
+Once Tailwind CSS is installed, update your `tailwind.config.js` file to add the necessary configuration for Wedges:
+
+```js {1,10,13,14} title="tailwind.config.js" showLineNumbers
+import { wedgesTW } from "wedges-vue";
+
+/** @type {import('tailwindcss').Config} */
+export default {
+ content: [
+ "./vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php",
+ "./storage/framework/views/*.php",
+ "./resources/views/**/*.blade.php",
+ "./resources/js/**/*.vue",
+ "node_modules/wedges-vue/dist/**/*.{js,ts,vue}",
+ ],
+ theme: {},
+ darkMode: "class",
+ plugins: [wedgesTW()],
+};
+```
+
+### Setup pnpm (optional)
+
+If you're using pnpm, add the following line to your `.npmrc` file:
+
+```
+public-hoist-pattern[]=*@lmsqueezy/*
+```
+
+This ensures that pnpm correctly handles dependencies for Wedges, allowing necessary packages to be accessible at the top level of your node_modules.
+
+After updating, run `pnpm install` again to reconfigure your dependencies correctly.
+
+### Using the components
+
+That's all. You can now start using the components in your application.
+
+```vue
+
+
+
+ You're awesome!
+
+```
+
+
diff --git a/apps/docs/src/content/docs/introduction.md b/apps/docs/src/content/docs/introduction.md
new file mode 100644
index 0000000..4d5bbc4
--- /dev/null
+++ b/apps/docs/src/content/docs/introduction.md
@@ -0,0 +1,39 @@
+---
+title: Introduction
+description: An ever-expanding, open-source Vue library built with the Wedges Design System, Radix primitives, and Tailwind CSS.
+breadcrumbs:
+ - Getting Started
+---
+
+
+
+### What is Wedges?
+
+Wedges is a professionally designed design system for Figma and an ever-expanding, open-source UI library that combines Radix UI primitives and Tailwind CSS. Its goal is to simplify the process of building beautiful, functional and accessible user interfaces.
+
+With Wedges, you get a range of pre-built, customizable components that are easy to use and integrate into your React or Vue projects. It also comes with full TypeScript support, ensuring type safety and developer-friendly experience.
+
+### License
+
+Wedges is licensed under the MIT License.
+
+### Contributing
+
+Interested in contributing to Wedges? Awesome! Start by reviewing our contribution guidelines. We value your efforts in helping us enhance Wedges.
+
+### Credits
+
+Wedges is an open source project by Lemon Squeezy โ the all-in-one platform for software companies.
+
+- Design system by @ormanclark
+- React UI component library by @brankoconjic
+- Vue UI component library by @raymondmuller
+- Radix UI
+- Tailwind CSS
+- Custom Tailwind CSS plugin inspired by tw-colors
+- Components code structure inspired by shadcn/ui
+
+### Connect
+
+Follow me @raymondmuller and
+follow @lmsqueezy for the latest and coolest. Let us know what you're building with Wedges!
diff --git a/apps/docs/src/content/docs/requirements.md b/apps/docs/src/content/docs/requirements.md
new file mode 100644
index 0000000..a1ceb52
--- /dev/null
+++ b/apps/docs/src/content/docs/requirements.md
@@ -0,0 +1,12 @@
+---
+title: Requirements
+description: Here's what you need to get started with Wedges.
+breadcrumbs:
+ - Getting Started
+---
+
+- **Vue**: Version 3 or higher.
+- **Tailwind CSS**: Version 3 or higher.
+- **TypeScript**: Optional, but recommended for a better development experience.
+- **Module System**: ESM (ECMAScript Modules) is preferred over CJS (CommonJS) for efficiency and modern standards.
+- **Node.js**: Version 18.7 or higher.
diff --git a/apps/docs/src/content/docs/theming/additional-utilities.md b/apps/docs/src/content/docs/theming/additional-utilities.md
new file mode 100644
index 0000000..7b09ca2
--- /dev/null
+++ b/apps/docs/src/content/docs/theming/additional-utilities.md
@@ -0,0 +1,339 @@
+---
+title: Additional Utilities
+description: A collection of Wedges design system utility classes.
+breadcrumbs:
+ - Theming
+---
+
+### Font Size
+
+The following font size utilities are available with Wedges.
+
+
+### Box Shadow
+
+The additional box shadow utilities are available with the `shadow-wg-{scale}` classes.
+
+
+### Animations
+
+Wedges introduces a set of simple fade animation utilities. These animations are used across Wedges components, making them smoother and more visually appealing. Use them with the `animation-wg-{name}` utility.
+
+- **Fade in up**: `wg-fade-in-up`
+- **Fade in down**: `wg-fade-in-down`
+- **Fade in left**: `wg-fade-in-left`
+- **Fade in right**: `wg-fade-in-right`
+- **Fade out**: `wg-fade-out`
+
+Keyframes for these animations are defined as follows:
+
+```js showLineNumbers
+ keyframes: {
+ fadeInUp: {
+ "0%": {
+ opacity: "0",
+ transform: "translateY(5px) scale(.97)",
+ },
+ "100%": {
+ opacity: "1",
+ transform: "translateY(0px) scale(1)",
+ },
+ },
+ fadeInDown: {
+ "0%": {
+ opacity: "0",
+ transform: "translateY(-5px) scale(.97)",
+ },
+ "100%": {
+ opacity: "1",
+ transform: "translateY(0px) scale(1)",
+ },
+ },
+ fadeInLeft: {
+ "0%": {
+ opacity: "0",
+ transform: "translateX(5px) scale(.97)",
+ },
+ "100%": {
+ opacity: "1",
+ transform: "translateX(0px) scale(1)",
+ },
+ },
+ fadeInRight: {
+ "0%": {
+ opacity: "0",
+ transform: "translateX(-5px) scale(.97)",
+ },
+ "100%": {
+ opacity: "1",
+ transform: "translateX(0px) scale(1)",
+ },
+ },
+ fadeOut: {
+ "0%": {
+ opacity: "1",
+ transform: "scale(1)",
+ },
+ "100%": {
+ opacity: "0",
+ transform: "scale(.97)",
+ },
+ },
+},
+```
diff --git a/apps/docs/src/content/docs/theming/color-system.md b/apps/docs/src/content/docs/theming/color-system.md
new file mode 100644
index 0000000..79357d8
--- /dev/null
+++ b/apps/docs/src/content/docs/theming/color-system.md
@@ -0,0 +1,364 @@
+---
+title: Color System
+description: Versatile color palette and themable colors ready for your next project.
+breadcrumbs:
+ - Theming
+---
+
+Our color system is divided into three categories:
+
+- **Tailwind CSS Defaults**: The default colors provided by Tailwind CSS.
+- **Wedges Palette**: A set of core colors that are consistent across all themes.
+- **Themable Colors**: Configurable colors that adapt and change based on the active theme.
+
+### Wedges Palette
+
+When using the Wedges color palette, you need to prefix color names with `wg-`, for example: `bg-wg-gray-500`. The default Tailwind CSS colors are available without the prefix.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#### Example
+
+```html showLineNumbers
+
Easy
// Tailwind color
+
Peasy
// Wedges color
+
Lemon Squeezy
// uses yellow.DEFAULT color
+```
+
+#### Color Scale
+
+Similar to Tailwind CSS, the Wedges color palette utilizes a 10-step, graded color scale, along with a `DEFAULT` value. This default value is applied when no specific grade is provided through a class, such as in `bg-wg-blue`.
+
+```tsx showLineNumbers
+interface ColorScale {
+ 50: string;
+ 100: string;
+ 200: string;
+ 300: string;
+ 400: string;
+ 500: string;
+ 600: string;
+ 700: string;
+ 800: string;
+ 900: string;
+ DEFAULT: string;
+}
+```
+
+for example:
+
+```tsx showLineNumbers
+import type { ColorScale } from "wedges-vue";
+
+const wg_blue: ColorScale = {
+ 50: "#F0FAFF",
+ 100: "#DBF3FF",
+ 200: "#ADE4FF",
+ 300: "#70D1FF",
+ 400: "#38BEFF",
+ 500: "#00ACFF",
+ 600: "#0090D6",
+ 700: "#0075AD",
+ 800: "#005985",
+ 900: "#003E5C",
+ DEFAULT: "#00ACFF",
+};
+```
+
+#### Customization
+
+These colors can be customized under the `colors` key in the `theme` section of your `tailwind.config.ts` file:
+
+```tsx title="tailwind.config.ts" {6-9} showLineNumbers
+const config: Config = {
+ // ...
+ theme: {
+ extend: {
+ colors: {
+ "wg-red": {
+ DEFAULT: "#ff0000",
+ 500: "#ff0000",
+ },
+ },
+ },
+ },
+ // ...
+};
+
+export default config;
+```
+
+### Themable Colors
+
+Themable colors are configurable and can adapt with multiple themes. By default, themable colors will adapt to `dark` and `light` themes, but you can easily add more themes to your project.
+
+The following themable colors are available:
+
+
+
+
+
+
+
+
+
+
+By default, `background` and `foreground` colors are applied to the `` element.
+
+#### Example
+
+Toggle between light and dark mode to preview each theme.
+
+
+
+#### Color Scale
+
+Themable color scale is more flexible than Wedges Palette color scale, it is defined like this:
+
+```tsx showLineNumbers
+type ThemableColorScale = Partial | string;
+
+interface ThemableColors {
+ background: string;
+ foreground: string;
+ primary: ThemableColorScale;
+ secondary: ThemableColorScale;
+ surface: ThemableColorScale;
+ destructive: ThemableColorScale;
+}
+```
+
+This structure allows for a wide range of customization options, adapting to various design needs.
+
+#### Default Values
+
+The default themable colors are defined as follows:
+
+```tsx showLineNumbers
+const themableColorsLight: ThemableColors = {
+ background: "#FFFFFF",
+ foreground: palette.gray[900],
+ primary: {
+ ...palette.purple, // `palette` is the Wedges Palette
+ DEFAULT: palette.purple[500],
+ },
+ secondary: {
+ ...palette.gray,
+ DEFAULT: palette.gray[900],
+ },
+ surface: {
+ ...palette.gray,
+ DEFAULT: palette.gray[50],
+ },
+ destructive: {
+ ...palette.red,
+ },
+};
+
+const themableColorsDark: ThemableColors = {
+ background: palette.gray[900],
+ foreground: "#FFFFFF",
+ primary: {
+ ...palette.purple,
+ DEFAULT: palette.purple[400],
+ 600: palette.purple[500],
+ },
+ secondary: {
+ ...palette.white,
+ 900: palette.gray[900],
+ DEFAULT: palette.white[900],
+ },
+ surface: {
+ 50: "rgba(255,255,255, 0.1)",
+ 100: "rgba(255,255,255, 0.2)",
+ 200: "rgba(255,255,255, 0.3)",
+ 300: "rgba(255,255,255, 0.4)",
+ 400: "rgba(255,255,255, 0.5)",
+ 500: "rgba(255,255,255, 0.5)",
+ 600: "rgba(255,255,255, 0.7)",
+ 700: "rgba(255,255,255, 0.8)",
+ 800: "rgba(255,255,255, 0.9)",
+ 900: "#FFFFFF",
+ DEFAULT: "rgba(255,255,255, 0.1)",
+ },
+ destructive: palette.red,
+};
+```
+
+#### Customization
+
+For optimal results, we suggest creating a ten-step graded color scale for your custom colors. You may find these online tools helpful in generating custom color scales: Palettte and Eva Design System.
+
+Themable colors can be customized by adding options to the `wedgesTW` plugin in your `tailwind.config.ts` file. For instance, to use yellow as the primary color for **dark theme only**, you can set it like this:"
+
+```tsx {} title="tailwind.config.ts" showLineNumbers
+import { wedgesTW } from "wedges-vue";
+import type { Config } from "tailwindcss";
+
+const config: Config = {
+ // Other Tailwind CSS options...
+ plugins: [
+ wedgesTW({
+ themes: {
+ dark: {
+ colors: {
+ primary: {
+ 50: "#FFF9EB",
+ 100: "#FFF3D6",
+ 200: "#FFE7AD",
+ 300: "#FFDA85",
+ 400: "#FFCE5C",
+ 500: "#FFC233",
+ 600: "#FAAF00",
+ 700: "#C28800",
+ 800: "#8A6100",
+ 900: "#523900",
+ DEFAULT: "#FFC233",
+ },
+ },
+ },
+ light: {
+ colors: {
+ // Define colors for `light` theme here...
+ },
+ },
+ },
+ }),
+ ],
+};
+
+export default config;
+```
+
+If you want to use one of the Wedges Color Palette colors, `wedgesPalette` can be imported from `wedges-vue`, for example:
+
+```tsx {11} title="tailwind.config.ts" showLineNumbers /wedgesPalette/
+import { wedgesPalette, wedgesTW } from "wedges-vue";
+import type { Config } from "tailwindcss";
+
+const config: Config = {
+ // Other Tailwind CSS options...
+ plugins: [
+ wedgesTW({
+ themes: {
+ dark: {
+ colors: {
+ primary: wedgesPalette.yellow,
+ },
+ },
+ },
+ }),
+ ],
+};
+
+export default config;
+```
+
+This will set all ten steps of the yellow color scale as the primary color for the dark theme.
+
+
+ Ensure that these changes are applied to the `wedgesTW` plugin options, rather than the `theme`
+ section in your `tailwind.config.ts` file.
+
diff --git a/apps/docs/src/content/docs/theming/custom-themes.md b/apps/docs/src/content/docs/theming/custom-themes.md
new file mode 100644
index 0000000..24b5601
--- /dev/null
+++ b/apps/docs/src/content/docs/theming/custom-themes.md
@@ -0,0 +1,101 @@
+---
+title: Custom Themes
+description: How to create custom themes with Wedges.
+breadcrumbs:
+ - Theming
+---
+
+With Wedges you have the option to create a new theme using the default ones as a foundation. In the following example, we'll create a `dark-blue` theme, extending the standard `dark` theme.
+
+
+
+### Define Colors
+
+For optimal results, creating a ten-step graded color scale for your custom themable colors is recommended. You may find these online tools helpful in generating custom color scales: Palettte and Eva Design System.
+
+Let's define `primaryBlue` color scale:
+
+```tsx showLineNumbers
+import type { ThemableColorScale } from "wedges-vue";
+
+const primaryBlue: ThemableColorScale = {
+ 100: "#DAF0FF",
+ 200: "#B5DEFF",
+ 300: "#90C9FF",
+ 400: "#75B6FF",
+ 500: "#4796FF",
+ 600: "#3374DB",
+ 700: "#2356B7",
+ 800: "#163C93",
+ 900: "#0D297A",
+ DEFAULT: "#4796FF", // 500
+};
+```
+
+Alternatively, you can use professionally designed colors scales defined in the Wedges color palette. Import `wedgesPallette` to start using predefined colors:
+
+```tsx showLineNumbers /wedgesPalette.blue/ /wedgesPalette.orange[500]/
+import { wedgesPalette } from "wedges-vue";
+
+const primaryBlue = wedgesPalette.blue;
+const orange500 = wedgesPalette.orange[500];
+```
+
+### Update Tailwind Config
+
+To create a new theme, you need to provide a configuration object to the `wedgesTW` plugin in your `tailwind.config` file.
+
+```tsx {26-38} title="tailwind.config.ts" showLineNumbers
+import { wedgesTW } from "wedges-vue";
+import type { Config } from "tailwindcss";
+
+const primaryBlue: ThemableColorScale = {
+ 100: "#DAF0FF",
+ 200: "#B5DEFF",
+ 300: "#90C9FF",
+ 400: "#75B6FF",
+ 500: "#4796FF",
+ 600: "#3374DB",
+ 700: "#2356B7",
+ 800: "#163C93",
+ 900: "#0D297A",
+ DEFAULT: "#4796FF", // 500
+};
+
+const config: Config = {
+ content: [
+ // ...
+ "node_modules/wedges-vue/dist/**/*.{js,ts,vue}",
+ ],
+ theme: {},
+ darkMode: "class",
+ plugins: [
+ wedgesTW({
+ themes: {
+ "dark-blue": {
+ extend: "dark",
+ colors: {
+ // Replace primary color
+ primary: primaryBlue,
+
+ // Partially replace secondary color
+ secondary: {
+ 900: "#FF6838",
+ },
+ },
+ },
+ },
+ }),
+ ],
+};
+```
+
+In the example above, we've created a new theme called `dark-blue` that extends the `dark` theme. We've also replaced the `primary` color with our custom `primaryBlue` color scale and partially replaced the `secondary` color, specifically `secondary.900` with a custom color.
+
+### Use The New Theme
+
+Now that we've created a new theme, we can use it in our application. To do so, we need to add the `dark-blue` class to the `html` or any parent element of the component we want to use the theme on.
+
+
+
+
diff --git a/apps/docs/src/content/docs/theming/default-themes.md b/apps/docs/src/content/docs/theming/default-themes.md
new file mode 100644
index 0000000..cca80a5
--- /dev/null
+++ b/apps/docs/src/content/docs/theming/default-themes.md
@@ -0,0 +1,43 @@
+---
+title: Default Themes
+description: Adding dark and light themes to your application.
+breadcrumbs:
+ - Theming
+---
+
+Wedges supports dark and light themes out of the box. By default, the light theme is applied if no specific theme classes are added. The default theme can be changed with wedgesTW configuration.
+
+### Using Default Themes
+
+To apply a dark theme, simply add the `dark` class to a parent element, usually the `html` or `body`. For other themes, add the appropriate class, like `light` for light theme.
+
+```html showLineNumbers /dark/
+
+ ...
+
+```
+
+This approach enables the dark theme for the entire app. To apply different themes to individual sections, add the corresponding theme class to each section's container.
+
+```html showLineNumbers /dark/ /light/ /orange-blue/
+
+ ...
+
...
+
...
+
+
+```
+
+### Customization
+
+
+
+### Theme Switching
+
+If you need to toggle between different themes consider using a theme switching library, or a custom solution for this functionality.
+
+#### Switcher Examples
+
+The following examples show how you could use Wedges components to create a theme switcher component.
+
+
diff --git a/apps/docs/src/content/docs/theming/tailwind-css-plugin.md b/apps/docs/src/content/docs/theming/tailwind-css-plugin.md
new file mode 100644
index 0000000..06042d9
--- /dev/null
+++ b/apps/docs/src/content/docs/theming/tailwind-css-plugin.md
@@ -0,0 +1,158 @@
+---
+title: Tailwind CSS Plugin
+description: Wedges design system plugin for Tailwind CSS.
+breadcrumbs:
+ - Theming
+---
+
+Wedges provides a Tailwind CSS plugin enabling the use of Wedges design tokens and creation of custom themes in your projects. This plugin is inspired and based on the awesome tw-colors plugin.
+
+Tailwind CSS supports dark mode, but with Wedges, you can create an unlimited number of custom themes. There's no cap on the themes and colors you can use, and it even supports nested themes for more complex use cases.
+
+### Installation
+
+If you haven't installed Tailwind CSS already, follow the instructions in the official Tailwind CSS installation guide.
+
+Once Tailwind CSS is installed, update your `tailwind.config` file to add the necessary configuration for Wedges:
+
+```tsx {2,7,10,11} title="tailwind.config.ts" showLineNumbers
+import { wedgesTW } from "wedges-vue";
+import type { Config } from "tailwindcss";
+
+const config: Config = {
+ content: [
+ // ...
+ "node_modules/wedges-vue/dist/**/*.{js,ts,vue}",
+ ],
+ theme: {},
+ darkMode: "class",
+ plugins: [wedgesTW()],
+};
+
+export default config;
+```
+
+### Configuration
+
+#### Plugin Options
+
+The `wedgesTW` plugin accepts a configuration object allowing you to customize the plugin's behavior. This is the default structure of the configuration object:
+
+```tsx {12-24} title="tailwind.config.ts" showLineNumbers
+import { wedgesTW } from "wedges-vue";
+import type { Config } from "tailwindcss";
+
+const config: Config = {
+ content: [
+ // ...
+ "node_modules/wedges-vue/dist/**/*.{js,ts,vue}",
+ ],
+ theme: {},
+ darkMode: "class",
+ plugins: [
+ wedgesTW({
+ prefix: "wg", // prefix used for CSS variables
+ defaultTheme: "light", // default theme
+ defaultExtendTheme: "light", // default theme to extend when creating custom themes
+ fontSmooth: "antialiased", // specify font smoothing for Wedges components
+ themes: {
+ light: {
+ colors: {}, // light themable colors
+ },
+ dark: {
+ colors: {}, // dark themable colors
+ },
+ // ... custom themes
+ },
+ }),
+ ],
+};
+```
+
+#### Type
+
+The configuration object type is defined as follows:
+
+```tsx showLineNumbers
+interface WedgesOptions {
+ /**
+ * The prefix for CSS variables.
+ * @default "wg"
+ */
+ prefix?: string;
+
+ /**
+ * The theme definitions.
+ */
+ themes?: ConfigThemes;
+
+ /**
+ * The default theme to use.
+ * @default "light"
+ */
+ defaultTheme?: DefaultThemeType;
+
+ /**
+ * The default theme to extend. Available values are "light" and "dark".
+ * @default "light"
+ */
+ defaultExtendTheme?: "light" | "dark";
+
+ /**
+ * Specifies whether or not to apply font anti-aliasing to Wedges components.
+ *
+ * If set to `antialiased` (default), Wedges components will have anti-aliasing applied to them.
+ * If set to `inherit`, no specific styles will be set for text anti-aliasing.
+ *
+ * @default "antialiased"
+ */
+ fontSmooth?: "antialiased" | "inherit";
+}
+```
+
+```ts showLineNumbers
+interface ConfigTheme {
+ /**
+ * Whether to extend 'dark' or 'light' theme.
+ * @default "light"
+ */
+ extend?: "light" | "dark";
+
+ /**
+ * Defines an extended colors object, providing a flexible foundation for theming or custom color configurations.
+ *
+ * Key Features:
+ * 1. **Themable Colors**: Customize or extend existing themes by overriding values in the `wedgesPalette`.
+ * 2. **Custom Colors**: Introduce new color schemes by adding unique key-value pairs.
+ * 3. **Nested Colors**: Allows for the grouping of color variations under a single key, facilitating organized and hierarchical color definitions.
+ * 4. **Prefix 'wg'**: The colors defined in `wedgesPalette` are prefixed with 'wg' to prevent conflicts with the standard Tailwind color palette, ensuring a seamless integration.
+ *
+ * @example
+ * colors: {
+ * 'wg-red': '#ff0000',
+ * customColor: {
+ * 500: '#f0f0f0',
+ * 600: '#0d0d0d',
+ * },
+ * }
+ */
+ colors?: Partial | Record>;
+};
+```
+
+#### API Reference
+
+
+
+### Nested Themes
+
+Wedges supports nested themes, enabling the use of multiple themes within individual sections for flexible styling.
+
+```html showLineNumbers /light/ /dark/2-3/ /orange-blue/
+
+ ...
+
...
+
...
+
+
+```
diff --git a/apps/docs/src/content/index.md b/apps/docs/src/content/index.md
new file mode 100644
index 0000000..69ed041
--- /dev/null
+++ b/apps/docs/src/content/index.md
@@ -0,0 +1,6 @@
+---
+home: true
+title: Wedges for Vue
+---
+
+
diff --git a/apps/docs/src/content/meta/Accordion.md b/apps/docs/src/content/meta/Accordion.md
new file mode 100644
index 0000000..cc4ae74
--- /dev/null
+++ b/apps/docs/src/content/meta/Accordion.md
@@ -0,0 +1,67 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/AccordionContent.md b/apps/docs/src/content/meta/AccordionContent.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/AccordionContent.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AccordionItem.md b/apps/docs/src/content/meta/AccordionItem.md
new file mode 100644
index 0000000..190cb59
--- /dev/null
+++ b/apps/docs/src/content/meta/AccordionItem.md
@@ -0,0 +1,29 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AccordionTrigger.md b/apps/docs/src/content/meta/AccordionTrigger.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/AccordionTrigger.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Alert.md b/apps/docs/src/content/meta/Alert.md
new file mode 100644
index 0000000..95ae5bd
--- /dev/null
+++ b/apps/docs/src/content/meta/Alert.md
@@ -0,0 +1,29 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AlertCloseButton.md b/apps/docs/src/content/meta/AlertCloseButton.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertCloseButton.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/AlertDescription.md b/apps/docs/src/content/meta/AlertDescription.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertDescription.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/AlertDialog.md b/apps/docs/src/content/meta/AlertDialog.md
new file mode 100644
index 0000000..a596c8e
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertDialog.md
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/AlertDialogAction.md b/apps/docs/src/content/meta/AlertDialogAction.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertDialogAction.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AlertDialogCancel.md b/apps/docs/src/content/meta/AlertDialogCancel.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertDialogCancel.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AlertDialogContent.md b/apps/docs/src/content/meta/AlertDialogContent.md
new file mode 100644
index 0000000..def03aa
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertDialogContent.md
@@ -0,0 +1,68 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/AlertDialogDescription.md b/apps/docs/src/content/meta/AlertDialogDescription.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertDialogDescription.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AlertDialogFooter.md b/apps/docs/src/content/meta/AlertDialogFooter.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertDialogFooter.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/AlertDialogHeader.md b/apps/docs/src/content/meta/AlertDialogHeader.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertDialogHeader.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/AlertDialogTitle.md b/apps/docs/src/content/meta/AlertDialogTitle.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertDialogTitle.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AlertDialogTrigger.md b/apps/docs/src/content/meta/AlertDialogTrigger.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertDialogTrigger.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AlertRoot.md b/apps/docs/src/content/meta/AlertRoot.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertRoot.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/AlertTitle.md b/apps/docs/src/content/meta/AlertTitle.md
new file mode 100644
index 0000000..a8388fb
--- /dev/null
+++ b/apps/docs/src/content/meta/AlertTitle.md
@@ -0,0 +1,11 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AspectRatio.md b/apps/docs/src/content/meta/AspectRatio.md
new file mode 100644
index 0000000..9f5d200
--- /dev/null
+++ b/apps/docs/src/content/meta/AspectRatio.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Avatar.md b/apps/docs/src/content/meta/Avatar.md
new file mode 100644
index 0000000..fd6534e
--- /dev/null
+++ b/apps/docs/src/content/meta/Avatar.md
@@ -0,0 +1,41 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AvatarFallback.md b/apps/docs/src/content/meta/AvatarFallback.md
new file mode 100644
index 0000000..bbc3f73
--- /dev/null
+++ b/apps/docs/src/content/meta/AvatarFallback.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AvatarGroup.md b/apps/docs/src/content/meta/AvatarGroup.md
new file mode 100644
index 0000000..3f33e37
--- /dev/null
+++ b/apps/docs/src/content/meta/AvatarGroup.md
@@ -0,0 +1,28 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AvatarGroupItem.md b/apps/docs/src/content/meta/AvatarGroupItem.md
new file mode 100644
index 0000000..a06d4a5
--- /dev/null
+++ b/apps/docs/src/content/meta/AvatarGroupItem.md
@@ -0,0 +1,40 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AvatarGroupLabel.md b/apps/docs/src/content/meta/AvatarGroupLabel.md
new file mode 100644
index 0000000..918370b
--- /dev/null
+++ b/apps/docs/src/content/meta/AvatarGroupLabel.md
@@ -0,0 +1,16 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AvatarGroupRoot.md b/apps/docs/src/content/meta/AvatarGroupRoot.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/AvatarGroupRoot.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/AvatarImage.md b/apps/docs/src/content/meta/AvatarImage.md
new file mode 100644
index 0000000..775ac10
--- /dev/null
+++ b/apps/docs/src/content/meta/AvatarImage.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AvatarMoreLabel.md b/apps/docs/src/content/meta/AvatarMoreLabel.md
new file mode 100644
index 0000000..918370b
--- /dev/null
+++ b/apps/docs/src/content/meta/AvatarMoreLabel.md
@@ -0,0 +1,16 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AvatarNotification.md b/apps/docs/src/content/meta/AvatarNotification.md
new file mode 100644
index 0000000..04b3314
--- /dev/null
+++ b/apps/docs/src/content/meta/AvatarNotification.md
@@ -0,0 +1,11 @@
+
+
+
diff --git a/apps/docs/src/content/meta/AvatarRoot.md b/apps/docs/src/content/meta/AvatarRoot.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/AvatarRoot.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/AvatarStatus.md b/apps/docs/src/content/meta/AvatarStatus.md
new file mode 100644
index 0000000..04b3314
--- /dev/null
+++ b/apps/docs/src/content/meta/AvatarStatus.md
@@ -0,0 +1,11 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Badge.md b/apps/docs/src/content/meta/Badge.md
new file mode 100644
index 0000000..2f55d8e
--- /dev/null
+++ b/apps/docs/src/content/meta/Badge.md
@@ -0,0 +1,32 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Breadcrumb.md b/apps/docs/src/content/meta/Breadcrumb.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/Breadcrumb.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/BreadcrumbEllipsis.md b/apps/docs/src/content/meta/BreadcrumbEllipsis.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/BreadcrumbEllipsis.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/BreadcrumbItem.md b/apps/docs/src/content/meta/BreadcrumbItem.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/BreadcrumbItem.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/BreadcrumbLink.md b/apps/docs/src/content/meta/BreadcrumbLink.md
new file mode 100644
index 0000000..523fc0a
--- /dev/null
+++ b/apps/docs/src/content/meta/BreadcrumbLink.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/BreadcrumbList.md b/apps/docs/src/content/meta/BreadcrumbList.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/BreadcrumbList.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/BreadcrumbPage.md b/apps/docs/src/content/meta/BreadcrumbPage.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/BreadcrumbPage.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/BreadcrumbSeparator.md b/apps/docs/src/content/meta/BreadcrumbSeparator.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/BreadcrumbSeparator.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/Button.md b/apps/docs/src/content/meta/Button.md
new file mode 100644
index 0000000..0215005
--- /dev/null
+++ b/apps/docs/src/content/meta/Button.md
@@ -0,0 +1,56 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ButtonGroup.md b/apps/docs/src/content/meta/ButtonGroup.md
new file mode 100644
index 0000000..f8cd152
--- /dev/null
+++ b/apps/docs/src/content/meta/ButtonGroup.md
@@ -0,0 +1,25 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ButtonGroupItem.md b/apps/docs/src/content/meta/ButtonGroupItem.md
new file mode 100644
index 0000000..92ddfcc
--- /dev/null
+++ b/apps/docs/src/content/meta/ButtonGroupItem.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Calendar.md b/apps/docs/src/content/meta/Calendar.md
new file mode 100644
index 0000000..2d76970
--- /dev/null
+++ b/apps/docs/src/content/meta/Calendar.md
@@ -0,0 +1,38 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/Card.md b/apps/docs/src/content/meta/Card.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/Card.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CardContent.md b/apps/docs/src/content/meta/CardContent.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CardContent.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CardDescription.md b/apps/docs/src/content/meta/CardDescription.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CardDescription.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CardFooter.md b/apps/docs/src/content/meta/CardFooter.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CardFooter.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CardHeader.md b/apps/docs/src/content/meta/CardHeader.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CardHeader.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CardTitle.md b/apps/docs/src/content/meta/CardTitle.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CardTitle.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/Carousel.md b/apps/docs/src/content/meta/Carousel.md
new file mode 100644
index 0000000..e351e59
--- /dev/null
+++ b/apps/docs/src/content/meta/Carousel.md
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/CarouselContent.md b/apps/docs/src/content/meta/CarouselContent.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CarouselContent.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CarouselItem.md b/apps/docs/src/content/meta/CarouselItem.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CarouselItem.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CarouselNext.md b/apps/docs/src/content/meta/CarouselNext.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CarouselNext.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CarouselPrevious.md b/apps/docs/src/content/meta/CarouselPrevious.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CarouselPrevious.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CheckIcon.md b/apps/docs/src/content/meta/CheckIcon.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CheckIcon.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/Checkbox.md b/apps/docs/src/content/meta/Checkbox.md
new file mode 100644
index 0000000..5162f20
--- /dev/null
+++ b/apps/docs/src/content/meta/Checkbox.md
@@ -0,0 +1,91 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/CheckboxGroup.md b/apps/docs/src/content/meta/CheckboxGroup.md
new file mode 100644
index 0000000..de6d763
--- /dev/null
+++ b/apps/docs/src/content/meta/CheckboxGroup.md
@@ -0,0 +1,73 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/CheckboxGroupItem.md b/apps/docs/src/content/meta/CheckboxGroupItem.md
new file mode 100644
index 0000000..0155d4e
--- /dev/null
+++ b/apps/docs/src/content/meta/CheckboxGroupItem.md
@@ -0,0 +1,83 @@
+
+
+
diff --git a/apps/docs/src/content/meta/CheckboxIndeterminate.md b/apps/docs/src/content/meta/CheckboxIndeterminate.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CheckboxIndeterminate.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CheckboxRoot.md b/apps/docs/src/content/meta/CheckboxRoot.md
new file mode 100644
index 0000000..5f28e26
--- /dev/null
+++ b/apps/docs/src/content/meta/CheckboxRoot.md
@@ -0,0 +1,10 @@
+
+
+
diff --git a/apps/docs/src/content/meta/CheckedBoxIcon.md b/apps/docs/src/content/meta/CheckedBoxIcon.md
new file mode 100644
index 0000000..ea51580
--- /dev/null
+++ b/apps/docs/src/content/meta/CheckedBoxIcon.md
@@ -0,0 +1,10 @@
+
+
+
diff --git a/apps/docs/src/content/meta/CircleIcon.md b/apps/docs/src/content/meta/CircleIcon.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CircleIcon.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/CloseIcon.md b/apps/docs/src/content/meta/CloseIcon.md
new file mode 100644
index 0000000..0ee2b8f
--- /dev/null
+++ b/apps/docs/src/content/meta/CloseIcon.md
@@ -0,0 +1,22 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Collapsible.md b/apps/docs/src/content/meta/Collapsible.md
new file mode 100644
index 0000000..4f5e8e2
--- /dev/null
+++ b/apps/docs/src/content/meta/Collapsible.md
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/CollapsibleContent.md b/apps/docs/src/content/meta/CollapsibleContent.md
new file mode 100644
index 0000000..cac73e3
--- /dev/null
+++ b/apps/docs/src/content/meta/CollapsibleContent.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/CollapsibleTrigger.md b/apps/docs/src/content/meta/CollapsibleTrigger.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/CollapsibleTrigger.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Command.md b/apps/docs/src/content/meta/Command.md
new file mode 100644
index 0000000..f481f91
--- /dev/null
+++ b/apps/docs/src/content/meta/Command.md
@@ -0,0 +1,103 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/CommandDialog.md b/apps/docs/src/content/meta/CommandDialog.md
new file mode 100644
index 0000000..2788fbb
--- /dev/null
+++ b/apps/docs/src/content/meta/CommandDialog.md
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/CommandEmpty.md b/apps/docs/src/content/meta/CommandEmpty.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/CommandEmpty.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/CommandGroup.md b/apps/docs/src/content/meta/CommandGroup.md
new file mode 100644
index 0000000..d7b09c4
--- /dev/null
+++ b/apps/docs/src/content/meta/CommandGroup.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/CommandInput.md b/apps/docs/src/content/meta/CommandInput.md
new file mode 100644
index 0000000..8f422b1
--- /dev/null
+++ b/apps/docs/src/content/meta/CommandInput.md
@@ -0,0 +1,35 @@
+
+
+
diff --git a/apps/docs/src/content/meta/CommandItem.md b/apps/docs/src/content/meta/CommandItem.md
new file mode 100644
index 0000000..1d063f8
--- /dev/null
+++ b/apps/docs/src/content/meta/CommandItem.md
@@ -0,0 +1,37 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/CommandList.md b/apps/docs/src/content/meta/CommandList.md
new file mode 100644
index 0000000..fcbce12
--- /dev/null
+++ b/apps/docs/src/content/meta/CommandList.md
@@ -0,0 +1,143 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/CommandSeparator.md b/apps/docs/src/content/meta/CommandSeparator.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/CommandSeparator.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/CommandShortcut.md b/apps/docs/src/content/meta/CommandShortcut.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/CommandShortcut.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/ContextMenu.md b/apps/docs/src/content/meta/ContextMenu.md
new file mode 100644
index 0000000..4446888
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenu.md
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuCheckboxItem.md b/apps/docs/src/content/meta/ContextMenuCheckboxItem.md
new file mode 100644
index 0000000..eb1f70c
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuCheckboxItem.md
@@ -0,0 +1,48 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuContent.md b/apps/docs/src/content/meta/ContextMenuContent.md
new file mode 100644
index 0000000..b7603f8
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuContent.md
@@ -0,0 +1,99 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuGroup.md b/apps/docs/src/content/meta/ContextMenuGroup.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuGroup.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuItem.md b/apps/docs/src/content/meta/ContextMenuItem.md
new file mode 100644
index 0000000..13c553d
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuItem.md
@@ -0,0 +1,43 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuLabel.md b/apps/docs/src/content/meta/ContextMenuLabel.md
new file mode 100644
index 0000000..ce12199
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuLabel.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuPortal.md b/apps/docs/src/content/meta/ContextMenuPortal.md
new file mode 100644
index 0000000..b645bee
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuPortal.md
@@ -0,0 +1,22 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuRadioGroup.md b/apps/docs/src/content/meta/ContextMenuRadioGroup.md
new file mode 100644
index 0000000..e755804
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuRadioGroup.md
@@ -0,0 +1,31 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuRadioItem.md b/apps/docs/src/content/meta/ContextMenuRadioItem.md
new file mode 100644
index 0000000..e70f85d
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuRadioItem.md
@@ -0,0 +1,43 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuSeparator.md b/apps/docs/src/content/meta/ContextMenuSeparator.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuSeparator.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuShortcut.md b/apps/docs/src/content/meta/ContextMenuShortcut.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuShortcut.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/ContextMenuSub.md b/apps/docs/src/content/meta/ContextMenuSub.md
new file mode 100644
index 0000000..fe7d64b
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuSub.md
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuSubContent.md b/apps/docs/src/content/meta/ContextMenuSubContent.md
new file mode 100644
index 0000000..26da6ae
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuSubContent.md
@@ -0,0 +1,127 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuSubTrigger.md b/apps/docs/src/content/meta/ContextMenuSubTrigger.md
new file mode 100644
index 0000000..8032c90
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuSubTrigger.md
@@ -0,0 +1,35 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ContextMenuTrigger.md b/apps/docs/src/content/meta/ContextMenuTrigger.md
new file mode 100644
index 0000000..ac4c21b
--- /dev/null
+++ b/apps/docs/src/content/meta/ContextMenuTrigger.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Dialog.md b/apps/docs/src/content/meta/Dialog.md
new file mode 100644
index 0000000..2788fbb
--- /dev/null
+++ b/apps/docs/src/content/meta/Dialog.md
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DialogClose.md b/apps/docs/src/content/meta/DialogClose.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/DialogClose.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DialogContent.md b/apps/docs/src/content/meta/DialogContent.md
new file mode 100644
index 0000000..def03aa
--- /dev/null
+++ b/apps/docs/src/content/meta/DialogContent.md
@@ -0,0 +1,68 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DialogDescription.md b/apps/docs/src/content/meta/DialogDescription.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/DialogDescription.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DialogFooter.md b/apps/docs/src/content/meta/DialogFooter.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/DialogFooter.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/DialogHeader.md b/apps/docs/src/content/meta/DialogHeader.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/DialogHeader.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/DialogScrollContent.md b/apps/docs/src/content/meta/DialogScrollContent.md
new file mode 100644
index 0000000..def03aa
--- /dev/null
+++ b/apps/docs/src/content/meta/DialogScrollContent.md
@@ -0,0 +1,68 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DialogTitle.md b/apps/docs/src/content/meta/DialogTitle.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/DialogTitle.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DialogTrigger.md b/apps/docs/src/content/meta/DialogTrigger.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/DialogTrigger.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Dots.md b/apps/docs/src/content/meta/Dots.md
new file mode 100644
index 0000000..301acf4
--- /dev/null
+++ b/apps/docs/src/content/meta/Dots.md
@@ -0,0 +1,10 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Drawer.md b/apps/docs/src/content/meta/Drawer.md
new file mode 100644
index 0000000..39adceb
--- /dev/null
+++ b/apps/docs/src/content/meta/Drawer.md
@@ -0,0 +1,105 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DrawerContent.md b/apps/docs/src/content/meta/DrawerContent.md
new file mode 100644
index 0000000..def03aa
--- /dev/null
+++ b/apps/docs/src/content/meta/DrawerContent.md
@@ -0,0 +1,68 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DrawerDescription.md b/apps/docs/src/content/meta/DrawerDescription.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/DrawerDescription.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DrawerFooter.md b/apps/docs/src/content/meta/DrawerFooter.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/DrawerFooter.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/DrawerHeader.md b/apps/docs/src/content/meta/DrawerHeader.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/DrawerHeader.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/DrawerOverlay.md b/apps/docs/src/content/meta/DrawerOverlay.md
new file mode 100644
index 0000000..cac73e3
--- /dev/null
+++ b/apps/docs/src/content/meta/DrawerOverlay.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DrawerTitle.md b/apps/docs/src/content/meta/DrawerTitle.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/DrawerTitle.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenu.md b/apps/docs/src/content/meta/DropdownMenu.md
new file mode 100644
index 0000000..6d6dfec
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenu.md
@@ -0,0 +1,36 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuCheckboxItem.md b/apps/docs/src/content/meta/DropdownMenuCheckboxItem.md
new file mode 100644
index 0000000..cdae405
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuCheckboxItem.md
@@ -0,0 +1,54 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuContent.md b/apps/docs/src/content/meta/DropdownMenuContent.md
new file mode 100644
index 0000000..cb6fb8e
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuContent.md
@@ -0,0 +1,132 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuGroup.md b/apps/docs/src/content/meta/DropdownMenuGroup.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuGroup.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuItem.md b/apps/docs/src/content/meta/DropdownMenuItem.md
new file mode 100644
index 0000000..b7c3306
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuItem.md
@@ -0,0 +1,41 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuLabel.md b/apps/docs/src/content/meta/DropdownMenuLabel.md
new file mode 100644
index 0000000..ce12199
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuLabel.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuRadioGroup.md b/apps/docs/src/content/meta/DropdownMenuRadioGroup.md
new file mode 100644
index 0000000..e755804
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuRadioGroup.md
@@ -0,0 +1,31 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuRadioItem.md b/apps/docs/src/content/meta/DropdownMenuRadioItem.md
new file mode 100644
index 0000000..c415229
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuRadioItem.md
@@ -0,0 +1,49 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuSeparator.md b/apps/docs/src/content/meta/DropdownMenuSeparator.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuSeparator.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuShortcut.md b/apps/docs/src/content/meta/DropdownMenuShortcut.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuShortcut.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/DropdownMenuSub.md b/apps/docs/src/content/meta/DropdownMenuSub.md
new file mode 100644
index 0000000..dabb406
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuSub.md
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuSubContent.md b/apps/docs/src/content/meta/DropdownMenuSubContent.md
new file mode 100644
index 0000000..ed2d9fd
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuSubContent.md
@@ -0,0 +1,136 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuSubTrigger.md b/apps/docs/src/content/meta/DropdownMenuSubTrigger.md
new file mode 100644
index 0000000..bf24af7
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuSubTrigger.md
@@ -0,0 +1,29 @@
+
+
+
diff --git a/apps/docs/src/content/meta/DropdownMenuTrigger.md b/apps/docs/src/content/meta/DropdownMenuTrigger.md
new file mode 100644
index 0000000..6816710
--- /dev/null
+++ b/apps/docs/src/content/meta/DropdownMenuTrigger.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/EmptyCheckboxIcon.md b/apps/docs/src/content/meta/EmptyCheckboxIcon.md
new file mode 100644
index 0000000..ea51580
--- /dev/null
+++ b/apps/docs/src/content/meta/EmptyCheckboxIcon.md
@@ -0,0 +1,10 @@
+
+
+
diff --git a/apps/docs/src/content/meta/FormControl.md b/apps/docs/src/content/meta/FormControl.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/FormControl.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/FormDescription.md b/apps/docs/src/content/meta/FormDescription.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/FormDescription.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/FormItem.md b/apps/docs/src/content/meta/FormItem.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/FormItem.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/FormLabel.md b/apps/docs/src/content/meta/FormLabel.md
new file mode 100644
index 0000000..c11c317
--- /dev/null
+++ b/apps/docs/src/content/meta/FormLabel.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/FormMessage.md b/apps/docs/src/content/meta/FormMessage.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/FormMessage.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/HoverCard.md b/apps/docs/src/content/meta/HoverCard.md
new file mode 100644
index 0000000..d939e0c
--- /dev/null
+++ b/apps/docs/src/content/meta/HoverCard.md
@@ -0,0 +1,36 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/HoverCardContent.md b/apps/docs/src/content/meta/HoverCardContent.md
new file mode 100644
index 0000000..bc6fefa
--- /dev/null
+++ b/apps/docs/src/content/meta/HoverCardContent.md
@@ -0,0 +1,96 @@
+
+
+
diff --git a/apps/docs/src/content/meta/HoverCardTrigger.md b/apps/docs/src/content/meta/HoverCardTrigger.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/HoverCardTrigger.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/InfoIcon.md b/apps/docs/src/content/meta/InfoIcon.md
new file mode 100644
index 0000000..db1037e
--- /dev/null
+++ b/apps/docs/src/content/meta/InfoIcon.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Input.md b/apps/docs/src/content/meta/Input.md
new file mode 100644
index 0000000..9dd5960
--- /dev/null
+++ b/apps/docs/src/content/meta/Input.md
@@ -0,0 +1,91 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/Kbd.md b/apps/docs/src/content/meta/Kbd.md
new file mode 100644
index 0000000..0ecd5a8
--- /dev/null
+++ b/apps/docs/src/content/meta/Kbd.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Key.md b/apps/docs/src/content/meta/Key.md
new file mode 100644
index 0000000..90dad6f
--- /dev/null
+++ b/apps/docs/src/content/meta/Key.md
@@ -0,0 +1,10 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Label.md b/apps/docs/src/content/meta/Label.md
new file mode 100644
index 0000000..9c3c3ee
--- /dev/null
+++ b/apps/docs/src/content/meta/Label.md
@@ -0,0 +1,47 @@
+
+
+
diff --git a/apps/docs/src/content/meta/LabelHelper.md b/apps/docs/src/content/meta/LabelHelper.md
new file mode 100644
index 0000000..a985ea5
--- /dev/null
+++ b/apps/docs/src/content/meta/LabelHelper.md
@@ -0,0 +1,16 @@
+
+
+
diff --git a/apps/docs/src/content/meta/LemonSqueezyIcon.md b/apps/docs/src/content/meta/LemonSqueezyIcon.md
new file mode 100644
index 0000000..4122b7e
--- /dev/null
+++ b/apps/docs/src/content/meta/LemonSqueezyIcon.md
@@ -0,0 +1,16 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Line.md b/apps/docs/src/content/meta/Line.md
new file mode 100644
index 0000000..1d439d0
--- /dev/null
+++ b/apps/docs/src/content/meta/Line.md
@@ -0,0 +1,10 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Loading.md b/apps/docs/src/content/meta/Loading.md
new file mode 100644
index 0000000..8671493
--- /dev/null
+++ b/apps/docs/src/content/meta/Loading.md
@@ -0,0 +1,25 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Menubar.md b/apps/docs/src/content/meta/Menubar.md
new file mode 100644
index 0000000..274bec5
--- /dev/null
+++ b/apps/docs/src/content/meta/Menubar.md
@@ -0,0 +1,36 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarCheckboxItem.md b/apps/docs/src/content/meta/MenubarCheckboxItem.md
new file mode 100644
index 0000000..eb1f70c
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarCheckboxItem.md
@@ -0,0 +1,48 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarContent.md b/apps/docs/src/content/meta/MenubarContent.md
new file mode 100644
index 0000000..1799835
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarContent.md
@@ -0,0 +1,104 @@
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarGroup.md b/apps/docs/src/content/meta/MenubarGroup.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarGroup.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarItem.md b/apps/docs/src/content/meta/MenubarItem.md
new file mode 100644
index 0000000..13c553d
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarItem.md
@@ -0,0 +1,43 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarLabel.md b/apps/docs/src/content/meta/MenubarLabel.md
new file mode 100644
index 0000000..ce12199
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarLabel.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarMenu.md b/apps/docs/src/content/meta/MenubarMenu.md
new file mode 100644
index 0000000..8b7c1d7
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarMenu.md
@@ -0,0 +1,10 @@
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarRadioGroup.md b/apps/docs/src/content/meta/MenubarRadioGroup.md
new file mode 100644
index 0000000..e755804
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarRadioGroup.md
@@ -0,0 +1,31 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarRadioItem.md b/apps/docs/src/content/meta/MenubarRadioItem.md
new file mode 100644
index 0000000..e70f85d
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarRadioItem.md
@@ -0,0 +1,43 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarSeparator.md b/apps/docs/src/content/meta/MenubarSeparator.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarSeparator.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarShortcut.md b/apps/docs/src/content/meta/MenubarShortcut.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarShortcut.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/MenubarSub.md b/apps/docs/src/content/meta/MenubarSub.md
new file mode 100644
index 0000000..e26969c
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarSub.md
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarSubContent.md b/apps/docs/src/content/meta/MenubarSubContent.md
new file mode 100644
index 0000000..26da6ae
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarSubContent.md
@@ -0,0 +1,127 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarSubTrigger.md b/apps/docs/src/content/meta/MenubarSubTrigger.md
new file mode 100644
index 0000000..8032c90
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarSubTrigger.md
@@ -0,0 +1,35 @@
+
+
+
diff --git a/apps/docs/src/content/meta/MenubarTrigger.md b/apps/docs/src/content/meta/MenubarTrigger.md
new file mode 100644
index 0000000..6816710
--- /dev/null
+++ b/apps/docs/src/content/meta/MenubarTrigger.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/NavigationMenu.md b/apps/docs/src/content/meta/NavigationMenu.md
new file mode 100644
index 0000000..e89ad12
--- /dev/null
+++ b/apps/docs/src/content/meta/NavigationMenu.md
@@ -0,0 +1,73 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/NavigationMenuContent.md b/apps/docs/src/content/meta/NavigationMenuContent.md
new file mode 100644
index 0000000..7365805
--- /dev/null
+++ b/apps/docs/src/content/meta/NavigationMenuContent.md
@@ -0,0 +1,52 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/NavigationMenuIndicator.md b/apps/docs/src/content/meta/NavigationMenuIndicator.md
new file mode 100644
index 0000000..cac73e3
--- /dev/null
+++ b/apps/docs/src/content/meta/NavigationMenuIndicator.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/NavigationMenuItem.md b/apps/docs/src/content/meta/NavigationMenuItem.md
new file mode 100644
index 0000000..e525b98
--- /dev/null
+++ b/apps/docs/src/content/meta/NavigationMenuItem.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/NavigationMenuLink.md b/apps/docs/src/content/meta/NavigationMenuLink.md
new file mode 100644
index 0000000..e9ed03e
--- /dev/null
+++ b/apps/docs/src/content/meta/NavigationMenuLink.md
@@ -0,0 +1,31 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/NavigationMenuList.md b/apps/docs/src/content/meta/NavigationMenuList.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/NavigationMenuList.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/NavigationMenuTrigger.md b/apps/docs/src/content/meta/NavigationMenuTrigger.md
new file mode 100644
index 0000000..6816710
--- /dev/null
+++ b/apps/docs/src/content/meta/NavigationMenuTrigger.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/NavigationMenuViewport.md b/apps/docs/src/content/meta/NavigationMenuViewport.md
new file mode 100644
index 0000000..cac73e3
--- /dev/null
+++ b/apps/docs/src/content/meta/NavigationMenuViewport.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/PaginationEllipsis.md b/apps/docs/src/content/meta/PaginationEllipsis.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/PaginationEllipsis.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/PaginationFirst.md b/apps/docs/src/content/meta/PaginationFirst.md
new file mode 100644
index 0000000..fe0d1da
--- /dev/null
+++ b/apps/docs/src/content/meta/PaginationFirst.md
@@ -0,0 +1,18 @@
+
+
+
diff --git a/apps/docs/src/content/meta/PaginationLast.md b/apps/docs/src/content/meta/PaginationLast.md
new file mode 100644
index 0000000..fe0d1da
--- /dev/null
+++ b/apps/docs/src/content/meta/PaginationLast.md
@@ -0,0 +1,18 @@
+
+
+
diff --git a/apps/docs/src/content/meta/PaginationNext.md b/apps/docs/src/content/meta/PaginationNext.md
new file mode 100644
index 0000000..fe0d1da
--- /dev/null
+++ b/apps/docs/src/content/meta/PaginationNext.md
@@ -0,0 +1,18 @@
+
+
+
diff --git a/apps/docs/src/content/meta/PaginationPrev.md b/apps/docs/src/content/meta/PaginationPrev.md
new file mode 100644
index 0000000..fe0d1da
--- /dev/null
+++ b/apps/docs/src/content/meta/PaginationPrev.md
@@ -0,0 +1,18 @@
+
+
+
diff --git a/apps/docs/src/content/meta/PinInput.md b/apps/docs/src/content/meta/PinInput.md
new file mode 100644
index 0000000..166f42d
--- /dev/null
+++ b/apps/docs/src/content/meta/PinInput.md
@@ -0,0 +1,96 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/PinInputGroup.md b/apps/docs/src/content/meta/PinInputGroup.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/PinInputGroup.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/PinInputInput.md b/apps/docs/src/content/meta/PinInputInput.md
new file mode 100644
index 0000000..253cc04
--- /dev/null
+++ b/apps/docs/src/content/meta/PinInputInput.md
@@ -0,0 +1,29 @@
+
+
+
diff --git a/apps/docs/src/content/meta/PinInputSeparator.md b/apps/docs/src/content/meta/PinInputSeparator.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/PinInputSeparator.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Popover.md b/apps/docs/src/content/meta/Popover.md
new file mode 100644
index 0000000..162bd26
--- /dev/null
+++ b/apps/docs/src/content/meta/Popover.md
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/PopoverContent.md b/apps/docs/src/content/meta/PopoverContent.md
new file mode 100644
index 0000000..f97dd27
--- /dev/null
+++ b/apps/docs/src/content/meta/PopoverContent.md
@@ -0,0 +1,143 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/PopoverTrigger.md b/apps/docs/src/content/meta/PopoverTrigger.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/PopoverTrigger.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Progress.md b/apps/docs/src/content/meta/Progress.md
new file mode 100644
index 0000000..d5cee72
--- /dev/null
+++ b/apps/docs/src/content/meta/Progress.md
@@ -0,0 +1,36 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ProgressBar.md b/apps/docs/src/content/meta/ProgressBar.md
new file mode 100644
index 0000000..7da6d74
--- /dev/null
+++ b/apps/docs/src/content/meta/ProgressBar.md
@@ -0,0 +1,91 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ProgressBarWrapper.md b/apps/docs/src/content/meta/ProgressBarWrapper.md
new file mode 100644
index 0000000..b438882
--- /dev/null
+++ b/apps/docs/src/content/meta/ProgressBarWrapper.md
@@ -0,0 +1,10 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ProgressCircle.md b/apps/docs/src/content/meta/ProgressCircle.md
new file mode 100644
index 0000000..0e98b21
--- /dev/null
+++ b/apps/docs/src/content/meta/ProgressCircle.md
@@ -0,0 +1,50 @@
+
+
+
diff --git a/apps/docs/src/content/meta/RadioGroup.md b/apps/docs/src/content/meta/RadioGroup.md
new file mode 100644
index 0000000..f4e4e34
--- /dev/null
+++ b/apps/docs/src/content/meta/RadioGroup.md
@@ -0,0 +1,115 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/RadioGroupItem.md b/apps/docs/src/content/meta/RadioGroupItem.md
new file mode 100644
index 0000000..468c042
--- /dev/null
+++ b/apps/docs/src/content/meta/RadioGroupItem.md
@@ -0,0 +1,65 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ResizableHandle.md b/apps/docs/src/content/meta/ResizableHandle.md
new file mode 100644
index 0000000..d8d6591
--- /dev/null
+++ b/apps/docs/src/content/meta/ResizableHandle.md
@@ -0,0 +1,55 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ResizablePanelGroup.md b/apps/docs/src/content/meta/ResizablePanelGroup.md
new file mode 100644
index 0000000..2f742cf
--- /dev/null
+++ b/apps/docs/src/content/meta/ResizablePanelGroup.md
@@ -0,0 +1,55 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ScrollArea.md b/apps/docs/src/content/meta/ScrollArea.md
new file mode 100644
index 0000000..f584550
--- /dev/null
+++ b/apps/docs/src/content/meta/ScrollArea.md
@@ -0,0 +1,35 @@
+
+
+
diff --git a/apps/docs/src/content/meta/ScrollBar.md b/apps/docs/src/content/meta/ScrollBar.md
new file mode 100644
index 0000000..4f7d2c3
--- /dev/null
+++ b/apps/docs/src/content/meta/ScrollBar.md
@@ -0,0 +1,30 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Select.md b/apps/docs/src/content/meta/Select.md
new file mode 100644
index 0000000..544a2f7
--- /dev/null
+++ b/apps/docs/src/content/meta/Select.md
@@ -0,0 +1,71 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/SelectContent.md b/apps/docs/src/content/meta/SelectContent.md
new file mode 100644
index 0000000..9829088
--- /dev/null
+++ b/apps/docs/src/content/meta/SelectContent.md
@@ -0,0 +1,120 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/SelectGroup.md b/apps/docs/src/content/meta/SelectGroup.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/SelectGroup.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SelectItem.md b/apps/docs/src/content/meta/SelectItem.md
new file mode 100644
index 0000000..b57165c
--- /dev/null
+++ b/apps/docs/src/content/meta/SelectItem.md
@@ -0,0 +1,35 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SelectItemText.md b/apps/docs/src/content/meta/SelectItemText.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/SelectItemText.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SelectLabel.md b/apps/docs/src/content/meta/SelectLabel.md
new file mode 100644
index 0000000..bd3ab8a
--- /dev/null
+++ b/apps/docs/src/content/meta/SelectLabel.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SelectScrollDownButton.md b/apps/docs/src/content/meta/SelectScrollDownButton.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/SelectScrollDownButton.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SelectScrollUpButton.md b/apps/docs/src/content/meta/SelectScrollUpButton.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/SelectScrollUpButton.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SelectSeparator.md b/apps/docs/src/content/meta/SelectSeparator.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/SelectSeparator.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SelectTrigger.md b/apps/docs/src/content/meta/SelectTrigger.md
new file mode 100644
index 0000000..cf64470
--- /dev/null
+++ b/apps/docs/src/content/meta/SelectTrigger.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SelectValue.md b/apps/docs/src/content/meta/SelectValue.md
new file mode 100644
index 0000000..6a279dc
--- /dev/null
+++ b/apps/docs/src/content/meta/SelectValue.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Separator.md b/apps/docs/src/content/meta/Separator.md
new file mode 100644
index 0000000..c70a66d
--- /dev/null
+++ b/apps/docs/src/content/meta/Separator.md
@@ -0,0 +1,29 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Sheet.md b/apps/docs/src/content/meta/Sheet.md
new file mode 100644
index 0000000..2788fbb
--- /dev/null
+++ b/apps/docs/src/content/meta/Sheet.md
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/SheetClose.md b/apps/docs/src/content/meta/SheetClose.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/SheetClose.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SheetContent.md b/apps/docs/src/content/meta/SheetContent.md
new file mode 100644
index 0000000..c49c8c4
--- /dev/null
+++ b/apps/docs/src/content/meta/SheetContent.md
@@ -0,0 +1,74 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/SheetDescription.md b/apps/docs/src/content/meta/SheetDescription.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/SheetDescription.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SheetFooter.md b/apps/docs/src/content/meta/SheetFooter.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/SheetFooter.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/SheetHeader.md b/apps/docs/src/content/meta/SheetHeader.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/SheetHeader.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/SheetTitle.md b/apps/docs/src/content/meta/SheetTitle.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/SheetTitle.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SheetTrigger.md b/apps/docs/src/content/meta/SheetTrigger.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/SheetTrigger.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Skeleton.md b/apps/docs/src/content/meta/Skeleton.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/Skeleton.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/Slider.md b/apps/docs/src/content/meta/Slider.md
new file mode 100644
index 0000000..9c18e0c
--- /dev/null
+++ b/apps/docs/src/content/meta/Slider.md
@@ -0,0 +1,150 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/SliderThumb.md b/apps/docs/src/content/meta/SliderThumb.md
new file mode 100644
index 0000000..ba2aa68
--- /dev/null
+++ b/apps/docs/src/content/meta/SliderThumb.md
@@ -0,0 +1,42 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Sonner.md b/apps/docs/src/content/meta/Sonner.md
new file mode 100644
index 0000000..02444ba
--- /dev/null
+++ b/apps/docs/src/content/meta/Sonner.md
@@ -0,0 +1,106 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Spinner.md b/apps/docs/src/content/meta/Spinner.md
new file mode 100644
index 0000000..301acf4
--- /dev/null
+++ b/apps/docs/src/content/meta/Spinner.md
@@ -0,0 +1,10 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Switch.md b/apps/docs/src/content/meta/Switch.md
new file mode 100644
index 0000000..a217833
--- /dev/null
+++ b/apps/docs/src/content/meta/Switch.md
@@ -0,0 +1,110 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/SwitchGroup.md b/apps/docs/src/content/meta/SwitchGroup.md
new file mode 100644
index 0000000..b9080c8
--- /dev/null
+++ b/apps/docs/src/content/meta/SwitchGroup.md
@@ -0,0 +1,77 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SwitchGroupItem.md b/apps/docs/src/content/meta/SwitchGroupItem.md
new file mode 100644
index 0000000..a277f7e
--- /dev/null
+++ b/apps/docs/src/content/meta/SwitchGroupItem.md
@@ -0,0 +1,95 @@
+
+
+
diff --git a/apps/docs/src/content/meta/SwitchLabel.md b/apps/docs/src/content/meta/SwitchLabel.md
new file mode 100644
index 0000000..c51e735
--- /dev/null
+++ b/apps/docs/src/content/meta/SwitchLabel.md
@@ -0,0 +1,107 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Table.md b/apps/docs/src/content/meta/Table.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/Table.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/TableBody.md b/apps/docs/src/content/meta/TableBody.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/TableBody.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/TableCaption.md b/apps/docs/src/content/meta/TableCaption.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/TableCaption.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/TableCell.md b/apps/docs/src/content/meta/TableCell.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/TableCell.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/TableEmpty.md b/apps/docs/src/content/meta/TableEmpty.md
new file mode 100644
index 0000000..ee88394
--- /dev/null
+++ b/apps/docs/src/content/meta/TableEmpty.md
@@ -0,0 +1,11 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TableFooter.md b/apps/docs/src/content/meta/TableFooter.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/TableFooter.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/TableHead.md b/apps/docs/src/content/meta/TableHead.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/TableHead.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/TableHeader.md b/apps/docs/src/content/meta/TableHeader.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/TableHeader.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/TableRow.md b/apps/docs/src/content/meta/TableRow.md
new file mode 100644
index 0000000..ee9f1e1
--- /dev/null
+++ b/apps/docs/src/content/meta/TableRow.md
@@ -0,0 +1 @@
+
diff --git a/apps/docs/src/content/meta/Tabs.md b/apps/docs/src/content/meta/Tabs.md
new file mode 100644
index 0000000..1f21973
--- /dev/null
+++ b/apps/docs/src/content/meta/Tabs.md
@@ -0,0 +1,63 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/TabsContent.md b/apps/docs/src/content/meta/TabsContent.md
new file mode 100644
index 0000000..0a4050c
--- /dev/null
+++ b/apps/docs/src/content/meta/TabsContent.md
@@ -0,0 +1,29 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TabsList.md b/apps/docs/src/content/meta/TabsList.md
new file mode 100644
index 0000000..623c56a
--- /dev/null
+++ b/apps/docs/src/content/meta/TabsList.md
@@ -0,0 +1,29 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TabsTrigger.md b/apps/docs/src/content/meta/TabsTrigger.md
new file mode 100644
index 0000000..0059bf3
--- /dev/null
+++ b/apps/docs/src/content/meta/TabsTrigger.md
@@ -0,0 +1,29 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Tag.md b/apps/docs/src/content/meta/Tag.md
new file mode 100644
index 0000000..ae82778
--- /dev/null
+++ b/apps/docs/src/content/meta/Tag.md
@@ -0,0 +1,35 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TagsInput.md b/apps/docs/src/content/meta/TagsInput.md
new file mode 100644
index 0000000..d2d0e16
--- /dev/null
+++ b/apps/docs/src/content/meta/TagsInput.md
@@ -0,0 +1,108 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/TagsInputInput.md b/apps/docs/src/content/meta/TagsInputInput.md
new file mode 100644
index 0000000..b8dabf3
--- /dev/null
+++ b/apps/docs/src/content/meta/TagsInputInput.md
@@ -0,0 +1,35 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TagsInputItem.md b/apps/docs/src/content/meta/TagsInputItem.md
new file mode 100644
index 0000000..0d4721e
--- /dev/null
+++ b/apps/docs/src/content/meta/TagsInputItem.md
@@ -0,0 +1,29 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TagsInputItemDelete.md b/apps/docs/src/content/meta/TagsInputItemDelete.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/TagsInputItemDelete.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TagsInputItemText.md b/apps/docs/src/content/meta/TagsInputItemText.md
new file mode 100644
index 0000000..f13bfa7
--- /dev/null
+++ b/apps/docs/src/content/meta/TagsInputItemText.md
@@ -0,0 +1,17 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TailwindPlugin.md b/apps/docs/src/content/meta/TailwindPlugin.md
new file mode 100644
index 0000000..3aac51e
--- /dev/null
+++ b/apps/docs/src/content/meta/TailwindPlugin.md
@@ -0,0 +1,33 @@
+
diff --git a/apps/docs/src/content/meta/Textarea.md b/apps/docs/src/content/meta/Textarea.md
new file mode 100644
index 0000000..b824469
--- /dev/null
+++ b/apps/docs/src/content/meta/Textarea.md
@@ -0,0 +1,91 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/TippyIcon.md b/apps/docs/src/content/meta/TippyIcon.md
new file mode 100644
index 0000000..db1037e
--- /dev/null
+++ b/apps/docs/src/content/meta/TippyIcon.md
@@ -0,0 +1,23 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Toggle.md b/apps/docs/src/content/meta/Toggle.md
new file mode 100644
index 0000000..d21307e
--- /dev/null
+++ b/apps/docs/src/content/meta/Toggle.md
@@ -0,0 +1,77 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ToggleGroup.md b/apps/docs/src/content/meta/ToggleGroup.md
new file mode 100644
index 0000000..250458d
--- /dev/null
+++ b/apps/docs/src/content/meta/ToggleGroup.md
@@ -0,0 +1,83 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/ToggleGroupItem.md b/apps/docs/src/content/meta/ToggleGroupItem.md
new file mode 100644
index 0000000..09c3732
--- /dev/null
+++ b/apps/docs/src/content/meta/ToggleGroupItem.md
@@ -0,0 +1,47 @@
+
+
+
diff --git a/apps/docs/src/content/meta/Tooltip.md b/apps/docs/src/content/meta/Tooltip.md
new file mode 100644
index 0000000..aa2cc1d
--- /dev/null
+++ b/apps/docs/src/content/meta/Tooltip.md
@@ -0,0 +1,141 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TooltipArrow.md b/apps/docs/src/content/meta/TooltipArrow.md
new file mode 100644
index 0000000..eae5ab3
--- /dev/null
+++ b/apps/docs/src/content/meta/TooltipArrow.md
@@ -0,0 +1,31 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TooltipContent.md b/apps/docs/src/content/meta/TooltipContent.md
new file mode 100644
index 0000000..ad0b8c5
--- /dev/null
+++ b/apps/docs/src/content/meta/TooltipContent.md
@@ -0,0 +1,77 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/TooltipProvider.md b/apps/docs/src/content/meta/TooltipProvider.md
new file mode 100644
index 0000000..b86d31b
--- /dev/null
+++ b/apps/docs/src/content/meta/TooltipProvider.md
@@ -0,0 +1,40 @@
+
+
+
diff --git a/apps/docs/src/content/meta/TooltipRoot.md b/apps/docs/src/content/meta/TooltipRoot.md
new file mode 100644
index 0000000..eff69c7
--- /dev/null
+++ b/apps/docs/src/content/meta/TooltipRoot.md
@@ -0,0 +1,55 @@
+
+
+
+
+
diff --git a/apps/docs/src/content/meta/TooltipTrigger.md b/apps/docs/src/content/meta/TooltipTrigger.md
new file mode 100644
index 0000000..337e321
--- /dev/null
+++ b/apps/docs/src/content/meta/TooltipTrigger.md
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/apps/docs/src/lib/components/ui/pagination/PaginationFirst.vue b/apps/docs/src/lib/components/ui/pagination/PaginationFirst.vue
new file mode 100644
index 0000000..732f739
--- /dev/null
+++ b/apps/docs/src/lib/components/ui/pagination/PaginationFirst.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+../../../../../.vitepress/theme/components/ui/button
diff --git a/apps/docs/src/lib/components/ui/pagination/PaginationLast.vue b/apps/docs/src/lib/components/ui/pagination/PaginationLast.vue
new file mode 100644
index 0000000..f2dbceb
--- /dev/null
+++ b/apps/docs/src/lib/components/ui/pagination/PaginationLast.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+../../../../../.vitepress/theme/components/ui/button
diff --git a/apps/docs/src/lib/utils.ts b/apps/docs/src/lib/utils.ts
new file mode 100644
index 0000000..e2e1476
--- /dev/null
+++ b/apps/docs/src/lib/utils.ts
@@ -0,0 +1 @@
+export * from "wedges-vue/utils";
diff --git a/apps/docs/src/public/android-chrome-192x192.png b/apps/docs/src/public/android-chrome-192x192.png
new file mode 100644
index 0000000..c00598c
Binary files /dev/null and b/apps/docs/src/public/android-chrome-192x192.png differ
diff --git a/apps/docs/src/public/android-chrome-512x512.png b/apps/docs/src/public/android-chrome-512x512.png
new file mode 100644
index 0000000..10dbd4f
Binary files /dev/null and b/apps/docs/src/public/android-chrome-512x512.png differ
diff --git a/apps/docs/src/public/apple-touch-icon.png b/apps/docs/src/public/apple-touch-icon.png
new file mode 100644
index 0000000..6e44e9b
Binary files /dev/null and b/apps/docs/src/public/apple-touch-icon.png differ
diff --git a/apps/docs/src/public/avatars/01.png b/apps/docs/src/public/avatars/01.png
new file mode 100644
index 0000000..c190101
Binary files /dev/null and b/apps/docs/src/public/avatars/01.png differ
diff --git a/apps/docs/src/public/avatars/02.png b/apps/docs/src/public/avatars/02.png
new file mode 100644
index 0000000..b2aae01
Binary files /dev/null and b/apps/docs/src/public/avatars/02.png differ
diff --git a/apps/docs/src/public/avatars/03.png b/apps/docs/src/public/avatars/03.png
new file mode 100644
index 0000000..f04b6b0
Binary files /dev/null and b/apps/docs/src/public/avatars/03.png differ
diff --git a/apps/docs/src/public/avatars/04.png b/apps/docs/src/public/avatars/04.png
new file mode 100644
index 0000000..1129539
Binary files /dev/null and b/apps/docs/src/public/avatars/04.png differ
diff --git a/apps/docs/src/public/avatars/05.png b/apps/docs/src/public/avatars/05.png
new file mode 100644
index 0000000..e73aabf
Binary files /dev/null and b/apps/docs/src/public/avatars/05.png differ
diff --git a/apps/docs/src/public/favicon-16x16.png b/apps/docs/src/public/favicon-16x16.png
new file mode 100644
index 0000000..8fff072
Binary files /dev/null and b/apps/docs/src/public/favicon-16x16.png differ
diff --git a/apps/docs/src/public/favicon-32x32.png b/apps/docs/src/public/favicon-32x32.png
new file mode 100644
index 0000000..cf2f2c4
Binary files /dev/null and b/apps/docs/src/public/favicon-32x32.png differ
diff --git a/apps/docs/src/public/favicon.ico b/apps/docs/src/public/favicon.ico
new file mode 100644
index 0000000..8479ddf
Binary files /dev/null and b/apps/docs/src/public/favicon.ico differ
diff --git a/apps/docs/src/public/fonts/Geist/GeistVariableVF.woff2 b/apps/docs/src/public/fonts/Geist/GeistVariableVF.woff2
new file mode 100644
index 0000000..328a020
Binary files /dev/null and b/apps/docs/src/public/fonts/Geist/GeistVariableVF.woff2 differ
diff --git a/apps/docs/src/public/fonts/Geist/LICENSE.TXT b/apps/docs/src/public/fonts/Geist/LICENSE.TXT
new file mode 100644
index 0000000..df71062
--- /dev/null
+++ b/apps/docs/src/public/fonts/Geist/LICENSE.TXT
@@ -0,0 +1,92 @@
+Geist Sans and Geist Mono Font
+(C) 2023 Vercel, made in collaboration with basement.studio
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is available with a FAQ at: http://scripts.sil.org/OFL and copied below
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION AND CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/apps/docs/src/public/images/banner.webp b/apps/docs/src/public/images/banner.webp
new file mode 100644
index 0000000..aff625d
Binary files /dev/null and b/apps/docs/src/public/images/banner.webp differ
diff --git a/apps/docs/src/public/placeholder.svg b/apps/docs/src/public/placeholder.svg
new file mode 100644
index 0000000..e763910
--- /dev/null
+++ b/apps/docs/src/public/placeholder.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/docs/src/public/schema.json b/apps/docs/src/public/schema.json
new file mode 100644
index 0000000..94567c9
--- /dev/null
+++ b/apps/docs/src/public/schema.json
@@ -0,0 +1,54 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "properties": {
+ "style": {
+ "type": "string",
+ "enum": ["default", "new-york"]
+ },
+ "typescript": {
+ "type": "boolean",
+ "default": true
+ },
+ "tailwind": {
+ "type": "object",
+ "properties": {
+ "config": {
+ "type": "string"
+ },
+ "css": {
+ "type": "string"
+ },
+ "baseColor": {
+ "type": "string"
+ },
+ "cssVariables": {
+ "type": "boolean",
+ "default": true
+ }
+ },
+ "required": ["config", "css", "baseColor", "cssVariables"]
+ },
+ "framework": {
+ "type": "string",
+ "enum": ["nuxt", "vite", "laravel", "astro"],
+ "default": "vite"
+ },
+ "aliases": {
+ "type": "object",
+ "properties": {
+ "utils": {
+ "type": "string"
+ },
+ "components": {
+ "type": "string"
+ },
+ "ui": {
+ "type": "string"
+ }
+ },
+ "required": ["utils", "components"]
+ }
+ },
+ "required": ["style", "tailwind", "aliases"]
+}
diff --git a/apps/docs/src/public/site.webmanifest b/apps/docs/src/public/site.webmanifest
new file mode 100644
index 0000000..45dc8a2
--- /dev/null
+++ b/apps/docs/src/public/site.webmanifest
@@ -0,0 +1 @@
+{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
\ No newline at end of file
diff --git a/apps/docs/src/stores/config.ts b/apps/docs/src/stores/config.ts
new file mode 100644
index 0000000..0760a93
--- /dev/null
+++ b/apps/docs/src/stores/config.ts
@@ -0,0 +1,24 @@
+import { useStorage } from "@vueuse/core";
+
+interface CodeConfig {
+ prefix: string;
+ componentsPath: string;
+ utilsPath: string;
+}
+
+export function useConfigStore() {
+ const codeConfig = useStorage("code-config", {
+ prefix: "",
+ componentsPath: "wedges-vue",
+ utilsPath: "wedges-vue/lib/utils",
+ });
+
+ const setCodeConfig = (payload: CodeConfig) => {
+ codeConfig.value = payload;
+ };
+
+ return {
+ codeConfig,
+ setCodeConfig,
+ };
+}
diff --git a/apps/docs/src/vite-env.d.ts b/apps/docs/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/apps/docs/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/apps/docs/tailwind.config.ts b/apps/docs/tailwind.config.ts
new file mode 100644
index 0000000..5c027c9
--- /dev/null
+++ b/apps/docs/tailwind.config.ts
@@ -0,0 +1,147 @@
+import tailwindTypography from "@tailwindcss/typography";
+import { type ThemableColorScale, wedgesTW } from "wedges-vue";
+
+const primaryBlue: ThemableColorScale = {
+ 100: "#DAF0FF",
+ 200: "#B5DEFF",
+ 300: "#90C9FF",
+ 400: "#75B6FF",
+ 500: "#4796FF",
+ 600: "#3374DB",
+ 700: "#2356B7",
+ 800: "#163C93",
+ 900: "#0D297A",
+ DEFAULT: "#4796FF", // 500
+};
+
+/** @type {import('tailwindcss').Config} */
+export default {
+ darkMode: "class",
+ content: [
+ "./src/**/*.{vue,js,ts,jsx,tsx,md,css}",
+ "./.vitepress/**/*.{vue,js,ts,jsx,tsx,css,md}",
+ "node_modules/wedges-vue/**/*.{ts,vue}",
+ ],
+
+ theme: {
+ extend: {
+ screens: {
+ "2xl": "82rem",
+ },
+ typography: {
+ DEFAULT: {
+ css: {
+ pre: {
+ padding: 0,
+ borderRadius: "0.5rem",
+ margin: 0,
+ },
+ },
+ },
+ },
+ animation: {
+ "flash": "flash 1s ease-in-out infinite",
+ "fade-in": "fadeIn 0.5s ease-in-out",
+ "fade-out": "fadeOut 0.5s ease-in-out",
+ },
+ keyframes: {
+ flash: {
+ "0%, 20%": { opacity: "0.4" },
+ "70%, 100%": { opacity: "1" },
+ },
+ fadeIn: {
+ "0%": { opacity: "0" },
+ "100%": { opacity: "1" },
+ },
+ fadeOut: {
+ "0%": { opacity: "1" },
+ "100%": { opacity: "0" },
+ },
+ },
+
+ maxWidth: {
+ "7xl": "82rem",
+ "8xl": "88rem",
+ "9xl": "96rem",
+ "10xl": "102rem",
+ "11xl": "108rem",
+ },
+ colors: {
+ "gray-50": "#F7F7F8",
+ "gray-100": "#E8E8ED",
+ "gray-500": "#6C6C89",
+ "gray-800": "#282833",
+ "gray-900": "#121217",
+ "purple-200": "#fcc5f3",
+ "purple-400": "#8D6CEF",
+ "purple-500": "#7047EB",
+ "purple-600": "#5423E7",
+ "yellow-500": "#FFC233",
+ "wtf-gainsboro": "#EAEAEB",
+ "border": "hsl(var(--border))",
+ "input": "hsl(var(--input))",
+ "ring": "hsl(var(--ring))",
+ "muted": {
+ DEFAULT: "hsl(var(--muted))",
+ foreground: "hsl(var(--muted-foreground))",
+ },
+ "accent": {
+ DEFAULT: "hsl(var(--accent))",
+ foreground: "hsl(var(--accent-foreground))",
+ },
+ "popover": {
+ DEFAULT: "hsl(var(--popover))",
+ foreground: "hsl(var(--popover-foreground))",
+ },
+ "card": {
+ DEFAULT: "hsl(var(--card))",
+ foreground: "hsl(var(--card-foreground))",
+ },
+ },
+ container: {
+ center: true,
+ screens: {
+ md: "100%",
+ xl: "77rem", // 72 + 5 for padding
+ },
+ padding: {
+ DEFAULT: "1.5rem",
+ md: "2.5rem",
+ xl: "2.5rem",
+ },
+ },
+ fontFamily: {
+ sans: ["Inter", "ui-sans-serif", "system-ui", "-apple-system"],
+ },
+ minHeight: {
+ "screen-dvh": "100dvh",
+ },
+ transitionDuration: {
+ 180: "180ms",
+ },
+ },
+ },
+ plugins: [
+ wedgesTW({
+ themes: {
+ "dark-blue": {
+ extend: "dark",
+ colors: {
+ primary: primaryBlue,
+ },
+ },
+ "light": {
+ colors: {
+ primary: {
+ DEFAULT: "#7047EB",
+ 400: "#8D6CEF",
+ 500: "#7047EB",
+ 600: "#5423E7",
+ },
+ },
+ },
+ },
+ }),
+ tailwindTypography,
+ ],
+};
diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json
new file mode 100644
index 0000000..213bd44
--- /dev/null
+++ b/apps/docs/tsconfig.json
@@ -0,0 +1,78 @@
+{
+ "module": "preserve",
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
+ "compilerOptions": {
+ "lib": [
+ "ESNext",
+ "DOM",
+ "DOM.Iterable"
+ ],
+ "baseUrl": ".",
+ "moduleResolution": "bundler",
+ "paths": {
+ "@/*": [
+ "docs/src/*"
+ ]
+ },
+ "types": [
+ "unplugin-icons/types/vue",
+ "node"
+ ],
+ "declaration": false,
+ "outDir": "dist",
+ "sourceMap": true
+ },
+ "include": [
+ "docs/src",
+ ".vitepress/**/*.vue",
+ ".vitepress/**/*.mts",
+ ".vitepress/**/*.ts",
+ "docs/src/lib/**/*",
+ ".vitepress/theme/components/ui/checkbox",
+ ".vitepress/theme/components/ui/collapsible",
+ ".vitepress/theme/components/ui/command",
+ ".vitepress/theme/components/ui/context-menu",
+ ".vitepress/theme/components/ui/dialog",
+ ".vitepress/theme/components/ui/drawer",
+ ".vitepress/theme/components/ui/avatar",
+ ".vitepress/theme/components/ui/badge",
+ ".vitepress/theme/components/ui/breadcrumb",
+ ".vitepress/theme/components/ui/button",
+ ".vitepress/theme/components/ui/calendar",
+ ".vitepress/theme/components/ui/card",
+ ".vitepress/theme/components/ui/alert",
+ ".vitepress/theme/components/ui/alert-dialog",
+ ".vitepress/theme/components/ui/aspect-ratio",
+ ".vitepress/theme/components/ui/carousel",
+ ".vitepress/theme/components/ui/accordion",
+ ".vitepress/theme/components/ui/dropdown-menu",
+ ".vitepress/theme/components/ui/form",
+ ".vitepress/theme/components/ui/hover-card",
+ ".vitepress/theme/components/ui/input",
+ ".vitepress/theme/components/ui/label",
+ ".vitepress/theme/components/ui/menubar",
+ ".vitepress/theme/components/ui/navigation-menu",
+ ".vitepress/theme/components/ui/pagination",
+ ".vitepress/theme/components/ui/pin-input",
+ ".vitepress/theme/components/ui/popover",
+ ".vitepress/theme/components/ui/progress",
+ ".vitepress/theme/components/ui/radio-group",
+ ".vitepress/theme/components/ui/resizable",
+ ".vitepress/theme/components/ui/scroll-area",
+ ".vitepress/theme/components/ui/select",
+ ".vitepress/theme/components/ui/separator",
+ ".vitepress/theme/components/ui/sheet",
+ ".vitepress/theme/components/ui/skeleton",
+ ".vitepress/theme/components/ui/slider",
+ ".vitepress/theme/components/ui/sonner",
+ ".vitepress/theme/components/ui/switch",
+ ".vitepress/theme/components/ui/table",
+ ".vitepress/theme/components/ui/tabs",
+ ".vitepress/theme/components/ui/tags-input",
+ ".vitepress/theme/components/ui/textarea",
+ ".vitepress/theme/components/ui/toast",
+ ".vitepress/theme/components/ui/toggle",
+ ".vitepress/theme/components/ui/toggle-group",
+ ".vitepress/theme/components/ui/tooltip"
+ ]
+}
diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 0000000..56492e7
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,30 @@
+import antfu from "@antfu/eslint-config";
+
+export default antfu(
+ {
+ vue: true,
+ typescript: true,
+ stylistic: {
+ quotes: "double",
+ semi: true,
+ },
+ },
+ {
+ files: ["**/*.vue"],
+ rules: {
+ "vue/one-component-per-file": 0,
+ "vue/no-reserved-component-names": 0,
+ "vue/no-useless-v-bind": 0,
+ },
+ },
+ {
+ // Without `files`, they are general rules for all files
+ rules: {
+ "symbol-description": 0,
+ "no-console": 1,
+ "no-tabs": 0,
+ "import/first": 0,
+ "node/prefer-global/process": 0,
+ },
+ },
+);
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..97900f7
--- /dev/null
+++ b/package.json
@@ -0,0 +1,46 @@
+{
+ "name": "wedges-vue-project",
+ "type": "module",
+ "version": "0.1.0",
+ "private": true,
+ "packageManager": "pnpm@8.15.5",
+ "license": "MIT",
+ "repository": "raymondmuller/wedges-vue",
+ "workspaces": [
+ "packages/*"
+ ],
+ "scripts": {
+ "dev": "pnpm --filter docs dev",
+ "build": "pnpm --filter docs build",
+ "preview": "pnpm --filter docs preview",
+ "prepare": "pnpm simple-git-hooks",
+ "wedges:watch": "pnpm --filter wedges-vue build --watch",
+ "wedges:build": "pnpm --filter wedges-vue build",
+ "lint": "eslint .",
+ "lint:fix": "eslint . --fix",
+ "bumpp": "bumpp package.json packages/*/package.json apps/*/package.json"
+ },
+ "devDependencies": {
+ "@antfu/eslint-config": "^2.16.2",
+ "@commitlint/cli": "^19.3.0",
+ "@commitlint/config-conventional": "^19.2.2",
+ "bumpp": "^9.4.1",
+ "eslint": "^8.57.0",
+ "lint-staged": "^15.2.2",
+ "simple-git-hooks": "^2.11.1",
+ "typescript": "^5.4.5",
+ "vitest": "^0.34.6"
+ },
+ "commitlint": {
+ "extends": [
+ "@commitlint/config-conventional"
+ ]
+ },
+ "simple-git-hooks": {
+ "pre-commit": "pnpm lint-staged",
+ "commit-msg": "pnpm commitlint --edit ${1}"
+ },
+ "lint-staged": {
+ "*": "eslint --fix"
+ }
+}
diff --git a/packages/wedges-vue/.gitignore b/packages/wedges-vue/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/packages/wedges-vue/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/packages/wedges-vue/.vscode/extensions.json b/packages/wedges-vue/.vscode/extensions.json
new file mode 100644
index 0000000..a7cea0b
--- /dev/null
+++ b/packages/wedges-vue/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["Vue.volar"]
+}
diff --git a/packages/wedges-vue/README.md b/packages/wedges-vue/README.md
new file mode 100644
index 0000000..0bfecb0
--- /dev/null
+++ b/packages/wedges-vue/README.md
@@ -0,0 +1,9 @@
+# Vue 3 + TypeScript + Vite
+
+This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `
+
+