@uibit/form 0.1.0 → 0.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.
- package/README.md +10 -0
- package/custom-elements.json +478 -3
- package/dist/form.d.ts +15 -1
- package/dist/form.d.ts.map +1 -1
- package/dist/form.js +15 -1
- package/dist/form.js.map +1 -1
- package/dist/frameworks/angular/index.ts +46 -34
- package/dist/frameworks/astro/index.d.ts +9 -1
- package/dist/frameworks/preact/index.d.ts +2 -0
- package/dist/frameworks/react/index.ts +105 -0
- package/dist/frameworks/solid/index.d.ts +1 -0
- package/dist/frameworks/stencil/index.d.ts +2 -0
- package/dist/frameworks/svelte/index.svelte +65 -22
- package/dist/frameworks/vue/index.ts +116 -22
- package/package.json +7 -7
- package/dist/frameworks/react/index.d.ts +0 -21
package/README.md
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
# Form
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@uibit/form)
|
|
4
|
+
|
|
5
|
+
|
|
3
6
|
[Interactive Demonstration](https://rawlings.github.io/uibit/components/form)
|
|
4
7
|
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm install @uibit/form
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
|
|
5
15
|
Form provides a composable, declarative wrapper around standard HTML `<form>` elements. It adds multi-step wizard navigation, asynchronous submission lifecycle states, and unsaved changes tracking to simplify form construction.
|
|
6
16
|
|
|
7
17
|
## Value Delivery
|
package/custom-elements.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"declarations": [
|
|
9
9
|
{
|
|
10
10
|
"kind": "class",
|
|
11
|
-
"description": "A declarative form wrapper that wraps a native `<form>` and adds wizards
|
|
11
|
+
"description": "A declarative form wrapper that wraps a native `<form>` and adds wizards,",
|
|
12
12
|
"name": "Form",
|
|
13
13
|
"slots": [
|
|
14
14
|
{
|
|
@@ -246,11 +246,13 @@
|
|
|
246
246
|
},
|
|
247
247
|
{
|
|
248
248
|
"kind": "method",
|
|
249
|
-
"name": "reset"
|
|
249
|
+
"name": "reset",
|
|
250
|
+
"description": "\n\nResets all form fields to their initial values."
|
|
250
251
|
},
|
|
251
252
|
{
|
|
252
253
|
"kind": "method",
|
|
253
|
-
"name": "submit"
|
|
254
|
+
"name": "submit",
|
|
255
|
+
"description": "Submits the form programmatically after validation."
|
|
254
256
|
},
|
|
255
257
|
{
|
|
256
258
|
"kind": "method",
|
|
@@ -277,6 +279,211 @@
|
|
|
277
279
|
}
|
|
278
280
|
}
|
|
279
281
|
]
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"kind": "field",
|
|
285
|
+
"name": "locale",
|
|
286
|
+
"type": {
|
|
287
|
+
"text": "string"
|
|
288
|
+
},
|
|
289
|
+
"default": "''",
|
|
290
|
+
"description": "BCP 47 locale string for formatting and localization. Defaults to inherited document language.",
|
|
291
|
+
"attribute": "locale",
|
|
292
|
+
"inheritedFrom": {
|
|
293
|
+
"name": "UIBitElement",
|
|
294
|
+
"module": "../../platform/core/src/element.ts"
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"kind": "field",
|
|
299
|
+
"name": "resolvedLocale",
|
|
300
|
+
"type": {
|
|
301
|
+
"text": "string | undefined"
|
|
302
|
+
},
|
|
303
|
+
"description": "Resolves the active locale for formatting and localization.\nChecks the `locale` property first, then traverses up the DOM to find\nthe nearest ancestor with a `lang` attribute, and finally falls back\nto undefined (which defaults to browser locale).",
|
|
304
|
+
"readonly": true,
|
|
305
|
+
"inheritedFrom": {
|
|
306
|
+
"name": "UIBitElement",
|
|
307
|
+
"module": "../../platform/core/src/element.ts"
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"kind": "field",
|
|
312
|
+
"name": "_disposables",
|
|
313
|
+
"type": {
|
|
314
|
+
"text": "Set<() => void>"
|
|
315
|
+
},
|
|
316
|
+
"privacy": "private",
|
|
317
|
+
"default": "new Set()",
|
|
318
|
+
"inheritedFrom": {
|
|
319
|
+
"name": "UIBitElement",
|
|
320
|
+
"module": "../../platform/core/src/element.ts"
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"kind": "method",
|
|
325
|
+
"name": "createProperty",
|
|
326
|
+
"static": true,
|
|
327
|
+
"parameters": [
|
|
328
|
+
{
|
|
329
|
+
"name": "name",
|
|
330
|
+
"type": {
|
|
331
|
+
"text": "PropertyKey"
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"name": "options",
|
|
336
|
+
"optional": true,
|
|
337
|
+
"type": {
|
|
338
|
+
"text": "PropertyDeclaration"
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
],
|
|
342
|
+
"description": "Overrides createProperty to automatically map camelCase property names\nto kebab-case attribute names by default.",
|
|
343
|
+
"inheritedFrom": {
|
|
344
|
+
"name": "UIBitElement",
|
|
345
|
+
"module": "../../platform/core/src/element.ts"
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"kind": "method",
|
|
350
|
+
"name": "finalizeStyles",
|
|
351
|
+
"static": true,
|
|
352
|
+
"return": {
|
|
353
|
+
"type": {
|
|
354
|
+
"text": "Array<any>"
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
"parameters": [
|
|
358
|
+
{
|
|
359
|
+
"name": "styles",
|
|
360
|
+
"optional": true,
|
|
361
|
+
"type": {
|
|
362
|
+
"text": "CSSResultGroup"
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
],
|
|
366
|
+
"description": "Automatically prepends basic layout resets (border-box) to the\ncomponent's final styles.",
|
|
367
|
+
"inheritedFrom": {
|
|
368
|
+
"name": "UIBitElement",
|
|
369
|
+
"module": "../../platform/core/src/element.ts"
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"kind": "method",
|
|
374
|
+
"name": "dispatchCustomEvent",
|
|
375
|
+
"return": {
|
|
376
|
+
"type": {
|
|
377
|
+
"text": "boolean"
|
|
378
|
+
}
|
|
379
|
+
},
|
|
380
|
+
"parameters": [
|
|
381
|
+
{
|
|
382
|
+
"name": "name",
|
|
383
|
+
"type": {
|
|
384
|
+
"text": "string"
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"name": "detail",
|
|
389
|
+
"optional": true,
|
|
390
|
+
"type": {
|
|
391
|
+
"text": "T"
|
|
392
|
+
}
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"name": "options",
|
|
396
|
+
"optional": true,
|
|
397
|
+
"type": {
|
|
398
|
+
"text": "Omit<CustomEventInit<T>, 'detail'>"
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
],
|
|
402
|
+
"description": "Helper to dispatch a custom event with standard bubbles and composed options.",
|
|
403
|
+
"inheritedFrom": {
|
|
404
|
+
"name": "UIBitElement",
|
|
405
|
+
"module": "../../platform/core/src/element.ts"
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"kind": "method",
|
|
410
|
+
"name": "getCssPropertyValue",
|
|
411
|
+
"return": {
|
|
412
|
+
"type": {
|
|
413
|
+
"text": "string"
|
|
414
|
+
}
|
|
415
|
+
},
|
|
416
|
+
"parameters": [
|
|
417
|
+
{
|
|
418
|
+
"name": "propertyName",
|
|
419
|
+
"type": {
|
|
420
|
+
"text": "string"
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
],
|
|
424
|
+
"description": "Helper to retrieve a computed CSS custom property value from the element.",
|
|
425
|
+
"inheritedFrom": {
|
|
426
|
+
"name": "UIBitElement",
|
|
427
|
+
"module": "../../platform/core/src/element.ts"
|
|
428
|
+
}
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"kind": "method",
|
|
432
|
+
"name": "registerDisposable",
|
|
433
|
+
"parameters": [
|
|
434
|
+
{
|
|
435
|
+
"name": "cleanup",
|
|
436
|
+
"type": {
|
|
437
|
+
"text": "() => void"
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
],
|
|
441
|
+
"description": "Register a cleanup function to be executed when the element is disconnected from the DOM.",
|
|
442
|
+
"inheritedFrom": {
|
|
443
|
+
"name": "UIBitElement",
|
|
444
|
+
"module": "../../platform/core/src/element.ts"
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
"kind": "method",
|
|
449
|
+
"name": "listen",
|
|
450
|
+
"return": {
|
|
451
|
+
"type": {
|
|
452
|
+
"text": "() => void"
|
|
453
|
+
}
|
|
454
|
+
},
|
|
455
|
+
"parameters": [
|
|
456
|
+
{
|
|
457
|
+
"name": "target",
|
|
458
|
+
"type": {
|
|
459
|
+
"text": "EventTarget"
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
"name": "type",
|
|
464
|
+
"type": {
|
|
465
|
+
"text": "K"
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"name": "listener",
|
|
470
|
+
"type": {
|
|
471
|
+
"text": "(this: EventTarget, ev: HTMLElementEventMap[K]) => any"
|
|
472
|
+
}
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"name": "options",
|
|
476
|
+
"optional": true,
|
|
477
|
+
"type": {
|
|
478
|
+
"text": "boolean | AddEventListenerOptions"
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
],
|
|
482
|
+
"description": "Utility to add an event listener that is automatically cleaned up when the element is disconnected.",
|
|
483
|
+
"inheritedFrom": {
|
|
484
|
+
"name": "UIBitElement",
|
|
485
|
+
"module": "../../platform/core/src/element.ts"
|
|
486
|
+
}
|
|
280
487
|
}
|
|
281
488
|
],
|
|
282
489
|
"attributes": [
|
|
@@ -324,12 +531,36 @@
|
|
|
324
531
|
"default": "'idle'",
|
|
325
532
|
"description": "Submission state: 'idle', 'pending', 'success', or 'error'.",
|
|
326
533
|
"fieldName": "status"
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
"name": "locale",
|
|
537
|
+
"type": {
|
|
538
|
+
"text": "string"
|
|
539
|
+
},
|
|
540
|
+
"default": "''",
|
|
541
|
+
"description": "BCP 47 locale string for formatting and localization. Defaults to inherited document language.",
|
|
542
|
+
"fieldName": "locale",
|
|
543
|
+
"inheritedFrom": {
|
|
544
|
+
"name": "UIBitElement",
|
|
545
|
+
"module": "../../platform/core/src/element.ts"
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
],
|
|
549
|
+
"cssStates": [
|
|
550
|
+
{
|
|
551
|
+
"name": "submitting",
|
|
552
|
+
"description": "Active when form submission is in progress."
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
"name": "invalid",
|
|
556
|
+
"description": "Active when one or more form inputs fail validation checks."
|
|
327
557
|
}
|
|
328
558
|
],
|
|
329
559
|
"superclass": {
|
|
330
560
|
"name": "UIBitElement",
|
|
331
561
|
"package": "@uibit/core"
|
|
332
562
|
},
|
|
563
|
+
"summary": "A standard native form element wrapper supporting auto-validation and state tracking.\nsubmit lifecycle states, and dirty checking.",
|
|
333
564
|
"tagName": "uibit-form",
|
|
334
565
|
"customElement": true
|
|
335
566
|
}
|
|
@@ -402,6 +633,250 @@
|
|
|
402
633
|
"path": "src/types.ts",
|
|
403
634
|
"declarations": [],
|
|
404
635
|
"exports": []
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
"kind": "javascript-module",
|
|
639
|
+
"path": "../../platform/core/src/element.ts",
|
|
640
|
+
"declarations": [
|
|
641
|
+
{
|
|
642
|
+
"kind": "class",
|
|
643
|
+
"description": "A foundational base class for all UIBit web components.\nProvides custom event helpers, default kebab-case attribute mapping,\nautomatic cleanup/disposable tracking, and auto-injected reset styles.",
|
|
644
|
+
"name": "UIBitElement",
|
|
645
|
+
"members": [
|
|
646
|
+
{
|
|
647
|
+
"kind": "field",
|
|
648
|
+
"name": "locale",
|
|
649
|
+
"type": {
|
|
650
|
+
"text": "string"
|
|
651
|
+
},
|
|
652
|
+
"default": "''",
|
|
653
|
+
"description": "BCP 47 locale string for formatting and localization. Defaults to inherited document language.",
|
|
654
|
+
"attribute": "locale"
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
"kind": "field",
|
|
658
|
+
"name": "resolvedLocale",
|
|
659
|
+
"type": {
|
|
660
|
+
"text": "string | undefined"
|
|
661
|
+
},
|
|
662
|
+
"description": "Resolves the active locale for formatting and localization.\nChecks the `locale` property first, then traverses up the DOM to find\nthe nearest ancestor with a `lang` attribute, and finally falls back\nto undefined (which defaults to browser locale).",
|
|
663
|
+
"readonly": true
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
"kind": "field",
|
|
667
|
+
"name": "_disposables",
|
|
668
|
+
"type": {
|
|
669
|
+
"text": "Set<() => void>"
|
|
670
|
+
},
|
|
671
|
+
"privacy": "private",
|
|
672
|
+
"default": "new Set()"
|
|
673
|
+
},
|
|
674
|
+
{
|
|
675
|
+
"kind": "method",
|
|
676
|
+
"name": "createProperty",
|
|
677
|
+
"static": true,
|
|
678
|
+
"parameters": [
|
|
679
|
+
{
|
|
680
|
+
"name": "name",
|
|
681
|
+
"type": {
|
|
682
|
+
"text": "PropertyKey"
|
|
683
|
+
}
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"name": "options",
|
|
687
|
+
"optional": true,
|
|
688
|
+
"type": {
|
|
689
|
+
"text": "PropertyDeclaration"
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
],
|
|
693
|
+
"description": "Overrides createProperty to automatically map camelCase property names\nto kebab-case attribute names by default."
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
"kind": "method",
|
|
697
|
+
"name": "finalizeStyles",
|
|
698
|
+
"static": true,
|
|
699
|
+
"return": {
|
|
700
|
+
"type": {
|
|
701
|
+
"text": "Array<any>"
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
"parameters": [
|
|
705
|
+
{
|
|
706
|
+
"name": "styles",
|
|
707
|
+
"optional": true,
|
|
708
|
+
"type": {
|
|
709
|
+
"text": "CSSResultGroup"
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
],
|
|
713
|
+
"description": "Automatically prepends basic layout resets (border-box) to the\ncomponent's final styles."
|
|
714
|
+
},
|
|
715
|
+
{
|
|
716
|
+
"kind": "method",
|
|
717
|
+
"name": "dispatchCustomEvent",
|
|
718
|
+
"return": {
|
|
719
|
+
"type": {
|
|
720
|
+
"text": "boolean"
|
|
721
|
+
}
|
|
722
|
+
},
|
|
723
|
+
"parameters": [
|
|
724
|
+
{
|
|
725
|
+
"name": "name",
|
|
726
|
+
"type": {
|
|
727
|
+
"text": "string"
|
|
728
|
+
}
|
|
729
|
+
},
|
|
730
|
+
{
|
|
731
|
+
"name": "detail",
|
|
732
|
+
"optional": true,
|
|
733
|
+
"type": {
|
|
734
|
+
"text": "T"
|
|
735
|
+
}
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
"name": "options",
|
|
739
|
+
"optional": true,
|
|
740
|
+
"type": {
|
|
741
|
+
"text": "Omit<CustomEventInit<T>, 'detail'>"
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
],
|
|
745
|
+
"description": "Helper to dispatch a custom event with standard bubbles and composed options."
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
"kind": "method",
|
|
749
|
+
"name": "getCssPropertyValue",
|
|
750
|
+
"return": {
|
|
751
|
+
"type": {
|
|
752
|
+
"text": "string"
|
|
753
|
+
}
|
|
754
|
+
},
|
|
755
|
+
"parameters": [
|
|
756
|
+
{
|
|
757
|
+
"name": "propertyName",
|
|
758
|
+
"type": {
|
|
759
|
+
"text": "string"
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
],
|
|
763
|
+
"description": "Helper to retrieve a computed CSS custom property value from the element."
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
"kind": "method",
|
|
767
|
+
"name": "registerDisposable",
|
|
768
|
+
"parameters": [
|
|
769
|
+
{
|
|
770
|
+
"name": "cleanup",
|
|
771
|
+
"type": {
|
|
772
|
+
"text": "() => void"
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
],
|
|
776
|
+
"description": "Register a cleanup function to be executed when the element is disconnected from the DOM."
|
|
777
|
+
},
|
|
778
|
+
{
|
|
779
|
+
"kind": "method",
|
|
780
|
+
"name": "listen",
|
|
781
|
+
"return": {
|
|
782
|
+
"type": {
|
|
783
|
+
"text": "() => void"
|
|
784
|
+
}
|
|
785
|
+
},
|
|
786
|
+
"parameters": [
|
|
787
|
+
{
|
|
788
|
+
"name": "target",
|
|
789
|
+
"type": {
|
|
790
|
+
"text": "EventTarget"
|
|
791
|
+
}
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"name": "type",
|
|
795
|
+
"type": {
|
|
796
|
+
"text": "K"
|
|
797
|
+
}
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
"name": "listener",
|
|
801
|
+
"type": {
|
|
802
|
+
"text": "(this: EventTarget, ev: HTMLElementEventMap[K]) => any"
|
|
803
|
+
}
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
"name": "options",
|
|
807
|
+
"optional": true,
|
|
808
|
+
"type": {
|
|
809
|
+
"text": "boolean | AddEventListenerOptions"
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
],
|
|
813
|
+
"description": "Utility to add an event listener that is automatically cleaned up when the element is disconnected."
|
|
814
|
+
},
|
|
815
|
+
{
|
|
816
|
+
"kind": "method",
|
|
817
|
+
"name": "listen",
|
|
818
|
+
"return": {
|
|
819
|
+
"type": {
|
|
820
|
+
"text": "() => void"
|
|
821
|
+
}
|
|
822
|
+
},
|
|
823
|
+
"parameters": [
|
|
824
|
+
{
|
|
825
|
+
"name": "target",
|
|
826
|
+
"type": {
|
|
827
|
+
"text": "EventTarget"
|
|
828
|
+
}
|
|
829
|
+
},
|
|
830
|
+
{
|
|
831
|
+
"name": "type",
|
|
832
|
+
"type": {
|
|
833
|
+
"text": "string"
|
|
834
|
+
}
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
"name": "listener",
|
|
838
|
+
"type": {
|
|
839
|
+
"text": "EventListenerOrEventListenerObject"
|
|
840
|
+
}
|
|
841
|
+
},
|
|
842
|
+
{
|
|
843
|
+
"name": "options",
|
|
844
|
+
"optional": true,
|
|
845
|
+
"type": {
|
|
846
|
+
"text": "boolean | AddEventListenerOptions"
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
]
|
|
850
|
+
}
|
|
851
|
+
],
|
|
852
|
+
"attributes": [
|
|
853
|
+
{
|
|
854
|
+
"name": "locale",
|
|
855
|
+
"type": {
|
|
856
|
+
"text": "string"
|
|
857
|
+
},
|
|
858
|
+
"default": "''",
|
|
859
|
+
"description": "BCP 47 locale string for formatting and localization. Defaults to inherited document language.",
|
|
860
|
+
"fieldName": "locale"
|
|
861
|
+
}
|
|
862
|
+
],
|
|
863
|
+
"superclass": {
|
|
864
|
+
"name": "LitElement",
|
|
865
|
+
"package": "lit"
|
|
866
|
+
},
|
|
867
|
+
"customElement": true
|
|
868
|
+
}
|
|
869
|
+
],
|
|
870
|
+
"exports": [
|
|
871
|
+
{
|
|
872
|
+
"kind": "js",
|
|
873
|
+
"name": "UIBitElement",
|
|
874
|
+
"declaration": {
|
|
875
|
+
"name": "UIBitElement",
|
|
876
|
+
"module": "../../platform/core/src/element.ts"
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
]
|
|
405
880
|
}
|
|
406
881
|
]
|
|
407
882
|
}
|
package/dist/form.d.ts
CHANGED
|
@@ -2,12 +2,16 @@ import type { PropertyValues } from 'lit';
|
|
|
2
2
|
import { UIBitElement } from '@uibit/core';
|
|
3
3
|
/**
|
|
4
4
|
* A declarative form wrapper that wraps a native `<form>` and adds wizards,
|
|
5
|
+
|
|
6
|
+
* @summary A standard native form element wrapper supporting auto-validation and state tracking.
|
|
5
7
|
* submit lifecycle states, and dirty checking.
|
|
6
8
|
*
|
|
7
9
|
* @slot - Default slot where the native `<form>` element is placed.
|
|
8
10
|
* @slot success - Custom success template displayed upon successful submission.
|
|
9
11
|
* @slot error - Custom error template displayed upon failed submission.
|
|
10
|
-
|
|
12
|
+
|
|
13
|
+
* @cssstate submitting - Active when form submission is in progress.
|
|
14
|
+
* @cssstate invalid - Active when one or more form inputs fail validation checks.*/
|
|
11
15
|
export declare class Form extends UIBitElement {
|
|
12
16
|
static styles: import("lit").CSSResult;
|
|
13
17
|
/** Opt-in warning prompt if the user tries to leave the page with unsaved changes. */
|
|
@@ -45,7 +49,17 @@ export declare class Form extends UIBitElement {
|
|
|
45
49
|
prevStep(): void;
|
|
46
50
|
goToStep(stepNum: number): void;
|
|
47
51
|
private _isResetting;
|
|
52
|
+
/**
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
* Resets all form fields to their initial values.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
*/
|
|
48
59
|
reset(): void;
|
|
60
|
+
/**
|
|
61
|
+
* Submits the form programmatically after validation.
|
|
62
|
+
*/
|
|
49
63
|
submit(): Promise<void>;
|
|
50
64
|
private _onSubmit;
|
|
51
65
|
private _onFormClick;
|
package/dist/form.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAsB,YAAY,EAAE,MAAM,aAAa,CAAC;AAI/D
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAsB,YAAY,EAAE,MAAM,aAAa,CAAC;AAI/D;;;;;;;;;;;oFAWoF;AACpF,qBACa,IAAK,SAAQ,YAAY;IACpC,MAAM,CAAC,MAAM,0BAAU;IAGvB,sFAAsF;IAC9B,WAAW,UAAS;IAE5E,+EAA+E;IACpC,IAAI,SAAK;IAEpD,gEAAgE;IACK,UAAU,SAAK;IAE3E,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,eAAe,CAAK;IAErC,mDAAmD;IACP,KAAK,UAAS;IAE1D,kEAAkE;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAU;IAErG,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,SAAS,CAAC,CAAmB;IACrC,OAAO,CAAC,sBAAsB,CAAyB;IAEvD,iBAAiB,SAYhB;IAED,oBAAoB,SAMnB;IAED,YAAY,CAAC,iBAAiB,EAAE,cAAc,QAG7C;IAED,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,aAAa;IAOrB,QAAQ,SAuBP;IAED,QAAQ,SAMP;IAED,QAAQ,CAAC,OAAO,EAAE,MAAM,QA2BvB;IAID,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;;OAMG;IAGH,KAAK,SA+BJ;IAED;;OAEG;IACG,MAAM,kBAqCX;IAED,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,YAAY;IAsBpB,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,cAAc,QAIrD;IAED,MAAM,oCAiEL;CACF"}
|
package/dist/form.js
CHANGED
|
@@ -10,12 +10,16 @@ import { property, state } from 'lit/decorators.js';
|
|
|
10
10
|
import { styles } from './styles';
|
|
11
11
|
/**
|
|
12
12
|
* A declarative form wrapper that wraps a native `<form>` and adds wizards,
|
|
13
|
+
|
|
14
|
+
* @summary A standard native form element wrapper supporting auto-validation and state tracking.
|
|
13
15
|
* submit lifecycle states, and dirty checking.
|
|
14
16
|
*
|
|
15
17
|
* @slot - Default slot where the native `<form>` element is placed.
|
|
16
18
|
* @slot success - Custom success template displayed upon successful submission.
|
|
17
19
|
* @slot error - Custom error template displayed upon failed submission.
|
|
18
|
-
|
|
20
|
+
|
|
21
|
+
* @cssstate submitting - Active when form submission is in progress.
|
|
22
|
+
* @cssstate invalid - Active when one or more form inputs fail validation checks.*/
|
|
19
23
|
let Form = class Form extends UIBitElement {
|
|
20
24
|
constructor() {
|
|
21
25
|
super(...arguments);
|
|
@@ -256,6 +260,13 @@ let Form = class Form extends UIBitElement {
|
|
|
256
260
|
this.dispatchCustomEvent('uibit-step-change', { step: this.step });
|
|
257
261
|
}
|
|
258
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
* Resets all form fields to their initial values.
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
*/
|
|
259
270
|
reset() {
|
|
260
271
|
if (this._isResetting)
|
|
261
272
|
return;
|
|
@@ -290,6 +301,9 @@ let Form = class Form extends UIBitElement {
|
|
|
290
301
|
this._isResetting = false;
|
|
291
302
|
}
|
|
292
303
|
}
|
|
304
|
+
/**
|
|
305
|
+
* Submits the form programmatically after validation.
|
|
306
|
+
*/
|
|
293
307
|
async submit() {
|
|
294
308
|
if (!this._slottedFormEl)
|
|
295
309
|
return;
|
package/dist/form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +1,57 @@
|
|
|
1
1
|
import { Component, ChangeDetectionStrategy, ElementRef, input, effect, booleanAttribute, numberAttribute } from '@angular/core';
|
|
2
2
|
import '@uibit/form';
|
|
3
3
|
import type { Form as HTMLElementClass } from '@uibit/form';
|
|
4
|
-
|
|
5
4
|
@Component({
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
selector: 'uibit-form',
|
|
6
|
+
template: '<ng-content></ng-content>',
|
|
7
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
8
|
+
standalone: true
|
|
10
9
|
})
|
|
11
10
|
export class NgxForm {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
constructor(private el: ElementRef<HTMLElementClass>){
|
|
12
|
+
effect(()=>{
|
|
13
|
+
if (this.el.nativeElement) {
|
|
14
|
+
this.el.nativeElement.warnUnsaved = this.warnUnsaved();
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
effect(()=>{
|
|
18
|
+
if (this.el.nativeElement) {
|
|
19
|
+
this.el.nativeElement.step = this.step();
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
effect(()=>{
|
|
23
|
+
if (this.el.nativeElement) {
|
|
24
|
+
this.el.nativeElement.stepsCount = this.stepsCount();
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
effect(()=>{
|
|
28
|
+
if (this.el.nativeElement) {
|
|
29
|
+
this.el.nativeElement.dirty = this.dirty();
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
effect(()=>{
|
|
33
|
+
if (this.el.nativeElement) {
|
|
34
|
+
this.el.nativeElement.status = this.status();
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
effect(()=>{
|
|
38
|
+
if (this.el.nativeElement) {
|
|
39
|
+
this.el.nativeElement.locale = this.locale();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
readonly warnUnsaved = input<boolean, any>(false, {
|
|
44
|
+
transform: booleanAttribute
|
|
17
45
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this.el.nativeElement.step = this.step();
|
|
21
|
-
}
|
|
46
|
+
readonly step = input<number, any>(1, {
|
|
47
|
+
transform: numberAttribute
|
|
22
48
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
this.el.nativeElement.stepsCount = this.stepsCount();
|
|
26
|
-
}
|
|
49
|
+
readonly stepsCount = input<number, any>(0, {
|
|
50
|
+
transform: numberAttribute
|
|
27
51
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
this.el.nativeElement.dirty = this.dirty();
|
|
31
|
-
}
|
|
52
|
+
readonly dirty = input<boolean, any>(false, {
|
|
53
|
+
transform: booleanAttribute
|
|
32
54
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.el.nativeElement.status = this.status();
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
readonly warnUnsaved = input<boolean, any>(false, { transform: booleanAttribute });
|
|
41
|
-
readonly step = input<number, any>(1, { transform: numberAttribute });
|
|
42
|
-
readonly stepsCount = input<number, any>(0, { transform: numberAttribute });
|
|
43
|
-
readonly dirty = input<boolean, any>(false, { transform: booleanAttribute });
|
|
44
|
-
readonly status = input<'idle' | 'pending' | 'success' | 'error', any>('idle');
|
|
55
|
+
readonly status = input<'idle' | 'pending' | 'success' | 'error'>('idle');
|
|
56
|
+
readonly locale = input<string>('');
|
|
45
57
|
}
|
|
@@ -4,7 +4,15 @@ import '@uibit/form';
|
|
|
4
4
|
declare global {
|
|
5
5
|
namespace astroHTML.JSX {
|
|
6
6
|
interface IntrinsicElements {
|
|
7
|
-
'uibit-form': Partial<HTMLElementClass> & astroHTML.JSX.HTMLAttributes
|
|
7
|
+
'uibit-form': Partial<HTMLElementClass> & astroHTML.JSX.HTMLAttributes & {
|
|
8
|
+
warnUnsaved?: boolean;
|
|
9
|
+
step?: number;
|
|
10
|
+
stepsCount?: number;
|
|
11
|
+
dirty?: boolean;
|
|
12
|
+
status?: 'idle' | 'pending' | 'success' | 'error';
|
|
13
|
+
locale?: string;
|
|
14
|
+
|
|
15
|
+
};
|
|
8
16
|
}
|
|
9
17
|
}
|
|
10
18
|
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import React, { useRef, useEffect, useLayoutEffect, useImperativeHandle } from 'react';
|
|
2
|
+
import type { Form as HTMLElementClass } from '@uibit/form';
|
|
3
|
+
import '@uibit/form';
|
|
4
|
+
const useTypeOfLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
|
|
5
|
+
export interface FormProps extends Omit<React.HTMLAttributes<HTMLElementClass>, 'warnUnsaved' | 'step' | 'stepsCount' | 'dirty' | 'status' | 'locale'> {
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
warnUnsaved?: boolean;
|
|
8
|
+
step?: number;
|
|
9
|
+
stepsCount?: number;
|
|
10
|
+
dirty?: boolean;
|
|
11
|
+
status?: 'idle' | 'pending' | 'success' | 'error';
|
|
12
|
+
locale?: string;
|
|
13
|
+
}
|
|
14
|
+
export const Form = ({ ref, children, ...props }: FormProps & {
|
|
15
|
+
ref?: React.Ref<HTMLElementClass>;
|
|
16
|
+
})=>{
|
|
17
|
+
const innerRef = useRef<HTMLElementClass>(null);
|
|
18
|
+
const propsRef = useRef(props);
|
|
19
|
+
propsRef.current = props;
|
|
20
|
+
useImperativeHandle(ref, ()=>innerRef.current!);
|
|
21
|
+
useTypeOfLayoutEffect(()=>{
|
|
22
|
+
const element = innerRef.current;
|
|
23
|
+
if (element && props.warnUnsaved !== undefined) {
|
|
24
|
+
(element as any).warnUnsaved = props.warnUnsaved;
|
|
25
|
+
}
|
|
26
|
+
}, [
|
|
27
|
+
props.warnUnsaved
|
|
28
|
+
]);
|
|
29
|
+
useTypeOfLayoutEffect(()=>{
|
|
30
|
+
const element = innerRef.current;
|
|
31
|
+
if (element && props.step !== undefined) {
|
|
32
|
+
(element as any).step = props.step;
|
|
33
|
+
}
|
|
34
|
+
}, [
|
|
35
|
+
props.step
|
|
36
|
+
]);
|
|
37
|
+
useTypeOfLayoutEffect(()=>{
|
|
38
|
+
const element = innerRef.current;
|
|
39
|
+
if (element && props.stepsCount !== undefined) {
|
|
40
|
+
(element as any).stepsCount = props.stepsCount;
|
|
41
|
+
}
|
|
42
|
+
}, [
|
|
43
|
+
props.stepsCount
|
|
44
|
+
]);
|
|
45
|
+
useTypeOfLayoutEffect(()=>{
|
|
46
|
+
const element = innerRef.current;
|
|
47
|
+
if (element && props.dirty !== undefined) {
|
|
48
|
+
(element as any).dirty = props.dirty;
|
|
49
|
+
}
|
|
50
|
+
}, [
|
|
51
|
+
props.dirty
|
|
52
|
+
]);
|
|
53
|
+
useTypeOfLayoutEffect(()=>{
|
|
54
|
+
const element = innerRef.current;
|
|
55
|
+
if (element && props.status !== undefined) {
|
|
56
|
+
(element as any).status = props.status;
|
|
57
|
+
}
|
|
58
|
+
}, [
|
|
59
|
+
props.status
|
|
60
|
+
]);
|
|
61
|
+
useTypeOfLayoutEffect(()=>{
|
|
62
|
+
const element = innerRef.current;
|
|
63
|
+
if (element && props.locale !== undefined) {
|
|
64
|
+
(element as any).locale = props.locale;
|
|
65
|
+
}
|
|
66
|
+
}, [
|
|
67
|
+
props.locale
|
|
68
|
+
]);
|
|
69
|
+
const domProps = {
|
|
70
|
+
...props
|
|
71
|
+
};
|
|
72
|
+
const customPropNames = [
|
|
73
|
+
'warnUnsaved',
|
|
74
|
+
'step',
|
|
75
|
+
'stepsCount',
|
|
76
|
+
'dirty',
|
|
77
|
+
'status',
|
|
78
|
+
'locale'
|
|
79
|
+
];
|
|
80
|
+
for (const key of customPropNames){
|
|
81
|
+
delete (domProps as any)[key];
|
|
82
|
+
}
|
|
83
|
+
return React.createElement('uibit-form', {
|
|
84
|
+
ref: innerRef,
|
|
85
|
+
...domProps
|
|
86
|
+
}, children);
|
|
87
|
+
};
|
|
88
|
+
declare global {
|
|
89
|
+
namespace React {
|
|
90
|
+
namespace JSX {
|
|
91
|
+
interface IntrinsicElements {
|
|
92
|
+
'uibit-form': React.ClassAttributes<HTMLElementClass> & React.HTMLAttributes<HTMLElementClass> & {
|
|
93
|
+
children?: React.ReactNode;
|
|
94
|
+
class?: string;
|
|
95
|
+
warnUnsaved?: boolean;
|
|
96
|
+
step?: number;
|
|
97
|
+
stepsCount?: number;
|
|
98
|
+
dirty?: boolean;
|
|
99
|
+
status?: 'idle' | 'pending' | 'success' | 'error';
|
|
100
|
+
locale?: string;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -1,50 +1,93 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import '@uibit/form';
|
|
3
3
|
import type { Form as HTMLElementClass } from '@uibit/form';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
warnUnsaved =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
|
|
5
|
+
let {
|
|
6
|
+
warnUnsaved = $bindable(),
|
|
7
|
+
step = $bindable(),
|
|
8
|
+
stepsCount = $bindable(),
|
|
9
|
+
dirty = $bindable(),
|
|
10
|
+
status = $bindable(),
|
|
11
|
+
locale = $bindable(),
|
|
12
|
+
success = undefined,
|
|
13
|
+
error = undefined,
|
|
14
|
+
children,
|
|
15
|
+
...restProps
|
|
14
16
|
} = $props<{
|
|
15
|
-
children?:
|
|
17
|
+
children?: import('svelte').Snippet;
|
|
16
18
|
warnUnsaved?: boolean;
|
|
17
19
|
step?: number;
|
|
18
20
|
stepsCount?: number;
|
|
19
21
|
dirty?: boolean;
|
|
20
22
|
status?: 'idle' | 'pending' | 'success' | 'error';
|
|
23
|
+
locale?: string;
|
|
21
24
|
success?: import('svelte').Snippet;
|
|
22
25
|
error?: import('svelte').Snippet;
|
|
26
|
+
[key: string]: any;
|
|
23
27
|
}>();
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (elementRef && warnUnsaved !== undefined) {
|
|
28
|
+
|
|
29
|
+
let elementRef: HTMLElementClass | null = $state(null);
|
|
30
|
+
|
|
31
|
+
$effect(() => {
|
|
32
|
+
if (elementRef && warnUnsaved !== undefined && elementRef.warnUnsaved !== warnUnsaved) {
|
|
29
33
|
elementRef.warnUnsaved = warnUnsaved;
|
|
30
34
|
}
|
|
31
|
-
if (elementRef && step !== undefined) {
|
|
35
|
+
if (elementRef && step !== undefined && elementRef.step !== step) {
|
|
32
36
|
elementRef.step = step;
|
|
33
37
|
}
|
|
34
|
-
if (elementRef && stepsCount !== undefined) {
|
|
38
|
+
if (elementRef && stepsCount !== undefined && elementRef.stepsCount !== stepsCount) {
|
|
35
39
|
elementRef.stepsCount = stepsCount;
|
|
36
40
|
}
|
|
37
|
-
if (elementRef && dirty !== undefined) {
|
|
41
|
+
if (elementRef && dirty !== undefined && elementRef.dirty !== dirty) {
|
|
38
42
|
elementRef.dirty = dirty;
|
|
39
43
|
}
|
|
40
|
-
if (elementRef && status !== undefined) {
|
|
44
|
+
if (elementRef && status !== undefined && elementRef.status !== status) {
|
|
41
45
|
elementRef.status = status;
|
|
42
46
|
}
|
|
47
|
+
if (elementRef && locale !== undefined && elementRef.locale !== locale) {
|
|
48
|
+
elementRef.locale = locale;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
$effect(() => {
|
|
53
|
+
const element = elementRef;
|
|
54
|
+
if (!element) return;
|
|
55
|
+
|
|
56
|
+
const handleEvent = () => {
|
|
57
|
+
if (warnUnsaved !== element.warnUnsaved) {
|
|
58
|
+
warnUnsaved = element.warnUnsaved as any;
|
|
59
|
+
}
|
|
60
|
+
if (step !== element.step) {
|
|
61
|
+
step = element.step as any;
|
|
62
|
+
}
|
|
63
|
+
if (stepsCount !== element.stepsCount) {
|
|
64
|
+
stepsCount = element.stepsCount as any;
|
|
65
|
+
}
|
|
66
|
+
if (dirty !== element.dirty) {
|
|
67
|
+
dirty = element.dirty as any;
|
|
68
|
+
}
|
|
69
|
+
if (status !== element.status) {
|
|
70
|
+
status = element.status as any;
|
|
71
|
+
}
|
|
72
|
+
if (locale !== element.locale) {
|
|
73
|
+
locale = element.locale as any;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const events = ['change', 'input'];
|
|
78
|
+
for (const event of events) {
|
|
79
|
+
element.addEventListener(event, handleEvent);
|
|
80
|
+
}
|
|
81
|
+
return () => {
|
|
82
|
+
for (const event of events) {
|
|
83
|
+
element.removeEventListener(event, handleEvent);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
43
86
|
});
|
|
44
|
-
|
|
87
|
+
|
|
45
88
|
</script>
|
|
46
89
|
|
|
47
|
-
<uibit-form bind:this={elementRef} {
|
|
90
|
+
<uibit-form bind:this={elementRef} {...restProps}>
|
|
48
91
|
{#if success}
|
|
49
92
|
<div slot="success">
|
|
50
93
|
{@render success()}
|
|
@@ -1,26 +1,120 @@
|
|
|
1
|
-
import { defineComponent, h } from 'vue';
|
|
1
|
+
import { defineComponent, h, ref, watch } from 'vue';
|
|
2
2
|
import type { Form as HTMLElementClass } from '@uibit/form';
|
|
3
3
|
import '@uibit/form';
|
|
4
|
-
|
|
5
4
|
export const Form = defineComponent({
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
5
|
+
name: 'Form',
|
|
6
|
+
props: {
|
|
7
|
+
warnUnsaved: {
|
|
8
|
+
type: [
|
|
9
|
+
String,
|
|
10
|
+
Number,
|
|
11
|
+
Boolean,
|
|
12
|
+
Array,
|
|
13
|
+
Object
|
|
14
|
+
] as any
|
|
15
|
+
},
|
|
16
|
+
step: {
|
|
17
|
+
type: [
|
|
18
|
+
String,
|
|
19
|
+
Number,
|
|
20
|
+
Boolean,
|
|
21
|
+
Array,
|
|
22
|
+
Object
|
|
23
|
+
] as any
|
|
24
|
+
},
|
|
25
|
+
stepsCount: {
|
|
26
|
+
type: [
|
|
27
|
+
String,
|
|
28
|
+
Number,
|
|
29
|
+
Boolean,
|
|
30
|
+
Array,
|
|
31
|
+
Object
|
|
32
|
+
] as any
|
|
33
|
+
},
|
|
34
|
+
dirty: {
|
|
35
|
+
type: [
|
|
36
|
+
String,
|
|
37
|
+
Number,
|
|
38
|
+
Boolean,
|
|
39
|
+
Array,
|
|
40
|
+
Object
|
|
41
|
+
] as any
|
|
42
|
+
},
|
|
43
|
+
status: {
|
|
44
|
+
type: [
|
|
45
|
+
String,
|
|
46
|
+
Number,
|
|
47
|
+
Boolean,
|
|
48
|
+
Array,
|
|
49
|
+
Object
|
|
50
|
+
] as any
|
|
51
|
+
},
|
|
52
|
+
locale: {
|
|
53
|
+
type: [
|
|
54
|
+
String,
|
|
55
|
+
Number,
|
|
56
|
+
Boolean,
|
|
57
|
+
Array,
|
|
58
|
+
Object
|
|
59
|
+
] as any
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
emits: [],
|
|
63
|
+
setup (props, { slots, emit }) {
|
|
64
|
+
const elementRef = ref<HTMLElementClass | null>(null);
|
|
65
|
+
if (false) {
|
|
66
|
+
watch(()=>props.modelValue, (newVal)=>{
|
|
67
|
+
if (elementRef.value && newVal !== undefined && elementRef.value.value !== newVal) {
|
|
68
|
+
elementRef.value.value = newVal;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
watch(()=>props.value, (newVal)=>{
|
|
72
|
+
if (elementRef.value && newVal !== undefined && elementRef.value.value !== newVal) {
|
|
73
|
+
elementRef.value.value = newVal;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
watch(()=>props.warnUnsaved, (newVal)=>{
|
|
78
|
+
if (elementRef.value && newVal !== undefined) {
|
|
79
|
+
(elementRef.value as any).warnUnsaved = newVal;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
watch(()=>props.step, (newVal)=>{
|
|
83
|
+
if (elementRef.value && newVal !== undefined) {
|
|
84
|
+
(elementRef.value as any).step = newVal;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
watch(()=>props.stepsCount, (newVal)=>{
|
|
88
|
+
if (elementRef.value && newVal !== undefined) {
|
|
89
|
+
(elementRef.value as any).stepsCount = newVal;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
watch(()=>props.dirty, (newVal)=>{
|
|
93
|
+
if (elementRef.value && newVal !== undefined) {
|
|
94
|
+
(elementRef.value as any).dirty = newVal;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
watch(()=>props.status, (newVal)=>{
|
|
98
|
+
if (elementRef.value && newVal !== undefined) {
|
|
99
|
+
(elementRef.value as any).status = newVal;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
watch(()=>props.locale, (newVal)=>{
|
|
103
|
+
if (elementRef.value && newVal !== undefined) {
|
|
104
|
+
(elementRef.value as any).locale = newVal;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
return ()=>{
|
|
108
|
+
const eventListeners: Record<string, any> = {};
|
|
109
|
+
const mergedProps = {
|
|
110
|
+
...props,
|
|
111
|
+
...eventListeners,
|
|
112
|
+
ref: elementRef
|
|
113
|
+
};
|
|
114
|
+
if (false && props.modelValue !== undefined) {
|
|
115
|
+
(mergedProps as any).value = props.modelValue;
|
|
116
|
+
}
|
|
117
|
+
return h('uibit-form', mergedProps, slots.default?.());
|
|
118
|
+
};
|
|
119
|
+
}
|
|
26
120
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uibit/form",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "A composable, declarative wrapper around native HTML form elements with validation, submit lifecycle states, and wizard navigation support.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"import": "./dist/index.js"
|
|
12
12
|
},
|
|
13
13
|
"./custom-elements.json": "./custom-elements.json",
|
|
14
|
-
"./react": "./dist/frameworks/react/index.
|
|
14
|
+
"./react": "./dist/frameworks/react/index.ts",
|
|
15
15
|
"./vue": "./dist/frameworks/vue/index.ts",
|
|
16
16
|
"./svelte": "./dist/frameworks/svelte/index.svelte",
|
|
17
17
|
"./angular": "./dist/frameworks/angular/index.ts",
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
"license": "MIT",
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"lucide": "^1.24.0",
|
|
43
|
-
"@uibit/core": "0.
|
|
43
|
+
"@uibit/core": "0.2.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "^20.19.43",
|
|
47
47
|
"lit": "^3.3.3",
|
|
48
48
|
"typescript": "7.0.2",
|
|
49
|
-
"@uibit/codegen": "0.
|
|
49
|
+
"@uibit/codegen": "0.2.0"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"lit": "^3.0.0",
|
|
@@ -82,9 +82,9 @@
|
|
|
82
82
|
"directory": "packages/components/form"
|
|
83
83
|
},
|
|
84
84
|
"scripts": {
|
|
85
|
-
"build": "cem analyze --
|
|
86
|
-
"dev": "concurrently \"cem analyze --
|
|
87
|
-
"analyze": "cem analyze --
|
|
85
|
+
"build": "cem analyze --config ../custom-elements-manifest.config.js && uibit-codegen --package . && tsc",
|
|
86
|
+
"dev": "concurrently \"cem analyze --config ../custom-elements-manifest.config.js --watch\" \"tsc --watch\"",
|
|
87
|
+
"analyze": "cem analyze --config ../custom-elements-manifest.config.js",
|
|
88
88
|
"typecheck": "tsc --noEmit",
|
|
89
89
|
"test": "vitest run -c ../../../vitest.config.ts --passWithNoTests"
|
|
90
90
|
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { HTMLAttributes, ClassAttributes } from 'react';
|
|
2
|
-
import type { Form as HTMLElementClass } from '@uibit/form';
|
|
3
|
-
import '@uibit/form';
|
|
4
|
-
|
|
5
|
-
declare global {
|
|
6
|
-
namespace React {
|
|
7
|
-
namespace JSX {
|
|
8
|
-
interface IntrinsicElements {
|
|
9
|
-
'uibit-form': ClassAttributes<HTMLElementClass> & HTMLAttributes<HTMLElementClass> & {
|
|
10
|
-
children?: React.ReactNode;
|
|
11
|
-
class?: string;
|
|
12
|
-
warnUnsaved?: boolean;
|
|
13
|
-
step?: number;
|
|
14
|
-
stepsCount?: number;
|
|
15
|
-
dirty?: boolean;
|
|
16
|
-
status?: 'idle' | 'pending' | 'success' | 'error';
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|