@tgb-form/vue 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,9 +27,9 @@ The adapter renders a `RuntimeFormDefinition` with `TgbForm`, resolves fields th
27
27
 
28
28
  ```vue
29
29
  <script setup lang="ts">
30
- import { defineComponent, h } from 'vue';
31
30
  import { defineForm, FieldDataType, ValidationRuleKind } from '@tgb-form/core';
32
31
  import { TgbForm, TgbFormProvider, createVueRendererRegistry } from '@tgb-form/vue';
32
+ import TextField from './TextField.vue';
33
33
 
34
34
  const definition = defineForm({
35
35
  fields: {
@@ -44,25 +44,6 @@ The adapter renders a `RuntimeFormDefinition` with `TgbForm`, resolves fields th
44
44
  },
45
45
  });
46
46
 
47
- const TextField = defineComponent({
48
- props: ['field', 'label', 'props', 'value', 'errors'],
49
- setup(props) {
50
- return () =>
51
- h('label', [
52
- h('span', props.label),
53
- h('input', {
54
- value: props.value,
55
- placeholder: props.props?.placeholder,
56
- onBlur: props.field.handleBlur,
57
- onInput: (event: Event) => {
58
- props.field.handleChange((event.target as HTMLInputElement).value);
59
- },
60
- }),
61
- props.errors?.length ? h('small', props.errors.join(', ')) : null,
62
- ]);
63
- },
64
- });
65
-
66
47
  const renderers = createVueRendererRegistry({
67
48
  byName: {
68
49
  'email-input': TextField,
@@ -104,3 +85,5 @@ The adapter renders a `RuntimeFormDefinition` with `TgbForm`, resolves fields th
104
85
  - `renderers`: optional renderer registry; overrides provider.
105
86
 
106
87
  Renderer props include `name`, `field`, `form`, `label`, `description`, `props`, `value`, and `errors`.
88
+
89
+ Write renderers as Vue SFCs and import them into the component that creates the registry. See `TextField.vue` in the quick-start example.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { FieldDataType, FieldDefinition, RendererRegistry, RuntimeFormDefinition, TgbFormTanStackOptions } from "@tgb-form/core";
2
- import { Component, InjectionKey, PropType } from "vue";
1
+ import { Component, InjectionKey } from "vue";
3
2
  import { AnyFieldApi, AnyFormApi, VueFormApi } from "@tanstack/vue-form";
3
+ import { FieldDataType, RendererRegistry } from "@tgb-form/core";
4
4
  //#region src/types.d.ts
5
5
  type VueRendererField = AnyFieldApi;
6
6
  type VueRendererProps = {
@@ -22,112 +22,81 @@ declare function createVueRendererRegistry<const TByName extends Readonly<Record
22
22
  readonly byType?: TByType;
23
23
  }): VueRendererRegistry<TByName, TByType>;
24
24
  //#endregion
25
- //#region src/TgbForm.d.ts
26
- declare const TgbForm: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
27
- definition: {
28
- type: PropType<RuntimeFormDefinition>;
29
- required: true;
30
- };
31
- instance: {
32
- type: PropType<TgbFormTanStackForm>;
33
- default: undefined;
34
- };
35
- tanstackOptions: {
36
- type: PropType<TgbFormTanStackOptions>;
37
- default: undefined;
38
- };
39
- renderers: {
40
- type: PropType<VueRendererRegistry>;
41
- default: undefined;
42
- };
43
- fields: {
44
- type: PropType<readonly string[]>;
45
- default: undefined;
46
- };
47
- }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
48
- [key: string]: any;
49
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
50
- definition: {
51
- type: PropType<RuntimeFormDefinition>;
52
- required: true;
53
- };
54
- instance: {
55
- type: PropType<TgbFormTanStackForm>;
56
- default: undefined;
57
- };
58
- tanstackOptions: {
59
- type: PropType<TgbFormTanStackOptions>;
60
- default: undefined;
61
- };
62
- renderers: {
63
- type: PropType<VueRendererRegistry>;
64
- default: undefined;
65
- };
66
- fields: {
67
- type: PropType<readonly string[]>;
68
- default: undefined;
69
- };
70
- }>> & Readonly<{}>, {
71
- renderers: VueRendererRegistry;
72
- instance: TgbFormTanStackForm;
73
- tanstackOptions: TgbFormTanStackOptions;
74
- fields: readonly string[];
75
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
76
- //#endregion
77
- //#region src/TgbFormField.d.ts
78
- declare const TgbFormField: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
79
- name: {
80
- type: StringConstructor;
81
- required: true;
82
- };
83
- field: {
84
- type: PropType<FieldDefinition>;
85
- required: true;
86
- };
87
- renderers: {
88
- type: PropType<VueRendererRegistry | undefined>;
89
- default: undefined;
90
- };
91
- }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
92
- [key: string]: any;
93
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
94
- name: {
95
- type: StringConstructor;
96
- required: true;
97
- };
98
- field: {
99
- type: PropType<FieldDefinition>;
100
- required: true;
101
- };
102
- renderers: {
103
- type: PropType<VueRendererRegistry | undefined>;
104
- default: undefined;
105
- };
106
- }>> & Readonly<{}>, {
107
- renderers: VueRendererRegistry | undefined;
108
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
109
- //#endregion
110
- //#region src/TgbFormProvider.d.ts
25
+ //#region src/context.d.ts
111
26
  type TgbFormRegistries = {
112
27
  renderers?: VueRendererRegistry;
113
28
  };
114
29
  declare const TgbFormRegistriesKey: InjectionKey<TgbFormRegistries>;
115
30
  declare const TgbFormInstanceKey: InjectionKey<unknown>;
116
- declare const TgbFormProvider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
117
- renderers: {
118
- type: PropType<VueRendererRegistry>;
119
- default: undefined;
120
- };
121
- }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
122
- [key: string]: any;
123
- }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
124
- renderers: {
125
- type: PropType<VueRendererRegistry>;
126
- default: undefined;
31
+ //#endregion
32
+ //#region src/index.d.ts
33
+ declare const TgbForm: {
34
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
35
+ definition: import("@tgb-form/core").RuntimeFormDefinition;
36
+ instance?: TgbFormTanStackForm;
37
+ tanstackOptions?: import("@tgb-form/core").TgbFormTanStackOptions;
38
+ renderers?: VueRendererRegistry;
39
+ fields?: readonly string[];
40
+ }> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
41
+ P: {};
42
+ B: {};
43
+ D: {};
44
+ C: {};
45
+ M: {};
46
+ Defaults: {};
47
+ }, Readonly<{
48
+ definition: import("@tgb-form/core").RuntimeFormDefinition;
49
+ instance?: TgbFormTanStackForm;
50
+ tanstackOptions?: import("@tgb-form/core").TgbFormTanStackOptions;
51
+ renderers?: VueRendererRegistry;
52
+ fields?: readonly string[];
53
+ }> & Readonly<{}>, {}, {}, {}, {}, {}>;
54
+ __isFragment?: never;
55
+ __isTeleport?: never;
56
+ __isSuspense?: never;
57
+ } & import("vue").ComponentOptionsBase<Readonly<{
58
+ definition: import("@tgb-form/core").RuntimeFormDefinition;
59
+ instance?: TgbFormTanStackForm;
60
+ tanstackOptions?: import("@tgb-form/core").TgbFormTanStackOptions;
61
+ renderers?: VueRendererRegistry;
62
+ fields?: readonly string[];
63
+ }> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
64
+ $slots: {
65
+ default?: (props: {}) => any;
66
+ };
67
+ });
68
+ declare const TgbFormField: import("vue").DefineComponent<{
69
+ name: string;
70
+ field: import("@tgb-form/core").FieldDefinition;
71
+ renderers?: VueRendererRegistry;
72
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
73
+ name: string;
74
+ field: import("@tgb-form/core").FieldDefinition;
75
+ renderers?: VueRendererRegistry;
76
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
77
+ declare const TgbFormProvider: {
78
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
79
+ renderers?: VueRendererRegistry;
80
+ }> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
81
+ P: {};
82
+ B: {};
83
+ D: {};
84
+ C: {};
85
+ M: {};
86
+ Defaults: {};
87
+ }, Readonly<{
88
+ renderers?: VueRendererRegistry;
89
+ }> & Readonly<{}>, {}, {}, {}, {}, {}>;
90
+ __isFragment?: never;
91
+ __isTeleport?: never;
92
+ __isSuspense?: never;
93
+ } & import("vue").ComponentOptionsBase<Readonly<{
94
+ renderers?: VueRendererRegistry;
95
+ }> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
96
+ $slots: {
97
+ default?: (props: {}) => any;
127
98
  };
128
- }>> & Readonly<{}>, {
129
- renderers: VueRendererRegistry;
130
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
99
+ });
131
100
  //#endregion
132
- export { type BaseVueRendererProps, TgbForm, TgbFormField, TgbFormInstanceKey, TgbFormProvider, TgbFormRegistriesKey, type TgbFormTanStackForm, type VueRenderer, type VueRendererField, type VueRendererProps, type VueRendererRegistry, createVueRendererRegistry };
101
+ export { type BaseVueRendererProps, TgbForm, TgbFormField, TgbFormInstanceKey, TgbFormProvider, type TgbFormRegistries, TgbFormRegistriesKey, type TgbFormTanStackForm, type VueRenderer, type VueRendererField, type VueRendererProps, type VueRendererRegistry, createVueRendererRegistry };
133
102
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,29 +1,14 @@
1
- import { createRendererRegistry, resolveRenderer, toTanStackOptions } from "@tgb-form/core";
2
- import { defineComponent, h, inject, markRaw, provide, toRaw } from "vue";
1
+ import { Fragment, createBlock, createElementBlock, defineComponent, h, inject, markRaw, openBlock, provide, renderList, renderSlot, toRaw, unref, withModifiers } from "vue";
3
2
  import { useForm } from "@tanstack/vue-form";
4
- //#region src/types.ts
5
- function createVueRendererRegistry(registry) {
6
- return createRendererRegistry(registry);
7
- }
8
- //#endregion
9
- //#region src/TgbFormProvider.ts
3
+ import { createRendererRegistry, resolveRenderer, toTanStackOptions } from "@tgb-form/core";
4
+ //#region src/context.ts
10
5
  const TgbFormRegistriesKey = Symbol("tgb-form-registries");
11
6
  const TgbFormInstanceKey = Symbol("tgb-form-instance");
12
- const TgbFormProvider = defineComponent({
13
- name: "TgbFormProvider",
14
- props: { renderers: {
15
- type: Object,
16
- default: void 0
17
- } },
18
- setup(props, { slots }) {
19
- provide(TgbFormRegistriesKey, { renderers: props.renderers });
20
- return () => slots.default?.();
21
- }
22
- });
23
7
  //#endregion
24
- //#region src/TgbFormField.ts
25
- const TgbFormField = defineComponent({
8
+ //#region src/TgbFormField.vue
9
+ var TgbFormField_default = /* @__PURE__ */ defineComponent({
26
10
  name: "TgbFormField",
11
+ __name: "TgbFormField",
27
12
  props: {
28
13
  name: {
29
14
  type: String,
@@ -34,19 +19,23 @@ const TgbFormField = defineComponent({
34
19
  required: true
35
20
  },
36
21
  renderers: {
37
- type: Object,
38
- default: void 0
22
+ type: null,
23
+ required: false
39
24
  }
40
25
  },
41
- setup(props) {
42
- return () => {
43
- const registries = inject(TgbFormRegistriesKey, null);
26
+ setup(__props) {
27
+ const props = __props;
28
+ const registries = inject(TgbFormRegistriesKey, null);
29
+ const form = inject(TgbFormInstanceKey, null);
30
+ const resolveRenderers = () => {
44
31
  const renderers = props.renderers ?? registries?.renderers;
45
- const form = inject(TgbFormInstanceKey, null);
46
- if (!form) throw new Error("TgbFormField must be used inside a TgbForm component");
47
32
  if (!renderers) throw new Error("No renderer registry found. Pass a renderers prop to TgbFormField or to the parent TgbForm.");
33
+ return renderers;
34
+ };
35
+ const RenderField = () => {
36
+ if (!form) throw new Error("TgbFormField must be used inside a TgbForm component");
48
37
  const FieldComponent = markRaw(toRaw(form.Field));
49
- const Renderer = markRaw(toRaw(resolveRenderer(props.field, renderers)));
38
+ const Renderer = markRaw(toRaw(resolveRenderer(props.field, resolveRenderers())));
50
39
  return h(FieldComponent, { name: props.name }, { default: ({ field, state }) => h(Renderer, {
51
40
  name: props.name,
52
41
  field,
@@ -58,12 +47,16 @@ const TgbFormField = defineComponent({
58
47
  errors: state?.meta?.errors ?? field.state?.meta?.errors ?? []
59
48
  }) });
60
49
  };
50
+ return (_ctx, _cache) => {
51
+ return openBlock(), createBlock(RenderField);
52
+ };
61
53
  }
62
54
  });
63
55
  //#endregion
64
- //#region src/TgbForm.ts
65
- const TgbForm = defineComponent({
56
+ //#region src/TgbForm.vue
57
+ var TgbForm_default = /* @__PURE__ */ defineComponent({
66
58
  name: "TgbForm",
59
+ __name: "TgbForm",
67
60
  props: {
68
61
  definition: {
69
62
  type: Object,
@@ -71,48 +64,78 @@ const TgbForm = defineComponent({
71
64
  },
72
65
  instance: {
73
66
  type: Object,
74
- default: void 0
67
+ required: false
75
68
  },
76
69
  tanstackOptions: {
77
70
  type: Object,
78
- default: void 0
71
+ required: false
79
72
  },
80
73
  renderers: {
81
- type: Object,
82
- default: void 0
74
+ type: null,
75
+ required: false
83
76
  },
84
77
  fields: {
85
78
  type: Array,
86
- default: void 0
79
+ required: false
87
80
  }
88
81
  },
89
- setup(props, { slots }) {
82
+ setup(__props) {
83
+ const props = __props;
90
84
  const registries = inject(TgbFormRegistriesKey, null);
91
- const renderers = props.renderers ?? registries?.renderers;
92
- const form = props.instance !== void 0 ? props.instance : useForm(toTanStackOptions(props.definition, props.tanstackOptions));
85
+ const resolveRenderers = () => props.renderers ?? registries?.renderers;
86
+ const form = props.instance ?? useForm(toTanStackOptions(props.definition, props.tanstackOptions));
93
87
  provide(TgbFormInstanceKey, form);
94
- return () => {
95
- return h("form", { onSubmit: (event) => {
96
- event.preventDefault();
97
- form.handleSubmit?.();
98
- } }, [...getOrderedFields(props.definition, props.fields).map(({ name, field }) => h(TgbFormField, {
99
- key: name,
88
+ function getOrderedFields(definition, fields) {
89
+ const fieldSet = fields ? new Set(fields) : void 0;
90
+ return Object.entries(definition.fields).map(([name, field], index) => ({
100
91
  name,
101
92
  field,
102
- renderers
103
- })), slots.default?.()].filter(Boolean));
93
+ index
94
+ })).filter(({ name }) => !fieldSet || fieldSet.has(name)).sort((left, right) => (left.field.order ?? Number.POSITIVE_INFINITY) - (right.field.order ?? Number.POSITIVE_INFINITY) || left.index - right.index);
95
+ }
96
+ return (_ctx, _cache) => {
97
+ return openBlock(), createElementBlock("form", { onSubmit: _cache[0] || (_cache[0] = withModifiers(($event) => unref(form).handleSubmit?.(), ["prevent"])) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(getOrderedFields(props.definition, props.fields), ({ name, field }) => {
98
+ return openBlock(), createBlock(TgbFormField_default, {
99
+ key: name,
100
+ name,
101
+ field,
102
+ renderers: resolveRenderers()
103
+ }, null, 8, [
104
+ "name",
105
+ "field",
106
+ "renderers"
107
+ ]);
108
+ }), 128)), renderSlot(_ctx.$slots, "default")], 32);
109
+ };
110
+ }
111
+ });
112
+ //#endregion
113
+ //#region src/TgbFormProvider.vue
114
+ var TgbFormProvider_default = /* @__PURE__ */ defineComponent({
115
+ name: "TgbFormProvider",
116
+ __name: "TgbFormProvider",
117
+ props: { renderers: {
118
+ type: null,
119
+ required: false
120
+ } },
121
+ setup(__props) {
122
+ provide(TgbFormRegistriesKey, { renderers: __props.renderers });
123
+ return (_ctx, _cache) => {
124
+ return renderSlot(_ctx.$slots, "default");
104
125
  };
105
126
  }
106
127
  });
107
- function getOrderedFields(definition, fields) {
108
- const fieldSet = fields ? new Set(fields) : void 0;
109
- return Object.entries(definition.fields).map(([name, field], index) => ({
110
- name,
111
- field,
112
- index
113
- })).filter(({ name }) => !fieldSet || fieldSet.has(name)).sort((left, right) => (left.field.order ?? Number.POSITIVE_INFINITY) - (right.field.order ?? Number.POSITIVE_INFINITY) || left.index - right.index);
128
+ //#endregion
129
+ //#region src/types.ts
130
+ function createVueRendererRegistry(registry) {
131
+ return createRendererRegistry(registry);
114
132
  }
115
133
  //#endregion
134
+ //#region src/index.ts
135
+ const TgbForm = TgbForm_default;
136
+ const TgbFormField = TgbFormField_default;
137
+ const TgbFormProvider = TgbFormProvider_default;
138
+ //#endregion
116
139
  export { TgbForm, TgbFormField, TgbFormInstanceKey, TgbFormProvider, TgbFormRegistriesKey, createVueRendererRegistry };
117
140
 
118
141
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/types.ts","../src/TgbFormProvider.ts","../src/TgbFormField.ts","../src/TgbForm.ts"],"sourcesContent":["import { createRendererRegistry, type FieldDataType, type RendererRegistry } from '@tgb-form/core';\nimport type { AnyFieldApi, AnyFormApi, VueFormApi } from '@tanstack/vue-form';\nimport type { Component } from 'vue';\n\nexport type VueRendererField = AnyFieldApi;\n\nexport type VueRendererProps = {\n readonly name: string;\n readonly field: VueRendererField;\n readonly form: TgbFormTanStackForm;\n readonly label?: string;\n readonly description?: string;\n readonly props?: Record<string, unknown>;\n readonly value: unknown;\n readonly errors: readonly unknown[];\n};\n\nexport type BaseVueRendererProps = VueRendererProps;\n\nexport type VueRenderer = Component;\n\nexport type VueRendererRegistry<\n TByName extends Readonly<Record<string, VueRenderer>> = Readonly<Record<string, VueRenderer>>,\n TByType extends Partial<Readonly<Record<FieldDataType, VueRenderer>>> = Partial<\n Readonly<Record<FieldDataType, VueRenderer>>\n >,\n> = RendererRegistry<TByName, TByType>;\n\nexport type TgbFormTanStackForm = AnyFormApi &\n VueFormApi<any, any, any, any, any, any, any, any, any, any, any, any>;\n\nexport function createVueRendererRegistry<\n const TByName extends Readonly<Record<string, VueRenderer>> = {},\n const TByType extends Partial<Readonly<Record<FieldDataType, VueRenderer>>> = {},\n>(registry: {\n readonly byName?: TByName;\n readonly byType?: TByType;\n}): VueRendererRegistry<TByName, TByType> {\n return createRendererRegistry(registry);\n}\n","import { type InjectionKey, type PropType, defineComponent, provide } from 'vue';\nimport type { VueRendererRegistry } from './types';\n\nexport type TgbFormRegistries = {\n renderers?: VueRendererRegistry;\n};\n\nexport const TgbFormRegistriesKey: InjectionKey<TgbFormRegistries> = Symbol('tgb-form-registries');\nexport const TgbFormInstanceKey: InjectionKey<unknown> = Symbol('tgb-form-instance');\n\nexport const TgbFormProvider = defineComponent({\n name: 'TgbFormProvider',\n props: {\n renderers: {\n type: Object as PropType<VueRendererRegistry>,\n default: undefined,\n },\n },\n setup(props, { slots }) {\n provide(TgbFormRegistriesKey, { renderers: props.renderers });\n\n return () => slots.default?.();\n },\n});\n","import { type PropType, defineComponent, h, inject, markRaw, toRaw } from 'vue';\nimport { resolveRenderer, type FieldDefinition } from '@tgb-form/core';\nimport { TgbFormInstanceKey, TgbFormRegistriesKey } from './TgbFormProvider';\nimport type { VueRenderer, VueRendererRegistry } from './types';\n\ntype TanStackFieldSlotProps = {\n readonly field: Record<string, unknown> & {\n readonly state?: {\n readonly value?: unknown;\n readonly meta?: {\n readonly errors?: readonly unknown[];\n };\n };\n };\n readonly state?: {\n readonly value?: unknown;\n readonly meta?: {\n readonly errors?: readonly unknown[];\n };\n };\n};\n\nexport const TgbFormField = defineComponent({\n name: 'TgbFormField',\n props: {\n name: {\n type: String,\n required: true,\n },\n field: {\n type: Object as PropType<FieldDefinition>,\n required: true,\n },\n renderers: {\n type: Object as PropType<VueRendererRegistry | undefined>,\n default: undefined,\n },\n },\n setup(props) {\n return () => {\n const registries = inject(TgbFormRegistriesKey, null);\n const renderers = props.renderers ?? registries?.renderers;\n\n const form = inject(TgbFormInstanceKey, null);\n\n if (!form) {\n throw new Error('TgbFormField must be used inside a TgbForm component');\n }\n\n if (!renderers) {\n throw new Error(\n 'No renderer registry found. Pass a renderers prop to TgbFormField or to the parent TgbForm.',\n );\n }\n\n const FieldComponent = markRaw(toRaw((form as Record<string, unknown>).Field) as any);\n const Renderer = markRaw(toRaw(resolveRenderer(props.field, renderers)) as VueRenderer);\n\n return h(\n FieldComponent,\n { name: props.name },\n {\n default: ({ field, state }: TanStackFieldSlotProps) =>\n h(Renderer, {\n name: props.name,\n field,\n form,\n label: props.field.label,\n description: props.field.description,\n props: props.field.props,\n value: state?.value ?? field.state?.value,\n errors: state?.meta?.errors ?? field.state?.meta?.errors ?? [],\n }),\n },\n );\n };\n },\n});\n","import { type PropType, defineComponent, h, inject, provide } from 'vue';\nimport { useForm } from '@tanstack/vue-form';\nimport {\n toTanStackOptions,\n type TgbFormTanStackOptions,\n type FormDefinition,\n type RuntimeFormDefinition,\n} from '@tgb-form/core';\nimport { TgbFormField } from './TgbFormField';\nimport { TgbFormInstanceKey, TgbFormRegistriesKey } from './TgbFormProvider';\nimport type { TgbFormTanStackForm, VueRendererRegistry } from './types';\n\ntype SubmitLikeEvent = {\n preventDefault(): void;\n};\n\nexport const TgbForm = defineComponent({\n name: 'TgbForm',\n props: {\n definition: {\n type: Object as PropType<RuntimeFormDefinition>,\n required: true,\n },\n instance: {\n type: Object as PropType<TgbFormTanStackForm>,\n default: undefined,\n },\n tanstackOptions: {\n type: Object as PropType<TgbFormTanStackOptions>,\n default: undefined,\n },\n renderers: {\n type: Object as PropType<VueRendererRegistry>,\n default: undefined,\n },\n fields: {\n type: Array as PropType<readonly string[]>,\n default: undefined,\n },\n },\n setup(props, { slots }) {\n const registries = inject(TgbFormRegistriesKey, null);\n const renderers = props.renderers ?? registries?.renderers;\n\n const form =\n props.instance !== undefined\n ? (props.instance as unknown as TgbFormTanStackForm)\n : (useForm(\n toTanStackOptions(props.definition, props.tanstackOptions) as Record<string, unknown>,\n ) as unknown as TgbFormTanStackForm);\n\n provide(TgbFormInstanceKey, form);\n\n return () => {\n const orderedFields = getOrderedFields(props.definition, props.fields);\n\n return h(\n 'form',\n {\n onSubmit: (event: SubmitLikeEvent) => {\n event.preventDefault();\n form.handleSubmit?.();\n },\n },\n [\n ...orderedFields.map(({ name, field }) =>\n h(TgbFormField, {\n key: name,\n name,\n field,\n renderers,\n }),\n ),\n slots.default?.(),\n ].filter(Boolean),\n );\n };\n },\n});\n\nfunction getOrderedFields(definition: FormDefinition, fields?: readonly string[]) {\n const fieldSet = fields ? new Set(fields) : undefined;\n\n return Object.entries(definition.fields)\n .map(([name, field], index) => ({ name, field, index }))\n .filter(({ name }) => !fieldSet || fieldSet.has(name))\n .sort(\n (left, right) =>\n (left.field.order ?? Number.POSITIVE_INFINITY) -\n (right.field.order ?? Number.POSITIVE_INFINITY) || left.index - right.index,\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["TgbFormComponent","TgbFormFieldComponent","TgbFormProviderComponent"],"sources":["../src/context.ts","../src/TgbFormField.vue","../src/TgbFormField.vue","../src/TgbForm.vue","../src/TgbForm.vue","../src/TgbFormProvider.vue","../src/TgbFormProvider.vue","../src/types.ts","../src/index.ts"],"sourcesContent":["import type { InjectionKey } from 'vue';\nimport type { VueRendererRegistry } from './types';\n\nexport type TgbFormRegistries = {\n renderers?: VueRendererRegistry;\n};\n\nexport const TgbFormRegistriesKey: InjectionKey<TgbFormRegistries> = Symbol('tgb-form-registries');\nexport const TgbFormInstanceKey: InjectionKey<unknown> = Symbol('tgb-form-instance');\n","<script setup lang=\"ts\">\n import { h, inject, markRaw, toRaw } from 'vue';\n import { resolveRenderer, type FieldDefinition } from '@tgb-form/core';\n import { TgbFormInstanceKey, TgbFormRegistriesKey } from './context';\n import type { VueRenderer, VueRendererRegistry } from './types';\n\n defineOptions({ name: 'TgbFormField' });\n\n const props = defineProps<{\n name: string;\n field: FieldDefinition;\n renderers?: VueRendererRegistry;\n }>();\n\n const registries = inject(TgbFormRegistriesKey, null);\n const form = inject(TgbFormInstanceKey, null);\n\n const resolveRenderers = () => {\n const renderers = props.renderers ?? registries?.renderers;\n\n if (!renderers) {\n throw new Error(\n 'No renderer registry found. Pass a renderers prop to TgbFormField or to the parent TgbForm.',\n );\n }\n\n return renderers;\n };\n\n type TanStackFieldSlotProps = {\n readonly field: Record<string, unknown> & {\n readonly state?: {\n readonly value?: unknown;\n readonly meta?: {\n readonly errors?: readonly unknown[];\n };\n };\n };\n readonly state?: {\n readonly value?: unknown;\n readonly meta?: {\n readonly errors?: readonly unknown[];\n };\n };\n };\n const RenderField = () => {\n if (!form) {\n throw new Error('TgbFormField must be used inside a TgbForm component');\n }\n\n const FieldComponent = markRaw(toRaw((form as Record<string, unknown>).Field) as any);\n const Renderer = markRaw(\n toRaw(resolveRenderer(props.field, resolveRenderers())) as VueRenderer,\n );\n\n return h(\n FieldComponent,\n { name: props.name },\n {\n default: ({ field, state }: TanStackFieldSlotProps) =>\n h(Renderer, {\n name: props.name,\n field,\n form,\n label: props.field.label,\n description: props.field.description,\n props: props.field.props,\n value: state?.value ?? field.state?.value,\n errors: state?.meta?.errors ?? field.state?.meta?.errors ?? [],\n }),\n },\n );\n };\n</script>\n\n<template>\n <RenderField />\n</template>\n","<script setup lang=\"ts\">\n import { h, inject, markRaw, toRaw } from 'vue';\n import { resolveRenderer, type FieldDefinition } from '@tgb-form/core';\n import { TgbFormInstanceKey, TgbFormRegistriesKey } from './context';\n import type { VueRenderer, VueRendererRegistry } from './types';\n\n defineOptions({ name: 'TgbFormField' });\n\n const props = defineProps<{\n name: string;\n field: FieldDefinition;\n renderers?: VueRendererRegistry;\n }>();\n\n const registries = inject(TgbFormRegistriesKey, null);\n const form = inject(TgbFormInstanceKey, null);\n\n const resolveRenderers = () => {\n const renderers = props.renderers ?? registries?.renderers;\n\n if (!renderers) {\n throw new Error(\n 'No renderer registry found. Pass a renderers prop to TgbFormField or to the parent TgbForm.',\n );\n }\n\n return renderers;\n };\n\n type TanStackFieldSlotProps = {\n readonly field: Record<string, unknown> & {\n readonly state?: {\n readonly value?: unknown;\n readonly meta?: {\n readonly errors?: readonly unknown[];\n };\n };\n };\n readonly state?: {\n readonly value?: unknown;\n readonly meta?: {\n readonly errors?: readonly unknown[];\n };\n };\n };\n const RenderField = () => {\n if (!form) {\n throw new Error('TgbFormField must be used inside a TgbForm component');\n }\n\n const FieldComponent = markRaw(toRaw((form as Record<string, unknown>).Field) as any);\n const Renderer = markRaw(\n toRaw(resolveRenderer(props.field, resolveRenderers())) as VueRenderer,\n );\n\n return h(\n FieldComponent,\n { name: props.name },\n {\n default: ({ field, state }: TanStackFieldSlotProps) =>\n h(Renderer, {\n name: props.name,\n field,\n form,\n label: props.field.label,\n description: props.field.description,\n props: props.field.props,\n value: state?.value ?? field.state?.value,\n errors: state?.meta?.errors ?? field.state?.meta?.errors ?? [],\n }),\n },\n );\n };\n</script>\n\n<template>\n <RenderField />\n</template>\n","<script setup lang=\"ts\">\n import { inject, provide } from 'vue';\n import { useForm } from '@tanstack/vue-form';\n import {\n toTanStackOptions,\n type FormDefinition,\n type RuntimeFormDefinition,\n type TgbFormTanStackOptions,\n } from '@tgb-form/core';\n import TgbFormField from './TgbFormField.vue';\n import { TgbFormInstanceKey, TgbFormRegistriesKey } from './context';\n import type { TgbFormTanStackForm, VueRendererRegistry } from './types';\n\n defineOptions({ name: 'TgbForm' });\n\n const props = defineProps<{\n definition: RuntimeFormDefinition;\n instance?: TgbFormTanStackForm;\n tanstackOptions?: TgbFormTanStackOptions;\n renderers?: VueRendererRegistry;\n fields?: readonly string[];\n }>();\n\n const registries = inject(TgbFormRegistriesKey, null);\n const resolveRenderers = () => props.renderers ?? registries?.renderers;\n const form =\n props.instance ??\n (useForm(\n toTanStackOptions(props.definition, props.tanstackOptions) as Record<string, unknown>,\n ) as unknown as TgbFormTanStackForm);\n\n provide(TgbFormInstanceKey, form);\n\n function getOrderedFields(definition: FormDefinition, fields?: readonly string[]) {\n const fieldSet = fields ? new Set(fields) : undefined;\n\n return Object.entries(definition.fields)\n .map(([name, field], index) => ({ name, field, index }))\n .filter(({ name }) => !fieldSet || fieldSet.has(name))\n .sort(\n (left, right) =>\n (left.field.order ?? Number.POSITIVE_INFINITY) -\n (right.field.order ?? Number.POSITIVE_INFINITY) || left.index - right.index,\n );\n }\n</script>\n\n<template>\n <form @submit.prevent=\"form.handleSubmit?.()\">\n <TgbFormField\n v-for=\"{ name, field } in getOrderedFields(props.definition, props.fields)\"\n :key=\"name\"\n :name=\"name\"\n :field=\"field\"\n :renderers=\"resolveRenderers()\"\n />\n <slot />\n </form>\n</template>\n","<script setup lang=\"ts\">\n import { inject, provide } from 'vue';\n import { useForm } from '@tanstack/vue-form';\n import {\n toTanStackOptions,\n type FormDefinition,\n type RuntimeFormDefinition,\n type TgbFormTanStackOptions,\n } from '@tgb-form/core';\n import TgbFormField from './TgbFormField.vue';\n import { TgbFormInstanceKey, TgbFormRegistriesKey } from './context';\n import type { TgbFormTanStackForm, VueRendererRegistry } from './types';\n\n defineOptions({ name: 'TgbForm' });\n\n const props = defineProps<{\n definition: RuntimeFormDefinition;\n instance?: TgbFormTanStackForm;\n tanstackOptions?: TgbFormTanStackOptions;\n renderers?: VueRendererRegistry;\n fields?: readonly string[];\n }>();\n\n const registries = inject(TgbFormRegistriesKey, null);\n const resolveRenderers = () => props.renderers ?? registries?.renderers;\n const form =\n props.instance ??\n (useForm(\n toTanStackOptions(props.definition, props.tanstackOptions) as Record<string, unknown>,\n ) as unknown as TgbFormTanStackForm);\n\n provide(TgbFormInstanceKey, form);\n\n function getOrderedFields(definition: FormDefinition, fields?: readonly string[]) {\n const fieldSet = fields ? new Set(fields) : undefined;\n\n return Object.entries(definition.fields)\n .map(([name, field], index) => ({ name, field, index }))\n .filter(({ name }) => !fieldSet || fieldSet.has(name))\n .sort(\n (left, right) =>\n (left.field.order ?? Number.POSITIVE_INFINITY) -\n (right.field.order ?? Number.POSITIVE_INFINITY) || left.index - right.index,\n );\n }\n</script>\n\n<template>\n <form @submit.prevent=\"form.handleSubmit?.()\">\n <TgbFormField\n v-for=\"{ name, field } in getOrderedFields(props.definition, props.fields)\"\n :key=\"name\"\n :name=\"name\"\n :field=\"field\"\n :renderers=\"resolveRenderers()\"\n />\n <slot />\n </form>\n</template>\n","<script setup lang=\"ts\">\n import { provide } from 'vue';\n import { TgbFormRegistriesKey } from './context';\n import type { VueRendererRegistry } from './types';\n\n defineOptions({ name: 'TgbFormProvider' });\n\n const props = defineProps<{\n renderers?: VueRendererRegistry;\n }>();\n\n provide(TgbFormRegistriesKey, { renderers: props.renderers });\n</script>\n\n<template>\n <slot />\n</template>\n","<script setup lang=\"ts\">\n import { provide } from 'vue';\n import { TgbFormRegistriesKey } from './context';\n import type { VueRendererRegistry } from './types';\n\n defineOptions({ name: 'TgbFormProvider' });\n\n const props = defineProps<{\n renderers?: VueRendererRegistry;\n }>();\n\n provide(TgbFormRegistriesKey, { renderers: props.renderers });\n</script>\n\n<template>\n <slot />\n</template>\n","import { createRendererRegistry, type FieldDataType, type RendererRegistry } from '@tgb-form/core';\nimport type { AnyFieldApi, AnyFormApi, VueFormApi } from '@tanstack/vue-form';\nimport type { Component } from 'vue';\n\nexport type VueRendererField = AnyFieldApi;\n\nexport type VueRendererProps = {\n readonly name: string;\n readonly field: VueRendererField;\n readonly form: TgbFormTanStackForm;\n readonly label?: string;\n readonly description?: string;\n readonly props?: Record<string, unknown>;\n readonly value: unknown;\n readonly errors: readonly unknown[];\n};\n\nexport type BaseVueRendererProps = VueRendererProps;\n\nexport type VueRenderer = Component;\n\nexport type VueRendererRegistry<\n TByName extends Readonly<Record<string, VueRenderer>> = Readonly<Record<string, VueRenderer>>,\n TByType extends Partial<Readonly<Record<FieldDataType, VueRenderer>>> = Partial<\n Readonly<Record<FieldDataType, VueRenderer>>\n >,\n> = RendererRegistry<TByName, TByType>;\n\nexport type TgbFormTanStackForm = AnyFormApi &\n VueFormApi<any, any, any, any, any, any, any, any, any, any, any, any>;\n\nexport function createVueRendererRegistry<\n const TByName extends Readonly<Record<string, VueRenderer>> = {},\n const TByType extends Partial<Readonly<Record<FieldDataType, VueRenderer>>> = {},\n>(registry: {\n readonly byName?: TByName;\n readonly byType?: TByType;\n}): VueRendererRegistry<TByName, TByType> {\n return createRendererRegistry(registry);\n}\n","import TgbFormComponent from './TgbForm.vue';\nimport TgbFormFieldComponent from './TgbFormField.vue';\nimport TgbFormProviderComponent from './TgbFormProvider.vue';\n\nexport const TgbForm = TgbFormComponent;\nexport const TgbFormField = TgbFormFieldComponent;\nexport const TgbFormProvider = TgbFormProviderComponent;\n\nexport { createVueRendererRegistry } from './types';\nexport { TgbFormRegistriesKey, TgbFormInstanceKey } from './context';\nexport type { TgbFormRegistries } from './context';\nexport type {\n BaseVueRendererProps,\n VueRenderer,\n VueRendererField,\n VueRendererProps,\n VueRendererRegistry,\n TgbFormTanStackForm,\n} from './types';\n"],"mappings":";;;;AAOA,MAAa,uBAAwD,OAAO,qBAAqB;AACjG,MAAa,qBAA4C,OAAO,mBAAmB;;;;;;;;;;;;;;;;;;;;;ECAjF,MAAM,QAAQ;EAMd,MAAM,aAAa,OAAO,sBAAsB,IAAI;EACpD,MAAM,OAAO,OAAO,oBAAoB,IAAI;EAE5C,MAAM,yBAAyB;GAC7B,MAAM,YAAY,MAAM,aAAa,YAAY;GAEjD,IAAI,CAAC,WACH,MAAM,IAAI,MACR,6FACF;GAGF,OAAO;EACT;EAkBA,MAAM,oBAAoB;GACxB,IAAI,CAAC,MACH,MAAM,IAAI,MAAM,sDAAsD;GAGxE,MAAM,iBAAiB,QAAQ,MAAO,KAAiC,KAAK,CAAQ;GACpF,MAAM,WAAW,QACf,MAAM,gBAAgB,MAAM,OAAO,iBAAiB,CAAC,CAAC,CACxD;GAEA,OAAO,EACL,gBACA,EAAE,MAAM,MAAM,KAAK,GACnB,EACE,UAAU,EAAE,OAAO,YACjB,EAAE,UAAU;IACV,MAAM,MAAM;IACZ;IACA;IACA,OAAO,MAAM,MAAM;IACnB,aAAa,MAAM,MAAM;IACzB,OAAO,MAAM,MAAM;IACnB,OAAO,OAAO,SAAS,MAAM,OAAO;IACpC,QAAQ,OAAO,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,CAAC;GAC/D,CAAC,EACL,CACF;EACF;;uBAIA,YAAe,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EE7Df,MAAM,QAAQ;EAQd,MAAM,aAAa,OAAO,sBAAsB,IAAI;EACpD,MAAM,yBAAyB,MAAM,aAAa,YAAY;EAC9D,MAAM,OACJ,MAAM,YACL,QACC,kBAAkB,MAAM,YAAY,MAAM,eAAe,CAC3D;EAEF,QAAQ,oBAAoB,IAAI;EAEhC,SAAS,iBAAiB,YAA4B,QAA4B;GAChF,MAAM,WAAW,SAAS,IAAI,IAAI,MAAM,IAAI,KAAA;GAE5C,OAAO,OAAO,QAAQ,WAAW,MAAM,CAAA,CACpC,KAAK,CAAC,MAAM,QAAQ,WAAW;IAAE;IAAM;IAAO;GAAM,EAAE,CAAA,CACtD,QAAQ,EAAE,WAAW,CAAC,YAAY,SAAS,IAAI,IAAI,CAAC,CAAA,CACpD,MACE,MAAM,WACJ,KAAK,MAAM,SAAS,OAAO,sBACzB,MAAM,MAAM,SAAS,OAAO,sBAAsB,KAAK,QAAQ,MAAM,KAC5E;EACJ;;uBAIA,mBASO,QAAA,EATA,UAAM,OAAA,OAAA,OAAA,KAAA,eAAA,WAAU,MAAA,IAAA,CAAI,CAAC,eAAY,GAAA,CAAA,SAAA,CAAA,GAAA,GAAA,EAAA,UAAA,IAAA,GACtC,mBAME,UAAA,MAAA,WAL0B,iBAAiB,MAAM,YAAY,MAAM,MAAM,IAAA,EAAhE,MAAM,YAAK;wBADtB,YAME,sBAAA;KAJC,KAAK;KACC;KACC;KACP,WAAW,iBAAgB;;;;;;cAE9B,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,EAAA;;;;;;;;;;;;;;EE7CV,QAAQ,sBAAsB,EAAE,WAAW,QAAM,UAAU,CAAC;;UAI5D,WAAQ,KAAA,QAAA,SAAA;;;;;;AEgBV,SAAgB,0BAGd,UAGwC;CACxC,OAAO,uBAAuB,QAAQ;AACxC;;;ACnCA,MAAa,UAAUA;AACvB,MAAa,eAAeC;AAC5B,MAAa,kBAAkBC"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@tgb-form/vue",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "An easy to use form library for Vue, built on top of @tgb-form/core.",
5
- "homepage": "https://github.com/VueEasyForm/easyform#readme",
5
+ "homepage": "https://github.com/VueEasyForm/tgb-form#readme",
6
6
  "bugs": {
7
- "url": "https://github.com/VueEasyForm/easyform/issues"
7
+ "url": "https://github.com/VueEasyForm/tgb-form/issues"
8
8
  },
9
9
  "license": "MIT",
10
10
  "author": "The @tgb-form Authors",
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "git+https://github.com/VueEasyForm/easyform.git"
13
+ "url": "git+https://github.com/VueEasyForm/tgb-form.git"
14
14
  },
15
15
  "files": [
16
16
  "dist"
@@ -26,7 +26,7 @@
26
26
  "access": "public"
27
27
  },
28
28
  "devDependencies": {
29
- "@tanstack/vue-form": "^1.33.0",
29
+ "@tanstack/vue-form": "^1.33.1",
30
30
  "@tsdown/css": "^0.22.4",
31
31
  "@types/node": "^26.1.1",
32
32
  "@vitejs/plugin-vue": "^6.0.6",
@@ -39,7 +39,7 @@
39
39
  "vitest-browser-vue": "^2.1.0",
40
40
  "vue": "^3.5.34",
41
41
  "vue-tsc": "^3.3.7",
42
- "@tgb-form/core": "0.0.1"
42
+ "@tgb-form/core": "0.0.2"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@tanstack/vue-form": "^1.33.0",