@twintag/twintag-form 1.1.1 → 1.2.0

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.
@@ -1,21 +1,21 @@
1
1
 
2
- > @twintag/twintag-form@1.1.1 build C:\Users\daryl\Desktop\twintag-projects\twintag-admin\packages\twintag-form
2
+ > @twintag/twintag-form@1.2.0 build /home/runner/work/twintag-admin/twintag-admin/packages/twintag-form
3
3
  > tsc && vite build
4
4
 
5
5
  vite v4.4.9 building for production...
6
6
  transforming...
7
7
  ✓ 2526 modules transformed.
8
8
  rendering chunks...
9
-
10
- [vite:dts] Start generate declaration files...
9
+ 
10
+ [vite:dts] Start generate declaration files...
11
11
  computing gzip size...
12
- [vite:dts] Outside emitted: C:/Users/daryl/Desktop/twintag-projects/twintag-admin/packages/twintag-form/tailwind.config.d.ts
13
- [vite:dts] Outside emitted: C:/Users/daryl/Desktop/twintag-projects/twintag-admin/packages/twintag-form/.eslintrc.d.cts
14
- [vite:dts] Outside emitted: C:/Users/daryl/Desktop/twintag-projects/twintag-admin/packages/twintag-form/prettier.config.d.mts
15
- [vite:dts] Outside emitted: C:/Users/daryl/Desktop/twintag-projects/twintag-admin/packages/twintag-form/dev/main.d.ts
16
- [vite:dts] Outside emitted: C:/Users/daryl/Desktop/twintag-projects/twintag-admin/packages/twintag-form/vite.config.d.ts
17
- [vite:dts] Declaration files built in 4729ms.
18
-
19
- dist/twintag-form.webcomponent.js 119.72 kB │ gzip: 33.42 kB
20
- dist/twintag-form.react.js 687.57 kB │ gzip: 139.88 kB
21
- ✓ built in 10.13s
12
+ [vite:dts] Outside emitted: /home/runner/work/twintag-admin/twintag-admin/packages/twintag-form/tailwind.config.d.ts
13
+ [vite:dts] Outside emitted: /home/runner/work/twintag-admin/twintag-admin/packages/twintag-form/.eslintrc.d.cts
14
+ [vite:dts] Outside emitted: /home/runner/work/twintag-admin/twintag-admin/packages/twintag-form/prettier.config.d.mts
15
+ dist/twintag-form.webcomponent.js 119.72 kB │ gzip: 33.49 kB
16
+ dist/twintag-form.react.js 687.86 kB │ gzip: 139.95 kB
17
+ [vite:dts] Outside emitted: /home/runner/work/twintag-admin/twintag-admin/packages/twintag-form/dev/main.d.ts
18
+ [vite:dts] Outside emitted: /home/runner/work/twintag-admin/twintag-admin/packages/twintag-form/vite.config.d.ts
19
+ [vite:dts] Declaration files built in 7394ms.
20
+ 
21
+ ✓ built in 14.10s
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @twintag/twintag-form
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - feat: get-values implemented
8
+
3
9
  ## 1.1.1
4
10
 
5
11
  ### Patch Changes
package/dev/index.css CHANGED
@@ -1,32 +1,32 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
2
-
3
- @tailwind base;
4
- @tailwind components;
5
- @tailwind utilities;
6
-
7
- :root {
8
- --tf-label: 222.2 47.4% 11.2%;
9
- --tf-category: 222.2 47.4% 11.2%;
10
-
11
- --tf-background: 0 0% 100%;
12
- --tf-foreground: 0 0% 0%;
13
-
14
- --tf-muted: 210 40% 96.1%;
15
- --tf-muted-foreground: 215.4 16.3% 46.9%;
16
-
17
- --tf-primary: 210 40% 98%;
18
- --tf-primary-foreground: 222.2 47.4% 11.2%;
19
-
20
- --tf-accent: 222.2 47.4% 11.2%;
21
- --tf-accent-foreground: 210 40% 96.1%;
22
-
23
- --tf-destructive: 0 100% 50%;
24
- --tf-destructive-foreground: 210 40% 98%;
25
-
26
- --tf-input: 214.3 31.8% 91.4%;
27
- --tf-ring: 215 20.2% 65.1%;
28
-
29
- --tf-radius: 0.5rem;
30
-
31
- --tf-font: 'Roboto', sans-serif;
32
- }
1
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
2
+
3
+ @tailwind base;
4
+ @tailwind components;
5
+ @tailwind utilities;
6
+
7
+ :root {
8
+ --tf-label: 222.2 47.4% 11.2%;
9
+ --tf-category: 222.2 47.4% 11.2%;
10
+
11
+ --tf-background: 0 0% 100%;
12
+ --tf-foreground: 0 0% 0%;
13
+
14
+ --tf-muted: 210 40% 96.1%;
15
+ --tf-muted-foreground: 215.4 16.3% 46.9%;
16
+
17
+ --tf-primary: 210 40% 98%;
18
+ --tf-primary-foreground: 222.2 47.4% 11.2%;
19
+
20
+ --tf-accent: 222.2 47.4% 11.2%;
21
+ --tf-accent-foreground: 210 40% 96.1%;
22
+
23
+ --tf-destructive: 0 100% 50%;
24
+ --tf-destructive-foreground: 210 40% 98%;
25
+
26
+ --tf-input: 214.3 31.8% 91.4%;
27
+ --tf-ring: 215 20.2% 65.1%;
28
+
29
+ --tf-radius: 0.5rem;
30
+
31
+ --tf-font: 'Roboto', sans-serif;
32
+ }
package/dev/main.tsx CHANGED
@@ -184,3 +184,27 @@ const form = document.querySelector('twintag-form');
184
184
 
185
185
  form?.setAttribute('config', JSON.stringify(config));
186
186
  form?.setAttribute('options', JSON.stringify(options));
187
+
188
+ form?.addEventListener('twintag-form-values', (event) => {
189
+ console.log('form values', (event as CustomEvent).detail);
190
+ });
191
+ form?.addEventListener('twintag-form-valid', (e) => {
192
+ console.log('form valid', (e as CustomEvent).detail);
193
+ });
194
+ form?.addEventListener('twintag-form-invalid', (e) => {
195
+ console.log('form invalid', (e as CustomEvent).detail);
196
+ });
197
+
198
+ const getValues = document.getElementById('get-values');
199
+ getValues?.addEventListener('click', () => {
200
+ form?.shadowRoot
201
+ ?.querySelector('form')
202
+ ?.dispatchEvent(new CustomEvent('twintag-form-get_values'));
203
+ });
204
+
205
+ const submit = document.getElementById('submit');
206
+ submit?.addEventListener('click', () => {
207
+ form?.shadowRoot
208
+ ?.querySelector('form')
209
+ ?.dispatchEvent(new CustomEvent('twintag-form-validate'));
210
+ });
@@ -21867,42 +21867,49 @@ const za = (e, t) => {
21867
21867
  Re(() => {
21868
21868
  a.formState.isSubmitSuccessful && t && e && a.reset(
21869
21869
  Object.keys(e).reduce(
21870
- (l, u) => ({ ...l, [u]: "" }),
21870
+ (u, f) => ({ ...u, [f]: "" }),
21871
21871
  {}
21872
21872
  )
21873
21873
  );
21874
21874
  }, [a.formState]);
21875
- const s = (l) => {
21876
- var f;
21877
- console.log("form", l);
21878
- const u = new CustomEvent("twintag-form-valid", {
21879
- detail: l,
21875
+ const s = (u) => {
21876
+ var m;
21877
+ const f = new CustomEvent("twintag-form-valid", {
21878
+ detail: u,
21880
21879
  bubbles: !0,
21881
21880
  cancelable: !1,
21882
21881
  composed: !0
21883
21882
  });
21884
- (f = n.current) == null || f.dispatchEvent(u);
21885
- }, i = (l) => {
21886
- var f;
21887
- const u = new CustomEvent("twintag-form-invalid", {
21888
- detail: l,
21883
+ (m = n.current) == null || m.dispatchEvent(f);
21884
+ }, i = (u) => {
21885
+ var m;
21886
+ const f = new CustomEvent("twintag-form-invalid", {
21887
+ detail: u,
21889
21888
  bubbles: !0,
21890
21889
  cancelable: !1,
21891
21890
  composed: !0
21892
21891
  });
21893
- (f = n.current) == null || f.dispatchEvent(u);
21892
+ (m = n.current) == null || m.dispatchEvent(f);
21894
21893
  }, c = () => {
21895
21894
  a.handleSubmit(s, i)();
21895
+ }, l = () => {
21896
+ var m;
21897
+ const u = a.getValues(), f = new CustomEvent("twintag-form-values", {
21898
+ detail: u,
21899
+ bubbles: !0,
21900
+ cancelable: !1,
21901
+ composed: !0
21902
+ });
21903
+ (m = n.current) == null || m.dispatchEvent(f);
21896
21904
  };
21897
21905
  return Re(() => {
21898
- const l = n.current;
21899
- return l && l.addEventListener("twintag-form-validate", c), () => {
21900
- l && l.removeEventListener("twintag-form-validate", c);
21906
+ const u = n.current;
21907
+ return u && (u.addEventListener("twintag-form-validate", c), u.addEventListener("twintag-form-get_values", l)), () => {
21908
+ u && (u.removeEventListener("twintag-form-validate", c), u.removeEventListener("twintag-form-get_values", l));
21901
21909
  };
21902
21910
  }, []), /* @__PURE__ */ k.jsx(q8, { ...a, children: /* @__PURE__ */ k.jsx(
21903
21911
  "form",
21904
21912
  {
21905
- id: "twintag-form",
21906
21913
  ref: n,
21907
21914
  className: "relative space-y-4 font-tf-font",
21908
21915
  onSubmit: a.handleSubmit(s, i),
package/index.html CHANGED
@@ -1,15 +1,26 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>Twintag Form</title>
7
- </head>
8
- <body>
9
- <div style="margin-inline: auto; max-width: 32rem; background: hsl(var(--tf-background)); padding: 2rem">
10
- <twintag-form></twintag-form>
11
- </div>
12
- <script type="module" src="./dev/main.tsx"></script>
13
- </body>
14
- </html>
15
-
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Twintag Form</title>
7
+ </head>
8
+ <body>
9
+ <div
10
+ style="
11
+ display: grid;
12
+ grid-template-columns: repeat(2, 1fr);
13
+ padding: 2rem;
14
+ "
15
+ >
16
+ <div>
17
+ <button id="get-values">Get Values</button>
18
+ <button id="submit">Submit</button>
19
+ </div>
20
+ <div style="max-width: 32rem; background: hsl(var(--tf-background))">
21
+ <twintag-form></twintag-form>
22
+ </div>
23
+ </div>
24
+ <script type="module" src="./dev/main.tsx"></script>
25
+ </body>
26
+ </html>
@@ -36,42 +36,56 @@ export const TwintagForm = ({
36
36
  }, [form.formState]);
37
37
 
38
38
  const onValid = (data: FieldValues) => {
39
- console.log('form', data);
40
- const customSubmit = new CustomEvent('twintag-form-valid', {
39
+ const eventWithValidData = new CustomEvent('twintag-form-valid', {
41
40
  detail: data,
42
41
  bubbles: true,
43
42
  cancelable: false,
44
43
  composed: true,
45
44
  });
46
45
 
47
- ref.current?.dispatchEvent(customSubmit);
46
+ ref.current?.dispatchEvent(eventWithValidData);
48
47
  };
49
48
 
50
49
  const onInvalid = (__errors: FieldValues) => {
51
- const customSubmit = new CustomEvent('twintag-form-invalid', {
50
+ const eventWithInvalidData = new CustomEvent('twintag-form-invalid', {
52
51
  detail: __errors,
53
52
  bubbles: true,
54
53
  cancelable: false,
55
54
  composed: true,
56
55
  });
57
56
 
58
- ref.current?.dispatchEvent(customSubmit);
57
+ ref.current?.dispatchEvent(eventWithInvalidData);
59
58
  };
60
59
 
61
60
  const onValidate = () => {
62
61
  void form.handleSubmit(onValid, onInvalid)();
63
62
  };
64
63
 
64
+ const onGetValues = () => {
65
+ const values = form.getValues();
66
+
67
+ const eventWithValues = new CustomEvent('twintag-form-values', {
68
+ detail: values,
69
+ bubbles: true,
70
+ cancelable: false,
71
+ composed: true,
72
+ });
73
+
74
+ ref.current?.dispatchEvent(eventWithValues);
75
+ };
76
+
65
77
  useEffect(() => {
66
78
  const form = ref.current;
67
79
 
68
80
  if (form) {
69
81
  form.addEventListener('twintag-form-validate', onValidate);
82
+ form.addEventListener('twintag-form-get_values', onGetValues);
70
83
  }
71
84
 
72
85
  return () => {
73
86
  if (form) {
74
87
  form.removeEventListener('twintag-form-validate', onValidate);
88
+ form.removeEventListener('twintag-form-get_values', onGetValues);
75
89
  }
76
90
  };
77
91
  }, []);
@@ -79,7 +93,6 @@ export const TwintagForm = ({
79
93
  return (
80
94
  <Form {...form}>
81
95
  <form
82
- id='twintag-form'
83
96
  ref={ref}
84
97
  className='relative space-y-4 font-tf-font'
85
98
  onSubmit={form.handleSubmit(onValid, onInvalid)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twintag/twintag-form",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "author": "Twintag",
5
5
  "type": "module",
6
6
  "exports": {
@@ -62,7 +62,7 @@
62
62
  "dev": "vite",
63
63
  "build": "tsc && vite build",
64
64
  "lint": "eslint . --ext .ts,.tsx",
65
- "format": "prettier --write \"**/*.{ts,md,tsx,cjs,mjs,json}\" --ignore-path ../../.gitignore",
66
- "format:check": "prettier --check \"**/*.{ts,tsx,cjs,mjs,json}\" --ignore-path ../../.gitignore"
65
+ "format": "prettier --write \"**/*.{ts,md,tsx,cjs,mjs,json,html}\" --ignore-path ../../.gitignore",
66
+ "format:check": "prettier --check \"**/*.{ts,md,tsx,cjs,mjs,json,html}\" --ignore-path ../../.gitignore"
67
67
  }
68
68
  }