From 4b62d273b599dcde318753b3b165f57c3daa43a4 Mon Sep 17 00:00:00 2001 From: Roman Slonov Date: Sat, 25 May 2024 14:25:39 +0800 Subject: [PATCH] feat: add number-field component --- apps/www/.vitepress/theme/config/docs.ts | 5 ++ apps/www/__registry__/index.ts | 84 +++++++++++++++++++ .../content/docs/components/number-field.md | 71 ++++++++++++++++ .../default/example/NumberFieldCurrency.vue | 29 +++++++ .../default/example/NumberFieldDecimal.vue | 27 ++++++ .../default/example/NumberFieldDemo.vue | 21 +++++ .../default/example/NumberFieldDisabled.vue | 21 +++++ .../default/example/NumberFieldForm.vue | 79 +++++++++++++++++ .../default/example/NumberFieldPercentage.vue | 27 ++++++ .../default/ui/number-field/NumberField.vue | 23 +++++ .../ui/number-field/NumberFieldContent.vue | 14 ++++ .../ui/number-field/NumberFieldDecrement.vue | 25 ++++++ .../ui/number-field/NumberFieldIncrement.vue | 25 ++++++ .../ui/number-field/NumberFieldInput.vue | 8 ++ .../ui/number-field/NumberFieldLabel.vue | 22 +++++ .../registry/default/ui/number-field/index.ts | 6 ++ .../new-york/example/NumberFieldCurrency.vue | 29 +++++++ .../new-york/example/NumberFieldDecimal.vue | 27 ++++++ .../new-york/example/NumberFieldDemo.vue | 21 +++++ .../new-york/example/NumberFieldDisabled.vue | 21 +++++ .../new-york/example/NumberFieldForm.vue | 79 +++++++++++++++++ .../example/NumberFieldPercentage.vue | 27 ++++++ .../new-york/ui/number-field/NumberField.vue | 23 +++++ .../ui/number-field/NumberFieldContent.vue | 14 ++++ .../ui/number-field/NumberFieldDecrement.vue | 25 ++++++ .../ui/number-field/NumberFieldIncrement.vue | 25 ++++++ .../ui/number-field/NumberFieldInput.vue | 8 ++ .../ui/number-field/NumberFieldLabel.vue | 22 +++++ .../new-york/ui/number-field/index.ts | 6 ++ apps/www/src/public/registry/index.json | 17 ++++ .../registry/styles/default/number-field.json | 38 +++++++++ 31 files changed, 869 insertions(+) create mode 100644 apps/www/src/content/docs/components/number-field.md create mode 100644 apps/www/src/lib/registry/default/example/NumberFieldCurrency.vue create mode 100644 apps/www/src/lib/registry/default/example/NumberFieldDecimal.vue create mode 100644 apps/www/src/lib/registry/default/example/NumberFieldDemo.vue create mode 100644 apps/www/src/lib/registry/default/example/NumberFieldDisabled.vue create mode 100644 apps/www/src/lib/registry/default/example/NumberFieldForm.vue create mode 100644 apps/www/src/lib/registry/default/example/NumberFieldPercentage.vue create mode 100644 apps/www/src/lib/registry/default/ui/number-field/NumberField.vue create mode 100644 apps/www/src/lib/registry/default/ui/number-field/NumberFieldContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/number-field/NumberFieldDecrement.vue create mode 100644 apps/www/src/lib/registry/default/ui/number-field/NumberFieldIncrement.vue create mode 100644 apps/www/src/lib/registry/default/ui/number-field/NumberFieldInput.vue create mode 100644 apps/www/src/lib/registry/default/ui/number-field/NumberFieldLabel.vue create mode 100644 apps/www/src/lib/registry/default/ui/number-field/index.ts create mode 100644 apps/www/src/lib/registry/new-york/example/NumberFieldCurrency.vue create mode 100644 apps/www/src/lib/registry/new-york/example/NumberFieldDecimal.vue create mode 100644 apps/www/src/lib/registry/new-york/example/NumberFieldDemo.vue create mode 100644 apps/www/src/lib/registry/new-york/example/NumberFieldDisabled.vue create mode 100644 apps/www/src/lib/registry/new-york/example/NumberFieldForm.vue create mode 100644 apps/www/src/lib/registry/new-york/example/NumberFieldPercentage.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/number-field/NumberField.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldContent.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldDecrement.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldIncrement.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldInput.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldLabel.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/number-field/index.ts create mode 100644 apps/www/src/public/registry/styles/default/number-field.json diff --git a/apps/www/.vitepress/theme/config/docs.ts b/apps/www/.vitepress/theme/config/docs.ts index 96c2ed48..399a8235 100644 --- a/apps/www/.vitepress/theme/config/docs.ts +++ b/apps/www/.vitepress/theme/config/docs.ts @@ -256,6 +256,11 @@ export const docsConfig: DocsConfig = { title: 'Navigation Menu', href: '/docs/components/navigation-menu', }, + { + title: 'Number Field', + href: '/docs/components/number-field', + label: 'Alpha', + }, { title: 'Pagination', href: '/docs/components/pagination', diff --git a/apps/www/__registry__/index.ts b/apps/www/__registry__/index.ts index 4a20e476..89d29018 100644 --- a/apps/www/__registry__/index.ts +++ b/apps/www/__registry__/index.ts @@ -759,6 +759,48 @@ export const Index = { component: () => import("../src/lib/registry/default/example/NavigationMenuDemoItem.vue").then((m) => m.default), files: ["../src/lib/registry/default/example/NavigationMenuDemoItem.vue"], }, + "NumberFieldCurrency": { + name: "NumberFieldCurrency", + type: "components:example", + registryDependencies: ["number-field"], + component: () => import("../src/lib/registry/default/example/NumberFieldCurrency.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/NumberFieldCurrency.vue"], + }, + "NumberFieldDecimal": { + name: "NumberFieldDecimal", + type: "components:example", + registryDependencies: ["number-field"], + component: () => import("../src/lib/registry/default/example/NumberFieldDecimal.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/NumberFieldDecimal.vue"], + }, + "NumberFieldDemo": { + name: "NumberFieldDemo", + type: "components:example", + registryDependencies: ["number-field"], + component: () => import("../src/lib/registry/default/example/NumberFieldDemo.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/NumberFieldDemo.vue"], + }, + "NumberFieldDisabled": { + name: "NumberFieldDisabled", + type: "components:example", + registryDependencies: ["number-field"], + component: () => import("../src/lib/registry/default/example/NumberFieldDisabled.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/NumberFieldDisabled.vue"], + }, + "NumberFieldForm": { + name: "NumberFieldForm", + type: "components:example", + registryDependencies: ["button","form","number-field","toast"], + component: () => import("../src/lib/registry/default/example/NumberFieldForm.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/NumberFieldForm.vue"], + }, + "NumberFieldPercentage": { + name: "NumberFieldPercentage", + type: "components:example", + registryDependencies: ["number-field"], + component: () => import("../src/lib/registry/default/example/NumberFieldPercentage.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/NumberFieldPercentage.vue"], + }, "PaginationDemo": { name: "PaginationDemo", type: "components:example", @@ -2167,6 +2209,48 @@ export const Index = { component: () => import("../src/lib/registry/new-york/example/NavigationMenuDemoItem.vue").then((m) => m.default), files: ["../src/lib/registry/new-york/example/NavigationMenuDemoItem.vue"], }, + "NumberFieldCurrency": { + name: "NumberFieldCurrency", + type: "components:example", + registryDependencies: ["number-field"], + component: () => import("../src/lib/registry/new-york/example/NumberFieldCurrency.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/NumberFieldCurrency.vue"], + }, + "NumberFieldDecimal": { + name: "NumberFieldDecimal", + type: "components:example", + registryDependencies: ["number-field"], + component: () => import("../src/lib/registry/new-york/example/NumberFieldDecimal.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/NumberFieldDecimal.vue"], + }, + "NumberFieldDemo": { + name: "NumberFieldDemo", + type: "components:example", + registryDependencies: ["number-field"], + component: () => import("../src/lib/registry/new-york/example/NumberFieldDemo.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/NumberFieldDemo.vue"], + }, + "NumberFieldDisabled": { + name: "NumberFieldDisabled", + type: "components:example", + registryDependencies: ["number-field"], + component: () => import("../src/lib/registry/new-york/example/NumberFieldDisabled.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/NumberFieldDisabled.vue"], + }, + "NumberFieldForm": { + name: "NumberFieldForm", + type: "components:example", + registryDependencies: ["button","form","number-field","toast"], + component: () => import("../src/lib/registry/new-york/example/NumberFieldForm.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/NumberFieldForm.vue"], + }, + "NumberFieldPercentage": { + name: "NumberFieldPercentage", + type: "components:example", + registryDependencies: ["number-field"], + component: () => import("../src/lib/registry/new-york/example/NumberFieldPercentage.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/NumberFieldPercentage.vue"], + }, "PaginationDemo": { name: "PaginationDemo", type: "components:example", diff --git a/apps/www/src/content/docs/components/number-field.md b/apps/www/src/content/docs/components/number-field.md new file mode 100644 index 00000000..5be93859 --- /dev/null +++ b/apps/www/src/content/docs/components/number-field.md @@ -0,0 +1,71 @@ +--- +title: Number Field +description: A number field allows a user to enter a number and increment or decrement the value using stepper buttons. +source: apps/www/src/lib/registry/default/ui/number-field +primitive: https://www.radix-vue.com/components/number-field.html +--- + + + +## Installation + + + + + +## Usage + +```vue + + + +``` + +## Examples + +### Default + + + +### Disabled + + + +### Decimal + + + +### Percentage + + + +### Currency + + + +### Form + + diff --git a/apps/www/src/lib/registry/default/example/NumberFieldCurrency.vue b/apps/www/src/lib/registry/default/example/NumberFieldCurrency.vue new file mode 100644 index 00000000..68d1c66e --- /dev/null +++ b/apps/www/src/lib/registry/default/example/NumberFieldCurrency.vue @@ -0,0 +1,29 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/NumberFieldDecimal.vue b/apps/www/src/lib/registry/default/example/NumberFieldDecimal.vue new file mode 100644 index 00000000..7d223790 --- /dev/null +++ b/apps/www/src/lib/registry/default/example/NumberFieldDecimal.vue @@ -0,0 +1,27 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/NumberFieldDemo.vue b/apps/www/src/lib/registry/default/example/NumberFieldDemo.vue new file mode 100644 index 00000000..434738cb --- /dev/null +++ b/apps/www/src/lib/registry/default/example/NumberFieldDemo.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/NumberFieldDisabled.vue b/apps/www/src/lib/registry/default/example/NumberFieldDisabled.vue new file mode 100644 index 00000000..bfba65a1 --- /dev/null +++ b/apps/www/src/lib/registry/default/example/NumberFieldDisabled.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/NumberFieldForm.vue b/apps/www/src/lib/registry/default/example/NumberFieldForm.vue new file mode 100644 index 00000000..56418ff4 --- /dev/null +++ b/apps/www/src/lib/registry/default/example/NumberFieldForm.vue @@ -0,0 +1,79 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/NumberFieldPercentage.vue b/apps/www/src/lib/registry/default/example/NumberFieldPercentage.vue new file mode 100644 index 00000000..102c915b --- /dev/null +++ b/apps/www/src/lib/registry/default/example/NumberFieldPercentage.vue @@ -0,0 +1,27 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/number-field/NumberField.vue b/apps/www/src/lib/registry/default/ui/number-field/NumberField.vue new file mode 100644 index 00000000..c89c06fb --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/number-field/NumberField.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/number-field/NumberFieldContent.vue b/apps/www/src/lib/registry/default/ui/number-field/NumberFieldContent.vue new file mode 100644 index 00000000..12c8d7ed --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/number-field/NumberFieldContent.vue @@ -0,0 +1,14 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/number-field/NumberFieldDecrement.vue b/apps/www/src/lib/registry/default/ui/number-field/NumberFieldDecrement.vue new file mode 100644 index 00000000..0829f9b0 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/number-field/NumberFieldDecrement.vue @@ -0,0 +1,25 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/number-field/NumberFieldIncrement.vue b/apps/www/src/lib/registry/default/ui/number-field/NumberFieldIncrement.vue new file mode 100644 index 00000000..45690be8 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/number-field/NumberFieldIncrement.vue @@ -0,0 +1,25 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/number-field/NumberFieldInput.vue b/apps/www/src/lib/registry/default/ui/number-field/NumberFieldInput.vue new file mode 100644 index 00000000..4a8eefac --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/number-field/NumberFieldInput.vue @@ -0,0 +1,8 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/number-field/NumberFieldLabel.vue b/apps/www/src/lib/registry/default/ui/number-field/NumberFieldLabel.vue new file mode 100644 index 00000000..b6c2737a --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/number-field/NumberFieldLabel.vue @@ -0,0 +1,22 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/number-field/index.ts b/apps/www/src/lib/registry/default/ui/number-field/index.ts new file mode 100644 index 00000000..3d33c8d8 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/number-field/index.ts @@ -0,0 +1,6 @@ +export { default as NumberField } from './NumberField.vue' +export { default as NumberFieldInput } from './NumberFieldInput.vue' +export { default as NumberFieldLabel } from './NumberFieldLabel.vue' +export { default as NumberFieldIncrement } from './NumberFieldIncrement.vue' +export { default as NumberFieldDecrement } from './NumberFieldDecrement.vue' +export { default as NumberFieldContent } from './NumberFieldContent.vue' diff --git a/apps/www/src/lib/registry/new-york/example/NumberFieldCurrency.vue b/apps/www/src/lib/registry/new-york/example/NumberFieldCurrency.vue new file mode 100644 index 00000000..00906ac6 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/NumberFieldCurrency.vue @@ -0,0 +1,29 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/NumberFieldDecimal.vue b/apps/www/src/lib/registry/new-york/example/NumberFieldDecimal.vue new file mode 100644 index 00000000..8f39c4e4 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/NumberFieldDecimal.vue @@ -0,0 +1,27 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/NumberFieldDemo.vue b/apps/www/src/lib/registry/new-york/example/NumberFieldDemo.vue new file mode 100644 index 00000000..a3b25e0f --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/NumberFieldDemo.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/NumberFieldDisabled.vue b/apps/www/src/lib/registry/new-york/example/NumberFieldDisabled.vue new file mode 100644 index 00000000..02f7447b --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/NumberFieldDisabled.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/NumberFieldForm.vue b/apps/www/src/lib/registry/new-york/example/NumberFieldForm.vue new file mode 100644 index 00000000..c866b191 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/NumberFieldForm.vue @@ -0,0 +1,79 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/NumberFieldPercentage.vue b/apps/www/src/lib/registry/new-york/example/NumberFieldPercentage.vue new file mode 100644 index 00000000..102c915b --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/NumberFieldPercentage.vue @@ -0,0 +1,27 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/number-field/NumberField.vue b/apps/www/src/lib/registry/new-york/ui/number-field/NumberField.vue new file mode 100644 index 00000000..c89c06fb --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/number-field/NumberField.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldContent.vue b/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldContent.vue new file mode 100644 index 00000000..12c8d7ed --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldContent.vue @@ -0,0 +1,14 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldDecrement.vue b/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldDecrement.vue new file mode 100644 index 00000000..0829f9b0 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldDecrement.vue @@ -0,0 +1,25 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldIncrement.vue b/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldIncrement.vue new file mode 100644 index 00000000..45690be8 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldIncrement.vue @@ -0,0 +1,25 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldInput.vue b/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldInput.vue new file mode 100644 index 00000000..9a0ee0e6 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldInput.vue @@ -0,0 +1,8 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldLabel.vue b/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldLabel.vue new file mode 100644 index 00000000..b6c2737a --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/number-field/NumberFieldLabel.vue @@ -0,0 +1,22 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/number-field/index.ts b/apps/www/src/lib/registry/new-york/ui/number-field/index.ts new file mode 100644 index 00000000..3d33c8d8 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/number-field/index.ts @@ -0,0 +1,6 @@ +export { default as NumberField } from './NumberField.vue' +export { default as NumberFieldInput } from './NumberFieldInput.vue' +export { default as NumberFieldLabel } from './NumberFieldLabel.vue' +export { default as NumberFieldIncrement } from './NumberFieldIncrement.vue' +export { default as NumberFieldDecrement } from './NumberFieldDecrement.vue' +export { default as NumberFieldContent } from './NumberFieldContent.vue' diff --git a/apps/www/src/public/registry/index.json b/apps/www/src/public/registry/index.json index 1fa7d985..1ab8b586 100644 --- a/apps/www/src/public/registry/index.json +++ b/apps/www/src/public/registry/index.json @@ -553,6 +553,23 @@ ], "type": "components:ui" }, + { + "name": "number-field", + "dependencies": [], + "registryDependencies": [ + "utils" + ], + "files": [ + "ui/number-field/NumberField.vue", + "ui/number-field/NumberFieldContent.vue", + "ui/number-field/NumberFieldDecrement.vue", + "ui/number-field/NumberFieldIncrement.vue", + "ui/number-field/NumberFieldInput.vue", + "ui/number-field/NumberFieldLabel.vue", + "ui/number-field/index.ts" + ], + "type": "components:ui" + }, { "name": "pagination", "dependencies": [], diff --git a/apps/www/src/public/registry/styles/default/number-field.json b/apps/www/src/public/registry/styles/default/number-field.json new file mode 100644 index 00000000..8b2c3934 --- /dev/null +++ b/apps/www/src/public/registry/styles/default/number-field.json @@ -0,0 +1,38 @@ +{ + "name": "number-field", + "dependencies": [], + "registryDependencies": [ + "utils" + ], + "files": [ + { + "name": "NumberField.vue", + "content": "\n\n\n" + }, + { + "name": "NumberFieldContent.vue", + "content": "\n\n\n" + }, + { + "name": "NumberFieldDecrement.vue", + "content": "\n\n\n" + }, + { + "name": "NumberFieldIncrement.vue", + "content": "\n\n\n" + }, + { + "name": "NumberFieldInput.vue", + "content": "\n\n\n" + }, + { + "name": "NumberFieldLabel.vue", + "content": "\n\n\n" + }, + { + "name": "index.ts", + "content": "export { default as NumberField } from './NumberField.vue'\nexport { default as NumberFieldInput } from './NumberFieldInput.vue'\nexport { default as NumberFieldLabel } from './NumberFieldLabel.vue'\nexport { default as NumberFieldIncrement } from './NumberFieldIncrement.vue'\nexport { default as NumberFieldDecrement } from './NumberFieldDecrement.vue'\nexport { default as NumberFieldContent } from './NumberFieldContent.vue'\n" + } + ], + "type": "components:ui" +}