@twintag/twintag-form 1.1.0 → 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.0 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 4882ms.
18
-
19
- dist/twintag-form.webcomponent.js 119.72 kB │ gzip: 33.42 kB
20
- dist/twintag-form.react.js 687.68 kB │ gzip: 139.91 kB
21
- ✓ built in 10.80s
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,17 @@
1
1
  # @twintag/twintag-form
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - feat: get-values implemented
8
+
9
+ ## 1.1.1
10
+
11
+ ### Patch Changes
12
+
13
+ - fix: (date-picker) remove harcoded value
14
+
3
15
  ## 1.1.0
4
16
 
5
17
  ### Minor 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
+ });
@@ -18288,7 +18288,6 @@ const JE = Pe({
18288
18288
  mode: "single",
18289
18289
  selected: isNaN(new Date(i.value).getTime()) ? void 0 : new Date(i.value),
18290
18290
  onSelect: i.onChange,
18291
- disabled: (c) => c > /* @__PURE__ */ new Date() || c < /* @__PURE__ */ new Date("1900-01-01"),
18292
18291
  initialFocus: !0
18293
18292
  }
18294
18293
  ) })
@@ -21868,42 +21867,49 @@ const za = (e, t) => {
21868
21867
  Re(() => {
21869
21868
  a.formState.isSubmitSuccessful && t && e && a.reset(
21870
21869
  Object.keys(e).reduce(
21871
- (l, u) => ({ ...l, [u]: "" }),
21870
+ (u, f) => ({ ...u, [f]: "" }),
21872
21871
  {}
21873
21872
  )
21874
21873
  );
21875
21874
  }, [a.formState]);
21876
- const s = (l) => {
21877
- var f;
21878
- console.log("form", l);
21879
- const u = new CustomEvent("twintag-form-valid", {
21880
- detail: l,
21875
+ const s = (u) => {
21876
+ var m;
21877
+ const f = new CustomEvent("twintag-form-valid", {
21878
+ detail: u,
21881
21879
  bubbles: !0,
21882
21880
  cancelable: !1,
21883
21881
  composed: !0
21884
21882
  });
21885
- (f = n.current) == null || f.dispatchEvent(u);
21886
- }, i = (l) => {
21887
- var f;
21888
- const u = new CustomEvent("twintag-form-invalid", {
21889
- 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,
21890
21888
  bubbles: !0,
21891
21889
  cancelable: !1,
21892
21890
  composed: !0
21893
21891
  });
21894
- (f = n.current) == null || f.dispatchEvent(u);
21892
+ (m = n.current) == null || m.dispatchEvent(f);
21895
21893
  }, c = () => {
21896
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);
21897
21904
  };
21898
21905
  return Re(() => {
21899
- const l = n.current;
21900
- return l && l.addEventListener("twintag-form-validate", c), () => {
21901
- 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));
21902
21909
  };
21903
21910
  }, []), /* @__PURE__ */ k.jsx(q8, { ...a, children: /* @__PURE__ */ k.jsx(
21904
21911
  "form",
21905
21912
  {
21906
- id: "twintag-form",
21907
21913
  ref: n,
21908
21914
  className: "relative space-y-4 font-tf-font",
21909
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>
@@ -102,9 +102,6 @@ export const DatePicker: React.FC<Props> = ({ label, bind, options }) => {
102
102
  : undefined
103
103
  }
104
104
  onSelect={field.onChange}
105
- disabled={(date) =>
106
- date > new Date() || date < new Date('1900-01-01')
107
- }
108
105
  initialFocus
109
106
  />
110
107
  </PopoverContent>
@@ -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.0",
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
  }