diff --git a/apps/www/.vitepress/theme/config/docs.ts b/apps/www/.vitepress/theme/config/docs.ts index 4f69dc39..7432c50a 100644 --- a/apps/www/.vitepress/theme/config/docs.ts +++ b/apps/www/.vitepress/theme/config/docs.ts @@ -254,6 +254,12 @@ export const docsConfig: DocsConfig = { href: '/docs/components/pagination', items: [], }, + { + title: 'Pin Input', + href: '/docs/components/pin-input', + label: 'New', + items: [], + }, { title: 'Popover', href: '/docs/components/popover', diff --git a/apps/www/__registry__/index.ts b/apps/www/__registry__/index.ts index c8ca92f4..3bee58c3 100644 --- a/apps/www/__registry__/index.ts +++ b/apps/www/__registry__/index.ts @@ -485,6 +485,20 @@ export const Index = { component: () => import('../src/lib/registry/default/example/PaginationDemo.vue').then(m => m.default), files: ['../src/lib/registry/default/example/PaginationDemo.vue'], }, + PinInputDemo: { + name: 'PinInputDemo', + type: 'components:example', + registryDependencies: ['pin-input'], + component: () => import('../src/lib/registry/default/example/PinInputDemo.vue').then(m => m.default), + files: ['../src/lib/registry/default/example/PinInputDemo.vue'], + }, + PinInputFormDemo: { + name: 'PinInputFormDemo', + type: 'components:example', + registryDependencies: ['pin-input', 'button', 'form', 'toast'], + component: () => import('../src/lib/registry/default/example/PinInputFormDemo.vue').then(m => m.default), + files: ['../src/lib/registry/default/example/PinInputFormDemo.vue'], + }, PopoverDemo: { name: 'PopoverDemo', type: 'components:example', @@ -1390,6 +1404,20 @@ export const Index = { component: () => import('../src/lib/registry/new-york/example/PaginationDemo.vue').then(m => m.default), files: ['../src/lib/registry/new-york/example/PaginationDemo.vue'], }, + PinInputDemo: { + name: 'PinInputDemo', + type: 'components:example', + registryDependencies: ['pin-input'], + component: () => import('../src/lib/registry/new-york/example/PinInputDemo.vue').then(m => m.default), + files: ['../src/lib/registry/new-york/example/PinInputDemo.vue'], + }, + PinInputFormDemo: { + name: 'PinInputFormDemo', + type: 'components:example', + registryDependencies: ['pin-input', 'button', 'form', 'toast'], + component: () => import('../src/lib/registry/new-york/example/PinInputFormDemo.vue').then(m => m.default), + files: ['../src/lib/registry/new-york/example/PinInputFormDemo.vue'], + }, PopoverDemo: { name: 'PopoverDemo', type: 'components:example', diff --git a/apps/www/src/content/docs/components/pin-input.md b/apps/www/src/content/docs/components/pin-input.md new file mode 100644 index 00000000..207e11c4 --- /dev/null +++ b/apps/www/src/content/docs/components/pin-input.md @@ -0,0 +1,21 @@ +--- +title: PIN Input +description: Allows users to input a sequence of one-character alphanumeric inputs. +source: apps/www/src/lib/registry/default/ui/pin-input +primitive: https://www.radix-vue.com/components/pin-input.html +--- + + + + +## Installation + +```bash +npx shadcn-vue@latest add pin-input +``` + +## Usage + +### Form + + diff --git a/apps/www/src/lib/registry/default/example/PinInputDemo.vue b/apps/www/src/lib/registry/default/example/PinInputDemo.vue new file mode 100644 index 00000000..fb5d5c93 --- /dev/null +++ b/apps/www/src/lib/registry/default/example/PinInputDemo.vue @@ -0,0 +1,28 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/PinInputFormDemo.vue b/apps/www/src/lib/registry/default/example/PinInputFormDemo.vue new file mode 100644 index 00000000..0f909a95 --- /dev/null +++ b/apps/www/src/lib/registry/default/example/PinInputFormDemo.vue @@ -0,0 +1,78 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/pin-input/PinInput.vue b/apps/www/src/lib/registry/default/ui/pin-input/PinInput.vue new file mode 100644 index 00000000..9a5edb97 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/pin-input/PinInput.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/pin-input/PinInputInput.vue b/apps/www/src/lib/registry/default/ui/pin-input/PinInputInput.vue new file mode 100644 index 00000000..47eaccbe --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/pin-input/PinInputInput.vue @@ -0,0 +1,18 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/pin-input/index.ts b/apps/www/src/lib/registry/default/ui/pin-input/index.ts new file mode 100644 index 00000000..ee290cc8 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/pin-input/index.ts @@ -0,0 +1,2 @@ +export { default as PinInput } from './PinInput.vue' +export { default as PinInputInput } from './PinInputInput.vue' diff --git a/apps/www/src/lib/registry/new-york/example/PinInputDemo.vue b/apps/www/src/lib/registry/new-york/example/PinInputDemo.vue new file mode 100644 index 00000000..0d8bacf2 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/PinInputDemo.vue @@ -0,0 +1,28 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/PinInputFormDemo.vue b/apps/www/src/lib/registry/new-york/example/PinInputFormDemo.vue new file mode 100644 index 00000000..50b3345b --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/PinInputFormDemo.vue @@ -0,0 +1,78 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/pin-input/PinInput.vue b/apps/www/src/lib/registry/new-york/ui/pin-input/PinInput.vue new file mode 100644 index 00000000..9a5edb97 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/pin-input/PinInput.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/pin-input/PinInputInput.vue b/apps/www/src/lib/registry/new-york/ui/pin-input/PinInputInput.vue new file mode 100644 index 00000000..47eaccbe --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/pin-input/PinInputInput.vue @@ -0,0 +1,18 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/pin-input/index.ts b/apps/www/src/lib/registry/new-york/ui/pin-input/index.ts new file mode 100644 index 00000000..ee290cc8 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/pin-input/index.ts @@ -0,0 +1,2 @@ +export { default as PinInput } from './PinInput.vue' +export { default as PinInputInput } from './PinInputInput.vue' diff --git a/apps/www/src/public/registry/index.json b/apps/www/src/public/registry/index.json index 9589b3b6..de3369a8 100644 --- a/apps/www/src/public/registry/index.json +++ b/apps/www/src/public/registry/index.json @@ -392,6 +392,19 @@ ], "type": "components:ui" }, + { + "name": "pin-input", + "dependencies": [], + "registryDependencies": [ + "utils" + ], + "files": [ + "ui/pin-input/PinInput.vue", + "ui/pin-input/PinInputInput.vue", + "ui/pin-input/index.ts" + ], + "type": "components:ui" + }, { "name": "popover", "dependencies": [], diff --git a/apps/www/src/public/registry/styles/default/pin-input.json b/apps/www/src/public/registry/styles/default/pin-input.json new file mode 100644 index 00000000..ee35d2bf --- /dev/null +++ b/apps/www/src/public/registry/styles/default/pin-input.json @@ -0,0 +1,22 @@ +{ + "name": "pin-input", + "dependencies": [], + "registryDependencies": [ + "utils" + ], + "files": [ + { + "name": "PinInput.vue", + "content": "\n\n\n" + }, + { + "name": "PinInputInput.vue", + "content": "\n\n\n" + }, + { + "name": "index.ts", + "content": "export { default as PinInput } from './PinInput.vue'\nexport { default as PinInputInput } from './PinInputInput.vue'\n" + } + ], + "type": "components:ui" +} \ No newline at end of file diff --git a/apps/www/src/public/registry/styles/new-york/pin-input.json b/apps/www/src/public/registry/styles/new-york/pin-input.json new file mode 100644 index 00000000..ee35d2bf --- /dev/null +++ b/apps/www/src/public/registry/styles/new-york/pin-input.json @@ -0,0 +1,22 @@ +{ + "name": "pin-input", + "dependencies": [], + "registryDependencies": [ + "utils" + ], + "files": [ + { + "name": "PinInput.vue", + "content": "\n\n\n" + }, + { + "name": "PinInputInput.vue", + "content": "\n\n\n" + }, + { + "name": "index.ts", + "content": "export { default as PinInput } from './PinInput.vue'\nexport { default as PinInputInput } from './PinInputInput.vue'\n" + } + ], + "type": "components:ui" +} \ No newline at end of file