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

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 (2) hide show
  1. package/custom-elements.json +1799 -1799
  2. package/package.json +5 -5
@@ -422,398 +422,372 @@
422
422
  },
423
423
  {
424
424
  "kind": "javascript-module",
425
- "path": "src/banner/Banner.ts",
425
+ "path": "src/button/Button.ts",
426
426
  "declarations": [
427
427
  {
428
428
  "kind": "class",
429
- "description": "Banner informs users about important changes or conditions in the\ninterface. Use this component if you need to communicate to users\nin a prominent way.",
430
- "name": "Banner",
429
+ "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.",
430
+ "name": "Button",
431
431
  "slots": [
432
432
  {
433
- "description": "default slot",
433
+ "description": "The button content",
434
434
  "name": ""
435
- }
436
- ],
437
- "members": [
435
+ },
438
436
  {
439
- "kind": "field",
440
- "name": "variant",
441
- "type": {
442
- "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
443
- },
444
- "default": "\"info\"",
445
- "description": "The style variant of the banner.",
446
- "attribute": "variant",
447
- "reflects": true
448
- }
449
- ],
450
- "attributes": [
437
+ "description": "Used to place content before button text. Typically used for icons.",
438
+ "name": "before"
439
+ },
451
440
  {
452
- "name": "variant",
453
- "type": {
454
- "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
455
- },
456
- "default": "\"info\"",
457
- "description": "The style variant of the banner.",
458
- "fieldName": "variant"
441
+ "description": "Used to place content after button text. Typically used for icons.",
442
+ "name": "after"
459
443
  }
460
444
  ],
461
- "superclass": {
462
- "name": "LitElement",
463
- "package": "lit"
464
- },
465
- "status": "new",
466
- "category": "feedback",
467
- "tagName": "nord-banner",
468
- "customElement": true
469
- }
470
- ],
471
- "exports": [
472
- {
473
- "kind": "js",
474
- "name": "default",
475
- "declaration": {
476
- "name": "Banner",
477
- "module": "src/banner/Banner.ts"
478
- }
479
- },
480
- {
481
- "kind": "custom-element-definition",
482
- "name": "nord-banner",
483
- "declaration": {
484
- "name": "Banner",
485
- "module": "src/banner/Banner.ts"
486
- }
487
- }
488
- ],
489
- "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 this component if you need to communicate in a prominent way.\n- Place banner at the top of the section it applies to.\n- Use for highlighting errors and success statuses.\n- Put banner close to the context it’s referring to.\n- Move focus to the banner if it’s relevant to the current workflow.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Move focus to banner if it appears on page load.\n- Use for highlighting general content or as a banner.\n- Use to replace an error page.\n\n</div>\n\n---\n\n## Content guidelines\n\nBanner content should be clear, accurate and easy to understand:\n\n<div class=\"n-usage n-usage-do\">We’re experiencing an incident. Please see our status page for more details.</div>\n<div class=\"n-usage n-usage-dont\">There was an error.</div>\n\nWhen writing banner content, always write it 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\">We’re experiencing an incident.</div>\n<div class=\"n-usage n-usage-dont\">We’re Experiencing An Incident.</div>\n\nAlways end in punctuation:\n\n<div class=\"n-usage n-usage-do\">We’re experiencing an incident.</div>\n<div class=\"n-usage n-usage-dont\">We’re experiencing an incident</div>\n"
490
- },
491
- {
492
- "kind": "javascript-module",
493
- "path": "src/calendar/Calendar.ts",
494
- "declarations": [
495
- {
496
- "kind": "class",
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
445
  "members": [
500
446
  {
501
447
  "kind": "field",
502
- "name": "dialogLabelId",
503
- "type": {
504
- "text": "string"
505
- },
506
- "privacy": "private",
507
- "default": "\"dialog-header\""
508
- },
509
- {
510
- "kind": "field",
511
- "name": "monthSelectNode",
512
- "type": {
513
- "text": "HTMLElement"
514
- },
515
- "privacy": "private"
516
- },
517
- {
518
- "kind": "field",
519
- "name": "focusedDayNode",
520
- "type": {
521
- "text": "HTMLButtonElement"
522
- },
523
- "privacy": "private"
524
- },
525
- {
526
- "kind": "field",
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",
448
+ "name": "buttonRef",
540
449
  "privacy": "private"
541
450
  },
542
451
  {
543
452
  "kind": "field",
544
- "name": "dateFormatShort",
545
- "type": {
546
- "text": "Intl.DateTimeFormat"
547
- },
453
+ "name": "lightDom",
548
454
  "privacy": "private",
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"
455
+ "default": "new LightDomController(this, {\n render: () => this.renderLightDom(),\n })"
550
456
  },
551
457
  {
552
458
  "kind": "field",
553
- "name": "localization",
459
+ "name": "variant",
554
460
  "type": {
555
- "text": "CalendarLocalizedText"
461
+ "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
556
462
  },
557
- "default": "localization"
463
+ "default": "\"default\"",
464
+ "description": "The style variant of the button.",
465
+ "attribute": "variant",
466
+ "reflects": true
558
467
  },
559
468
  {
560
469
  "kind": "field",
561
- "name": "value",
470
+ "name": "type",
562
471
  "type": {
563
- "text": "string"
472
+ "text": "\"button\" | \"submit\" | \"reset\""
564
473
  },
565
- "default": "\"\"",
566
- "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
567
- "attribute": "value"
474
+ "default": "\"submit\"",
475
+ "description": "The type of the button.",
476
+ "attribute": "type",
477
+ "reflects": true
568
478
  },
569
479
  {
570
480
  "kind": "field",
571
- "name": "firstDayOfWeek",
481
+ "name": "size",
572
482
  "type": {
573
- "text": "DaysOfWeek"
483
+ "text": "\"s\" | \"m\" | \"l\""
574
484
  },
575
- "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
576
- "attribute": "firstDayOfWeek"
485
+ "default": "\"m\"",
486
+ "description": "The size of the button.\nThis affects font-size and padding.",
487
+ "attribute": "size",
488
+ "reflects": true
577
489
  },
578
490
  {
579
491
  "kind": "field",
580
- "name": "min",
492
+ "name": "href",
581
493
  "type": {
582
- "text": "string"
494
+ "text": "string | undefined"
583
495
  },
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"
496
+ "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
497
+ "attribute": "href",
498
+ "reflects": true
587
499
  },
588
500
  {
589
501
  "kind": "field",
590
- "name": "max",
502
+ "name": "download",
591
503
  "type": {
592
- "text": "string"
504
+ "text": "boolean"
593
505
  },
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"
506
+ "default": "false",
507
+ "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
508
+ "attribute": "download"
597
509
  },
598
510
  {
599
511
  "kind": "field",
600
- "name": "isDateDisabled",
512
+ "name": "target",
601
513
  "type": {
602
- "text": "DateDisabledPredicate"
514
+ "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
603
515
  },
604
- "default": "isDateDisabled",
605
- "description": "Controls which days are disabled and therefore disallowed.\nFor example, this can be used to disallow selection of weekends."
516
+ "default": "\"_self\"",
517
+ "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.",
518
+ "attribute": "target",
519
+ "reflects": true
606
520
  },
607
521
  {
608
522
  "kind": "field",
609
- "name": "activeFocus",
523
+ "name": "expand",
610
524
  "type": {
611
525
  "text": "boolean"
612
526
  },
613
- "privacy": "private",
614
- "default": "false"
615
- },
616
- {
617
- "kind": "field",
618
- "name": "focusedDay",
619
- "privacy": "private",
620
- "default": "new Date()"
527
+ "default": "false",
528
+ "description": "Controls whether the button expands to fill the width of its container.",
529
+ "attribute": "expand",
530
+ "reflects": true
621
531
  },
622
532
  {
623
533
  "kind": "method",
624
- "name": "focus",
534
+ "name": "renderLink",
535
+ "privacy": "private",
625
536
  "parameters": [
626
537
  {
627
- "name": "options",
628
- "optional": true,
538
+ "name": "innards",
629
539
  "type": {
630
- "text": "FocusOptions & { target: \"day\" | \"month\" }"
631
- },
632
- "description": "An object which controls aspects of the focusing process."
540
+ "text": "TemplateResult"
541
+ }
633
542
  }
634
543
  ],
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"
544
+ "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."
646
545
  },
647
546
  {
648
547
  "kind": "method",
649
- "name": "addDays",
548
+ "name": "renderButton",
650
549
  "privacy": "private",
651
550
  "parameters": [
652
551
  {
653
- "name": "days",
552
+ "name": "innards",
654
553
  "type": {
655
- "text": "number"
554
+ "text": "TemplateResult"
656
555
  }
657
556
  }
658
557
  ]
659
558
  },
660
559
  {
661
560
  "kind": "method",
662
- "name": "addMonths",
663
- "privacy": "private",
664
- "parameters": [
665
- {
666
- "name": "months",
667
- "type": {
668
- "text": "number"
669
- }
670
- }
671
- ]
561
+ "name": "renderLightDom",
562
+ "privacy": "private"
563
+ },
564
+ {
565
+ "kind": "field",
566
+ "name": "handleOuterClick",
567
+ "privacy": "private"
672
568
  },
673
569
  {
674
570
  "kind": "method",
675
- "name": "addYears",
571
+ "name": "handleClick",
676
572
  "privacy": "private",
677
573
  "parameters": [
678
574
  {
679
- "name": "years",
575
+ "name": "e",
680
576
  "type": {
681
- "text": "number"
577
+ "text": "Event"
682
578
  }
683
579
  }
684
580
  ]
685
581
  },
686
582
  {
687
- "kind": "method",
688
- "name": "startOfWeek",
689
- "privacy": "private"
690
- },
691
- {
692
- "kind": "method",
693
- "name": "endOfWeek",
694
- "privacy": "private"
695
- },
696
- {
697
- "kind": "method",
698
- "name": "setMonth",
699
- "privacy": "private",
700
- "parameters": [
701
- {
702
- "name": "month",
703
- "type": {
704
- "text": "number"
705
- }
706
- }
707
- ]
583
+ "kind": "field",
584
+ "name": "disabled",
585
+ "type": {
586
+ "text": "boolean"
587
+ },
588
+ "default": "false",
589
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
590
+ "attribute": "disabled",
591
+ "reflects": true,
592
+ "inheritedFrom": {
593
+ "name": "InputMixin",
594
+ "module": "src/common/mixins/InputMixin.ts"
595
+ }
708
596
  },
709
597
  {
710
- "kind": "method",
711
- "name": "setYear",
712
- "privacy": "private",
713
- "parameters": [
714
- {
715
- "name": "year",
716
- "type": {
717
- "text": "number"
718
- }
719
- }
720
- ]
598
+ "kind": "field",
599
+ "name": "name",
600
+ "type": {
601
+ "text": "string | undefined"
602
+ },
603
+ "description": "The name of the form component.",
604
+ "attribute": "name",
605
+ "inheritedFrom": {
606
+ "name": "InputMixin",
607
+ "module": "src/common/mixins/InputMixin.ts"
608
+ }
609
+ },
610
+ {
611
+ "kind": "field",
612
+ "name": "value",
613
+ "type": {
614
+ "text": "string"
615
+ },
616
+ "default": "\"\"",
617
+ "description": "The value of the form component.",
618
+ "attribute": "value",
619
+ "inheritedFrom": {
620
+ "name": "InputMixin",
621
+ "module": "src/common/mixins/InputMixin.ts"
622
+ }
623
+ },
624
+ {
625
+ "kind": "field",
626
+ "name": "form",
627
+ "privacy": "protected",
628
+ "description": "Gets the form, if any, associated with the form element.",
629
+ "inheritedFrom": {
630
+ "name": "InputMixin",
631
+ "module": "src/common/mixins/InputMixin.ts"
632
+ }
633
+ },
634
+ {
635
+ "kind": "field",
636
+ "name": "focusableRef",
637
+ "privacy": "protected",
638
+ "inheritedFrom": {
639
+ "name": "FocusableMixin",
640
+ "module": "src/common/mixins/FocusableMixin.ts"
641
+ }
721
642
  },
722
643
  {
723
644
  "kind": "method",
724
- "name": "setFocusedDay",
725
- "privacy": "private",
645
+ "name": "focus",
726
646
  "parameters": [
727
647
  {
728
- "name": "day",
648
+ "name": "options",
649
+ "optional": true,
729
650
  "type": {
730
- "text": "Date"
731
- }
651
+ "text": "FocusOptions"
652
+ },
653
+ "description": "An object which controls aspects of the focusing process."
732
654
  }
733
- ]
655
+ ],
656
+ "description": "Programmatically move focus to the component.",
657
+ "inheritedFrom": {
658
+ "name": "FocusableMixin",
659
+ "module": "src/common/mixins/FocusableMixin.ts"
660
+ }
734
661
  },
735
662
  {
736
- "kind": "field",
737
- "name": "handleMonthSelect",
738
- "privacy": "private"
663
+ "kind": "method",
664
+ "name": "blur",
665
+ "description": "Programmatically remove focus from the component.",
666
+ "inheritedFrom": {
667
+ "name": "FocusableMixin",
668
+ "module": "src/common/mixins/FocusableMixin.ts"
669
+ }
739
670
  },
740
671
  {
741
- "kind": "field",
742
- "name": "handleYearSelect",
743
- "privacy": "private"
744
- },
672
+ "kind": "method",
673
+ "name": "click",
674
+ "description": "Programmatically simulates a click on the component.",
675
+ "inheritedFrom": {
676
+ "name": "FocusableMixin",
677
+ "module": "src/common/mixins/FocusableMixin.ts"
678
+ }
679
+ }
680
+ ],
681
+ "attributes": [
745
682
  {
746
- "kind": "field",
747
- "name": "handleNextMonthClick",
748
- "privacy": "private"
683
+ "name": "variant",
684
+ "type": {
685
+ "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
686
+ },
687
+ "default": "\"default\"",
688
+ "description": "The style variant of the button.",
689
+ "fieldName": "variant"
749
690
  },
750
691
  {
751
- "kind": "field",
752
- "name": "handlePreviousMonthClick",
753
- "privacy": "private"
692
+ "name": "type",
693
+ "type": {
694
+ "text": "\"button\" | \"submit\" | \"reset\""
695
+ },
696
+ "default": "\"submit\"",
697
+ "description": "The type of the button.",
698
+ "fieldName": "type"
754
699
  },
755
700
  {
756
- "kind": "field",
757
- "name": "enableActiveFocus",
758
- "privacy": "private"
701
+ "name": "size",
702
+ "type": {
703
+ "text": "\"s\" | \"m\" | \"l\""
704
+ },
705
+ "default": "\"m\"",
706
+ "description": "The size of the button.\nThis affects font-size and padding.",
707
+ "fieldName": "size"
759
708
  },
760
709
  {
761
- "kind": "field",
762
- "name": "disableActiveFocus",
763
- "privacy": "private"
764
- }
765
- ],
766
- "events": [
710
+ "name": "href",
711
+ "type": {
712
+ "text": "string | undefined"
713
+ },
714
+ "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
715
+ "fieldName": "href"
716
+ },
767
717
  {
768
- "name": "nord-focus-date",
718
+ "name": "download",
769
719
  "type": {
770
- "text": "DateSelectEvent"
720
+ "text": "boolean"
771
721
  },
772
- "description": "Dispatched when the calendar's focused date changes."
722
+ "default": "false",
723
+ "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
724
+ "fieldName": "download"
773
725
  },
774
726
  {
727
+ "name": "target",
775
728
  "type": {
776
- "text": "DateSelectEvent"
729
+ "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
777
730
  },
778
- "description": "Dispatched when a date is selected and the value changes.",
779
- "name": "change"
780
- }
781
- ],
782
- "attributes": [
731
+ "default": "\"_self\"",
732
+ "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.",
733
+ "fieldName": "target"
734
+ },
783
735
  {
784
- "name": "value",
736
+ "name": "expand",
785
737
  "type": {
786
- "text": "string"
738
+ "text": "boolean"
787
739
  },
788
- "default": "\"\"",
789
- "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
790
- "fieldName": "value"
740
+ "default": "false",
741
+ "description": "Controls whether the button expands to fill the width of its container.",
742
+ "fieldName": "expand"
791
743
  },
792
744
  {
793
- "name": "firstDayOfWeek",
745
+ "name": "disabled",
794
746
  "type": {
795
- "text": "DaysOfWeek"
747
+ "text": "boolean"
796
748
  },
797
- "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
798
- "fieldName": "firstDayOfWeek"
749
+ "default": "false",
750
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
751
+ "fieldName": "disabled",
752
+ "inheritedFrom": {
753
+ "name": "InputMixin",
754
+ "module": "src/common/mixins/InputMixin.ts"
755
+ }
799
756
  },
800
757
  {
801
- "name": "min",
758
+ "name": "name",
802
759
  "type": {
803
- "text": "string"
760
+ "text": "string | undefined"
804
761
  },
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"
762
+ "description": "The name of the form component.",
763
+ "fieldName": "name",
764
+ "inheritedFrom": {
765
+ "name": "InputMixin",
766
+ "module": "src/common/mixins/InputMixin.ts"
767
+ }
808
768
  },
809
769
  {
810
- "name": "max",
770
+ "name": "value",
811
771
  "type": {
812
772
  "text": "string"
813
773
  },
814
774
  "default": "\"\"",
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"
775
+ "description": "The value of the form component.",
776
+ "fieldName": "value",
777
+ "inheritedFrom": {
778
+ "name": "InputMixin",
779
+ "module": "src/common/mixins/InputMixin.ts"
780
+ }
781
+ }
782
+ ],
783
+ "mixins": [
784
+ {
785
+ "name": "InputMixin",
786
+ "module": "/src/common/mixins/InputMixin.js"
787
+ },
788
+ {
789
+ "name": "FocusableMixin",
790
+ "module": "/src/common/mixins/FocusableMixin.js"
817
791
  }
818
792
  ],
819
793
  "superclass": {
@@ -821,8 +795,8 @@
821
795
  "package": "lit"
822
796
  },
823
797
  "status": "ready",
824
- "category": "list",
825
- "tagName": "nord-calendar",
798
+ "category": "action",
799
+ "tagName": "nord-button",
826
800
  "customElement": true
827
801
  }
828
802
  ],
@@ -831,499 +805,415 @@
831
805
  "kind": "js",
832
806
  "name": "default",
833
807
  "declaration": {
834
- "name": "Calendar",
835
- "module": "src/calendar/Calendar.ts"
808
+ "name": "Button",
809
+ "module": "src/button/Button.ts"
836
810
  }
837
811
  },
838
812
  {
839
813
  "kind": "custom-element-definition",
840
- "name": "nord-calendar",
814
+ "name": "nord-button",
841
815
  "declaration": {
842
- "name": "Calendar",
843
- "module": "src/calendar/Calendar.ts"
816
+ "name": "Button",
817
+ "module": "src/button/Button.ts"
844
818
  }
845
819
  }
846
820
  ],
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"
821
+ "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"
848
822
  },
849
823
  {
850
824
  "kind": "javascript-module",
851
- "path": "src/calendar/DateSelectEvent.ts",
825
+ "path": "src/banner/Banner.ts",
852
826
  "declarations": [
853
827
  {
854
828
  "kind": "class",
855
- "description": "",
856
- "name": "DateSelectEvent",
829
+ "description": "Banner informs users about important changes or conditions in the\ninterface. Use this component if you need to communicate to users\nin a prominent way.",
830
+ "name": "Banner",
831
+ "slots": [
832
+ {
833
+ "description": "default slot",
834
+ "name": ""
835
+ }
836
+ ],
857
837
  "members": [
858
838
  {
859
839
  "kind": "field",
860
- "name": "date",
840
+ "name": "variant",
861
841
  "type": {
862
- "text": "Date"
842
+ "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
863
843
  },
864
- "default": "date"
844
+ "default": "\"info\"",
845
+ "description": "The style variant of the banner.",
846
+ "attribute": "variant",
847
+ "reflects": true
865
848
  }
866
849
  ],
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": [
918
- {
919
- "name": "{\n focusedDay,\n today,\n day,\n onDaySelect,\n onKeyboardNavigation,\n disabled,\n inRange,\n isSelected,\n dateFormatter,\n}",
920
- "type": {
921
- "text": "DatePickerDayProps"
922
- }
923
- }
924
- ]
925
- },
926
- {
927
- "kind": "function",
928
- "name": "monthView",
929
- "parameters": [
850
+ "attributes": [
930
851
  {
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}",
852
+ "name": "variant",
932
853
  "type": {
933
- "text": "MonthViewArgs"
934
- }
854
+ "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
855
+ },
856
+ "default": "\"info\"",
857
+ "description": "The style variant of the banner.",
858
+ "fieldName": "variant"
935
859
  }
936
- ]
860
+ ],
861
+ "superclass": {
862
+ "name": "LitElement",
863
+ "package": "lit"
864
+ },
865
+ "status": "new",
866
+ "category": "feedback",
867
+ "tagName": "nord-banner",
868
+ "customElement": true
937
869
  }
938
870
  ],
939
871
  "exports": [
940
872
  {
941
873
  "kind": "js",
942
- "name": "dayView",
874
+ "name": "default",
943
875
  "declaration": {
944
- "name": "dayView",
945
- "module": "src/calendar/month-view.ts"
876
+ "name": "Banner",
877
+ "module": "src/banner/Banner.ts"
946
878
  }
947
879
  },
948
880
  {
949
- "kind": "js",
950
- "name": "monthView",
881
+ "kind": "custom-element-definition",
882
+ "name": "nord-banner",
951
883
  "declaration": {
952
- "name": "monthView",
953
- "module": "src/calendar/month-view.ts"
884
+ "name": "Banner",
885
+ "module": "src/banner/Banner.ts"
954
886
  }
955
887
  }
956
888
  ],
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"
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 this component if you need to communicate in a prominent way.\n- Place banner at the top of the section it applies to.\n- Use for highlighting errors and success statuses.\n- Put banner close to the context it’s referring to.\n- Move focus to the banner if it’s relevant to the current workflow.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Move focus to banner if it appears on page load.\n- Use for highlighting general content or as a banner.\n- Use to replace an error page.\n\n</div>\n\n---\n\n## Content guidelines\n\nBanner content should be clear, accurate and easy to understand:\n\n<div class=\"n-usage n-usage-do\">We’re experiencing an incident. Please see our status page for more details.</div>\n<div class=\"n-usage n-usage-dont\">There was an error.</div>\n\nWhen writing banner content, always write it 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\">We’re experiencing an incident.</div>\n<div class=\"n-usage n-usage-dont\">We’re Experiencing An Incident.</div>\n\nAlways end in punctuation:\n\n<div class=\"n-usage n-usage-do\">We’re experiencing an incident.</div>\n<div class=\"n-usage n-usage-dont\">We’re experiencing an incident</div>\n"
958
890
  },
959
891
  {
960
892
  "kind": "javascript-module",
961
- "path": "src/button/Button.ts",
893
+ "path": "src/calendar/Calendar.ts",
962
894
  "declarations": [
963
895
  {
964
896
  "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": [
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",
899
+ "members": [
968
900
  {
969
- "description": "The button content",
970
- "name": ""
901
+ "kind": "field",
902
+ "name": "dialogLabelId",
903
+ "type": {
904
+ "text": "string"
905
+ },
906
+ "privacy": "private",
907
+ "default": "\"dialog-header\""
971
908
  },
972
909
  {
973
- "description": "Used to place content before button text. Typically used for icons.",
974
- "name": "before"
910
+ "kind": "field",
911
+ "name": "monthSelectNode",
912
+ "type": {
913
+ "text": "HTMLElement"
914
+ },
915
+ "privacy": "private"
975
916
  },
976
917
  {
977
- "description": "Used to place content after button text. Typically used for icons.",
978
- "name": "after"
979
- }
980
- ],
981
- "members": [
918
+ "kind": "field",
919
+ "name": "focusedDayNode",
920
+ "type": {
921
+ "text": "HTMLButtonElement"
922
+ },
923
+ "privacy": "private"
924
+ },
982
925
  {
983
926
  "kind": "field",
984
- "name": "buttonRef",
927
+ "name": "direction",
928
+ "privacy": "private",
929
+ "default": "new DirectionController(this)"
930
+ },
931
+ {
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 })"
936
+ },
937
+ {
938
+ "kind": "field",
939
+ "name": "shortcuts",
985
940
  "privacy": "private"
986
941
  },
987
942
  {
988
943
  "kind": "field",
989
- "name": "lightDom",
944
+ "name": "dateFormatShort",
945
+ "type": {
946
+ "text": "Intl.DateTimeFormat"
947
+ },
990
948
  "privacy": "private",
991
- "default": "new LightDomController(this, {\n render: () => this.renderLightDom(),\n })"
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"
992
950
  },
993
951
  {
994
952
  "kind": "field",
995
- "name": "variant",
953
+ "name": "localization",
996
954
  "type": {
997
- "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
955
+ "text": "CalendarLocalizedText"
998
956
  },
999
- "default": "\"default\"",
1000
- "description": "The style variant of the button.",
1001
- "attribute": "variant",
1002
- "reflects": true
957
+ "default": "localization"
1003
958
  },
1004
959
  {
1005
960
  "kind": "field",
1006
- "name": "type",
961
+ "name": "value",
1007
962
  "type": {
1008
- "text": "\"button\" | \"submit\" | \"reset\""
963
+ "text": "string"
1009
964
  },
1010
- "default": "\"submit\"",
1011
- "description": "The type of the button.",
1012
- "attribute": "type",
1013
- "reflects": true
965
+ "default": "\"\"",
966
+ "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
967
+ "attribute": "value"
1014
968
  },
1015
969
  {
1016
970
  "kind": "field",
1017
- "name": "size",
971
+ "name": "firstDayOfWeek",
1018
972
  "type": {
1019
- "text": "\"s\" | \"m\" | \"l\""
973
+ "text": "DaysOfWeek"
1020
974
  },
1021
- "default": "\"m\"",
1022
- "description": "The size of the button.\nThis affects font-size and padding.",
1023
- "attribute": "size",
1024
- "reflects": true
975
+ "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
976
+ "attribute": "firstDayOfWeek"
1025
977
  },
1026
978
  {
1027
979
  "kind": "field",
1028
- "name": "href",
980
+ "name": "min",
1029
981
  "type": {
1030
- "text": "string | undefined"
982
+ "text": "string"
1031
983
  },
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
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"
1035
987
  },
1036
988
  {
1037
989
  "kind": "field",
1038
- "name": "download",
990
+ "name": "max",
1039
991
  "type": {
1040
- "text": "boolean"
992
+ "text": "string"
1041
993
  },
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"
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"
1045
997
  },
1046
998
  {
1047
999
  "kind": "field",
1048
- "name": "target",
1000
+ "name": "isDateDisabled",
1049
1001
  "type": {
1050
- "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
1002
+ "text": "DateDisabledPredicate"
1051
1003
  },
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
1004
+ "default": "isDateDisabled",
1005
+ "description": "Controls which days are disabled and therefore disallowed.\nFor example, this can be used to disallow selection of weekends."
1056
1006
  },
1057
1007
  {
1058
1008
  "kind": "field",
1059
- "name": "expand",
1009
+ "name": "activeFocus",
1060
1010
  "type": {
1061
1011
  "text": "boolean"
1062
1012
  },
1063
- "default": "false",
1064
- "description": "Controls whether the button expands to fill the width of its container.",
1065
- "attribute": "expand",
1066
- "reflects": true
1013
+ "privacy": "private",
1014
+ "default": "false"
1067
1015
  },
1068
1016
  {
1069
- "kind": "method",
1070
- "name": "renderLink",
1017
+ "kind": "field",
1018
+ "name": "focusedDay",
1071
1019
  "privacy": "private",
1020
+ "default": "new Date()"
1021
+ },
1022
+ {
1023
+ "kind": "method",
1024
+ "name": "focus",
1072
1025
  "parameters": [
1073
1026
  {
1074
- "name": "innards",
1027
+ "name": "options",
1028
+ "optional": true,
1075
1029
  "type": {
1076
- "text": "TemplateResult"
1077
- }
1030
+ "text": "FocusOptions & { target: \"day\" | \"month\" }"
1031
+ },
1032
+ "description": "An object which controls aspects of the focusing process."
1078
1033
  }
1079
1034
  ],
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."
1035
+ "description": "Programmatically move focus to the calendar."
1081
1036
  },
1082
1037
  {
1083
1038
  "kind": "method",
1084
- "name": "renderButton",
1039
+ "name": "createDateFormatter",
1040
+ "privacy": "private"
1041
+ },
1042
+ {
1043
+ "kind": "field",
1044
+ "name": "handleDaySelect",
1045
+ "privacy": "private"
1046
+ },
1047
+ {
1048
+ "kind": "method",
1049
+ "name": "addDays",
1085
1050
  "privacy": "private",
1086
1051
  "parameters": [
1087
1052
  {
1088
- "name": "innards",
1053
+ "name": "days",
1089
1054
  "type": {
1090
- "text": "TemplateResult"
1055
+ "text": "number"
1091
1056
  }
1092
1057
  }
1093
1058
  ]
1094
1059
  },
1095
1060
  {
1096
1061
  "kind": "method",
1097
- "name": "renderLightDom",
1062
+ "name": "addMonths",
1063
+ "privacy": "private",
1064
+ "parameters": [
1065
+ {
1066
+ "name": "months",
1067
+ "type": {
1068
+ "text": "number"
1069
+ }
1070
+ }
1071
+ ]
1072
+ },
1073
+ {
1074
+ "kind": "method",
1075
+ "name": "addYears",
1076
+ "privacy": "private",
1077
+ "parameters": [
1078
+ {
1079
+ "name": "years",
1080
+ "type": {
1081
+ "text": "number"
1082
+ }
1083
+ }
1084
+ ]
1085
+ },
1086
+ {
1087
+ "kind": "method",
1088
+ "name": "startOfWeek",
1098
1089
  "privacy": "private"
1099
1090
  },
1100
1091
  {
1101
- "kind": "field",
1102
- "name": "handleOuterClick",
1092
+ "kind": "method",
1093
+ "name": "endOfWeek",
1103
1094
  "privacy": "private"
1104
1095
  },
1105
1096
  {
1106
1097
  "kind": "method",
1107
- "name": "handleClick",
1098
+ "name": "setMonth",
1108
1099
  "privacy": "private",
1109
1100
  "parameters": [
1110
1101
  {
1111
- "name": "e",
1102
+ "name": "month",
1112
1103
  "type": {
1113
- "text": "Event"
1104
+ "text": "number"
1114
1105
  }
1115
1106
  }
1116
1107
  ]
1117
1108
  },
1118
1109
  {
1119
- "kind": "field",
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
- }
1110
+ "kind": "method",
1111
+ "name": "setYear",
1112
+ "privacy": "private",
1113
+ "parameters": [
1114
+ {
1115
+ "name": "year",
1116
+ "type": {
1117
+ "text": "number"
1118
+ }
1119
+ }
1120
+ ]
1132
1121
  },
1133
1122
  {
1134
- "kind": "field",
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
- }
1123
+ "kind": "method",
1124
+ "name": "setFocusedDay",
1125
+ "privacy": "private",
1126
+ "parameters": [
1127
+ {
1128
+ "name": "day",
1129
+ "type": {
1130
+ "text": "Date"
1131
+ }
1132
+ }
1133
+ ]
1145
1134
  },
1146
1135
  {
1147
1136
  "kind": "field",
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
- }
1137
+ "name": "handleMonthSelect",
1138
+ "privacy": "private"
1159
1139
  },
1160
1140
  {
1161
1141
  "kind": "field",
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
- }
1142
+ "name": "handleYearSelect",
1143
+ "privacy": "private"
1169
1144
  },
1170
1145
  {
1171
1146
  "kind": "field",
1172
- "name": "focusableRef",
1173
- "privacy": "protected",
1174
- "inheritedFrom": {
1175
- "name": "FocusableMixin",
1176
- "module": "src/common/mixins/FocusableMixin.ts"
1177
- }
1147
+ "name": "handleNextMonthClick",
1148
+ "privacy": "private"
1178
1149
  },
1179
1150
  {
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
- }
1151
+ "kind": "field",
1152
+ "name": "handlePreviousMonthClick",
1153
+ "privacy": "private"
1197
1154
  },
1198
1155
  {
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
- }
1156
+ "kind": "field",
1157
+ "name": "enableActiveFocus",
1158
+ "privacy": "private"
1206
1159
  },
1207
1160
  {
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
- }
1161
+ "kind": "field",
1162
+ "name": "disableActiveFocus",
1163
+ "privacy": "private"
1215
1164
  }
1216
1165
  ],
1217
- "attributes": [
1218
- {
1219
- "name": "variant",
1220
- "type": {
1221
- "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
1222
- },
1223
- "default": "\"default\"",
1224
- "description": "The style variant of the button.",
1225
- "fieldName": "variant"
1226
- },
1227
- {
1228
- "name": "type",
1229
- "type": {
1230
- "text": "\"button\" | \"submit\" | \"reset\""
1231
- },
1232
- "default": "\"submit\"",
1233
- "description": "The type of the button.",
1234
- "fieldName": "type"
1235
- },
1166
+ "events": [
1236
1167
  {
1237
- "name": "size",
1168
+ "name": "nord-focus-date",
1238
1169
  "type": {
1239
- "text": "\"s\" | \"m\" | \"l\""
1170
+ "text": "DateSelectEvent"
1240
1171
  },
1241
- "default": "\"m\"",
1242
- "description": "The size of the button.\nThis affects font-size and padding.",
1243
- "fieldName": "size"
1172
+ "description": "Dispatched when the calendar's focused date changes."
1244
1173
  },
1245
1174
  {
1246
- "name": "href",
1247
1175
  "type": {
1248
- "text": "string | undefined"
1176
+ "text": "DateSelectEvent"
1249
1177
  },
1250
- "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
1251
- "fieldName": "href"
1252
- },
1178
+ "description": "Dispatched when a date is selected and the value changes.",
1179
+ "name": "change"
1180
+ }
1181
+ ],
1182
+ "attributes": [
1253
1183
  {
1254
- "name": "download",
1184
+ "name": "value",
1255
1185
  "type": {
1256
- "text": "boolean"
1186
+ "text": "string"
1257
1187
  },
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"
1188
+ "default": "\"\"",
1189
+ "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
1190
+ "fieldName": "value"
1261
1191
  },
1262
1192
  {
1263
- "name": "target",
1193
+ "name": "firstDayOfWeek",
1264
1194
  "type": {
1265
- "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
1195
+ "text": "DaysOfWeek"
1266
1196
  },
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"
1197
+ "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
1198
+ "fieldName": "firstDayOfWeek"
1270
1199
  },
1271
1200
  {
1272
- "name": "expand",
1201
+ "name": "min",
1273
1202
  "type": {
1274
- "text": "boolean"
1203
+ "text": "string"
1275
1204
  },
1276
- "default": "false",
1277
- "description": "Controls whether the button expands to fill the width of its container.",
1278
- "fieldName": "expand"
1205
+ "default": "\"\"",
1206
+ "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.",
1207
+ "fieldName": "min"
1279
1208
  },
1280
1209
  {
1281
- "name": "disabled",
1210
+ "name": "max",
1282
1211
  "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",
1307
- "type": {
1308
- "text": "string"
1212
+ "text": "string"
1309
1213
  },
1310
1214
  "default": "\"\"",
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"
1215
+ "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.",
1216
+ "fieldName": "max"
1327
1217
  }
1328
1218
  ],
1329
1219
  "superclass": {
@@ -1331,8 +1221,8 @@
1331
1221
  "package": "lit"
1332
1222
  },
1333
1223
  "status": "ready",
1334
- "category": "action",
1335
- "tagName": "nord-button",
1224
+ "category": "list",
1225
+ "tagName": "nord-calendar",
1336
1226
  "customElement": true
1337
1227
  }
1338
1228
  ],
@@ -1341,20 +1231,130 @@
1341
1231
  "kind": "js",
1342
1232
  "name": "default",
1343
1233
  "declaration": {
1344
- "name": "Button",
1345
- "module": "src/button/Button.ts"
1234
+ "name": "Calendar",
1235
+ "module": "src/calendar/Calendar.ts"
1346
1236
  }
1347
1237
  },
1348
1238
  {
1349
1239
  "kind": "custom-element-definition",
1350
- "name": "nord-button",
1240
+ "name": "nord-calendar",
1351
1241
  "declaration": {
1352
- "name": "Button",
1353
- "module": "src/button/Button.ts"
1242
+ "name": "Calendar",
1243
+ "module": "src/calendar/Calendar.ts"
1354
1244
  }
1355
1245
  }
1356
1246
  ],
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"
1247
+ "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"
1248
+ },
1249
+ {
1250
+ "kind": "javascript-module",
1251
+ "path": "src/calendar/DateSelectEvent.ts",
1252
+ "declarations": [
1253
+ {
1254
+ "kind": "class",
1255
+ "description": "",
1256
+ "name": "DateSelectEvent",
1257
+ "members": [
1258
+ {
1259
+ "kind": "field",
1260
+ "name": "date",
1261
+ "type": {
1262
+ "text": "Date"
1263
+ },
1264
+ "default": "date"
1265
+ }
1266
+ ],
1267
+ "superclass": {
1268
+ "name": "NordEvent",
1269
+ "module": "/src/common/events.js"
1270
+ }
1271
+ }
1272
+ ],
1273
+ "exports": [
1274
+ {
1275
+ "kind": "js",
1276
+ "name": "DateSelectEvent",
1277
+ "declaration": {
1278
+ "name": "DateSelectEvent",
1279
+ "module": "src/calendar/DateSelectEvent.ts"
1280
+ }
1281
+ }
1282
+ ],
1283
+ "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"
1284
+ },
1285
+ {
1286
+ "kind": "javascript-module",
1287
+ "path": "src/calendar/calendar-localization.ts",
1288
+ "declarations": [
1289
+ {
1290
+ "kind": "variable",
1291
+ "name": "localization",
1292
+ "type": {
1293
+ "text": "CalendarLocalizedText"
1294
+ },
1295
+ "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}"
1296
+ }
1297
+ ],
1298
+ "exports": [
1299
+ {
1300
+ "kind": "js",
1301
+ "name": "default",
1302
+ "declaration": {
1303
+ "name": "localization",
1304
+ "module": "src/calendar/calendar-localization.ts"
1305
+ }
1306
+ }
1307
+ ],
1308
+ "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"
1309
+ },
1310
+ {
1311
+ "kind": "javascript-module",
1312
+ "path": "src/calendar/month-view.ts",
1313
+ "declarations": [
1314
+ {
1315
+ "kind": "function",
1316
+ "name": "dayView",
1317
+ "parameters": [
1318
+ {
1319
+ "name": "{\n focusedDay,\n today,\n day,\n onDaySelect,\n onKeyboardNavigation,\n disabled,\n inRange,\n isSelected,\n dateFormatter,\n}",
1320
+ "type": {
1321
+ "text": "DatePickerDayProps"
1322
+ }
1323
+ }
1324
+ ]
1325
+ },
1326
+ {
1327
+ "kind": "function",
1328
+ "name": "monthView",
1329
+ "parameters": [
1330
+ {
1331
+ "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}",
1332
+ "type": {
1333
+ "text": "MonthViewArgs"
1334
+ }
1335
+ }
1336
+ ]
1337
+ }
1338
+ ],
1339
+ "exports": [
1340
+ {
1341
+ "kind": "js",
1342
+ "name": "dayView",
1343
+ "declaration": {
1344
+ "name": "dayView",
1345
+ "module": "src/calendar/month-view.ts"
1346
+ }
1347
+ },
1348
+ {
1349
+ "kind": "js",
1350
+ "name": "monthView",
1351
+ "declaration": {
1352
+ "name": "monthView",
1353
+ "module": "src/calendar/month-view.ts"
1354
+ }
1355
+ }
1356
+ ],
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 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"
1358
1358
  },
1359
1359
  {
1360
1360
  "kind": "javascript-module",
@@ -4673,6 +4673,82 @@
4673
4673
  ],
4674
4674
  "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 fieldset component when you need to create a relationship between multiple form inputs.\n- It is especially important to use with a group of radio components.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place interactive content (buttons, links etc) inside the label.\n- Don’t use with a checkbox component when there is **only one** checkbox. For example, when accepting terms and conditions.\n\n</div>\n\n-------\n\n## Content guidelines\n\nFieldset label should be clear, accurate and predictable. It should help the user to understand how the items in the fieldset are grouped together, or what kind of choice the user is making:\n\n<div class=\"n-usage n-usage-do\">Pick a color</div>\n<div class=\"n-usage n-usage-dont\">Choose</div>\n\nWhen writing fieldset 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\">Pick a color</div>\n<div class=\"n-usage n-usage-dont\">Pick A Color</div>\n\nAvoid ending in punctuation if it’s a single sentence, word, or a fragment:\n\n<div class=\"n-usage n-usage-do\">Pick a color</div>\n<div class=\"n-usage n-usage-dont\">Pick a color.</div>\n\nDo not use colons in fieldset label:\n\n<div class=\"n-usage n-usage-do\">Payment details</div>\n<div class=\"n-usage n-usage-dont\">Payment details:</div>\n\n-------\n\n## Additional considerations\n\n- A label (which becomes to `<legend>` inside the fieldset) is always required.\n- Hint text can be used to offer further information or explanation for an option.\n"
4675
4675
  },
4676
+ {
4677
+ "kind": "javascript-module",
4678
+ "path": "src/header/Header.ts",
4679
+ "declarations": [
4680
+ {
4681
+ "kind": "class",
4682
+ "description": "The header is a block of designated space for labelling the currently\nviewed context as well as providing primary actions.",
4683
+ "name": "Header",
4684
+ "slots": [
4685
+ {
4686
+ "description": "The header content.",
4687
+ "name": ""
4688
+ },
4689
+ {
4690
+ "description": "Optional slot for buttons, toggles, etc.",
4691
+ "name": "action"
4692
+ }
4693
+ ],
4694
+ "members": [
4695
+ {
4696
+ "kind": "field",
4697
+ "name": "actionSlot",
4698
+ "privacy": "private",
4699
+ "default": "new SlotController(this, \"action\")"
4700
+ },
4701
+ {
4702
+ "kind": "field",
4703
+ "name": "_warningLogged",
4704
+ "type": {
4705
+ "text": "boolean"
4706
+ },
4707
+ "privacy": "private",
4708
+ "static": true,
4709
+ "default": "false",
4710
+ "inheritedFrom": {
4711
+ "name": "DraftComponentMixin",
4712
+ "module": "src/common/mixins/DraftComponentMixin.ts"
4713
+ }
4714
+ }
4715
+ ],
4716
+ "mixins": [
4717
+ {
4718
+ "name": "DraftComponentMixin",
4719
+ "module": "/src/common/mixins/DraftComponentMixin.js"
4720
+ }
4721
+ ],
4722
+ "superclass": {
4723
+ "name": "LitElement",
4724
+ "package": "lit"
4725
+ },
4726
+ "status": "draft",
4727
+ "category": "structure",
4728
+ "tagName": "nord-header",
4729
+ "customElement": true
4730
+ }
4731
+ ],
4732
+ "exports": [
4733
+ {
4734
+ "kind": "js",
4735
+ "name": "default",
4736
+ "declaration": {
4737
+ "name": "Header",
4738
+ "module": "src/header/Header.ts"
4739
+ }
4740
+ },
4741
+ {
4742
+ "kind": "custom-element-definition",
4743
+ "name": "nord-header",
4744
+ "declaration": {
4745
+ "name": "Header",
4746
+ "module": "src/header/Header.ts"
4747
+ }
4748
+ }
4749
+ ],
4750
+ "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"
4751
+ },
4676
4752
  {
4677
4753
  "kind": "javascript-module",
4678
4754
  "path": "src/icon/Icon.ts",
@@ -4910,92 +4986,16 @@
4910
4986
  },
4911
4987
  {
4912
4988
  "kind": "javascript-module",
4913
- "path": "src/header/Header.ts",
4989
+ "path": "src/input/Input.ts",
4914
4990
  "declarations": [
4915
4991
  {
4916
4992
  "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",
4993
+ "description": "Inputs are used to allow users to provide text input when the expected input is short.\nAs well as plain text, Input supports various types of text, including passwords and numbers.",
4994
+ "name": "Input",
4919
4995
  "slots": [
4920
4996
  {
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
- },
4987
- {
4988
- "kind": "javascript-module",
4989
- "path": "src/input/Input.ts",
4990
- "declarations": [
4991
- {
4992
- "kind": "class",
4993
- "description": "Inputs are used to allow users to provide text input when the expected input is short.\nAs well as plain text, Input supports various types of text, including passwords and numbers.",
4994
- "name": "Input",
4995
- "slots": [
4996
- {
4997
- "description": "Use when a label requires more than plain text.",
4998
- "name": "label"
4997
+ "description": "Use when a label requires more than plain text.",
4998
+ "name": "label"
4999
4999
  },
5000
5000
  {
5001
5001
  "description": "Optional slot that holds hint text for the input.",
@@ -5618,27 +5618,28 @@
5618
5618
  },
5619
5619
  {
5620
5620
  "kind": "javascript-module",
5621
- "path": "src/layout/Layout.ts",
5621
+ "path": "src/nav-group/NavGroup.ts",
5622
5622
  "declarations": [
5623
5623
  {
5624
5624
  "kind": "class",
5625
- "description": "Layout component is used to create the main layout of an app. Layout\ncurrently comes with one main configuration: two-column.",
5626
- "name": "Layout",
5625
+ "description": "Navigation group includes all the actions or items in a single\ngroup and is used for grouping items into related categories.",
5626
+ "name": "NavGroup",
5627
5627
  "slots": [
5628
5628
  {
5629
- "description": "The default main section content.",
5629
+ "description": "The default slot used for the nav items.",
5630
5630
  "name": ""
5631
- },
5632
- {
5633
- "description": "Used to place content inside the navigation sidebar.",
5634
- "name": "nav"
5635
- },
5636
- {
5637
- "description": "Used to place content inside the header section.",
5638
- "name": "header"
5639
5631
  }
5640
5632
  ],
5641
5633
  "members": [
5634
+ {
5635
+ "kind": "field",
5636
+ "name": "heading",
5637
+ "type": {
5638
+ "text": "string | undefined"
5639
+ },
5640
+ "description": "Heading and accessible label for the nav group",
5641
+ "attribute": "heading"
5642
+ },
5642
5643
  {
5643
5644
  "kind": "field",
5644
5645
  "name": "_warningLogged",
@@ -5654,6 +5655,16 @@
5654
5655
  }
5655
5656
  }
5656
5657
  ],
5658
+ "attributes": [
5659
+ {
5660
+ "name": "heading",
5661
+ "type": {
5662
+ "text": "string | undefined"
5663
+ },
5664
+ "description": "Heading and accessible label for the nav group",
5665
+ "fieldName": "heading"
5666
+ }
5667
+ ],
5657
5668
  "mixins": [
5658
5669
  {
5659
5670
  "name": "DraftComponentMixin",
@@ -5665,8 +5676,8 @@
5665
5676
  "package": "lit"
5666
5677
  },
5667
5678
  "status": "draft",
5668
- "category": "structure",
5669
- "tagName": "nord-layout",
5679
+ "category": "navigation",
5680
+ "tagName": "nord-nav-group",
5670
5681
  "customElement": true
5671
5682
  }
5672
5683
  ],
@@ -5675,45 +5686,44 @@
5675
5686
  "kind": "js",
5676
5687
  "name": "default",
5677
5688
  "declaration": {
5678
- "name": "Layout",
5679
- "module": "src/layout/Layout.ts"
5689
+ "name": "NavGroup",
5690
+ "module": "src/nav-group/NavGroup.ts"
5680
5691
  }
5681
5692
  },
5682
5693
  {
5683
5694
  "kind": "custom-element-definition",
5684
- "name": "nord-layout",
5695
+ "name": "nord-nav-group",
5685
5696
  "declaration": {
5686
- "name": "Layout",
5687
- "module": "src/layout/Layout.ts"
5697
+ "name": "NavGroup",
5698
+ "module": "src/nav-group/NavGroup.ts"
5688
5699
  }
5689
5700
  }
5690
5701
  ],
5691
- "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- To visually group content in a layout section, use the Card component.\n- To lay out a set of smaller components, use the Stack component.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Never put layout component inside another HTML landmark.\n- Don’t use when you need a vertical or horizontal layout system. Use Stack component instead.\n\n</div>\n\n---\n\n## Additional considerations\n\n- Layout component uses `<main>` element internally which is an HTML sectioning element which by default defines an ARIA landmark role. For that reason you should never put layout component inside another HTML landmark.\n"
5702
+ "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- Group navigation items into navigation groups based on related categories.\n- Use group headings to clarify the category of a section.\n- Use icons for all top level navigation items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for grouping other types of content.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing navigation item 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 item labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending item labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse as few words as possible to describe each item label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoud all caps for item labels and group titles:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n"
5692
5703
  },
5693
5704
  {
5694
5705
  "kind": "javascript-module",
5695
- "path": "src/nav-group/NavGroup.ts",
5706
+ "path": "src/layout/Layout.ts",
5696
5707
  "declarations": [
5697
5708
  {
5698
5709
  "kind": "class",
5699
- "description": "Navigation group includes all the actions or items in a single\ngroup and is used for grouping items into related categories.",
5700
- "name": "NavGroup",
5710
+ "description": "Layout component is used to create the main layout of an app. Layout\ncurrently comes with one main configuration: two-column.",
5711
+ "name": "Layout",
5701
5712
  "slots": [
5702
5713
  {
5703
- "description": "The default slot used for the nav items.",
5714
+ "description": "The default main section content.",
5704
5715
  "name": ""
5716
+ },
5717
+ {
5718
+ "description": "Used to place content inside the navigation sidebar.",
5719
+ "name": "nav"
5720
+ },
5721
+ {
5722
+ "description": "Used to place content inside the header section.",
5723
+ "name": "header"
5705
5724
  }
5706
5725
  ],
5707
5726
  "members": [
5708
- {
5709
- "kind": "field",
5710
- "name": "heading",
5711
- "type": {
5712
- "text": "string | undefined"
5713
- },
5714
- "description": "Heading and accessible label for the nav group",
5715
- "attribute": "heading"
5716
- },
5717
5727
  {
5718
5728
  "kind": "field",
5719
5729
  "name": "_warningLogged",
@@ -5729,16 +5739,6 @@
5729
5739
  }
5730
5740
  }
5731
5741
  ],
5732
- "attributes": [
5733
- {
5734
- "name": "heading",
5735
- "type": {
5736
- "text": "string | undefined"
5737
- },
5738
- "description": "Heading and accessible label for the nav group",
5739
- "fieldName": "heading"
5740
- }
5741
- ],
5742
5742
  "mixins": [
5743
5743
  {
5744
5744
  "name": "DraftComponentMixin",
@@ -5750,8 +5750,8 @@
5750
5750
  "package": "lit"
5751
5751
  },
5752
5752
  "status": "draft",
5753
- "category": "navigation",
5754
- "tagName": "nord-nav-group",
5753
+ "category": "structure",
5754
+ "tagName": "nord-layout",
5755
5755
  "customElement": true
5756
5756
  }
5757
5757
  ],
@@ -5760,20 +5760,20 @@
5760
5760
  "kind": "js",
5761
5761
  "name": "default",
5762
5762
  "declaration": {
5763
- "name": "NavGroup",
5764
- "module": "src/nav-group/NavGroup.ts"
5763
+ "name": "Layout",
5764
+ "module": "src/layout/Layout.ts"
5765
5765
  }
5766
5766
  },
5767
5767
  {
5768
5768
  "kind": "custom-element-definition",
5769
- "name": "nord-nav-group",
5769
+ "name": "nord-layout",
5770
5770
  "declaration": {
5771
- "name": "NavGroup",
5772
- "module": "src/nav-group/NavGroup.ts"
5771
+ "name": "Layout",
5772
+ "module": "src/layout/Layout.ts"
5773
5773
  }
5774
5774
  }
5775
5775
  ],
5776
- "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- Group navigation items into navigation groups based on related categories.\n- Use group headings to clarify the category of a section.\n- Use icons for all top level navigation items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for grouping other types of content.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing navigation item 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 item labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending item labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse as few words as possible to describe each item label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoud all caps for item labels and group titles:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n"
5776
+ "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- To visually group content in a layout section, use the Card component.\n- To lay out a set of smaller components, use the Stack component.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Never put layout component inside another HTML landmark.\n- Don’t use when you need a vertical or horizontal layout system. Use Stack component instead.\n\n</div>\n\n---\n\n## Additional considerations\n\n- Layout component uses `<main>` element internally which is an HTML sectioning element which by default defines an ARIA landmark role. For that reason you should never put layout component inside another HTML landmark.\n"
5777
5777
  },
5778
5778
  {
5779
5779
  "kind": "javascript-module",
@@ -8589,789 +8589,595 @@
8589
8589
  },
8590
8590
  {
8591
8591
  "kind": "javascript-module",
8592
- "path": "src/common/mixins/DraftComponentMixin.ts",
8592
+ "path": "src/common/directives/cond.ts",
8593
8593
  "declarations": [
8594
8594
  {
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
- ]
8595
+ "kind": "variable",
8596
+ "name": "cond"
8618
8597
  }
8619
8598
  ],
8620
8599
  "exports": [
8621
8600
  {
8622
8601
  "kind": "js",
8623
- "name": "DraftComponentMixin",
8602
+ "name": "cond",
8624
8603
  "declaration": {
8625
- "name": "DraftComponentMixin",
8626
- "module": "src/common/mixins/DraftComponentMixin.ts"
8604
+ "name": "cond",
8605
+ "module": "src/common/directives/cond.ts"
8627
8606
  }
8628
8607
  }
8629
8608
  ]
8630
8609
  },
8631
8610
  {
8632
8611
  "kind": "javascript-module",
8633
- "path": "src/common/mixins/FocusableMixin.ts",
8612
+ "path": "src/common/directives/wrapIf.ts",
8634
8613
  "declarations": [
8635
8614
  {
8636
- "kind": "class",
8637
- "description": "",
8638
- "name": "FocusableMixinInterface",
8639
- "members": [
8615
+ "kind": "function",
8616
+ "name": "wrapIf",
8617
+ "return": {
8618
+ "type": {
8619
+ "text": "TInner"
8620
+ }
8621
+ },
8622
+ "parameters": [
8640
8623
  {
8641
- "kind": "field",
8642
- "name": "focusableRef",
8624
+ "name": "condition",
8643
8625
  "type": {
8644
- "text": "Ref<HTMLElement>"
8645
- },
8646
- "privacy": "protected"
8647
- },
8648
- {
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
- ]
8626
+ "text": "false"
8627
+ }
8665
8628
  },
8666
8629
  {
8667
- "kind": "method",
8668
- "name": "blur",
8669
- "return": {
8670
- "type": {
8671
- "text": "void"
8672
- }
8630
+ "name": "inner",
8631
+ "type": {
8632
+ "text": "() => TInner"
8673
8633
  }
8674
8634
  },
8675
8635
  {
8676
- "kind": "method",
8677
- "name": "click",
8678
- "return": {
8679
- "type": {
8680
- "text": "void"
8681
- }
8636
+ "name": "wrapper",
8637
+ "type": {
8638
+ "text": "(inner: TInner) => TWrapper"
8682
8639
  }
8683
8640
  }
8684
8641
  ]
8685
8642
  },
8686
8643
  {
8687
- "kind": "mixin",
8688
- "description": "",
8689
- "name": "FocusableMixin",
8690
- "members": [
8644
+ "kind": "function",
8645
+ "name": "wrapIf",
8646
+ "return": {
8647
+ "type": {
8648
+ "text": "TWrapper"
8649
+ }
8650
+ },
8651
+ "parameters": [
8691
8652
  {
8692
- "kind": "field",
8693
- "name": "focusableRef",
8694
- "privacy": "protected"
8653
+ "name": "condition",
8654
+ "type": {
8655
+ "text": "true"
8656
+ }
8695
8657
  },
8696
8658
  {
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."
8659
+ "name": "inner",
8660
+ "type": {
8661
+ "text": "() => TInner"
8662
+ }
8710
8663
  },
8711
8664
  {
8712
- "kind": "method",
8713
- "name": "blur",
8714
- "description": "Programmatically remove focus from the component."
8665
+ "name": "wrapper",
8666
+ "type": {
8667
+ "text": "(inner: TInner) => TWrapper"
8668
+ }
8669
+ }
8670
+ ]
8671
+ },
8672
+ {
8673
+ "kind": "function",
8674
+ "name": "wrapIf",
8675
+ "return": {
8676
+ "type": {
8677
+ "text": "TInner | TWrapper"
8678
+ }
8679
+ },
8680
+ "parameters": [
8681
+ {
8682
+ "name": "condition",
8683
+ "type": {
8684
+ "text": "unknown"
8685
+ }
8715
8686
  },
8716
8687
  {
8717
- "kind": "method",
8718
- "name": "click",
8719
- "description": "Programmatically simulates a click on the component."
8688
+ "name": "inner",
8689
+ "type": {
8690
+ "text": "() => TInner"
8691
+ }
8692
+ },
8693
+ {
8694
+ "name": "wrapper",
8695
+ "type": {
8696
+ "text": "(inner: TInner) => TWrapper"
8697
+ }
8720
8698
  }
8721
- ],
8699
+ ]
8700
+ },
8701
+ {
8702
+ "kind": "function",
8703
+ "name": "wrapIf",
8722
8704
  "parameters": [
8723
8705
  {
8724
- "name": "superClass",
8706
+ "name": "condition",
8725
8707
  "type": {
8726
- "text": "T"
8708
+ "text": "any"
8709
+ }
8710
+ },
8711
+ {
8712
+ "name": "inner",
8713
+ "type": {
8714
+ "text": "() => TInner"
8715
+ }
8716
+ },
8717
+ {
8718
+ "name": "wrapper",
8719
+ "type": {
8720
+ "text": "(innards: TInner) => TWrapper"
8727
8721
  }
8728
8722
  }
8729
- ]
8723
+ ],
8724
+ "return": {
8725
+ "type": {
8726
+ "text": ""
8727
+ }
8728
+ }
8730
8729
  }
8731
8730
  ],
8732
8731
  "exports": [
8733
8732
  {
8734
8733
  "kind": "js",
8735
- "name": "FocusableMixinInterface",
8734
+ "name": "wrapIf",
8736
8735
  "declaration": {
8737
- "name": "FocusableMixinInterface",
8738
- "module": "src/common/mixins/FocusableMixin.ts"
8736
+ "name": "wrapIf",
8737
+ "module": "src/common/directives/wrapIf.ts"
8739
8738
  }
8740
8739
  },
8741
8740
  {
8742
8741
  "kind": "js",
8743
- "name": "FocusableMixin",
8742
+ "name": "wrapIf",
8744
8743
  "declaration": {
8745
- "name": "FocusableMixin",
8746
- "module": "src/common/mixins/FocusableMixin.ts"
8744
+ "name": "wrapIf",
8745
+ "module": "src/common/directives/wrapIf.ts"
8746
+ }
8747
+ },
8748
+ {
8749
+ "kind": "js",
8750
+ "name": "wrapIf",
8751
+ "declaration": {
8752
+ "name": "wrapIf",
8753
+ "module": "src/common/directives/wrapIf.ts"
8754
+ }
8755
+ },
8756
+ {
8757
+ "kind": "js",
8758
+ "name": "wrapIf",
8759
+ "declaration": {
8760
+ "name": "wrapIf",
8761
+ "module": "src/common/directives/wrapIf.ts"
8747
8762
  }
8748
8763
  }
8749
8764
  ]
8750
8765
  },
8751
8766
  {
8752
8767
  "kind": "javascript-module",
8753
- "path": "src/common/mixins/FormAssociatedMixin.ts",
8768
+ "path": "src/common/controllers/DirectionController.ts",
8754
8769
  "declarations": [
8755
8770
  {
8756
8771
  "kind": "class",
8757
8772
  "description": "",
8758
- "name": "FormAssociatedMixinInterface",
8773
+ "name": "DirectionController",
8759
8774
  "members": [
8760
8775
  {
8761
8776
  "kind": "field",
8762
- "name": "label",
8763
- "type": {
8764
- "text": "string"
8765
- }
8777
+ "name": "hosts",
8778
+ "privacy": "private",
8779
+ "static": true,
8780
+ "default": "new Set<ReactiveControllerHost>()"
8766
8781
  },
8767
8782
  {
8768
8783
  "kind": "field",
8769
- "name": "required",
8784
+ "name": "observer",
8770
8785
  "type": {
8771
- "text": "boolean"
8772
- }
8786
+ "text": "MutationObserver | undefined"
8787
+ },
8788
+ "privacy": "private",
8789
+ "static": true
8773
8790
  },
8774
8791
  {
8775
8792
  "kind": "field",
8776
- "name": "hint",
8793
+ "name": "dir",
8777
8794
  "type": {
8778
- "text": "string | undefined"
8795
+ "text": "WritingDirection"
8779
8796
  }
8780
8797
  },
8781
8798
  {
8782
8799
  "kind": "field",
8783
- "name": "hideLabel",
8784
- "type": {
8785
- "text": "boolean"
8786
- }
8800
+ "name": "isLTR"
8787
8801
  },
8788
8802
  {
8789
8803
  "kind": "field",
8790
- "name": "placeholder",
8791
- "type": {
8792
- "text": "string | undefined"
8793
- }
8804
+ "name": "isRTL"
8794
8805
  },
8795
8806
  {
8796
- "kind": "field",
8797
- "name": "error",
8798
- "type": {
8799
- "text": "string | undefined"
8800
- }
8807
+ "kind": "method",
8808
+ "name": "hostConnected"
8801
8809
  },
8802
8810
  {
8803
- "kind": "field",
8804
- "name": "expand",
8805
- "type": {
8806
- "text": "boolean"
8807
- }
8811
+ "kind": "method",
8812
+ "name": "hostDisconnected"
8808
8813
  },
8809
8814
  {
8810
- "kind": "field",
8811
- "name": "inputId",
8812
- "type": {
8813
- "text": "string"
8814
- },
8815
- "privacy": "protected"
8815
+ "kind": "method",
8816
+ "name": "observe",
8817
+ "privacy": "private",
8818
+ "static": true
8816
8819
  },
8817
8820
  {
8818
8821
  "kind": "field",
8819
- "name": "errorId",
8820
- "type": {
8821
- "text": "string"
8822
- },
8823
- "privacy": "protected"
8822
+ "name": "host",
8823
+ "default": "host"
8824
+ }
8825
+ ]
8826
+ }
8827
+ ],
8828
+ "exports": [
8829
+ {
8830
+ "kind": "js",
8831
+ "name": "DirectionController",
8832
+ "declaration": {
8833
+ "name": "DirectionController",
8834
+ "module": "src/common/controllers/DirectionController.ts"
8835
+ }
8836
+ }
8837
+ ]
8838
+ },
8839
+ {
8840
+ "kind": "javascript-module",
8841
+ "path": "src/common/controllers/FormDataController.ts",
8842
+ "declarations": [
8843
+ {
8844
+ "kind": "class",
8845
+ "description": "",
8846
+ "name": "FormDataController",
8847
+ "members": [
8848
+ {
8849
+ "kind": "method",
8850
+ "name": "hostConnected"
8824
8851
  },
8825
8852
  {
8826
- "kind": "field",
8827
- "name": "hintId",
8828
- "type": {
8829
- "text": "string"
8830
- },
8831
- "privacy": "protected"
8853
+ "kind": "method",
8854
+ "name": "hostDisconnected"
8832
8855
  },
8833
8856
  {
8834
8857
  "kind": "field",
8835
- "name": "labelSlot",
8836
- "type": {
8837
- "text": "SlotController"
8838
- },
8839
- "privacy": "protected"
8858
+ "name": "handleFormData",
8859
+ "privacy": "private"
8840
8860
  },
8841
8861
  {
8842
8862
  "kind": "field",
8843
- "name": "hintSlot",
8844
- "type": {
8845
- "text": "SlotController"
8846
- },
8847
- "privacy": "protected"
8863
+ "name": "host",
8864
+ "default": "host"
8848
8865
  },
8849
8866
  {
8850
8867
  "kind": "field",
8851
- "name": "errorSlot",
8852
- "type": {
8853
- "text": "SlotController"
8854
- },
8855
- "privacy": "protected"
8856
- },
8857
- {
8858
- "kind": "field",
8859
- "name": "formData",
8860
- "type": {
8861
- "text": "FormDataController"
8862
- },
8863
- "privacy": "protected"
8864
- },
8865
- {
8866
- "kind": "field",
8867
- "name": "formValue",
8868
- "type": {
8869
- "text": "string | undefined"
8870
- },
8871
- "privacy": "protected"
8872
- },
8873
- {
8874
- "kind": "field",
8875
- "name": "hasError",
8876
- "type": {
8877
- "text": "boolean"
8878
- },
8879
- "privacy": "protected"
8880
- },
8881
- {
8882
- "kind": "field",
8883
- "name": "hasHint",
8884
- "type": {
8885
- "text": "boolean"
8886
- },
8887
- "privacy": "protected"
8888
- },
8889
- {
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
- ]
8906
- },
8907
- {
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
- ]
8924
- },
8925
- {
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
- }
8868
+ "name": "options",
8869
+ "default": "options"
8964
8870
  }
8965
8871
  ]
8966
- },
8872
+ }
8873
+ ],
8874
+ "exports": [
8967
8875
  {
8968
- "kind": "mixin",
8876
+ "kind": "js",
8877
+ "name": "FormDataController",
8878
+ "declaration": {
8879
+ "name": "FormDataController",
8880
+ "module": "src/common/controllers/FormDataController.ts"
8881
+ }
8882
+ }
8883
+ ]
8884
+ },
8885
+ {
8886
+ "kind": "javascript-module",
8887
+ "path": "src/common/controllers/LightDismissController.ts",
8888
+ "declarations": [
8889
+ {
8890
+ "kind": "class",
8969
8891
  "description": "",
8970
- "name": "FormAssociatedMixin",
8892
+ "name": "LightDismissController",
8971
8893
  "members": [
8972
8894
  {
8973
8895
  "kind": "field",
8974
- "name": "labelSlot",
8975
- "privacy": "protected",
8976
- "default": "new SlotController(this, \"label\")"
8896
+ "name": "shortcut",
8897
+ "type": {
8898
+ "text": "ShortcutController"
8899
+ },
8900
+ "privacy": "private",
8901
+ "default": "new ShortcutController(this.host, { Escape: this.handleEsc })"
8977
8902
  },
8978
8903
  {
8979
- "kind": "field",
8980
- "name": "errorSlot",
8981
- "privacy": "protected",
8982
- "default": "new SlotController(this, \"error\")"
8904
+ "kind": "method",
8905
+ "name": "hostConnected"
8983
8906
  },
8984
8907
  {
8985
- "kind": "field",
8986
- "name": "hintSlot",
8987
- "privacy": "protected",
8988
- "default": "new SlotController(this, \"hint\")"
8908
+ "kind": "method",
8909
+ "name": "hostDisconnected"
8989
8910
  },
8990
8911
  {
8991
8912
  "kind": "field",
8992
- "name": "formData",
8993
- "privacy": "protected",
8994
- "default": "new FormDataController(this, { value: () => this.formValue })"
8913
+ "name": "handleEsc",
8914
+ "privacy": "private"
8995
8915
  },
8996
8916
  {
8997
8917
  "kind": "field",
8998
- "name": "formValue",
8999
- "privacy": "protected"
8918
+ "name": "handleClickOut",
8919
+ "privacy": "private"
9000
8920
  },
9001
8921
  {
9002
8922
  "kind": "field",
9003
- "name": "inputId",
9004
- "type": {
9005
- "text": "string"
9006
- },
9007
- "privacy": "protected",
9008
- "default": "\"input\""
8923
+ "name": "host",
8924
+ "default": "host"
9009
8925
  },
9010
8926
  {
9011
8927
  "kind": "field",
9012
- "name": "errorId",
9013
- "type": {
9014
- "text": "string"
9015
- },
9016
- "privacy": "protected",
9017
- "default": "\"error\""
9018
- },
8928
+ "name": "options",
8929
+ "default": "options"
8930
+ }
8931
+ ]
8932
+ }
8933
+ ],
8934
+ "exports": [
8935
+ {
8936
+ "kind": "js",
8937
+ "name": "LightDismissController",
8938
+ "declaration": {
8939
+ "name": "LightDismissController",
8940
+ "module": "src/common/controllers/LightDismissController.ts"
8941
+ }
8942
+ }
8943
+ ]
8944
+ },
8945
+ {
8946
+ "kind": "javascript-module",
8947
+ "path": "src/common/controllers/LightDomController.ts",
8948
+ "declarations": [
8949
+ {
8950
+ "kind": "class",
8951
+ "description": "",
8952
+ "name": "LightDomController",
8953
+ "members": [
9019
8954
  {
9020
8955
  "kind": "field",
9021
- "name": "hintId",
8956
+ "name": "container",
9022
8957
  "type": {
9023
- "text": "string"
8958
+ "text": "HTMLElement"
9024
8959
  },
9025
- "privacy": "protected",
9026
- "default": "\"hint\""
8960
+ "privacy": "private"
9027
8961
  },
9028
8962
  {
9029
- "kind": "field",
9030
- "name": "label",
9031
- "type": {
9032
- "text": "string"
9033
- },
9034
- "default": "\"\"",
9035
- "description": "Label for the input.",
9036
- "attribute": "label"
8963
+ "kind": "method",
8964
+ "name": "hostUpdated"
9037
8965
  },
9038
8966
  {
9039
- "kind": "field",
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"
8967
+ "kind": "method",
8968
+ "name": "hostDisconnected"
9046
8969
  },
9047
8970
  {
9048
8971
  "kind": "field",
9049
- "name": "hideLabel",
9050
- "type": {
9051
- "text": "boolean"
9052
- },
9053
- "default": "false",
9054
- "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
9055
- "attribute": "hide-label"
8972
+ "name": "host",
8973
+ "default": "host"
9056
8974
  },
9057
8975
  {
9058
8976
  "kind": "field",
9059
- "name": "placeholder",
9060
- "type": {
9061
- "text": "string | undefined"
9062
- },
9063
- "description": "Placeholder text to display within the input.",
9064
- "attribute": "placeholder"
9065
- },
8977
+ "name": "options",
8978
+ "default": "options"
8979
+ }
8980
+ ]
8981
+ }
8982
+ ],
8983
+ "exports": [
8984
+ {
8985
+ "kind": "js",
8986
+ "name": "LightDomController",
8987
+ "declaration": {
8988
+ "name": "LightDomController",
8989
+ "module": "src/common/controllers/LightDomController.ts"
8990
+ }
8991
+ }
8992
+ ]
8993
+ },
8994
+ {
8995
+ "kind": "javascript-module",
8996
+ "path": "src/common/controllers/LightSlotController.ts",
8997
+ "declarations": [
8998
+ {
8999
+ "kind": "class",
9000
+ "description": "Handles cases where a component needs to render to light DOM,\nand potentially sync component properties to user-supplied content.",
9001
+ "name": "LightSlotController",
9002
+ "members": [
9066
9003
  {
9067
9004
  "kind": "field",
9068
- "name": "error",
9005
+ "name": "renderHook",
9069
9006
  "type": {
9070
- "text": "string | undefined"
9007
+ "text": "Comment"
9071
9008
  },
9072
- "description": "Optional error to be shown with the input. Alternatively use the error slot.",
9073
- "attribute": "error"
9009
+ "privacy": "private"
9074
9010
  },
9075
9011
  {
9076
9012
  "kind": "field",
9077
- "name": "required",
9013
+ "name": "lightDom",
9078
9014
  "type": {
9079
- "text": "boolean"
9015
+ "text": "LightDomController"
9080
9016
  },
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"
9017
+ "privacy": "private",
9018
+ "default": "new LightDomController(host, {\n render: () => (this.hasContent ? nothing : this.options.render()),\n renderOptions: { renderBefore: this.renderHook },\n })"
9084
9019
  },
9085
9020
  {
9086
- "kind": "field",
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
9021
+ "kind": "method",
9022
+ "name": "hostConnected",
9023
+ "inheritedFrom": {
9024
+ "name": "SlotController",
9025
+ "module": "src/common/controllers/SlotController.ts"
9026
+ }
9095
9027
  },
9096
9028
  {
9097
9029
  "kind": "method",
9098
- "name": "handleInput",
9099
- "privacy": "protected",
9100
- "parameters": [
9101
- {
9102
- "name": "e",
9103
- "type": {
9104
- "text": "Event"
9105
- }
9106
- }
9107
- ]
9030
+ "name": "hostDisconnected",
9031
+ "inheritedFrom": {
9032
+ "name": "SlotController",
9033
+ "module": "src/common/controllers/SlotController.ts"
9034
+ }
9108
9035
  },
9109
9036
  {
9110
- "kind": "method",
9111
- "name": "handleChange",
9037
+ "kind": "field",
9038
+ "name": "onChange",
9112
9039
  "privacy": "protected",
9113
9040
  "parameters": [
9114
9041
  {
9115
- "name": "e",
9042
+ "name": "_e",
9116
9043
  "type": {
9117
9044
  "text": "Event"
9118
9045
  }
9119
9046
  }
9120
- ]
9121
- },
9122
- {
9123
- "kind": "method",
9124
- "name": "renderLabel",
9125
- "privacy": "protected"
9126
- },
9127
- {
9128
- "kind": "method",
9129
- "name": "renderError",
9130
- "privacy": "protected"
9131
- },
9132
- {
9133
- "kind": "method",
9134
- "name": "getDescribedBy",
9135
- "privacy": "protected"
9047
+ ],
9048
+ "inheritedFrom": {
9049
+ "name": "SlotController",
9050
+ "module": "src/common/controllers/SlotController.ts"
9051
+ }
9136
9052
  },
9137
9053
  {
9138
9054
  "kind": "method",
9139
- "name": "getInvalid",
9140
- "privacy": "protected"
9055
+ "name": "syncLightDom",
9056
+ "privacy": "private"
9141
9057
  },
9142
9058
  {
9143
9059
  "kind": "field",
9144
- "name": "hasHint",
9145
- "privacy": "protected"
9060
+ "name": "options",
9061
+ "default": "options"
9146
9062
  },
9147
9063
  {
9148
9064
  "kind": "field",
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."
9160
- },
9161
- {
9162
- "name": "change",
9163
- "type": {
9164
- "text": "NordEvent"
9165
- },
9166
- "description": "Fired whenever the input's value is changed via user interaction."
9167
- }
9168
- ],
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"
9065
+ "name": "hasContent",
9066
+ "inheritedFrom": {
9067
+ "name": "SlotController",
9068
+ "module": "src/common/controllers/SlotController.ts"
9069
+ }
9186
9070
  },
9187
9071
  {
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"
9072
+ "kind": "field",
9073
+ "name": "isEmpty",
9074
+ "inheritedFrom": {
9075
+ "name": "SlotController",
9076
+ "module": "src/common/controllers/SlotController.ts"
9077
+ }
9195
9078
  },
9196
9079
  {
9197
- "name": "placeholder",
9198
- "type": {
9199
- "text": "string | undefined"
9200
- },
9201
- "description": "Placeholder text to display within the input.",
9202
- "fieldName": "placeholder"
9080
+ "kind": "field",
9081
+ "name": "content",
9082
+ "inheritedFrom": {
9083
+ "name": "SlotController",
9084
+ "module": "src/common/controllers/SlotController.ts"
9085
+ }
9203
9086
  },
9204
9087
  {
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"
9088
+ "kind": "field",
9089
+ "name": "handleSlotChange",
9090
+ "privacy": "private",
9091
+ "inheritedFrom": {
9092
+ "name": "SlotController",
9093
+ "module": "src/common/controllers/SlotController.ts"
9094
+ }
9211
9095
  },
9212
9096
  {
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"
9097
+ "kind": "field",
9098
+ "name": "host",
9099
+ "default": "host",
9100
+ "inheritedFrom": {
9101
+ "name": "SlotController",
9102
+ "module": "src/common/controllers/SlotController.ts"
9103
+ }
9220
9104
  },
9221
9105
  {
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"
9106
+ "kind": "field",
9107
+ "name": "slotName",
9108
+ "default": "slotName",
9109
+ "inheritedFrom": {
9110
+ "name": "SlotController",
9111
+ "module": "src/common/controllers/SlotController.ts"
9236
9112
  }
9237
9113
  }
9238
- ]
9114
+ ],
9115
+ "superclass": {
9116
+ "name": "SlotController",
9117
+ "module": "/src/common/controllers/SlotController.js"
9118
+ },
9119
+ "status": null,
9120
+ "category": null
9239
9121
  }
9240
9122
  ],
9241
9123
  "exports": [
9242
9124
  {
9243
9125
  "kind": "js",
9244
- "name": "FormAssociatedMixinInterface",
9245
- "declaration": {
9246
- "name": "FormAssociatedMixinInterface",
9247
- "module": "src/common/mixins/FormAssociatedMixin.ts"
9248
- }
9249
- },
9250
- {
9251
- "kind": "js",
9252
- "name": "FormAssociatedMixin",
9126
+ "name": "LightSlotController",
9253
9127
  "declaration": {
9254
- "name": "FormAssociatedMixin",
9255
- "module": "src/common/mixins/FormAssociatedMixin.ts"
9128
+ "name": "LightSlotController",
9129
+ "module": "src/common/controllers/LightSlotController.ts"
9256
9130
  }
9257
9131
  }
9258
9132
  ]
9259
9133
  },
9260
9134
  {
9261
9135
  "kind": "javascript-module",
9262
- "path": "src/common/mixins/InputMixin.ts",
9136
+ "path": "src/common/controllers/PortalController.ts",
9263
9137
  "declarations": [
9264
9138
  {
9265
- "kind": "class",
9266
- "description": "",
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",
9139
+ "kind": "class",
9301
9140
  "description": "",
9302
- "name": "InputMixin",
9141
+ "name": "PortalController",
9303
9142
  "members": [
9304
9143
  {
9305
9144
  "kind": "field",
9306
- "name": "disabled",
9145
+ "name": "renderHook",
9307
9146
  "type": {
9308
- "text": "boolean"
9147
+ "text": "Comment"
9309
9148
  },
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
9149
+ "privacy": "private"
9314
9150
  },
9315
9151
  {
9316
9152
  "kind": "field",
9317
- "name": "name",
9153
+ "name": "lightDom",
9318
9154
  "type": {
9319
- "text": "string | undefined"
9155
+ "text": "LightDomController"
9320
9156
  },
9321
- "description": "The name of the form component.",
9322
- "attribute": "name"
9157
+ "privacy": "private",
9158
+ "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 })"
9323
9159
  },
9324
9160
  {
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"
9161
+ "kind": "method",
9162
+ "name": "hostConnected"
9333
9163
  },
9334
9164
  {
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": [
9342
- {
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"
9165
+ "kind": "method",
9166
+ "name": "hostUpdated"
9350
9167
  },
9351
9168
  {
9352
- "name": "name",
9353
- "type": {
9354
- "text": "string | undefined"
9355
- },
9356
- "description": "The name of the form component.",
9357
- "fieldName": "name"
9169
+ "kind": "method",
9170
+ "name": "hostDisconnected"
9358
9171
  },
9359
9172
  {
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": [
9173
+ "kind": "field",
9174
+ "name": "host",
9175
+ "default": "host"
9176
+ },
9370
9177
  {
9371
- "name": "superClass",
9372
- "type": {
9373
- "text": "T"
9374
- }
9178
+ "kind": "field",
9179
+ "name": "options",
9180
+ "default": "options"
9375
9181
  }
9376
9182
  ]
9377
9183
  }
@@ -9379,80 +9185,64 @@
9379
9185
  "exports": [
9380
9186
  {
9381
9187
  "kind": "js",
9382
- "name": "InputMixinInterface",
9383
- "declaration": {
9384
- "name": "InputMixinInterface",
9385
- "module": "src/common/mixins/InputMixin.ts"
9386
- }
9387
- },
9388
- {
9389
- "kind": "js",
9390
- "name": "InputMixin",
9188
+ "name": "PortalController",
9391
9189
  "declaration": {
9392
- "name": "InputMixin",
9393
- "module": "src/common/mixins/InputMixin.ts"
9190
+ "name": "PortalController",
9191
+ "module": "src/common/controllers/PortalController.ts"
9394
9192
  }
9395
9193
  }
9396
9194
  ]
9397
9195
  },
9398
9196
  {
9399
9197
  "kind": "javascript-module",
9400
- "path": "src/common/controllers/DirectionController.ts",
9198
+ "path": "src/common/controllers/ShortcutController.ts",
9401
9199
  "declarations": [
9402
9200
  {
9403
9201
  "kind": "class",
9404
9202
  "description": "",
9405
- "name": "DirectionController",
9203
+ "name": "ShortcutController",
9406
9204
  "members": [
9407
9205
  {
9408
9206
  "kind": "field",
9409
- "name": "hosts",
9410
- "privacy": "private",
9411
- "static": true,
9412
- "default": "new Set<ReactiveControllerHost>()"
9413
- },
9414
- {
9415
- "kind": "field",
9416
- "name": "observer",
9207
+ "name": "unregister",
9417
9208
  "type": {
9418
- "text": "MutationObserver | undefined"
9209
+ "text": "ReturnType<typeof tinykeys> | undefined"
9419
9210
  },
9420
- "privacy": "private",
9421
- "static": true
9422
- },
9423
- {
9424
- "kind": "field",
9425
- "name": "dir",
9426
- "type": {
9427
- "text": "WritingDirection"
9428
- }
9211
+ "privacy": "private"
9429
9212
  },
9430
9213
  {
9431
- "kind": "field",
9432
- "name": "isLTR"
9214
+ "kind": "method",
9215
+ "name": "hostConnected"
9433
9216
  },
9434
9217
  {
9435
- "kind": "field",
9436
- "name": "isRTL"
9218
+ "kind": "method",
9219
+ "name": "hostDisconnected"
9437
9220
  },
9438
9221
  {
9439
9222
  "kind": "method",
9440
- "name": "hostConnected"
9223
+ "name": "unbind"
9441
9224
  },
9442
9225
  {
9443
9226
  "kind": "method",
9444
- "name": "hostDisconnected"
9227
+ "name": "bind",
9228
+ "parameters": [
9229
+ {
9230
+ "name": "shortcuts",
9231
+ "type": {
9232
+ "text": "KeyBindingMap"
9233
+ }
9234
+ }
9235
+ ]
9445
9236
  },
9446
9237
  {
9447
- "kind": "method",
9448
- "name": "observe",
9449
- "privacy": "private",
9450
- "static": true
9238
+ "kind": "field",
9239
+ "name": "shortcuts",
9240
+ "default": "shortcuts"
9451
9241
  },
9452
9242
  {
9453
9243
  "kind": "field",
9454
- "name": "host",
9455
- "default": "host"
9244
+ "name": "target",
9245
+ "default": "target"
9456
9246
  }
9457
9247
  ]
9458
9248
  }
@@ -9460,22 +9250,30 @@
9460
9250
  "exports": [
9461
9251
  {
9462
9252
  "kind": "js",
9463
- "name": "DirectionController",
9253
+ "name": "ShortcutController",
9464
9254
  "declaration": {
9465
- "name": "DirectionController",
9466
- "module": "src/common/controllers/DirectionController.ts"
9255
+ "name": "ShortcutController",
9256
+ "module": "src/common/controllers/ShortcutController.ts"
9257
+ }
9258
+ },
9259
+ {
9260
+ "kind": "js",
9261
+ "name": "ShortcutMap",
9262
+ "declaration": {
9263
+ "name": "KeyBindingMap",
9264
+ "module": "src/common/controllers/ShortcutController.ts"
9467
9265
  }
9468
9266
  }
9469
9267
  ]
9470
9268
  },
9471
9269
  {
9472
9270
  "kind": "javascript-module",
9473
- "path": "src/common/controllers/FormDataController.ts",
9271
+ "path": "src/common/controllers/SlotController.ts",
9474
9272
  "declarations": [
9475
9273
  {
9476
9274
  "kind": "class",
9477
9275
  "description": "",
9478
- "name": "FormDataController",
9276
+ "name": "SlotController",
9479
9277
  "members": [
9480
9278
  {
9481
9279
  "kind": "method",
@@ -9487,9 +9285,34 @@
9487
9285
  },
9488
9286
  {
9489
9287
  "kind": "field",
9490
- "name": "handleFormData",
9288
+ "name": "hasContent"
9289
+ },
9290
+ {
9291
+ "kind": "field",
9292
+ "name": "isEmpty"
9293
+ },
9294
+ {
9295
+ "kind": "field",
9296
+ "name": "content"
9297
+ },
9298
+ {
9299
+ "kind": "field",
9300
+ "name": "handleSlotChange",
9491
9301
  "privacy": "private"
9492
9302
  },
9303
+ {
9304
+ "kind": "method",
9305
+ "name": "onChange",
9306
+ "privacy": "protected",
9307
+ "parameters": [
9308
+ {
9309
+ "name": "_e",
9310
+ "type": {
9311
+ "text": "Event"
9312
+ }
9313
+ }
9314
+ ]
9315
+ },
9493
9316
  {
9494
9317
  "kind": "field",
9495
9318
  "name": "host",
@@ -9497,8 +9320,8 @@
9497
9320
  },
9498
9321
  {
9499
9322
  "kind": "field",
9500
- "name": "options",
9501
- "default": "options"
9323
+ "name": "slotName",
9324
+ "default": "slotName"
9502
9325
  }
9503
9326
  ]
9504
9327
  }
@@ -9506,35 +9329,85 @@
9506
9329
  "exports": [
9507
9330
  {
9508
9331
  "kind": "js",
9509
- "name": "FormDataController",
9332
+ "name": "SlotController",
9510
9333
  "declaration": {
9511
- "name": "FormDataController",
9512
- "module": "src/common/controllers/FormDataController.ts"
9334
+ "name": "SlotController",
9335
+ "module": "src/common/controllers/SlotController.ts"
9513
9336
  }
9514
9337
  }
9515
9338
  ]
9516
9339
  },
9517
9340
  {
9518
9341
  "kind": "javascript-module",
9519
- "path": "src/common/controllers/LightDismissController.ts",
9342
+ "path": "src/common/controllers/SwipeController.ts",
9520
9343
  "declarations": [
9521
9344
  {
9522
9345
  "kind": "class",
9523
9346
  "description": "",
9524
- "name": "LightDismissController",
9347
+ "name": "SwipeController",
9525
9348
  "members": [
9526
9349
  {
9527
9350
  "kind": "field",
9528
- "name": "shortcut",
9351
+ "name": "host",
9529
9352
  "type": {
9530
- "text": "ShortcutController"
9353
+ "text": "ReactiveElement"
9531
9354
  },
9532
9355
  "privacy": "private",
9533
- "default": "new ShortcutController(this.host, { Escape: this.handleEsc })"
9356
+ "default": "host"
9357
+ },
9358
+ {
9359
+ "kind": "field",
9360
+ "name": "attached",
9361
+ "type": {
9362
+ "text": "boolean"
9363
+ },
9364
+ "privacy": "private",
9365
+ "default": "false"
9366
+ },
9367
+ {
9368
+ "kind": "field",
9369
+ "name": "initialTouchX",
9370
+ "type": {
9371
+ "text": "number"
9372
+ },
9373
+ "privacy": "private",
9374
+ "default": "0"
9375
+ },
9376
+ {
9377
+ "kind": "field",
9378
+ "name": "initialTouchY",
9379
+ "type": {
9380
+ "text": "number"
9381
+ },
9382
+ "privacy": "private",
9383
+ "default": "0"
9384
+ },
9385
+ {
9386
+ "kind": "field",
9387
+ "name": "target",
9388
+ "type": {
9389
+ "text": "() => HTMLElement"
9390
+ },
9391
+ "privacy": "private"
9392
+ },
9393
+ {
9394
+ "kind": "field",
9395
+ "name": "onSwipeEnd",
9396
+ "type": {
9397
+ "text": "SwipeControllerOptions[\"onSwipeEnd\"]"
9398
+ },
9399
+ "privacy": "private"
9400
+ },
9401
+ {
9402
+ "kind": "field",
9403
+ "name": "matchesGesture",
9404
+ "type": {
9405
+ "text": "SwipeControllerOptions[\"matchesGesture\"]"
9406
+ }
9534
9407
  },
9535
9408
  {
9536
9409
  "kind": "method",
9537
- "name": "hostConnected"
9410
+ "name": "hostUpdated"
9538
9411
  },
9539
9412
  {
9540
9413
  "kind": "method",
@@ -9542,23 +9415,37 @@
9542
9415
  },
9543
9416
  {
9544
9417
  "kind": "field",
9545
- "name": "handleEsc",
9418
+ "name": "handleTouchStart",
9546
9419
  "privacy": "private"
9547
9420
  },
9548
9421
  {
9549
9422
  "kind": "field",
9550
- "name": "handleClickOut",
9423
+ "name": "handleTouchEnd",
9551
9424
  "privacy": "private"
9552
- },
9425
+ }
9426
+ ]
9427
+ },
9428
+ {
9429
+ "kind": "function",
9430
+ "name": "isHorizontalSwipe",
9431
+ "parameters": [
9553
9432
  {
9554
- "kind": "field",
9555
- "name": "host",
9556
- "default": "host"
9557
- },
9433
+ "name": "{ distX, distY }",
9434
+ "type": {
9435
+ "text": "SwipeDetails"
9436
+ }
9437
+ }
9438
+ ]
9439
+ },
9440
+ {
9441
+ "kind": "function",
9442
+ "name": "isDownwardsSwipe",
9443
+ "parameters": [
9558
9444
  {
9559
- "kind": "field",
9560
- "name": "options",
9561
- "default": "options"
9445
+ "name": "{ distX, distY }",
9446
+ "type": {
9447
+ "text": "SwipeDetails"
9448
+ }
9562
9449
  }
9563
9450
  ]
9564
9451
  }
@@ -9566,48 +9453,56 @@
9566
9453
  "exports": [
9567
9454
  {
9568
9455
  "kind": "js",
9569
- "name": "LightDismissController",
9456
+ "name": "SwipeController",
9570
9457
  "declaration": {
9571
- "name": "LightDismissController",
9572
- "module": "src/common/controllers/LightDismissController.ts"
9458
+ "name": "SwipeController",
9459
+ "module": "src/common/controllers/SwipeController.ts"
9460
+ }
9461
+ },
9462
+ {
9463
+ "kind": "js",
9464
+ "name": "isHorizontalSwipe",
9465
+ "declaration": {
9466
+ "name": "isHorizontalSwipe",
9467
+ "module": "src/common/controllers/SwipeController.ts"
9468
+ }
9469
+ },
9470
+ {
9471
+ "kind": "js",
9472
+ "name": "isDownwardsSwipe",
9473
+ "declaration": {
9474
+ "name": "isDownwardsSwipe",
9475
+ "module": "src/common/controllers/SwipeController.ts"
9573
9476
  }
9574
9477
  }
9575
9478
  ]
9576
9479
  },
9577
9480
  {
9578
9481
  "kind": "javascript-module",
9579
- "path": "src/common/controllers/LightDomController.ts",
9482
+ "path": "src/common/mixins/DraftComponentMixin.ts",
9580
9483
  "declarations": [
9581
9484
  {
9582
- "kind": "class",
9485
+ "kind": "mixin",
9583
9486
  "description": "",
9584
- "name": "LightDomController",
9487
+ "name": "DraftComponentMixin",
9585
9488
  "members": [
9586
9489
  {
9587
9490
  "kind": "field",
9588
- "name": "container",
9491
+ "name": "_warningLogged",
9589
9492
  "type": {
9590
- "text": "HTMLElement"
9493
+ "text": "boolean"
9591
9494
  },
9592
- "privacy": "private"
9593
- },
9594
- {
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
- },
9495
+ "privacy": "private",
9496
+ "static": true,
9497
+ "default": "false"
9498
+ }
9499
+ ],
9500
+ "parameters": [
9607
9501
  {
9608
- "kind": "field",
9609
- "name": "options",
9610
- "default": "options"
9502
+ "name": "superClass",
9503
+ "type": {
9504
+ "text": "T"
9505
+ }
9611
9506
  }
9612
9507
  ]
9613
9508
  }
@@ -9615,468 +9510,619 @@
9615
9510
  "exports": [
9616
9511
  {
9617
9512
  "kind": "js",
9618
- "name": "LightDomController",
9513
+ "name": "DraftComponentMixin",
9619
9514
  "declaration": {
9620
- "name": "LightDomController",
9621
- "module": "src/common/controllers/LightDomController.ts"
9515
+ "name": "DraftComponentMixin",
9516
+ "module": "src/common/mixins/DraftComponentMixin.ts"
9622
9517
  }
9623
9518
  }
9624
9519
  ]
9625
9520
  },
9626
9521
  {
9627
9522
  "kind": "javascript-module",
9628
- "path": "src/common/controllers/LightSlotController.ts",
9523
+ "path": "src/common/mixins/FocusableMixin.ts",
9629
9524
  "declarations": [
9630
9525
  {
9631
9526
  "kind": "class",
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",
9527
+ "description": "",
9528
+ "name": "FocusableMixinInterface",
9634
9529
  "members": [
9635
9530
  {
9636
9531
  "kind": "field",
9637
- "name": "renderHook",
9532
+ "name": "focusableRef",
9638
9533
  "type": {
9639
- "text": "Comment"
9534
+ "text": "Ref<HTMLElement>"
9640
9535
  },
9641
- "privacy": "private"
9536
+ "privacy": "protected"
9642
9537
  },
9643
9538
  {
9644
- "kind": "field",
9645
- "name": "lightDom",
9646
- "type": {
9647
- "text": "LightDomController"
9539
+ "kind": "method",
9540
+ "name": "focus",
9541
+ "return": {
9542
+ "type": {
9543
+ "text": "void"
9544
+ }
9648
9545
  },
9649
- "privacy": "private",
9650
- "default": "new LightDomController(host, {\n render: () => (this.hasContent ? nothing : this.options.render()),\n renderOptions: { renderBefore: this.renderHook },\n })"
9546
+ "parameters": [
9547
+ {
9548
+ "name": "options",
9549
+ "optional": true,
9550
+ "type": {
9551
+ "text": "FocusOptions"
9552
+ }
9553
+ }
9554
+ ]
9651
9555
  },
9652
9556
  {
9653
9557
  "kind": "method",
9654
- "name": "hostConnected",
9655
- "inheritedFrom": {
9656
- "name": "SlotController",
9657
- "module": "src/common/controllers/SlotController.ts"
9558
+ "name": "blur",
9559
+ "return": {
9560
+ "type": {
9561
+ "text": "void"
9562
+ }
9658
9563
  }
9659
9564
  },
9660
9565
  {
9661
9566
  "kind": "method",
9662
- "name": "hostDisconnected",
9663
- "inheritedFrom": {
9664
- "name": "SlotController",
9665
- "module": "src/common/controllers/SlotController.ts"
9567
+ "name": "click",
9568
+ "return": {
9569
+ "type": {
9570
+ "text": "void"
9571
+ }
9666
9572
  }
9667
- },
9573
+ }
9574
+ ]
9575
+ },
9576
+ {
9577
+ "kind": "mixin",
9578
+ "description": "",
9579
+ "name": "FocusableMixin",
9580
+ "members": [
9668
9581
  {
9669
9582
  "kind": "field",
9670
- "name": "onChange",
9671
- "privacy": "protected",
9583
+ "name": "focusableRef",
9584
+ "privacy": "protected"
9585
+ },
9586
+ {
9587
+ "kind": "method",
9588
+ "name": "focus",
9672
9589
  "parameters": [
9673
9590
  {
9674
- "name": "_e",
9591
+ "name": "options",
9592
+ "optional": true,
9675
9593
  "type": {
9676
- "text": "Event"
9677
- }
9594
+ "text": "FocusOptions"
9595
+ },
9596
+ "description": "An object which controls aspects of the focusing process."
9678
9597
  }
9679
9598
  ],
9680
- "inheritedFrom": {
9681
- "name": "SlotController",
9682
- "module": "src/common/controllers/SlotController.ts"
9683
- }
9599
+ "description": "Programmatically move focus to the component."
9684
9600
  },
9685
9601
  {
9686
9602
  "kind": "method",
9687
- "name": "syncLightDom",
9688
- "privacy": "private"
9603
+ "name": "blur",
9604
+ "description": "Programmatically remove focus from the component."
9689
9605
  },
9606
+ {
9607
+ "kind": "method",
9608
+ "name": "click",
9609
+ "description": "Programmatically simulates a click on the component."
9610
+ }
9611
+ ],
9612
+ "parameters": [
9613
+ {
9614
+ "name": "superClass",
9615
+ "type": {
9616
+ "text": "T"
9617
+ }
9618
+ }
9619
+ ]
9620
+ }
9621
+ ],
9622
+ "exports": [
9623
+ {
9624
+ "kind": "js",
9625
+ "name": "FocusableMixinInterface",
9626
+ "declaration": {
9627
+ "name": "FocusableMixinInterface",
9628
+ "module": "src/common/mixins/FocusableMixin.ts"
9629
+ }
9630
+ },
9631
+ {
9632
+ "kind": "js",
9633
+ "name": "FocusableMixin",
9634
+ "declaration": {
9635
+ "name": "FocusableMixin",
9636
+ "module": "src/common/mixins/FocusableMixin.ts"
9637
+ }
9638
+ }
9639
+ ]
9640
+ },
9641
+ {
9642
+ "kind": "javascript-module",
9643
+ "path": "src/common/mixins/FormAssociatedMixin.ts",
9644
+ "declarations": [
9645
+ {
9646
+ "kind": "class",
9647
+ "description": "",
9648
+ "name": "FormAssociatedMixinInterface",
9649
+ "members": [
9690
9650
  {
9691
9651
  "kind": "field",
9692
- "name": "options",
9693
- "default": "options"
9652
+ "name": "label",
9653
+ "type": {
9654
+ "text": "string"
9655
+ }
9694
9656
  },
9695
9657
  {
9696
9658
  "kind": "field",
9697
- "name": "hasContent",
9698
- "inheritedFrom": {
9699
- "name": "SlotController",
9700
- "module": "src/common/controllers/SlotController.ts"
9659
+ "name": "required",
9660
+ "type": {
9661
+ "text": "boolean"
9701
9662
  }
9702
9663
  },
9703
9664
  {
9704
9665
  "kind": "field",
9705
- "name": "isEmpty",
9706
- "inheritedFrom": {
9707
- "name": "SlotController",
9708
- "module": "src/common/controllers/SlotController.ts"
9666
+ "name": "hint",
9667
+ "type": {
9668
+ "text": "string | undefined"
9709
9669
  }
9710
9670
  },
9711
9671
  {
9712
9672
  "kind": "field",
9713
- "name": "content",
9714
- "inheritedFrom": {
9715
- "name": "SlotController",
9716
- "module": "src/common/controllers/SlotController.ts"
9673
+ "name": "hideLabel",
9674
+ "type": {
9675
+ "text": "boolean"
9717
9676
  }
9718
9677
  },
9719
9678
  {
9720
9679
  "kind": "field",
9721
- "name": "handleSlotChange",
9722
- "privacy": "private",
9723
- "inheritedFrom": {
9724
- "name": "SlotController",
9725
- "module": "src/common/controllers/SlotController.ts"
9680
+ "name": "placeholder",
9681
+ "type": {
9682
+ "text": "string | undefined"
9726
9683
  }
9727
9684
  },
9728
9685
  {
9729
9686
  "kind": "field",
9730
- "name": "host",
9731
- "default": "host",
9732
- "inheritedFrom": {
9733
- "name": "SlotController",
9734
- "module": "src/common/controllers/SlotController.ts"
9687
+ "name": "error",
9688
+ "type": {
9689
+ "text": "string | undefined"
9735
9690
  }
9736
9691
  },
9737
9692
  {
9738
9693
  "kind": "field",
9739
- "name": "slotName",
9740
- "default": "slotName",
9741
- "inheritedFrom": {
9742
- "name": "SlotController",
9743
- "module": "src/common/controllers/SlotController.ts"
9694
+ "name": "expand",
9695
+ "type": {
9696
+ "text": "boolean"
9744
9697
  }
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": [
9698
+ },
9775
9699
  {
9776
9700
  "kind": "field",
9777
- "name": "renderHook",
9701
+ "name": "inputId",
9778
9702
  "type": {
9779
- "text": "Comment"
9703
+ "text": "string"
9780
9704
  },
9781
- "privacy": "private"
9705
+ "privacy": "protected"
9782
9706
  },
9783
9707
  {
9784
9708
  "kind": "field",
9785
- "name": "lightDom",
9709
+ "name": "errorId",
9786
9710
  "type": {
9787
- "text": "LightDomController"
9711
+ "text": "string"
9788
9712
  },
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 })"
9713
+ "privacy": "protected"
9791
9714
  },
9792
9715
  {
9793
- "kind": "method",
9794
- "name": "hostConnected"
9716
+ "kind": "field",
9717
+ "name": "hintId",
9718
+ "type": {
9719
+ "text": "string"
9720
+ },
9721
+ "privacy": "protected"
9795
9722
  },
9796
9723
  {
9797
- "kind": "method",
9798
- "name": "hostUpdated"
9724
+ "kind": "field",
9725
+ "name": "labelSlot",
9726
+ "type": {
9727
+ "text": "SlotController"
9728
+ },
9729
+ "privacy": "protected"
9799
9730
  },
9800
9731
  {
9801
- "kind": "method",
9802
- "name": "hostDisconnected"
9732
+ "kind": "field",
9733
+ "name": "hintSlot",
9734
+ "type": {
9735
+ "text": "SlotController"
9736
+ },
9737
+ "privacy": "protected"
9803
9738
  },
9804
9739
  {
9805
9740
  "kind": "field",
9806
- "name": "host",
9807
- "default": "host"
9741
+ "name": "errorSlot",
9742
+ "type": {
9743
+ "text": "SlotController"
9744
+ },
9745
+ "privacy": "protected"
9808
9746
  },
9809
9747
  {
9810
9748
  "kind": "field",
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": [
9749
+ "name": "formData",
9750
+ "type": {
9751
+ "text": "FormDataController"
9752
+ },
9753
+ "privacy": "protected"
9754
+ },
9837
9755
  {
9838
9756
  "kind": "field",
9839
- "name": "unregister",
9757
+ "name": "formValue",
9840
9758
  "type": {
9841
- "text": "ReturnType<typeof tinykeys> | undefined"
9759
+ "text": "string | undefined"
9842
9760
  },
9843
- "privacy": "private"
9761
+ "privacy": "protected"
9844
9762
  },
9845
9763
  {
9846
- "kind": "method",
9847
- "name": "hostConnected"
9764
+ "kind": "field",
9765
+ "name": "hasError",
9766
+ "type": {
9767
+ "text": "boolean"
9768
+ },
9769
+ "privacy": "protected"
9848
9770
  },
9849
9771
  {
9850
- "kind": "method",
9851
- "name": "hostDisconnected"
9772
+ "kind": "field",
9773
+ "name": "hasHint",
9774
+ "type": {
9775
+ "text": "boolean"
9776
+ },
9777
+ "privacy": "protected"
9852
9778
  },
9853
9779
  {
9854
9780
  "kind": "method",
9855
- "name": "unbind"
9781
+ "name": "handleChange",
9782
+ "privacy": "protected",
9783
+ "return": {
9784
+ "type": {
9785
+ "text": "void"
9786
+ }
9787
+ },
9788
+ "parameters": [
9789
+ {
9790
+ "name": "e",
9791
+ "type": {
9792
+ "text": "Event"
9793
+ }
9794
+ }
9795
+ ]
9856
9796
  },
9857
9797
  {
9858
9798
  "kind": "method",
9859
- "name": "bind",
9799
+ "name": "handleInput",
9800
+ "privacy": "protected",
9801
+ "return": {
9802
+ "type": {
9803
+ "text": "void"
9804
+ }
9805
+ },
9860
9806
  "parameters": [
9861
9807
  {
9862
- "name": "shortcuts",
9808
+ "name": "e",
9863
9809
  "type": {
9864
- "text": "KeyBindingMap"
9810
+ "text": "Event"
9865
9811
  }
9866
9812
  }
9867
9813
  ]
9868
9814
  },
9869
9815
  {
9870
- "kind": "field",
9871
- "name": "shortcuts",
9872
- "default": "shortcuts"
9816
+ "kind": "method",
9817
+ "name": "renderLabel",
9818
+ "privacy": "protected",
9819
+ "return": {
9820
+ "type": {
9821
+ "text": "TemplateResult"
9822
+ }
9823
+ }
9873
9824
  },
9874
9825
  {
9875
- "kind": "field",
9876
- "name": "target",
9877
- "default": "target"
9826
+ "kind": "method",
9827
+ "name": "renderError",
9828
+ "privacy": "protected",
9829
+ "return": {
9830
+ "type": {
9831
+ "text": "TemplateResult"
9832
+ }
9833
+ }
9834
+ },
9835
+ {
9836
+ "kind": "method",
9837
+ "name": "getDescribedBy",
9838
+ "privacy": "protected",
9839
+ "return": {
9840
+ "type": {
9841
+ "text": "string | undefined"
9842
+ }
9843
+ }
9844
+ },
9845
+ {
9846
+ "kind": "method",
9847
+ "name": "getInvalid",
9848
+ "privacy": "protected",
9849
+ "return": {
9850
+ "type": {
9851
+ "text": "\"true\" | undefined"
9852
+ }
9853
+ }
9878
9854
  }
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
- }
9890
- },
9891
- {
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": [
9855
+ ]
9856
+ },
9905
9857
  {
9906
- "kind": "class",
9858
+ "kind": "mixin",
9907
9859
  "description": "",
9908
- "name": "SlotController",
9860
+ "name": "FormAssociatedMixin",
9909
9861
  "members": [
9910
9862
  {
9911
- "kind": "method",
9912
- "name": "hostConnected"
9863
+ "kind": "field",
9864
+ "name": "labelSlot",
9865
+ "privacy": "protected",
9866
+ "default": "new SlotController(this, \"label\")"
9913
9867
  },
9914
9868
  {
9915
- "kind": "method",
9916
- "name": "hostDisconnected"
9869
+ "kind": "field",
9870
+ "name": "errorSlot",
9871
+ "privacy": "protected",
9872
+ "default": "new SlotController(this, \"error\")"
9917
9873
  },
9918
9874
  {
9919
9875
  "kind": "field",
9920
- "name": "hasContent"
9876
+ "name": "hintSlot",
9877
+ "privacy": "protected",
9878
+ "default": "new SlotController(this, \"hint\")"
9921
9879
  },
9922
9880
  {
9923
9881
  "kind": "field",
9924
- "name": "isEmpty"
9882
+ "name": "formData",
9883
+ "privacy": "protected",
9884
+ "default": "new FormDataController(this, { value: () => this.formValue })"
9925
9885
  },
9926
9886
  {
9927
9887
  "kind": "field",
9928
- "name": "content"
9888
+ "name": "formValue",
9889
+ "privacy": "protected"
9929
9890
  },
9930
9891
  {
9931
9892
  "kind": "field",
9932
- "name": "handleSlotChange",
9933
- "privacy": "private"
9893
+ "name": "inputId",
9894
+ "type": {
9895
+ "text": "string"
9896
+ },
9897
+ "privacy": "protected",
9898
+ "default": "\"input\""
9934
9899
  },
9935
9900
  {
9936
- "kind": "method",
9937
- "name": "onChange",
9901
+ "kind": "field",
9902
+ "name": "errorId",
9903
+ "type": {
9904
+ "text": "string"
9905
+ },
9938
9906
  "privacy": "protected",
9939
- "parameters": [
9940
- {
9941
- "name": "_e",
9942
- "type": {
9943
- "text": "Event"
9944
- }
9945
- }
9946
- ]
9907
+ "default": "\"error\""
9947
9908
  },
9948
9909
  {
9949
9910
  "kind": "field",
9950
- "name": "host",
9951
- "default": "host"
9911
+ "name": "hintId",
9912
+ "type": {
9913
+ "text": "string"
9914
+ },
9915
+ "privacy": "protected",
9916
+ "default": "\"hint\""
9952
9917
  },
9953
9918
  {
9954
9919
  "kind": "field",
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": [
9920
+ "name": "label",
9921
+ "type": {
9922
+ "text": "string"
9923
+ },
9924
+ "default": "\"\"",
9925
+ "description": "Label for the input.",
9926
+ "attribute": "label"
9927
+ },
9981
9928
  {
9982
9929
  "kind": "field",
9983
- "name": "host",
9930
+ "name": "hint",
9984
9931
  "type": {
9985
- "text": "ReactiveElement"
9932
+ "text": "string | undefined"
9986
9933
  },
9987
- "privacy": "private",
9988
- "default": "host"
9934
+ "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
9935
+ "attribute": "hint"
9989
9936
  },
9990
9937
  {
9991
9938
  "kind": "field",
9992
- "name": "attached",
9939
+ "name": "hideLabel",
9993
9940
  "type": {
9994
9941
  "text": "boolean"
9995
9942
  },
9996
- "privacy": "private",
9997
- "default": "false"
9943
+ "default": "false",
9944
+ "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
9945
+ "attribute": "hide-label"
9998
9946
  },
9999
9947
  {
10000
9948
  "kind": "field",
10001
- "name": "initialTouchX",
9949
+ "name": "placeholder",
10002
9950
  "type": {
10003
- "text": "number"
9951
+ "text": "string | undefined"
10004
9952
  },
10005
- "privacy": "private",
10006
- "default": "0"
9953
+ "description": "Placeholder text to display within the input.",
9954
+ "attribute": "placeholder"
10007
9955
  },
10008
9956
  {
10009
9957
  "kind": "field",
10010
- "name": "initialTouchY",
9958
+ "name": "error",
10011
9959
  "type": {
10012
- "text": "number"
9960
+ "text": "string | undefined"
10013
9961
  },
10014
- "privacy": "private",
10015
- "default": "0"
9962
+ "description": "Optional error to be shown with the input. Alternatively use the error slot.",
9963
+ "attribute": "error"
10016
9964
  },
10017
9965
  {
10018
9966
  "kind": "field",
10019
- "name": "target",
9967
+ "name": "required",
10020
9968
  "type": {
10021
- "text": "() => HTMLElement"
9969
+ "text": "boolean"
10022
9970
  },
10023
- "privacy": "private"
9971
+ "default": "false",
9972
+ "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.",
9973
+ "attribute": "required"
10024
9974
  },
10025
9975
  {
10026
9976
  "kind": "field",
10027
- "name": "onSwipeEnd",
9977
+ "name": "expand",
10028
9978
  "type": {
10029
- "text": "SwipeControllerOptions[\"onSwipeEnd\"]"
9979
+ "text": "boolean"
10030
9980
  },
10031
- "privacy": "private"
9981
+ "default": "false",
9982
+ "description": "Controls whether the input expands to fill the width of its container.",
9983
+ "attribute": "expand",
9984
+ "reflects": true
10032
9985
  },
10033
9986
  {
10034
- "kind": "field",
10035
- "name": "matchesGesture",
10036
- "type": {
10037
- "text": "SwipeControllerOptions[\"matchesGesture\"]"
10038
- }
9987
+ "kind": "method",
9988
+ "name": "handleInput",
9989
+ "privacy": "protected",
9990
+ "parameters": [
9991
+ {
9992
+ "name": "e",
9993
+ "type": {
9994
+ "text": "Event"
9995
+ }
9996
+ }
9997
+ ]
10039
9998
  },
10040
9999
  {
10041
10000
  "kind": "method",
10042
- "name": "hostUpdated"
10001
+ "name": "handleChange",
10002
+ "privacy": "protected",
10003
+ "parameters": [
10004
+ {
10005
+ "name": "e",
10006
+ "type": {
10007
+ "text": "Event"
10008
+ }
10009
+ }
10010
+ ]
10043
10011
  },
10044
10012
  {
10045
10013
  "kind": "method",
10046
- "name": "hostDisconnected"
10014
+ "name": "renderLabel",
10015
+ "privacy": "protected"
10016
+ },
10017
+ {
10018
+ "kind": "method",
10019
+ "name": "renderError",
10020
+ "privacy": "protected"
10021
+ },
10022
+ {
10023
+ "kind": "method",
10024
+ "name": "getDescribedBy",
10025
+ "privacy": "protected"
10026
+ },
10027
+ {
10028
+ "kind": "method",
10029
+ "name": "getInvalid",
10030
+ "privacy": "protected"
10047
10031
  },
10048
10032
  {
10049
10033
  "kind": "field",
10050
- "name": "handleTouchStart",
10051
- "privacy": "private"
10034
+ "name": "hasHint",
10035
+ "privacy": "protected"
10036
+ },
10037
+ {
10038
+ "kind": "field",
10039
+ "name": "hasError",
10040
+ "privacy": "protected"
10041
+ }
10042
+ ],
10043
+ "events": [
10044
+ {
10045
+ "name": "input",
10046
+ "type": {
10047
+ "text": "NordEvent"
10048
+ },
10049
+ "description": "Fired as the user types into the input."
10050
+ },
10051
+ {
10052
+ "name": "change",
10053
+ "type": {
10054
+ "text": "NordEvent"
10055
+ },
10056
+ "description": "Fired whenever the input's value is changed via user interaction."
10057
+ }
10058
+ ],
10059
+ "attributes": [
10060
+ {
10061
+ "name": "label",
10062
+ "type": {
10063
+ "text": "string"
10064
+ },
10065
+ "default": "\"\"",
10066
+ "description": "Label for the input.",
10067
+ "fieldName": "label"
10068
+ },
10069
+ {
10070
+ "name": "hint",
10071
+ "type": {
10072
+ "text": "string | undefined"
10073
+ },
10074
+ "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
10075
+ "fieldName": "hint"
10076
+ },
10077
+ {
10078
+ "name": "hide-label",
10079
+ "type": {
10080
+ "text": "boolean"
10081
+ },
10082
+ "default": "false",
10083
+ "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
10084
+ "fieldName": "hideLabel"
10085
+ },
10086
+ {
10087
+ "name": "placeholder",
10088
+ "type": {
10089
+ "text": "string | undefined"
10090
+ },
10091
+ "description": "Placeholder text to display within the input.",
10092
+ "fieldName": "placeholder"
10093
+ },
10094
+ {
10095
+ "name": "error",
10096
+ "type": {
10097
+ "text": "string | undefined"
10098
+ },
10099
+ "description": "Optional error to be shown with the input. Alternatively use the error slot.",
10100
+ "fieldName": "error"
10052
10101
  },
10053
10102
  {
10054
- "kind": "field",
10055
- "name": "handleTouchEnd",
10056
- "privacy": "private"
10057
- }
10058
- ]
10059
- },
10060
- {
10061
- "kind": "function",
10062
- "name": "isHorizontalSwipe",
10063
- "parameters": [
10103
+ "name": "required",
10104
+ "type": {
10105
+ "text": "boolean"
10106
+ },
10107
+ "default": "false",
10108
+ "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.",
10109
+ "fieldName": "required"
10110
+ },
10064
10111
  {
10065
- "name": "{ distX, distY }",
10112
+ "name": "expand",
10066
10113
  "type": {
10067
- "text": "SwipeDetails"
10068
- }
10114
+ "text": "boolean"
10115
+ },
10116
+ "default": "false",
10117
+ "description": "Controls whether the input expands to fill the width of its container.",
10118
+ "fieldName": "expand"
10069
10119
  }
10070
- ]
10071
- },
10072
- {
10073
- "kind": "function",
10074
- "name": "isDownwardsSwipe",
10120
+ ],
10075
10121
  "parameters": [
10076
10122
  {
10077
- "name": "{ distX, distY }",
10123
+ "name": "superClass",
10078
10124
  "type": {
10079
- "text": "SwipeDetails"
10125
+ "text": "T"
10080
10126
  }
10081
10127
  }
10082
10128
  ]
@@ -10085,202 +10131,156 @@
10085
10131
  "exports": [
10086
10132
  {
10087
10133
  "kind": "js",
10088
- "name": "SwipeController",
10089
- "declaration": {
10090
- "name": "SwipeController",
10091
- "module": "src/common/controllers/SwipeController.ts"
10092
- }
10093
- },
10094
- {
10095
- "kind": "js",
10096
- "name": "isHorizontalSwipe",
10134
+ "name": "FormAssociatedMixinInterface",
10097
10135
  "declaration": {
10098
- "name": "isHorizontalSwipe",
10099
- "module": "src/common/controllers/SwipeController.ts"
10136
+ "name": "FormAssociatedMixinInterface",
10137
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
10100
10138
  }
10101
10139
  },
10102
10140
  {
10103
10141
  "kind": "js",
10104
- "name": "isDownwardsSwipe",
10105
- "declaration": {
10106
- "name": "isDownwardsSwipe",
10107
- "module": "src/common/controllers/SwipeController.ts"
10108
- }
10109
- }
10110
- ]
10111
- },
10112
- {
10113
- "kind": "javascript-module",
10114
- "path": "src/common/directives/cond.ts",
10115
- "declarations": [
10116
- {
10117
- "kind": "variable",
10118
- "name": "cond"
10119
- }
10120
- ],
10121
- "exports": [
10122
- {
10123
- "kind": "js",
10124
- "name": "cond",
10142
+ "name": "FormAssociatedMixin",
10125
10143
  "declaration": {
10126
- "name": "cond",
10127
- "module": "src/common/directives/cond.ts"
10144
+ "name": "FormAssociatedMixin",
10145
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
10128
10146
  }
10129
10147
  }
10130
10148
  ]
10131
10149
  },
10132
10150
  {
10133
10151
  "kind": "javascript-module",
10134
- "path": "src/common/directives/wrapIf.ts",
10152
+ "path": "src/common/mixins/InputMixin.ts",
10135
10153
  "declarations": [
10136
10154
  {
10137
- "kind": "function",
10138
- "name": "wrapIf",
10139
- "return": {
10140
- "type": {
10141
- "text": "TInner"
10142
- }
10143
- },
10144
- "parameters": [
10145
- {
10146
- "name": "condition",
10147
- "type": {
10148
- "text": "false"
10149
- }
10150
- },
10155
+ "kind": "class",
10156
+ "description": "",
10157
+ "name": "InputMixinInterface",
10158
+ "members": [
10151
10159
  {
10152
- "name": "inner",
10160
+ "kind": "field",
10161
+ "name": "name",
10153
10162
  "type": {
10154
- "text": "() => TInner"
10163
+ "text": "string"
10155
10164
  }
10156
10165
  },
10157
10166
  {
10158
- "name": "wrapper",
10159
- "type": {
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",
10167
+ "kind": "field",
10168
+ "name": "value",
10176
10169
  "type": {
10177
- "text": "true"
10170
+ "text": "string"
10178
10171
  }
10179
10172
  },
10180
10173
  {
10181
- "name": "inner",
10174
+ "kind": "field",
10175
+ "name": "disabled",
10182
10176
  "type": {
10183
- "text": "() => TInner"
10177
+ "text": "boolean"
10184
10178
  }
10185
10179
  },
10186
10180
  {
10187
- "name": "wrapper",
10181
+ "kind": "field",
10182
+ "name": "form",
10188
10183
  "type": {
10189
- "text": "(inner: TInner) => TWrapper"
10184
+ "text": "HTMLFormElement | undefined"
10190
10185
  }
10191
10186
  }
10192
10187
  ]
10193
10188
  },
10194
10189
  {
10195
- "kind": "function",
10196
- "name": "wrapIf",
10197
- "return": {
10198
- "type": {
10199
- "text": "TInner | TWrapper"
10200
- }
10201
- },
10202
- "parameters": [
10190
+ "kind": "mixin",
10191
+ "description": "",
10192
+ "name": "InputMixin",
10193
+ "members": [
10203
10194
  {
10204
- "name": "condition",
10195
+ "kind": "field",
10196
+ "name": "disabled",
10205
10197
  "type": {
10206
- "text": "unknown"
10207
- }
10198
+ "text": "boolean"
10199
+ },
10200
+ "default": "false",
10201
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
10202
+ "attribute": "disabled",
10203
+ "reflects": true
10208
10204
  },
10209
10205
  {
10210
- "name": "inner",
10206
+ "kind": "field",
10207
+ "name": "name",
10211
10208
  "type": {
10212
- "text": "() => TInner"
10213
- }
10209
+ "text": "string | undefined"
10210
+ },
10211
+ "description": "The name of the form component.",
10212
+ "attribute": "name"
10214
10213
  },
10215
10214
  {
10216
- "name": "wrapper",
10215
+ "kind": "field",
10216
+ "name": "value",
10217
10217
  "type": {
10218
- "text": "(inner: TInner) => TWrapper"
10219
- }
10218
+ "text": "string"
10219
+ },
10220
+ "default": "\"\"",
10221
+ "description": "The value of the form component.",
10222
+ "attribute": "value"
10223
+ },
10224
+ {
10225
+ "kind": "field",
10226
+ "name": "form",
10227
+ "privacy": "protected",
10228
+ "description": "Gets the form, if any, associated with the form element."
10220
10229
  }
10221
- ]
10222
- },
10223
- {
10224
- "kind": "function",
10225
- "name": "wrapIf",
10226
- "parameters": [
10230
+ ],
10231
+ "attributes": [
10227
10232
  {
10228
- "name": "condition",
10233
+ "name": "disabled",
10229
10234
  "type": {
10230
- "text": "any"
10231
- }
10235
+ "text": "boolean"
10236
+ },
10237
+ "default": "false",
10238
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
10239
+ "fieldName": "disabled"
10232
10240
  },
10233
10241
  {
10234
- "name": "inner",
10242
+ "name": "name",
10235
10243
  "type": {
10236
- "text": "() => TInner"
10237
- }
10244
+ "text": "string | undefined"
10245
+ },
10246
+ "description": "The name of the form component.",
10247
+ "fieldName": "name"
10238
10248
  },
10239
10249
  {
10240
- "name": "wrapper",
10250
+ "name": "value",
10241
10251
  "type": {
10242
- "text": "(innards: TInner) => TWrapper"
10243
- }
10252
+ "text": "string"
10253
+ },
10254
+ "default": "\"\"",
10255
+ "description": "The value of the form component.",
10256
+ "fieldName": "value"
10244
10257
  }
10245
10258
  ],
10246
- "return": {
10247
- "type": {
10248
- "text": ""
10259
+ "parameters": [
10260
+ {
10261
+ "name": "superClass",
10262
+ "type": {
10263
+ "text": "T"
10264
+ }
10249
10265
  }
10250
- }
10266
+ ]
10251
10267
  }
10252
10268
  ],
10253
10269
  "exports": [
10254
10270
  {
10255
10271
  "kind": "js",
10256
- "name": "wrapIf",
10257
- "declaration": {
10258
- "name": "wrapIf",
10259
- "module": "src/common/directives/wrapIf.ts"
10260
- }
10261
- },
10262
- {
10263
- "kind": "js",
10264
- "name": "wrapIf",
10265
- "declaration": {
10266
- "name": "wrapIf",
10267
- "module": "src/common/directives/wrapIf.ts"
10268
- }
10269
- },
10270
- {
10271
- "kind": "js",
10272
- "name": "wrapIf",
10272
+ "name": "InputMixinInterface",
10273
10273
  "declaration": {
10274
- "name": "wrapIf",
10275
- "module": "src/common/directives/wrapIf.ts"
10274
+ "name": "InputMixinInterface",
10275
+ "module": "src/common/mixins/InputMixin.ts"
10276
10276
  }
10277
10277
  },
10278
10278
  {
10279
10279
  "kind": "js",
10280
- "name": "wrapIf",
10280
+ "name": "InputMixin",
10281
10281
  "declaration": {
10282
- "name": "wrapIf",
10283
- "module": "src/common/directives/wrapIf.ts"
10282
+ "name": "InputMixin",
10283
+ "module": "src/common/mixins/InputMixin.ts"
10284
10284
  }
10285
10285
  }
10286
10286
  ]