diff --git a/apps/www/.vitepress/theme/config/docs.ts b/apps/www/.vitepress/theme/config/docs.ts
index 55417fa6..872a3814 100644
--- a/apps/www/.vitepress/theme/config/docs.ts
+++ b/apps/www/.vitepress/theme/config/docs.ts
@@ -128,6 +128,21 @@ export const docsConfig: DocsConfig = {
href: '/docs/charts/area',
items: [],
},
+ {
+ title: 'Line',
+ href: '/docs/charts/line',
+ items: [],
+ },
+ {
+ title: 'Bar',
+ href: '/docs/charts/bar',
+ items: [],
+ },
+ {
+ title: 'Donut',
+ href: '/docs/charts/donut',
+ items: [],
+ },
],
},
{
diff --git a/apps/www/.vitepress/theme/utils/codeeditor.ts b/apps/www/.vitepress/theme/utils/codeeditor.ts
index fd3ffe11..7d75b4a2 100644
--- a/apps/www/.vitepress/theme/utils/codeeditor.ts
+++ b/apps/www/.vitepress/theme/utils/codeeditor.ts
@@ -121,7 +121,7 @@ function constructFiles(componentName: string, style: Style, sources: Record
+
+## Installation
+
+
+```bash
+npx shadcn-vue@latest add chart-area
+```
+
+
\ No newline at end of file
diff --git a/apps/www/src/content/docs/charts/bar.md b/apps/www/src/content/docs/charts/bar.md
new file mode 100644
index 00000000..dcd9c347
--- /dev/null
+++ b/apps/www/src/content/docs/charts/bar.md
@@ -0,0 +1,16 @@
+---
+title: Bar
+description: Displays a callout for user attention.
+---
+
+
+
+
+## Installation
+
+
+```bash
+npx shadcn-vue@latest add chart-bar
+```
+
+
\ No newline at end of file
diff --git a/apps/www/src/content/docs/charts/donut.md b/apps/www/src/content/docs/charts/donut.md
new file mode 100644
index 00000000..cee85641
--- /dev/null
+++ b/apps/www/src/content/docs/charts/donut.md
@@ -0,0 +1,16 @@
+---
+title: Donut
+description: Displays a callout for user attention.
+---
+
+
+
+
+## Installation
+
+
+```bash
+npx shadcn-vue@latest add chart-donut
+```
+
+
\ No newline at end of file
diff --git a/apps/www/src/content/docs/charts/line.md b/apps/www/src/content/docs/charts/line.md
new file mode 100644
index 00000000..6ada4d8b
--- /dev/null
+++ b/apps/www/src/content/docs/charts/line.md
@@ -0,0 +1,16 @@
+---
+title: Line
+description: Displays a callout for user attention.
+---
+
+
+
+
+## Installation
+
+
+```bash
+npx shadcn-vue@latest add chart-line
+```
+
+
\ No newline at end of file
diff --git a/apps/www/src/lib/registry/default/example/AreaChartDemo.vue b/apps/www/src/lib/registry/default/example/AreaChartDemo.vue
new file mode 100644
index 00000000..433a447f
--- /dev/null
+++ b/apps/www/src/lib/registry/default/example/AreaChartDemo.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/example/BarChartDemo.vue b/apps/www/src/lib/registry/default/example/BarChartDemo.vue
new file mode 100644
index 00000000..d63d78c7
--- /dev/null
+++ b/apps/www/src/lib/registry/default/example/BarChartDemo.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/example/DonutChartDemo.vue b/apps/www/src/lib/registry/default/example/DonutChartDemo.vue
new file mode 100644
index 00000000..a1d4ff3e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/example/DonutChartDemo.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/example/LineChartDemo.vue b/apps/www/src/lib/registry/default/example/LineChartDemo.vue
new file mode 100644
index 00000000..fb464240
--- /dev/null
+++ b/apps/www/src/lib/registry/default/example/LineChartDemo.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/button/index.ts b/apps/www/src/lib/registry/default/ui/button/index.ts
index 382c4f4f..1d3052de 100644
--- a/apps/www/src/lib/registry/default/ui/button/index.ts
+++ b/apps/www/src/lib/registry/default/ui/button/index.ts
@@ -19,6 +19,7 @@ export const buttonVariants = cva(
},
size: {
default: 'h-10 px-4 py-2',
+ xs: 'h-7 rounded px-2',
sm: 'h-9 rounded-md px-3',
lg: 'h-11 rounded-md px-8',
icon: 'h-10 w-10',
diff --git a/apps/www/src/lib/registry/default/ui/chart-area/AreaChart.vue b/apps/www/src/lib/registry/default/ui/chart-area/AreaChart.vue
new file mode 100644
index 00000000..95553380
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart-area/AreaChart.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/chart-area/index.ts b/apps/www/src/lib/registry/default/ui/chart-area/index.ts
new file mode 100644
index 00000000..81345fd8
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart-area/index.ts
@@ -0,0 +1 @@
+export { default as AreaChart } from './AreaChart.vue'
diff --git a/apps/www/src/lib/registry/default/ui/chart-bar/BarChart.vue b/apps/www/src/lib/registry/default/ui/chart-bar/BarChart.vue
new file mode 100644
index 00000000..a75f14f2
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart-bar/BarChart.vue
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/chart-bar/index.ts b/apps/www/src/lib/registry/default/ui/chart-bar/index.ts
new file mode 100644
index 00000000..805149a5
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart-bar/index.ts
@@ -0,0 +1 @@
+export { default as BarChart } from './BarChart.vue'
diff --git a/apps/www/src/lib/registry/default/ui/chart-donut/DonutChart.vue b/apps/www/src/lib/registry/default/ui/chart-donut/DonutChart.vue
new file mode 100644
index 00000000..c92fca49
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart-donut/DonutChart.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/chart-donut/index.ts b/apps/www/src/lib/registry/default/ui/chart-donut/index.ts
new file mode 100644
index 00000000..b42413a0
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart-donut/index.ts
@@ -0,0 +1 @@
+export { default as DonutChart } from './DonutChart.vue'
diff --git a/apps/www/src/lib/registry/default/ui/chart-line/LineChart.vue b/apps/www/src/lib/registry/default/ui/chart-line/LineChart.vue
new file mode 100644
index 00000000..bcc90f2f
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart-line/LineChart.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/chart-line/index.ts b/apps/www/src/lib/registry/default/ui/chart-line/index.ts
new file mode 100644
index 00000000..5d827c88
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart-line/index.ts
@@ -0,0 +1 @@
+export { default as LineChart } from './LineChart.vue'
diff --git a/apps/www/src/lib/registry/default/ui/chart/ChartCrosshair.vue b/apps/www/src/lib/registry/default/ui/chart/ChartCrosshair.vue
new file mode 100644
index 00000000..80c71378
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart/ChartCrosshair.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/chart/ChartLegend.vue b/apps/www/src/lib/registry/default/ui/chart/ChartLegend.vue
new file mode 100644
index 00000000..b04fcd81
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart/ChartLegend.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/chart/ChartSingleTooltip.vue b/apps/www/src/lib/registry/default/ui/chart/ChartSingleTooltip.vue
new file mode 100644
index 00000000..30741802
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart/ChartSingleTooltip.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/chart/ChartTooltip.vue b/apps/www/src/lib/registry/default/ui/chart/ChartTooltip.vue
new file mode 100644
index 00000000..92e97fbf
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart/ChartTooltip.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
{{ item.name }}
+
+
{{ item.value }}
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/chart/index.ts b/apps/www/src/lib/registry/default/ui/chart/index.ts
new file mode 100644
index 00000000..7a9a4ca5
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/chart/index.ts
@@ -0,0 +1,6 @@
+export { default as ChartTooltip } from './ChartTooltip.vue'
+export { default as ChartSingleTooltip } from './ChartSingleTooltip.vue'
+export { default as ChartLegend } from './ChartLegend.vue'
+export { default as ChartCrosshair } from './ChartCrosshair.vue'
+
+export const defaultColors = ['hsl(var(--primary))', 'hsl(var(--muted))']
diff --git a/apps/www/src/lib/registry/new-york/example/AreaChartDemo.vue b/apps/www/src/lib/registry/new-york/example/AreaChartDemo.vue
new file mode 100644
index 00000000..317fe0b3
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/example/AreaChartDemo.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/example/BarChartDemo.vue b/apps/www/src/lib/registry/new-york/example/BarChartDemo.vue
new file mode 100644
index 00000000..e0c263b3
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/example/BarChartDemo.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/example/DonutChartDemo.vue b/apps/www/src/lib/registry/new-york/example/DonutChartDemo.vue
new file mode 100644
index 00000000..65363d8d
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/example/DonutChartDemo.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/example/LineChartDemo.vue b/apps/www/src/lib/registry/new-york/example/LineChartDemo.vue
new file mode 100644
index 00000000..d8e67d2f
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/example/LineChartDemo.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/ui/button/index.ts b/apps/www/src/lib/registry/new-york/ui/button/index.ts
index aa543186..81be576c 100644
--- a/apps/www/src/lib/registry/new-york/ui/button/index.ts
+++ b/apps/www/src/lib/registry/new-york/ui/button/index.ts
@@ -20,6 +20,7 @@ export const buttonVariants = cva(
},
size: {
default: 'h-9 px-4 py-2',
+ xs: 'h-7 rounded px-2',
sm: 'h-8 rounded-md px-3 text-xs',
lg: 'h-10 rounded-md px-8',
icon: 'h-9 w-9',
diff --git a/apps/www/src/lib/registry/new-york/ui/chart-area/AreaChart.vue b/apps/www/src/lib/registry/new-york/ui/chart-area/AreaChart.vue
new file mode 100644
index 00000000..95553380
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart-area/AreaChart.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/ui/chart-area/index.ts b/apps/www/src/lib/registry/new-york/ui/chart-area/index.ts
new file mode 100644
index 00000000..81345fd8
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart-area/index.ts
@@ -0,0 +1 @@
+export { default as AreaChart } from './AreaChart.vue'
diff --git a/apps/www/src/lib/registry/new-york/ui/chart-bar/BarChart.vue b/apps/www/src/lib/registry/new-york/ui/chart-bar/BarChart.vue
new file mode 100644
index 00000000..a75f14f2
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart-bar/BarChart.vue
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/ui/chart-bar/index.ts b/apps/www/src/lib/registry/new-york/ui/chart-bar/index.ts
new file mode 100644
index 00000000..805149a5
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart-bar/index.ts
@@ -0,0 +1 @@
+export { default as BarChart } from './BarChart.vue'
diff --git a/apps/www/src/lib/registry/new-york/ui/chart-donut/DonutChart.vue b/apps/www/src/lib/registry/new-york/ui/chart-donut/DonutChart.vue
new file mode 100644
index 00000000..c92fca49
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart-donut/DonutChart.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/ui/chart-donut/index.ts b/apps/www/src/lib/registry/new-york/ui/chart-donut/index.ts
new file mode 100644
index 00000000..b42413a0
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart-donut/index.ts
@@ -0,0 +1 @@
+export { default as DonutChart } from './DonutChart.vue'
diff --git a/apps/www/src/lib/registry/new-york/ui/chart-line/LineChart.vue b/apps/www/src/lib/registry/new-york/ui/chart-line/LineChart.vue
new file mode 100644
index 00000000..bcc90f2f
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart-line/LineChart.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/ui/chart-line/index.ts b/apps/www/src/lib/registry/new-york/ui/chart-line/index.ts
new file mode 100644
index 00000000..5d827c88
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart-line/index.ts
@@ -0,0 +1 @@
+export { default as LineChart } from './LineChart.vue'
diff --git a/apps/www/src/lib/registry/new-york/ui/chart/ChartCrosshair.vue b/apps/www/src/lib/registry/new-york/ui/chart/ChartCrosshair.vue
new file mode 100644
index 00000000..5fb1fbed
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart/ChartCrosshair.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/ui/chart/ChartLegend.vue b/apps/www/src/lib/registry/new-york/ui/chart/ChartLegend.vue
new file mode 100644
index 00000000..e20f38c3
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart/ChartLegend.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/ui/chart/ChartSingleTooltip.vue b/apps/www/src/lib/registry/new-york/ui/chart/ChartSingleTooltip.vue
new file mode 100644
index 00000000..cd0e2699
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart/ChartSingleTooltip.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/ui/chart/ChartTooltip.vue b/apps/www/src/lib/registry/new-york/ui/chart/ChartTooltip.vue
new file mode 100644
index 00000000..e99482b8
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart/ChartTooltip.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
{{ item.name }}
+
+
{{ item.value }}
+
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/ui/chart/index.ts b/apps/www/src/lib/registry/new-york/ui/chart/index.ts
new file mode 100644
index 00000000..7a9a4ca5
--- /dev/null
+++ b/apps/www/src/lib/registry/new-york/ui/chart/index.ts
@@ -0,0 +1,6 @@
+export { default as ChartTooltip } from './ChartTooltip.vue'
+export { default as ChartSingleTooltip } from './ChartSingleTooltip.vue'
+export { default as ChartLegend } from './ChartLegend.vue'
+export { default as ChartCrosshair } from './ChartCrosshair.vue'
+
+export const defaultColors = ['hsl(var(--primary))', 'hsl(var(--muted))']
diff --git a/apps/www/src/lib/registry/registry.ts b/apps/www/src/lib/registry/registry.ts
index 77a69b7b..853532f3 100644
--- a/apps/www/src/lib/registry/registry.ts
+++ b/apps/www/src/lib/registry/registry.ts
@@ -9,6 +9,7 @@ const DEPENDENCIES = new Map([
['@vueuse/core', []],
['v-calendar', []],
['@tanstack/vue-table', []],
+ ['@unovis/vue', ['@unovis/ts']],
['vee-validate', ['@vee-validate/zod', 'zod']],
])
// Some dependencies latest tag were not compatible with Vue3.
diff --git a/apps/www/src/public/registry/index.json b/apps/www/src/public/registry/index.json
index f1988368..3564863b 100644
--- a/apps/www/src/public/registry/index.json
+++ b/apps/www/src/public/registry/index.json
@@ -53,6 +53,19 @@
],
"type": "components:ui"
},
+ {
+ "name": "area-chart",
+ "dependencies": [
+ "@unovis/vue",
+ "@unovis/ts"
+ ],
+ "registryDependencies": [],
+ "files": [
+ "ui/area-chart/AreaChart.vue",
+ "ui/area-chart/index.ts"
+ ],
+ "type": "components:ui"
+ },
{
"name": "aspect-ratio",
"dependencies": [
diff --git a/apps/www/src/public/registry/styles/default/area-chart.json b/apps/www/src/public/registry/styles/default/area-chart.json
new file mode 100644
index 00000000..891c5dce
--- /dev/null
+++ b/apps/www/src/public/registry/styles/default/area-chart.json
@@ -0,0 +1,19 @@
+{
+ "name": "area-chart",
+ "dependencies": [
+ "@unovis/vue",
+ "@unovis/ts"
+ ],
+ "registryDependencies": [],
+ "files": [
+ {
+ "name": "AreaChart.vue",
+ "content": "\n\n\n \n \n\n i\"\n :y=\"(d: Data) => d.total\"\n color=\"auto\"\n :attributes=\"{\n [Area.selectors.area]: {\n fill: 'url(#colorUv)',\n },\n }\"\n :rounded-corners=\"4\"\n :bar-padding=\"0.15\"\n />\n i\"\n :y=\"(d: Data) => d.total\"\n color=\"hsl(var(--primary))\"\n />\n data[index]?.name\"\n :grid-line=\"false\"\n :tick-line=\"false\"\n tick-text-color=\"hsl(var(--muted-foreground))\"\n />\n data[index]?.name\"\n :grid-line=\"false\"\n :tick-line=\"false\"\n :domain-line=\"false\"\n tick-text-color=\"hsl(var(--muted-foreground))\"\n />\n \n\n"
+ },
+ {
+ "name": "index.ts",
+ "content": "export { default as AreaChart } from './AreaChart.vue'\n"
+ }
+ ],
+ "type": "components:ui"
+}
\ No newline at end of file
diff --git a/apps/www/src/public/registry/styles/new-york/area-chart.json b/apps/www/src/public/registry/styles/new-york/area-chart.json
new file mode 100644
index 00000000..891c5dce
--- /dev/null
+++ b/apps/www/src/public/registry/styles/new-york/area-chart.json
@@ -0,0 +1,19 @@
+{
+ "name": "area-chart",
+ "dependencies": [
+ "@unovis/vue",
+ "@unovis/ts"
+ ],
+ "registryDependencies": [],
+ "files": [
+ {
+ "name": "AreaChart.vue",
+ "content": "\n\n\n \n \n\n i\"\n :y=\"(d: Data) => d.total\"\n color=\"auto\"\n :attributes=\"{\n [Area.selectors.area]: {\n fill: 'url(#colorUv)',\n },\n }\"\n :rounded-corners=\"4\"\n :bar-padding=\"0.15\"\n />\n i\"\n :y=\"(d: Data) => d.total\"\n color=\"hsl(var(--primary))\"\n />\n data[index]?.name\"\n :grid-line=\"false\"\n :tick-line=\"false\"\n tick-text-color=\"hsl(var(--muted-foreground))\"\n />\n data[index]?.name\"\n :grid-line=\"false\"\n :tick-line=\"false\"\n :domain-line=\"false\"\n tick-text-color=\"hsl(var(--muted-foreground))\"\n />\n \n\n"
+ },
+ {
+ "name": "index.ts",
+ "content": "export { default as AreaChart } from './AreaChart.vue'\n"
+ }
+ ],
+ "type": "components:ui"
+}
\ No newline at end of file