@nordhealth/components 1.0.0-beta.21 → 1.0.0-beta.22

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 (63) hide show
  1. package/custom-elements.json +1949 -1681
  2. package/lib/Avatar.js +1 -1
  3. package/lib/Avatar.js.map +1 -1
  4. package/lib/Button.js +1 -1
  5. package/lib/Button.js.map +1 -1
  6. package/lib/Calendar-72e99fb9.js +13 -0
  7. package/lib/Calendar-72e99fb9.js.map +1 -0
  8. package/lib/Calendar.js +1 -1
  9. package/lib/Card.js +1 -1
  10. package/lib/Card.js.map +1 -1
  11. package/lib/Checkbox.js +1 -1
  12. package/lib/Checkbox.js.map +1 -1
  13. package/lib/CommandMenu.js +1 -1
  14. package/lib/CommandMenu.js.map +1 -1
  15. package/lib/DatePicker.js +1 -1
  16. package/lib/DatePicker.js.map +1 -1
  17. package/lib/EventController-d99ebeef.js +2 -0
  18. package/lib/EventController-d99ebeef.js.map +1 -0
  19. package/lib/Fieldset.js +1 -1
  20. package/lib/Fieldset.js.map +1 -1
  21. package/lib/FormAssociatedMixin-1f97ed66.js +2 -0
  22. package/lib/FormAssociatedMixin-1f97ed66.js.map +1 -0
  23. package/lib/Header.js +1 -1
  24. package/lib/Header.js.map +1 -1
  25. package/lib/Input.js +1 -1
  26. package/lib/Input.js.map +1 -1
  27. package/lib/LightDismissController-a35d0f66.js +2 -0
  28. package/lib/LightDismissController-a35d0f66.js.map +1 -0
  29. package/lib/NavItem.js +1 -1
  30. package/lib/NavItem.js.map +1 -1
  31. package/lib/Radio.js +1 -1
  32. package/lib/Radio.js.map +1 -1
  33. package/lib/Select.js +1 -1
  34. package/lib/Select.js.map +1 -1
  35. package/lib/SlotController-683d0e7c.js +2 -0
  36. package/lib/SlotController-683d0e7c.js.map +1 -0
  37. package/lib/Textarea.js +1 -1
  38. package/lib/Textarea.js.map +1 -1
  39. package/lib/Tooltip.js +1 -1
  40. package/lib/Tooltip.js.map +1 -1
  41. package/lib/bundle.js +8 -8
  42. package/lib/bundle.js.map +1 -1
  43. package/lib/fsm-50373df9.js +2 -0
  44. package/lib/fsm-50373df9.js.map +1 -0
  45. package/lib/index.js +1 -1
  46. package/lib/src/button/Button.d.ts +1 -1
  47. package/lib/src/common/controllers/EventController.d.ts +14 -0
  48. package/lib/src/common/controllers/FormDataController.d.ts +1 -1
  49. package/lib/src/common/controllers/LightDismissController.d.ts +1 -1
  50. package/lib/src/common/controllers/SlotController.d.ts +1 -1
  51. package/lib/src/common/controllers/SwipeController.d.ts +3 -5
  52. package/lib/src/common/fsm.d.ts +2 -0
  53. package/lib/src/tooltip/Tooltip.d.ts +16 -18
  54. package/lib/src/tooltip/Tooltip.test.d.ts +1 -0
  55. package/package.json +11 -2
  56. package/lib/Calendar-600fd148.js +0 -13
  57. package/lib/Calendar-600fd148.js.map +0 -1
  58. package/lib/FormAssociatedMixin-ccae91fd.js +0 -2
  59. package/lib/FormAssociatedMixin-ccae91fd.js.map +0 -1
  60. package/lib/LightDismissController-cc5b4bf2.js +0 -2
  61. package/lib/LightDismissController-cc5b4bf2.js.map +0 -1
  62. package/lib/SlotController-5bfc47d1.js +0 -2
  63. package/lib/SlotController-5bfc47d1.js.map +0 -1
@@ -246,7 +246,7 @@
246
246
  "kind": "field",
247
247
  "name": "state",
248
248
  "type": {
249
- "text": "States"
249
+ "text": "States<typeof transition>"
250
250
  },
251
251
  "privacy": "private",
252
252
  "default": "\"initial\""
@@ -431,330 +431,378 @@
431
431
  },
432
432
  {
433
433
  "kind": "javascript-module",
434
- "path": "src/calendar/Calendar.ts",
434
+ "path": "src/button/Button.ts",
435
435
  "declarations": [
436
436
  {
437
437
  "kind": "class",
438
- "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.",
439
- "name": "Calendar",
440
- "members": [
438
+ "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.",
439
+ "name": "Button",
440
+ "slots": [
441
441
  {
442
- "kind": "field",
443
- "name": "dialogLabelId",
444
- "type": {
445
- "text": "string"
446
- },
447
- "privacy": "private",
448
- "default": "\"dialog-header\""
442
+ "description": "The button content",
443
+ "name": ""
449
444
  },
450
445
  {
451
- "kind": "field",
452
- "name": "monthSelectNode",
453
- "type": {
454
- "text": "HTMLElement"
455
- },
456
- "privacy": "private"
446
+ "description": "Used to place content at the start of button text. Typically used for icons.",
447
+ "name": "start"
457
448
  },
458
449
  {
459
- "kind": "field",
460
- "name": "focusedDayNode",
461
- "type": {
462
- "text": "HTMLButtonElement"
463
- },
464
- "privacy": "private"
465
- },
450
+ "description": "Used to place content at the end of button text. Typically used for icons.",
451
+ "name": "end"
452
+ }
453
+ ],
454
+ "members": [
466
455
  {
467
456
  "kind": "field",
468
- "name": "direction",
469
- "privacy": "private",
470
- "default": "new DirectionController(this)"
457
+ "name": "buttonRef",
458
+ "privacy": "private"
471
459
  },
472
460
  {
473
461
  "kind": "field",
474
- "name": "swipe",
462
+ "name": "events",
475
463
  "privacy": "private",
476
- "default": "new SwipeController(this, {\n matchesGesture: isHorizontalSwipe,\n onSwipeEnd: ({ distX }) => this.addMonths(distX < 0 ? 1 : -1),\n })"
477
- },
478
- {
479
- "kind": "field",
480
- "name": "shortcuts",
481
- "privacy": "private"
464
+ "default": "new EventController(this)"
482
465
  },
483
466
  {
484
467
  "kind": "field",
485
- "name": "dateFormatShort",
486
- "type": {
487
- "text": "Intl.DateTimeFormat"
488
- },
468
+ "name": "lightDom",
489
469
  "privacy": "private",
490
- "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"
470
+ "default": "new LightDomController(this, {\n render: () => this.renderLightDom(),\n })"
491
471
  },
492
472
  {
493
473
  "kind": "field",
494
- "name": "localization",
474
+ "name": "variant",
495
475
  "type": {
496
- "text": "CalendarLocalizedText"
476
+ "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
497
477
  },
498
- "default": "localization"
478
+ "default": "\"default\"",
479
+ "description": "The style variant of the button.",
480
+ "attribute": "variant",
481
+ "reflects": true
499
482
  },
500
483
  {
501
484
  "kind": "field",
502
- "name": "value",
485
+ "name": "type",
503
486
  "type": {
504
- "text": "string"
487
+ "text": "\"button\" | \"submit\" | \"reset\""
505
488
  },
506
- "default": "\"\"",
507
- "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
508
- "attribute": "value"
489
+ "default": "\"submit\"",
490
+ "description": "The type of the button.",
491
+ "attribute": "type",
492
+ "reflects": true
509
493
  },
510
494
  {
511
495
  "kind": "field",
512
- "name": "firstDayOfWeek",
496
+ "name": "size",
513
497
  "type": {
514
- "text": "DaysOfWeek"
498
+ "text": "\"s\" | \"m\" | \"l\""
515
499
  },
516
- "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
517
- "attribute": "firstDayOfWeek"
500
+ "default": "\"m\"",
501
+ "description": "The size of the button.\nThis affects font-size and padding.",
502
+ "attribute": "size",
503
+ "reflects": true
518
504
  },
519
505
  {
520
506
  "kind": "field",
521
- "name": "min",
507
+ "name": "href",
522
508
  "type": {
523
- "text": "string"
509
+ "text": "string | undefined"
524
510
  },
525
- "default": "\"\"",
526
- "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.",
527
- "attribute": "min"
511
+ "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
512
+ "attribute": "href",
513
+ "reflects": true
528
514
  },
529
515
  {
530
516
  "kind": "field",
531
- "name": "max",
517
+ "name": "download",
532
518
  "type": {
533
- "text": "string"
519
+ "text": "boolean"
534
520
  },
535
- "default": "\"\"",
536
- "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.",
537
- "attribute": "max"
521
+ "default": "false",
522
+ "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
523
+ "attribute": "download"
538
524
  },
539
525
  {
540
526
  "kind": "field",
541
- "name": "isDateDisabled",
527
+ "name": "target",
542
528
  "type": {
543
- "text": "DateDisabledPredicate"
529
+ "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
544
530
  },
545
- "default": "isDateDisabled",
546
- "description": "Controls which days are disabled and therefore disallowed.\nFor example, this can be used to disallow selection of weekends."
531
+ "default": "\"_self\"",
532
+ "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.",
533
+ "attribute": "target",
534
+ "reflects": true
547
535
  },
548
536
  {
549
537
  "kind": "field",
550
- "name": "activeFocus",
538
+ "name": "expand",
551
539
  "type": {
552
540
  "text": "boolean"
553
541
  },
554
- "privacy": "private",
555
- "default": "false"
556
- },
557
- {
558
- "kind": "field",
559
- "name": "focusedDay",
560
- "privacy": "private",
561
- "default": "new Date()"
562
- },
563
- {
564
- "kind": "method",
565
- "name": "focus",
566
- "parameters": [
567
- {
568
- "name": "options",
569
- "optional": true,
570
- "type": {
571
- "text": "FocusOptions & { target: \"day\" | \"month\" }"
572
- },
573
- "description": "An object which controls aspects of the focusing process."
574
- }
575
- ],
576
- "description": "Programmatically move focus to the calendar."
577
- },
578
- {
579
- "kind": "method",
580
- "name": "createDateFormatter",
581
- "privacy": "private"
582
- },
583
- {
584
- "kind": "field",
585
- "name": "handleDaySelect",
586
- "privacy": "private"
587
- },
588
- {
589
- "kind": "method",
590
- "name": "addDays",
591
- "privacy": "private",
592
- "parameters": [
593
- {
594
- "name": "days",
595
- "type": {
596
- "text": "number"
597
- }
598
- }
599
- ]
542
+ "default": "false",
543
+ "description": "Controls whether the button expands to fill the width of its container.",
544
+ "attribute": "expand",
545
+ "reflects": true
600
546
  },
601
547
  {
602
548
  "kind": "method",
603
- "name": "addMonths",
549
+ "name": "renderLink",
604
550
  "privacy": "private",
605
551
  "parameters": [
606
552
  {
607
- "name": "months",
553
+ "name": "innards",
608
554
  "type": {
609
- "text": "number"
555
+ "text": "TemplateResult"
610
556
  }
611
557
  }
612
- ]
558
+ ],
559
+ "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."
613
560
  },
614
561
  {
615
562
  "kind": "method",
616
- "name": "addYears",
563
+ "name": "renderButton",
617
564
  "privacy": "private",
618
565
  "parameters": [
619
566
  {
620
- "name": "years",
567
+ "name": "innards",
621
568
  "type": {
622
- "text": "number"
569
+ "text": "TemplateResult"
623
570
  }
624
571
  }
625
572
  ]
626
573
  },
627
574
  {
628
575
  "kind": "method",
629
- "name": "startOfWeek",
576
+ "name": "renderLightDom",
630
577
  "privacy": "private"
631
578
  },
632
579
  {
633
- "kind": "method",
634
- "name": "endOfWeek",
580
+ "kind": "field",
581
+ "name": "handleOuterClick",
635
582
  "privacy": "private"
636
583
  },
637
584
  {
638
585
  "kind": "method",
639
- "name": "setMonth",
586
+ "name": "handleClick",
640
587
  "privacy": "private",
641
588
  "parameters": [
642
589
  {
643
- "name": "month",
590
+ "name": "e",
644
591
  "type": {
645
- "text": "number"
592
+ "text": "Event"
646
593
  }
647
594
  }
648
595
  ]
649
596
  },
650
597
  {
651
- "kind": "method",
652
- "name": "setYear",
653
- "privacy": "private",
654
- "parameters": [
655
- {
656
- "name": "year",
657
- "type": {
658
- "text": "number"
659
- }
660
- }
661
- ]
598
+ "kind": "field",
599
+ "name": "disabled",
600
+ "type": {
601
+ "text": "boolean"
602
+ },
603
+ "default": "false",
604
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
605
+ "attribute": "disabled",
606
+ "reflects": true,
607
+ "inheritedFrom": {
608
+ "name": "InputMixin",
609
+ "module": "src/common/mixins/InputMixin.ts"
610
+ }
662
611
  },
663
612
  {
664
- "kind": "method",
665
- "name": "setFocusedDay",
666
- "privacy": "private",
667
- "parameters": [
668
- {
669
- "name": "day",
670
- "type": {
671
- "text": "Date"
672
- }
673
- }
674
- ]
613
+ "kind": "field",
614
+ "name": "name",
615
+ "type": {
616
+ "text": "string | undefined"
617
+ },
618
+ "description": "The name of the form component.",
619
+ "attribute": "name",
620
+ "inheritedFrom": {
621
+ "name": "InputMixin",
622
+ "module": "src/common/mixins/InputMixin.ts"
623
+ }
675
624
  },
676
625
  {
677
626
  "kind": "field",
678
- "name": "handleMonthSelect",
679
- "privacy": "private"
627
+ "name": "value",
628
+ "type": {
629
+ "text": "string"
630
+ },
631
+ "default": "\"\"",
632
+ "description": "The value of the form component.",
633
+ "attribute": "value",
634
+ "inheritedFrom": {
635
+ "name": "InputMixin",
636
+ "module": "src/common/mixins/InputMixin.ts"
637
+ }
680
638
  },
681
639
  {
682
640
  "kind": "field",
683
- "name": "handleYearSelect",
684
- "privacy": "private"
641
+ "name": "form",
642
+ "privacy": "protected",
643
+ "description": "Gets the form, if any, associated with the form element.",
644
+ "inheritedFrom": {
645
+ "name": "InputMixin",
646
+ "module": "src/common/mixins/InputMixin.ts"
647
+ }
685
648
  },
686
649
  {
687
650
  "kind": "field",
688
- "name": "handleNextMonthClick",
689
- "privacy": "private"
651
+ "name": "focusableRef",
652
+ "privacy": "protected",
653
+ "inheritedFrom": {
654
+ "name": "FocusableMixin",
655
+ "module": "src/common/mixins/FocusableMixin.ts"
656
+ }
690
657
  },
691
658
  {
692
- "kind": "field",
693
- "name": "handlePreviousMonthClick",
694
- "privacy": "private"
659
+ "kind": "method",
660
+ "name": "focus",
661
+ "parameters": [
662
+ {
663
+ "name": "options",
664
+ "optional": true,
665
+ "type": {
666
+ "text": "FocusOptions"
667
+ },
668
+ "description": "An object which controls aspects of the focusing process."
669
+ }
670
+ ],
671
+ "description": "Programmatically move focus to the component.",
672
+ "inheritedFrom": {
673
+ "name": "FocusableMixin",
674
+ "module": "src/common/mixins/FocusableMixin.ts"
675
+ }
695
676
  },
696
677
  {
697
- "kind": "field",
698
- "name": "enableActiveFocus",
699
- "privacy": "private"
678
+ "kind": "method",
679
+ "name": "blur",
680
+ "description": "Programmatically remove focus from the component.",
681
+ "inheritedFrom": {
682
+ "name": "FocusableMixin",
683
+ "module": "src/common/mixins/FocusableMixin.ts"
684
+ }
700
685
  },
701
686
  {
702
- "kind": "field",
703
- "name": "disableActiveFocus",
704
- "privacy": "private"
687
+ "kind": "method",
688
+ "name": "click",
689
+ "description": "Programmatically simulates a click on the component.",
690
+ "inheritedFrom": {
691
+ "name": "FocusableMixin",
692
+ "module": "src/common/mixins/FocusableMixin.ts"
693
+ }
705
694
  }
706
695
  ],
707
- "events": [
696
+ "attributes": [
708
697
  {
709
- "name": "nord-focus-date",
698
+ "name": "variant",
710
699
  "type": {
711
- "text": "DateSelectEvent"
700
+ "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
712
701
  },
713
- "description": "Dispatched when the calendar's focused date changes."
702
+ "default": "\"default\"",
703
+ "description": "The style variant of the button.",
704
+ "fieldName": "variant"
714
705
  },
715
706
  {
707
+ "name": "type",
716
708
  "type": {
717
- "text": "DateSelectEvent"
709
+ "text": "\"button\" | \"submit\" | \"reset\""
718
710
  },
719
- "description": "Dispatched when a date is selected and the value changes.",
720
- "name": "change"
721
- }
722
- ],
723
- "attributes": [
711
+ "default": "\"submit\"",
712
+ "description": "The type of the button.",
713
+ "fieldName": "type"
714
+ },
724
715
  {
725
- "name": "value",
716
+ "name": "size",
726
717
  "type": {
727
- "text": "string"
718
+ "text": "\"s\" | \"m\" | \"l\""
728
719
  },
729
- "default": "\"\"",
730
- "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
731
- "fieldName": "value"
720
+ "default": "\"m\"",
721
+ "description": "The size of the button.\nThis affects font-size and padding.",
722
+ "fieldName": "size"
732
723
  },
733
724
  {
734
- "name": "firstDayOfWeek",
725
+ "name": "href",
735
726
  "type": {
736
- "text": "DaysOfWeek"
727
+ "text": "string | undefined"
737
728
  },
738
- "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
739
- "fieldName": "firstDayOfWeek"
729
+ "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
730
+ "fieldName": "href"
740
731
  },
741
732
  {
742
- "name": "min",
733
+ "name": "download",
743
734
  "type": {
744
- "text": "string"
735
+ "text": "boolean"
745
736
  },
746
- "default": "\"\"",
747
- "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.",
748
- "fieldName": "min"
737
+ "default": "false",
738
+ "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
739
+ "fieldName": "download"
749
740
  },
750
741
  {
751
- "name": "max",
742
+ "name": "target",
743
+ "type": {
744
+ "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
745
+ },
746
+ "default": "\"_self\"",
747
+ "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.",
748
+ "fieldName": "target"
749
+ },
750
+ {
751
+ "name": "expand",
752
+ "type": {
753
+ "text": "boolean"
754
+ },
755
+ "default": "false",
756
+ "description": "Controls whether the button expands to fill the width of its container.",
757
+ "fieldName": "expand"
758
+ },
759
+ {
760
+ "name": "disabled",
761
+ "type": {
762
+ "text": "boolean"
763
+ },
764
+ "default": "false",
765
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
766
+ "fieldName": "disabled",
767
+ "inheritedFrom": {
768
+ "name": "InputMixin",
769
+ "module": "src/common/mixins/InputMixin.ts"
770
+ }
771
+ },
772
+ {
773
+ "name": "name",
774
+ "type": {
775
+ "text": "string | undefined"
776
+ },
777
+ "description": "The name of the form component.",
778
+ "fieldName": "name",
779
+ "inheritedFrom": {
780
+ "name": "InputMixin",
781
+ "module": "src/common/mixins/InputMixin.ts"
782
+ }
783
+ },
784
+ {
785
+ "name": "value",
752
786
  "type": {
753
787
  "text": "string"
754
788
  },
755
789
  "default": "\"\"",
756
- "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.",
757
- "fieldName": "max"
790
+ "description": "The value of the form component.",
791
+ "fieldName": "value",
792
+ "inheritedFrom": {
793
+ "name": "InputMixin",
794
+ "module": "src/common/mixins/InputMixin.ts"
795
+ }
796
+ }
797
+ ],
798
+ "mixins": [
799
+ {
800
+ "name": "InputMixin",
801
+ "module": "/src/common/mixins/InputMixin.js"
802
+ },
803
+ {
804
+ "name": "FocusableMixin",
805
+ "module": "/src/common/mixins/FocusableMixin.js"
758
806
  }
759
807
  ],
760
808
  "superclass": {
@@ -762,8 +810,8 @@
762
810
  "package": "lit"
763
811
  },
764
812
  "status": "ready",
765
- "category": "list",
766
- "tagName": "nord-calendar",
813
+ "category": "action",
814
+ "tagName": "nord-button",
767
815
  "customElement": true
768
816
  }
769
817
  ],
@@ -772,567 +820,415 @@
772
820
  "kind": "js",
773
821
  "name": "default",
774
822
  "declaration": {
775
- "name": "Calendar",
776
- "module": "src/calendar/Calendar.ts"
823
+ "name": "Button",
824
+ "module": "src/button/Button.ts"
777
825
  }
778
826
  },
779
827
  {
780
828
  "kind": "custom-element-definition",
781
- "name": "nord-calendar",
829
+ "name": "nord-button",
782
830
  "declaration": {
783
- "name": "Calendar",
784
- "module": "src/calendar/Calendar.ts"
831
+ "name": "Button",
832
+ "module": "src/button/Button.ts"
785
833
  }
786
834
  }
787
835
  ],
788
- "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"
836
+ "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"
789
837
  },
790
838
  {
791
839
  "kind": "javascript-module",
792
- "path": "src/calendar/DateSelectEvent.ts",
840
+ "path": "src/banner/Banner.ts",
793
841
  "declarations": [
794
842
  {
795
843
  "kind": "class",
796
- "description": "",
797
- "name": "DateSelectEvent",
844
+ "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.",
845
+ "name": "Banner",
846
+ "slots": [
847
+ {
848
+ "description": "default slot",
849
+ "name": ""
850
+ }
851
+ ],
798
852
  "members": [
799
853
  {
800
854
  "kind": "field",
801
- "name": "date",
855
+ "name": "variant",
802
856
  "type": {
803
- "text": "Date"
857
+ "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
804
858
  },
805
- "default": "date"
859
+ "default": "\"info\"",
860
+ "description": "The style variant of the banner.",
861
+ "attribute": "variant",
862
+ "reflects": true
863
+ }
864
+ ],
865
+ "attributes": [
866
+ {
867
+ "name": "variant",
868
+ "type": {
869
+ "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
870
+ },
871
+ "default": "\"info\"",
872
+ "description": "The style variant of the banner.",
873
+ "fieldName": "variant"
806
874
  }
807
875
  ],
808
876
  "superclass": {
809
- "name": "NordEvent",
810
- "module": "/src/common/events.js"
811
- }
877
+ "name": "LitElement",
878
+ "package": "lit"
879
+ },
880
+ "status": "new",
881
+ "category": "feedback",
882
+ "tagName": "nord-banner",
883
+ "customElement": true
812
884
  }
813
885
  ],
814
886
  "exports": [
815
887
  {
816
888
  "kind": "js",
817
- "name": "DateSelectEvent",
889
+ "name": "default",
818
890
  "declaration": {
819
- "name": "DateSelectEvent",
820
- "module": "src/calendar/DateSelectEvent.ts"
891
+ "name": "Banner",
892
+ "module": "src/banner/Banner.ts"
893
+ }
894
+ },
895
+ {
896
+ "kind": "custom-element-definition",
897
+ "name": "nord-banner",
898
+ "declaration": {
899
+ "name": "Banner",
900
+ "module": "src/banner/Banner.ts"
821
901
  }
822
902
  }
823
903
  ],
824
- "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"
904
+ "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"
825
905
  },
826
906
  {
827
907
  "kind": "javascript-module",
828
- "path": "src/calendar/calendar-localization.ts",
829
- "declarations": [
830
- {
831
- "kind": "variable",
832
- "name": "localization",
833
- "type": {
834
- "text": "CalendarLocalizedText"
835
- },
836
- "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}"
837
- }
838
- ],
839
- "exports": [
840
- {
841
- "kind": "js",
842
- "name": "default",
843
- "declaration": {
844
- "name": "localization",
845
- "module": "src/calendar/calendar-localization.ts"
846
- }
847
- }
848
- ],
849
- "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"
850
- },
851
- {
852
- "kind": "javascript-module",
853
- "path": "src/calendar/month-view.ts",
854
- "declarations": [
855
- {
856
- "kind": "function",
857
- "name": "dayView",
858
- "parameters": [
859
- {
860
- "name": "{\n focusedDay,\n today,\n day,\n onDaySelect,\n onKeyboardNavigation,\n disabled,\n inRange,\n isSelected,\n dateFormatter,\n}",
861
- "type": {
862
- "text": "DatePickerDayProps"
863
- }
864
- }
865
- ]
866
- },
867
- {
868
- "kind": "function",
869
- "name": "monthView",
870
- "parameters": [
871
- {
872
- "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}",
873
- "type": {
874
- "text": "MonthViewArgs"
875
- }
876
- }
877
- ]
878
- }
879
- ],
880
- "exports": [
881
- {
882
- "kind": "js",
883
- "name": "dayView",
884
- "declaration": {
885
- "name": "dayView",
886
- "module": "src/calendar/month-view.ts"
887
- }
888
- },
889
- {
890
- "kind": "js",
891
- "name": "monthView",
892
- "declaration": {
893
- "name": "monthView",
894
- "module": "src/calendar/month-view.ts"
895
- }
896
- }
897
- ],
898
- "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"
899
- },
900
- {
901
- "kind": "javascript-module",
902
- "path": "src/banner/Banner.ts",
908
+ "path": "src/calendar/Calendar.ts",
903
909
  "declarations": [
904
910
  {
905
911
  "kind": "class",
906
- "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.",
907
- "name": "Banner",
908
- "slots": [
909
- {
910
- "description": "default slot",
911
- "name": ""
912
- }
913
- ],
912
+ "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.",
913
+ "name": "Calendar",
914
914
  "members": [
915
915
  {
916
916
  "kind": "field",
917
- "name": "variant",
917
+ "name": "dialogLabelId",
918
918
  "type": {
919
- "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
919
+ "text": "string"
920
920
  },
921
- "default": "\"info\"",
922
- "description": "The style variant of the banner.",
923
- "attribute": "variant",
924
- "reflects": true
925
- }
926
- ],
927
- "attributes": [
921
+ "privacy": "private",
922
+ "default": "\"dialog-header\""
923
+ },
928
924
  {
929
- "name": "variant",
925
+ "kind": "field",
926
+ "name": "monthSelectNode",
930
927
  "type": {
931
- "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
928
+ "text": "HTMLElement"
932
929
  },
933
- "default": "\"info\"",
934
- "description": "The style variant of the banner.",
935
- "fieldName": "variant"
936
- }
937
- ],
938
- "superclass": {
939
- "name": "LitElement",
940
- "package": "lit"
941
- },
942
- "status": "new",
943
- "category": "feedback",
944
- "tagName": "nord-banner",
945
- "customElement": true
946
- }
947
- ],
948
- "exports": [
949
- {
950
- "kind": "js",
951
- "name": "default",
952
- "declaration": {
953
- "name": "Banner",
954
- "module": "src/banner/Banner.ts"
955
- }
956
- },
957
- {
958
- "kind": "custom-element-definition",
959
- "name": "nord-banner",
960
- "declaration": {
961
- "name": "Banner",
962
- "module": "src/banner/Banner.ts"
963
- }
964
- }
965
- ],
966
- "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"
967
- },
968
- {
969
- "kind": "javascript-module",
970
- "path": "src/button/Button.ts",
971
- "declarations": [
972
- {
973
- "kind": "class",
974
- "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.",
975
- "name": "Button",
976
- "slots": [
930
+ "privacy": "private"
931
+ },
977
932
  {
978
- "description": "The button content",
979
- "name": ""
933
+ "kind": "field",
934
+ "name": "focusedDayNode",
935
+ "type": {
936
+ "text": "HTMLButtonElement"
937
+ },
938
+ "privacy": "private"
980
939
  },
981
940
  {
982
- "description": "Used to place content at the start of button text. Typically used for icons.",
983
- "name": "start"
941
+ "kind": "field",
942
+ "name": "direction",
943
+ "privacy": "private",
944
+ "default": "new DirectionController(this)"
984
945
  },
985
946
  {
986
- "description": "Used to place content at the end of button text. Typically used for icons.",
987
- "name": "end"
988
- }
989
- ],
990
- "members": [
947
+ "kind": "field",
948
+ "name": "swipe",
949
+ "privacy": "private",
950
+ "default": "new SwipeController(this, {\n matchesGesture: isHorizontalSwipe,\n onSwipeEnd: ({ distX }) => this.addMonths(distX < 0 ? 1 : -1),\n })"
951
+ },
991
952
  {
992
953
  "kind": "field",
993
- "name": "buttonRef",
954
+ "name": "shortcuts",
994
955
  "privacy": "private"
995
956
  },
996
957
  {
997
958
  "kind": "field",
998
- "name": "lightDom",
959
+ "name": "dateFormatShort",
960
+ "type": {
961
+ "text": "Intl.DateTimeFormat"
962
+ },
999
963
  "privacy": "private",
1000
- "default": "new LightDomController(this, {\n render: () => this.renderLightDom(),\n })"
964
+ "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"
1001
965
  },
1002
966
  {
1003
967
  "kind": "field",
1004
- "name": "variant",
968
+ "name": "localization",
1005
969
  "type": {
1006
- "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
970
+ "text": "CalendarLocalizedText"
1007
971
  },
1008
- "default": "\"default\"",
1009
- "description": "The style variant of the button.",
1010
- "attribute": "variant",
1011
- "reflects": true
972
+ "default": "localization"
1012
973
  },
1013
974
  {
1014
975
  "kind": "field",
1015
- "name": "type",
976
+ "name": "value",
1016
977
  "type": {
1017
- "text": "\"button\" | \"submit\" | \"reset\""
978
+ "text": "string"
1018
979
  },
1019
- "default": "\"submit\"",
1020
- "description": "The type of the button.",
1021
- "attribute": "type",
1022
- "reflects": true
980
+ "default": "\"\"",
981
+ "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
982
+ "attribute": "value"
1023
983
  },
1024
984
  {
1025
985
  "kind": "field",
1026
- "name": "size",
986
+ "name": "firstDayOfWeek",
1027
987
  "type": {
1028
- "text": "\"s\" | \"m\" | \"l\""
988
+ "text": "DaysOfWeek"
1029
989
  },
1030
- "default": "\"m\"",
1031
- "description": "The size of the button.\nThis affects font-size and padding.",
1032
- "attribute": "size",
1033
- "reflects": true
990
+ "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
991
+ "attribute": "firstDayOfWeek"
1034
992
  },
1035
993
  {
1036
994
  "kind": "field",
1037
- "name": "href",
995
+ "name": "min",
1038
996
  "type": {
1039
- "text": "string | undefined"
997
+ "text": "string"
1040
998
  },
1041
- "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
1042
- "attribute": "href",
1043
- "reflects": true
999
+ "default": "\"\"",
1000
+ "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.",
1001
+ "attribute": "min"
1044
1002
  },
1045
1003
  {
1046
1004
  "kind": "field",
1047
- "name": "download",
1005
+ "name": "max",
1048
1006
  "type": {
1049
- "text": "boolean"
1007
+ "text": "string"
1050
1008
  },
1051
- "default": "false",
1052
- "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
1053
- "attribute": "download"
1009
+ "default": "\"\"",
1010
+ "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.",
1011
+ "attribute": "max"
1054
1012
  },
1055
1013
  {
1056
1014
  "kind": "field",
1057
- "name": "target",
1015
+ "name": "isDateDisabled",
1058
1016
  "type": {
1059
- "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
1017
+ "text": "DateDisabledPredicate"
1060
1018
  },
1061
- "default": "\"_self\"",
1062
- "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.",
1063
- "attribute": "target",
1064
- "reflects": true
1019
+ "default": "isDateDisabled",
1020
+ "description": "Controls which days are disabled and therefore disallowed.\nFor example, this can be used to disallow selection of weekends."
1065
1021
  },
1066
1022
  {
1067
1023
  "kind": "field",
1068
- "name": "expand",
1024
+ "name": "activeFocus",
1069
1025
  "type": {
1070
1026
  "text": "boolean"
1071
1027
  },
1072
- "default": "false",
1073
- "description": "Controls whether the button expands to fill the width of its container.",
1074
- "attribute": "expand",
1075
- "reflects": true
1028
+ "privacy": "private",
1029
+ "default": "false"
1076
1030
  },
1077
1031
  {
1078
- "kind": "method",
1079
- "name": "renderLink",
1032
+ "kind": "field",
1033
+ "name": "focusedDay",
1080
1034
  "privacy": "private",
1081
- "parameters": [
1082
- {
1083
- "name": "innards",
1084
- "type": {
1085
- "text": "TemplateResult"
1086
- }
1087
- }
1088
- ],
1089
- "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
+ "default": "new Date()"
1090
1036
  },
1091
1037
  {
1092
1038
  "kind": "method",
1093
- "name": "renderButton",
1094
- "privacy": "private",
1039
+ "name": "focus",
1095
1040
  "parameters": [
1096
1041
  {
1097
- "name": "innards",
1042
+ "name": "options",
1043
+ "optional": true,
1098
1044
  "type": {
1099
- "text": "TemplateResult"
1100
- }
1045
+ "text": "FocusOptions & { target: \"day\" | \"month\" }"
1046
+ },
1047
+ "description": "An object which controls aspects of the focusing process."
1101
1048
  }
1102
- ]
1049
+ ],
1050
+ "description": "Programmatically move focus to the calendar."
1103
1051
  },
1104
1052
  {
1105
1053
  "kind": "method",
1106
- "name": "renderLightDom",
1054
+ "name": "createDateFormatter",
1107
1055
  "privacy": "private"
1108
1056
  },
1109
1057
  {
1110
1058
  "kind": "field",
1111
- "name": "handleOuterClick",
1059
+ "name": "handleDaySelect",
1112
1060
  "privacy": "private"
1113
1061
  },
1114
1062
  {
1115
1063
  "kind": "method",
1116
- "name": "handleClick",
1064
+ "name": "addDays",
1117
1065
  "privacy": "private",
1118
1066
  "parameters": [
1119
1067
  {
1120
- "name": "e",
1068
+ "name": "days",
1121
1069
  "type": {
1122
- "text": "Event"
1070
+ "text": "number"
1123
1071
  }
1124
1072
  }
1125
1073
  ]
1126
1074
  },
1127
1075
  {
1128
- "kind": "field",
1129
- "name": "disabled",
1130
- "type": {
1131
- "text": "boolean"
1132
- },
1133
- "default": "false",
1134
- "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
1135
- "attribute": "disabled",
1136
- "reflects": true,
1137
- "inheritedFrom": {
1138
- "name": "InputMixin",
1139
- "module": "src/common/mixins/InputMixin.ts"
1140
- }
1076
+ "kind": "method",
1077
+ "name": "addMonths",
1078
+ "privacy": "private",
1079
+ "parameters": [
1080
+ {
1081
+ "name": "months",
1082
+ "type": {
1083
+ "text": "number"
1084
+ }
1085
+ }
1086
+ ]
1141
1087
  },
1142
1088
  {
1143
- "kind": "field",
1144
- "name": "name",
1145
- "type": {
1146
- "text": "string | undefined"
1147
- },
1148
- "description": "The name of the form component.",
1149
- "attribute": "name",
1150
- "inheritedFrom": {
1151
- "name": "InputMixin",
1152
- "module": "src/common/mixins/InputMixin.ts"
1153
- }
1089
+ "kind": "method",
1090
+ "name": "addYears",
1091
+ "privacy": "private",
1092
+ "parameters": [
1093
+ {
1094
+ "name": "years",
1095
+ "type": {
1096
+ "text": "number"
1097
+ }
1098
+ }
1099
+ ]
1154
1100
  },
1155
1101
  {
1156
- "kind": "field",
1157
- "name": "value",
1158
- "type": {
1159
- "text": "string"
1160
- },
1161
- "default": "\"\"",
1162
- "description": "The value of the form component.",
1163
- "attribute": "value",
1164
- "inheritedFrom": {
1165
- "name": "InputMixin",
1166
- "module": "src/common/mixins/InputMixin.ts"
1167
- }
1102
+ "kind": "method",
1103
+ "name": "startOfWeek",
1104
+ "privacy": "private"
1168
1105
  },
1169
1106
  {
1170
- "kind": "field",
1171
- "name": "form",
1172
- "privacy": "protected",
1173
- "description": "Gets the form, if any, associated with the form element.",
1174
- "inheritedFrom": {
1175
- "name": "InputMixin",
1176
- "module": "src/common/mixins/InputMixin.ts"
1177
- }
1107
+ "kind": "method",
1108
+ "name": "endOfWeek",
1109
+ "privacy": "private"
1178
1110
  },
1179
1111
  {
1180
- "kind": "field",
1181
- "name": "focusableRef",
1182
- "privacy": "protected",
1183
- "inheritedFrom": {
1184
- "name": "FocusableMixin",
1185
- "module": "src/common/mixins/FocusableMixin.ts"
1186
- }
1112
+ "kind": "method",
1113
+ "name": "setMonth",
1114
+ "privacy": "private",
1115
+ "parameters": [
1116
+ {
1117
+ "name": "month",
1118
+ "type": {
1119
+ "text": "number"
1120
+ }
1121
+ }
1122
+ ]
1187
1123
  },
1188
1124
  {
1189
1125
  "kind": "method",
1190
- "name": "focus",
1126
+ "name": "setYear",
1127
+ "privacy": "private",
1191
1128
  "parameters": [
1192
1129
  {
1193
- "name": "options",
1194
- "optional": true,
1130
+ "name": "year",
1195
1131
  "type": {
1196
- "text": "FocusOptions"
1197
- },
1198
- "description": "An object which controls aspects of the focusing process."
1132
+ "text": "number"
1133
+ }
1199
1134
  }
1200
- ],
1201
- "description": "Programmatically move focus to the component.",
1202
- "inheritedFrom": {
1203
- "name": "FocusableMixin",
1204
- "module": "src/common/mixins/FocusableMixin.ts"
1205
- }
1135
+ ]
1206
1136
  },
1207
1137
  {
1208
1138
  "kind": "method",
1209
- "name": "blur",
1210
- "description": "Programmatically remove focus from the component.",
1211
- "inheritedFrom": {
1212
- "name": "FocusableMixin",
1213
- "module": "src/common/mixins/FocusableMixin.ts"
1214
- }
1139
+ "name": "setFocusedDay",
1140
+ "privacy": "private",
1141
+ "parameters": [
1142
+ {
1143
+ "name": "day",
1144
+ "type": {
1145
+ "text": "Date"
1146
+ }
1147
+ }
1148
+ ]
1215
1149
  },
1216
1150
  {
1217
- "kind": "method",
1218
- "name": "click",
1219
- "description": "Programmatically simulates a click on the component.",
1220
- "inheritedFrom": {
1221
- "name": "FocusableMixin",
1222
- "module": "src/common/mixins/FocusableMixin.ts"
1223
- }
1224
- }
1225
- ],
1226
- "attributes": [
1151
+ "kind": "field",
1152
+ "name": "handleMonthSelect",
1153
+ "privacy": "private"
1154
+ },
1227
1155
  {
1228
- "name": "variant",
1229
- "type": {
1230
- "text": "\"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\""
1231
- },
1232
- "default": "\"default\"",
1233
- "description": "The style variant of the button.",
1234
- "fieldName": "variant"
1156
+ "kind": "field",
1157
+ "name": "handleYearSelect",
1158
+ "privacy": "private"
1235
1159
  },
1236
1160
  {
1237
- "name": "type",
1238
- "type": {
1239
- "text": "\"button\" | \"submit\" | \"reset\""
1240
- },
1241
- "default": "\"submit\"",
1242
- "description": "The type of the button.",
1243
- "fieldName": "type"
1161
+ "kind": "field",
1162
+ "name": "handleNextMonthClick",
1163
+ "privacy": "private"
1244
1164
  },
1245
1165
  {
1246
- "name": "size",
1247
- "type": {
1248
- "text": "\"s\" | \"m\" | \"l\""
1249
- },
1250
- "default": "\"m\"",
1251
- "description": "The size of the button.\nThis affects font-size and padding.",
1252
- "fieldName": "size"
1166
+ "kind": "field",
1167
+ "name": "handlePreviousMonthClick",
1168
+ "privacy": "private"
1253
1169
  },
1254
1170
  {
1255
- "name": "href",
1171
+ "kind": "field",
1172
+ "name": "enableActiveFocus",
1173
+ "privacy": "private"
1174
+ },
1175
+ {
1176
+ "kind": "field",
1177
+ "name": "disableActiveFocus",
1178
+ "privacy": "private"
1179
+ }
1180
+ ],
1181
+ "events": [
1182
+ {
1183
+ "name": "nord-focus-date",
1256
1184
  "type": {
1257
- "text": "string | undefined"
1185
+ "text": "DateSelectEvent"
1258
1186
  },
1259
- "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
1260
- "fieldName": "href"
1187
+ "description": "Dispatched when the calendar's focused date changes."
1261
1188
  },
1262
1189
  {
1263
- "name": "download",
1264
1190
  "type": {
1265
- "text": "boolean"
1191
+ "text": "DateSelectEvent"
1266
1192
  },
1267
- "default": "false",
1268
- "description": "When provided together with a href property, the button will\ntrigger a file download instead of a page visit.",
1269
- "fieldName": "download"
1270
- },
1193
+ "description": "Dispatched when a date is selected and the value changes.",
1194
+ "name": "change"
1195
+ }
1196
+ ],
1197
+ "attributes": [
1271
1198
  {
1272
- "name": "target",
1199
+ "name": "value",
1273
1200
  "type": {
1274
- "text": "\"_self\" | \"_blank\" | \"_parent\" | \"_top\""
1201
+ "text": "string"
1275
1202
  },
1276
- "default": "\"_self\"",
1277
- "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.",
1278
- "fieldName": "target"
1203
+ "default": "\"\"",
1204
+ "description": "The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.",
1205
+ "fieldName": "value"
1279
1206
  },
1280
1207
  {
1281
- "name": "expand",
1208
+ "name": "firstDayOfWeek",
1282
1209
  "type": {
1283
- "text": "boolean"
1210
+ "text": "DaysOfWeek"
1284
1211
  },
1285
- "default": "false",
1286
- "description": "Controls whether the button expands to fill the width of its container.",
1287
- "fieldName": "expand"
1212
+ "description": "Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\nDefault is Monday.",
1213
+ "fieldName": "firstDayOfWeek"
1288
1214
  },
1289
1215
  {
1290
- "name": "disabled",
1216
+ "name": "min",
1291
1217
  "type": {
1292
- "text": "boolean"
1218
+ "text": "string"
1293
1219
  },
1294
- "default": "false",
1295
- "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
1296
- "fieldName": "disabled",
1297
- "inheritedFrom": {
1298
- "name": "InputMixin",
1299
- "module": "src/common/mixins/InputMixin.ts"
1300
- }
1220
+ "default": "\"\"",
1221
+ "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.",
1222
+ "fieldName": "min"
1301
1223
  },
1302
1224
  {
1303
- "name": "name",
1225
+ "name": "max",
1304
1226
  "type": {
1305
- "text": "string | undefined"
1306
- },
1307
- "description": "The name of the form component.",
1308
- "fieldName": "name",
1309
- "inheritedFrom": {
1310
- "name": "InputMixin",
1311
- "module": "src/common/mixins/InputMixin.ts"
1312
- }
1313
- },
1314
- {
1315
- "name": "value",
1316
- "type": {
1317
- "text": "string"
1227
+ "text": "string"
1318
1228
  },
1319
1229
  "default": "\"\"",
1320
- "description": "The value of the form component.",
1321
- "fieldName": "value",
1322
- "inheritedFrom": {
1323
- "name": "InputMixin",
1324
- "module": "src/common/mixins/InputMixin.ts"
1325
- }
1326
- }
1327
- ],
1328
- "mixins": [
1329
- {
1330
- "name": "InputMixin",
1331
- "module": "/src/common/mixins/InputMixin.js"
1332
- },
1333
- {
1334
- "name": "FocusableMixin",
1335
- "module": "/src/common/mixins/FocusableMixin.js"
1230
+ "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.",
1231
+ "fieldName": "max"
1336
1232
  }
1337
1233
  ],
1338
1234
  "superclass": {
@@ -1340,8 +1236,8 @@
1340
1236
  "package": "lit"
1341
1237
  },
1342
1238
  "status": "ready",
1343
- "category": "action",
1344
- "tagName": "nord-button",
1239
+ "category": "list",
1240
+ "tagName": "nord-calendar",
1345
1241
  "customElement": true
1346
1242
  }
1347
1243
  ],
@@ -1350,20 +1246,130 @@
1350
1246
  "kind": "js",
1351
1247
  "name": "default",
1352
1248
  "declaration": {
1353
- "name": "Button",
1354
- "module": "src/button/Button.ts"
1249
+ "name": "Calendar",
1250
+ "module": "src/calendar/Calendar.ts"
1355
1251
  }
1356
1252
  },
1357
1253
  {
1358
1254
  "kind": "custom-element-definition",
1359
- "name": "nord-button",
1255
+ "name": "nord-calendar",
1360
1256
  "declaration": {
1361
- "name": "Button",
1362
- "module": "src/button/Button.ts"
1257
+ "name": "Calendar",
1258
+ "module": "src/calendar/Calendar.ts"
1363
1259
  }
1364
1260
  }
1365
1261
  ],
1366
- "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"
1262
+ "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"
1263
+ },
1264
+ {
1265
+ "kind": "javascript-module",
1266
+ "path": "src/calendar/DateSelectEvent.ts",
1267
+ "declarations": [
1268
+ {
1269
+ "kind": "class",
1270
+ "description": "",
1271
+ "name": "DateSelectEvent",
1272
+ "members": [
1273
+ {
1274
+ "kind": "field",
1275
+ "name": "date",
1276
+ "type": {
1277
+ "text": "Date"
1278
+ },
1279
+ "default": "date"
1280
+ }
1281
+ ],
1282
+ "superclass": {
1283
+ "name": "NordEvent",
1284
+ "module": "/src/common/events.js"
1285
+ }
1286
+ }
1287
+ ],
1288
+ "exports": [
1289
+ {
1290
+ "kind": "js",
1291
+ "name": "DateSelectEvent",
1292
+ "declaration": {
1293
+ "name": "DateSelectEvent",
1294
+ "module": "src/calendar/DateSelectEvent.ts"
1295
+ }
1296
+ }
1297
+ ],
1298
+ "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"
1299
+ },
1300
+ {
1301
+ "kind": "javascript-module",
1302
+ "path": "src/calendar/calendar-localization.ts",
1303
+ "declarations": [
1304
+ {
1305
+ "kind": "variable",
1306
+ "name": "localization",
1307
+ "type": {
1308
+ "text": "CalendarLocalizedText"
1309
+ },
1310
+ "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}"
1311
+ }
1312
+ ],
1313
+ "exports": [
1314
+ {
1315
+ "kind": "js",
1316
+ "name": "default",
1317
+ "declaration": {
1318
+ "name": "localization",
1319
+ "module": "src/calendar/calendar-localization.ts"
1320
+ }
1321
+ }
1322
+ ],
1323
+ "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"
1324
+ },
1325
+ {
1326
+ "kind": "javascript-module",
1327
+ "path": "src/calendar/month-view.ts",
1328
+ "declarations": [
1329
+ {
1330
+ "kind": "function",
1331
+ "name": "dayView",
1332
+ "parameters": [
1333
+ {
1334
+ "name": "{\n focusedDay,\n today,\n day,\n onDaySelect,\n onKeyboardNavigation,\n disabled,\n inRange,\n isSelected,\n dateFormatter,\n}",
1335
+ "type": {
1336
+ "text": "DatePickerDayProps"
1337
+ }
1338
+ }
1339
+ ]
1340
+ },
1341
+ {
1342
+ "kind": "function",
1343
+ "name": "monthView",
1344
+ "parameters": [
1345
+ {
1346
+ "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}",
1347
+ "type": {
1348
+ "text": "MonthViewArgs"
1349
+ }
1350
+ }
1351
+ ]
1352
+ }
1353
+ ],
1354
+ "exports": [
1355
+ {
1356
+ "kind": "js",
1357
+ "name": "dayView",
1358
+ "declaration": {
1359
+ "name": "dayView",
1360
+ "module": "src/calendar/month-view.ts"
1361
+ }
1362
+ },
1363
+ {
1364
+ "kind": "js",
1365
+ "name": "monthView",
1366
+ "declaration": {
1367
+ "name": "monthView",
1368
+ "module": "src/calendar/month-view.ts"
1369
+ }
1370
+ }
1371
+ ],
1372
+ "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"
1367
1373
  },
1368
1374
  {
1369
1375
  "kind": "javascript-module",
@@ -3613,6 +3619,51 @@
3613
3619
  }
3614
3620
  ]
3615
3621
  },
3622
+ {
3623
+ "kind": "javascript-module",
3624
+ "path": "src/empty-state/EmptyState.ts",
3625
+ "declarations": [
3626
+ {
3627
+ "kind": "class",
3628
+ "description": "Empty state can be used when there is no data to display to\ndescribe what the user can do next. Empty state provides\nexplanation and guidance to help user progress.",
3629
+ "name": "EmptyState",
3630
+ "slots": [
3631
+ {
3632
+ "description": "default slot",
3633
+ "name": ""
3634
+ }
3635
+ ],
3636
+ "members": [],
3637
+ "superclass": {
3638
+ "name": "LitElement",
3639
+ "package": "lit"
3640
+ },
3641
+ "status": "new",
3642
+ "category": "feedback",
3643
+ "tagName": "nord-empty-state",
3644
+ "customElement": true
3645
+ }
3646
+ ],
3647
+ "exports": [
3648
+ {
3649
+ "kind": "js",
3650
+ "name": "default",
3651
+ "declaration": {
3652
+ "name": "EmptyState",
3653
+ "module": "src/empty-state/EmptyState.ts"
3654
+ }
3655
+ },
3656
+ {
3657
+ "kind": "custom-element-definition",
3658
+ "name": "nord-empty-state",
3659
+ "declaration": {
3660
+ "name": "EmptyState",
3661
+ "module": "src/empty-state/EmptyState.ts"
3662
+ }
3663
+ }
3664
+ ],
3665
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when another component or part of UI has no items or data to show.\n- Help users by clearly explaining the benefit and utility of a product or feature.\n- Be encouraging and never make users feel unsuccessful or guilty.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use as a generic banner to highlight specific content.\n\n</div>\n\n---\n\n## Content guidelines\n\nEmpty state headings should state to the user what’s wrong or why there’s no content:\n\n<div class=\"n-usage n-usage-do\">No results found</div>\n<div class=\"n-usage n-usage-dont\">Error</div>\n\nWhen writing empty state headings, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">You don’t have access to this content</div>\n<div class=\"n-usage n-usage-dont\">You Don’t Have Access To This Content</div>\n\nDescriptions in empty states should add useful and relevant additional information:\n\n<div class=\"n-usage n-usage-do\">We were unable to connect to the service. Click Retry to try again or View log to learn what happened.</div>\n<div class=\"n-usage n-usage-dont\">No connection.</div>\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">Clear filters</div>\n<div class=\"n-usage n-usage-dont\">Clear</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">View log</div>\n<div class=\"n-usage n-usage-dont\">View Log</div>\n\nAvoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Request access</div>\n<div class=\"n-usage n-usage-dont\">Request an access</div>\n"
3666
+ },
3616
3667
  {
3617
3668
  "kind": "javascript-module",
3618
3669
  "path": "src/date-picker/DatePicker.ts",
@@ -4506,51 +4557,6 @@
4506
4557
  ],
4507
4558
  "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use to choose a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nDate picker is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Choose date button\n\n- `Space, Enter`: Opens the date picker dialog and moves focus to the first select menu in the dialog.\n\n### Date picker dialog\n\n- `Esc`: Closes the date picker dialog and moves focus back to the “choose date” button.\n- `Tab`: Moves focus to the next element in the dialog. Please note since the calendar uses `role=\"grid\"`, only one button in the calendar grid is in the tab sequence. Additionally, if focus is on the last focusable element, focus is next moved back to the first focusable element inside the date picker dialog.\n- `Shift + Tab`: Same as above, but in reverse order.\n\n### Date picker dialog: Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Date picker dialog: Date grid\n\n- `Space, Enter`: Selects a date, closes the dialog, and moves focus back to the “Choose Date” button. Additionally updates the value of the date picker input with the selected date, and adds selected date to “Choose Date” button label.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n\n#### Date picker dialog: Close button\n\n- `Space, Enter`: Closes the dialog, moves focus to “choose date” button, but does not update the date in input.\n"
4508
4559
  },
4509
- {
4510
- "kind": "javascript-module",
4511
- "path": "src/empty-state/EmptyState.ts",
4512
- "declarations": [
4513
- {
4514
- "kind": "class",
4515
- "description": "Empty state can be used when there is no data to display to\ndescribe what the user can do next. Empty state provides\nexplanation and guidance to help user progress.",
4516
- "name": "EmptyState",
4517
- "slots": [
4518
- {
4519
- "description": "default slot",
4520
- "name": ""
4521
- }
4522
- ],
4523
- "members": [],
4524
- "superclass": {
4525
- "name": "LitElement",
4526
- "package": "lit"
4527
- },
4528
- "status": "new",
4529
- "category": "feedback",
4530
- "tagName": "nord-empty-state",
4531
- "customElement": true
4532
- }
4533
- ],
4534
- "exports": [
4535
- {
4536
- "kind": "js",
4537
- "name": "default",
4538
- "declaration": {
4539
- "name": "EmptyState",
4540
- "module": "src/empty-state/EmptyState.ts"
4541
- }
4542
- },
4543
- {
4544
- "kind": "custom-element-definition",
4545
- "name": "nord-empty-state",
4546
- "declaration": {
4547
- "name": "EmptyState",
4548
- "module": "src/empty-state/EmptyState.ts"
4549
- }
4550
- }
4551
- ],
4552
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when another component or part of UI has no items or data to show.\n- Help users by clearly explaining the benefit and utility of a product or feature.\n- Be encouraging and never make users feel unsuccessful or guilty.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use as a generic banner to highlight specific content.\n\n</div>\n\n---\n\n## Content guidelines\n\nEmpty state headings should state to the user what’s wrong or why there’s no content:\n\n<div class=\"n-usage n-usage-do\">No results found</div>\n<div class=\"n-usage n-usage-dont\">Error</div>\n\nWhen writing empty state headings, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">You don’t have access to this content</div>\n<div class=\"n-usage n-usage-dont\">You Don’t Have Access To This Content</div>\n\nDescriptions in empty states should add useful and relevant additional information:\n\n<div class=\"n-usage n-usage-do\">We were unable to connect to the service. Click Retry to try again or View log to learn what happened.</div>\n<div class=\"n-usage n-usage-dont\">No connection.</div>\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">Clear filters</div>\n<div class=\"n-usage n-usage-dont\">Clear</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">View log</div>\n<div class=\"n-usage n-usage-dont\">View Log</div>\n\nAvoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Request access</div>\n<div class=\"n-usage n-usage-dont\">Request an access</div>\n"
4553
- },
4554
4560
  {
4555
4561
  "kind": "javascript-module",
4556
4562
  "path": "src/fieldset/Fieldset.ts",
@@ -8515,9 +8521,23 @@
8515
8521
  },
8516
8522
  {
8517
8523
  "kind": "field",
8518
- "name": "targetElement",
8524
+ "name": "events",
8525
+ "privacy": "private",
8526
+ "default": "new EventController(this)"
8527
+ },
8528
+ {
8529
+ "kind": "field",
8530
+ "name": "currentElement",
8531
+ "type": {
8532
+ "text": "FocusableElement | undefined"
8533
+ },
8534
+ "privacy": "private"
8535
+ },
8536
+ {
8537
+ "kind": "field",
8538
+ "name": "timeoutId",
8519
8539
  "type": {
8520
- "text": "FocusableElement"
8540
+ "text": "ReturnType<typeof setTimeout> | undefined"
8521
8541
  },
8522
8542
  "privacy": "private"
8523
8543
  },
@@ -8529,12 +8549,22 @@
8529
8549
  },
8530
8550
  {
8531
8551
  "kind": "field",
8532
- "name": "visible",
8552
+ "name": "state",
8533
8553
  "type": {
8534
- "text": "boolean"
8554
+ "text": "TooltipStates"
8535
8555
  },
8536
- "default": "false",
8537
- "description": "Determines whether the tooltip is visible or not."
8556
+ "privacy": "private",
8557
+ "default": "\"hidden\"",
8558
+ "description": "The current state of the tooltip, dependent on the state machine"
8559
+ },
8560
+ {
8561
+ "kind": "field",
8562
+ "name": "coords",
8563
+ "type": {
8564
+ "text": "[number, number]"
8565
+ },
8566
+ "privacy": "private",
8567
+ "default": "[0, 0]"
8538
8568
  },
8539
8569
  {
8540
8570
  "kind": "field",
@@ -8580,6 +8610,19 @@
8580
8610
  "attribute": "delay",
8581
8611
  "reflects": true
8582
8612
  },
8613
+ {
8614
+ "kind": "method",
8615
+ "name": "handleTransition",
8616
+ "privacy": "private",
8617
+ "parameters": [
8618
+ {
8619
+ "name": "prevState",
8620
+ "type": {
8621
+ "text": "TooltipStates"
8622
+ }
8623
+ }
8624
+ ]
8625
+ },
8583
8626
  {
8584
8627
  "kind": "field",
8585
8628
  "name": "updatePosition",
@@ -8588,18 +8631,22 @@
8588
8631
  },
8589
8632
  {
8590
8633
  "kind": "field",
8591
- "name": "handleScroll",
8634
+ "name": "hideTooltip",
8592
8635
  "privacy": "private"
8593
8636
  },
8594
8637
  {
8595
8638
  "kind": "field",
8596
- "name": "showTooltip",
8597
- "privacy": "private",
8598
- "description": "Show and hide the tooltip using inline styles"
8639
+ "name": "reposition",
8640
+ "privacy": "private"
8599
8641
  },
8600
8642
  {
8601
8643
  "kind": "field",
8602
- "name": "hideTooltip",
8644
+ "name": "handleShow",
8645
+ "privacy": "private"
8646
+ },
8647
+ {
8648
+ "kind": "field",
8649
+ "name": "handleHide",
8603
8650
  "privacy": "private"
8604
8651
  },
8605
8652
  {
@@ -8733,108 +8780,206 @@
8733
8780
  },
8734
8781
  {
8735
8782
  "kind": "javascript-module",
8736
- "path": "src/common/controllers/DirectionController.ts",
8783
+ "path": "src/common/directives/cond.ts",
8737
8784
  "declarations": [
8738
8785
  {
8739
- "kind": "class",
8740
- "description": "",
8741
- "name": "DirectionController",
8742
- "members": [
8786
+ "kind": "variable",
8787
+ "name": "cond"
8788
+ }
8789
+ ],
8790
+ "exports": [
8791
+ {
8792
+ "kind": "js",
8793
+ "name": "cond",
8794
+ "declaration": {
8795
+ "name": "cond",
8796
+ "module": "src/common/directives/cond.ts"
8797
+ }
8798
+ }
8799
+ ]
8800
+ },
8801
+ {
8802
+ "kind": "javascript-module",
8803
+ "path": "src/common/directives/wrapIf.ts",
8804
+ "declarations": [
8805
+ {
8806
+ "kind": "function",
8807
+ "name": "wrapIf",
8808
+ "return": {
8809
+ "type": {
8810
+ "text": "TInner"
8811
+ }
8812
+ },
8813
+ "parameters": [
8743
8814
  {
8744
- "kind": "field",
8745
- "name": "hosts",
8746
- "privacy": "private",
8747
- "static": true,
8748
- "default": "new Set<ReactiveControllerHost>()"
8815
+ "name": "condition",
8816
+ "type": {
8817
+ "text": "false"
8818
+ }
8749
8819
  },
8750
8820
  {
8751
- "kind": "field",
8752
- "name": "observer",
8821
+ "name": "inner",
8753
8822
  "type": {
8754
- "text": "MutationObserver | undefined"
8755
- },
8756
- "privacy": "private",
8757
- "static": true
8823
+ "text": "() => TInner"
8824
+ }
8758
8825
  },
8759
8826
  {
8760
- "kind": "field",
8761
- "name": "dir",
8827
+ "name": "wrapper",
8762
8828
  "type": {
8763
- "text": "WritingDirection"
8829
+ "text": "(inner: TInner) => TWrapper"
8830
+ }
8831
+ }
8832
+ ]
8833
+ },
8834
+ {
8835
+ "kind": "function",
8836
+ "name": "wrapIf",
8837
+ "return": {
8838
+ "type": {
8839
+ "text": "TWrapper"
8840
+ }
8841
+ },
8842
+ "parameters": [
8843
+ {
8844
+ "name": "condition",
8845
+ "type": {
8846
+ "text": "true"
8764
8847
  }
8765
8848
  },
8766
8849
  {
8767
- "kind": "field",
8768
- "name": "isLTR"
8850
+ "name": "inner",
8851
+ "type": {
8852
+ "text": "() => TInner"
8853
+ }
8769
8854
  },
8770
8855
  {
8771
- "kind": "field",
8772
- "name": "isRTL"
8856
+ "name": "wrapper",
8857
+ "type": {
8858
+ "text": "(inner: TInner) => TWrapper"
8859
+ }
8860
+ }
8861
+ ]
8862
+ },
8863
+ {
8864
+ "kind": "function",
8865
+ "name": "wrapIf",
8866
+ "return": {
8867
+ "type": {
8868
+ "text": "TInner | TWrapper"
8869
+ }
8870
+ },
8871
+ "parameters": [
8872
+ {
8873
+ "name": "condition",
8874
+ "type": {
8875
+ "text": "unknown"
8876
+ }
8773
8877
  },
8774
8878
  {
8775
- "kind": "method",
8776
- "name": "hostConnected"
8879
+ "name": "inner",
8880
+ "type": {
8881
+ "text": "() => TInner"
8882
+ }
8777
8883
  },
8778
8884
  {
8779
- "kind": "method",
8780
- "name": "hostDisconnected"
8885
+ "name": "wrapper",
8886
+ "type": {
8887
+ "text": "(inner: TInner) => TWrapper"
8888
+ }
8889
+ }
8890
+ ]
8891
+ },
8892
+ {
8893
+ "kind": "function",
8894
+ "name": "wrapIf",
8895
+ "parameters": [
8896
+ {
8897
+ "name": "condition",
8898
+ "type": {
8899
+ "text": "any"
8900
+ }
8781
8901
  },
8782
8902
  {
8783
- "kind": "method",
8784
- "name": "observe",
8785
- "privacy": "private",
8786
- "static": true
8903
+ "name": "inner",
8904
+ "type": {
8905
+ "text": "() => TInner"
8906
+ }
8787
8907
  },
8788
8908
  {
8789
- "kind": "field",
8790
- "name": "host",
8791
- "default": "host"
8909
+ "name": "wrapper",
8910
+ "type": {
8911
+ "text": "(innards: TInner) => TWrapper"
8912
+ }
8792
8913
  }
8793
- ]
8914
+ ],
8915
+ "return": {
8916
+ "type": {
8917
+ "text": ""
8918
+ }
8919
+ }
8794
8920
  }
8795
8921
  ],
8796
8922
  "exports": [
8797
8923
  {
8798
8924
  "kind": "js",
8799
- "name": "DirectionController",
8925
+ "name": "wrapIf",
8800
8926
  "declaration": {
8801
- "name": "DirectionController",
8802
- "module": "src/common/controllers/DirectionController.ts"
8927
+ "name": "wrapIf",
8928
+ "module": "src/common/directives/wrapIf.ts"
8929
+ }
8930
+ },
8931
+ {
8932
+ "kind": "js",
8933
+ "name": "wrapIf",
8934
+ "declaration": {
8935
+ "name": "wrapIf",
8936
+ "module": "src/common/directives/wrapIf.ts"
8937
+ }
8938
+ },
8939
+ {
8940
+ "kind": "js",
8941
+ "name": "wrapIf",
8942
+ "declaration": {
8943
+ "name": "wrapIf",
8944
+ "module": "src/common/directives/wrapIf.ts"
8945
+ }
8946
+ },
8947
+ {
8948
+ "kind": "js",
8949
+ "name": "wrapIf",
8950
+ "declaration": {
8951
+ "name": "wrapIf",
8952
+ "module": "src/common/directives/wrapIf.ts"
8803
8953
  }
8804
8954
  }
8805
8955
  ]
8806
8956
  },
8807
8957
  {
8808
8958
  "kind": "javascript-module",
8809
- "path": "src/common/controllers/FormDataController.ts",
8959
+ "path": "src/common/mixins/DraftComponentMixin.ts",
8810
8960
  "declarations": [
8811
8961
  {
8812
- "kind": "class",
8962
+ "kind": "mixin",
8813
8963
  "description": "",
8814
- "name": "FormDataController",
8964
+ "name": "DraftComponentMixin",
8815
8965
  "members": [
8816
- {
8817
- "kind": "method",
8818
- "name": "hostConnected"
8819
- },
8820
- {
8821
- "kind": "method",
8822
- "name": "hostDisconnected"
8823
- },
8824
- {
8825
- "kind": "field",
8826
- "name": "handleFormData",
8827
- "privacy": "private"
8828
- },
8829
8966
  {
8830
8967
  "kind": "field",
8831
- "name": "host",
8832
- "default": "host"
8833
- },
8968
+ "name": "_warningLogged",
8969
+ "type": {
8970
+ "text": "boolean"
8971
+ },
8972
+ "privacy": "private",
8973
+ "static": true,
8974
+ "default": "false"
8975
+ }
8976
+ ],
8977
+ "parameters": [
8834
8978
  {
8835
- "kind": "field",
8836
- "name": "options",
8837
- "default": "options"
8979
+ "name": "superClass",
8980
+ "type": {
8981
+ "text": "T"
8982
+ }
8838
8983
  }
8839
8984
  ]
8840
8985
  }
@@ -8842,108 +8987,111 @@
8842
8987
  "exports": [
8843
8988
  {
8844
8989
  "kind": "js",
8845
- "name": "FormDataController",
8990
+ "name": "DraftComponentMixin",
8846
8991
  "declaration": {
8847
- "name": "FormDataController",
8848
- "module": "src/common/controllers/FormDataController.ts"
8992
+ "name": "DraftComponentMixin",
8993
+ "module": "src/common/mixins/DraftComponentMixin.ts"
8849
8994
  }
8850
8995
  }
8851
8996
  ]
8852
8997
  },
8853
8998
  {
8854
8999
  "kind": "javascript-module",
8855
- "path": "src/common/controllers/LightDismissController.ts",
9000
+ "path": "src/common/mixins/FocusableMixin.ts",
8856
9001
  "declarations": [
8857
9002
  {
8858
9003
  "kind": "class",
8859
9004
  "description": "",
8860
- "name": "LightDismissController",
9005
+ "name": "FocusableMixinInterface",
8861
9006
  "members": [
8862
9007
  {
8863
9008
  "kind": "field",
8864
- "name": "shortcut",
9009
+ "name": "focusableRef",
8865
9010
  "type": {
8866
- "text": "ShortcutController"
9011
+ "text": "Ref<HTMLElement>"
8867
9012
  },
8868
- "privacy": "private",
8869
- "default": "new ShortcutController(this.host, { Escape: this.handleEsc })"
9013
+ "privacy": "protected"
8870
9014
  },
8871
9015
  {
8872
9016
  "kind": "method",
8873
- "name": "hostConnected"
9017
+ "name": "focus",
9018
+ "return": {
9019
+ "type": {
9020
+ "text": "void"
9021
+ }
9022
+ },
9023
+ "parameters": [
9024
+ {
9025
+ "name": "options",
9026
+ "optional": true,
9027
+ "type": {
9028
+ "text": "FocusOptions"
9029
+ }
9030
+ }
9031
+ ]
8874
9032
  },
8875
9033
  {
8876
9034
  "kind": "method",
8877
- "name": "hostDisconnected"
8878
- },
8879
- {
8880
- "kind": "field",
8881
- "name": "handleEsc",
8882
- "privacy": "private"
8883
- },
8884
- {
8885
- "kind": "field",
8886
- "name": "handleClickOut",
8887
- "privacy": "private"
8888
- },
8889
- {
8890
- "kind": "field",
8891
- "name": "host",
8892
- "default": "host"
9035
+ "name": "blur",
9036
+ "return": {
9037
+ "type": {
9038
+ "text": "void"
9039
+ }
9040
+ }
8893
9041
  },
8894
9042
  {
8895
- "kind": "field",
8896
- "name": "options",
8897
- "default": "options"
9043
+ "kind": "method",
9044
+ "name": "click",
9045
+ "return": {
9046
+ "type": {
9047
+ "text": "void"
9048
+ }
9049
+ }
8898
9050
  }
8899
9051
  ]
8900
- }
8901
- ],
8902
- "exports": [
8903
- {
8904
- "kind": "js",
8905
- "name": "LightDismissController",
8906
- "declaration": {
8907
- "name": "LightDismissController",
8908
- "module": "src/common/controllers/LightDismissController.ts"
8909
- }
8910
- }
8911
- ]
8912
- },
8913
- {
8914
- "kind": "javascript-module",
8915
- "path": "src/common/controllers/LightDomController.ts",
8916
- "declarations": [
9052
+ },
8917
9053
  {
8918
- "kind": "class",
9054
+ "kind": "mixin",
8919
9055
  "description": "",
8920
- "name": "LightDomController",
9056
+ "name": "FocusableMixin",
8921
9057
  "members": [
8922
9058
  {
8923
9059
  "kind": "field",
8924
- "name": "container",
8925
- "type": {
8926
- "text": "HTMLElement"
8927
- },
8928
- "privacy": "private"
9060
+ "name": "focusableRef",
9061
+ "privacy": "protected"
8929
9062
  },
8930
9063
  {
8931
9064
  "kind": "method",
8932
- "name": "hostUpdated"
9065
+ "name": "focus",
9066
+ "parameters": [
9067
+ {
9068
+ "name": "options",
9069
+ "optional": true,
9070
+ "type": {
9071
+ "text": "FocusOptions"
9072
+ },
9073
+ "description": "An object which controls aspects of the focusing process."
9074
+ }
9075
+ ],
9076
+ "description": "Programmatically move focus to the component."
8933
9077
  },
8934
9078
  {
8935
9079
  "kind": "method",
8936
- "name": "hostDisconnected"
9080
+ "name": "blur",
9081
+ "description": "Programmatically remove focus from the component."
8937
9082
  },
8938
9083
  {
8939
- "kind": "field",
8940
- "name": "host",
8941
- "default": "host"
8942
- },
9084
+ "kind": "method",
9085
+ "name": "click",
9086
+ "description": "Programmatically simulates a click on the component."
9087
+ }
9088
+ ],
9089
+ "parameters": [
8943
9090
  {
8944
- "kind": "field",
8945
- "name": "options",
8946
- "default": "options"
9091
+ "name": "superClass",
9092
+ "type": {
9093
+ "text": "T"
9094
+ }
8947
9095
  }
8948
9096
  ]
8949
9097
  }
@@ -8951,468 +9099,507 @@
8951
9099
  "exports": [
8952
9100
  {
8953
9101
  "kind": "js",
8954
- "name": "LightDomController",
9102
+ "name": "FocusableMixinInterface",
8955
9103
  "declaration": {
8956
- "name": "LightDomController",
8957
- "module": "src/common/controllers/LightDomController.ts"
9104
+ "name": "FocusableMixinInterface",
9105
+ "module": "src/common/mixins/FocusableMixin.ts"
9106
+ }
9107
+ },
9108
+ {
9109
+ "kind": "js",
9110
+ "name": "FocusableMixin",
9111
+ "declaration": {
9112
+ "name": "FocusableMixin",
9113
+ "module": "src/common/mixins/FocusableMixin.ts"
8958
9114
  }
8959
9115
  }
8960
9116
  ]
8961
9117
  },
8962
9118
  {
8963
9119
  "kind": "javascript-module",
8964
- "path": "src/common/controllers/LightSlotController.ts",
9120
+ "path": "src/common/mixins/FormAssociatedMixin.ts",
8965
9121
  "declarations": [
8966
9122
  {
8967
9123
  "kind": "class",
8968
- "description": "Handles cases where a component needs to render to light DOM,\nand potentially sync component properties to user-supplied content.",
8969
- "name": "LightSlotController",
9124
+ "description": "",
9125
+ "name": "FormAssociatedMixinInterface",
8970
9126
  "members": [
8971
9127
  {
8972
9128
  "kind": "field",
8973
- "name": "renderHook",
9129
+ "name": "label",
8974
9130
  "type": {
8975
- "text": "Comment"
8976
- },
8977
- "privacy": "private"
9131
+ "text": "string"
9132
+ }
8978
9133
  },
8979
9134
  {
8980
9135
  "kind": "field",
8981
- "name": "lightDom",
9136
+ "name": "required",
8982
9137
  "type": {
8983
- "text": "LightDomController"
8984
- },
8985
- "privacy": "private",
8986
- "default": "new LightDomController(host, {\n render: () => (this.hasContent ? nothing : this.options.render()),\n renderOptions: { renderBefore: this.renderHook },\n })"
9138
+ "text": "boolean"
9139
+ }
8987
9140
  },
8988
9141
  {
8989
- "kind": "method",
8990
- "name": "hostConnected",
8991
- "inheritedFrom": {
8992
- "name": "SlotController",
8993
- "module": "src/common/controllers/SlotController.ts"
9142
+ "kind": "field",
9143
+ "name": "hint",
9144
+ "type": {
9145
+ "text": "string | undefined"
8994
9146
  }
8995
9147
  },
8996
9148
  {
8997
- "kind": "method",
8998
- "name": "hostDisconnected",
8999
- "inheritedFrom": {
9000
- "name": "SlotController",
9001
- "module": "src/common/controllers/SlotController.ts"
9149
+ "kind": "field",
9150
+ "name": "hideLabel",
9151
+ "type": {
9152
+ "text": "boolean"
9002
9153
  }
9003
9154
  },
9004
9155
  {
9005
9156
  "kind": "field",
9006
- "name": "onChange",
9007
- "privacy": "protected",
9008
- "parameters": [
9009
- {
9010
- "name": "_e",
9011
- "type": {
9012
- "text": "Event"
9013
- }
9014
- }
9015
- ],
9016
- "inheritedFrom": {
9017
- "name": "SlotController",
9018
- "module": "src/common/controllers/SlotController.ts"
9157
+ "name": "placeholder",
9158
+ "type": {
9159
+ "text": "string | undefined"
9019
9160
  }
9020
9161
  },
9021
9162
  {
9022
- "kind": "method",
9023
- "name": "syncLightDom",
9024
- "privacy": "private"
9163
+ "kind": "field",
9164
+ "name": "error",
9165
+ "type": {
9166
+ "text": "string | undefined"
9167
+ }
9025
9168
  },
9026
9169
  {
9027
9170
  "kind": "field",
9028
- "name": "options",
9029
- "default": "options"
9171
+ "name": "expand",
9172
+ "type": {
9173
+ "text": "boolean"
9174
+ }
9030
9175
  },
9031
9176
  {
9032
9177
  "kind": "field",
9033
- "name": "hasContent",
9034
- "inheritedFrom": {
9035
- "name": "SlotController",
9036
- "module": "src/common/controllers/SlotController.ts"
9037
- }
9178
+ "name": "inputId",
9179
+ "type": {
9180
+ "text": "string"
9181
+ },
9182
+ "privacy": "protected"
9038
9183
  },
9039
9184
  {
9040
9185
  "kind": "field",
9041
- "name": "isEmpty",
9042
- "inheritedFrom": {
9043
- "name": "SlotController",
9044
- "module": "src/common/controllers/SlotController.ts"
9045
- }
9186
+ "name": "errorId",
9187
+ "type": {
9188
+ "text": "string"
9189
+ },
9190
+ "privacy": "protected"
9046
9191
  },
9047
9192
  {
9048
9193
  "kind": "field",
9049
- "name": "content",
9050
- "inheritedFrom": {
9051
- "name": "SlotController",
9052
- "module": "src/common/controllers/SlotController.ts"
9053
- }
9194
+ "name": "hintId",
9195
+ "type": {
9196
+ "text": "string"
9197
+ },
9198
+ "privacy": "protected"
9054
9199
  },
9055
9200
  {
9056
9201
  "kind": "field",
9057
- "name": "handleSlotChange",
9058
- "privacy": "private",
9059
- "inheritedFrom": {
9060
- "name": "SlotController",
9061
- "module": "src/common/controllers/SlotController.ts"
9062
- }
9202
+ "name": "labelSlot",
9203
+ "type": {
9204
+ "text": "SlotController"
9205
+ },
9206
+ "privacy": "protected"
9063
9207
  },
9064
9208
  {
9065
9209
  "kind": "field",
9066
- "name": "host",
9067
- "default": "host",
9068
- "inheritedFrom": {
9069
- "name": "SlotController",
9070
- "module": "src/common/controllers/SlotController.ts"
9071
- }
9210
+ "name": "hintSlot",
9211
+ "type": {
9212
+ "text": "SlotController"
9213
+ },
9214
+ "privacy": "protected"
9072
9215
  },
9073
9216
  {
9074
9217
  "kind": "field",
9075
- "name": "slotName",
9076
- "default": "slotName",
9077
- "inheritedFrom": {
9078
- "name": "SlotController",
9079
- "module": "src/common/controllers/SlotController.ts"
9080
- }
9081
- }
9082
- ],
9083
- "superclass": {
9084
- "name": "SlotController",
9085
- "module": "/src/common/controllers/SlotController.js"
9086
- },
9087
- "status": null,
9088
- "category": null
9089
- }
9090
- ],
9091
- "exports": [
9092
- {
9093
- "kind": "js",
9094
- "name": "LightSlotController",
9095
- "declaration": {
9096
- "name": "LightSlotController",
9097
- "module": "src/common/controllers/LightSlotController.ts"
9098
- }
9099
- }
9100
- ]
9101
- },
9102
- {
9103
- "kind": "javascript-module",
9104
- "path": "src/common/controllers/PortalController.ts",
9105
- "declarations": [
9106
- {
9107
- "kind": "class",
9108
- "description": "",
9109
- "name": "PortalController",
9110
- "members": [
9111
- {
9112
- "kind": "field",
9113
- "name": "renderHook",
9218
+ "name": "errorSlot",
9114
9219
  "type": {
9115
- "text": "Comment"
9220
+ "text": "SlotController"
9116
9221
  },
9117
- "privacy": "private"
9222
+ "privacy": "protected"
9118
9223
  },
9119
9224
  {
9120
9225
  "kind": "field",
9121
- "name": "lightDom",
9226
+ "name": "formData",
9122
9227
  "type": {
9123
- "text": "LightDomController"
9228
+ "text": "FormDataController"
9124
9229
  },
9125
- "privacy": "private",
9126
- "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 })"
9127
- },
9128
- {
9129
- "kind": "method",
9130
- "name": "hostConnected"
9131
- },
9132
- {
9133
- "kind": "method",
9134
- "name": "hostUpdated"
9135
- },
9136
- {
9137
- "kind": "method",
9138
- "name": "hostDisconnected"
9230
+ "privacy": "protected"
9139
9231
  },
9140
9232
  {
9141
9233
  "kind": "field",
9142
- "name": "host",
9143
- "default": "host"
9234
+ "name": "formValue",
9235
+ "type": {
9236
+ "text": "string | undefined"
9237
+ },
9238
+ "privacy": "protected"
9144
9239
  },
9145
9240
  {
9146
9241
  "kind": "field",
9147
- "name": "options",
9148
- "default": "options"
9149
- }
9150
- ]
9151
- }
9152
- ],
9153
- "exports": [
9154
- {
9155
- "kind": "js",
9156
- "name": "PortalController",
9157
- "declaration": {
9158
- "name": "PortalController",
9159
- "module": "src/common/controllers/PortalController.ts"
9160
- }
9161
- }
9162
- ]
9163
- },
9164
- {
9165
- "kind": "javascript-module",
9166
- "path": "src/common/controllers/ShortcutController.ts",
9167
- "declarations": [
9168
- {
9169
- "kind": "class",
9170
- "description": "",
9171
- "name": "ShortcutController",
9172
- "members": [
9242
+ "name": "hasError",
9243
+ "type": {
9244
+ "text": "boolean"
9245
+ },
9246
+ "privacy": "protected"
9247
+ },
9173
9248
  {
9174
9249
  "kind": "field",
9175
- "name": "unregister",
9250
+ "name": "hasHint",
9176
9251
  "type": {
9177
- "text": "ReturnType<typeof tinykeys> | undefined"
9252
+ "text": "boolean"
9178
9253
  },
9179
- "privacy": "private"
9254
+ "privacy": "protected"
9180
9255
  },
9181
9256
  {
9182
9257
  "kind": "method",
9183
- "name": "hostConnected"
9258
+ "name": "handleChange",
9259
+ "privacy": "protected",
9260
+ "return": {
9261
+ "type": {
9262
+ "text": "void"
9263
+ }
9264
+ },
9265
+ "parameters": [
9266
+ {
9267
+ "name": "e",
9268
+ "type": {
9269
+ "text": "Event"
9270
+ }
9271
+ }
9272
+ ]
9184
9273
  },
9185
9274
  {
9186
9275
  "kind": "method",
9187
- "name": "hostDisconnected"
9276
+ "name": "handleInput",
9277
+ "privacy": "protected",
9278
+ "return": {
9279
+ "type": {
9280
+ "text": "void"
9281
+ }
9282
+ },
9283
+ "parameters": [
9284
+ {
9285
+ "name": "e",
9286
+ "type": {
9287
+ "text": "Event"
9288
+ }
9289
+ }
9290
+ ]
9188
9291
  },
9189
9292
  {
9190
9293
  "kind": "method",
9191
- "name": "unbind"
9294
+ "name": "renderLabel",
9295
+ "privacy": "protected",
9296
+ "return": {
9297
+ "type": {
9298
+ "text": "TemplateResult"
9299
+ }
9300
+ }
9192
9301
  },
9193
9302
  {
9194
9303
  "kind": "method",
9195
- "name": "bind",
9196
- "parameters": [
9197
- {
9198
- "name": "shortcuts",
9199
- "type": {
9200
- "text": "KeyBindingMap"
9201
- }
9304
+ "name": "renderError",
9305
+ "privacy": "protected",
9306
+ "return": {
9307
+ "type": {
9308
+ "text": "TemplateResult"
9202
9309
  }
9203
- ]
9310
+ }
9204
9311
  },
9205
9312
  {
9206
- "kind": "field",
9207
- "name": "shortcuts",
9208
- "default": "shortcuts"
9313
+ "kind": "method",
9314
+ "name": "getDescribedBy",
9315
+ "privacy": "protected",
9316
+ "return": {
9317
+ "type": {
9318
+ "text": "string | undefined"
9319
+ }
9320
+ }
9209
9321
  },
9210
9322
  {
9211
- "kind": "field",
9212
- "name": "target",
9213
- "default": "target"
9323
+ "kind": "method",
9324
+ "name": "getInvalid",
9325
+ "privacy": "protected",
9326
+ "return": {
9327
+ "type": {
9328
+ "text": "\"true\" | undefined"
9329
+ }
9330
+ }
9214
9331
  }
9215
9332
  ]
9216
- }
9217
- ],
9218
- "exports": [
9219
- {
9220
- "kind": "js",
9221
- "name": "ShortcutController",
9222
- "declaration": {
9223
- "name": "ShortcutController",
9224
- "module": "src/common/controllers/ShortcutController.ts"
9225
- }
9226
9333
  },
9227
9334
  {
9228
- "kind": "js",
9229
- "name": "ShortcutMap",
9230
- "declaration": {
9231
- "name": "KeyBindingMap",
9232
- "module": "src/common/controllers/ShortcutController.ts"
9233
- }
9234
- }
9235
- ]
9236
- },
9237
- {
9238
- "kind": "javascript-module",
9239
- "path": "src/common/controllers/SlotController.ts",
9240
- "declarations": [
9241
- {
9242
- "kind": "class",
9335
+ "kind": "mixin",
9243
9336
  "description": "",
9244
- "name": "SlotController",
9337
+ "name": "FormAssociatedMixin",
9245
9338
  "members": [
9246
9339
  {
9247
- "kind": "method",
9248
- "name": "hostConnected"
9340
+ "kind": "field",
9341
+ "name": "labelSlot",
9342
+ "privacy": "protected",
9343
+ "default": "new SlotController(this, \"label\")"
9249
9344
  },
9250
9345
  {
9251
- "kind": "method",
9252
- "name": "hostDisconnected"
9346
+ "kind": "field",
9347
+ "name": "errorSlot",
9348
+ "privacy": "protected",
9349
+ "default": "new SlotController(this, \"error\")"
9253
9350
  },
9254
9351
  {
9255
9352
  "kind": "field",
9256
- "name": "hasContent"
9353
+ "name": "hintSlot",
9354
+ "privacy": "protected",
9355
+ "default": "new SlotController(this, \"hint\")"
9257
9356
  },
9258
9357
  {
9259
9358
  "kind": "field",
9260
- "name": "isEmpty"
9359
+ "name": "formData",
9360
+ "privacy": "protected",
9361
+ "default": "new FormDataController(this, { value: () => this.formValue })"
9261
9362
  },
9262
9363
  {
9263
9364
  "kind": "field",
9264
- "name": "content"
9365
+ "name": "formValue",
9366
+ "privacy": "protected"
9265
9367
  },
9266
9368
  {
9267
9369
  "kind": "field",
9268
- "name": "handleSlotChange",
9269
- "privacy": "private"
9370
+ "name": "inputId",
9371
+ "type": {
9372
+ "text": "string"
9373
+ },
9374
+ "privacy": "protected",
9375
+ "default": "\"input\""
9270
9376
  },
9271
9377
  {
9272
- "kind": "method",
9273
- "name": "onChange",
9378
+ "kind": "field",
9379
+ "name": "errorId",
9380
+ "type": {
9381
+ "text": "string"
9382
+ },
9274
9383
  "privacy": "protected",
9275
- "parameters": [
9276
- {
9277
- "name": "_e",
9278
- "type": {
9279
- "text": "Event"
9280
- }
9281
- }
9282
- ]
9384
+ "default": "\"error\""
9283
9385
  },
9284
9386
  {
9285
9387
  "kind": "field",
9286
- "name": "host",
9287
- "default": "host"
9388
+ "name": "hintId",
9389
+ "type": {
9390
+ "text": "string"
9391
+ },
9392
+ "privacy": "protected",
9393
+ "default": "\"hint\""
9288
9394
  },
9289
9395
  {
9290
9396
  "kind": "field",
9291
- "name": "slotName",
9292
- "default": "slotName"
9293
- }
9294
- ]
9295
- }
9296
- ],
9297
- "exports": [
9298
- {
9299
- "kind": "js",
9300
- "name": "SlotController",
9301
- "declaration": {
9302
- "name": "SlotController",
9303
- "module": "src/common/controllers/SlotController.ts"
9304
- }
9305
- }
9306
- ]
9307
- },
9308
- {
9309
- "kind": "javascript-module",
9310
- "path": "src/common/controllers/SwipeController.ts",
9311
- "declarations": [
9312
- {
9313
- "kind": "class",
9314
- "description": "",
9315
- "name": "SwipeController",
9316
- "members": [
9397
+ "name": "label",
9398
+ "type": {
9399
+ "text": "string"
9400
+ },
9401
+ "default": "\"\"",
9402
+ "description": "Label for the input.",
9403
+ "attribute": "label"
9404
+ },
9317
9405
  {
9318
9406
  "kind": "field",
9319
- "name": "host",
9407
+ "name": "hint",
9320
9408
  "type": {
9321
- "text": "ReactiveElement"
9409
+ "text": "string | undefined"
9322
9410
  },
9323
- "privacy": "private",
9324
- "default": "host"
9411
+ "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
9412
+ "attribute": "hint"
9325
9413
  },
9326
9414
  {
9327
9415
  "kind": "field",
9328
- "name": "attached",
9416
+ "name": "hideLabel",
9329
9417
  "type": {
9330
9418
  "text": "boolean"
9331
9419
  },
9332
- "privacy": "private",
9333
- "default": "false"
9420
+ "default": "false",
9421
+ "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
9422
+ "attribute": "hide-label"
9334
9423
  },
9335
9424
  {
9336
9425
  "kind": "field",
9337
- "name": "initialTouchX",
9426
+ "name": "placeholder",
9338
9427
  "type": {
9339
- "text": "number"
9428
+ "text": "string | undefined"
9340
9429
  },
9341
- "privacy": "private",
9342
- "default": "0"
9430
+ "description": "Placeholder text to display within the input.",
9431
+ "attribute": "placeholder"
9343
9432
  },
9344
9433
  {
9345
9434
  "kind": "field",
9346
- "name": "initialTouchY",
9435
+ "name": "error",
9347
9436
  "type": {
9348
- "text": "number"
9437
+ "text": "string | undefined"
9349
9438
  },
9350
- "privacy": "private",
9351
- "default": "0"
9439
+ "description": "Optional error to be shown with the input. Alternatively use the error slot.",
9440
+ "attribute": "error"
9352
9441
  },
9353
9442
  {
9354
9443
  "kind": "field",
9355
- "name": "target",
9444
+ "name": "required",
9356
9445
  "type": {
9357
- "text": "() => HTMLElement"
9446
+ "text": "boolean"
9358
9447
  },
9359
- "privacy": "private"
9448
+ "default": "false",
9449
+ "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.",
9450
+ "attribute": "required"
9360
9451
  },
9361
9452
  {
9362
9453
  "kind": "field",
9363
- "name": "onSwipeEnd",
9454
+ "name": "expand",
9364
9455
  "type": {
9365
- "text": "SwipeControllerOptions[\"onSwipeEnd\"]"
9456
+ "text": "boolean"
9366
9457
  },
9367
- "privacy": "private"
9458
+ "default": "false",
9459
+ "description": "Controls whether the input expands to fill the width of its container.",
9460
+ "attribute": "expand",
9461
+ "reflects": true
9368
9462
  },
9369
9463
  {
9370
- "kind": "field",
9371
- "name": "matchesGesture",
9372
- "type": {
9373
- "text": "SwipeControllerOptions[\"matchesGesture\"]"
9374
- }
9464
+ "kind": "method",
9465
+ "name": "handleInput",
9466
+ "privacy": "protected",
9467
+ "parameters": [
9468
+ {
9469
+ "name": "e",
9470
+ "type": {
9471
+ "text": "Event"
9472
+ }
9473
+ }
9474
+ ]
9375
9475
  },
9376
9476
  {
9377
9477
  "kind": "method",
9378
- "name": "hostUpdated"
9478
+ "name": "handleChange",
9479
+ "privacy": "protected",
9480
+ "parameters": [
9481
+ {
9482
+ "name": "e",
9483
+ "type": {
9484
+ "text": "Event"
9485
+ }
9486
+ }
9487
+ ]
9379
9488
  },
9380
9489
  {
9381
9490
  "kind": "method",
9382
- "name": "hostDisconnected"
9491
+ "name": "renderLabel",
9492
+ "privacy": "protected"
9493
+ },
9494
+ {
9495
+ "kind": "method",
9496
+ "name": "renderError",
9497
+ "privacy": "protected"
9498
+ },
9499
+ {
9500
+ "kind": "method",
9501
+ "name": "getDescribedBy",
9502
+ "privacy": "protected"
9503
+ },
9504
+ {
9505
+ "kind": "method",
9506
+ "name": "getInvalid",
9507
+ "privacy": "protected"
9383
9508
  },
9384
9509
  {
9385
9510
  "kind": "field",
9386
- "name": "handleTouchStart",
9387
- "privacy": "private"
9511
+ "name": "hasHint",
9512
+ "privacy": "protected"
9388
9513
  },
9389
9514
  {
9390
9515
  "kind": "field",
9391
- "name": "handleTouchEnd",
9392
- "privacy": "private"
9516
+ "name": "hasError",
9517
+ "privacy": "protected"
9393
9518
  }
9394
- ]
9395
- },
9396
- {
9397
- "kind": "function",
9398
- "name": "isHorizontalSwipe",
9399
- "parameters": [
9519
+ ],
9520
+ "events": [
9400
9521
  {
9401
- "name": "{ distX, distY }",
9522
+ "name": "input",
9402
9523
  "type": {
9403
- "text": "SwipeDetails"
9404
- }
9524
+ "text": "NordEvent"
9525
+ },
9526
+ "description": "Fired as the user types into the input."
9527
+ },
9528
+ {
9529
+ "name": "change",
9530
+ "type": {
9531
+ "text": "NordEvent"
9532
+ },
9533
+ "description": "Fired whenever the input's value is changed via user interaction."
9405
9534
  }
9406
- ]
9407
- },
9408
- {
9409
- "kind": "function",
9410
- "name": "isDownwardsSwipe",
9535
+ ],
9536
+ "attributes": [
9537
+ {
9538
+ "name": "label",
9539
+ "type": {
9540
+ "text": "string"
9541
+ },
9542
+ "default": "\"\"",
9543
+ "description": "Label for the input.",
9544
+ "fieldName": "label"
9545
+ },
9546
+ {
9547
+ "name": "hint",
9548
+ "type": {
9549
+ "text": "string | undefined"
9550
+ },
9551
+ "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
9552
+ "fieldName": "hint"
9553
+ },
9554
+ {
9555
+ "name": "hide-label",
9556
+ "type": {
9557
+ "text": "boolean"
9558
+ },
9559
+ "default": "false",
9560
+ "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
9561
+ "fieldName": "hideLabel"
9562
+ },
9563
+ {
9564
+ "name": "placeholder",
9565
+ "type": {
9566
+ "text": "string | undefined"
9567
+ },
9568
+ "description": "Placeholder text to display within the input.",
9569
+ "fieldName": "placeholder"
9570
+ },
9571
+ {
9572
+ "name": "error",
9573
+ "type": {
9574
+ "text": "string | undefined"
9575
+ },
9576
+ "description": "Optional error to be shown with the input. Alternatively use the error slot.",
9577
+ "fieldName": "error"
9578
+ },
9579
+ {
9580
+ "name": "required",
9581
+ "type": {
9582
+ "text": "boolean"
9583
+ },
9584
+ "default": "false",
9585
+ "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.",
9586
+ "fieldName": "required"
9587
+ },
9588
+ {
9589
+ "name": "expand",
9590
+ "type": {
9591
+ "text": "boolean"
9592
+ },
9593
+ "default": "false",
9594
+ "description": "Controls whether the input expands to fill the width of its container.",
9595
+ "fieldName": "expand"
9596
+ }
9597
+ ],
9411
9598
  "parameters": [
9412
9599
  {
9413
- "name": "{ distX, distY }",
9600
+ "name": "superClass",
9414
9601
  "type": {
9415
- "text": "SwipeDetails"
9602
+ "text": "T"
9416
9603
  }
9417
9604
  }
9418
9605
  ]
@@ -9421,232 +9608,218 @@
9421
9608
  "exports": [
9422
9609
  {
9423
9610
  "kind": "js",
9424
- "name": "SwipeController",
9425
- "declaration": {
9426
- "name": "SwipeController",
9427
- "module": "src/common/controllers/SwipeController.ts"
9428
- }
9429
- },
9430
- {
9431
- "kind": "js",
9432
- "name": "isHorizontalSwipe",
9611
+ "name": "FormAssociatedMixinInterface",
9433
9612
  "declaration": {
9434
- "name": "isHorizontalSwipe",
9435
- "module": "src/common/controllers/SwipeController.ts"
9613
+ "name": "FormAssociatedMixinInterface",
9614
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
9436
9615
  }
9437
9616
  },
9438
9617
  {
9439
9618
  "kind": "js",
9440
- "name": "isDownwardsSwipe",
9619
+ "name": "FormAssociatedMixin",
9441
9620
  "declaration": {
9442
- "name": "isDownwardsSwipe",
9443
- "module": "src/common/controllers/SwipeController.ts"
9621
+ "name": "FormAssociatedMixin",
9622
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
9444
9623
  }
9445
9624
  }
9446
9625
  ]
9447
9626
  },
9448
9627
  {
9449
9628
  "kind": "javascript-module",
9450
- "path": "src/common/directives/cond.ts",
9629
+ "path": "src/common/mixins/InputMixin.ts",
9451
9630
  "declarations": [
9452
9631
  {
9453
- "kind": "variable",
9454
- "name": "cond"
9455
- }
9456
- ],
9457
- "exports": [
9458
- {
9459
- "kind": "js",
9460
- "name": "cond",
9461
- "declaration": {
9462
- "name": "cond",
9463
- "module": "src/common/directives/cond.ts"
9464
- }
9465
- }
9466
- ]
9467
- },
9468
- {
9469
- "kind": "javascript-module",
9470
- "path": "src/common/directives/wrapIf.ts",
9471
- "declarations": [
9472
- {
9473
- "kind": "function",
9474
- "name": "wrapIf",
9475
- "return": {
9476
- "type": {
9477
- "text": "TInner"
9478
- }
9479
- },
9480
- "parameters": [
9481
- {
9482
- "name": "condition",
9483
- "type": {
9484
- "text": "false"
9485
- }
9486
- },
9632
+ "kind": "class",
9633
+ "description": "",
9634
+ "name": "InputMixinInterface",
9635
+ "members": [
9487
9636
  {
9488
- "name": "inner",
9637
+ "kind": "field",
9638
+ "name": "name",
9489
9639
  "type": {
9490
- "text": "() => TInner"
9640
+ "text": "string"
9491
9641
  }
9492
9642
  },
9493
9643
  {
9494
- "name": "wrapper",
9495
- "type": {
9496
- "text": "(inner: TInner) => TWrapper"
9497
- }
9498
- }
9499
- ]
9500
- },
9501
- {
9502
- "kind": "function",
9503
- "name": "wrapIf",
9504
- "return": {
9505
- "type": {
9506
- "text": "TWrapper"
9507
- }
9508
- },
9509
- "parameters": [
9510
- {
9511
- "name": "condition",
9644
+ "kind": "field",
9645
+ "name": "value",
9512
9646
  "type": {
9513
- "text": "true"
9647
+ "text": "string"
9514
9648
  }
9515
9649
  },
9516
9650
  {
9517
- "name": "inner",
9651
+ "kind": "field",
9652
+ "name": "disabled",
9518
9653
  "type": {
9519
- "text": "() => TInner"
9654
+ "text": "boolean"
9520
9655
  }
9521
9656
  },
9522
9657
  {
9523
- "name": "wrapper",
9658
+ "kind": "field",
9659
+ "name": "form",
9524
9660
  "type": {
9525
- "text": "(inner: TInner) => TWrapper"
9661
+ "text": "HTMLFormElement | undefined"
9526
9662
  }
9527
9663
  }
9528
9664
  ]
9529
9665
  },
9530
9666
  {
9531
- "kind": "function",
9532
- "name": "wrapIf",
9533
- "return": {
9534
- "type": {
9535
- "text": "TInner | TWrapper"
9536
- }
9537
- },
9538
- "parameters": [
9667
+ "kind": "mixin",
9668
+ "description": "",
9669
+ "name": "InputMixin",
9670
+ "members": [
9539
9671
  {
9540
- "name": "condition",
9672
+ "kind": "field",
9673
+ "name": "disabled",
9541
9674
  "type": {
9542
- "text": "unknown"
9543
- }
9675
+ "text": "boolean"
9676
+ },
9677
+ "default": "false",
9678
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
9679
+ "attribute": "disabled",
9680
+ "reflects": true
9544
9681
  },
9545
9682
  {
9546
- "name": "inner",
9683
+ "kind": "field",
9684
+ "name": "name",
9547
9685
  "type": {
9548
- "text": "() => TInner"
9549
- }
9686
+ "text": "string | undefined"
9687
+ },
9688
+ "description": "The name of the form component.",
9689
+ "attribute": "name"
9550
9690
  },
9551
9691
  {
9552
- "name": "wrapper",
9692
+ "kind": "field",
9693
+ "name": "value",
9553
9694
  "type": {
9554
- "text": "(inner: TInner) => TWrapper"
9555
- }
9695
+ "text": "string"
9696
+ },
9697
+ "default": "\"\"",
9698
+ "description": "The value of the form component.",
9699
+ "attribute": "value"
9700
+ },
9701
+ {
9702
+ "kind": "field",
9703
+ "name": "form",
9704
+ "privacy": "protected",
9705
+ "description": "Gets the form, if any, associated with the form element."
9556
9706
  }
9557
- ]
9558
- },
9559
- {
9560
- "kind": "function",
9561
- "name": "wrapIf",
9562
- "parameters": [
9707
+ ],
9708
+ "attributes": [
9563
9709
  {
9564
- "name": "condition",
9710
+ "name": "disabled",
9565
9711
  "type": {
9566
- "text": "any"
9567
- }
9712
+ "text": "boolean"
9713
+ },
9714
+ "default": "false",
9715
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
9716
+ "fieldName": "disabled"
9568
9717
  },
9569
9718
  {
9570
- "name": "inner",
9719
+ "name": "name",
9571
9720
  "type": {
9572
- "text": "() => TInner"
9573
- }
9721
+ "text": "string | undefined"
9722
+ },
9723
+ "description": "The name of the form component.",
9724
+ "fieldName": "name"
9574
9725
  },
9575
9726
  {
9576
- "name": "wrapper",
9727
+ "name": "value",
9577
9728
  "type": {
9578
- "text": "(innards: TInner) => TWrapper"
9579
- }
9729
+ "text": "string"
9730
+ },
9731
+ "default": "\"\"",
9732
+ "description": "The value of the form component.",
9733
+ "fieldName": "value"
9580
9734
  }
9581
9735
  ],
9582
- "return": {
9583
- "type": {
9584
- "text": ""
9736
+ "parameters": [
9737
+ {
9738
+ "name": "superClass",
9739
+ "type": {
9740
+ "text": "T"
9741
+ }
9585
9742
  }
9586
- }
9743
+ ]
9587
9744
  }
9588
9745
  ],
9589
9746
  "exports": [
9590
9747
  {
9591
9748
  "kind": "js",
9592
- "name": "wrapIf",
9593
- "declaration": {
9594
- "name": "wrapIf",
9595
- "module": "src/common/directives/wrapIf.ts"
9596
- }
9597
- },
9598
- {
9599
- "kind": "js",
9600
- "name": "wrapIf",
9601
- "declaration": {
9602
- "name": "wrapIf",
9603
- "module": "src/common/directives/wrapIf.ts"
9604
- }
9605
- },
9606
- {
9607
- "kind": "js",
9608
- "name": "wrapIf",
9749
+ "name": "InputMixinInterface",
9609
9750
  "declaration": {
9610
- "name": "wrapIf",
9611
- "module": "src/common/directives/wrapIf.ts"
9751
+ "name": "InputMixinInterface",
9752
+ "module": "src/common/mixins/InputMixin.ts"
9612
9753
  }
9613
9754
  },
9614
9755
  {
9615
9756
  "kind": "js",
9616
- "name": "wrapIf",
9757
+ "name": "InputMixin",
9617
9758
  "declaration": {
9618
- "name": "wrapIf",
9619
- "module": "src/common/directives/wrapIf.ts"
9759
+ "name": "InputMixin",
9760
+ "module": "src/common/mixins/InputMixin.ts"
9620
9761
  }
9621
9762
  }
9622
9763
  ]
9623
9764
  },
9624
9765
  {
9625
9766
  "kind": "javascript-module",
9626
- "path": "src/common/mixins/DraftComponentMixin.ts",
9767
+ "path": "src/common/controllers/DirectionController.ts",
9627
9768
  "declarations": [
9628
9769
  {
9629
- "kind": "mixin",
9770
+ "kind": "class",
9630
9771
  "description": "",
9631
- "name": "DraftComponentMixin",
9772
+ "name": "DirectionController",
9632
9773
  "members": [
9633
9774
  {
9634
9775
  "kind": "field",
9635
- "name": "_warningLogged",
9776
+ "name": "hosts",
9777
+ "privacy": "private",
9778
+ "static": true,
9779
+ "default": "new Set<ReactiveControllerHost>()"
9780
+ },
9781
+ {
9782
+ "kind": "field",
9783
+ "name": "observer",
9636
9784
  "type": {
9637
- "text": "boolean"
9785
+ "text": "MutationObserver | undefined"
9638
9786
  },
9639
9787
  "privacy": "private",
9640
- "static": true,
9641
- "default": "false"
9642
- }
9643
- ],
9644
- "parameters": [
9788
+ "static": true
9789
+ },
9645
9790
  {
9646
- "name": "superClass",
9791
+ "kind": "field",
9792
+ "name": "dir",
9647
9793
  "type": {
9648
- "text": "T"
9794
+ "text": "WritingDirection"
9649
9795
  }
9796
+ },
9797
+ {
9798
+ "kind": "field",
9799
+ "name": "isLTR"
9800
+ },
9801
+ {
9802
+ "kind": "field",
9803
+ "name": "isRTL"
9804
+ },
9805
+ {
9806
+ "kind": "method",
9807
+ "name": "hostConnected"
9808
+ },
9809
+ {
9810
+ "kind": "method",
9811
+ "name": "hostDisconnected"
9812
+ },
9813
+ {
9814
+ "kind": "method",
9815
+ "name": "observe",
9816
+ "privacy": "private",
9817
+ "static": true
9818
+ },
9819
+ {
9820
+ "kind": "field",
9821
+ "name": "host",
9822
+ "default": "host"
9650
9823
  }
9651
9824
  ]
9652
9825
  }
@@ -9654,111 +9827,210 @@
9654
9827
  "exports": [
9655
9828
  {
9656
9829
  "kind": "js",
9657
- "name": "DraftComponentMixin",
9830
+ "name": "DirectionController",
9658
9831
  "declaration": {
9659
- "name": "DraftComponentMixin",
9660
- "module": "src/common/mixins/DraftComponentMixin.ts"
9832
+ "name": "DirectionController",
9833
+ "module": "src/common/controllers/DirectionController.ts"
9661
9834
  }
9662
9835
  }
9663
9836
  ]
9664
9837
  },
9665
9838
  {
9666
9839
  "kind": "javascript-module",
9667
- "path": "src/common/mixins/FocusableMixin.ts",
9840
+ "path": "src/common/controllers/EventController.ts",
9668
9841
  "declarations": [
9669
9842
  {
9670
9843
  "kind": "class",
9671
9844
  "description": "",
9672
- "name": "FocusableMixinInterface",
9845
+ "name": "EventController",
9673
9846
  "members": [
9674
9847
  {
9675
9848
  "kind": "field",
9676
- "name": "focusableRef",
9849
+ "name": "listeners",
9677
9850
  "type": {
9678
- "text": "Ref<HTMLElement>"
9851
+ "text": "Array<() => void>"
9679
9852
  },
9680
- "privacy": "protected"
9853
+ "privacy": "private",
9854
+ "default": "[]"
9681
9855
  },
9682
9856
  {
9683
9857
  "kind": "method",
9684
- "name": "focus",
9858
+ "name": "hostDisconnected"
9859
+ },
9860
+ {
9861
+ "kind": "method",
9862
+ "name": "listen",
9685
9863
  "return": {
9686
9864
  "type": {
9687
9865
  "text": "void"
9688
9866
  }
9689
9867
  },
9690
9868
  "parameters": [
9869
+ {
9870
+ "name": "window",
9871
+ "type": {
9872
+ "text": "Window"
9873
+ }
9874
+ },
9875
+ {
9876
+ "name": "type",
9877
+ "type": {
9878
+ "text": "K"
9879
+ }
9880
+ },
9881
+ {
9882
+ "name": "listener",
9883
+ "type": {
9884
+ "text": "(this: Window, ev: WindowEventMap[K]) => any"
9885
+ }
9886
+ },
9691
9887
  {
9692
9888
  "name": "options",
9693
9889
  "optional": true,
9694
9890
  "type": {
9695
- "text": "FocusOptions"
9891
+ "text": "boolean | AddEventListenerOptions"
9696
9892
  }
9697
9893
  }
9698
9894
  ]
9699
9895
  },
9700
9896
  {
9701
9897
  "kind": "method",
9702
- "name": "blur",
9898
+ "name": "listen",
9703
9899
  "return": {
9704
9900
  "type": {
9705
9901
  "text": "void"
9706
9902
  }
9707
- }
9903
+ },
9904
+ "parameters": [
9905
+ {
9906
+ "name": "document",
9907
+ "type": {
9908
+ "text": "Document"
9909
+ }
9910
+ },
9911
+ {
9912
+ "name": "type",
9913
+ "type": {
9914
+ "text": "K"
9915
+ }
9916
+ },
9917
+ {
9918
+ "name": "listener",
9919
+ "type": {
9920
+ "text": "(this: Document, ev: DocumentEventMap[K]) => any"
9921
+ }
9922
+ },
9923
+ {
9924
+ "name": "options",
9925
+ "optional": true,
9926
+ "type": {
9927
+ "text": "boolean | AddEventListenerOptions"
9928
+ }
9929
+ }
9930
+ ]
9708
9931
  },
9709
9932
  {
9710
9933
  "kind": "method",
9711
- "name": "click",
9934
+ "name": "listen",
9712
9935
  "return": {
9713
9936
  "type": {
9714
9937
  "text": "void"
9715
9938
  }
9716
- }
9717
- }
9718
- ]
9719
- },
9720
- {
9721
- "kind": "mixin",
9722
- "description": "",
9723
- "name": "FocusableMixin",
9724
- "members": [
9725
- {
9726
- "kind": "field",
9727
- "name": "focusableRef",
9728
- "privacy": "protected"
9729
- },
9730
- {
9731
- "kind": "method",
9732
- "name": "focus",
9939
+ },
9733
9940
  "parameters": [
9941
+ {
9942
+ "name": "element",
9943
+ "type": {
9944
+ "text": "HTMLElement"
9945
+ }
9946
+ },
9947
+ {
9948
+ "name": "type",
9949
+ "type": {
9950
+ "text": "K"
9951
+ }
9952
+ },
9953
+ {
9954
+ "name": "listener",
9955
+ "type": {
9956
+ "text": "(this: HTMLElement, ev: HTMLElementEventMap[K]) => any"
9957
+ }
9958
+ },
9734
9959
  {
9735
9960
  "name": "options",
9736
9961
  "optional": true,
9737
9962
  "type": {
9738
- "text": "FocusOptions"
9739
- },
9740
- "description": "An object which controls aspects of the focusing process."
9963
+ "text": "boolean | AddEventListenerOptions"
9964
+ }
9741
9965
  }
9742
- ],
9743
- "description": "Programmatically move focus to the component."
9966
+ ]
9744
9967
  },
9745
9968
  {
9746
9969
  "kind": "method",
9747
- "name": "blur",
9748
- "description": "Programmatically remove focus from the component."
9970
+ "name": "listen",
9971
+ "return": {
9972
+ "type": {
9973
+ "text": "void"
9974
+ }
9975
+ },
9976
+ "parameters": [
9977
+ {
9978
+ "name": "element",
9979
+ "type": {
9980
+ "text": "ShadowRoot"
9981
+ }
9982
+ },
9983
+ {
9984
+ "name": "type",
9985
+ "type": {
9986
+ "text": "K"
9987
+ }
9988
+ },
9989
+ {
9990
+ "name": "listener",
9991
+ "type": {
9992
+ "text": "(this: ShadowRoot, ev: ShadowRootEventMap[K]) => any"
9993
+ }
9994
+ },
9995
+ {
9996
+ "name": "options",
9997
+ "optional": true,
9998
+ "type": {
9999
+ "text": "boolean | AddEventListenerOptions"
10000
+ }
10001
+ }
10002
+ ]
9749
10003
  },
9750
10004
  {
9751
10005
  "kind": "method",
9752
- "name": "click",
9753
- "description": "Programmatically simulates a click on the component."
9754
- }
9755
- ],
9756
- "parameters": [
9757
- {
9758
- "name": "superClass",
9759
- "type": {
9760
- "text": "T"
9761
- }
10006
+ "name": "listen",
10007
+ "parameters": [
10008
+ {
10009
+ "name": "element",
10010
+ "type": {
10011
+ "text": "Window | Document | HTMLElement | ShadowRoot"
10012
+ }
10013
+ },
10014
+ {
10015
+ "name": "type",
10016
+ "type": {
10017
+ "text": "string"
10018
+ }
10019
+ },
10020
+ {
10021
+ "name": "listener",
10022
+ "type": {
10023
+ "text": "(ev: any) => any"
10024
+ }
10025
+ },
10026
+ {
10027
+ "name": "options",
10028
+ "optional": true,
10029
+ "type": {
10030
+ "text": "boolean | AddEventListenerOptions"
10031
+ }
10032
+ }
10033
+ ]
9762
10034
  }
9763
10035
  ]
9764
10036
  }
@@ -9766,508 +10038,440 @@
9766
10038
  "exports": [
9767
10039
  {
9768
10040
  "kind": "js",
9769
- "name": "FocusableMixinInterface",
9770
- "declaration": {
9771
- "name": "FocusableMixinInterface",
9772
- "module": "src/common/mixins/FocusableMixin.ts"
9773
- }
9774
- },
9775
- {
9776
- "kind": "js",
9777
- "name": "FocusableMixin",
10041
+ "name": "EventController",
9778
10042
  "declaration": {
9779
- "name": "FocusableMixin",
9780
- "module": "src/common/mixins/FocusableMixin.ts"
10043
+ "name": "EventController",
10044
+ "module": "src/common/controllers/EventController.ts"
9781
10045
  }
9782
10046
  }
9783
10047
  ]
9784
10048
  },
9785
10049
  {
9786
10050
  "kind": "javascript-module",
9787
- "path": "src/common/mixins/FormAssociatedMixin.ts",
10051
+ "path": "src/common/controllers/FormDataController.ts",
9788
10052
  "declarations": [
9789
10053
  {
9790
10054
  "kind": "class",
9791
10055
  "description": "",
9792
- "name": "FormAssociatedMixinInterface",
10056
+ "name": "FormDataController",
9793
10057
  "members": [
9794
10058
  {
9795
10059
  "kind": "field",
9796
- "name": "label",
10060
+ "name": "events",
9797
10061
  "type": {
9798
- "text": "string"
9799
- }
10062
+ "text": "EventController"
10063
+ },
10064
+ "privacy": "private",
10065
+ "default": "new EventController(host)"
9800
10066
  },
9801
10067
  {
9802
- "kind": "field",
9803
- "name": "required",
9804
- "type": {
9805
- "text": "boolean"
9806
- }
10068
+ "kind": "method",
10069
+ "name": "hostConnected"
9807
10070
  },
9808
10071
  {
9809
10072
  "kind": "field",
9810
- "name": "hint",
9811
- "type": {
9812
- "text": "string | undefined"
9813
- }
10073
+ "name": "handleFormData",
10074
+ "privacy": "private"
9814
10075
  },
9815
10076
  {
9816
10077
  "kind": "field",
9817
- "name": "hideLabel",
9818
- "type": {
9819
- "text": "boolean"
9820
- }
10078
+ "name": "host",
10079
+ "default": "host"
9821
10080
  },
9822
10081
  {
9823
10082
  "kind": "field",
9824
- "name": "placeholder",
9825
- "type": {
9826
- "text": "string | undefined"
9827
- }
9828
- },
10083
+ "name": "options",
10084
+ "default": "options"
10085
+ }
10086
+ ]
10087
+ }
10088
+ ],
10089
+ "exports": [
10090
+ {
10091
+ "kind": "js",
10092
+ "name": "FormDataController",
10093
+ "declaration": {
10094
+ "name": "FormDataController",
10095
+ "module": "src/common/controllers/FormDataController.ts"
10096
+ }
10097
+ }
10098
+ ]
10099
+ },
10100
+ {
10101
+ "kind": "javascript-module",
10102
+ "path": "src/common/controllers/LightDismissController.ts",
10103
+ "declarations": [
10104
+ {
10105
+ "kind": "class",
10106
+ "description": "",
10107
+ "name": "LightDismissController",
10108
+ "members": [
9829
10109
  {
9830
10110
  "kind": "field",
9831
- "name": "error",
10111
+ "name": "shortcut",
9832
10112
  "type": {
9833
- "text": "string | undefined"
9834
- }
10113
+ "text": "ShortcutController"
10114
+ },
10115
+ "privacy": "private",
10116
+ "default": "new ShortcutController(this.host, { Escape: this.handleEsc })"
9835
10117
  },
9836
10118
  {
9837
10119
  "kind": "field",
9838
- "name": "expand",
10120
+ "name": "events",
9839
10121
  "type": {
9840
- "text": "boolean"
9841
- }
10122
+ "text": "EventController"
10123
+ },
10124
+ "privacy": "private",
10125
+ "default": "new EventController(host)"
9842
10126
  },
9843
10127
  {
9844
- "kind": "field",
9845
- "name": "inputId",
9846
- "type": {
9847
- "text": "string"
9848
- },
9849
- "privacy": "protected"
10128
+ "kind": "method",
10129
+ "name": "hostConnected"
9850
10130
  },
9851
10131
  {
9852
10132
  "kind": "field",
9853
- "name": "errorId",
9854
- "type": {
9855
- "text": "string"
9856
- },
9857
- "privacy": "protected"
10133
+ "name": "handleEsc",
10134
+ "privacy": "private"
9858
10135
  },
9859
10136
  {
9860
10137
  "kind": "field",
9861
- "name": "hintId",
9862
- "type": {
9863
- "text": "string"
9864
- },
9865
- "privacy": "protected"
10138
+ "name": "handleClickOut",
10139
+ "privacy": "private"
9866
10140
  },
9867
10141
  {
9868
10142
  "kind": "field",
9869
- "name": "labelSlot",
9870
- "type": {
9871
- "text": "SlotController"
9872
- },
9873
- "privacy": "protected"
10143
+ "name": "host",
10144
+ "default": "host"
9874
10145
  },
9875
10146
  {
9876
10147
  "kind": "field",
9877
- "name": "hintSlot",
9878
- "type": {
9879
- "text": "SlotController"
9880
- },
9881
- "privacy": "protected"
9882
- },
10148
+ "name": "options",
10149
+ "default": "options"
10150
+ }
10151
+ ]
10152
+ }
10153
+ ],
10154
+ "exports": [
10155
+ {
10156
+ "kind": "js",
10157
+ "name": "LightDismissController",
10158
+ "declaration": {
10159
+ "name": "LightDismissController",
10160
+ "module": "src/common/controllers/LightDismissController.ts"
10161
+ }
10162
+ }
10163
+ ]
10164
+ },
10165
+ {
10166
+ "kind": "javascript-module",
10167
+ "path": "src/common/controllers/LightDomController.ts",
10168
+ "declarations": [
10169
+ {
10170
+ "kind": "class",
10171
+ "description": "",
10172
+ "name": "LightDomController",
10173
+ "members": [
9883
10174
  {
9884
10175
  "kind": "field",
9885
- "name": "errorSlot",
10176
+ "name": "container",
9886
10177
  "type": {
9887
- "text": "SlotController"
10178
+ "text": "HTMLElement"
9888
10179
  },
9889
- "privacy": "protected"
10180
+ "privacy": "private"
9890
10181
  },
9891
10182
  {
9892
- "kind": "field",
9893
- "name": "formData",
9894
- "type": {
9895
- "text": "FormDataController"
9896
- },
9897
- "privacy": "protected"
10183
+ "kind": "method",
10184
+ "name": "hostUpdated"
10185
+ },
10186
+ {
10187
+ "kind": "method",
10188
+ "name": "hostDisconnected"
9898
10189
  },
9899
10190
  {
9900
10191
  "kind": "field",
9901
- "name": "formValue",
9902
- "type": {
9903
- "text": "string | undefined"
9904
- },
9905
- "privacy": "protected"
10192
+ "name": "host",
10193
+ "default": "host"
9906
10194
  },
9907
10195
  {
9908
10196
  "kind": "field",
9909
- "name": "hasError",
10197
+ "name": "options",
10198
+ "default": "options"
10199
+ }
10200
+ ]
10201
+ }
10202
+ ],
10203
+ "exports": [
10204
+ {
10205
+ "kind": "js",
10206
+ "name": "LightDomController",
10207
+ "declaration": {
10208
+ "name": "LightDomController",
10209
+ "module": "src/common/controllers/LightDomController.ts"
10210
+ }
10211
+ }
10212
+ ]
10213
+ },
10214
+ {
10215
+ "kind": "javascript-module",
10216
+ "path": "src/common/controllers/LightSlotController.ts",
10217
+ "declarations": [
10218
+ {
10219
+ "kind": "class",
10220
+ "description": "Handles cases where a component needs to render to light DOM,\nand potentially sync component properties to user-supplied content.",
10221
+ "name": "LightSlotController",
10222
+ "members": [
10223
+ {
10224
+ "kind": "field",
10225
+ "name": "renderHook",
9910
10226
  "type": {
9911
- "text": "boolean"
10227
+ "text": "Comment"
9912
10228
  },
9913
- "privacy": "protected"
10229
+ "privacy": "private"
9914
10230
  },
9915
10231
  {
9916
10232
  "kind": "field",
9917
- "name": "hasHint",
10233
+ "name": "lightDom",
9918
10234
  "type": {
9919
- "text": "boolean"
10235
+ "text": "LightDomController"
9920
10236
  },
9921
- "privacy": "protected"
10237
+ "privacy": "private",
10238
+ "default": "new LightDomController(host, {\n render: () => (this.hasContent ? nothing : this.options.render()),\n renderOptions: { renderBefore: this.renderHook },\n })"
9922
10239
  },
9923
10240
  {
9924
10241
  "kind": "method",
9925
- "name": "handleChange",
9926
- "privacy": "protected",
9927
- "return": {
9928
- "type": {
9929
- "text": "void"
9930
- }
9931
- },
9932
- "parameters": [
9933
- {
9934
- "name": "e",
9935
- "type": {
9936
- "text": "Event"
9937
- }
9938
- }
9939
- ]
10242
+ "name": "hostConnected",
10243
+ "inheritedFrom": {
10244
+ "name": "SlotController",
10245
+ "module": "src/common/controllers/SlotController.ts"
10246
+ }
9940
10247
  },
9941
10248
  {
9942
10249
  "kind": "method",
9943
- "name": "handleInput",
10250
+ "name": "hostDisconnected"
10251
+ },
10252
+ {
10253
+ "kind": "field",
10254
+ "name": "onChange",
9944
10255
  "privacy": "protected",
9945
- "return": {
9946
- "type": {
9947
- "text": "void"
9948
- }
9949
- },
9950
10256
  "parameters": [
9951
10257
  {
9952
- "name": "e",
10258
+ "name": "_e",
9953
10259
  "type": {
9954
10260
  "text": "Event"
9955
10261
  }
9956
10262
  }
9957
- ]
9958
- },
9959
- {
9960
- "kind": "method",
9961
- "name": "renderLabel",
9962
- "privacy": "protected",
9963
- "return": {
9964
- "type": {
9965
- "text": "TemplateResult"
9966
- }
9967
- }
9968
- },
9969
- {
9970
- "kind": "method",
9971
- "name": "renderError",
9972
- "privacy": "protected",
9973
- "return": {
9974
- "type": {
9975
- "text": "TemplateResult"
9976
- }
9977
- }
9978
- },
9979
- {
9980
- "kind": "method",
9981
- "name": "getDescribedBy",
9982
- "privacy": "protected",
9983
- "return": {
9984
- "type": {
9985
- "text": "string | undefined"
9986
- }
10263
+ ],
10264
+ "inheritedFrom": {
10265
+ "name": "SlotController",
10266
+ "module": "src/common/controllers/SlotController.ts"
9987
10267
  }
9988
10268
  },
9989
10269
  {
9990
10270
  "kind": "method",
9991
- "name": "getInvalid",
9992
- "privacy": "protected",
9993
- "return": {
9994
- "type": {
9995
- "text": "\"true\" | undefined"
9996
- }
9997
- }
9998
- }
9999
- ]
10000
- },
10001
- {
10002
- "kind": "mixin",
10003
- "description": "",
10004
- "name": "FormAssociatedMixin",
10005
- "members": [
10006
- {
10007
- "kind": "field",
10008
- "name": "labelSlot",
10009
- "privacy": "protected",
10010
- "default": "new SlotController(this, \"label\")"
10011
- },
10012
- {
10013
- "kind": "field",
10014
- "name": "errorSlot",
10015
- "privacy": "protected",
10016
- "default": "new SlotController(this, \"error\")"
10017
- },
10018
- {
10019
- "kind": "field",
10020
- "name": "hintSlot",
10021
- "privacy": "protected",
10022
- "default": "new SlotController(this, \"hint\")"
10023
- },
10024
- {
10025
- "kind": "field",
10026
- "name": "formData",
10027
- "privacy": "protected",
10028
- "default": "new FormDataController(this, { value: () => this.formValue })"
10029
- },
10030
- {
10031
- "kind": "field",
10032
- "name": "formValue",
10033
- "privacy": "protected"
10271
+ "name": "syncLightDom",
10272
+ "privacy": "private"
10034
10273
  },
10035
10274
  {
10036
10275
  "kind": "field",
10037
- "name": "inputId",
10038
- "type": {
10039
- "text": "string"
10040
- },
10041
- "privacy": "protected",
10042
- "default": "\"input\""
10276
+ "name": "options",
10277
+ "default": "options"
10043
10278
  },
10044
10279
  {
10045
10280
  "kind": "field",
10046
- "name": "errorId",
10281
+ "name": "events",
10047
10282
  "type": {
10048
- "text": "string"
10283
+ "text": "EventController"
10049
10284
  },
10050
- "privacy": "protected",
10051
- "default": "\"error\""
10285
+ "privacy": "private",
10286
+ "default": "new EventController(host)",
10287
+ "inheritedFrom": {
10288
+ "name": "SlotController",
10289
+ "module": "src/common/controllers/SlotController.ts"
10290
+ }
10052
10291
  },
10053
10292
  {
10054
10293
  "kind": "field",
10055
- "name": "hintId",
10056
- "type": {
10057
- "text": "string"
10058
- },
10059
- "privacy": "protected",
10060
- "default": "\"hint\""
10294
+ "name": "hasContent",
10295
+ "inheritedFrom": {
10296
+ "name": "SlotController",
10297
+ "module": "src/common/controllers/SlotController.ts"
10298
+ }
10061
10299
  },
10062
10300
  {
10063
10301
  "kind": "field",
10064
- "name": "label",
10065
- "type": {
10066
- "text": "string"
10067
- },
10068
- "default": "\"\"",
10069
- "description": "Label for the input.",
10070
- "attribute": "label"
10302
+ "name": "isEmpty",
10303
+ "inheritedFrom": {
10304
+ "name": "SlotController",
10305
+ "module": "src/common/controllers/SlotController.ts"
10306
+ }
10071
10307
  },
10072
10308
  {
10073
10309
  "kind": "field",
10074
- "name": "hint",
10075
- "type": {
10076
- "text": "string | undefined"
10077
- },
10078
- "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
10079
- "attribute": "hint"
10310
+ "name": "content",
10311
+ "inheritedFrom": {
10312
+ "name": "SlotController",
10313
+ "module": "src/common/controllers/SlotController.ts"
10314
+ }
10080
10315
  },
10081
10316
  {
10082
10317
  "kind": "field",
10083
- "name": "hideLabel",
10084
- "type": {
10085
- "text": "boolean"
10086
- },
10087
- "default": "false",
10088
- "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
10089
- "attribute": "hide-label"
10318
+ "name": "handleSlotChange",
10319
+ "privacy": "private",
10320
+ "inheritedFrom": {
10321
+ "name": "SlotController",
10322
+ "module": "src/common/controllers/SlotController.ts"
10323
+ }
10090
10324
  },
10091
10325
  {
10092
10326
  "kind": "field",
10093
- "name": "placeholder",
10094
- "type": {
10095
- "text": "string | undefined"
10096
- },
10097
- "description": "Placeholder text to display within the input.",
10098
- "attribute": "placeholder"
10327
+ "name": "host",
10328
+ "default": "host",
10329
+ "inheritedFrom": {
10330
+ "name": "SlotController",
10331
+ "module": "src/common/controllers/SlotController.ts"
10332
+ }
10099
10333
  },
10100
10334
  {
10101
10335
  "kind": "field",
10102
- "name": "error",
10103
- "type": {
10104
- "text": "string | undefined"
10105
- },
10106
- "description": "Optional error to be shown with the input. Alternatively use the error slot.",
10107
- "attribute": "error"
10108
- },
10336
+ "name": "slotName",
10337
+ "default": "slotName",
10338
+ "inheritedFrom": {
10339
+ "name": "SlotController",
10340
+ "module": "src/common/controllers/SlotController.ts"
10341
+ }
10342
+ }
10343
+ ],
10344
+ "superclass": {
10345
+ "name": "SlotController",
10346
+ "module": "/src/common/controllers/SlotController.js"
10347
+ },
10348
+ "status": null,
10349
+ "category": null
10350
+ }
10351
+ ],
10352
+ "exports": [
10353
+ {
10354
+ "kind": "js",
10355
+ "name": "LightSlotController",
10356
+ "declaration": {
10357
+ "name": "LightSlotController",
10358
+ "module": "src/common/controllers/LightSlotController.ts"
10359
+ }
10360
+ }
10361
+ ]
10362
+ },
10363
+ {
10364
+ "kind": "javascript-module",
10365
+ "path": "src/common/controllers/PortalController.ts",
10366
+ "declarations": [
10367
+ {
10368
+ "kind": "class",
10369
+ "description": "",
10370
+ "name": "PortalController",
10371
+ "members": [
10109
10372
  {
10110
10373
  "kind": "field",
10111
- "name": "required",
10374
+ "name": "renderHook",
10112
10375
  "type": {
10113
- "text": "boolean"
10376
+ "text": "Comment"
10114
10377
  },
10115
- "default": "false",
10116
- "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.",
10117
- "attribute": "required"
10378
+ "privacy": "private"
10118
10379
  },
10119
10380
  {
10120
10381
  "kind": "field",
10121
- "name": "expand",
10382
+ "name": "lightDom",
10122
10383
  "type": {
10123
- "text": "boolean"
10384
+ "text": "LightDomController"
10124
10385
  },
10125
- "default": "false",
10126
- "description": "Controls whether the input expands to fill the width of its container.",
10127
- "attribute": "expand",
10128
- "reflects": true
10129
- },
10130
- {
10131
- "kind": "method",
10132
- "name": "handleInput",
10133
- "privacy": "protected",
10134
- "parameters": [
10135
- {
10136
- "name": "e",
10137
- "type": {
10138
- "text": "Event"
10139
- }
10140
- }
10141
- ]
10142
- },
10143
- {
10144
- "kind": "method",
10145
- "name": "handleChange",
10146
- "privacy": "protected",
10147
- "parameters": [
10148
- {
10149
- "name": "e",
10150
- "type": {
10151
- "text": "Event"
10152
- }
10153
- }
10154
- ]
10155
- },
10156
- {
10157
- "kind": "method",
10158
- "name": "renderLabel",
10159
- "privacy": "protected"
10386
+ "privacy": "private",
10387
+ "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 })"
10160
10388
  },
10161
10389
  {
10162
10390
  "kind": "method",
10163
- "name": "renderError",
10164
- "privacy": "protected"
10391
+ "name": "hostConnected"
10165
10392
  },
10166
10393
  {
10167
10394
  "kind": "method",
10168
- "name": "getDescribedBy",
10169
- "privacy": "protected"
10395
+ "name": "hostUpdated"
10170
10396
  },
10171
10397
  {
10172
10398
  "kind": "method",
10173
- "name": "getInvalid",
10174
- "privacy": "protected"
10399
+ "name": "hostDisconnected"
10175
10400
  },
10176
10401
  {
10177
10402
  "kind": "field",
10178
- "name": "hasHint",
10179
- "privacy": "protected"
10403
+ "name": "host",
10404
+ "default": "host"
10180
10405
  },
10181
10406
  {
10182
10407
  "kind": "field",
10183
- "name": "hasError",
10184
- "privacy": "protected"
10185
- }
10186
- ],
10187
- "events": [
10188
- {
10189
- "name": "input",
10190
- "type": {
10191
- "text": "NordEvent"
10192
- },
10193
- "description": "Fired as the user types into the input."
10194
- },
10195
- {
10196
- "name": "change",
10197
- "type": {
10198
- "text": "NordEvent"
10199
- },
10200
- "description": "Fired whenever the input's value is changed via user interaction."
10408
+ "name": "options",
10409
+ "default": "options"
10201
10410
  }
10202
- ],
10203
- "attributes": [
10204
- {
10205
- "name": "label",
10206
- "type": {
10207
- "text": "string"
10208
- },
10209
- "default": "\"\"",
10210
- "description": "Label for the input.",
10211
- "fieldName": "label"
10212
- },
10411
+ ]
10412
+ }
10413
+ ],
10414
+ "exports": [
10415
+ {
10416
+ "kind": "js",
10417
+ "name": "PortalController",
10418
+ "declaration": {
10419
+ "name": "PortalController",
10420
+ "module": "src/common/controllers/PortalController.ts"
10421
+ }
10422
+ }
10423
+ ]
10424
+ },
10425
+ {
10426
+ "kind": "javascript-module",
10427
+ "path": "src/common/controllers/ShortcutController.ts",
10428
+ "declarations": [
10429
+ {
10430
+ "kind": "class",
10431
+ "description": "",
10432
+ "name": "ShortcutController",
10433
+ "members": [
10213
10434
  {
10214
- "name": "hint",
10435
+ "kind": "field",
10436
+ "name": "unregister",
10215
10437
  "type": {
10216
- "text": "string | undefined"
10438
+ "text": "ReturnType<typeof tinykeys> | undefined"
10217
10439
  },
10218
- "description": "Optional hint text to be displayed with the input. Alternatively use the hint slot.",
10219
- "fieldName": "hint"
10440
+ "privacy": "private"
10220
10441
  },
10221
- {
10222
- "name": "hide-label",
10223
- "type": {
10224
- "text": "boolean"
10225
- },
10226
- "default": "false",
10227
- "description": "Visually hide the label, but still show it to assistive technologies like screen readers.",
10228
- "fieldName": "hideLabel"
10442
+ {
10443
+ "kind": "method",
10444
+ "name": "hostConnected"
10229
10445
  },
10230
10446
  {
10231
- "name": "placeholder",
10232
- "type": {
10233
- "text": "string | undefined"
10234
- },
10235
- "description": "Placeholder text to display within the input.",
10236
- "fieldName": "placeholder"
10447
+ "kind": "method",
10448
+ "name": "hostDisconnected"
10237
10449
  },
10238
10450
  {
10239
- "name": "error",
10240
- "type": {
10241
- "text": "string | undefined"
10242
- },
10243
- "description": "Optional error to be shown with the input. Alternatively use the error slot.",
10244
- "fieldName": "error"
10451
+ "kind": "method",
10452
+ "name": "unbind"
10245
10453
  },
10246
10454
  {
10247
- "name": "required",
10248
- "type": {
10249
- "text": "boolean"
10250
- },
10251
- "default": "false",
10252
- "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.",
10253
- "fieldName": "required"
10455
+ "kind": "method",
10456
+ "name": "bind",
10457
+ "parameters": [
10458
+ {
10459
+ "name": "shortcuts",
10460
+ "type": {
10461
+ "text": "KeyBindingMap"
10462
+ }
10463
+ }
10464
+ ]
10254
10465
  },
10255
10466
  {
10256
- "name": "expand",
10257
- "type": {
10258
- "text": "boolean"
10259
- },
10260
- "default": "false",
10261
- "description": "Controls whether the input expands to fill the width of its container.",
10262
- "fieldName": "expand"
10263
- }
10264
- ],
10265
- "parameters": [
10467
+ "kind": "field",
10468
+ "name": "shortcuts",
10469
+ "default": "shortcuts"
10470
+ },
10266
10471
  {
10267
- "name": "superClass",
10268
- "type": {
10269
- "text": "T"
10270
- }
10472
+ "kind": "field",
10473
+ "name": "target",
10474
+ "default": "target"
10271
10475
  }
10272
10476
  ]
10273
10477
  }
@@ -10275,136 +10479,192 @@
10275
10479
  "exports": [
10276
10480
  {
10277
10481
  "kind": "js",
10278
- "name": "FormAssociatedMixinInterface",
10482
+ "name": "ShortcutController",
10279
10483
  "declaration": {
10280
- "name": "FormAssociatedMixinInterface",
10281
- "module": "src/common/mixins/FormAssociatedMixin.ts"
10484
+ "name": "ShortcutController",
10485
+ "module": "src/common/controllers/ShortcutController.ts"
10282
10486
  }
10283
10487
  },
10284
10488
  {
10285
10489
  "kind": "js",
10286
- "name": "FormAssociatedMixin",
10490
+ "name": "ShortcutMap",
10287
10491
  "declaration": {
10288
- "name": "FormAssociatedMixin",
10289
- "module": "src/common/mixins/FormAssociatedMixin.ts"
10492
+ "name": "KeyBindingMap",
10493
+ "module": "src/common/controllers/ShortcutController.ts"
10290
10494
  }
10291
10495
  }
10292
10496
  ]
10293
10497
  },
10294
10498
  {
10295
10499
  "kind": "javascript-module",
10296
- "path": "src/common/mixins/InputMixin.ts",
10500
+ "path": "src/common/controllers/SlotController.ts",
10297
10501
  "declarations": [
10298
10502
  {
10299
10503
  "kind": "class",
10300
10504
  "description": "",
10301
- "name": "InputMixinInterface",
10505
+ "name": "SlotController",
10302
10506
  "members": [
10303
10507
  {
10304
10508
  "kind": "field",
10305
- "name": "name",
10509
+ "name": "events",
10306
10510
  "type": {
10307
- "text": "string"
10308
- }
10511
+ "text": "EventController"
10512
+ },
10513
+ "privacy": "private",
10514
+ "default": "new EventController(host)"
10515
+ },
10516
+ {
10517
+ "kind": "method",
10518
+ "name": "hostConnected"
10309
10519
  },
10310
10520
  {
10311
10521
  "kind": "field",
10312
- "name": "value",
10313
- "type": {
10314
- "text": "string"
10315
- }
10522
+ "name": "hasContent"
10316
10523
  },
10317
10524
  {
10318
10525
  "kind": "field",
10319
- "name": "disabled",
10320
- "type": {
10321
- "text": "boolean"
10322
- }
10526
+ "name": "isEmpty"
10323
10527
  },
10324
10528
  {
10325
10529
  "kind": "field",
10326
- "name": "form",
10327
- "type": {
10328
- "text": "HTMLFormElement | undefined"
10329
- }
10530
+ "name": "content"
10531
+ },
10532
+ {
10533
+ "kind": "field",
10534
+ "name": "handleSlotChange",
10535
+ "privacy": "private"
10536
+ },
10537
+ {
10538
+ "kind": "method",
10539
+ "name": "onChange",
10540
+ "privacy": "protected",
10541
+ "parameters": [
10542
+ {
10543
+ "name": "_e",
10544
+ "type": {
10545
+ "text": "Event"
10546
+ }
10547
+ }
10548
+ ]
10549
+ },
10550
+ {
10551
+ "kind": "field",
10552
+ "name": "host",
10553
+ "default": "host"
10554
+ },
10555
+ {
10556
+ "kind": "field",
10557
+ "name": "slotName",
10558
+ "default": "slotName"
10330
10559
  }
10331
10560
  ]
10332
- },
10561
+ }
10562
+ ],
10563
+ "exports": [
10333
10564
  {
10334
- "kind": "mixin",
10565
+ "kind": "js",
10566
+ "name": "SlotController",
10567
+ "declaration": {
10568
+ "name": "SlotController",
10569
+ "module": "src/common/controllers/SlotController.ts"
10570
+ }
10571
+ }
10572
+ ]
10573
+ },
10574
+ {
10575
+ "kind": "javascript-module",
10576
+ "path": "src/common/controllers/SwipeController.ts",
10577
+ "declarations": [
10578
+ {
10579
+ "kind": "class",
10335
10580
  "description": "",
10336
- "name": "InputMixin",
10581
+ "name": "SwipeController",
10337
10582
  "members": [
10338
10583
  {
10339
10584
  "kind": "field",
10340
- "name": "disabled",
10585
+ "name": "events",
10341
10586
  "type": {
10342
- "text": "boolean"
10587
+ "text": "EventController"
10343
10588
  },
10344
- "default": "false",
10345
- "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
10346
- "attribute": "disabled",
10347
- "reflects": true
10589
+ "privacy": "private",
10590
+ "default": "new EventController(host)"
10348
10591
  },
10349
10592
  {
10350
10593
  "kind": "field",
10351
- "name": "name",
10594
+ "name": "hadFirstUpdate",
10352
10595
  "type": {
10353
- "text": "string | undefined"
10596
+ "text": "boolean"
10354
10597
  },
10355
- "description": "The name of the form component.",
10356
- "attribute": "name"
10598
+ "privacy": "private",
10599
+ "default": "false"
10357
10600
  },
10358
10601
  {
10359
10602
  "kind": "field",
10360
- "name": "value",
10603
+ "name": "initialTouchX",
10361
10604
  "type": {
10362
- "text": "string"
10605
+ "text": "number"
10363
10606
  },
10364
- "default": "\"\"",
10365
- "description": "The value of the form component.",
10366
- "attribute": "value"
10607
+ "privacy": "private",
10608
+ "default": "0"
10367
10609
  },
10368
10610
  {
10369
10611
  "kind": "field",
10370
- "name": "form",
10371
- "privacy": "protected",
10372
- "description": "Gets the form, if any, associated with the form element."
10373
- }
10374
- ],
10375
- "attributes": [
10376
- {
10377
- "name": "disabled",
10612
+ "name": "initialTouchY",
10378
10613
  "type": {
10379
- "text": "boolean"
10614
+ "text": "number"
10380
10615
  },
10381
- "default": "false",
10382
- "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
10383
- "fieldName": "disabled"
10616
+ "privacy": "private",
10617
+ "default": "0"
10384
10618
  },
10385
10619
  {
10386
- "name": "name",
10620
+ "kind": "field",
10621
+ "name": "options",
10387
10622
  "type": {
10388
- "text": "string | undefined"
10623
+ "text": "SetRequired<SwipeControllerOptions, \"target\">"
10389
10624
  },
10390
- "description": "The name of the form component.",
10391
- "fieldName": "name"
10625
+ "privacy": "private",
10626
+ "default": "{\n target: () => host,\n ...options,\n }"
10392
10627
  },
10393
10628
  {
10394
- "name": "value",
10629
+ "kind": "method",
10630
+ "name": "hostUpdated"
10631
+ },
10632
+ {
10633
+ "kind": "method",
10634
+ "name": "hostDisconnected"
10635
+ },
10636
+ {
10637
+ "kind": "field",
10638
+ "name": "handleTouchStart",
10639
+ "privacy": "private"
10640
+ },
10641
+ {
10642
+ "kind": "field",
10643
+ "name": "handleTouchEnd",
10644
+ "privacy": "private"
10645
+ }
10646
+ ]
10647
+ },
10648
+ {
10649
+ "kind": "function",
10650
+ "name": "isHorizontalSwipe",
10651
+ "parameters": [
10652
+ {
10653
+ "name": "{ distX, distY }",
10395
10654
  "type": {
10396
- "text": "string"
10397
- },
10398
- "default": "\"\"",
10399
- "description": "The value of the form component.",
10400
- "fieldName": "value"
10655
+ "text": "SwipeDetails"
10656
+ }
10401
10657
  }
10402
- ],
10658
+ ]
10659
+ },
10660
+ {
10661
+ "kind": "function",
10662
+ "name": "isDownwardsSwipe",
10403
10663
  "parameters": [
10404
10664
  {
10405
- "name": "superClass",
10665
+ "name": "{ distX, distY }",
10406
10666
  "type": {
10407
- "text": "T"
10667
+ "text": "SwipeDetails"
10408
10668
  }
10409
10669
  }
10410
10670
  ]
@@ -10413,18 +10673,26 @@
10413
10673
  "exports": [
10414
10674
  {
10415
10675
  "kind": "js",
10416
- "name": "InputMixinInterface",
10676
+ "name": "SwipeController",
10417
10677
  "declaration": {
10418
- "name": "InputMixinInterface",
10419
- "module": "src/common/mixins/InputMixin.ts"
10678
+ "name": "SwipeController",
10679
+ "module": "src/common/controllers/SwipeController.ts"
10420
10680
  }
10421
10681
  },
10422
10682
  {
10423
10683
  "kind": "js",
10424
- "name": "InputMixin",
10684
+ "name": "isHorizontalSwipe",
10425
10685
  "declaration": {
10426
- "name": "InputMixin",
10427
- "module": "src/common/mixins/InputMixin.ts"
10686
+ "name": "isHorizontalSwipe",
10687
+ "module": "src/common/controllers/SwipeController.ts"
10688
+ }
10689
+ },
10690
+ {
10691
+ "kind": "js",
10692
+ "name": "isDownwardsSwipe",
10693
+ "declaration": {
10694
+ "name": "isDownwardsSwipe",
10695
+ "module": "src/common/controllers/SwipeController.ts"
10428
10696
  }
10429
10697
  }
10430
10698
  ]