@nordhealth/components 1.0.0-beta.14 → 1.0.0-beta.17

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 (55) hide show
  1. package/custom-elements.json +1795 -1782
  2. package/lib/Button.js +1 -1
  3. package/lib/Button.js.map +1 -1
  4. package/lib/Calendar-d2da5dc7.js +13 -0
  5. package/lib/Calendar-d2da5dc7.js.map +1 -0
  6. package/lib/Calendar.js +1 -1
  7. package/lib/Checkbox.js +1 -1
  8. package/lib/Checkbox.js.map +1 -1
  9. package/lib/CommandMenu.js +1 -1
  10. package/lib/CommandMenu.js.map +1 -1
  11. package/lib/CommandMenuAction.js +1 -1
  12. package/lib/CommandMenuAction.js.map +1 -1
  13. package/lib/DatePicker.js +1 -1
  14. package/lib/DatePicker.js.map +1 -1
  15. package/lib/DateSelectEvent.js +1 -1
  16. package/lib/DateSelectEvent.js.map +1 -1
  17. package/lib/FocusableMixin-ca9d30fa.js +2 -0
  18. package/lib/{FocusableMixin-98e13999.js.map → FocusableMixin-ca9d30fa.js.map} +1 -1
  19. package/lib/Input.js +1 -1
  20. package/lib/Input.js.map +1 -1
  21. package/lib/Layout.js +1 -1
  22. package/lib/Layout.js.map +1 -1
  23. package/lib/NavItem.js +1 -1
  24. package/lib/NavItem.js.map +1 -1
  25. package/lib/Radio.js +1 -1
  26. package/lib/Radio.js.map +1 -1
  27. package/lib/Select.js +1 -1
  28. package/lib/Select.js.map +1 -1
  29. package/lib/Spinner.js +1 -1
  30. package/lib/Spinner.js.map +1 -1
  31. package/lib/{TextField-00822066.js → TextField-d799db1a.js} +2 -2
  32. package/lib/TextField-d799db1a.js.map +1 -0
  33. package/lib/Textarea.js +1 -1
  34. package/lib/Textarea.js.map +1 -1
  35. package/lib/bundle.js +8 -8
  36. package/lib/bundle.js.map +1 -1
  37. package/lib/index.js +1 -1
  38. package/lib/number-02c91604.js +7 -0
  39. package/lib/{number-e7cd246c.js.map → number-02c91604.js.map} +1 -1
  40. package/lib/ref-82d2502a.js +17 -0
  41. package/lib/ref-82d2502a.js.map +1 -0
  42. package/lib/src/calendar/Calendar.d.ts +8 -0
  43. package/lib/src/calendar/Calendar.test.d.ts +2 -0
  44. package/lib/src/calendar/DateSelectEvent.d.ts +1 -2
  45. package/lib/src/date-picker/DatePicker.d.ts +3 -3
  46. package/package.json +5 -5
  47. package/lib/Calendar-664c2b4c.js +0 -13
  48. package/lib/Calendar-664c2b4c.js.map +0 -1
  49. package/lib/FocusableMixin-98e13999.js +0 -2
  50. package/lib/TextField-00822066.js.map +0 -1
  51. package/lib/directive-helpers-e7b6bf4b.js +0 -7
  52. package/lib/directive-helpers-e7b6bf4b.js.map +0 -1
  53. package/lib/number-e7cd246c.js +0 -7
  54. package/lib/ref-eb5cfa10.js +0 -12
  55. package/lib/ref-eb5cfa10.js.map +0 -1
@@ -490,372 +490,330 @@
490
490
  },
491
491
  {
492
492
  "kind": "javascript-module",
493
- "path": "src/button/Button.ts",
493
+ "path": "src/calendar/Calendar.ts",
494
494
  "declarations": [
495
495
  {
496
496
  "kind": "class",
497
- "description": "Buttons are used for interface actions. Primary style should be\nused only once per section for main call-to-action, while other\nstyles can appear more frequently.",
498
- "name": "Button",
499
- "slots": [
497
+ "description": "Calendar allows user to pick a date. It comes with built-in\nfunctionality that allows you to set a minimum and a maximum allowed date.\nPlease note that the date must be passed in ISO-8601 format.",
498
+ "name": "Calendar",
499
+ "members": [
500
500
  {
501
- "description": "The button content",
502
- "name": ""
501
+ "kind": "field",
502
+ "name": "dialogLabelId",
503
+ "type": {
504
+ "text": "string"
505
+ },
506
+ "privacy": "private",
507
+ "default": "\"dialog-header\""
503
508
  },
504
509
  {
505
- "description": "Used to place content before button text. Typically used for icons.",
506
- "name": "before"
510
+ "kind": "field",
511
+ "name": "monthSelectNode",
512
+ "type": {
513
+ "text": "HTMLElement"
514
+ },
515
+ "privacy": "private"
507
516
  },
508
517
  {
509
- "description": "Used to place content after button text. Typically used for icons.",
510
- "name": "after"
511
- }
512
- ],
513
- "members": [
518
+ "kind": "field",
519
+ "name": "focusedDayNode",
520
+ "type": {
521
+ "text": "HTMLButtonElement"
522
+ },
523
+ "privacy": "private"
524
+ },
514
525
  {
515
526
  "kind": "field",
516
- "name": "buttonRef",
527
+ "name": "direction",
528
+ "privacy": "private",
529
+ "default": "new DirectionController(this)"
530
+ },
531
+ {
532
+ "kind": "field",
533
+ "name": "swipe",
534
+ "privacy": "private",
535
+ "default": "new SwipeController(this, {\n matchesGesture: isHorizontalSwipe,\n onSwipeEnd: ({ distX }) => this.addMonths(distX < 0 ? 1 : -1),\n })"
536
+ },
537
+ {
538
+ "kind": "field",
539
+ "name": "shortcuts",
517
540
  "privacy": "private"
518
541
  },
519
542
  {
520
543
  "kind": "field",
521
- "name": "lightDom",
544
+ "name": "dateFormatShort",
545
+ "type": {
546
+ "text": "Intl.DateTimeFormat"
547
+ },
522
548
  "privacy": "private",
523
- "default": "new LightDomController(this, {\n render: () => this.renderLightDom(),\n })"
549
+ "description": "Whilst dateAdapter is used for handling the formatting/parsing dates in the input,\nthese are used to format dates exclusively for the benefit of screen readers.\n\nWe prefer DateTimeFormat over date.toLocaleDateString, as the former has\nbetter performance when formatting large number of dates. See:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString#Performance"
524
550
  },
525
551
  {
526
552
  "kind": "field",
527
- "name": "variant",
553
+ "name": "localization",
528
554
  "type": {
529
- "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
555
+ "text": "CalendarLocalizedText"
530
556
  },
531
- "default": "\"default\"",
532
- "description": "The style variant of the button.",
533
- "attribute": "variant",
534
- "reflects": true
557
+ "default": "localization"
535
558
  },
536
559
  {
537
560
  "kind": "field",
538
- "name": "type",
561
+ "name": "value",
539
562
  "type": {
540
- "text": "\"button\" | \"submit\" | \"reset\""
563
+ "text": "string"
541
564
  },
542
- "default": "\"submit\"",
543
- "description": "The type of the button.",
544
- "attribute": "type",
545
- "reflects": true
565
+ "default": "\"\"",
566
+ "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
567
+ "attribute": "value"
546
568
  },
547
569
  {
548
570
  "kind": "field",
549
- "name": "size",
571
+ "name": "firstDayOfWeek",
550
572
  "type": {
551
- "text": "\"s\" | \"m\" | \"l\""
573
+ "text": "DaysOfWeek"
552
574
  },
553
- "default": "\"m\"",
554
- "description": "The size of the button.\nThis affects font-size and padding.",
555
- "attribute": "size",
556
- "reflects": true
575
+ "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
576
+ "attribute": "firstDayOfWeek"
557
577
  },
558
578
  {
559
579
  "kind": "field",
560
- "name": "href",
580
+ "name": "min",
561
581
  "type": {
562
- "text": "string | undefined"
582
+ "text": "string"
563
583
  },
564
- "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
565
- "attribute": "href",
566
- "reflects": true
584
+ "default": "\"\"",
585
+ "description": "Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the max property.",
586
+ "attribute": "min"
567
587
  },
568
588
  {
569
589
  "kind": "field",
570
- "name": "download",
590
+ "name": "max",
571
591
  "type": {
572
- "text": "boolean"
592
+ "text": "string"
573
593
  },
574
- "default": "false",
575
- "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
576
- "attribute": "download"
594
+ "default": "\"\"",
595
+ "description": "Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the min property.",
596
+ "attribute": "max"
577
597
  },
578
598
  {
579
599
  "kind": "field",
580
- "name": "target",
600
+ "name": "isDateDisabled",
581
601
  "type": {
582
- "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
602
+ "text": "DateDisabledPredicate"
583
603
  },
584
- "default": "\"_self\"",
585
- "description": "When provided together with a href property, determines where\nto open the linked URL. The keywords have special meanings for\nwhere to load the URL: “_self” means the current browsing context,\n“_blank” usually a new tab but users can configure browsers this to\nopen a new window instead, “_parent” means the parent browsing\ncontext of the current one, but if no parent exists, behaves as\n_self, and finally “top” means the topmost browsing context.",
586
- "attribute": "target",
587
- "reflects": true
604
+ "default": "isDateDisabled",
605
+ "description": "Controls which days are disabled and therefore disallowed.\nFor example, this can be used to disallow selection of weekends."
588
606
  },
589
607
  {
590
608
  "kind": "field",
591
- "name": "expand",
609
+ "name": "activeFocus",
592
610
  "type": {
593
611
  "text": "boolean"
594
612
  },
595
- "default": "false",
596
- "description": "Controls whether the button expands to fill the width of its container.",
597
- "attribute": "expand",
598
- "reflects": true
613
+ "privacy": "private",
614
+ "default": "false"
615
+ },
616
+ {
617
+ "kind": "field",
618
+ "name": "focusedDay",
619
+ "privacy": "private",
620
+ "default": "new Date()"
599
621
  },
600
622
  {
601
623
  "kind": "method",
602
- "name": "renderLink",
624
+ "name": "focus",
625
+ "parameters": [
626
+ {
627
+ "name": "options",
628
+ "optional": true,
629
+ "type": {
630
+ "text": "FocusOptions & { target: \"day\" | \"month\" }"
631
+ },
632
+ "description": "An object which controls aspects of the focusing process."
633
+ }
634
+ ],
635
+ "description": "Programmatically move focus to the calendar."
636
+ },
637
+ {
638
+ "kind": "method",
639
+ "name": "createDateFormatter",
640
+ "privacy": "private"
641
+ },
642
+ {
643
+ "kind": "field",
644
+ "name": "handleDaySelect",
645
+ "privacy": "private"
646
+ },
647
+ {
648
+ "kind": "method",
649
+ "name": "addDays",
603
650
  "privacy": "private",
604
651
  "parameters": [
605
652
  {
606
- "name": "innards",
653
+ "name": "days",
607
654
  "type": {
608
- "text": "TemplateResult"
655
+ "text": "number"
609
656
  }
610
657
  }
611
- ],
612
- "description": "We jump through some hoops here to ensure the link is treated correctly when \"disabled\".\nLinks cannot be disabled natively, so we need to rely on some aria magic to get the correct semantics.\nAlong with the advice in the article below, we also set tabindex to \"-1\", so it is taken out of tab order."
658
+ ]
613
659
  },
614
660
  {
615
661
  "kind": "method",
616
- "name": "renderButton",
662
+ "name": "addMonths",
617
663
  "privacy": "private",
618
664
  "parameters": [
619
665
  {
620
- "name": "innards",
666
+ "name": "months",
621
667
  "type": {
622
- "text": "TemplateResult"
668
+ "text": "number"
623
669
  }
624
670
  }
625
671
  ]
626
672
  },
627
673
  {
628
674
  "kind": "method",
629
- "name": "renderLightDom",
675
+ "name": "addYears",
676
+ "privacy": "private",
677
+ "parameters": [
678
+ {
679
+ "name": "years",
680
+ "type": {
681
+ "text": "number"
682
+ }
683
+ }
684
+ ]
685
+ },
686
+ {
687
+ "kind": "method",
688
+ "name": "startOfWeek",
630
689
  "privacy": "private"
631
690
  },
632
691
  {
633
- "kind": "field",
634
- "name": "handleOuterClick",
692
+ "kind": "method",
693
+ "name": "endOfWeek",
635
694
  "privacy": "private"
636
695
  },
637
696
  {
638
697
  "kind": "method",
639
- "name": "handleClick",
698
+ "name": "setMonth",
640
699
  "privacy": "private",
641
700
  "parameters": [
642
701
  {
643
- "name": "e",
702
+ "name": "month",
644
703
  "type": {
645
- "text": "Event"
704
+ "text": "number"
646
705
  }
647
706
  }
648
707
  ]
649
708
  },
650
709
  {
651
- "kind": "field",
652
- "name": "disabled",
653
- "type": {
654
- "text": "boolean"
655
- },
656
- "default": "false",
657
- "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
658
- "attribute": "disabled",
659
- "reflects": true,
660
- "inheritedFrom": {
661
- "name": "InputMixin",
662
- "module": "src/common/mixins/InputMixin.ts"
663
- }
710
+ "kind": "method",
711
+ "name": "setYear",
712
+ "privacy": "private",
713
+ "parameters": [
714
+ {
715
+ "name": "year",
716
+ "type": {
717
+ "text": "number"
718
+ }
719
+ }
720
+ ]
664
721
  },
665
722
  {
666
- "kind": "field",
667
- "name": "name",
668
- "type": {
669
- "text": "string | undefined"
670
- },
671
- "description": "The name of the form component.",
672
- "attribute": "name",
673
- "inheritedFrom": {
674
- "name": "InputMixin",
675
- "module": "src/common/mixins/InputMixin.ts"
676
- }
723
+ "kind": "method",
724
+ "name": "setFocusedDay",
725
+ "privacy": "private",
726
+ "parameters": [
727
+ {
728
+ "name": "day",
729
+ "type": {
730
+ "text": "Date"
731
+ }
732
+ }
733
+ ]
677
734
  },
678
735
  {
679
736
  "kind": "field",
680
- "name": "value",
681
- "type": {
682
- "text": "string"
683
- },
684
- "default": "\"\"",
685
- "description": "The value of the form component.",
686
- "attribute": "value",
687
- "inheritedFrom": {
688
- "name": "InputMixin",
689
- "module": "src/common/mixins/InputMixin.ts"
690
- }
737
+ "name": "handleMonthSelect",
738
+ "privacy": "private"
691
739
  },
692
740
  {
693
741
  "kind": "field",
694
- "name": "form",
695
- "privacy": "protected",
696
- "description": "Gets the form, if any, associated with the form element.",
697
- "inheritedFrom": {
698
- "name": "InputMixin",
699
- "module": "src/common/mixins/InputMixin.ts"
700
- }
742
+ "name": "handleYearSelect",
743
+ "privacy": "private"
701
744
  },
702
745
  {
703
746
  "kind": "field",
704
- "name": "focusableRef",
705
- "privacy": "protected",
706
- "inheritedFrom": {
707
- "name": "FocusableMixin",
708
- "module": "src/common/mixins/FocusableMixin.ts"
709
- }
747
+ "name": "handleNextMonthClick",
748
+ "privacy": "private"
710
749
  },
711
750
  {
712
- "kind": "method",
713
- "name": "focus",
714
- "parameters": [
715
- {
716
- "name": "options",
717
- "optional": true,
718
- "type": {
719
- "text": "FocusOptions"
720
- },
721
- "description": "An object which controls aspects of the focusing process."
722
- }
723
- ],
724
- "description": "Programmatically move focus to the component.",
725
- "inheritedFrom": {
726
- "name": "FocusableMixin",
727
- "module": "src/common/mixins/FocusableMixin.ts"
728
- }
751
+ "kind": "field",
752
+ "name": "handlePreviousMonthClick",
753
+ "privacy": "private"
729
754
  },
730
755
  {
731
- "kind": "method",
732
- "name": "blur",
733
- "description": "Programmatically remove focus from the component.",
734
- "inheritedFrom": {
735
- "name": "FocusableMixin",
736
- "module": "src/common/mixins/FocusableMixin.ts"
737
- }
756
+ "kind": "field",
757
+ "name": "enableActiveFocus",
758
+ "privacy": "private"
738
759
  },
739
760
  {
740
- "kind": "method",
741
- "name": "click",
742
- "description": "Programmatically simulates a click on the component.",
743
- "inheritedFrom": {
744
- "name": "FocusableMixin",
745
- "module": "src/common/mixins/FocusableMixin.ts"
746
- }
761
+ "kind": "field",
762
+ "name": "disableActiveFocus",
763
+ "privacy": "private"
747
764
  }
748
765
  ],
749
- "attributes": [
750
- {
751
- "name": "variant",
752
- "type": {
753
- "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
754
- },
755
- "default": "\"default\"",
756
- "description": "The style variant of the button.",
757
- "fieldName": "variant"
758
- },
759
- {
760
- "name": "type",
761
- "type": {
762
- "text": "\"button\" | \"submit\" | \"reset\""
763
- },
764
- "default": "\"submit\"",
765
- "description": "The type of the button.",
766
- "fieldName": "type"
767
- },
768
- {
769
- "name": "size",
770
- "type": {
771
- "text": "\"s\" | \"m\" | \"l\""
772
- },
773
- "default": "\"m\"",
774
- "description": "The size of the button.\nThis affects font-size and padding.",
775
- "fieldName": "size"
776
- },
777
- {
778
- "name": "href",
779
- "type": {
780
- "text": "string | undefined"
781
- },
782
- "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
783
- "fieldName": "href"
784
- },
766
+ "events": [
785
767
  {
786
- "name": "download",
768
+ "name": "nord-focus-date",
787
769
  "type": {
788
- "text": "boolean"
770
+ "text": "DateSelectEvent"
789
771
  },
790
- "default": "false",
791
- "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
792
- "fieldName": "download"
772
+ "description": "Dispatched when the calendar's focused date changes."
793
773
  },
794
774
  {
795
- "name": "target",
796
775
  "type": {
797
- "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
776
+ "text": "DateSelectEvent"
798
777
  },
799
- "default": "\"_self\"",
800
- "description": "When provided together with a href property, determines where\nto open the linked URL. The keywords have special meanings for\nwhere to load the URL: “_self” means the current browsing context,\n“_blank” usually a new tab but users can configure browsers this to\nopen a new window instead, “_parent” means the parent browsing\ncontext of the current one, but if no parent exists, behaves as\n_self, and finally “top” means the topmost browsing context.",
801
- "fieldName": "target"
802
- },
778
+ "description": "Dispatched when a date is selected and the value changes.",
779
+ "name": "change"
780
+ }
781
+ ],
782
+ "attributes": [
803
783
  {
804
- "name": "expand",
784
+ "name": "value",
805
785
  "type": {
806
- "text": "boolean"
786
+ "text": "string"
807
787
  },
808
- "default": "false",
809
- "description": "Controls whether the button expands to fill the width of its container.",
810
- "fieldName": "expand"
788
+ "default": "\"\"",
789
+ "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
790
+ "fieldName": "value"
811
791
  },
812
792
  {
813
- "name": "disabled",
793
+ "name": "firstDayOfWeek",
814
794
  "type": {
815
- "text": "boolean"
795
+ "text": "DaysOfWeek"
816
796
  },
817
- "default": "false",
818
- "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
819
- "fieldName": "disabled",
820
- "inheritedFrom": {
821
- "name": "InputMixin",
822
- "module": "src/common/mixins/InputMixin.ts"
823
- }
797
+ "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
798
+ "fieldName": "firstDayOfWeek"
824
799
  },
825
800
  {
826
- "name": "name",
801
+ "name": "min",
827
802
  "type": {
828
- "text": "string | undefined"
803
+ "text": "string"
829
804
  },
830
- "description": "The name of the form component.",
831
- "fieldName": "name",
832
- "inheritedFrom": {
833
- "name": "InputMixin",
834
- "module": "src/common/mixins/InputMixin.ts"
835
- }
805
+ "default": "\"\"",
806
+ "description": "Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the max property.",
807
+ "fieldName": "min"
836
808
  },
837
809
  {
838
- "name": "value",
810
+ "name": "max",
839
811
  "type": {
840
812
  "text": "string"
841
813
  },
842
814
  "default": "\"\"",
843
- "description": "The value of the form component.",
844
- "fieldName": "value",
845
- "inheritedFrom": {
846
- "name": "InputMixin",
847
- "module": "src/common/mixins/InputMixin.ts"
848
- }
849
- }
850
- ],
851
- "mixins": [
852
- {
853
- "name": "InputMixin",
854
- "module": "/src/common/mixins/InputMixin.js"
855
- },
856
- {
857
- "name": "FocusableMixin",
858
- "module": "/src/common/mixins/FocusableMixin.js"
815
+ "description": "Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the min property.",
816
+ "fieldName": "max"
859
817
  }
860
818
  ],
861
819
  "superclass": {
@@ -863,8 +821,8 @@
863
821
  "package": "lit"
864
822
  },
865
823
  "status": "ready",
866
- "category": "action",
867
- "tagName": "nord-button",
824
+ "category": "list",
825
+ "tagName": "nord-calendar",
868
826
  "customElement": true
869
827
  }
870
828
  ],
@@ -873,329 +831,499 @@
873
831
  "kind": "js",
874
832
  "name": "default",
875
833
  "declaration": {
876
- "name": "Button",
877
- "module": "src/button/Button.ts"
834
+ "name": "Calendar",
835
+ "module": "src/calendar/Calendar.ts"
878
836
  }
879
837
  },
880
838
  {
881
839
  "kind": "custom-element-definition",
882
- "name": "nord-button",
840
+ "name": "nord-calendar",
883
841
  "declaration": {
884
- "name": "Button",
885
- "module": "src/button/Button.ts"
842
+ "name": "Calendar",
843
+ "module": "src/calendar/Calendar.ts"
886
844
  }
887
845
  }
888
846
  ],
889
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use clear and accurate labels.\n- Use established button colors appropriately. For example, only use a danger button style for an action that’s difficult or impossible to undo.\n- Prioritize the most important actions. Too many buttons will cause confusion.\n- Be consistent with positioning of buttons in the user interface.\n- Use strong, actionable verbs in labels such as “Add”, “Close”, “Cancel”, or “Save”.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use buttons to link to other pages. Use regular link or a plain style instead where necessary.\n- Don’t use buttons for navigation where the link appears within or following a sentence.\n- Don’t use labels such as “Read more”, “Click here” or “More”.\n\n</div>\n\n---\n\n## Content guidelines\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">View user settings</div>\n<div class=\"n-usage n-usage-dont\">Click here</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in button labels, such as the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Add item</div>\n<div class=\"n-usage n-usage-dont\">Add an item</div>\n\n---\n\n## Variants\n\nThis section describes the different component variants, their purpose, and when to use each variant.\n\n| Name | Purpose |\n| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `default` | Default style is the most common button variant. Only switch to another variant if you need to adjust the visual weight of the element. |\n| `primary` | Primary style is reserved for main call-to-actions. Should be used only once per content area or panel, e.g. for a “Save” action. |\n| `dashed` | Dashed style should be used for actions that trigger filtering. |\n| `danger` | Danger style should be used for actions that delete data or otherwise make it hard to undo the action. |\n| `plain` | Used for less important or less common actions. Can be also used for linking to other pages. |\n| `disabled` | Used for actions that aren’t currently available or not available anymore. Also prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies. |\n\n---\n\n## Additional considerations\n\n- Users of assistive technology expect a button to submit data or do an action. If you need the button to navigate into another view, use the `href` property which will output `<a>` tag instead of a `<button>`.\n- When you need to disable a button, use `disabled` property as it conveys this information correctly to assistive technologies like screen readers.\n- Button component provides 3 size variants; small, medium and large. The large size should only be used for marketing purposes or on areas such as an empty space/content notice.\n"
847
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n- Close calendar after a single date is selected, unless a range with a start and end date is required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use for choosing a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nCalendar component is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Calendar grid\n\n- `Space, Enter`: Selects a date.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n"
890
848
  },
891
849
  {
892
850
  "kind": "javascript-module",
893
- "path": "src/calendar/Calendar.ts",
851
+ "path": "src/calendar/DateSelectEvent.ts",
894
852
  "declarations": [
895
853
  {
896
854
  "kind": "class",
897
- "description": "Calendar allows user to pick a date. It comes with built-in\nfunctionality that allows you to set a minimum and a maximum allowed date.\nPlease note that the date must be passed in ISO-8601 format.",
898
- "name": "Calendar",
855
+ "description": "",
856
+ "name": "DateSelectEvent",
899
857
  "members": [
900
858
  {
901
859
  "kind": "field",
902
- "name": "dialogLabelId",
860
+ "name": "date",
903
861
  "type": {
904
- "text": "string"
862
+ "text": "Date"
905
863
  },
906
- "privacy": "private",
907
- "default": "\"dialog-header\""
908
- },
864
+ "default": "date"
865
+ }
866
+ ],
867
+ "superclass": {
868
+ "name": "NordEvent",
869
+ "module": "/src/common/events.js"
870
+ }
871
+ }
872
+ ],
873
+ "exports": [
874
+ {
875
+ "kind": "js",
876
+ "name": "DateSelectEvent",
877
+ "declaration": {
878
+ "name": "DateSelectEvent",
879
+ "module": "src/calendar/DateSelectEvent.ts"
880
+ }
881
+ }
882
+ ],
883
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n- Close calendar after a single date is selected, unless a range with a start and end date is required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use for choosing a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nCalendar component is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Calendar grid\n\n- `Space, Enter`: Selects a date.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n"
884
+ },
885
+ {
886
+ "kind": "javascript-module",
887
+ "path": "src/calendar/calendar-localization.ts",
888
+ "declarations": [
889
+ {
890
+ "kind": "variable",
891
+ "name": "localization",
892
+ "type": {
893
+ "text": "CalendarLocalizedText"
894
+ },
895
+ "default": "{\n prevMonthLabel: \"Previous month\",\n nextMonthLabel: \"Next month\",\n monthSelectLabel: \"Month\",\n yearSelectLabel: \"Year\",\n calendarHeading: \"Choose a date\",\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n monthNames: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n locale: \"en-GB\",\n}"
896
+ }
897
+ ],
898
+ "exports": [
899
+ {
900
+ "kind": "js",
901
+ "name": "default",
902
+ "declaration": {
903
+ "name": "localization",
904
+ "module": "src/calendar/calendar-localization.ts"
905
+ }
906
+ }
907
+ ],
908
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n- Close calendar after a single date is selected, unless a range with a start and end date is required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use for choosing a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nCalendar component is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Calendar grid\n\n- `Space, Enter`: Selects a date.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n"
909
+ },
910
+ {
911
+ "kind": "javascript-module",
912
+ "path": "src/calendar/month-view.ts",
913
+ "declarations": [
914
+ {
915
+ "kind": "function",
916
+ "name": "dayView",
917
+ "parameters": [
909
918
  {
910
- "kind": "field",
911
- "name": "monthSelectNode",
919
+ "name": "{\n focusedDay,\n today,\n day,\n onDaySelect,\n onKeyboardNavigation,\n disabled,\n inRange,\n isSelected,\n dateFormatter,\n}",
912
920
  "type": {
913
- "text": "HTMLElement"
914
- },
915
- "privacy": "private"
916
- },
917
- {
918
- "kind": "field",
919
- "name": "focusedDayNode",
921
+ "text": "DatePickerDayProps"
922
+ }
923
+ }
924
+ ]
925
+ },
926
+ {
927
+ "kind": "function",
928
+ "name": "monthView",
929
+ "parameters": [
930
+ {
931
+ "name": "{\n onFocusIn,\n onFocusOut,\n selectedDate,\n focusedDate,\n labelledById,\n localization,\n firstDayOfWeek,\n min,\n max,\n dateFormatter,\n isDateDisabled,\n onDateSelect,\n onKeyboardNavigation,\n}",
920
932
  "type": {
921
- "text": "HTMLButtonElement"
922
- },
923
- "privacy": "private"
924
- },
933
+ "text": "MonthViewArgs"
934
+ }
935
+ }
936
+ ]
937
+ }
938
+ ],
939
+ "exports": [
940
+ {
941
+ "kind": "js",
942
+ "name": "dayView",
943
+ "declaration": {
944
+ "name": "dayView",
945
+ "module": "src/calendar/month-view.ts"
946
+ }
947
+ },
948
+ {
949
+ "kind": "js",
950
+ "name": "monthView",
951
+ "declaration": {
952
+ "name": "monthView",
953
+ "module": "src/calendar/month-view.ts"
954
+ }
955
+ }
956
+ ],
957
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n- Close calendar after a single date is selected, unless a range with a start and end date is required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use for choosing a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nCalendar component is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Calendar grid\n\n- `Space, Enter`: Selects a date.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n"
958
+ },
959
+ {
960
+ "kind": "javascript-module",
961
+ "path": "src/button/Button.ts",
962
+ "declarations": [
963
+ {
964
+ "kind": "class",
965
+ "description": "Buttons are used for interface actions. Primary style should be\nused only once per section for main call-to-action, while other\nstyles can appear more frequently.",
966
+ "name": "Button",
967
+ "slots": [
925
968
  {
926
- "kind": "field",
927
- "name": "direction",
928
- "privacy": "private",
929
- "default": "new DirectionController(this)"
969
+ "description": "The button content",
970
+ "name": ""
930
971
  },
931
972
  {
932
- "kind": "field",
933
- "name": "swipe",
934
- "privacy": "private",
935
- "default": "new SwipeController(this, {\n matchesGesture: isHorizontalSwipe,\n onSwipeEnd: ({ distX }) => this.addMonths(distX < 0 ? 1 : -1),\n })"
973
+ "description": "Used to place content before button text. Typically used for icons.",
974
+ "name": "before"
936
975
  },
976
+ {
977
+ "description": "Used to place content after button text. Typically used for icons.",
978
+ "name": "after"
979
+ }
980
+ ],
981
+ "members": [
937
982
  {
938
983
  "kind": "field",
939
- "name": "shortcuts",
984
+ "name": "buttonRef",
940
985
  "privacy": "private"
941
986
  },
942
987
  {
943
988
  "kind": "field",
944
- "name": "dateFormatShort",
945
- "type": {
946
- "text": "Intl.DateTimeFormat"
947
- },
989
+ "name": "lightDom",
948
990
  "privacy": "private",
949
- "description": "Whilst dateAdapter is used for handling the formatting/parsing dates in the input,\nthese are used to format dates exclusively for the benefit of screen readers.\n\nWe prefer DateTimeFormat over date.toLocaleDateString, as the former has\nbetter performance when formatting large number of dates. See:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString#Performance"
991
+ "default": "new LightDomController(this, {\n render: () => this.renderLightDom(),\n })"
950
992
  },
951
993
  {
952
994
  "kind": "field",
953
- "name": "localization",
995
+ "name": "variant",
954
996
  "type": {
955
- "text": "CalendarLocalizedText"
997
+ "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
956
998
  },
957
- "default": "localization"
999
+ "default": "\"default\"",
1000
+ "description": "The style variant of the button.",
1001
+ "attribute": "variant",
1002
+ "reflects": true
958
1003
  },
959
1004
  {
960
1005
  "kind": "field",
961
- "name": "value",
1006
+ "name": "type",
962
1007
  "type": {
963
- "text": "string"
1008
+ "text": "\"button\" | \"submit\" | \"reset\""
964
1009
  },
965
- "default": "\"\"",
966
- "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
967
- "attribute": "value"
1010
+ "default": "\"submit\"",
1011
+ "description": "The type of the button.",
1012
+ "attribute": "type",
1013
+ "reflects": true
968
1014
  },
969
1015
  {
970
1016
  "kind": "field",
971
- "name": "firstDayOfWeek",
1017
+ "name": "size",
972
1018
  "type": {
973
- "text": "DaysOfWeek"
1019
+ "text": "\"s\" | \"m\" | \"l\""
974
1020
  },
975
- "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
976
- "attribute": "firstDayOfWeek"
1021
+ "default": "\"m\"",
1022
+ "description": "The size of the button.\nThis affects font-size and padding.",
1023
+ "attribute": "size",
1024
+ "reflects": true
977
1025
  },
978
1026
  {
979
1027
  "kind": "field",
980
- "name": "min",
1028
+ "name": "href",
981
1029
  "type": {
982
- "text": "string"
1030
+ "text": "string | undefined"
983
1031
  },
984
- "default": "\"\"",
985
- "description": "Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the max property.",
986
- "attribute": "min"
1032
+ "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
1033
+ "attribute": "href",
1034
+ "reflects": true
987
1035
  },
988
1036
  {
989
1037
  "kind": "field",
990
- "name": "max",
1038
+ "name": "download",
991
1039
  "type": {
992
- "text": "string"
1040
+ "text": "boolean"
993
1041
  },
994
- "default": "\"\"",
995
- "description": "Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the min property.",
996
- "attribute": "max"
1042
+ "default": "false",
1043
+ "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
1044
+ "attribute": "download"
997
1045
  },
998
1046
  {
999
1047
  "kind": "field",
1000
- "name": "isDateDisabled",
1048
+ "name": "target",
1001
1049
  "type": {
1002
- "text": "DateDisabledPredicate"
1050
+ "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
1003
1051
  },
1004
- "default": "isDateDisabled",
1005
- "description": "Controls which days are disabled and therefore disallowed.\nFor example, this can be used to disallow selection of weekends."
1052
+ "default": "\"_self\"",
1053
+ "description": "When provided together with a href property, determines where\nto open the linked URL. The keywords have special meanings for\nwhere to load the URL: “_self” means the current browsing context,\n“_blank” usually a new tab but users can configure browsers this to\nopen a new window instead, “_parent” means the parent browsing\ncontext of the current one, but if no parent exists, behaves as\n_self, and finally “top” means the topmost browsing context.",
1054
+ "attribute": "target",
1055
+ "reflects": true
1006
1056
  },
1007
1057
  {
1008
1058
  "kind": "field",
1009
- "name": "activeFocus",
1059
+ "name": "expand",
1010
1060
  "type": {
1011
1061
  "text": "boolean"
1012
1062
  },
1013
- "privacy": "private",
1014
- "default": "false"
1015
- },
1016
- {
1017
- "kind": "field",
1018
- "name": "focusedDay",
1019
- "privacy": "private",
1020
- "default": "new Date()"
1021
- },
1022
- {
1023
- "kind": "method",
1024
- "name": "focus",
1025
- "parameters": [
1026
- {
1027
- "name": "options",
1028
- "optional": true,
1029
- "type": {
1030
- "text": "FocusOptions & { target: \"day\" | \"month\" }"
1031
- }
1032
- }
1033
- ]
1034
- },
1035
- {
1036
- "kind": "method",
1037
- "name": "createDateFormatter",
1038
- "privacy": "private"
1039
- },
1040
- {
1041
- "kind": "field",
1042
- "name": "handleDaySelect",
1043
- "privacy": "private"
1044
- },
1045
- {
1046
- "kind": "method",
1047
- "name": "addDays",
1048
- "privacy": "private",
1049
- "parameters": [
1050
- {
1051
- "name": "days",
1052
- "type": {
1053
- "text": "number"
1054
- }
1055
- }
1056
- ]
1063
+ "default": "false",
1064
+ "description": "Controls whether the button expands to fill the width of its container.",
1065
+ "attribute": "expand",
1066
+ "reflects": true
1057
1067
  },
1058
1068
  {
1059
1069
  "kind": "method",
1060
- "name": "addMonths",
1070
+ "name": "renderLink",
1061
1071
  "privacy": "private",
1062
1072
  "parameters": [
1063
1073
  {
1064
- "name": "months",
1074
+ "name": "innards",
1065
1075
  "type": {
1066
- "text": "number"
1076
+ "text": "TemplateResult"
1067
1077
  }
1068
1078
  }
1069
- ]
1079
+ ],
1080
+ "description": "We jump through some hoops here to ensure the link is treated correctly when \"disabled\".\nLinks cannot be disabled natively, so we need to rely on some aria magic to get the correct semantics.\nAlong with the advice in the article below, we also set tabindex to \"-1\", so it is taken out of tab order."
1070
1081
  },
1071
1082
  {
1072
1083
  "kind": "method",
1073
- "name": "addYears",
1084
+ "name": "renderButton",
1074
1085
  "privacy": "private",
1075
1086
  "parameters": [
1076
1087
  {
1077
- "name": "years",
1088
+ "name": "innards",
1078
1089
  "type": {
1079
- "text": "number"
1090
+ "text": "TemplateResult"
1080
1091
  }
1081
1092
  }
1082
1093
  ]
1083
1094
  },
1084
1095
  {
1085
1096
  "kind": "method",
1086
- "name": "startOfWeek",
1097
+ "name": "renderLightDom",
1087
1098
  "privacy": "private"
1088
1099
  },
1089
1100
  {
1090
- "kind": "method",
1091
- "name": "endOfWeek",
1101
+ "kind": "field",
1102
+ "name": "handleOuterClick",
1092
1103
  "privacy": "private"
1093
1104
  },
1094
1105
  {
1095
1106
  "kind": "method",
1096
- "name": "setMonth",
1097
- "privacy": "private",
1098
- "parameters": [
1099
- {
1100
- "name": "month",
1101
- "type": {
1102
- "text": "number"
1103
- }
1104
- }
1105
- ]
1106
- },
1107
- {
1108
- "kind": "method",
1109
- "name": "setYear",
1110
- "privacy": "private",
1111
- "parameters": [
1112
- {
1113
- "name": "year",
1114
- "type": {
1115
- "text": "number"
1116
- }
1117
- }
1118
- ]
1119
- },
1120
- {
1121
- "kind": "method",
1122
- "name": "setFocusedDay",
1107
+ "name": "handleClick",
1123
1108
  "privacy": "private",
1124
1109
  "parameters": [
1125
1110
  {
1126
- "name": "day",
1111
+ "name": "e",
1127
1112
  "type": {
1128
- "text": "Date"
1113
+ "text": "Event"
1129
1114
  }
1130
1115
  }
1131
1116
  ]
1132
1117
  },
1133
1118
  {
1134
1119
  "kind": "field",
1135
- "name": "handleMonthSelect",
1136
- "privacy": "private"
1120
+ "name": "disabled",
1121
+ "type": {
1122
+ "text": "boolean"
1123
+ },
1124
+ "default": "false",
1125
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
1126
+ "attribute": "disabled",
1127
+ "reflects": true,
1128
+ "inheritedFrom": {
1129
+ "name": "InputMixin",
1130
+ "module": "src/common/mixins/InputMixin.ts"
1131
+ }
1137
1132
  },
1138
1133
  {
1139
1134
  "kind": "field",
1140
- "name": "handleYearSelect",
1141
- "privacy": "private"
1135
+ "name": "name",
1136
+ "type": {
1137
+ "text": "string | undefined"
1138
+ },
1139
+ "description": "The name of the form component.",
1140
+ "attribute": "name",
1141
+ "inheritedFrom": {
1142
+ "name": "InputMixin",
1143
+ "module": "src/common/mixins/InputMixin.ts"
1144
+ }
1142
1145
  },
1143
1146
  {
1144
1147
  "kind": "field",
1145
- "name": "handleNextMonthClick",
1146
- "privacy": "private"
1148
+ "name": "value",
1149
+ "type": {
1150
+ "text": "string"
1151
+ },
1152
+ "default": "\"\"",
1153
+ "description": "The value of the form component.",
1154
+ "attribute": "value",
1155
+ "inheritedFrom": {
1156
+ "name": "InputMixin",
1157
+ "module": "src/common/mixins/InputMixin.ts"
1158
+ }
1147
1159
  },
1148
1160
  {
1149
1161
  "kind": "field",
1150
- "name": "handlePreviousMonthClick",
1151
- "privacy": "private"
1162
+ "name": "form",
1163
+ "privacy": "protected",
1164
+ "description": "Gets the form, if any, associated with the form element.",
1165
+ "inheritedFrom": {
1166
+ "name": "InputMixin",
1167
+ "module": "src/common/mixins/InputMixin.ts"
1168
+ }
1152
1169
  },
1153
1170
  {
1154
1171
  "kind": "field",
1155
- "name": "enableActiveFocus",
1156
- "privacy": "private"
1172
+ "name": "focusableRef",
1173
+ "privacy": "protected",
1174
+ "inheritedFrom": {
1175
+ "name": "FocusableMixin",
1176
+ "module": "src/common/mixins/FocusableMixin.ts"
1177
+ }
1157
1178
  },
1158
1179
  {
1159
- "kind": "field",
1160
- "name": "disableActiveFocus",
1161
- "privacy": "private"
1180
+ "kind": "method",
1181
+ "name": "focus",
1182
+ "parameters": [
1183
+ {
1184
+ "name": "options",
1185
+ "optional": true,
1186
+ "type": {
1187
+ "text": "FocusOptions"
1188
+ },
1189
+ "description": "An object which controls aspects of the focusing process."
1190
+ }
1191
+ ],
1192
+ "description": "Programmatically move focus to the component.",
1193
+ "inheritedFrom": {
1194
+ "name": "FocusableMixin",
1195
+ "module": "src/common/mixins/FocusableMixin.ts"
1196
+ }
1197
+ },
1198
+ {
1199
+ "kind": "method",
1200
+ "name": "blur",
1201
+ "description": "Programmatically remove focus from the component.",
1202
+ "inheritedFrom": {
1203
+ "name": "FocusableMixin",
1204
+ "module": "src/common/mixins/FocusableMixin.ts"
1205
+ }
1206
+ },
1207
+ {
1208
+ "kind": "method",
1209
+ "name": "click",
1210
+ "description": "Programmatically simulates a click on the component.",
1211
+ "inheritedFrom": {
1212
+ "name": "FocusableMixin",
1213
+ "module": "src/common/mixins/FocusableMixin.ts"
1214
+ }
1162
1215
  }
1163
1216
  ],
1164
1217
  "attributes": [
1165
1218
  {
1166
- "name": "value",
1219
+ "name": "variant",
1167
1220
  "type": {
1168
- "text": "string"
1221
+ "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
1169
1222
  },
1170
- "default": "\"\"",
1171
- "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
1172
- "fieldName": "value"
1223
+ "default": "\"default\"",
1224
+ "description": "The style variant of the button.",
1225
+ "fieldName": "variant"
1173
1226
  },
1174
1227
  {
1175
- "name": "firstDayOfWeek",
1228
+ "name": "type",
1176
1229
  "type": {
1177
- "text": "DaysOfWeek"
1230
+ "text": "\"button\" | \"submit\" | \"reset\""
1178
1231
  },
1179
- "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
1180
- "fieldName": "firstDayOfWeek"
1232
+ "default": "\"submit\"",
1233
+ "description": "The type of the button.",
1234
+ "fieldName": "type"
1181
1235
  },
1182
1236
  {
1183
- "name": "min",
1237
+ "name": "size",
1184
1238
  "type": {
1185
- "text": "string"
1239
+ "text": "\"s\" | \"m\" | \"l\""
1186
1240
  },
1187
- "default": "\"\"",
1188
- "description": "Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the max property.",
1189
- "fieldName": "min"
1241
+ "default": "\"m\"",
1242
+ "description": "The size of the button.\nThis affects font-size and padding.",
1243
+ "fieldName": "size"
1190
1244
  },
1191
1245
  {
1192
- "name": "max",
1246
+ "name": "href",
1247
+ "type": {
1248
+ "text": "string | undefined"
1249
+ },
1250
+ "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
1251
+ "fieldName": "href"
1252
+ },
1253
+ {
1254
+ "name": "download",
1255
+ "type": {
1256
+ "text": "boolean"
1257
+ },
1258
+ "default": "false",
1259
+ "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
1260
+ "fieldName": "download"
1261
+ },
1262
+ {
1263
+ "name": "target",
1264
+ "type": {
1265
+ "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
1266
+ },
1267
+ "default": "\"_self\"",
1268
+ "description": "When provided together with a href property, determines where\nto open the linked URL. The keywords have special meanings for\nwhere to load the URL: “_self” means the current browsing context,\n“_blank” usually a new tab but users can configure browsers this to\nopen a new window instead, “_parent” means the parent browsing\ncontext of the current one, but if no parent exists, behaves as\n_self, and finally “top” means the topmost browsing context.",
1269
+ "fieldName": "target"
1270
+ },
1271
+ {
1272
+ "name": "expand",
1273
+ "type": {
1274
+ "text": "boolean"
1275
+ },
1276
+ "default": "false",
1277
+ "description": "Controls whether the button expands to fill the width of its container.",
1278
+ "fieldName": "expand"
1279
+ },
1280
+ {
1281
+ "name": "disabled",
1282
+ "type": {
1283
+ "text": "boolean"
1284
+ },
1285
+ "default": "false",
1286
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
1287
+ "fieldName": "disabled",
1288
+ "inheritedFrom": {
1289
+ "name": "InputMixin",
1290
+ "module": "src/common/mixins/InputMixin.ts"
1291
+ }
1292
+ },
1293
+ {
1294
+ "name": "name",
1295
+ "type": {
1296
+ "text": "string | undefined"
1297
+ },
1298
+ "description": "The name of the form component.",
1299
+ "fieldName": "name",
1300
+ "inheritedFrom": {
1301
+ "name": "InputMixin",
1302
+ "module": "src/common/mixins/InputMixin.ts"
1303
+ }
1304
+ },
1305
+ {
1306
+ "name": "value",
1193
1307
  "type": {
1194
1308
  "text": "string"
1195
1309
  },
1196
1310
  "default": "\"\"",
1197
- "description": "Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\nThis setting can be used alone or together with the min property.",
1198
- "fieldName": "max"
1311
+ "description": "The value of the form component.",
1312
+ "fieldName": "value",
1313
+ "inheritedFrom": {
1314
+ "name": "InputMixin",
1315
+ "module": "src/common/mixins/InputMixin.ts"
1316
+ }
1317
+ }
1318
+ ],
1319
+ "mixins": [
1320
+ {
1321
+ "name": "InputMixin",
1322
+ "module": "/src/common/mixins/InputMixin.js"
1323
+ },
1324
+ {
1325
+ "name": "FocusableMixin",
1326
+ "module": "/src/common/mixins/FocusableMixin.js"
1199
1327
  }
1200
1328
  ],
1201
1329
  "superclass": {
@@ -1203,8 +1331,8 @@
1203
1331
  "package": "lit"
1204
1332
  },
1205
1333
  "status": "ready",
1206
- "category": "list",
1207
- "tagName": "nord-calendar",
1334
+ "category": "action",
1335
+ "tagName": "nord-button",
1208
1336
  "customElement": true
1209
1337
  }
1210
1338
  ],
@@ -1213,185 +1341,66 @@
1213
1341
  "kind": "js",
1214
1342
  "name": "default",
1215
1343
  "declaration": {
1216
- "name": "Calendar",
1217
- "module": "src/calendar/Calendar.ts"
1344
+ "name": "Button",
1345
+ "module": "src/button/Button.ts"
1218
1346
  }
1219
1347
  },
1220
1348
  {
1221
1349
  "kind": "custom-element-definition",
1222
- "name": "nord-calendar",
1350
+ "name": "nord-button",
1223
1351
  "declaration": {
1224
- "name": "Calendar",
1225
- "module": "src/calendar/Calendar.ts"
1352
+ "name": "Button",
1353
+ "module": "src/button/Button.ts"
1226
1354
  }
1227
1355
  }
1228
1356
  ],
1229
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n- Close calendar after a single date is selected, unless a range with a start and end date is required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use for choosing a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nCalendar component is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Calendar grid\n\n- `Space, Enter`: Selects a date.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n"
1357
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use clear and accurate labels.\n- Use established button colors appropriately. For example, only use a danger button style for an action that’s difficult or impossible to undo.\n- Prioritize the most important actions. Too many buttons will cause confusion.\n- Be consistent with positioning of buttons in the user interface.\n- Use strong, actionable verbs in labels such as “Add”, “Close”, “Cancel”, or “Save”.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use buttons to link to other pages. Use regular link or a plain style instead where necessary.\n- Don’t use buttons for navigation where the link appears within or following a sentence.\n- Don’t use labels such as “Read more”, “Click here” or “More”.\n\n</div>\n\n---\n\n## Content guidelines\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">View user settings</div>\n<div class=\"n-usage n-usage-dont\">Click here</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in button labels, such as the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Add item</div>\n<div class=\"n-usage n-usage-dont\">Add an item</div>\n\n---\n\n## Variants\n\nThis section describes the different component variants, their purpose, and when to use each variant.\n\n| Name | Purpose |\n| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `default` | Default style is the most common button variant. Only switch to another variant if you need to adjust the visual weight of the element. |\n| `primary` | Primary style is reserved for main call-to-actions. Should be used only once per content area or panel, e.g. for a “Save” action. |\n| `dashed` | Dashed style should be used for actions that trigger filtering. |\n| `danger` | Danger style should be used for actions that delete data or otherwise make it hard to undo the action. |\n| `plain` | Used for less important or less common actions. Can be also used for linking to other pages. |\n| `disabled` | Used for actions that aren’t currently available or not available anymore. Also prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies. |\n\n---\n\n## Additional considerations\n\n- Users of assistive technology expect a button to submit data or do an action. If you need the button to navigate into another view, use the `href` property which will output `<a>` tag instead of a `<button>`.\n- When you need to disable a button, use `disabled` property as it conveys this information correctly to assistive technologies like screen readers.\n- Button component provides 3 size variants; small, medium and large. The large size should only be used for marketing purposes or on areas such as an empty space/content notice.\n"
1230
1358
  },
1231
1359
  {
1232
1360
  "kind": "javascript-module",
1233
- "path": "src/calendar/DateSelectEvent.ts",
1361
+ "path": "src/card/Card.ts",
1234
1362
  "declarations": [
1235
1363
  {
1236
1364
  "kind": "class",
1237
- "description": "",
1238
- "name": "DateSelectEvent",
1365
+ "description": "Cards are shadowed surfaces that display content and actions on a\nsingle topic. They should be easy to scan for relevant and\nactionable information.",
1366
+ "name": "Card",
1367
+ "slots": [
1368
+ {
1369
+ "description": "The card content.",
1370
+ "name": ""
1371
+ },
1372
+ {
1373
+ "description": "Optional slot that holds a header for the card.",
1374
+ "name": "header"
1375
+ },
1376
+ {
1377
+ "description": "Optional slot that holds footer content for the card.",
1378
+ "name": "footer"
1379
+ }
1380
+ ],
1239
1381
  "members": [
1240
1382
  {
1241
1383
  "kind": "field",
1242
- "name": "eventName",
1243
- "type": {
1244
- "text": "string"
1245
- },
1246
- "static": true,
1247
- "default": "\"nord-select\""
1384
+ "name": "headerSlot",
1385
+ "privacy": "private",
1386
+ "default": "new SlotController(this, \"header\")"
1248
1387
  },
1249
1388
  {
1250
1389
  "kind": "field",
1251
- "name": "date",
1390
+ "name": "footerSlot",
1391
+ "privacy": "private",
1392
+ "default": "new SlotController(this, \"footer\")"
1393
+ },
1394
+ {
1395
+ "kind": "field",
1396
+ "name": "padding",
1252
1397
  "type": {
1253
- "text": "Date"
1398
+ "text": "\"m\" | \"l\" | \"none\""
1254
1399
  },
1255
- "default": "date"
1256
- }
1257
- ],
1258
- "superclass": {
1259
- "name": "NordEvent",
1260
- "module": "/src/common/events.js"
1261
- }
1262
- }
1263
- ],
1264
- "exports": [
1265
- {
1266
- "kind": "js",
1267
- "name": "DateSelectEvent",
1268
- "declaration": {
1269
- "name": "DateSelectEvent",
1270
- "module": "src/calendar/DateSelectEvent.ts"
1271
- }
1272
- }
1273
- ],
1274
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n- Close calendar after a single date is selected, unless a range with a start and end date is required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use for choosing a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nCalendar component is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Calendar grid\n\n- `Space, Enter`: Selects a date.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n"
1275
- },
1276
- {
1277
- "kind": "javascript-module",
1278
- "path": "src/calendar/calendar-localization.ts",
1279
- "declarations": [
1280
- {
1281
- "kind": "variable",
1282
- "name": "localization",
1283
- "type": {
1284
- "text": "CalendarLocalizedText"
1285
- },
1286
- "default": "{\n prevMonthLabel: \"Previous month\",\n nextMonthLabel: \"Next month\",\n monthSelectLabel: \"Month\",\n yearSelectLabel: \"Year\",\n calendarHeading: \"Choose a date\",\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n monthNames: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n locale: \"en-GB\",\n}"
1287
- }
1288
- ],
1289
- "exports": [
1290
- {
1291
- "kind": "js",
1292
- "name": "default",
1293
- "declaration": {
1294
- "name": "localization",
1295
- "module": "src/calendar/calendar-localization.ts"
1296
- }
1297
- }
1298
- ],
1299
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n- Close calendar after a single date is selected, unless a range with a start and end date is required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use for choosing a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nCalendar component is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Calendar grid\n\n- `Space, Enter`: Selects a date.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n"
1300
- },
1301
- {
1302
- "kind": "javascript-module",
1303
- "path": "src/calendar/month-view.ts",
1304
- "declarations": [
1305
- {
1306
- "kind": "function",
1307
- "name": "dayView",
1308
- "parameters": [
1309
- {
1310
- "name": "{\n focusedDay,\n today,\n day,\n onDaySelect,\n onKeyboardNavigation,\n disabled,\n inRange,\n isSelected,\n dateFormatter,\n}",
1311
- "type": {
1312
- "text": "DatePickerDayProps"
1313
- }
1314
- }
1315
- ]
1316
- },
1317
- {
1318
- "kind": "function",
1319
- "name": "monthView",
1320
- "parameters": [
1321
- {
1322
- "name": "{\n onFocusIn,\n onFocusOut,\n selectedDate,\n focusedDate,\n labelledById,\n localization,\n firstDayOfWeek,\n min,\n max,\n dateFormatter,\n isDateDisabled,\n onDateSelect,\n onKeyboardNavigation,\n}",
1323
- "type": {
1324
- "text": "MonthViewArgs"
1325
- }
1326
- }
1327
- ]
1328
- }
1329
- ],
1330
- "exports": [
1331
- {
1332
- "kind": "js",
1333
- "name": "dayView",
1334
- "declaration": {
1335
- "name": "dayView",
1336
- "module": "src/calendar/month-view.ts"
1337
- }
1338
- },
1339
- {
1340
- "kind": "js",
1341
- "name": "monthView",
1342
- "declaration": {
1343
- "name": "monthView",
1344
- "module": "src/calendar/month-view.ts"
1345
- }
1346
- }
1347
- ],
1348
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n- Close calendar after a single date is selected, unless a range with a start and end date is required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use for choosing a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nCalendar component is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Calendar grid\n\n- `Space, Enter`: Selects a date.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n"
1349
- },
1350
- {
1351
- "kind": "javascript-module",
1352
- "path": "src/card/Card.ts",
1353
- "declarations": [
1354
- {
1355
- "kind": "class",
1356
- "description": "Cards are shadowed surfaces that display content and actions on a\nsingle topic. They should be easy to scan for relevant and\nactionable information.",
1357
- "name": "Card",
1358
- "slots": [
1359
- {
1360
- "description": "The card content.",
1361
- "name": ""
1362
- },
1363
- {
1364
- "description": "Optional slot that holds a header for the card.",
1365
- "name": "header"
1366
- },
1367
- {
1368
- "description": "Optional slot that holds footer content for the card.",
1369
- "name": "footer"
1370
- }
1371
- ],
1372
- "members": [
1373
- {
1374
- "kind": "field",
1375
- "name": "headerSlot",
1376
- "privacy": "private",
1377
- "default": "new SlotController(this, \"header\")"
1378
- },
1379
- {
1380
- "kind": "field",
1381
- "name": "footerSlot",
1382
- "privacy": "private",
1383
- "default": "new SlotController(this, \"footer\")"
1384
- },
1385
- {
1386
- "kind": "field",
1387
- "name": "padding",
1388
- "type": {
1389
- "text": "\"m\" | \"l\" | \"none\""
1390
- },
1391
- "default": "\"m\"",
1392
- "description": "Controls the padding of card component. When set to “none”,\nthe header and footer slots will still have padding.",
1393
- "attribute": "padding",
1394
- "reflects": true
1400
+ "default": "\"m\"",
1401
+ "description": "Controls the padding of card component. When set to “none”,\nthe header and footer slots will still have padding.",
1402
+ "attribute": "padding",
1403
+ "reflects": true
1395
1404
  }
1396
1405
  ],
1397
1406
  "attributes": [
@@ -3595,6 +3604,51 @@
3595
3604
  }
3596
3605
  ]
3597
3606
  },
3607
+ {
3608
+ "kind": "javascript-module",
3609
+ "path": "src/empty-state/EmptyState.ts",
3610
+ "declarations": [
3611
+ {
3612
+ "kind": "class",
3613
+ "description": "Empty state can be used when there is no data to display to\ndescribe what the user can do next. Empty state provides\nexplanation and guidance to help user progress.",
3614
+ "name": "EmptyState",
3615
+ "slots": [
3616
+ {
3617
+ "description": "default slot",
3618
+ "name": ""
3619
+ }
3620
+ ],
3621
+ "members": [],
3622
+ "superclass": {
3623
+ "name": "LitElement",
3624
+ "package": "lit"
3625
+ },
3626
+ "status": "new",
3627
+ "category": "feedback",
3628
+ "tagName": "nord-empty-state",
3629
+ "customElement": true
3630
+ }
3631
+ ],
3632
+ "exports": [
3633
+ {
3634
+ "kind": "js",
3635
+ "name": "default",
3636
+ "declaration": {
3637
+ "name": "EmptyState",
3638
+ "module": "src/empty-state/EmptyState.ts"
3639
+ }
3640
+ },
3641
+ {
3642
+ "kind": "custom-element-definition",
3643
+ "name": "nord-empty-state",
3644
+ "declaration": {
3645
+ "name": "EmptyState",
3646
+ "module": "src/empty-state/EmptyState.ts"
3647
+ }
3648
+ }
3649
+ ],
3650
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when another component or part of UI has no items or data to show.\n- Help users by clearly explaining the benefit and utility of a product or feature.\n- Be encouraging and never make users feel unsuccessful or guilty.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use as a generic banner to highlight specific content.\n\n</div>\n\n---\n\n## Content guidelines\n\nEmpty state headings should state to the user what’s wrong or why there’s no content:\n\n<div class=\"n-usage n-usage-do\">No results found</div>\n<div class=\"n-usage n-usage-dont\">Error</div>\n\nWhen writing empty state headings, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">You don’t have access to this content</div>\n<div class=\"n-usage n-usage-dont\">You Don’t Have Access To This Content</div>\n\nDescriptions in empty states should add useful and relevant additional information:\n\n<div class=\"n-usage n-usage-do\">We were unable to connect to the service. Click Retry to try again or View log to learn what happened.</div>\n<div class=\"n-usage n-usage-dont\">No connection.</div>\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">Clear filters</div>\n<div class=\"n-usage n-usage-dont\">Clear</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">View log</div>\n<div class=\"n-usage n-usage-dont\">View Log</div>\n\nAvoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Request access</div>\n<div class=\"n-usage n-usage-dont\">Request an access</div>\n"
3651
+ },
3598
3652
  {
3599
3653
  "kind": "javascript-module",
3600
3654
  "path": "src/date-picker/DatePicker.ts",
@@ -3773,10 +3827,14 @@
3773
3827
  "parameters": [
3774
3828
  {
3775
3829
  "name": "moveFocusToButton",
3776
- "default": "true"
3830
+ "default": "true",
3831
+ "description": "controls whether focus should be returned to the date picker's button",
3832
+ "type": {
3833
+ "text": "boolean"
3834
+ }
3777
3835
  }
3778
3836
  ],
3779
- "description": "Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus\nreturning to the date picker's button. Default is true."
3837
+ "description": "Hide the calendar modal"
3780
3838
  },
3781
3839
  {
3782
3840
  "kind": "method",
@@ -4484,51 +4542,6 @@
4484
4542
  ],
4485
4543
  "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use to choose a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nDate picker is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Choose date button\n\n- `Space, Enter`: Opens the date picker dialog and moves focus to the first select menu in the dialog.\n\n### Date picker dialog\n\n- `Esc`: Closes the date picker dialog and moves focus back to the “choose date” button.\n- `Tab`: Moves focus to the next element in the dialog. Please note since the calendar uses `role=\"grid\"`, only one button in the calendar grid is in the tab sequence. Additionally, if focus is on the last focusable element, focus is next moved back to the first focusable element inside the date picker dialog.\n- `Shift + Tab`: Same as above, but in reverse order.\n\n### Date picker dialog: Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Date picker dialog: Date grid\n\n- `Space, Enter`: Selects a date, closes the dialog, and moves focus back to the “Choose Date” button. Additionally updates the value of the date picker input with the selected date, and adds selected date to “Choose Date” button label.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n\n#### Date picker dialog: Close button\n\n- `Space, Enter`: Closes the dialog, moves focus to “choose date” button, but does not update the date in input.\n"
4486
4544
  },
4487
- {
4488
- "kind": "javascript-module",
4489
- "path": "src/empty-state/EmptyState.ts",
4490
- "declarations": [
4491
- {
4492
- "kind": "class",
4493
- "description": "Empty state can be used when there is no data to display to\ndescribe what the user can do next. Empty state provides\nexplanation and guidance to help user progress.",
4494
- "name": "EmptyState",
4495
- "slots": [
4496
- {
4497
- "description": "default slot",
4498
- "name": ""
4499
- }
4500
- ],
4501
- "members": [],
4502
- "superclass": {
4503
- "name": "LitElement",
4504
- "package": "lit"
4505
- },
4506
- "status": "new",
4507
- "category": "feedback",
4508
- "tagName": "nord-empty-state",
4509
- "customElement": true
4510
- }
4511
- ],
4512
- "exports": [
4513
- {
4514
- "kind": "js",
4515
- "name": "default",
4516
- "declaration": {
4517
- "name": "EmptyState",
4518
- "module": "src/empty-state/EmptyState.ts"
4519
- }
4520
- },
4521
- {
4522
- "kind": "custom-element-definition",
4523
- "name": "nord-empty-state",
4524
- "declaration": {
4525
- "name": "EmptyState",
4526
- "module": "src/empty-state/EmptyState.ts"
4527
- }
4528
- }
4529
- ],
4530
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when another component or part of UI has no items or data to show.\n- Help users by clearly explaining the benefit and utility of a product or feature.\n- Be encouraging and never make users feel unsuccessful or guilty.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use as a generic banner to highlight specific content.\n\n</div>\n\n---\n\n## Content guidelines\n\nEmpty state headings should state to the user what’s wrong or why there’s no content:\n\n<div class=\"n-usage n-usage-do\">No results found</div>\n<div class=\"n-usage n-usage-dont\">Error</div>\n\nWhen writing empty state headings, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">You don’t have access to this content</div>\n<div class=\"n-usage n-usage-dont\">You Don’t Have Access To This Content</div>\n\nDescriptions in empty states should add useful and relevant additional information:\n\n<div class=\"n-usage n-usage-do\">We were unable to connect to the service. Click Retry to try again or View log to learn what happened.</div>\n<div class=\"n-usage n-usage-dont\">No connection.</div>\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">Clear filters</div>\n<div class=\"n-usage n-usage-dont\">Clear</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">View log</div>\n<div class=\"n-usage n-usage-dont\">View Log</div>\n\nAvoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Request access</div>\n<div class=\"n-usage n-usage-dont\">Request an access</div>\n"
4531
- },
4532
4545
  {
4533
4546
  "kind": "javascript-module",
4534
4547
  "path": "src/fieldset/Fieldset.ts",
@@ -4662,101 +4675,25 @@
4662
4675
  },
4663
4676
  {
4664
4677
  "kind": "javascript-module",
4665
- "path": "src/header/Header.ts",
4678
+ "path": "src/icon/Icon.ts",
4666
4679
  "declarations": [
4667
4680
  {
4668
4681
  "kind": "class",
4669
- "description": "The header is a block of designated space for labelling the currently\nviewed context as well as providing primary actions.",
4670
- "name": "Header",
4671
- "slots": [
4672
- {
4673
- "description": "The header content.",
4674
- "name": ""
4675
- },
4676
- {
4677
- "description": "Optional slot for buttons, toggles, etc.",
4678
- "name": "action"
4679
- }
4680
- ],
4682
+ "description": "Icons are used to provide additional meaning or in places where text label doesn’t fit.\nIcon component allows you to display an icon from the Nordicons library.",
4683
+ "name": "Icon",
4681
4684
  "members": [
4682
4685
  {
4683
4686
  "kind": "field",
4684
- "name": "actionSlot",
4687
+ "name": "resolver",
4688
+ "type": {
4689
+ "text": "IconResolver"
4690
+ },
4685
4691
  "privacy": "private",
4686
- "default": "new SlotController(this, \"action\")"
4692
+ "static": true
4687
4693
  },
4688
4694
  {
4689
4695
  "kind": "field",
4690
- "name": "_warningLogged",
4691
- "type": {
4692
- "text": "boolean"
4693
- },
4694
- "privacy": "private",
4695
- "static": true,
4696
- "default": "false",
4697
- "inheritedFrom": {
4698
- "name": "DraftComponentMixin",
4699
- "module": "src/common/mixins/DraftComponentMixin.ts"
4700
- }
4701
- }
4702
- ],
4703
- "mixins": [
4704
- {
4705
- "name": "DraftComponentMixin",
4706
- "module": "/src/common/mixins/DraftComponentMixin.js"
4707
- }
4708
- ],
4709
- "superclass": {
4710
- "name": "LitElement",
4711
- "package": "lit"
4712
- },
4713
- "status": "draft",
4714
- "category": "structure",
4715
- "tagName": "nord-header",
4716
- "customElement": true
4717
- }
4718
- ],
4719
- "exports": [
4720
- {
4721
- "kind": "js",
4722
- "name": "default",
4723
- "declaration": {
4724
- "name": "Header",
4725
- "module": "src/header/Header.ts"
4726
- }
4727
- },
4728
- {
4729
- "kind": "custom-element-definition",
4730
- "name": "nord-header",
4731
- "declaration": {
4732
- "name": "Header",
4733
- "module": "src/header/Header.ts"
4734
- }
4735
- }
4736
- ],
4737
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use the header component to show a heading to describe the current view.\n- Use the header component to hold primary actions.\n- Use the header component at a visual high position at full width.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t overcrowd the header component with too many actions or information.\n- Don’t nest the header component too deeply and restrict its available space.\n\n</div>\n\n-------\n\n## Content guidelines\n\nThe header component should be a containing element placed high on the page to present high level controls and to describe the page itself. It shouldn’t be overcrowded with controls or information.\n\n<div class=\"n-usage n-usage-do\">[Menu] Dashboard [Account] [Log out]</div>\n<div class=\"n-usage n-usage-dont\">[Menu] Use the cards below to view various information [Export] [Save] [Edit Profile] [Log out] [Preferences]</div>\n"
4738
- },
4739
- {
4740
- "kind": "javascript-module",
4741
- "path": "src/icon/Icon.ts",
4742
- "declarations": [
4743
- {
4744
- "kind": "class",
4745
- "description": "Icons are used to provide additional meaning or in places where text label doesn’t fit.\nIcon component allows you to display an icon from the Nordicons library.",
4746
- "name": "Icon",
4747
- "members": [
4748
- {
4749
- "kind": "field",
4750
- "name": "resolver",
4751
- "type": {
4752
- "text": "IconResolver"
4753
- },
4754
- "privacy": "private",
4755
- "static": true
4756
- },
4757
- {
4758
- "kind": "field",
4759
- "name": "registeredIcons",
4696
+ "name": "registeredIcons",
4760
4697
  "privacy": "private",
4761
4698
  "static": true,
4762
4699
  "default": "new Map<string, string>()"
@@ -4971,6 +4908,82 @@
4971
4908
  ],
4972
4909
  "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide additional meaning in addition to a text label.\n- Use to help users who have difficulties with reading and attention.\n- Use in places where text label doesn’t fit (remember to add an accessible label for the icon).\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for decorative purposes alone.\n- Don’t use when a button’s action is already clear based on the text label.\n- Don’t use the same icon for differing purposes, as users will come to associate icons with specific types of actions.\n\n</div>\n\n---\n\n## Additional considerations\n\n- Icon components are hidden from assistive technologies by default.\n- Use `label` property to give an accessible label for the icon and to make it visible to assistive technologies.\n"
4973
4910
  },
4911
+ {
4912
+ "kind": "javascript-module",
4913
+ "path": "src/header/Header.ts",
4914
+ "declarations": [
4915
+ {
4916
+ "kind": "class",
4917
+ "description": "The header is a block of designated space for labelling the currently\nviewed context as well as providing primary actions.",
4918
+ "name": "Header",
4919
+ "slots": [
4920
+ {
4921
+ "description": "The header content.",
4922
+ "name": ""
4923
+ },
4924
+ {
4925
+ "description": "Optional slot for buttons, toggles, etc.",
4926
+ "name": "action"
4927
+ }
4928
+ ],
4929
+ "members": [
4930
+ {
4931
+ "kind": "field",
4932
+ "name": "actionSlot",
4933
+ "privacy": "private",
4934
+ "default": "new SlotController(this, \"action\")"
4935
+ },
4936
+ {
4937
+ "kind": "field",
4938
+ "name": "_warningLogged",
4939
+ "type": {
4940
+ "text": "boolean"
4941
+ },
4942
+ "privacy": "private",
4943
+ "static": true,
4944
+ "default": "false",
4945
+ "inheritedFrom": {
4946
+ "name": "DraftComponentMixin",
4947
+ "module": "src/common/mixins/DraftComponentMixin.ts"
4948
+ }
4949
+ }
4950
+ ],
4951
+ "mixins": [
4952
+ {
4953
+ "name": "DraftComponentMixin",
4954
+ "module": "/src/common/mixins/DraftComponentMixin.js"
4955
+ }
4956
+ ],
4957
+ "superclass": {
4958
+ "name": "LitElement",
4959
+ "package": "lit"
4960
+ },
4961
+ "status": "draft",
4962
+ "category": "structure",
4963
+ "tagName": "nord-header",
4964
+ "customElement": true
4965
+ }
4966
+ ],
4967
+ "exports": [
4968
+ {
4969
+ "kind": "js",
4970
+ "name": "default",
4971
+ "declaration": {
4972
+ "name": "Header",
4973
+ "module": "src/header/Header.ts"
4974
+ }
4975
+ },
4976
+ {
4977
+ "kind": "custom-element-definition",
4978
+ "name": "nord-header",
4979
+ "declaration": {
4980
+ "name": "Header",
4981
+ "module": "src/header/Header.ts"
4982
+ }
4983
+ }
4984
+ ],
4985
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use the header component to show a heading to describe the current view.\n- Use the header component to hold primary actions.\n- Use the header component at a visual high position at full width.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t overcrowd the header component with too many actions or information.\n- Don’t nest the header component too deeply and restrict its available space.\n\n</div>\n\n-------\n\n## Content guidelines\n\nThe header component should be a containing element placed high on the page to present high level controls and to describe the page itself. It shouldn’t be overcrowded with controls or information.\n\n<div class=\"n-usage n-usage-do\">[Menu] Dashboard [Account] [Log out]</div>\n<div class=\"n-usage n-usage-dont\">[Menu] Use the cards below to view various information [Export] [Save] [Edit Profile] [Log out] [Preferences]</div>\n"
4986
+ },
4974
4987
  {
4975
4988
  "kind": "javascript-module",
4976
4989
  "path": "src/input/Input.ts",
@@ -8576,595 +8589,789 @@
8576
8589
  },
8577
8590
  {
8578
8591
  "kind": "javascript-module",
8579
- "path": "src/common/directives/cond.ts",
8592
+ "path": "src/common/mixins/DraftComponentMixin.ts",
8580
8593
  "declarations": [
8581
8594
  {
8582
- "kind": "variable",
8583
- "name": "cond"
8595
+ "kind": "mixin",
8596
+ "description": "",
8597
+ "name": "DraftComponentMixin",
8598
+ "members": [
8599
+ {
8600
+ "kind": "field",
8601
+ "name": "_warningLogged",
8602
+ "type": {
8603
+ "text": "boolean"
8604
+ },
8605
+ "privacy": "private",
8606
+ "static": true,
8607
+ "default": "false"
8608
+ }
8609
+ ],
8610
+ "parameters": [
8611
+ {
8612
+ "name": "superClass",
8613
+ "type": {
8614
+ "text": "T"
8615
+ }
8616
+ }
8617
+ ]
8584
8618
  }
8585
8619
  ],
8586
8620
  "exports": [
8587
8621
  {
8588
8622
  "kind": "js",
8589
- "name": "cond",
8623
+ "name": "DraftComponentMixin",
8590
8624
  "declaration": {
8591
- "name": "cond",
8592
- "module": "src/common/directives/cond.ts"
8625
+ "name": "DraftComponentMixin",
8626
+ "module": "src/common/mixins/DraftComponentMixin.ts"
8593
8627
  }
8594
8628
  }
8595
8629
  ]
8596
8630
  },
8597
8631
  {
8598
8632
  "kind": "javascript-module",
8599
- "path": "src/common/directives/wrapIf.ts",
8633
+ "path": "src/common/mixins/FocusableMixin.ts",
8600
8634
  "declarations": [
8601
8635
  {
8602
- "kind": "function",
8603
- "name": "wrapIf",
8604
- "return": {
8605
- "type": {
8606
- "text": "TInner"
8607
- }
8608
- },
8609
- "parameters": [
8636
+ "kind": "class",
8637
+ "description": "",
8638
+ "name": "FocusableMixinInterface",
8639
+ "members": [
8610
8640
  {
8611
- "name": "condition",
8641
+ "kind": "field",
8642
+ "name": "focusableRef",
8612
8643
  "type": {
8613
- "text": "false"
8614
- }
8644
+ "text": "Ref<HTMLElement>"
8645
+ },
8646
+ "privacy": "protected"
8615
8647
  },
8616
8648
  {
8617
- "name": "inner",
8618
- "type": {
8619
- "text": "() => TInner"
8649
+ "kind": "method",
8650
+ "name": "focus",
8651
+ "return": {
8652
+ "type": {
8653
+ "text": "void"
8654
+ }
8655
+ },
8656
+ "parameters": [
8657
+ {
8658
+ "name": "options",
8659
+ "optional": true,
8660
+ "type": {
8661
+ "text": "FocusOptions"
8662
+ }
8663
+ }
8664
+ ]
8665
+ },
8666
+ {
8667
+ "kind": "method",
8668
+ "name": "blur",
8669
+ "return": {
8670
+ "type": {
8671
+ "text": "void"
8672
+ }
8620
8673
  }
8621
8674
  },
8622
8675
  {
8623
- "name": "wrapper",
8624
- "type": {
8625
- "text": "(inner: TInner) => TWrapper"
8676
+ "kind": "method",
8677
+ "name": "click",
8678
+ "return": {
8679
+ "type": {
8680
+ "text": "void"
8681
+ }
8626
8682
  }
8627
8683
  }
8628
8684
  ]
8629
8685
  },
8630
8686
  {
8631
- "kind": "function",
8632
- "name": "wrapIf",
8633
- "return": {
8634
- "type": {
8635
- "text": "TWrapper"
8636
- }
8637
- },
8638
- "parameters": [
8639
- {
8640
- "name": "condition",
8641
- "type": {
8642
- "text": "true"
8643
- }
8644
- },
8687
+ "kind": "mixin",
8688
+ "description": "",
8689
+ "name": "FocusableMixin",
8690
+ "members": [
8645
8691
  {
8646
- "name": "inner",
8647
- "type": {
8648
- "text": "() => TInner"
8649
- }
8692
+ "kind": "field",
8693
+ "name": "focusableRef",
8694
+ "privacy": "protected"
8650
8695
  },
8651
8696
  {
8652
- "name": "wrapper",
8653
- "type": {
8654
- "text": "(inner: TInner) => TWrapper"
8655
- }
8656
- }
8657
- ]
8658
- },
8659
- {
8660
- "kind": "function",
8661
- "name": "wrapIf",
8662
- "return": {
8663
- "type": {
8664
- "text": "TInner | TWrapper"
8665
- }
8666
- },
8667
- "parameters": [
8668
- {
8669
- "name": "condition",
8670
- "type": {
8671
- "text": "unknown"
8672
- }
8697
+ "kind": "method",
8698
+ "name": "focus",
8699
+ "parameters": [
8700
+ {
8701
+ "name": "options",
8702
+ "optional": true,
8703
+ "type": {
8704
+ "text": "FocusOptions"
8705
+ },
8706
+ "description": "An object which controls aspects of the focusing process."
8707
+ }
8708
+ ],
8709
+ "description": "Programmatically move focus to the component."
8673
8710
  },
8674
8711
  {
8675
- "name": "inner",
8676
- "type": {
8677
- "text": "() => TInner"
8678
- }
8712
+ "kind": "method",
8713
+ "name": "blur",
8714
+ "description": "Programmatically remove focus from the component."
8679
8715
  },
8680
8716
  {
8681
- "name": "wrapper",
8682
- "type": {
8683
- "text": "(inner: TInner) => TWrapper"
8684
- }
8717
+ "kind": "method",
8718
+ "name": "click",
8719
+ "description": "Programmatically simulates a click on the component."
8685
8720
  }
8686
- ]
8687
- },
8688
- {
8689
- "kind": "function",
8690
- "name": "wrapIf",
8721
+ ],
8691
8722
  "parameters": [
8692
8723
  {
8693
- "name": "condition",
8694
- "type": {
8695
- "text": "any"
8696
- }
8697
- },
8698
- {
8699
- "name": "inner",
8700
- "type": {
8701
- "text": "() => TInner"
8702
- }
8703
- },
8704
- {
8705
- "name": "wrapper",
8724
+ "name": "superClass",
8706
8725
  "type": {
8707
- "text": "(innards: TInner) => TWrapper"
8726
+ "text": "T"
8708
8727
  }
8709
8728
  }
8710
- ],
8711
- "return": {
8712
- "type": {
8713
- "text": ""
8714
- }
8715
- }
8729
+ ]
8716
8730
  }
8717
8731
  ],
8718
8732
  "exports": [
8719
8733
  {
8720
8734
  "kind": "js",
8721
- "name": "wrapIf",
8722
- "declaration": {
8723
- "name": "wrapIf",
8724
- "module": "src/common/directives/wrapIf.ts"
8725
- }
8726
- },
8727
- {
8728
- "kind": "js",
8729
- "name": "wrapIf",
8730
- "declaration": {
8731
- "name": "wrapIf",
8732
- "module": "src/common/directives/wrapIf.ts"
8733
- }
8734
- },
8735
- {
8736
- "kind": "js",
8737
- "name": "wrapIf",
8735
+ "name": "FocusableMixinInterface",
8738
8736
  "declaration": {
8739
- "name": "wrapIf",
8740
- "module": "src/common/directives/wrapIf.ts"
8737
+ "name": "FocusableMixinInterface",
8738
+ "module": "src/common/mixins/FocusableMixin.ts"
8741
8739
  }
8742
8740
  },
8743
8741
  {
8744
8742
  "kind": "js",
8745
- "name": "wrapIf",
8743
+ "name": "FocusableMixin",
8746
8744
  "declaration": {
8747
- "name": "wrapIf",
8748
- "module": "src/common/directives/wrapIf.ts"
8745
+ "name": "FocusableMixin",
8746
+ "module": "src/common/mixins/FocusableMixin.ts"
8749
8747
  }
8750
8748
  }
8751
8749
  ]
8752
8750
  },
8753
8751
  {
8754
8752
  "kind": "javascript-module",
8755
- "path": "src/common/controllers/DirectionController.ts",
8753
+ "path": "src/common/mixins/FormAssociatedMixin.ts",
8756
8754
  "declarations": [
8757
8755
  {
8758
8756
  "kind": "class",
8759
8757
  "description": "",
8760
- "name": "DirectionController",
8758
+ "name": "FormAssociatedMixinInterface",
8761
8759
  "members": [
8762
8760
  {
8763
8761
  "kind": "field",
8764
- "name": "hosts",
8765
- "privacy": "private",
8766
- "static": true,
8767
- "default": "new Set<ReactiveControllerHost>()"
8762
+ "name": "label",
8763
+ "type": {
8764
+ "text": "string"
8765
+ }
8768
8766
  },
8769
8767
  {
8770
8768
  "kind": "field",
8771
- "name": "observer",
8769
+ "name": "required",
8772
8770
  "type": {
8773
- "text": "MutationObserver | undefined"
8774
- },
8775
- "privacy": "private",
8776
- "static": true
8771
+ "text": "boolean"
8772
+ }
8777
8773
  },
8778
8774
  {
8779
8775
  "kind": "field",
8780
- "name": "dir",
8776
+ "name": "hint",
8781
8777
  "type": {
8782
- "text": "WritingDirection"
8778
+ "text": "string | undefined"
8783
8779
  }
8784
8780
  },
8785
8781
  {
8786
8782
  "kind": "field",
8787
- "name": "isLTR"
8783
+ "name": "hideLabel",
8784
+ "type": {
8785
+ "text": "boolean"
8786
+ }
8788
8787
  },
8789
8788
  {
8790
8789
  "kind": "field",
8791
- "name": "isRTL"
8790
+ "name": "placeholder",
8791
+ "type": {
8792
+ "text": "string | undefined"
8793
+ }
8792
8794
  },
8793
8795
  {
8794
- "kind": "method",
8795
- "name": "hostConnected"
8796
+ "kind": "field",
8797
+ "name": "error",
8798
+ "type": {
8799
+ "text": "string | undefined"
8800
+ }
8796
8801
  },
8797
8802
  {
8798
- "kind": "method",
8799
- "name": "hostDisconnected"
8803
+ "kind": "field",
8804
+ "name": "expand",
8805
+ "type": {
8806
+ "text": "boolean"
8807
+ }
8800
8808
  },
8801
8809
  {
8802
- "kind": "method",
8803
- "name": "observe",
8804
- "privacy": "private",
8805
- "static": true
8810
+ "kind": "field",
8811
+ "name": "inputId",
8812
+ "type": {
8813
+ "text": "string"
8814
+ },
8815
+ "privacy": "protected"
8806
8816
  },
8807
8817
  {
8808
8818
  "kind": "field",
8809
- "name": "host",
8810
- "default": "host"
8811
- }
8812
- ]
8813
- }
8814
- ],
8815
- "exports": [
8816
- {
8817
- "kind": "js",
8818
- "name": "DirectionController",
8819
- "declaration": {
8820
- "name": "DirectionController",
8821
- "module": "src/common/controllers/DirectionController.ts"
8822
- }
8823
- }
8824
- ]
8825
- },
8826
- {
8827
- "kind": "javascript-module",
8828
- "path": "src/common/controllers/FormDataController.ts",
8829
- "declarations": [
8830
- {
8831
- "kind": "class",
8832
- "description": "",
8833
- "name": "FormDataController",
8834
- "members": [
8835
- {
8836
- "kind": "method",
8837
- "name": "hostConnected"
8819
+ "name": "errorId",
8820
+ "type": {
8821
+ "text": "string"
8822
+ },
8823
+ "privacy": "protected"
8838
8824
  },
8839
8825
  {
8840
- "kind": "method",
8841
- "name": "hostDisconnected"
8826
+ "kind": "field",
8827
+ "name": "hintId",
8828
+ "type": {
8829
+ "text": "string"
8830
+ },
8831
+ "privacy": "protected"
8842
8832
  },
8843
8833
  {
8844
8834
  "kind": "field",
8845
- "name": "handleFormData",
8846
- "privacy": "private"
8835
+ "name": "labelSlot",
8836
+ "type": {
8837
+ "text": "SlotController"
8838
+ },
8839
+ "privacy": "protected"
8847
8840
  },
8848
8841
  {
8849
8842
  "kind": "field",
8850
- "name": "host",
8851
- "default": "host"
8843
+ "name": "hintSlot",
8844
+ "type": {
8845
+ "text": "SlotController"
8846
+ },
8847
+ "privacy": "protected"
8852
8848
  },
8853
8849
  {
8854
8850
  "kind": "field",
8855
- "name": "options",
8856
- "default": "options"
8857
- }
8858
- ]
8859
- }
8860
- ],
8861
- "exports": [
8862
- {
8863
- "kind": "js",
8864
- "name": "FormDataController",
8865
- "declaration": {
8866
- "name": "FormDataController",
8867
- "module": "src/common/controllers/FormDataController.ts"
8868
- }
8869
- }
8870
- ]
8871
- },
8872
- {
8873
- "kind": "javascript-module",
8874
- "path": "src/common/controllers/LightDismissController.ts",
8875
- "declarations": [
8876
- {
8877
- "kind": "class",
8878
- "description": "",
8879
- "name": "LightDismissController",
8880
- "members": [
8851
+ "name": "errorSlot",
8852
+ "type": {
8853
+ "text": "SlotController"
8854
+ },
8855
+ "privacy": "protected"
8856
+ },
8881
8857
  {
8882
8858
  "kind": "field",
8883
- "name": "shortcut",
8859
+ "name": "formData",
8884
8860
  "type": {
8885
- "text": "ShortcutController"
8861
+ "text": "FormDataController"
8886
8862
  },
8887
- "privacy": "private",
8888
- "default": "new ShortcutController(this.host, { Escape: this.handleEsc })"
8863
+ "privacy": "protected"
8889
8864
  },
8890
8865
  {
8891
- "kind": "method",
8892
- "name": "hostConnected"
8866
+ "kind": "field",
8867
+ "name": "formValue",
8868
+ "type": {
8869
+ "text": "string | undefined"
8870
+ },
8871
+ "privacy": "protected"
8893
8872
  },
8894
8873
  {
8895
- "kind": "method",
8896
- "name": "hostDisconnected"
8874
+ "kind": "field",
8875
+ "name": "hasError",
8876
+ "type": {
8877
+ "text": "boolean"
8878
+ },
8879
+ "privacy": "protected"
8897
8880
  },
8898
8881
  {
8899
8882
  "kind": "field",
8900
- "name": "handleEsc",
8901
- "privacy": "private"
8883
+ "name": "hasHint",
8884
+ "type": {
8885
+ "text": "boolean"
8886
+ },
8887
+ "privacy": "protected"
8902
8888
  },
8903
8889
  {
8904
- "kind": "field",
8905
- "name": "handleClickOut",
8906
- "privacy": "private"
8890
+ "kind": "method",
8891
+ "name": "handleChange",
8892
+ "privacy": "protected",
8893
+ "return": {
8894
+ "type": {
8895
+ "text": "void"
8896
+ }
8897
+ },
8898
+ "parameters": [
8899
+ {
8900
+ "name": "e",
8901
+ "type": {
8902
+ "text": "Event"
8903
+ }
8904
+ }
8905
+ ]
8907
8906
  },
8908
8907
  {
8909
- "kind": "field",
8910
- "name": "host",
8911
- "default": "host"
8908
+ "kind": "method",
8909
+ "name": "handleInput",
8910
+ "privacy": "protected",
8911
+ "return": {
8912
+ "type": {
8913
+ "text": "void"
8914
+ }
8915
+ },
8916
+ "parameters": [
8917
+ {
8918
+ "name": "e",
8919
+ "type": {
8920
+ "text": "Event"
8921
+ }
8922
+ }
8923
+ ]
8912
8924
  },
8913
8925
  {
8914
- "kind": "field",
8915
- "name": "options",
8916
- "default": "options"
8926
+ "kind": "method",
8927
+ "name": "renderLabel",
8928
+ "privacy": "protected",
8929
+ "return": {
8930
+ "type": {
8931
+ "text": "TemplateResult"
8932
+ }
8933
+ }
8934
+ },
8935
+ {
8936
+ "kind": "method",
8937
+ "name": "renderError",
8938
+ "privacy": "protected",
8939
+ "return": {
8940
+ "type": {
8941
+ "text": "TemplateResult"
8942
+ }
8943
+ }
8944
+ },
8945
+ {
8946
+ "kind": "method",
8947
+ "name": "getDescribedBy",
8948
+ "privacy": "protected",
8949
+ "return": {
8950
+ "type": {
8951
+ "text": "string | undefined"
8952
+ }
8953
+ }
8954
+ },
8955
+ {
8956
+ "kind": "method",
8957
+ "name": "getInvalid",
8958
+ "privacy": "protected",
8959
+ "return": {
8960
+ "type": {
8961
+ "text": "\"true\" | undefined"
8962
+ }
8963
+ }
8917
8964
  }
8918
8965
  ]
8919
- }
8920
- ],
8921
- "exports": [
8922
- {
8923
- "kind": "js",
8924
- "name": "LightDismissController",
8925
- "declaration": {
8926
- "name": "LightDismissController",
8927
- "module": "src/common/controllers/LightDismissController.ts"
8928
- }
8929
- }
8930
- ]
8931
- },
8932
- {
8933
- "kind": "javascript-module",
8934
- "path": "src/common/controllers/LightDomController.ts",
8935
- "declarations": [
8966
+ },
8936
8967
  {
8937
- "kind": "class",
8968
+ "kind": "mixin",
8938
8969
  "description": "",
8939
- "name": "LightDomController",
8970
+ "name": "FormAssociatedMixin",
8940
8971
  "members": [
8941
8972
  {
8942
8973
  "kind": "field",
8943
- "name": "container",
8974
+ "name": "labelSlot",
8975
+ "privacy": "protected",
8976
+ "default": "new SlotController(this, \"label\")"
8977
+ },
8978
+ {
8979
+ "kind": "field",
8980
+ "name": "errorSlot",
8981
+ "privacy": "protected",
8982
+ "default": "new SlotController(this, \"error\")"
8983
+ },
8984
+ {
8985
+ "kind": "field",
8986
+ "name": "hintSlot",
8987
+ "privacy": "protected",
8988
+ "default": "new SlotController(this, \"hint\")"
8989
+ },
8990
+ {
8991
+ "kind": "field",
8992
+ "name": "formData",
8993
+ "privacy": "protected",
8994
+ "default": "new FormDataController(this, { value: () => this.formValue })"
8995
+ },
8996
+ {
8997
+ "kind": "field",
8998
+ "name": "formValue",
8999
+ "privacy": "protected"
9000
+ },
9001
+ {
9002
+ "kind": "field",
9003
+ "name": "inputId",
8944
9004
  "type": {
8945
- "text": "HTMLElement"
9005
+ "text": "string"
8946
9006
  },
8947
- "privacy": "private"
9007
+ "privacy": "protected",
9008
+ "default": "\"input\""
8948
9009
  },
8949
9010
  {
8950
- "kind": "method",
8951
- "name": "hostUpdated"
9011
+ "kind": "field",
9012
+ "name": "errorId",
9013
+ "type": {
9014
+ "text": "string"
9015
+ },
9016
+ "privacy": "protected",
9017
+ "default": "\"error\""
8952
9018
  },
8953
9019
  {
8954
- "kind": "method",
8955
- "name": "hostDisconnected"
9020
+ "kind": "field",
9021
+ "name": "hintId",
9022
+ "type": {
9023
+ "text": "string"
9024
+ },
9025
+ "privacy": "protected",
9026
+ "default": "\"hint\""
8956
9027
  },
8957
9028
  {
8958
9029
  "kind": "field",
8959
- "name": "host",
8960
- "default": "host"
9030
+ "name": "label",
9031
+ "type": {
9032
+ "text": "string"
9033
+ },
9034
+ "default": "\"\"",
9035
+ "description": "Label for the input.",
9036
+ "attribute": "label"
8961
9037
  },
8962
9038
  {
8963
9039
  "kind": "field",
8964
- "name": "options",
8965
- "default": "options"
8966
- }
8967
- ]
8968
- }
8969
- ],
8970
- "exports": [
8971
- {
8972
- "kind": "js",
8973
- "name": "LightDomController",
8974
- "declaration": {
8975
- "name": "LightDomController",
8976
- "module": "src/common/controllers/LightDomController.ts"
8977
- }
8978
- }
8979
- ]
8980
- },
8981
- {
8982
- "kind": "javascript-module",
8983
- "path": "src/common/controllers/LightSlotController.ts",
8984
- "declarations": [
8985
- {
8986
- "kind": "class",
8987
- "description": "Handles cases where a component needs to render to light DOM,\nand potentially sync component properties to user-supplied content.",
8988
- "name": "LightSlotController",
8989
- "members": [
9040
+ "name": "hint",
9041
+ "type": {
9042
+ "text": "string | undefined"
9043
+ },
9044
+ "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
9045
+ "attribute": "hint"
9046
+ },
8990
9047
  {
8991
9048
  "kind": "field",
8992
- "name": "renderHook",
9049
+ "name": "hideLabel",
8993
9050
  "type": {
8994
- "text": "Comment"
9051
+ "text": "boolean"
8995
9052
  },
8996
- "privacy": "private"
9053
+ "default": "false",
9054
+ "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
9055
+ "attribute": "hide-label"
8997
9056
  },
8998
9057
  {
8999
9058
  "kind": "field",
9000
- "name": "lightDom",
9059
+ "name": "placeholder",
9001
9060
  "type": {
9002
- "text": "LightDomController"
9061
+ "text": "string | undefined"
9003
9062
  },
9004
- "privacy": "private",
9005
- "default": "new LightDomController(host, {\n render: () => (this.hasContent ? nothing : this.options.render()),\n renderOptions: { renderBefore: this.renderHook },\n })"
9063
+ "description": "Placeholder text to display within the input.",
9064
+ "attribute": "placeholder"
9006
9065
  },
9007
9066
  {
9008
- "kind": "method",
9009
- "name": "hostConnected",
9010
- "inheritedFrom": {
9011
- "name": "SlotController",
9012
- "module": "src/common/controllers/SlotController.ts"
9013
- }
9067
+ "kind": "field",
9068
+ "name": "error",
9069
+ "type": {
9070
+ "text": "string | undefined"
9071
+ },
9072
+ "description": "Optional error to be shown with the input. Alternatively use the error slot.",
9073
+ "attribute": "error"
9014
9074
  },
9015
9075
  {
9016
- "kind": "method",
9017
- "name": "hostDisconnected",
9018
- "inheritedFrom": {
9019
- "name": "SlotController",
9020
- "module": "src/common/controllers/SlotController.ts"
9021
- }
9076
+ "kind": "field",
9077
+ "name": "required",
9078
+ "type": {
9079
+ "text": "boolean"
9080
+ },
9081
+ "default": "false",
9082
+ "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
9083
+ "attribute": "required"
9022
9084
  },
9023
9085
  {
9024
9086
  "kind": "field",
9025
- "name": "onChange",
9087
+ "name": "expand",
9088
+ "type": {
9089
+ "text": "boolean"
9090
+ },
9091
+ "default": "false",
9092
+ "description": "Controls whether the input expands to fill the width of its container.",
9093
+ "attribute": "expand",
9094
+ "reflects": true
9095
+ },
9096
+ {
9097
+ "kind": "method",
9098
+ "name": "handleInput",
9026
9099
  "privacy": "protected",
9027
9100
  "parameters": [
9028
9101
  {
9029
- "name": "_e",
9102
+ "name": "e",
9030
9103
  "type": {
9031
9104
  "text": "Event"
9032
9105
  }
9033
9106
  }
9034
- ],
9035
- "inheritedFrom": {
9036
- "name": "SlotController",
9037
- "module": "src/common/controllers/SlotController.ts"
9038
- }
9107
+ ]
9039
9108
  },
9040
9109
  {
9041
9110
  "kind": "method",
9042
- "name": "syncLightDom",
9043
- "privacy": "private"
9111
+ "name": "handleChange",
9112
+ "privacy": "protected",
9113
+ "parameters": [
9114
+ {
9115
+ "name": "e",
9116
+ "type": {
9117
+ "text": "Event"
9118
+ }
9119
+ }
9120
+ ]
9044
9121
  },
9045
9122
  {
9046
- "kind": "field",
9047
- "name": "options",
9048
- "default": "options"
9123
+ "kind": "method",
9124
+ "name": "renderLabel",
9125
+ "privacy": "protected"
9049
9126
  },
9050
9127
  {
9051
- "kind": "field",
9052
- "name": "hasContent",
9053
- "inheritedFrom": {
9054
- "name": "SlotController",
9055
- "module": "src/common/controllers/SlotController.ts"
9056
- }
9128
+ "kind": "method",
9129
+ "name": "renderError",
9130
+ "privacy": "protected"
9057
9131
  },
9058
9132
  {
9059
- "kind": "field",
9060
- "name": "isEmpty",
9061
- "inheritedFrom": {
9062
- "name": "SlotController",
9063
- "module": "src/common/controllers/SlotController.ts"
9064
- }
9133
+ "kind": "method",
9134
+ "name": "getDescribedBy",
9135
+ "privacy": "protected"
9065
9136
  },
9066
9137
  {
9067
- "kind": "field",
9068
- "name": "content",
9069
- "inheritedFrom": {
9070
- "name": "SlotController",
9071
- "module": "src/common/controllers/SlotController.ts"
9072
- }
9138
+ "kind": "method",
9139
+ "name": "getInvalid",
9140
+ "privacy": "protected"
9073
9141
  },
9074
9142
  {
9075
9143
  "kind": "field",
9076
- "name": "handleSlotChange",
9077
- "privacy": "private",
9078
- "inheritedFrom": {
9079
- "name": "SlotController",
9080
- "module": "src/common/controllers/SlotController.ts"
9081
- }
9144
+ "name": "hasHint",
9145
+ "privacy": "protected"
9082
9146
  },
9083
9147
  {
9084
9148
  "kind": "field",
9085
- "name": "host",
9086
- "default": "host",
9087
- "inheritedFrom": {
9088
- "name": "SlotController",
9089
- "module": "src/common/controllers/SlotController.ts"
9090
- }
9149
+ "name": "hasError",
9150
+ "privacy": "protected"
9151
+ }
9152
+ ],
9153
+ "events": [
9154
+ {
9155
+ "name": "input",
9156
+ "type": {
9157
+ "text": "NordEvent"
9158
+ },
9159
+ "description": "Fired as the user types into the input."
9091
9160
  },
9092
9161
  {
9093
- "kind": "field",
9094
- "name": "slotName",
9095
- "default": "slotName",
9096
- "inheritedFrom": {
9097
- "name": "SlotController",
9098
- "module": "src/common/controllers/SlotController.ts"
9099
- }
9162
+ "name": "change",
9163
+ "type": {
9164
+ "text": "NordEvent"
9165
+ },
9166
+ "description": "Fired whenever the input's value is changed via user interaction."
9100
9167
  }
9101
9168
  ],
9102
- "superclass": {
9103
- "name": "SlotController",
9104
- "module": "/src/common/controllers/SlotController.js"
9105
- },
9106
- "status": null,
9107
- "category": null
9169
+ "attributes": [
9170
+ {
9171
+ "name": "label",
9172
+ "type": {
9173
+ "text": "string"
9174
+ },
9175
+ "default": "\"\"",
9176
+ "description": "Label for the input.",
9177
+ "fieldName": "label"
9178
+ },
9179
+ {
9180
+ "name": "hint",
9181
+ "type": {
9182
+ "text": "string | undefined"
9183
+ },
9184
+ "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
9185
+ "fieldName": "hint"
9186
+ },
9187
+ {
9188
+ "name": "hide-label",
9189
+ "type": {
9190
+ "text": "boolean"
9191
+ },
9192
+ "default": "false",
9193
+ "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
9194
+ "fieldName": "hideLabel"
9195
+ },
9196
+ {
9197
+ "name": "placeholder",
9198
+ "type": {
9199
+ "text": "string | undefined"
9200
+ },
9201
+ "description": "Placeholder text to display within the input.",
9202
+ "fieldName": "placeholder"
9203
+ },
9204
+ {
9205
+ "name": "error",
9206
+ "type": {
9207
+ "text": "string | undefined"
9208
+ },
9209
+ "description": "Optional error to be shown with the input. Alternatively use the error slot.",
9210
+ "fieldName": "error"
9211
+ },
9212
+ {
9213
+ "name": "required",
9214
+ "type": {
9215
+ "text": "boolean"
9216
+ },
9217
+ "default": "false",
9218
+ "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
9219
+ "fieldName": "required"
9220
+ },
9221
+ {
9222
+ "name": "expand",
9223
+ "type": {
9224
+ "text": "boolean"
9225
+ },
9226
+ "default": "false",
9227
+ "description": "Controls whether the input expands to fill the width of its container.",
9228
+ "fieldName": "expand"
9229
+ }
9230
+ ],
9231
+ "parameters": [
9232
+ {
9233
+ "name": "superClass",
9234
+ "type": {
9235
+ "text": "T"
9236
+ }
9237
+ }
9238
+ ]
9108
9239
  }
9109
9240
  ],
9110
9241
  "exports": [
9111
9242
  {
9112
9243
  "kind": "js",
9113
- "name": "LightSlotController",
9244
+ "name": "FormAssociatedMixinInterface",
9114
9245
  "declaration": {
9115
- "name": "LightSlotController",
9116
- "module": "src/common/controllers/LightSlotController.ts"
9246
+ "name": "FormAssociatedMixinInterface",
9247
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
9248
+ }
9249
+ },
9250
+ {
9251
+ "kind": "js",
9252
+ "name": "FormAssociatedMixin",
9253
+ "declaration": {
9254
+ "name": "FormAssociatedMixin",
9255
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
9117
9256
  }
9118
9257
  }
9119
9258
  ]
9120
9259
  },
9121
9260
  {
9122
9261
  "kind": "javascript-module",
9123
- "path": "src/common/controllers/PortalController.ts",
9262
+ "path": "src/common/mixins/InputMixin.ts",
9124
9263
  "declarations": [
9125
9264
  {
9126
9265
  "kind": "class",
9127
9266
  "description": "",
9128
- "name": "PortalController",
9267
+ "name": "InputMixinInterface",
9268
+ "members": [
9269
+ {
9270
+ "kind": "field",
9271
+ "name": "name",
9272
+ "type": {
9273
+ "text": "string"
9274
+ }
9275
+ },
9276
+ {
9277
+ "kind": "field",
9278
+ "name": "value",
9279
+ "type": {
9280
+ "text": "string"
9281
+ }
9282
+ },
9283
+ {
9284
+ "kind": "field",
9285
+ "name": "disabled",
9286
+ "type": {
9287
+ "text": "boolean"
9288
+ }
9289
+ },
9290
+ {
9291
+ "kind": "field",
9292
+ "name": "form",
9293
+ "type": {
9294
+ "text": "HTMLFormElement | undefined"
9295
+ }
9296
+ }
9297
+ ]
9298
+ },
9299
+ {
9300
+ "kind": "mixin",
9301
+ "description": "",
9302
+ "name": "InputMixin",
9129
9303
  "members": [
9130
9304
  {
9131
9305
  "kind": "field",
9132
- "name": "renderHook",
9306
+ "name": "disabled",
9133
9307
  "type": {
9134
- "text": "Comment"
9308
+ "text": "boolean"
9135
9309
  },
9136
- "privacy": "private"
9310
+ "default": "false",
9311
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
9312
+ "attribute": "disabled",
9313
+ "reflects": true
9137
9314
  },
9138
9315
  {
9139
9316
  "kind": "field",
9140
- "name": "lightDom",
9317
+ "name": "name",
9141
9318
  "type": {
9142
- "text": "LightDomController"
9319
+ "text": "string | undefined"
9143
9320
  },
9144
- "privacy": "private",
9145
- "default": "new LightDomController(host, {\n render: () => this.options.render.call(host),\n container: options.outlet,\n renderOptions: {\n renderBefore: this.renderHook,\n host,\n },\n })"
9321
+ "description": "The name of the form component.",
9322
+ "attribute": "name"
9146
9323
  },
9147
9324
  {
9148
- "kind": "method",
9149
- "name": "hostConnected"
9325
+ "kind": "field",
9326
+ "name": "value",
9327
+ "type": {
9328
+ "text": "string"
9329
+ },
9330
+ "default": "\"\"",
9331
+ "description": "The value of the form component.",
9332
+ "attribute": "value"
9150
9333
  },
9151
9334
  {
9152
- "kind": "method",
9153
- "name": "hostUpdated"
9154
- },
9335
+ "kind": "field",
9336
+ "name": "form",
9337
+ "privacy": "protected",
9338
+ "description": "Gets the form, if any, associated with the form element."
9339
+ }
9340
+ ],
9341
+ "attributes": [
9155
9342
  {
9156
- "kind": "method",
9157
- "name": "hostDisconnected"
9343
+ "name": "disabled",
9344
+ "type": {
9345
+ "text": "boolean"
9346
+ },
9347
+ "default": "false",
9348
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
9349
+ "fieldName": "disabled"
9158
9350
  },
9159
9351
  {
9160
- "kind": "field",
9161
- "name": "host",
9162
- "default": "host"
9352
+ "name": "name",
9353
+ "type": {
9354
+ "text": "string | undefined"
9355
+ },
9356
+ "description": "The name of the form component.",
9357
+ "fieldName": "name"
9163
9358
  },
9164
9359
  {
9165
- "kind": "field",
9166
- "name": "options",
9167
- "default": "options"
9360
+ "name": "value",
9361
+ "type": {
9362
+ "text": "string"
9363
+ },
9364
+ "default": "\"\"",
9365
+ "description": "The value of the form component.",
9366
+ "fieldName": "value"
9367
+ }
9368
+ ],
9369
+ "parameters": [
9370
+ {
9371
+ "name": "superClass",
9372
+ "type": {
9373
+ "text": "T"
9374
+ }
9168
9375
  }
9169
9376
  ]
9170
9377
  }
@@ -9172,64 +9379,80 @@
9172
9379
  "exports": [
9173
9380
  {
9174
9381
  "kind": "js",
9175
- "name": "PortalController",
9382
+ "name": "InputMixinInterface",
9176
9383
  "declaration": {
9177
- "name": "PortalController",
9178
- "module": "src/common/controllers/PortalController.ts"
9384
+ "name": "InputMixinInterface",
9385
+ "module": "src/common/mixins/InputMixin.ts"
9386
+ }
9387
+ },
9388
+ {
9389
+ "kind": "js",
9390
+ "name": "InputMixin",
9391
+ "declaration": {
9392
+ "name": "InputMixin",
9393
+ "module": "src/common/mixins/InputMixin.ts"
9179
9394
  }
9180
9395
  }
9181
9396
  ]
9182
9397
  },
9183
9398
  {
9184
9399
  "kind": "javascript-module",
9185
- "path": "src/common/controllers/ShortcutController.ts",
9400
+ "path": "src/common/controllers/DirectionController.ts",
9186
9401
  "declarations": [
9187
9402
  {
9188
9403
  "kind": "class",
9189
9404
  "description": "",
9190
- "name": "ShortcutController",
9405
+ "name": "DirectionController",
9191
9406
  "members": [
9192
9407
  {
9193
9408
  "kind": "field",
9194
- "name": "unregister",
9409
+ "name": "hosts",
9410
+ "privacy": "private",
9411
+ "static": true,
9412
+ "default": "new Set<ReactiveControllerHost>()"
9413
+ },
9414
+ {
9415
+ "kind": "field",
9416
+ "name": "observer",
9195
9417
  "type": {
9196
- "text": "ReturnType<typeof tinykeys> | undefined"
9418
+ "text": "MutationObserver | undefined"
9197
9419
  },
9198
- "privacy": "private"
9420
+ "privacy": "private",
9421
+ "static": true
9199
9422
  },
9200
9423
  {
9201
- "kind": "method",
9202
- "name": "hostConnected"
9424
+ "kind": "field",
9425
+ "name": "dir",
9426
+ "type": {
9427
+ "text": "WritingDirection"
9428
+ }
9203
9429
  },
9204
9430
  {
9205
- "kind": "method",
9206
- "name": "hostDisconnected"
9431
+ "kind": "field",
9432
+ "name": "isLTR"
9433
+ },
9434
+ {
9435
+ "kind": "field",
9436
+ "name": "isRTL"
9207
9437
  },
9208
9438
  {
9209
9439
  "kind": "method",
9210
- "name": "unbind"
9440
+ "name": "hostConnected"
9211
9441
  },
9212
9442
  {
9213
9443
  "kind": "method",
9214
- "name": "bind",
9215
- "parameters": [
9216
- {
9217
- "name": "shortcuts",
9218
- "type": {
9219
- "text": "KeyBindingMap"
9220
- }
9221
- }
9222
- ]
9444
+ "name": "hostDisconnected"
9223
9445
  },
9224
9446
  {
9225
- "kind": "field",
9226
- "name": "shortcuts",
9227
- "default": "shortcuts"
9447
+ "kind": "method",
9448
+ "name": "observe",
9449
+ "privacy": "private",
9450
+ "static": true
9228
9451
  },
9229
9452
  {
9230
9453
  "kind": "field",
9231
- "name": "target",
9232
- "default": "target"
9454
+ "name": "host",
9455
+ "default": "host"
9233
9456
  }
9234
9457
  ]
9235
9458
  }
@@ -9237,30 +9460,22 @@
9237
9460
  "exports": [
9238
9461
  {
9239
9462
  "kind": "js",
9240
- "name": "ShortcutController",
9241
- "declaration": {
9242
- "name": "ShortcutController",
9243
- "module": "src/common/controllers/ShortcutController.ts"
9244
- }
9245
- },
9246
- {
9247
- "kind": "js",
9248
- "name": "ShortcutMap",
9463
+ "name": "DirectionController",
9249
9464
  "declaration": {
9250
- "name": "KeyBindingMap",
9251
- "module": "src/common/controllers/ShortcutController.ts"
9465
+ "name": "DirectionController",
9466
+ "module": "src/common/controllers/DirectionController.ts"
9252
9467
  }
9253
9468
  }
9254
9469
  ]
9255
9470
  },
9256
9471
  {
9257
9472
  "kind": "javascript-module",
9258
- "path": "src/common/controllers/SlotController.ts",
9473
+ "path": "src/common/controllers/FormDataController.ts",
9259
9474
  "declarations": [
9260
9475
  {
9261
9476
  "kind": "class",
9262
9477
  "description": "",
9263
- "name": "SlotController",
9478
+ "name": "FormDataController",
9264
9479
  "members": [
9265
9480
  {
9266
9481
  "kind": "method",
@@ -9272,34 +9487,9 @@
9272
9487
  },
9273
9488
  {
9274
9489
  "kind": "field",
9275
- "name": "hasContent"
9276
- },
9277
- {
9278
- "kind": "field",
9279
- "name": "isEmpty"
9280
- },
9281
- {
9282
- "kind": "field",
9283
- "name": "content"
9284
- },
9285
- {
9286
- "kind": "field",
9287
- "name": "handleSlotChange",
9490
+ "name": "handleFormData",
9288
9491
  "privacy": "private"
9289
9492
  },
9290
- {
9291
- "kind": "method",
9292
- "name": "onChange",
9293
- "privacy": "protected",
9294
- "parameters": [
9295
- {
9296
- "name": "_e",
9297
- "type": {
9298
- "text": "Event"
9299
- }
9300
- }
9301
- ]
9302
- },
9303
9493
  {
9304
9494
  "kind": "field",
9305
9495
  "name": "host",
@@ -9307,8 +9497,8 @@
9307
9497
  },
9308
9498
  {
9309
9499
  "kind": "field",
9310
- "name": "slotName",
9311
- "default": "slotName"
9500
+ "name": "options",
9501
+ "default": "options"
9312
9502
  }
9313
9503
  ]
9314
9504
  }
@@ -9316,85 +9506,35 @@
9316
9506
  "exports": [
9317
9507
  {
9318
9508
  "kind": "js",
9319
- "name": "SlotController",
9509
+ "name": "FormDataController",
9320
9510
  "declaration": {
9321
- "name": "SlotController",
9322
- "module": "src/common/controllers/SlotController.ts"
9511
+ "name": "FormDataController",
9512
+ "module": "src/common/controllers/FormDataController.ts"
9323
9513
  }
9324
9514
  }
9325
9515
  ]
9326
9516
  },
9327
9517
  {
9328
9518
  "kind": "javascript-module",
9329
- "path": "src/common/controllers/SwipeController.ts",
9519
+ "path": "src/common/controllers/LightDismissController.ts",
9330
9520
  "declarations": [
9331
9521
  {
9332
9522
  "kind": "class",
9333
9523
  "description": "",
9334
- "name": "SwipeController",
9335
- "members": [
9336
- {
9337
- "kind": "field",
9338
- "name": "host",
9339
- "type": {
9340
- "text": "ReactiveElement"
9341
- },
9342
- "privacy": "private",
9343
- "default": "host"
9344
- },
9345
- {
9346
- "kind": "field",
9347
- "name": "attached",
9348
- "type": {
9349
- "text": "boolean"
9350
- },
9351
- "privacy": "private",
9352
- "default": "false"
9353
- },
9354
- {
9355
- "kind": "field",
9356
- "name": "initialTouchX",
9357
- "type": {
9358
- "text": "number"
9359
- },
9360
- "privacy": "private",
9361
- "default": "0"
9362
- },
9363
- {
9364
- "kind": "field",
9365
- "name": "initialTouchY",
9366
- "type": {
9367
- "text": "number"
9368
- },
9369
- "privacy": "private",
9370
- "default": "0"
9371
- },
9372
- {
9373
- "kind": "field",
9374
- "name": "target",
9375
- "type": {
9376
- "text": "() => HTMLElement"
9377
- },
9378
- "privacy": "private"
9379
- },
9380
- {
9381
- "kind": "field",
9382
- "name": "onSwipeEnd",
9383
- "type": {
9384
- "text": "SwipeControllerOptions[\"onSwipeEnd\"]"
9385
- },
9386
- "privacy": "private"
9387
- },
9524
+ "name": "LightDismissController",
9525
+ "members": [
9388
9526
  {
9389
9527
  "kind": "field",
9390
- "name": "matchesGesture",
9528
+ "name": "shortcut",
9391
9529
  "type": {
9392
- "text": "SwipeControllerOptions[\"matchesGesture\"]"
9393
- }
9530
+ "text": "ShortcutController"
9531
+ },
9532
+ "privacy": "private",
9533
+ "default": "new ShortcutController(this.host, { Escape: this.handleEsc })"
9394
9534
  },
9395
9535
  {
9396
9536
  "kind": "method",
9397
- "name": "hostUpdated"
9537
+ "name": "hostConnected"
9398
9538
  },
9399
9539
  {
9400
9540
  "kind": "method",
@@ -9402,37 +9542,23 @@
9402
9542
  },
9403
9543
  {
9404
9544
  "kind": "field",
9405
- "name": "handleTouchStart",
9545
+ "name": "handleEsc",
9406
9546
  "privacy": "private"
9407
9547
  },
9408
9548
  {
9409
9549
  "kind": "field",
9410
- "name": "handleTouchEnd",
9550
+ "name": "handleClickOut",
9411
9551
  "privacy": "private"
9412
- }
9413
- ]
9414
- },
9415
- {
9416
- "kind": "function",
9417
- "name": "isHorizontalSwipe",
9418
- "parameters": [
9552
+ },
9419
9553
  {
9420
- "name": "{ distX, distY }",
9421
- "type": {
9422
- "text": "SwipeDetails"
9423
- }
9424
- }
9425
- ]
9426
- },
9427
- {
9428
- "kind": "function",
9429
- "name": "isDownwardsSwipe",
9430
- "parameters": [
9554
+ "kind": "field",
9555
+ "name": "host",
9556
+ "default": "host"
9557
+ },
9431
9558
  {
9432
- "name": "{ distX, distY }",
9433
- "type": {
9434
- "text": "SwipeDetails"
9435
- }
9559
+ "kind": "field",
9560
+ "name": "options",
9561
+ "default": "options"
9436
9562
  }
9437
9563
  ]
9438
9564
  }
@@ -9440,56 +9566,48 @@
9440
9566
  "exports": [
9441
9567
  {
9442
9568
  "kind": "js",
9443
- "name": "SwipeController",
9444
- "declaration": {
9445
- "name": "SwipeController",
9446
- "module": "src/common/controllers/SwipeController.ts"
9447
- }
9448
- },
9449
- {
9450
- "kind": "js",
9451
- "name": "isHorizontalSwipe",
9452
- "declaration": {
9453
- "name": "isHorizontalSwipe",
9454
- "module": "src/common/controllers/SwipeController.ts"
9455
- }
9456
- },
9457
- {
9458
- "kind": "js",
9459
- "name": "isDownwardsSwipe",
9569
+ "name": "LightDismissController",
9460
9570
  "declaration": {
9461
- "name": "isDownwardsSwipe",
9462
- "module": "src/common/controllers/SwipeController.ts"
9571
+ "name": "LightDismissController",
9572
+ "module": "src/common/controllers/LightDismissController.ts"
9463
9573
  }
9464
9574
  }
9465
9575
  ]
9466
9576
  },
9467
9577
  {
9468
9578
  "kind": "javascript-module",
9469
- "path": "src/common/mixins/DraftComponentMixin.ts",
9579
+ "path": "src/common/controllers/LightDomController.ts",
9470
9580
  "declarations": [
9471
9581
  {
9472
- "kind": "mixin",
9582
+ "kind": "class",
9473
9583
  "description": "",
9474
- "name": "DraftComponentMixin",
9584
+ "name": "LightDomController",
9475
9585
  "members": [
9476
9586
  {
9477
9587
  "kind": "field",
9478
- "name": "_warningLogged",
9588
+ "name": "container",
9479
9589
  "type": {
9480
- "text": "boolean"
9590
+ "text": "HTMLElement"
9481
9591
  },
9482
- "privacy": "private",
9483
- "static": true,
9484
- "default": "false"
9485
- }
9486
- ],
9487
- "parameters": [
9592
+ "privacy": "private"
9593
+ },
9488
9594
  {
9489
- "name": "superClass",
9490
- "type": {
9491
- "text": "T"
9492
- }
9595
+ "kind": "method",
9596
+ "name": "hostUpdated"
9597
+ },
9598
+ {
9599
+ "kind": "method",
9600
+ "name": "hostDisconnected"
9601
+ },
9602
+ {
9603
+ "kind": "field",
9604
+ "name": "host",
9605
+ "default": "host"
9606
+ },
9607
+ {
9608
+ "kind": "field",
9609
+ "name": "options",
9610
+ "default": "options"
9493
9611
  }
9494
9612
  ]
9495
9613
  }
@@ -9497,619 +9615,468 @@
9497
9615
  "exports": [
9498
9616
  {
9499
9617
  "kind": "js",
9500
- "name": "DraftComponentMixin",
9618
+ "name": "LightDomController",
9501
9619
  "declaration": {
9502
- "name": "DraftComponentMixin",
9503
- "module": "src/common/mixins/DraftComponentMixin.ts"
9620
+ "name": "LightDomController",
9621
+ "module": "src/common/controllers/LightDomController.ts"
9504
9622
  }
9505
9623
  }
9506
9624
  ]
9507
9625
  },
9508
9626
  {
9509
9627
  "kind": "javascript-module",
9510
- "path": "src/common/mixins/FocusableMixin.ts",
9628
+ "path": "src/common/controllers/LightSlotController.ts",
9511
9629
  "declarations": [
9512
9630
  {
9513
9631
  "kind": "class",
9514
- "description": "",
9515
- "name": "FocusableMixinInterface",
9632
+ "description": "Handles cases where a component needs to render to light DOM,\nand potentially sync component properties to user-supplied content.",
9633
+ "name": "LightSlotController",
9516
9634
  "members": [
9517
9635
  {
9518
9636
  "kind": "field",
9519
- "name": "focusableRef",
9637
+ "name": "renderHook",
9520
9638
  "type": {
9521
- "text": "Ref<HTMLElement>"
9639
+ "text": "Comment"
9522
9640
  },
9523
- "privacy": "protected"
9641
+ "privacy": "private"
9524
9642
  },
9525
9643
  {
9526
- "kind": "method",
9527
- "name": "focus",
9528
- "return": {
9529
- "type": {
9530
- "text": "void"
9531
- }
9644
+ "kind": "field",
9645
+ "name": "lightDom",
9646
+ "type": {
9647
+ "text": "LightDomController"
9532
9648
  },
9533
- "parameters": [
9534
- {
9535
- "name": "options",
9536
- "optional": true,
9537
- "type": {
9538
- "text": "FocusOptions"
9539
- }
9540
- }
9541
- ]
9649
+ "privacy": "private",
9650
+ "default": "new LightDomController(host, {\n render: () => (this.hasContent ? nothing : this.options.render()),\n renderOptions: { renderBefore: this.renderHook },\n })"
9542
9651
  },
9543
9652
  {
9544
9653
  "kind": "method",
9545
- "name": "blur",
9546
- "return": {
9547
- "type": {
9548
- "text": "void"
9549
- }
9654
+ "name": "hostConnected",
9655
+ "inheritedFrom": {
9656
+ "name": "SlotController",
9657
+ "module": "src/common/controllers/SlotController.ts"
9550
9658
  }
9551
9659
  },
9552
9660
  {
9553
9661
  "kind": "method",
9554
- "name": "click",
9555
- "return": {
9556
- "type": {
9557
- "text": "void"
9558
- }
9662
+ "name": "hostDisconnected",
9663
+ "inheritedFrom": {
9664
+ "name": "SlotController",
9665
+ "module": "src/common/controllers/SlotController.ts"
9559
9666
  }
9560
- }
9561
- ]
9562
- },
9563
- {
9564
- "kind": "mixin",
9565
- "description": "",
9566
- "name": "FocusableMixin",
9567
- "members": [
9568
- {
9569
- "kind": "field",
9570
- "name": "focusableRef",
9571
- "privacy": "protected"
9572
9667
  },
9573
9668
  {
9574
- "kind": "method",
9575
- "name": "focus",
9669
+ "kind": "field",
9670
+ "name": "onChange",
9671
+ "privacy": "protected",
9576
9672
  "parameters": [
9577
9673
  {
9578
- "name": "options",
9579
- "optional": true,
9674
+ "name": "_e",
9580
9675
  "type": {
9581
- "text": "FocusOptions"
9582
- },
9583
- "description": "An object which controls aspects of the focusing process."
9676
+ "text": "Event"
9677
+ }
9584
9678
  }
9585
9679
  ],
9586
- "description": "Programmatically move focus to the component."
9680
+ "inheritedFrom": {
9681
+ "name": "SlotController",
9682
+ "module": "src/common/controllers/SlotController.ts"
9683
+ }
9587
9684
  },
9588
9685
  {
9589
9686
  "kind": "method",
9590
- "name": "blur",
9591
- "description": "Programmatically remove focus from the component."
9687
+ "name": "syncLightDom",
9688
+ "privacy": "private"
9592
9689
  },
9593
- {
9594
- "kind": "method",
9595
- "name": "click",
9596
- "description": "Programmatically simulates a click on the component."
9597
- }
9598
- ],
9599
- "parameters": [
9600
- {
9601
- "name": "superClass",
9602
- "type": {
9603
- "text": "T"
9604
- }
9605
- }
9606
- ]
9607
- }
9608
- ],
9609
- "exports": [
9610
- {
9611
- "kind": "js",
9612
- "name": "FocusableMixinInterface",
9613
- "declaration": {
9614
- "name": "FocusableMixinInterface",
9615
- "module": "src/common/mixins/FocusableMixin.ts"
9616
- }
9617
- },
9618
- {
9619
- "kind": "js",
9620
- "name": "FocusableMixin",
9621
- "declaration": {
9622
- "name": "FocusableMixin",
9623
- "module": "src/common/mixins/FocusableMixin.ts"
9624
- }
9625
- }
9626
- ]
9627
- },
9628
- {
9629
- "kind": "javascript-module",
9630
- "path": "src/common/mixins/FormAssociatedMixin.ts",
9631
- "declarations": [
9632
- {
9633
- "kind": "class",
9634
- "description": "",
9635
- "name": "FormAssociatedMixinInterface",
9636
- "members": [
9637
9690
  {
9638
9691
  "kind": "field",
9639
- "name": "label",
9640
- "type": {
9641
- "text": "string"
9642
- }
9692
+ "name": "options",
9693
+ "default": "options"
9643
9694
  },
9644
9695
  {
9645
9696
  "kind": "field",
9646
- "name": "required",
9647
- "type": {
9648
- "text": "boolean"
9697
+ "name": "hasContent",
9698
+ "inheritedFrom": {
9699
+ "name": "SlotController",
9700
+ "module": "src/common/controllers/SlotController.ts"
9649
9701
  }
9650
9702
  },
9651
9703
  {
9652
9704
  "kind": "field",
9653
- "name": "hint",
9654
- "type": {
9655
- "text": "string | undefined"
9705
+ "name": "isEmpty",
9706
+ "inheritedFrom": {
9707
+ "name": "SlotController",
9708
+ "module": "src/common/controllers/SlotController.ts"
9656
9709
  }
9657
9710
  },
9658
9711
  {
9659
9712
  "kind": "field",
9660
- "name": "hideLabel",
9661
- "type": {
9662
- "text": "boolean"
9713
+ "name": "content",
9714
+ "inheritedFrom": {
9715
+ "name": "SlotController",
9716
+ "module": "src/common/controllers/SlotController.ts"
9663
9717
  }
9664
9718
  },
9665
9719
  {
9666
9720
  "kind": "field",
9667
- "name": "placeholder",
9668
- "type": {
9669
- "text": "string | undefined"
9721
+ "name": "handleSlotChange",
9722
+ "privacy": "private",
9723
+ "inheritedFrom": {
9724
+ "name": "SlotController",
9725
+ "module": "src/common/controllers/SlotController.ts"
9670
9726
  }
9671
9727
  },
9672
9728
  {
9673
9729
  "kind": "field",
9674
- "name": "error",
9675
- "type": {
9676
- "text": "string | undefined"
9730
+ "name": "host",
9731
+ "default": "host",
9732
+ "inheritedFrom": {
9733
+ "name": "SlotController",
9734
+ "module": "src/common/controllers/SlotController.ts"
9677
9735
  }
9678
9736
  },
9679
9737
  {
9680
9738
  "kind": "field",
9681
- "name": "expand",
9682
- "type": {
9683
- "text": "boolean"
9739
+ "name": "slotName",
9740
+ "default": "slotName",
9741
+ "inheritedFrom": {
9742
+ "name": "SlotController",
9743
+ "module": "src/common/controllers/SlotController.ts"
9684
9744
  }
9685
- },
9745
+ }
9746
+ ],
9747
+ "superclass": {
9748
+ "name": "SlotController",
9749
+ "module": "/src/common/controllers/SlotController.js"
9750
+ },
9751
+ "status": null,
9752
+ "category": null
9753
+ }
9754
+ ],
9755
+ "exports": [
9756
+ {
9757
+ "kind": "js",
9758
+ "name": "LightSlotController",
9759
+ "declaration": {
9760
+ "name": "LightSlotController",
9761
+ "module": "src/common/controllers/LightSlotController.ts"
9762
+ }
9763
+ }
9764
+ ]
9765
+ },
9766
+ {
9767
+ "kind": "javascript-module",
9768
+ "path": "src/common/controllers/PortalController.ts",
9769
+ "declarations": [
9770
+ {
9771
+ "kind": "class",
9772
+ "description": "",
9773
+ "name": "PortalController",
9774
+ "members": [
9686
9775
  {
9687
9776
  "kind": "field",
9688
- "name": "inputId",
9777
+ "name": "renderHook",
9689
9778
  "type": {
9690
- "text": "string"
9779
+ "text": "Comment"
9691
9780
  },
9692
- "privacy": "protected"
9781
+ "privacy": "private"
9693
9782
  },
9694
9783
  {
9695
9784
  "kind": "field",
9696
- "name": "errorId",
9785
+ "name": "lightDom",
9697
9786
  "type": {
9698
- "text": "string"
9787
+ "text": "LightDomController"
9699
9788
  },
9700
- "privacy": "protected"
9789
+ "privacy": "private",
9790
+ "default": "new LightDomController(host, {\n render: () => this.options.render.call(host),\n container: options.outlet,\n renderOptions: {\n renderBefore: this.renderHook,\n host,\n },\n })"
9701
9791
  },
9702
9792
  {
9703
- "kind": "field",
9704
- "name": "hintId",
9705
- "type": {
9706
- "text": "string"
9707
- },
9708
- "privacy": "protected"
9793
+ "kind": "method",
9794
+ "name": "hostConnected"
9709
9795
  },
9710
9796
  {
9711
- "kind": "field",
9712
- "name": "labelSlot",
9713
- "type": {
9714
- "text": "SlotController"
9715
- },
9716
- "privacy": "protected"
9797
+ "kind": "method",
9798
+ "name": "hostUpdated"
9717
9799
  },
9718
9800
  {
9719
- "kind": "field",
9720
- "name": "hintSlot",
9721
- "type": {
9722
- "text": "SlotController"
9723
- },
9724
- "privacy": "protected"
9801
+ "kind": "method",
9802
+ "name": "hostDisconnected"
9725
9803
  },
9726
9804
  {
9727
9805
  "kind": "field",
9728
- "name": "errorSlot",
9729
- "type": {
9730
- "text": "SlotController"
9731
- },
9732
- "privacy": "protected"
9806
+ "name": "host",
9807
+ "default": "host"
9733
9808
  },
9734
9809
  {
9735
9810
  "kind": "field",
9736
- "name": "formData",
9737
- "type": {
9738
- "text": "FormDataController"
9739
- },
9740
- "privacy": "protected"
9741
- },
9811
+ "name": "options",
9812
+ "default": "options"
9813
+ }
9814
+ ]
9815
+ }
9816
+ ],
9817
+ "exports": [
9818
+ {
9819
+ "kind": "js",
9820
+ "name": "PortalController",
9821
+ "declaration": {
9822
+ "name": "PortalController",
9823
+ "module": "src/common/controllers/PortalController.ts"
9824
+ }
9825
+ }
9826
+ ]
9827
+ },
9828
+ {
9829
+ "kind": "javascript-module",
9830
+ "path": "src/common/controllers/ShortcutController.ts",
9831
+ "declarations": [
9832
+ {
9833
+ "kind": "class",
9834
+ "description": "",
9835
+ "name": "ShortcutController",
9836
+ "members": [
9742
9837
  {
9743
9838
  "kind": "field",
9744
- "name": "formValue",
9839
+ "name": "unregister",
9745
9840
  "type": {
9746
- "text": "string | undefined"
9841
+ "text": "ReturnType<typeof tinykeys> | undefined"
9747
9842
  },
9748
- "privacy": "protected"
9843
+ "privacy": "private"
9749
9844
  },
9750
9845
  {
9751
- "kind": "field",
9752
- "name": "hasError",
9753
- "type": {
9754
- "text": "boolean"
9755
- },
9756
- "privacy": "protected"
9846
+ "kind": "method",
9847
+ "name": "hostConnected"
9757
9848
  },
9758
9849
  {
9759
- "kind": "field",
9760
- "name": "hasHint",
9761
- "type": {
9762
- "text": "boolean"
9763
- },
9764
- "privacy": "protected"
9850
+ "kind": "method",
9851
+ "name": "hostDisconnected"
9765
9852
  },
9766
9853
  {
9767
9854
  "kind": "method",
9768
- "name": "handleChange",
9769
- "privacy": "protected",
9770
- "return": {
9771
- "type": {
9772
- "text": "void"
9773
- }
9774
- },
9775
- "parameters": [
9776
- {
9777
- "name": "e",
9778
- "type": {
9779
- "text": "Event"
9780
- }
9781
- }
9782
- ]
9855
+ "name": "unbind"
9783
9856
  },
9784
9857
  {
9785
9858
  "kind": "method",
9786
- "name": "handleInput",
9787
- "privacy": "protected",
9788
- "return": {
9789
- "type": {
9790
- "text": "void"
9791
- }
9792
- },
9859
+ "name": "bind",
9793
9860
  "parameters": [
9794
9861
  {
9795
- "name": "e",
9862
+ "name": "shortcuts",
9796
9863
  "type": {
9797
- "text": "Event"
9864
+ "text": "KeyBindingMap"
9798
9865
  }
9799
9866
  }
9800
9867
  ]
9801
9868
  },
9802
9869
  {
9803
- "kind": "method",
9804
- "name": "renderLabel",
9805
- "privacy": "protected",
9806
- "return": {
9807
- "type": {
9808
- "text": "TemplateResult"
9809
- }
9810
- }
9811
- },
9812
- {
9813
- "kind": "method",
9814
- "name": "renderError",
9815
- "privacy": "protected",
9816
- "return": {
9817
- "type": {
9818
- "text": "TemplateResult"
9819
- }
9820
- }
9821
- },
9822
- {
9823
- "kind": "method",
9824
- "name": "getDescribedBy",
9825
- "privacy": "protected",
9826
- "return": {
9827
- "type": {
9828
- "text": "string | undefined"
9829
- }
9830
- }
9870
+ "kind": "field",
9871
+ "name": "shortcuts",
9872
+ "default": "shortcuts"
9831
9873
  },
9832
9874
  {
9833
- "kind": "method",
9834
- "name": "getInvalid",
9835
- "privacy": "protected",
9836
- "return": {
9837
- "type": {
9838
- "text": "\"true\" | undefined"
9839
- }
9840
- }
9875
+ "kind": "field",
9876
+ "name": "target",
9877
+ "default": "target"
9841
9878
  }
9842
9879
  ]
9880
+ }
9881
+ ],
9882
+ "exports": [
9883
+ {
9884
+ "kind": "js",
9885
+ "name": "ShortcutController",
9886
+ "declaration": {
9887
+ "name": "ShortcutController",
9888
+ "module": "src/common/controllers/ShortcutController.ts"
9889
+ }
9843
9890
  },
9844
9891
  {
9845
- "kind": "mixin",
9892
+ "kind": "js",
9893
+ "name": "ShortcutMap",
9894
+ "declaration": {
9895
+ "name": "KeyBindingMap",
9896
+ "module": "src/common/controllers/ShortcutController.ts"
9897
+ }
9898
+ }
9899
+ ]
9900
+ },
9901
+ {
9902
+ "kind": "javascript-module",
9903
+ "path": "src/common/controllers/SlotController.ts",
9904
+ "declarations": [
9905
+ {
9906
+ "kind": "class",
9846
9907
  "description": "",
9847
- "name": "FormAssociatedMixin",
9908
+ "name": "SlotController",
9848
9909
  "members": [
9849
9910
  {
9850
- "kind": "field",
9851
- "name": "labelSlot",
9852
- "privacy": "protected",
9853
- "default": "new SlotController(this, \"label\")"
9911
+ "kind": "method",
9912
+ "name": "hostConnected"
9854
9913
  },
9855
9914
  {
9856
- "kind": "field",
9857
- "name": "errorSlot",
9858
- "privacy": "protected",
9859
- "default": "new SlotController(this, \"error\")"
9915
+ "kind": "method",
9916
+ "name": "hostDisconnected"
9860
9917
  },
9861
9918
  {
9862
9919
  "kind": "field",
9863
- "name": "hintSlot",
9864
- "privacy": "protected",
9865
- "default": "new SlotController(this, \"hint\")"
9920
+ "name": "hasContent"
9866
9921
  },
9867
9922
  {
9868
9923
  "kind": "field",
9869
- "name": "formData",
9870
- "privacy": "protected",
9871
- "default": "new FormDataController(this, { value: () => this.formValue })"
9924
+ "name": "isEmpty"
9872
9925
  },
9873
9926
  {
9874
9927
  "kind": "field",
9875
- "name": "formValue",
9876
- "privacy": "protected"
9928
+ "name": "content"
9877
9929
  },
9878
9930
  {
9879
9931
  "kind": "field",
9880
- "name": "inputId",
9881
- "type": {
9882
- "text": "string"
9883
- },
9884
- "privacy": "protected",
9885
- "default": "\"input\""
9932
+ "name": "handleSlotChange",
9933
+ "privacy": "private"
9886
9934
  },
9887
9935
  {
9888
- "kind": "field",
9889
- "name": "errorId",
9890
- "type": {
9891
- "text": "string"
9892
- },
9936
+ "kind": "method",
9937
+ "name": "onChange",
9893
9938
  "privacy": "protected",
9894
- "default": "\"error\""
9939
+ "parameters": [
9940
+ {
9941
+ "name": "_e",
9942
+ "type": {
9943
+ "text": "Event"
9944
+ }
9945
+ }
9946
+ ]
9895
9947
  },
9896
9948
  {
9897
9949
  "kind": "field",
9898
- "name": "hintId",
9899
- "type": {
9900
- "text": "string"
9901
- },
9902
- "privacy": "protected",
9903
- "default": "\"hint\""
9950
+ "name": "host",
9951
+ "default": "host"
9904
9952
  },
9905
9953
  {
9906
9954
  "kind": "field",
9907
- "name": "label",
9908
- "type": {
9909
- "text": "string"
9910
- },
9911
- "default": "\"\"",
9912
- "description": "Label for the input.",
9913
- "attribute": "label"
9914
- },
9955
+ "name": "slotName",
9956
+ "default": "slotName"
9957
+ }
9958
+ ]
9959
+ }
9960
+ ],
9961
+ "exports": [
9962
+ {
9963
+ "kind": "js",
9964
+ "name": "SlotController",
9965
+ "declaration": {
9966
+ "name": "SlotController",
9967
+ "module": "src/common/controllers/SlotController.ts"
9968
+ }
9969
+ }
9970
+ ]
9971
+ },
9972
+ {
9973
+ "kind": "javascript-module",
9974
+ "path": "src/common/controllers/SwipeController.ts",
9975
+ "declarations": [
9976
+ {
9977
+ "kind": "class",
9978
+ "description": "",
9979
+ "name": "SwipeController",
9980
+ "members": [
9915
9981
  {
9916
9982
  "kind": "field",
9917
- "name": "hint",
9983
+ "name": "host",
9918
9984
  "type": {
9919
- "text": "string | undefined"
9985
+ "text": "ReactiveElement"
9920
9986
  },
9921
- "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
9922
- "attribute": "hint"
9987
+ "privacy": "private",
9988
+ "default": "host"
9923
9989
  },
9924
9990
  {
9925
9991
  "kind": "field",
9926
- "name": "hideLabel",
9992
+ "name": "attached",
9927
9993
  "type": {
9928
9994
  "text": "boolean"
9929
9995
  },
9930
- "default": "false",
9931
- "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
9932
- "attribute": "hide-label"
9996
+ "privacy": "private",
9997
+ "default": "false"
9933
9998
  },
9934
9999
  {
9935
10000
  "kind": "field",
9936
- "name": "placeholder",
10001
+ "name": "initialTouchX",
9937
10002
  "type": {
9938
- "text": "string | undefined"
10003
+ "text": "number"
9939
10004
  },
9940
- "description": "Placeholder text to display within the input.",
9941
- "attribute": "placeholder"
10005
+ "privacy": "private",
10006
+ "default": "0"
9942
10007
  },
9943
10008
  {
9944
10009
  "kind": "field",
9945
- "name": "error",
10010
+ "name": "initialTouchY",
9946
10011
  "type": {
9947
- "text": "string | undefined"
10012
+ "text": "number"
9948
10013
  },
9949
- "description": "Optional error to be shown with the input. Alternatively use the error slot.",
9950
- "attribute": "error"
10014
+ "privacy": "private",
10015
+ "default": "0"
9951
10016
  },
9952
10017
  {
9953
10018
  "kind": "field",
9954
- "name": "required",
10019
+ "name": "target",
9955
10020
  "type": {
9956
- "text": "boolean"
10021
+ "text": "() => HTMLElement"
9957
10022
  },
9958
- "default": "false",
9959
- "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
9960
- "attribute": "required"
10023
+ "privacy": "private"
9961
10024
  },
9962
10025
  {
9963
10026
  "kind": "field",
9964
- "name": "expand",
10027
+ "name": "onSwipeEnd",
9965
10028
  "type": {
9966
- "text": "boolean"
10029
+ "text": "SwipeControllerOptions[\"onSwipeEnd\"]"
9967
10030
  },
9968
- "default": "false",
9969
- "description": "Controls whether the input expands to fill the width of its container.",
9970
- "attribute": "expand",
9971
- "reflects": true
9972
- },
9973
- {
9974
- "kind": "method",
9975
- "name": "handleInput",
9976
- "privacy": "protected",
9977
- "parameters": [
9978
- {
9979
- "name": "e",
9980
- "type": {
9981
- "text": "Event"
9982
- }
9983
- }
9984
- ]
9985
- },
9986
- {
9987
- "kind": "method",
9988
- "name": "handleChange",
9989
- "privacy": "protected",
9990
- "parameters": [
9991
- {
9992
- "name": "e",
9993
- "type": {
9994
- "text": "Event"
9995
- }
9996
- }
9997
- ]
9998
- },
9999
- {
10000
- "kind": "method",
10001
- "name": "renderLabel",
10002
- "privacy": "protected"
10031
+ "privacy": "private"
10003
10032
  },
10004
10033
  {
10005
- "kind": "method",
10006
- "name": "renderError",
10007
- "privacy": "protected"
10034
+ "kind": "field",
10035
+ "name": "matchesGesture",
10036
+ "type": {
10037
+ "text": "SwipeControllerOptions[\"matchesGesture\"]"
10038
+ }
10008
10039
  },
10009
10040
  {
10010
10041
  "kind": "method",
10011
- "name": "getDescribedBy",
10012
- "privacy": "protected"
10042
+ "name": "hostUpdated"
10013
10043
  },
10014
10044
  {
10015
10045
  "kind": "method",
10016
- "name": "getInvalid",
10017
- "privacy": "protected"
10018
- },
10019
- {
10020
- "kind": "field",
10021
- "name": "hasHint",
10022
- "privacy": "protected"
10046
+ "name": "hostDisconnected"
10023
10047
  },
10024
10048
  {
10025
10049
  "kind": "field",
10026
- "name": "hasError",
10027
- "privacy": "protected"
10028
- }
10029
- ],
10030
- "events": [
10031
- {
10032
- "name": "input",
10033
- "type": {
10034
- "text": "NordEvent"
10035
- },
10036
- "description": "Fired as the user types into the input."
10037
- },
10038
- {
10039
- "name": "change",
10040
- "type": {
10041
- "text": "NordEvent"
10042
- },
10043
- "description": "Fired whenever the input's value is changed via user interaction."
10044
- }
10045
- ],
10046
- "attributes": [
10047
- {
10048
- "name": "label",
10049
- "type": {
10050
- "text": "string"
10051
- },
10052
- "default": "\"\"",
10053
- "description": "Label for the input.",
10054
- "fieldName": "label"
10055
- },
10056
- {
10057
- "name": "hint",
10058
- "type": {
10059
- "text": "string | undefined"
10060
- },
10061
- "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
10062
- "fieldName": "hint"
10063
- },
10064
- {
10065
- "name": "hide-label",
10066
- "type": {
10067
- "text": "boolean"
10068
- },
10069
- "default": "false",
10070
- "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
10071
- "fieldName": "hideLabel"
10072
- },
10073
- {
10074
- "name": "placeholder",
10075
- "type": {
10076
- "text": "string | undefined"
10077
- },
10078
- "description": "Placeholder text to display within the input.",
10079
- "fieldName": "placeholder"
10080
- },
10081
- {
10082
- "name": "error",
10083
- "type": {
10084
- "text": "string | undefined"
10085
- },
10086
- "description": "Optional error to be shown with the input. Alternatively use the error slot.",
10087
- "fieldName": "error"
10050
+ "name": "handleTouchStart",
10051
+ "privacy": "private"
10088
10052
  },
10089
10053
  {
10090
- "name": "required",
10091
- "type": {
10092
- "text": "boolean"
10093
- },
10094
- "default": "false",
10095
- "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
10096
- "fieldName": "required"
10097
- },
10054
+ "kind": "field",
10055
+ "name": "handleTouchEnd",
10056
+ "privacy": "private"
10057
+ }
10058
+ ]
10059
+ },
10060
+ {
10061
+ "kind": "function",
10062
+ "name": "isHorizontalSwipe",
10063
+ "parameters": [
10098
10064
  {
10099
- "name": "expand",
10065
+ "name": "{ distX, distY }",
10100
10066
  "type": {
10101
- "text": "boolean"
10102
- },
10103
- "default": "false",
10104
- "description": "Controls whether the input expands to fill the width of its container.",
10105
- "fieldName": "expand"
10067
+ "text": "SwipeDetails"
10068
+ }
10106
10069
  }
10107
- ],
10070
+ ]
10071
+ },
10072
+ {
10073
+ "kind": "function",
10074
+ "name": "isDownwardsSwipe",
10108
10075
  "parameters": [
10109
10076
  {
10110
- "name": "superClass",
10077
+ "name": "{ distX, distY }",
10111
10078
  "type": {
10112
- "text": "T"
10079
+ "text": "SwipeDetails"
10113
10080
  }
10114
10081
  }
10115
10082
  ]
@@ -10118,156 +10085,202 @@
10118
10085
  "exports": [
10119
10086
  {
10120
10087
  "kind": "js",
10121
- "name": "FormAssociatedMixinInterface",
10088
+ "name": "SwipeController",
10122
10089
  "declaration": {
10123
- "name": "FormAssociatedMixinInterface",
10124
- "module": "src/common/mixins/FormAssociatedMixin.ts"
10090
+ "name": "SwipeController",
10091
+ "module": "src/common/controllers/SwipeController.ts"
10125
10092
  }
10126
10093
  },
10127
10094
  {
10128
10095
  "kind": "js",
10129
- "name": "FormAssociatedMixin",
10096
+ "name": "isHorizontalSwipe",
10130
10097
  "declaration": {
10131
- "name": "FormAssociatedMixin",
10132
- "module": "src/common/mixins/FormAssociatedMixin.ts"
10098
+ "name": "isHorizontalSwipe",
10099
+ "module": "src/common/controllers/SwipeController.ts"
10100
+ }
10101
+ },
10102
+ {
10103
+ "kind": "js",
10104
+ "name": "isDownwardsSwipe",
10105
+ "declaration": {
10106
+ "name": "isDownwardsSwipe",
10107
+ "module": "src/common/controllers/SwipeController.ts"
10133
10108
  }
10134
10109
  }
10135
10110
  ]
10136
10111
  },
10137
10112
  {
10138
10113
  "kind": "javascript-module",
10139
- "path": "src/common/mixins/InputMixin.ts",
10114
+ "path": "src/common/directives/cond.ts",
10140
10115
  "declarations": [
10141
10116
  {
10142
- "kind": "class",
10143
- "description": "",
10144
- "name": "InputMixinInterface",
10145
- "members": [
10117
+ "kind": "variable",
10118
+ "name": "cond"
10119
+ }
10120
+ ],
10121
+ "exports": [
10122
+ {
10123
+ "kind": "js",
10124
+ "name": "cond",
10125
+ "declaration": {
10126
+ "name": "cond",
10127
+ "module": "src/common/directives/cond.ts"
10128
+ }
10129
+ }
10130
+ ]
10131
+ },
10132
+ {
10133
+ "kind": "javascript-module",
10134
+ "path": "src/common/directives/wrapIf.ts",
10135
+ "declarations": [
10136
+ {
10137
+ "kind": "function",
10138
+ "name": "wrapIf",
10139
+ "return": {
10140
+ "type": {
10141
+ "text": "TInner"
10142
+ }
10143
+ },
10144
+ "parameters": [
10146
10145
  {
10147
- "kind": "field",
10148
- "name": "name",
10146
+ "name": "condition",
10149
10147
  "type": {
10150
- "text": "string"
10148
+ "text": "false"
10151
10149
  }
10152
10150
  },
10153
10151
  {
10154
- "kind": "field",
10155
- "name": "value",
10152
+ "name": "inner",
10156
10153
  "type": {
10157
- "text": "string"
10154
+ "text": "() => TInner"
10158
10155
  }
10159
10156
  },
10160
10157
  {
10161
- "kind": "field",
10162
- "name": "disabled",
10158
+ "name": "wrapper",
10163
10159
  "type": {
10164
- "text": "boolean"
10160
+ "text": "(inner: TInner) => TWrapper"
10161
+ }
10162
+ }
10163
+ ]
10164
+ },
10165
+ {
10166
+ "kind": "function",
10167
+ "name": "wrapIf",
10168
+ "return": {
10169
+ "type": {
10170
+ "text": "TWrapper"
10171
+ }
10172
+ },
10173
+ "parameters": [
10174
+ {
10175
+ "name": "condition",
10176
+ "type": {
10177
+ "text": "true"
10165
10178
  }
10166
10179
  },
10167
10180
  {
10168
- "kind": "field",
10169
- "name": "form",
10181
+ "name": "inner",
10170
10182
  "type": {
10171
- "text": "HTMLFormElement | undefined"
10183
+ "text": "() => TInner"
10184
+ }
10185
+ },
10186
+ {
10187
+ "name": "wrapper",
10188
+ "type": {
10189
+ "text": "(inner: TInner) => TWrapper"
10172
10190
  }
10173
10191
  }
10174
10192
  ]
10175
10193
  },
10176
10194
  {
10177
- "kind": "mixin",
10178
- "description": "",
10179
- "name": "InputMixin",
10180
- "members": [
10195
+ "kind": "function",
10196
+ "name": "wrapIf",
10197
+ "return": {
10198
+ "type": {
10199
+ "text": "TInner | TWrapper"
10200
+ }
10201
+ },
10202
+ "parameters": [
10181
10203
  {
10182
- "kind": "field",
10183
- "name": "disabled",
10204
+ "name": "condition",
10184
10205
  "type": {
10185
- "text": "boolean"
10186
- },
10187
- "default": "false",
10188
- "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
10189
- "attribute": "disabled",
10190
- "reflects": true
10206
+ "text": "unknown"
10207
+ }
10191
10208
  },
10192
10209
  {
10193
- "kind": "field",
10194
- "name": "name",
10210
+ "name": "inner",
10195
10211
  "type": {
10196
- "text": "string | undefined"
10197
- },
10198
- "description": "The name of the form component.",
10199
- "attribute": "name"
10212
+ "text": "() => TInner"
10213
+ }
10200
10214
  },
10201
10215
  {
10202
- "kind": "field",
10203
- "name": "value",
10216
+ "name": "wrapper",
10204
10217
  "type": {
10205
- "text": "string"
10206
- },
10207
- "default": "\"\"",
10208
- "description": "The value of the form component.",
10209
- "attribute": "value"
10210
- },
10211
- {
10212
- "kind": "field",
10213
- "name": "form",
10214
- "privacy": "protected",
10215
- "description": "Gets the form, if any, associated with the form element."
10218
+ "text": "(inner: TInner) => TWrapper"
10219
+ }
10216
10220
  }
10217
- ],
10218
- "attributes": [
10221
+ ]
10222
+ },
10223
+ {
10224
+ "kind": "function",
10225
+ "name": "wrapIf",
10226
+ "parameters": [
10219
10227
  {
10220
- "name": "disabled",
10228
+ "name": "condition",
10221
10229
  "type": {
10222
- "text": "boolean"
10223
- },
10224
- "default": "false",
10225
- "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
10226
- "fieldName": "disabled"
10230
+ "text": "any"
10231
+ }
10227
10232
  },
10228
10233
  {
10229
- "name": "name",
10234
+ "name": "inner",
10230
10235
  "type": {
10231
- "text": "string | undefined"
10232
- },
10233
- "description": "The name of the form component.",
10234
- "fieldName": "name"
10236
+ "text": "() => TInner"
10237
+ }
10235
10238
  },
10236
10239
  {
10237
- "name": "value",
10240
+ "name": "wrapper",
10238
10241
  "type": {
10239
- "text": "string"
10240
- },
10241
- "default": "\"\"",
10242
- "description": "The value of the form component.",
10243
- "fieldName": "value"
10242
+ "text": "(innards: TInner) => TWrapper"
10243
+ }
10244
10244
  }
10245
10245
  ],
10246
- "parameters": [
10247
- {
10248
- "name": "superClass",
10249
- "type": {
10250
- "text": "T"
10251
- }
10246
+ "return": {
10247
+ "type": {
10248
+ "text": ""
10252
10249
  }
10253
- ]
10250
+ }
10254
10251
  }
10255
10252
  ],
10256
10253
  "exports": [
10257
10254
  {
10258
10255
  "kind": "js",
10259
- "name": "InputMixinInterface",
10256
+ "name": "wrapIf",
10260
10257
  "declaration": {
10261
- "name": "InputMixinInterface",
10262
- "module": "src/common/mixins/InputMixin.ts"
10258
+ "name": "wrapIf",
10259
+ "module": "src/common/directives/wrapIf.ts"
10263
10260
  }
10264
10261
  },
10265
10262
  {
10266
10263
  "kind": "js",
10267
- "name": "InputMixin",
10264
+ "name": "wrapIf",
10268
10265
  "declaration": {
10269
- "name": "InputMixin",
10270
- "module": "src/common/mixins/InputMixin.ts"
10266
+ "name": "wrapIf",
10267
+ "module": "src/common/directives/wrapIf.ts"
10268
+ }
10269
+ },
10270
+ {
10271
+ "kind": "js",
10272
+ "name": "wrapIf",
10273
+ "declaration": {
10274
+ "name": "wrapIf",
10275
+ "module": "src/common/directives/wrapIf.ts"
10276
+ }
10277
+ },
10278
+ {
10279
+ "kind": "js",
10280
+ "name": "wrapIf",
10281
+ "declaration": {
10282
+ "name": "wrapIf",
10283
+ "module": "src/common/directives/wrapIf.ts"
10271
10284
  }
10272
10285
  }
10273
10286
  ]