diff --git a/apps/docs/content/docs/dev/lint.mdx b/apps/docs/content/docs/dev/lint.mdx
new file mode 100644
index 000000000..ddb8643c6
--- /dev/null
+++ b/apps/docs/content/docs/dev/lint.mdx
@@ -0,0 +1,4 @@
+---
+title: Lint
+description: Lint your code with ESLint and Prettier.
+---
diff --git a/apps/docs/content/docs/dev/meta.json b/apps/docs/content/docs/dev/meta.json
index bd03e48b7..65eb3cdb2 100644
--- a/apps/docs/content/docs/dev/meta.json
+++ b/apps/docs/content/docs/dev/meta.json
@@ -5,8 +5,9 @@
"---Introduction ---",
"index",
"contribution",
- "--- Plugins ---",
+ "--- Plugins in AdminCP ---",
"plugins",
+ "lint",
"plugins-nav-admin",
"plugins-permissions-admin",
"--- GraphQL ---",
diff --git a/apps/docs/content/docs/dev/pages.mdx b/apps/docs/content/docs/dev/pages.mdx
index 25040bb7a..3cda27d2f 100644
--- a/apps/docs/content/docs/dev/pages.mdx
+++ b/apps/docs/content/docs/dev/pages.mdx
@@ -3,19 +3,47 @@ title: Pages
description: Create pages in VitNode.
---
+Some folders in `apps/frontend/app` are in `.gitignore` and are not included in the repository. All files from these folders are copied when you are using `npm run config:init` to initialize your workspace.
+
+
+ Do not put any files inside `(vitnode)` folders! They are automatically
+ generated by VitNode and can be overwritten.
+
+
+Below is guide how to create own pages in VitNode using own `plugin`. If your `workspace` is `private` and you don't plan to share your `workspace` with others, you can create pages without `{your_plugin}` folder.
+
## Default Page
-VitNode handle automaticly default page for you. You need to create a file `themes/1/{your_plugin}/default-page.tsx` in your plugin template.
+VitNode automaticly create default page for you in your plugin.
-Use `export default` for your template.
+import { File, Folder, Files } from 'fumadocs-ui/components/files';
-```tsx
-export default async function DefaultPage() {
- const data = await getData();
- const t = await getTranslations('core');
+
+
+
+
+
+
+
+
+
+
+
+
+
- return
{t('info', { data })}
;
-}
-```
+
+ The default page is exported as `default`.
+
Test it by set your plugin as default in `AdminCP` and go to your website.
+
+You can also delete this file if you don't need it, then VitNode after export your plugin will block your plugin to be default.
+
+## Create Pages
+
+Vitnode using [NextJS](https://nextjs.org/docs/app/building-your-application/routing) in app directory. All features about `routing` from `NextJS` are available in VitNode for example [Parallel Routes](https://nextjs.org/docs/app/building-your-application/routing/parallel-routes), [Dynamic Routes](https://nextjs.org/docs/app/building-your-application/routing/dynamic-routes), [Error Handling](https://nextjs.org/docs/app/building-your-application/routing/error-handling), [Metadata](https://nextjs.org/docs/app/building-your-application/optimizing/metadata) etc.
+
+You need to remember only where to put your pages if you are creating plugin for VitNode.
+
+### Frontend
diff --git a/apps/docs/content/docs/ui/forms/auto-form.mdx b/apps/docs/content/docs/ui/forms/auto-form.mdx
index 905f15b3a..5c73ca2c1 100644
--- a/apps/docs/content/docs/ui/forms/auto-form.mdx
+++ b/apps/docs/content/docs/ui/forms/auto-form.mdx
@@ -40,10 +40,10 @@ npm i react-hook-form zod
```tsx
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
// for input
-import { AutoFormInput } from 'vitnode-frontend/components/ui/auto-form/fields/input';
+import { AutoFormInput } from 'vitnode-frontend/form/fields/input';
```
```ts
@@ -150,7 +150,7 @@ You can set a label for a field by using the `label` method.
You can nest objects to create accordion sections. Here is an example:
```ts
-import { AutoFormInputComponentProps } from 'vitnode-frontend/components/ui/auto-form/type';
+import { AutoFormInputComponentProps } from 'vitnode-frontend/form/type';
```
```ts
@@ -324,7 +324,7 @@ const [values, setValues] = useState>>({});
AutoForm allow to create dependencies between fields. For example allowing one field's visibility or behavior to be controlled based on the value of another. Pass `dependencies` prop with an array of objects.
```ts
-import { DependencyType } from 'vitnode-frontend/components/ui/auto-form/type';
+import { DependencyType } from 'vitnode-frontend/form/type';
```
### Hides
diff --git a/apps/docs/content/docs/ui/forms/checkbox.mdx b/apps/docs/content/docs/ui/forms/checkbox.mdx
index 355df7028..afa2b2433 100644
--- a/apps/docs/content/docs/ui/forms/checkbox.mdx
+++ b/apps/docs/content/docs/ui/forms/checkbox.mdx
@@ -16,8 +16,8 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
-import { AutoFormCheckbox } from 'vitnode-frontend/components/ui/auto-form/fields/checkbox';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
+import { AutoFormCheckbox } from 'vitnode-frontend/form/fields/checkbox';
```
```ts
diff --git a/apps/docs/content/docs/ui/forms/color-picker.mdx b/apps/docs/content/docs/ui/forms/color-picker.mdx
index 148aba3c1..dbe730825 100644
--- a/apps/docs/content/docs/ui/forms/color-picker.mdx
+++ b/apps/docs/content/docs/ui/forms/color-picker.mdx
@@ -11,8 +11,8 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
-import { AutoFormColor } from 'vitnode-frontend/components/ui/auto-form/fields/color';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
+import { AutoFormColor } from 'vitnode-frontend/form/fields/color';
```
```ts
diff --git a/apps/docs/content/docs/ui/forms/combobox.mdx b/apps/docs/content/docs/ui/forms/combobox.mdx
index 9a09b2961..59ec2853e 100644
--- a/apps/docs/content/docs/ui/forms/combobox.mdx
+++ b/apps/docs/content/docs/ui/forms/combobox.mdx
@@ -16,8 +16,8 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
-import { AutoFormCombobox } from 'vitnode-frontend/components/ui/auto-form/fields/combobox';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
+import { AutoFormCombobox } from 'vitnode-frontend/form/fields/combobox';
```
```ts
diff --git a/apps/docs/content/docs/ui/forms/file-input.mdx b/apps/docs/content/docs/ui/forms/file-input.mdx
index b184d4b65..8d4a296b6 100644
--- a/apps/docs/content/docs/ui/forms/file-input.mdx
+++ b/apps/docs/content/docs/ui/forms/file-input.mdx
@@ -11,8 +11,8 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
-import { AutoFormFile } from 'vitnode-frontend/components/ui/auto-form/fields/file';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
+import { AutoFormFile } from 'vitnode-frontend/form/fields/file';
import { zodFile } from 'vitnode-frontend/helpers/zod';
```
@@ -62,7 +62,7 @@ import { FileInput } from 'vitnode-frontend/components/ui/file-input';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
import { zodFile } from 'vitnode-frontend/helpers/zod';
```
diff --git a/apps/docs/content/docs/ui/forms/icon-picker.mdx b/apps/docs/content/docs/ui/forms/icon-picker.mdx
index a8c654407..5c1b9d67d 100644
--- a/apps/docs/content/docs/ui/forms/icon-picker.mdx
+++ b/apps/docs/content/docs/ui/forms/icon-picker.mdx
@@ -11,8 +11,8 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
-import { AutoFormIcon } from 'vitnode-frontend/components/ui/auto-form/fields/icon';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
+import { AutoFormIcon } from 'vitnode-frontend/form/fields/icon';
```
```ts
diff --git a/apps/docs/content/docs/ui/forms/input.mdx b/apps/docs/content/docs/ui/forms/input.mdx
index 858d680ea..0d36e1eed 100644
--- a/apps/docs/content/docs/ui/forms/input.mdx
+++ b/apps/docs/content/docs/ui/forms/input.mdx
@@ -16,8 +16,8 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
-import { AutoFormInput } from 'vitnode-frontend/components/ui/auto-form/fields/input';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
+import { AutoFormInput } from 'vitnode-frontend/form/fields/input';
```
```ts
diff --git a/apps/docs/content/docs/ui/forms/radio-group.mdx b/apps/docs/content/docs/ui/forms/radio-group.mdx
index e8f8434d5..724b96405 100644
--- a/apps/docs/content/docs/ui/forms/radio-group.mdx
+++ b/apps/docs/content/docs/ui/forms/radio-group.mdx
@@ -16,8 +16,8 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
-import { AutoFormRadioGroup } from 'vitnode-frontend/components/ui/auto-form/fields/radio-group';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
+import { AutoFormRadioGroup } from 'vitnode-frontend/form/fields/radio-group';
````
```ts
diff --git a/apps/docs/content/docs/ui/forms/select.mdx b/apps/docs/content/docs/ui/forms/select.mdx
index e39af4bd3..83b4f2a00 100644
--- a/apps/docs/content/docs/ui/forms/select.mdx
+++ b/apps/docs/content/docs/ui/forms/select.mdx
@@ -16,8 +16,8 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
-import { AutoFormSelect } from 'vitnode-frontend/components/ui/auto-form/fields/select';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
+import { AutoFormSelect } from 'vitnode-frontend/form/fields/select';
```
```ts
diff --git a/apps/docs/content/docs/ui/forms/switch.mdx b/apps/docs/content/docs/ui/forms/switch.mdx
index e13b4be58..5bcc65550 100644
--- a/apps/docs/content/docs/ui/forms/switch.mdx
+++ b/apps/docs/content/docs/ui/forms/switch.mdx
@@ -16,7 +16,7 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
```
```ts
diff --git a/apps/docs/content/docs/ui/forms/tags-input.mdx b/apps/docs/content/docs/ui/forms/tags-input.mdx
index 22d7cd801..12ded1b18 100644
--- a/apps/docs/content/docs/ui/forms/tags-input.mdx
+++ b/apps/docs/content/docs/ui/forms/tags-input.mdx
@@ -11,8 +11,8 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
-import { AutoFormTags } from 'vitnode-frontend/components/ui/auto-form/fields/tags';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
+import { AutoFormTags } from 'vitnode-frontend/form/fields/tags';
import { zodTag } from 'vitnode-frontend/helpers/zod';
```
diff --git a/apps/docs/content/docs/ui/forms/text-language-input.mdx b/apps/docs/content/docs/ui/forms/text-language-input.mdx
index 2c8fe4b8e..924a4d01d 100644
--- a/apps/docs/content/docs/ui/forms/text-language-input.mdx
+++ b/apps/docs/content/docs/ui/forms/text-language-input.mdx
@@ -12,8 +12,8 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
import { zodLanguageInput } from 'vitnode-frontend/helpers/zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
-import { AutoFormTextLanguageInput } from 'vitnode-frontend/components/ui/auto-form/fields/text-language-input';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
+import { AutoFormTextLanguageInput } from 'vitnode-frontend/form/fields/text-language-input';
```
```ts
diff --git a/apps/docs/content/docs/ui/forms/textarea.mdx b/apps/docs/content/docs/ui/forms/textarea.mdx
index 9757ad90c..bed543825 100644
--- a/apps/docs/content/docs/ui/forms/textarea.mdx
+++ b/apps/docs/content/docs/ui/forms/textarea.mdx
@@ -16,7 +16,7 @@ import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
```
```ts
@@ -58,7 +58,7 @@ import { Textarea } from 'vitnode-frontend/components/ui/textarea';
```ts
import * as z from 'zod';
-import { AutoForm } from 'vitnode-frontend/components/ui/auto-form';
+import { AutoForm } from 'vitnode-frontend/form/auto-form';
```
```ts
diff --git a/packages/frontend/src/components/ui/auto-form/index.tsx b/packages/frontend/src/components/form/auto-form.tsx
similarity index 95%
rename from packages/frontend/src/components/ui/auto-form/index.tsx
rename to packages/frontend/src/components/form/auto-form.tsx
index 5d98d853e..08af3b34b 100644
--- a/packages/frontend/src/components/ui/auto-form/index.tsx
+++ b/packages/frontend/src/components/form/auto-form.tsx
@@ -6,12 +6,13 @@ import React from 'react';
import { zodResolver } from '@hookform/resolvers/zod';
import { useTranslations } from 'next-intl';
-import { Dependency, FieldConfig, ZodObjectOrWrapped } from './type';
-import { getDefaultValues, getObjectFormSchema } from './utils';
-import { Form } from '../form';
-import { AutoFormObject } from './object';
-import { Button } from '../button';
+import { Form } from '../ui/form';
+import { Button } from '../ui/button';
import { cn } from '@/helpers/classnames';
+import { AutoFormObject } from '@/components/form/object';
+
+import { getDefaultValues, getObjectFormSchema } from './utils';
+import { Dependency, FieldConfig, ZodObjectOrWrapped } from './type';
export function AutoForm({
formSchema,
diff --git a/packages/frontend/src/components/ui/auto-form/fields/checkbox.tsx b/packages/frontend/src/components/form/fields/checkbox.tsx
similarity index 94%
rename from packages/frontend/src/components/ui/auto-form/fields/checkbox.tsx
rename to packages/frontend/src/components/form/fields/checkbox.tsx
index c4f31676a..51a8a7737 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/checkbox.tsx
+++ b/packages/frontend/src/components/form/fields/checkbox.tsx
@@ -1,12 +1,12 @@
import { AutoFormInputComponentProps } from '../type';
-import { AutoFormLabel } from './common/label';
-import { AutoFormTooltip } from './common/tooltip';
import { cn } from '@/helpers/classnames';
+
+import { FormControl, FormMessage } from '../../ui/form';
+import { Checkbox } from '../../ui/checkbox';
import { AutoFormWrapper } from './common/wrapper';
import { DefaultParent } from './common/children';
-
-import { FormControl, FormMessage } from '../../form';
-import { Checkbox } from '../../checkbox';
+import { AutoFormLabel } from './common/label';
+import { AutoFormTooltip } from './common/tooltip';
export const AutoFormCheckbox = ({
autoFormProps: { isRequired, fieldConfigItem, field, theme, isDisabled },
diff --git a/packages/frontend/src/components/ui/auto-form/fields/color.tsx b/packages/frontend/src/components/form/fields/color.tsx
similarity index 91%
rename from packages/frontend/src/components/ui/auto-form/fields/color.tsx
rename to packages/frontend/src/components/form/fields/color.tsx
index 89f8655ee..426e76b5a 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/color.tsx
+++ b/packages/frontend/src/components/form/fields/color.tsx
@@ -1,11 +1,10 @@
+import { ColorPicker } from '@/components/ui/color-picker';
import { AutoFormInputComponentProps } from '../type';
+import { DefaultParent } from './common/children';
+import { AutoFormWrapper } from './common/wrapper';
import { AutoFormLabel } from './common/label';
+import { FormControl, FormMessage } from '@/components/ui/form';
import { AutoFormTooltip } from './common/tooltip';
-import { AutoFormWrapper } from './common/wrapper';
-import { DefaultParent } from './common/children';
-
-import { FormControl, FormMessage } from '../../form';
-import { ColorPicker } from '../../color-picker';
export const AutoFormColor = ({
autoFormProps: { isRequired, fieldConfigItem, field, theme, isDisabled },
diff --git a/packages/frontend/src/components/ui/auto-form/fields/combobox.tsx b/packages/frontend/src/components/form/fields/combobox.tsx
similarity index 96%
rename from packages/frontend/src/components/ui/auto-form/fields/combobox.tsx
rename to packages/frontend/src/components/form/fields/combobox.tsx
index 13c6a6268..9873970c0 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/combobox.tsx
+++ b/packages/frontend/src/components/form/fields/combobox.tsx
@@ -3,17 +3,13 @@ import React from 'react';
import { useTranslations } from 'next-intl';
import { Check, ChevronsUpDown } from 'lucide-react';
-import { AutoFormInputComponentProps } from '../type';
-import { AutoFormLabel } from './common/label';
-import { AutoFormTooltip } from './common/tooltip';
-import { getBaseSchema } from '../utils';
-import { AutoFormWrapper } from './common/wrapper';
-import { DefaultParent } from './common/children';
import { cn } from '@/helpers/classnames';
-import { FormControl, FormMessage } from '../../form';
-import { Popover, PopoverContent, PopoverTrigger } from '../../popover';
-import { Button } from '../../button';
+import { getBaseSchema } from '../utils';
+import { AutoFormInputComponentProps } from '../type';
+import { FormControl, FormMessage } from '../../ui/form';
+import { Popover, PopoverContent, PopoverTrigger } from '../../ui/popover';
+import { Button } from '../../ui/button';
import {
Command,
CommandEmpty,
@@ -21,7 +17,11 @@ import {
CommandInput,
CommandItem,
CommandList,
-} from '../../command';
+} from '../../ui/command';
+import { DefaultParent } from './common/children';
+import { AutoFormWrapper } from './common/wrapper';
+import { AutoFormLabel } from './common/label';
+import { AutoFormTooltip } from './common/tooltip';
export const AutoFormCombobox = ({
autoFormProps: {
diff --git a/packages/frontend/src/components/ui/auto-form/fields/common/children.tsx b/packages/frontend/src/components/form/fields/common/children.tsx
similarity index 100%
rename from packages/frontend/src/components/ui/auto-form/fields/common/children.tsx
rename to packages/frontend/src/components/form/fields/common/children.tsx
diff --git a/packages/frontend/src/components/ui/auto-form/fields/common/label.tsx b/packages/frontend/src/components/form/fields/common/label.tsx
similarity index 99%
rename from packages/frontend/src/components/ui/auto-form/fields/common/label.tsx
rename to packages/frontend/src/components/form/fields/common/label.tsx
index e587c9774..31ab87df1 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/common/label.tsx
+++ b/packages/frontend/src/components/form/fields/common/label.tsx
@@ -1,6 +1,5 @@
import { FormLabel } from '@/components/ui/form';
import { cn } from '@/helpers/classnames';
-
import { AutoFormInputComponentProps } from '../../type';
export const AutoFormLabel = ({
diff --git a/packages/frontend/src/components/ui/auto-form/fields/common/tooltip.tsx b/packages/frontend/src/components/form/fields/common/tooltip.tsx
similarity index 100%
rename from packages/frontend/src/components/ui/auto-form/fields/common/tooltip.tsx
rename to packages/frontend/src/components/form/fields/common/tooltip.tsx
diff --git a/packages/frontend/src/components/ui/auto-form/fields/common/wrapper.tsx b/packages/frontend/src/components/form/fields/common/wrapper.tsx
similarity index 99%
rename from packages/frontend/src/components/ui/auto-form/fields/common/wrapper.tsx
rename to packages/frontend/src/components/form/fields/common/wrapper.tsx
index 429dd5e2c..0a1df50c4 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/common/wrapper.tsx
+++ b/packages/frontend/src/components/form/fields/common/wrapper.tsx
@@ -1,6 +1,5 @@
import { FormItem } from '@/components/ui/form';
import { cn } from '@/helpers/classnames';
-
import { AutoFormInputComponentProps } from '../../type';
export const AutoFormWrapper = ({
diff --git a/packages/frontend/src/components/ui/auto-form/fields/file.tsx b/packages/frontend/src/components/form/fields/file.tsx
similarity index 91%
rename from packages/frontend/src/components/ui/auto-form/fields/file.tsx
rename to packages/frontend/src/components/form/fields/file.tsx
index cd5eff9ae..1bf49c5b8 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/file.tsx
+++ b/packages/frontend/src/components/form/fields/file.tsx
@@ -1,11 +1,10 @@
+import { FileInput } from '@/components/ui/file-input';
import { AutoFormInputComponentProps } from '../type';
+import { DefaultParent } from './common/children';
import { AutoFormLabel } from './common/label';
-import { AutoFormTooltip } from './common/tooltip';
import { AutoFormWrapper } from './common/wrapper';
-import { DefaultParent } from './common/children';
-
-import { FormControl, FormMessage } from '../../form';
-import { FileInput } from '../../file-input';
+import { FormControl, FormMessage } from '@/components/ui/form';
+import { AutoFormTooltip } from './common/tooltip';
export const AutoFormFile = ({
autoFormProps: { isRequired, fieldConfigItem, field, theme, isDisabled },
diff --git a/packages/frontend/src/components/ui/auto-form/fields/icon.tsx b/packages/frontend/src/components/form/fields/icon.tsx
similarity index 95%
rename from packages/frontend/src/components/ui/auto-form/fields/icon.tsx
rename to packages/frontend/src/components/form/fields/icon.tsx
index ac84a868c..67f671a13 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/icon.tsx
+++ b/packages/frontend/src/components/form/fields/icon.tsx
@@ -1,11 +1,10 @@
+import { IconPicker } from '@/components/icon/picker/icon-picker';
import { AutoFormInputComponentProps } from '../type';
+import { DefaultParent } from './common/children';
+import { AutoFormWrapper } from './common/wrapper';
import { AutoFormLabel } from './common/label';
+import { FormControl, FormMessage } from '@/components/ui/form';
import { AutoFormTooltip } from './common/tooltip';
-import { AutoFormWrapper } from './common/wrapper';
-import { DefaultParent } from './common/children';
-import { IconPicker } from '@/components/icon/picker/icon-picker';
-
-import { FormControl, FormMessage } from '../../form';
export const AutoFormIcon = ({
autoFormProps: { isRequired, fieldConfigItem, field, theme, isDisabled },
diff --git a/packages/frontend/src/components/ui/auto-form/fields/input.tsx b/packages/frontend/src/components/form/fields/input.tsx
similarity index 92%
rename from packages/frontend/src/components/ui/auto-form/fields/input.tsx
rename to packages/frontend/src/components/form/fields/input.tsx
index 9198297d9..3c2696244 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/input.tsx
+++ b/packages/frontend/src/components/form/fields/input.tsx
@@ -1,11 +1,10 @@
+import { DefaultParent } from './common/children';
import { AutoFormInputComponentProps } from '../type';
+import { AutoFormWrapper } from './common/wrapper';
import { AutoFormLabel } from './common/label';
+import { FormControl, FormMessage } from '@/components/ui/form';
+import { Input } from '@/components/ui/input';
import { AutoFormTooltip } from './common/tooltip';
-import { AutoFormWrapper } from './common/wrapper';
-import { DefaultParent } from './common/children';
-
-import { FormControl, FormMessage } from '../../form';
-import { Input } from '../../input';
export const AutoFormInput = ({
autoFormProps: { isRequired, fieldConfigItem, field, theme, isDisabled },
diff --git a/packages/frontend/src/components/ui/auto-form/fields/radio-group.tsx b/packages/frontend/src/components/form/fields/radio-group.tsx
similarity index 94%
rename from packages/frontend/src/components/ui/auto-form/fields/radio-group.tsx
rename to packages/frontend/src/components/form/fields/radio-group.tsx
index 4285e706f..aa939c64f 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/radio-group.tsx
+++ b/packages/frontend/src/components/form/fields/radio-group.tsx
@@ -1,14 +1,17 @@
import * as z from 'zod';
-
import { AutoFormInputComponentProps } from '../type';
-import { AutoFormLabel } from './common/label';
-import { AutoFormTooltip } from './common/tooltip';
import { getBaseSchema } from '../utils';
-import { AutoFormWrapper } from './common/wrapper';
import { DefaultParent } from './common/children';
-
-import { FormControl, FormItem, FormLabel, FormMessage } from '../../form';
-import { RadioGroup, RadioGroupItem } from '../../radio-group';
+import { AutoFormWrapper } from './common/wrapper';
+import { AutoFormLabel } from './common/label';
+import {
+ FormControl,
+ FormItem,
+ FormLabel,
+ FormMessage,
+} from '@/components/ui/form';
+import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';
+import { AutoFormTooltip } from './common/tooltip';
export const AutoFormRadioGroup = ({
autoFormProps: {
diff --git a/packages/frontend/src/components/ui/auto-form/fields/select.tsx b/packages/frontend/src/components/form/fields/select.tsx
similarity index 96%
rename from packages/frontend/src/components/ui/auto-form/fields/select.tsx
rename to packages/frontend/src/components/form/fields/select.tsx
index 440915dc8..774cb990c 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/select.tsx
+++ b/packages/frontend/src/components/form/fields/select.tsx
@@ -1,21 +1,19 @@
import * as z from 'zod';
import { useTranslations } from 'next-intl';
-
import { AutoFormInputComponentProps } from '../type';
-import { AutoFormLabel } from './common/label';
-import { AutoFormTooltip } from './common/tooltip';
-import { getBaseSchema } from '../utils';
-import { AutoFormWrapper } from './common/wrapper';
-import { DefaultParent } from './common/children';
-
-import { FormControl, FormMessage } from '../../form';
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
-} from '../../select';
+} from '@/components/ui/select';
+import { getBaseSchema } from '../utils';
+import { DefaultParent } from './common/children';
+import { AutoFormWrapper } from './common/wrapper';
+import { AutoFormLabel } from './common/label';
+import { FormControl, FormMessage } from '@/components/ui/form';
+import { AutoFormTooltip } from './common/tooltip';
export const AutoFormSelect = ({
autoFormProps: {
diff --git a/packages/frontend/src/components/ui/auto-form/fields/switch.tsx b/packages/frontend/src/components/form/fields/switch.tsx
similarity index 93%
rename from packages/frontend/src/components/ui/auto-form/fields/switch.tsx
rename to packages/frontend/src/components/form/fields/switch.tsx
index 647086334..0eb76abe3 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/switch.tsx
+++ b/packages/frontend/src/components/form/fields/switch.tsx
@@ -1,12 +1,11 @@
+import { Switch } from '@/components/ui/switch';
+import { cn } from '@/helpers/classnames';
import { AutoFormInputComponentProps } from '../type';
-import { AutoFormLabel } from './common/label';
-import { AutoFormTooltip } from './common/tooltip';
+import { FormControl, FormMessage } from '@/components/ui/form';
import { AutoFormWrapper } from './common/wrapper';
import { DefaultParent } from './common/children';
-import { cn } from '@/helpers/classnames';
-
-import { FormControl, FormMessage } from '../../form';
-import { Switch } from '../../switch';
+import { AutoFormLabel } from './common/label';
+import { AutoFormTooltip } from './common/tooltip';
export const AutoFormSwitch = ({
autoFormProps: { isRequired, fieldConfigItem, field, theme, isDisabled },
diff --git a/packages/frontend/src/components/ui/auto-form/fields/tags.tsx b/packages/frontend/src/components/form/fields/tags.tsx
similarity index 91%
rename from packages/frontend/src/components/ui/auto-form/fields/tags.tsx
rename to packages/frontend/src/components/form/fields/tags.tsx
index fa552005c..9a86cf146 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/tags.tsx
+++ b/packages/frontend/src/components/form/fields/tags.tsx
@@ -1,12 +1,11 @@
+import { TagsInput } from '@/components/ui/tags-input';
import { AutoFormInputComponentProps } from '../type';
-import { AutoFormLabel } from './common/label';
+import { FormControl, FormMessage } from '@/components/ui/form';
import { AutoFormTooltip } from './common/tooltip';
import { AutoFormWrapper } from './common/wrapper';
+import { AutoFormLabel } from './common/label';
import { DefaultParent } from './common/children';
-import { FormControl, FormMessage } from '../../form';
-import { TagsInput } from '../../tags-input';
-
export const AutoFormTags = ({
autoFormProps: { isRequired, fieldConfigItem, field, theme, isDisabled },
...props
diff --git a/packages/frontend/src/components/ui/auto-form/fields/text-language-input.tsx b/packages/frontend/src/components/form/fields/text-language-input.tsx
similarity index 90%
rename from packages/frontend/src/components/ui/auto-form/fields/text-language-input.tsx
rename to packages/frontend/src/components/form/fields/text-language-input.tsx
index de71134ce..d8fccbbc0 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/text-language-input.tsx
+++ b/packages/frontend/src/components/form/fields/text-language-input.tsx
@@ -1,11 +1,10 @@
+import { TextLanguageInput } from '@/components/ui/text-language-input';
import { AutoFormInputComponentProps } from '../type';
+import { DefaultParent } from './common/children';
+import { AutoFormWrapper } from './common/wrapper';
import { AutoFormLabel } from './common/label';
+import { FormControl, FormMessage } from '@/components/ui/form';
import { AutoFormTooltip } from './common/tooltip';
-import { AutoFormWrapper } from './common/wrapper';
-import { DefaultParent } from './common/children';
-
-import { FormControl, FormMessage } from '../../form';
-import { TextLanguageInput } from '../../text-language-input';
export const AutoFormTextLanguageInput = ({
autoFormProps: { isRequired, fieldConfigItem, field, theme, isDisabled },
diff --git a/packages/frontend/src/components/ui/auto-form/fields/textarea.tsx b/packages/frontend/src/components/form/fields/textarea.tsx
similarity index 91%
rename from packages/frontend/src/components/ui/auto-form/fields/textarea.tsx
rename to packages/frontend/src/components/form/fields/textarea.tsx
index dcf2b8606..b3e00295f 100644
--- a/packages/frontend/src/components/ui/auto-form/fields/textarea.tsx
+++ b/packages/frontend/src/components/form/fields/textarea.tsx
@@ -1,11 +1,10 @@
+import { DefaultParent } from './common/children';
import { AutoFormInputComponentProps } from '../type';
+import { AutoFormWrapper } from './common/wrapper';
import { AutoFormLabel } from './common/label';
+import { FormControl, FormMessage } from '@/components/ui/form';
+import { Textarea } from '@/components/ui/textarea';
import { AutoFormTooltip } from './common/tooltip';
-import { AutoFormWrapper } from './common/wrapper';
-import { DefaultParent } from './common/children';
-
-import { FormControl, FormMessage } from '../../form';
-import { Textarea } from '../../textarea';
export const AutoFormTextArea = ({
autoFormProps: { isRequired, fieldConfigItem, field, theme, isDisabled },
diff --git a/packages/frontend/src/components/ui/auto-form/object.tsx b/packages/frontend/src/components/form/object.tsx
similarity index 98%
rename from packages/frontend/src/components/ui/auto-form/object.tsx
rename to packages/frontend/src/components/form/object.tsx
index 500d301b9..ed86c06f7 100644
--- a/packages/frontend/src/components/ui/auto-form/object.tsx
+++ b/packages/frontend/src/components/form/object.tsx
@@ -1,13 +1,13 @@
import * as z from 'zod';
import { useForm, useFormContext } from 'react-hook-form';
+import { Dependency, FieldConfig } from './type';
import resolveDependencies, {
getBaseSchema,
getBaseType,
zodToHtmlInputProps,
} from './utils';
-import { FormField } from '../form';
-import { Dependency, FieldConfig } from './type';
+import { FormField } from '../ui/form';
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function AutoFormObject>({
diff --git a/packages/frontend/src/components/ui/auto-form/type.ts b/packages/frontend/src/components/form/type.ts
similarity index 100%
rename from packages/frontend/src/components/ui/auto-form/type.ts
rename to packages/frontend/src/components/form/type.ts
diff --git a/packages/frontend/src/components/ui/auto-form/utils.ts b/packages/frontend/src/components/form/utils.ts
similarity index 100%
rename from packages/frontend/src/components/ui/auto-form/utils.ts
rename to packages/frontend/src/components/form/utils.ts
diff --git a/packages/frontend/src/views/admin/views/core/langs/create-edit/create-edit.tsx b/packages/frontend/src/views/admin/views/core/langs/create-edit/create-edit.tsx
index adfc2fc7f..14b596da4 100644
--- a/packages/frontend/src/views/admin/views/core/langs/create-edit/create-edit.tsx
+++ b/packages/frontend/src/views/admin/views/core/langs/create-edit/create-edit.tsx
@@ -8,12 +8,12 @@ import {
} from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
import { ShowCoreLanguages } from '@/graphql/types';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoFormSwitch } from '@/components/ui/auto-form/fields/switch';
-import { DependencyType } from '@/components/ui/auto-form/type';
-import { AutoFormCombobox } from '@/components/ui/auto-form/fields/combobox';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
import { locales } from './locales';
+import { DependencyType } from '@/components/form/type';
+import { AutoFormCombobox } from '@/components/form/fields/combobox';
+import { AutoFormSwitch } from '@/components/form/fields/switch';
export const CreateEditLangAdmin = ({ data }: { data?: ShowCoreLanguages }) => {
const t = useTranslations('admin.core.langs.actions');
diff --git a/packages/frontend/src/views/admin/views/core/langs/table/actions/delete/content.tsx b/packages/frontend/src/views/admin/views/core/langs/table/actions/delete/content.tsx
index ff21084d9..4f64c8eea 100644
--- a/packages/frontend/src/views/admin/views/core/langs/table/actions/delete/content.tsx
+++ b/packages/frontend/src/views/admin/views/core/langs/table/actions/delete/content.tsx
@@ -10,8 +10,8 @@ import {
} from '@/components/ui/alert-dialog';
import { Button } from '@/components/ui/button';
import { ShowCoreLanguages } from '@/graphql/types';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
export const ContentDeleteActionsTableLangsCoreAdmin = ({
code,
diff --git a/packages/frontend/src/views/admin/views/core/langs/table/actions/download/content.tsx b/packages/frontend/src/views/admin/views/core/langs/table/actions/download/content.tsx
index fd7e7604a..2097e5fc6 100644
--- a/packages/frontend/src/views/admin/views/core/langs/table/actions/download/content.tsx
+++ b/packages/frontend/src/views/admin/views/core/langs/table/actions/download/content.tsx
@@ -11,14 +11,13 @@ import {
} from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
import { ShowCoreLanguages } from '@/graphql/types';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormSwitch } from '@/components/ui/auto-form/fields/switch';
-import { AutoFormCombobox } from '@/components/ui/auto-form/fields/combobox';
+import { AutoForm } from '@/components/form/auto-form';
import {
AutoFormInputComponentProps,
DependencyType,
-} from '@/components/ui/auto-form/type';
-
+} from '@/components/form/type';
+import { AutoFormCombobox } from '@/components/form/fields/combobox';
+import { AutoFormSwitch } from '@/components/form/fields/switch';
export const ContentDownloadActionsTableLangsCoreAdmin = ({
code,
}: Pick) => {
diff --git a/packages/frontend/src/views/admin/views/core/langs/table/actions/update/content.tsx b/packages/frontend/src/views/admin/views/core/langs/table/actions/update/content.tsx
index 30bab09d5..71499702e 100644
--- a/packages/frontend/src/views/admin/views/core/langs/table/actions/update/content.tsx
+++ b/packages/frontend/src/views/admin/views/core/langs/table/actions/update/content.tsx
@@ -8,9 +8,9 @@ import {
} from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
import { ShowCoreLanguages } from '@/graphql/types';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormFile } from '@/components/ui/auto-form/fields/file';
-import { AutoFormInputComponentProps } from '@/components/ui/auto-form/type';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInputComponentProps } from '@/components/form/type';
+import { AutoFormFile } from '@/components/form/fields/file';
export const ContentUpdateActionsTableLangsCoreAdmin = ({
code,
diff --git a/packages/frontend/src/views/admin/views/core/plugins/actions/create/form.tsx b/packages/frontend/src/views/admin/views/core/plugins/actions/create/form.tsx
index bd18f52f4..e1d17ae0d 100644
--- a/packages/frontend/src/views/admin/views/core/plugins/actions/create/form.tsx
+++ b/packages/frontend/src/views/admin/views/core/plugins/actions/create/form.tsx
@@ -1,7 +1,7 @@
import { useTranslations } from 'next-intl';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoForm } from '@/components/ui/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { AutoForm } from '@/components/form/auto-form';
import { useCreateEditPluginAdmin } from './hooks/use-create-edit-plugin-admin';
import { ShowAdminPlugins } from '@/graphql/types';
diff --git a/packages/frontend/src/views/admin/views/core/plugins/upload/upload.tsx b/packages/frontend/src/views/admin/views/core/plugins/upload/upload.tsx
index b7e6dba04..498472563 100644
--- a/packages/frontend/src/views/admin/views/core/plugins/upload/upload.tsx
+++ b/packages/frontend/src/views/admin/views/core/plugins/upload/upload.tsx
@@ -8,9 +8,9 @@ import {
} from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
import { ShowAdminPlugins } from '@/graphql/types';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormFile } from '@/components/ui/auto-form/fields/file';
-import { AutoFormInputComponentProps } from '@/components/ui/auto-form/type';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInputComponentProps } from '@/components/form/type';
+import { AutoFormFile } from '@/components/form/fields/file';
export interface UploadPluginAdminProps {
data?: Pick;
diff --git a/packages/frontend/src/views/admin/views/core/plugins/views/dev/layout/actions/download/content.tsx b/packages/frontend/src/views/admin/views/core/plugins/views/dev/layout/actions/download/content.tsx
index a72a483a9..9ec8f0b2c 100644
--- a/packages/frontend/src/views/admin/views/core/plugins/views/dev/layout/actions/download/content.tsx
+++ b/packages/frontend/src/views/admin/views/core/plugins/views/dev/layout/actions/download/content.tsx
@@ -9,10 +9,10 @@ import {
} from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
import { ShowAdminPlugins } from '@/graphql/types';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormRadioGroup } from '@/components/ui/auto-form/fields/radio-group';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { DependencyType } from '@/components/ui/auto-form/type';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { DependencyType } from '@/components/form/type';
+import { AutoFormRadioGroup } from '@/components/form/fields/radio-group';
export const ContentDownloadActionDevPluginAdmin = ({
code,
diff --git a/packages/frontend/src/views/admin/views/core/plugins/views/dev/nav/create-edit/create-edit.tsx b/packages/frontend/src/views/admin/views/core/plugins/views/dev/nav/create-edit/create-edit.tsx
index 86f3cbf11..160b31b49 100644
--- a/packages/frontend/src/views/admin/views/core/plugins/views/dev/nav/create-edit/create-edit.tsx
+++ b/packages/frontend/src/views/admin/views/core/plugins/views/dev/nav/create-edit/create-edit.tsx
@@ -7,11 +7,11 @@ import { DialogHeader, DialogTitle } from '@/components/ui/dialog';
import { Admin__Core_Plugins__Nav__ShowQuery } from '@/graphql/queries/admin/plugins/dev/nav/admin__core_plugins__nav__show.generated';
import { ShowAdminNavPluginsObj } from '@/graphql/types';
import { removeSpecialCharacters } from '@/helpers/special-characters';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoFormSelect } from '@/components/ui/auto-form/fields/select';
-import { AutoFormIcon } from '@/components/ui/auto-form/fields/icon';
-import { AutoFormTags } from '@/components/ui/auto-form/fields/tags';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { AutoFormIcon } from '@/components/form/fields/icon';
+import { AutoFormSelect } from '@/components/form/fields/select';
+import { AutoFormTags } from '@/components/form/fields/tags';
export interface CreateEditNavDevPluginAdminProps {
dataFromSSR: Admin__Core_Plugins__Nav__ShowQuery['admin__core_plugins__nav__show'];
diff --git a/packages/frontend/src/views/admin/views/core/settings/email/actions/testing/content.tsx b/packages/frontend/src/views/admin/views/core/settings/email/actions/testing/content.tsx
index 5fdb5c21b..27922aca7 100644
--- a/packages/frontend/src/views/admin/views/core/settings/email/actions/testing/content.tsx
+++ b/packages/frontend/src/views/admin/views/core/settings/email/actions/testing/content.tsx
@@ -7,9 +7,9 @@ import {
DialogTitle,
} from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoFormTextArea } from '@/components/ui/auto-form/fields/textarea';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { AutoFormTextArea } from '@/components/form/fields/textarea';
export const ContentTestingActionEmailSettingsAdmin = () => {
const t = useTranslations('admin.core.settings.email.test');
diff --git a/packages/frontend/src/views/admin/views/core/settings/email/content.tsx b/packages/frontend/src/views/admin/views/core/settings/email/content.tsx
index 7c864fad0..de2925523 100644
--- a/packages/frontend/src/views/admin/views/core/settings/email/content.tsx
+++ b/packages/frontend/src/views/admin/views/core/settings/email/content.tsx
@@ -7,16 +7,16 @@ import { useEmailSettingsFormAdmin } from './hooks/use-email-settings-form-admin
import { Separator } from '@/components/ui/separator';
import { Admin__Core_Email_Settings__ShowQuery } from '@/graphql/queries/admin/settings/admin__core_email_settings__show.generated';
import { Link } from '@/navigation';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormRadioGroup } from '@/components/ui/auto-form/fields/radio-group';
-import { AutoFormColor } from '@/components/ui/auto-form/fields/color';
-import { AutoFormFile } from '@/components/ui/auto-form/fields/file';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoFormSwitch } from '@/components/ui/auto-form/fields/switch';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
import {
AutoFormInputComponentProps,
DependencyType,
-} from '@/components/ui/auto-form/type';
+} from '@/components/form/type';
+import { AutoFormColor } from '@/components/form/fields/color';
+import { AutoFormFile } from '@/components/form/fields/file';
+import { AutoFormRadioGroup } from '@/components/form/fields/radio-group';
+import { AutoFormSwitch } from '@/components/form/fields/switch';
export const ContentEmailSettingsAdmin = (
props: Admin__Core_Email_Settings__ShowQuery,
diff --git a/packages/frontend/src/views/admin/views/core/settings/main/content.tsx b/packages/frontend/src/views/admin/views/core/settings/main/content.tsx
index e50683b22..b6f285a3c 100644
--- a/packages/frontend/src/views/admin/views/core/settings/main/content.tsx
+++ b/packages/frontend/src/views/admin/views/core/settings/main/content.tsx
@@ -4,9 +4,9 @@ import { useTranslations } from 'next-intl';
import { useSettingsCoreAdmin } from './hooks/use-settings-core-admin';
import { Core_Main_Settings__ShowQuery } from '@/graphql/queries/admin/settings/core_main_settings__show.generated';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoFormTextLanguageInput } from '@/components/ui/auto-form/fields/text-language-input';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { AutoFormTextLanguageInput } from '@/components/form/fields/text-language-input';
export const ContentMainSettingsCoreAdmin = (
props: Core_Main_Settings__ShowQuery,
diff --git a/packages/frontend/src/views/admin/views/core/settings/metadata/manifest/content.tsx b/packages/frontend/src/views/admin/views/core/settings/metadata/manifest/content.tsx
index 49f982833..9c2994e6f 100644
--- a/packages/frontend/src/views/admin/views/core/settings/metadata/manifest/content.tsx
+++ b/packages/frontend/src/views/admin/views/core/settings/metadata/manifest/content.tsx
@@ -5,10 +5,10 @@ import { useTranslations } from 'next-intl';
import { useManifestCoreAdminView } from './hooks/use-manifest-core-admin-view';
import { CONFIG } from '@/helpers/config-with-env';
import { Admin__Core_Manifest_Metadata__ShowQuery } from '@/graphql/queries/admin/settings/admin__core_manifest_metadata__show.generated';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormRadioGroup } from '@/components/ui/auto-form/fields/radio-group';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoFormColor } from '@/components/ui/auto-form/fields/color';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { AutoFormColor } from '@/components/form/fields/color';
+import { AutoFormRadioGroup } from '@/components/form/fields/radio-group';
export const ContentManifestMetadataCoreAdmin = (
props: Admin__Core_Manifest_Metadata__ShowQuery,
diff --git a/packages/frontend/src/views/admin/views/core/settings/security/captcha/content.tsx b/packages/frontend/src/views/admin/views/core/settings/security/captcha/content.tsx
index ca9baeaaa..7ac506737 100644
--- a/packages/frontend/src/views/admin/views/core/settings/security/captcha/content.tsx
+++ b/packages/frontend/src/views/admin/views/core/settings/security/captcha/content.tsx
@@ -6,10 +6,10 @@ import { SquareArrowOutUpRight } from 'lucide-react';
import { useCaptchaSecurityAdmin } from './hooks/use-captcha-security-admin';
import { Link } from '@/navigation';
import { Admin__Core_Security__Captcha__ShowQuery } from '@/graphql/queries/admin/security/admin__core_security__captcha__show.generated';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormRadioGroup } from '@/components/ui/auto-form/fields/radio-group';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { DependencyType } from '@/components/ui/auto-form/type';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { DependencyType } from '@/components/form/type';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormRadioGroup } from '@/components/form/fields/radio-group';
export const ContentCaptchaSecurityAdmin = (
data: Admin__Core_Security__Captcha__ShowQuery,
diff --git a/packages/frontend/src/views/admin/views/core/styles/editor/content.tsx b/packages/frontend/src/views/admin/views/core/styles/editor/content.tsx
index 49bc55db0..bbc234844 100644
--- a/packages/frontend/src/views/admin/views/core/styles/editor/content.tsx
+++ b/packages/frontend/src/views/admin/views/core/styles/editor/content.tsx
@@ -5,10 +5,10 @@ import { useTranslations } from 'next-intl';
import { useEditorAdmin } from './hooks/use-editor-admin';
import { Card } from '@/components/ui/card';
import { Core_GlobalQuery } from '@/graphql/queries/core_global.generated';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormSwitch } from '@/components/ui/auto-form/fields/switch';
-import { AutoFormRadioGroup } from '@/components/ui/auto-form/fields/radio-group';
-import { AutoFormInputComponentProps } from '@/components/ui/auto-form/type';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInputComponentProps } from '@/components/form/type';
+import { AutoFormRadioGroup } from '@/components/form/fields/radio-group';
+import { AutoFormSwitch } from '@/components/form/fields/switch';
export const ContentEditorAdmin = (
data: Core_GlobalQuery['core_middleware__show']['editor'],
diff --git a/packages/frontend/src/views/admin/views/core/styles/nav/create-edit/create-edit.tsx b/packages/frontend/src/views/admin/views/core/styles/nav/create-edit/create-edit.tsx
index 34520d92f..5a7829c72 100644
--- a/packages/frontend/src/views/admin/views/core/styles/nav/create-edit/create-edit.tsx
+++ b/packages/frontend/src/views/admin/views/core/styles/nav/create-edit/create-edit.tsx
@@ -10,11 +10,11 @@ import {
DialogTitle,
} from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormTextLanguageInput } from '@/components/ui/auto-form/fields/text-language-input';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoFormIcon } from '@/components/ui/auto-form/fields/icon';
-import { AutoFormSwitch } from '@/components/ui/auto-form/fields/switch';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { AutoFormIcon } from '@/components/form/fields/icon';
+import { AutoFormSwitch } from '@/components/form/fields/switch';
+import { AutoFormTextLanguageInput } from '@/components/form/fields/text-language-input';
export const ContentCreateEditNavAdmin = ({ data }: CreateEditNavAdminArgs) => {
const t = useTranslations('admin.core.styles.nav');
diff --git a/packages/frontend/src/views/admin/views/install/content/steps/account/account-install-configs-view.tsx b/packages/frontend/src/views/admin/views/install/content/steps/account/account-install-configs-view.tsx
index cd9e0c1f3..10fdd8f07 100644
--- a/packages/frontend/src/views/admin/views/install/content/steps/account/account-install-configs-view.tsx
+++ b/packages/frontend/src/views/admin/views/install/content/steps/account/account-install-configs-view.tsx
@@ -6,11 +6,11 @@ import { useSignUpView } from '@/hooks/core/sign/up/use-sign-up-view';
import { Progress } from '@/components/ui/progress';
import { Button } from '@/components/ui/button';
import { removeSpecialCharacters } from '@/helpers/special-characters';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoFormCheckbox } from '@/components/ui/auto-form/fields/checkbox';
+import { AutoFormCheckbox } from '@/components/form/fields/checkbox';
import { useInstallVitnode } from '../../hooks/use-install-vitnode';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
export const AccountInstallConfigsView = () => {
const t = useTranslations('core');
diff --git a/packages/frontend/src/views/admin/views/install/content/steps/license/form-license-install-configs.tsx b/packages/frontend/src/views/admin/views/install/content/steps/license/form-license-install-configs.tsx
index edaa04c52..e99f89c90 100644
--- a/packages/frontend/src/views/admin/views/install/content/steps/license/form-license-install-configs.tsx
+++ b/packages/frontend/src/views/admin/views/install/content/steps/license/form-license-install-configs.tsx
@@ -2,10 +2,10 @@ import { useTranslations } from 'next-intl';
import * as z from 'zod';
import { Button } from '@/components/ui/button';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormCheckbox } from '@/components/ui/auto-form/fields/checkbox';
+import { AutoFormCheckbox } from '@/components/form/fields/checkbox';
import { useInstallVitnode } from '../../hooks/use-install-vitnode';
+import { AutoForm } from '@/components/form/auto-form';
export const FormLicenseInstallConfigs = () => {
const tCore = useTranslations('core');
diff --git a/packages/frontend/src/views/admin/views/members/groups/create-edit-form/create-edit-form-groups-members-admin.tsx b/packages/frontend/src/views/admin/views/members/groups/create-edit-form/create-edit-form-groups-members-admin.tsx
index 392df8646..2dc743e6a 100644
--- a/packages/frontend/src/views/admin/views/members/groups/create-edit-form/create-edit-form-groups-members-admin.tsx
+++ b/packages/frontend/src/views/admin/views/members/groups/create-edit-form/create-edit-form-groups-members-admin.tsx
@@ -14,17 +14,17 @@ import {
} from '@/components/ui/dialog';
import { Tabs, TabsTrigger } from '@/components/ui/tabs';
import { Button } from '@/components/ui/button';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormTextLanguageInput } from '@/components/ui/auto-form/fields/text-language-input';
-import { AutoFormColor } from '@/components/ui/auto-form/fields/color';
-import { AutoFormSwitch } from '@/components/ui/auto-form/fields/switch';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { Checkbox } from '@/components/ui/checkbox';
+import { Label } from '@/components/ui/label';
import {
AutoFormInputComponentProps,
DependencyType,
-} from '@/components/ui/auto-form/type';
-import { Checkbox } from '@/components/ui/checkbox';
-import { Label } from '@/components/ui/label';
+} from '@/components/form/type';
+import { AutoFormColor } from '@/components/form/fields/color';
+import { AutoFormSwitch } from '@/components/form/fields/switch';
+import { AutoFormTextLanguageInput } from '@/components/form/fields/text-language-input';
enum TabsEnum {
MAIN = 'main',
diff --git a/packages/frontend/src/views/admin/views/members/groups/table/actions/delete/content.tsx b/packages/frontend/src/views/admin/views/members/groups/table/actions/delete/content.tsx
index c6a78e652..0368f3f87 100644
--- a/packages/frontend/src/views/admin/views/members/groups/table/actions/delete/content.tsx
+++ b/packages/frontend/src/views/admin/views/members/groups/table/actions/delete/content.tsx
@@ -11,8 +11,8 @@ import {
} from '@/components/ui/alert-dialog';
import { Button } from '@/components/ui/button';
import { ShowAdminGroups } from '@/graphql/types';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { AutoForm } from '@/components/form/auto-form';
export const ContentDeleteGroupsMembersDialogAdmin = ({
id,
diff --git a/packages/frontend/src/views/admin/views/sign-in/form-sign-in-admin.tsx b/packages/frontend/src/views/admin/views/sign-in/form-sign-in-admin.tsx
index f75be4e7a..a1d58713c 100644
--- a/packages/frontend/src/views/admin/views/sign-in/form-sign-in-admin.tsx
+++ b/packages/frontend/src/views/admin/views/sign-in/form-sign-in-admin.tsx
@@ -7,8 +7,8 @@ import { useSignInAdminView } from '@/hooks/core/sign/in/use-sign-in-admin-view'
import { CardContent } from '@/components/ui/card';
import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';
import { Button } from '@/components/ui/button';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { AutoForm } from '@/components/form/auto-form';
export const FormSignInAdmin = () => {
const t = useTranslations('core');
diff --git a/packages/frontend/src/views/theme/views/auth/sign/in/form/form-sign-in.tsx b/packages/frontend/src/views/theme/views/auth/sign/in/form/form-sign-in.tsx
index 07cbbd27a..6ec411584 100644
--- a/packages/frontend/src/views/theme/views/auth/sign/in/form/form-sign-in.tsx
+++ b/packages/frontend/src/views/theme/views/auth/sign/in/form/form-sign-in.tsx
@@ -8,9 +8,9 @@ import { CardContent } from '@/components/ui/card';
import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';
import { Button } from '@/components/ui/button';
import { useSignInView } from '@/hooks/core/sign/in/use-sign-in-view';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoFormCheckbox } from '@/components/ui/auto-form/fields/checkbox';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
+import { AutoFormCheckbox } from '@/components/form/fields/checkbox';
export const FormSignIn = () => {
const t = useTranslations('core');
diff --git a/packages/frontend/src/views/theme/views/auth/sign/up/form/form-sign-up.tsx b/packages/frontend/src/views/theme/views/auth/sign/up/form/form-sign-up.tsx
index bed2484d3..6ab367681 100644
--- a/packages/frontend/src/views/theme/views/auth/sign/up/form/form-sign-up.tsx
+++ b/packages/frontend/src/views/theme/views/auth/sign/up/form/form-sign-up.tsx
@@ -7,10 +7,10 @@ import { CardContent } from '@/components/ui/card';
import { Progress } from '@/components/ui/progress';
import { Button } from '@/components/ui/button';
import { removeSpecialCharacters } from '@/helpers/special-characters';
-import { AutoForm } from '@/components/ui/auto-form';
-import { AutoFormInput } from '@/components/ui/auto-form/fields/input';
-import { AutoFormCheckbox } from '@/components/ui/auto-form/fields/checkbox';
+import { AutoForm } from '@/components/form/auto-form';
+import { AutoFormInput } from '@/components/form/fields/input';
import { SuccessFormSignUp } from './success';
+import { AutoFormCheckbox } from '@/components/form/fields/checkbox';
export const FormSignUp = () => {
const t = useTranslations('core');