@twintag/twintag-form 0.6.0 → 1.0.0-beta.1

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.
Files changed (80) hide show
  1. package/.eslintrc.cjs +5 -0
  2. package/.turbo/turbo-build.log +14 -9
  3. package/.turbo/turbo-lint.log +4 -0
  4. package/CHANGELOG.md +12 -0
  5. package/README.md +87 -59
  6. package/dev/index.css +29 -0
  7. package/dev/main.tsx +163 -0
  8. package/dist/common/button.d.ts +137 -0
  9. package/dist/common/checkbox.d.ts +4 -0
  10. package/dist/common/form.d.ts +24 -0
  11. package/dist/common/input.d.ts +4 -0
  12. package/dist/common/label.d.ts +4 -0
  13. package/dist/common/radiogroup.d.ts +5 -0
  14. package/dist/common/switch.d.ts +4 -0
  15. package/dist/common/textarea.d.ts +4 -0
  16. package/dist/components/Input/checkbox.d.ts +2 -6
  17. package/dist/components/Input/file.d.ts +2 -6
  18. package/dist/components/Input/index.d.ts +2 -2
  19. package/dist/components/Input/radiogroup.d.ts +3 -0
  20. package/dist/components/Input/simple.d.ts +2 -6
  21. package/dist/components/Input/submit.d.ts +2 -6
  22. package/dist/components/Input/textarea.d.ts +2 -6
  23. package/dist/components/Input/toggle.d.ts +2 -6
  24. package/dist/components/Render/index.d.ts +7 -0
  25. package/dist/components/Render/useJson.d.ts +2 -0
  26. package/dist/components/{Label/index.d.ts → category.d.ts} +3 -4
  27. package/dist/components/form.d.ts +7 -0
  28. package/dist/components/index.d.ts +8 -4
  29. package/dist/index.d.ts +8 -9
  30. package/dist/provider.d.ts +8 -0
  31. package/dist/twintag-form.react.js +7930 -8119
  32. package/dist/twintag-form.webcomponent.js +2007 -1769
  33. package/dist/types/index.d.ts +33 -0
  34. package/index.html +13 -0
  35. package/lib/common/button.tsx +49 -0
  36. package/lib/common/checkbox.tsx +40 -0
  37. package/lib/common/form.tsx +192 -0
  38. package/lib/common/input.tsx +55 -0
  39. package/lib/common/label.tsx +26 -0
  40. package/lib/common/radiogroup.tsx +56 -0
  41. package/lib/common/switch.tsx +39 -0
  42. package/lib/common/textarea.tsx +53 -0
  43. package/lib/components/Input/checkbox.tsx +55 -42
  44. package/lib/components/Input/file.tsx +64 -72
  45. package/lib/components/Input/index.tsx +15 -15
  46. package/lib/components/Input/radiogroup.tsx +84 -0
  47. package/lib/components/Input/simple.tsx +50 -28
  48. package/lib/components/Input/submit.tsx +4 -13
  49. package/lib/components/Input/textarea.tsx +49 -27
  50. package/lib/components/Input/toggle.tsx +54 -45
  51. package/lib/components/Render/index.tsx +30 -0
  52. package/lib/components/Render/useJson.ts +76 -0
  53. package/lib/components/category.tsx +31 -0
  54. package/lib/components/form.tsx +75 -0
  55. package/lib/components/index.tsx +27 -4
  56. package/lib/index.tsx +24 -48
  57. package/lib/provider.tsx +36 -0
  58. package/lib/types/index.ts +37 -0
  59. package/lib/webcomponent.ts +6 -6
  60. package/package.json +17 -9
  61. package/prettier.config.mjs +26 -0
  62. package/tailwind.config.ts +43 -0
  63. package/tsconfig.json +14 -3
  64. package/twind.config.ts +4 -21
  65. package/vite.config.ts +1 -1
  66. package/dist/components/Category/__styles.d.ts +0 -29
  67. package/dist/components/Category/index.d.ts +0 -8
  68. package/dist/components/Form/index.d.ts +0 -12
  69. package/dist/components/Input/__props.d.ts +0 -10
  70. package/dist/components/Input/__styles.d.ts +0 -460
  71. package/dist/styles.d.ts +0 -487
  72. package/lib/__stories__/Form.stories.tsx +0 -141
  73. package/lib/components/Category/__styles.ts +0 -12
  74. package/lib/components/Category/index.tsx +0 -26
  75. package/lib/components/Form/index.tsx +0 -86
  76. package/lib/components/Input/__props.ts +0 -10
  77. package/lib/components/Input/__styles.ts +0 -132
  78. package/lib/components/Label/index.tsx +0 -24
  79. package/lib/styles.ts +0 -143
  80. package/tailwind.config.cjs +0 -8
package/dist/styles.d.ts DELETED
@@ -1,487 +0,0 @@
1
- import { TVConfig } from 'tailwind-variants/dist/config.js';
2
- import { TVReturnType, ClassValue } from 'tailwind-variants';
3
- export declare const labelStyle: TVReturnType<{
4
- [key: string]: {
5
- [key: string]: ClassValue | {
6
- base?: ClassValue;
7
- };
8
- };
9
- } | {
10
- [x: string]: {
11
- [x: string]: ClassValue | {
12
- base?: ClassValue;
13
- };
14
- } | undefined;
15
- } | {}, undefined, "text-label", TVConfig<unknown, {
16
- [key: string]: {
17
- [key: string]: ClassValue | {
18
- base?: ClassValue;
19
- };
20
- };
21
- } | {}>, {
22
- [key: string]: {
23
- [key: string]: ClassValue | {
24
- base?: ClassValue;
25
- };
26
- };
27
- } | {}, undefined, TVReturnType<unknown, undefined, "text-label", TVConfig<unknown, {
28
- [key: string]: {
29
- [key: string]: ClassValue | {
30
- base?: ClassValue;
31
- };
32
- };
33
- } | {}>, unknown, unknown, undefined>>;
34
- export declare const containerStyle: TVReturnType<{
35
- [key: string]: {
36
- [key: string]: ClassValue | {
37
- base?: ClassValue;
38
- };
39
- };
40
- } | {
41
- [x: string]: {
42
- [x: string]: ClassValue | {
43
- base?: ClassValue;
44
- };
45
- } | undefined;
46
- } | {}, undefined, "my-2", TVConfig<unknown, {
47
- [key: string]: {
48
- [key: string]: ClassValue | {
49
- base?: ClassValue;
50
- };
51
- };
52
- } | {}>, {
53
- [key: string]: {
54
- [key: string]: ClassValue | {
55
- base?: ClassValue;
56
- };
57
- };
58
- } | {}, undefined, TVReturnType<unknown, undefined, "my-2", TVConfig<unknown, {
59
- [key: string]: {
60
- [key: string]: ClassValue | {
61
- base?: ClassValue;
62
- };
63
- };
64
- } | {}>, unknown, unknown, undefined>>;
65
- export declare const categoryStyle: TVReturnType<{
66
- variant: {};
67
- }, {
68
- container: string;
69
- span: string;
70
- items: string;
71
- }, undefined, TVConfig<{
72
- variant: {};
73
- }, {
74
- variant: {};
75
- }>, {
76
- variant: {};
77
- }, {
78
- container: string;
79
- span: string;
80
- items: string;
81
- }, TVReturnType<{
82
- variant: {};
83
- }, {
84
- container: string;
85
- span: string;
86
- items: string;
87
- }, undefined, TVConfig<{
88
- variant: {};
89
- }, {
90
- variant: {};
91
- }>, unknown, unknown, undefined>>;
92
- export declare const checkboxStyle: TVReturnType<{
93
- variant: {
94
- alpha: {
95
- checkbox: string;
96
- };
97
- beta: {
98
- checkbox: string;
99
- };
100
- };
101
- }, {
102
- container: string;
103
- checkbox: string;
104
- }, undefined, TVConfig<{
105
- variant: {
106
- alpha: {
107
- checkbox: string;
108
- };
109
- beta: {
110
- checkbox: string;
111
- };
112
- };
113
- }, {
114
- variant: {
115
- alpha: {
116
- checkbox: string;
117
- };
118
- beta: {
119
- checkbox: string;
120
- };
121
- };
122
- }>, {
123
- variant: {
124
- alpha: {
125
- checkbox: string;
126
- };
127
- beta: {
128
- checkbox: string;
129
- };
130
- };
131
- }, {
132
- container: string;
133
- checkbox: string;
134
- }, TVReturnType<{
135
- variant: {
136
- alpha: {
137
- checkbox: string;
138
- };
139
- beta: {
140
- checkbox: string;
141
- };
142
- };
143
- }, {
144
- container: string;
145
- checkbox: string;
146
- }, undefined, TVConfig<{
147
- variant: {
148
- alpha: {
149
- checkbox: string;
150
- };
151
- beta: {
152
- checkbox: string;
153
- };
154
- };
155
- }, {
156
- variant: {
157
- alpha: {
158
- checkbox: string;
159
- };
160
- beta: {
161
- checkbox: string;
162
- };
163
- };
164
- }>, unknown, unknown, undefined>>;
165
- export declare const fileStyle: TVReturnType<{
166
- variant: {
167
- alpha: {
168
- container: string;
169
- input: string;
170
- };
171
- beta: {
172
- container: string;
173
- input: string;
174
- };
175
- };
176
- }, {
177
- container: string;
178
- span: string;
179
- input: string;
180
- }, undefined, TVConfig<{
181
- variant: {
182
- alpha: {
183
- container: string;
184
- input: string;
185
- };
186
- beta: {
187
- container: string;
188
- input: string;
189
- };
190
- };
191
- }, {
192
- variant: {
193
- alpha: {
194
- container: string;
195
- input: string;
196
- };
197
- beta: {
198
- container: string;
199
- input: string;
200
- };
201
- };
202
- }>, {
203
- variant: {
204
- alpha: {
205
- container: string;
206
- input: string;
207
- };
208
- beta: {
209
- container: string;
210
- input: string;
211
- };
212
- };
213
- }, {
214
- container: string;
215
- span: string;
216
- input: string;
217
- }, TVReturnType<{
218
- variant: {
219
- alpha: {
220
- container: string;
221
- input: string;
222
- };
223
- beta: {
224
- container: string;
225
- input: string;
226
- };
227
- };
228
- }, {
229
- container: string;
230
- span: string;
231
- input: string;
232
- }, undefined, TVConfig<{
233
- variant: {
234
- alpha: {
235
- container: string;
236
- input: string;
237
- };
238
- beta: {
239
- container: string;
240
- input: string;
241
- };
242
- };
243
- }, {
244
- variant: {
245
- alpha: {
246
- container: string;
247
- input: string;
248
- };
249
- beta: {
250
- container: string;
251
- input: string;
252
- };
253
- };
254
- }>, unknown, unknown, undefined>>;
255
- export declare const simpleStyle: TVReturnType<{
256
- variant: {
257
- alpha: {
258
- container: string;
259
- input: string;
260
- };
261
- beta: {
262
- container: string;
263
- input: string;
264
- };
265
- };
266
- }, {
267
- container: string;
268
- span: string;
269
- input: string;
270
- }, undefined, TVConfig<{
271
- variant: {
272
- alpha: {
273
- container: string;
274
- input: string;
275
- };
276
- beta: {
277
- container: string;
278
- input: string;
279
- };
280
- };
281
- }, {
282
- variant: {
283
- alpha: {
284
- container: string;
285
- input: string;
286
- };
287
- beta: {
288
- container: string;
289
- input: string;
290
- };
291
- };
292
- }>, {
293
- variant: {
294
- alpha: {
295
- container: string;
296
- input: string;
297
- };
298
- beta: {
299
- container: string;
300
- input: string;
301
- };
302
- };
303
- }, {
304
- container: string;
305
- span: string;
306
- input: string;
307
- }, TVReturnType<{
308
- variant: {
309
- alpha: {
310
- container: string;
311
- input: string;
312
- };
313
- beta: {
314
- container: string;
315
- input: string;
316
- };
317
- };
318
- }, {
319
- container: string;
320
- span: string;
321
- input: string;
322
- }, undefined, TVConfig<{
323
- variant: {
324
- alpha: {
325
- container: string;
326
- input: string;
327
- };
328
- beta: {
329
- container: string;
330
- input: string;
331
- };
332
- };
333
- }, {
334
- variant: {
335
- alpha: {
336
- container: string;
337
- input: string;
338
- };
339
- beta: {
340
- container: string;
341
- input: string;
342
- };
343
- };
344
- }>, unknown, unknown, undefined>>;
345
- export declare const toggleStyle: TVReturnType<{
346
- variant: {
347
- alpha: {
348
- container: string;
349
- input: string;
350
- thumb: string;
351
- };
352
- beta: {
353
- container: string;
354
- input: string;
355
- thumb: string;
356
- };
357
- };
358
- }, {
359
- container: string;
360
- span: string;
361
- input: string;
362
- thumb: string;
363
- }, undefined, TVConfig<{
364
- variant: {
365
- alpha: {
366
- container: string;
367
- input: string;
368
- thumb: string;
369
- };
370
- beta: {
371
- container: string;
372
- input: string;
373
- thumb: string;
374
- };
375
- };
376
- }, {
377
- variant: {
378
- alpha: {
379
- container: string;
380
- input: string;
381
- thumb: string;
382
- };
383
- beta: {
384
- container: string;
385
- input: string;
386
- thumb: string;
387
- };
388
- };
389
- }>, {
390
- variant: {
391
- alpha: {
392
- container: string;
393
- input: string;
394
- thumb: string;
395
- };
396
- beta: {
397
- container: string;
398
- input: string;
399
- thumb: string;
400
- };
401
- };
402
- }, {
403
- container: string;
404
- span: string;
405
- input: string;
406
- thumb: string;
407
- }, TVReturnType<{
408
- variant: {
409
- alpha: {
410
- container: string;
411
- input: string;
412
- thumb: string;
413
- };
414
- beta: {
415
- container: string;
416
- input: string;
417
- thumb: string;
418
- };
419
- };
420
- }, {
421
- container: string;
422
- span: string;
423
- input: string;
424
- thumb: string;
425
- }, undefined, TVConfig<{
426
- variant: {
427
- alpha: {
428
- container: string;
429
- input: string;
430
- thumb: string;
431
- };
432
- beta: {
433
- container: string;
434
- input: string;
435
- thumb: string;
436
- };
437
- };
438
- }, {
439
- variant: {
440
- alpha: {
441
- container: string;
442
- input: string;
443
- thumb: string;
444
- };
445
- beta: {
446
- container: string;
447
- input: string;
448
- thumb: string;
449
- };
450
- };
451
- }>, unknown, unknown, undefined>>;
452
- export declare const submitStyle: TVReturnType<{
453
- variant: {
454
- alpha: string;
455
- beta: string;
456
- };
457
- }, undefined, "mt-2 w-max max-w-full", TVConfig<{
458
- variant: {
459
- alpha: string;
460
- beta: string;
461
- };
462
- }, {
463
- variant: {
464
- alpha: string;
465
- beta: string;
466
- };
467
- }>, {
468
- variant: {
469
- alpha: string;
470
- beta: string;
471
- };
472
- }, undefined, TVReturnType<{
473
- variant: {
474
- alpha: string;
475
- beta: string;
476
- };
477
- }, undefined, "mt-2 w-max max-w-full", TVConfig<{
478
- variant: {
479
- alpha: string;
480
- beta: string;
481
- };
482
- }, {
483
- variant: {
484
- alpha: string;
485
- beta: string;
486
- };
487
- }>, unknown, unknown, undefined>>;
@@ -1,141 +0,0 @@
1
- import { TwintagForm } from '@twintag/twintag-form/index';
2
-
3
- // Replace your-framework with the name of your framework
4
- import type { Meta, StoryObj, Decorator } from '@storybook/react';
5
-
6
- import { withActions } from '@storybook/addon-actions/decorator';
7
-
8
- const meta: Meta<typeof TwintagForm> = {
9
- /* 👇 The title prop is optional.
10
- * See https://storybook.js.org/docs/7.0/react/configure/overview#configure-story-loading
11
- * to learn how to generate automatic titles
12
- */
13
- title: 'Form',
14
- component: TwintagForm,
15
- parameters: {
16
- actions: {
17
- handles: ['twintag-form-valid', 'twintag-form-invalid'],
18
- },
19
- },
20
- decorators: [withActions as unknown as Decorator],
21
- };
22
-
23
- export default meta;
24
-
25
- type Story = StoryObj<typeof TwintagForm>;
26
-
27
- export const Example: Story = {
28
- args: {
29
- config: [
30
- {
31
- id: 'category-123',
32
- type: 'category',
33
- props: {
34
- label: 'Category 1st',
35
- },
36
- content: [],
37
- children: [
38
- {
39
- id: 'input-123',
40
- type: 'input',
41
- props: {
42
- subtype: 'toggle',
43
- label: 'Require',
44
- bind: 'require',
45
- },
46
- content: [],
47
- children: [],
48
- },
49
- ],
50
- },
51
- {
52
- id: 'category-456',
53
- type: 'category',
54
- props: {
55
- label: 'Category 2nd',
56
- },
57
- content: [],
58
- children: [
59
- {
60
- id: 'input-123',
61
- type: 'input',
62
- props: {
63
- subtype: 'simple',
64
- label: 'Name',
65
- bind: 'name',
66
- },
67
- content: [],
68
- children: [],
69
- },
70
- {
71
- id: 'input-456',
72
- type: 'input',
73
- props: {
74
- subtype: 'simple',
75
- label: 'Email',
76
- bind: 'email',
77
- },
78
- content: [],
79
- children: [],
80
- },
81
- ],
82
- },
83
- {
84
- id: 'category-789',
85
- type: 'category',
86
- props: {
87
- label: 'Category 3rd',
88
- },
89
- content: [],
90
- children: [
91
- {
92
- id: 'input-789',
93
- type: 'input',
94
- props: {
95
- subtype: 'file',
96
- label: 'File',
97
- bind: 'file',
98
- },
99
- content: [],
100
- children: [],
101
- },
102
- ],
103
- },
104
- {
105
- id: 'category-321',
106
- type: 'category',
107
- props: {
108
- label: 'Category 4th',
109
- },
110
- content: [],
111
- children: [
112
- {
113
- id: 'input-123',
114
- type: 'input',
115
- props: {
116
- subtype: 'checkbox',
117
- label: 'Checkbox',
118
- bind: 'checkbox',
119
- },
120
- content: [],
121
- children: [],
122
- },
123
- ],
124
- },
125
- {
126
- id: 'input-654',
127
- type: 'input',
128
- props: {
129
- subtype: 'submit',
130
- label: 'Submit',
131
- },
132
- content: [],
133
- children: [],
134
- },
135
- ],
136
- options: {
137
- variant: 'beta',
138
- resetOnSubmit: true,
139
- },
140
- },
141
- };
@@ -1,12 +0,0 @@
1
- import { tv } from 'tailwind-variants';
2
-
3
- export const categoryStyle = tv({
4
- slots: {
5
- container: 'w-full space-y-4',
6
- span: 'text-category-label',
7
- items: 'space-y-2',
8
- },
9
- variants: {
10
- variant: {},
11
- },
12
- });
@@ -1,26 +0,0 @@
1
- import type { FC } from 'react';
2
- import type { VariantProps } from 'tailwind-variants';
3
- import type { WithChildren } from 'twintag-types/dom';
4
-
5
- import type { CommonProps } from '../Input/__props';
6
-
7
- import { categoryStyle } from './__styles';
8
-
9
- type Props = CommonProps<VariantProps<typeof categoryStyle>['variant']> &
10
- WithChildren;
11
-
12
- const Category: FC<Props> = ({ label, options, children }) => {
13
- const { container, span, items } = categoryStyle({
14
- variant: options?.variant,
15
- });
16
-
17
- return (
18
- <section className={container()}>
19
- {label ? <span className={span()}>{label}</span> : <></>}
20
-
21
- <div className={items()}>{children}</div>
22
- </section>
23
- );
24
- };
25
-
26
- export default Category;