@nordhealth/components 3.6.0 → 3.6.2

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 (122) hide show
  1. package/custom-elements.json +961 -963
  2. package/lib/{AutocompleteMixin-a98ada34.js → AutocompleteMixin-60503685.js} +2 -2
  3. package/lib/{AutocompleteMixin-a98ada34.js.map → AutocompleteMixin-60503685.js.map} +1 -1
  4. package/lib/Avatar.js +1 -1
  5. package/lib/Badge.js +1 -1
  6. package/lib/Banner.js +1 -1
  7. package/lib/Banner.js.map +1 -1
  8. package/lib/Button.js +1 -1
  9. package/lib/ButtonGroup.js +1 -1
  10. package/lib/ButtonGroup.js.map +1 -1
  11. package/lib/{Calendar-b19b4bf6.js → Calendar-c68fd0d2.js} +2 -2
  12. package/lib/{Calendar-b19b4bf6.js.map → Calendar-c68fd0d2.js.map} +1 -1
  13. package/lib/Calendar.js +1 -1
  14. package/lib/Card.js +1 -1
  15. package/lib/Checkbox.js +1 -1
  16. package/lib/CommandMenu.js +1 -1
  17. package/lib/CommandMenu.js.map +1 -1
  18. package/lib/CommandMenuAction.js +1 -1
  19. package/lib/CommandMenuAction.js.map +1 -1
  20. package/lib/{Component-1f694235.js → Component-253ecb24.js} +2 -2
  21. package/lib/Component-253ecb24.js.map +1 -0
  22. package/lib/DatePicker.js +1 -1
  23. package/lib/Divider.js +1 -1
  24. package/lib/Drawer.js +1 -1
  25. package/lib/Dropdown.js +1 -1
  26. package/lib/DropdownGroup.js +1 -1
  27. package/lib/{DropdownItem-5c12978f.js → DropdownItem-397cd757.js} +2 -2
  28. package/lib/DropdownItem-397cd757.js.map +1 -0
  29. package/lib/DropdownItem.js +1 -1
  30. package/lib/EmptyState.js +1 -1
  31. package/lib/Fieldset.js +1 -1
  32. package/lib/FocusableMixin-003e1094.js +2 -0
  33. package/lib/{FocusableMixin-186c69a2.js.map → FocusableMixin-003e1094.js.map} +1 -1
  34. package/lib/{FormAssociatedMixin-5fedde68.js → FormAssociatedMixin-0638b151.js} +2 -2
  35. package/lib/{FormAssociatedMixin-5fedde68.js.map → FormAssociatedMixin-0638b151.js.map} +1 -1
  36. package/lib/{FormField-3226fb17.js → FormField-0783cb5a.js} +2 -2
  37. package/lib/FormField-0783cb5a.js.map +1 -0
  38. package/lib/Header.js +1 -1
  39. package/lib/Icon.js +2 -2
  40. package/lib/Input.js +1 -1
  41. package/lib/{InputMixin-d50cb41a.js → InputMixin-87012c5a.js} +2 -2
  42. package/lib/{InputMixin-d50cb41a.js.map → InputMixin-87012c5a.js.map} +1 -1
  43. package/lib/Layout.js +1 -1
  44. package/lib/Layout.js.map +1 -1
  45. package/lib/LightDomController-2b7e42a2.js +2 -0
  46. package/lib/LightDomController-2b7e42a2.js.map +1 -0
  47. package/lib/Message.js +1 -1
  48. package/lib/Modal.js +1 -1
  49. package/lib/NavGroup.js +1 -1
  50. package/lib/NavItem.js +1 -1
  51. package/lib/{NavToggle-0e6c6458.js → NavToggle-d39f3c6d.js} +2 -2
  52. package/lib/{NavToggle-0e6c6458.js.map → NavToggle-d39f3c6d.js.map} +1 -1
  53. package/lib/NavToggle.js +1 -1
  54. package/lib/Navigation.js +1 -1
  55. package/lib/Notification.js +1 -1
  56. package/lib/NotificationGroup.js +1 -1
  57. package/lib/{NotificationMixin-5e028561.js → NotificationMixin-cea138a7.js} +2 -2
  58. package/lib/{NotificationMixin-5e028561.js.map → NotificationMixin-cea138a7.js.map} +1 -1
  59. package/lib/{Popout-6a85e4b6.js → Popout-1183c22b.js} +2 -2
  60. package/lib/{Popout-6a85e4b6.js.map → Popout-1183c22b.js.map} +1 -1
  61. package/lib/Popout.js +1 -1
  62. package/lib/ProgressBar.js +1 -1
  63. package/lib/Qrcode.js +1 -1
  64. package/lib/Qrcode.js.map +1 -1
  65. package/lib/Radio.js +1 -1
  66. package/lib/Radio.js.map +1 -1
  67. package/lib/Range.js +1 -1
  68. package/lib/Select.js +1 -1
  69. package/lib/{SizeMixin-f04ac402.js → SizeMixin-bc2098f4.js} +2 -2
  70. package/lib/{SizeMixin-f04ac402.js.map → SizeMixin-bc2098f4.js.map} +1 -1
  71. package/lib/Skeleton.js +1 -1
  72. package/lib/Spinner.js +1 -1
  73. package/lib/Stack.js +1 -1
  74. package/lib/{Sticky-b4e6c315.js → Sticky-220280e0.js} +2 -2
  75. package/lib/Sticky-220280e0.js.map +1 -0
  76. package/lib/Tab.js +1 -1
  77. package/lib/TabGroup.js +1 -1
  78. package/lib/TabPanel.js +1 -1
  79. package/lib/Table.js +1 -1
  80. package/lib/{TextField-3f901ec8.js → TextField-b455a6dd.js} +2 -2
  81. package/lib/{TextField-3f901ec8.js.map → TextField-b455a6dd.js.map} +1 -1
  82. package/lib/Textarea.js +1 -1
  83. package/lib/Toast.js +1 -1
  84. package/lib/ToastGroup.js +1 -1
  85. package/lib/Toggle.js +1 -1
  86. package/lib/Tooltip.js +1 -1
  87. package/lib/TopBar.js +1 -1
  88. package/lib/VisuallyHidden.js +1 -1
  89. package/lib/bundle.js +6 -6
  90. package/lib/bundle.js.map +1 -1
  91. package/lib/{class-map-c0d8e1e5.js → class-map-4a0dec4a.js} +2 -2
  92. package/lib/{class-map-c0d8e1e5.js.map → class-map-4a0dec4a.js.map} +1 -1
  93. package/lib/{collection-498f2b1f.js → collection-bba319d3.js} +3 -3
  94. package/lib/{collection-498f2b1f.js.map → collection-bba319d3.js.map} +1 -1
  95. package/lib/cond-77258def.js +2 -0
  96. package/lib/{cond-09498763.js.map → cond-77258def.js.map} +1 -1
  97. package/lib/{if-defined-8a007930.js → if-defined-10508457.js} +2 -2
  98. package/lib/{if-defined-8a007930.js.map → if-defined-10508457.js.map} +1 -1
  99. package/lib/index.js +1 -1
  100. package/lib/positioning-a572d126.js +1 -1
  101. package/lib/positioning-a572d126.js.map +1 -1
  102. package/lib/{query-assigned-elements-822fe360.js → query-assigned-elements-2f8275b7.js} +2 -2
  103. package/lib/query-assigned-elements-2f8275b7.js.map +1 -0
  104. package/lib/{ref-6b46e5ea.js → ref-f75a30b7.js} +3 -3
  105. package/lib/{ref-6b46e5ea.js.map → ref-f75a30b7.js.map} +1 -1
  106. package/lib/src/button-group/ButtonGroup.d.ts +1 -0
  107. package/lib/src/common/controllers/LightDomController.d.ts +0 -1
  108. package/lib/src/common/controllers/LightSlotController.d.ts +0 -1
  109. package/lib/style-map-75ce20b3.js +7 -0
  110. package/lib/style-map-75ce20b3.js.map +1 -0
  111. package/package.json +2 -2
  112. package/lib/Component-1f694235.js.map +0 -1
  113. package/lib/DropdownItem-5c12978f.js.map +0 -1
  114. package/lib/FocusableMixin-186c69a2.js +0 -2
  115. package/lib/FormField-3226fb17.js.map +0 -1
  116. package/lib/LightDomController-8a770234.js +0 -2
  117. package/lib/LightDomController-8a770234.js.map +0 -1
  118. package/lib/Sticky-b4e6c315.js.map +0 -1
  119. package/lib/cond-09498763.js +0 -2
  120. package/lib/query-assigned-elements-822fe360.js.map +0 -1
  121. package/lib/style-map-5b757428.js +0 -7
  122. package/lib/style-map-5b757428.js.map +0 -1
@@ -433,204 +433,6 @@
433
433
  }
434
434
  ]
435
435
  },
436
- {
437
- "kind": "javascript-module",
438
- "path": "src/badge/Badge.ts",
439
- "declarations": [
440
- {
441
- "kind": "class",
442
- "description": "Badges are used to inform users of the status of an object\nor of an action that’s been taken. Commonly used in tabular\ndata to indicate status.",
443
- "name": "Badge",
444
- "slots": [
445
- {
446
- "description": "The badge content.",
447
- "name": ""
448
- },
449
- {
450
- "description": "Used to place an icon at the start of badge.",
451
- "name": "icon"
452
- }
453
- ],
454
- "members": [
455
- {
456
- "kind": "field",
457
- "name": "type",
458
- "type": {
459
- "text": "\"warning\" | \"success\" | \"danger\" | \"highlight\" | \"info\" | \"neutral\" | \"progress\" | undefined"
460
- },
461
- "description": "The type of badge.\nDetermines the background color of the badge.",
462
- "deprecated": "Use `variant` instead. If you previously used `\"progress\"`, use `\"info\"` instead.",
463
- "attribute": "type",
464
- "reflects": true
465
- },
466
- {
467
- "kind": "field",
468
- "name": "variant",
469
- "type": {
470
- "text": "\"warning\" | \"success\" | \"danger\" | \"highlight\" | \"neutral\" | \"info\" | undefined"
471
- },
472
- "description": "The style variant of the badge.\nDetermines the background color of the badge.",
473
- "attribute": "variant",
474
- "reflects": true
475
- },
476
- {
477
- "kind": "field",
478
- "name": "strong",
479
- "type": {
480
- "text": "boolean"
481
- },
482
- "default": "false",
483
- "description": "Strong badges are a secondary style for badges.\nThey provide more visual prominence and emphasize them.",
484
- "attribute": "strong",
485
- "reflects": true
486
- }
487
- ],
488
- "attributes": [
489
- {
490
- "name": "type",
491
- "type": {
492
- "text": "\"warning\" | \"success\" | \"danger\" | \"highlight\" | \"info\" | \"neutral\" | \"progress\" | undefined"
493
- },
494
- "description": "The type of badge.\nDetermines the background color of the badge.",
495
- "deprecated": "Use `variant` instead. If you previously used `\"progress\"`, use `\"info\"` instead.",
496
- "fieldName": "type"
497
- },
498
- {
499
- "name": "variant",
500
- "type": {
501
- "text": "\"warning\" | \"success\" | \"danger\" | \"highlight\" | \"neutral\" | \"info\" | undefined"
502
- },
503
- "description": "The style variant of the badge.\nDetermines the background color of the badge.",
504
- "fieldName": "variant"
505
- },
506
- {
507
- "name": "strong",
508
- "type": {
509
- "text": "boolean"
510
- },
511
- "default": "false",
512
- "description": "Strong badges are a secondary style for badges.\nThey provide more visual prominence and emphasize them.",
513
- "fieldName": "strong"
514
- }
515
- ],
516
- "superclass": {
517
- "name": "LitElement",
518
- "package": "lit"
519
- },
520
- "localization": [],
521
- "status": "ready",
522
- "category": "text",
523
- "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 established variants and color patterns so that users can clearly identify the importance level.\n- Use to show a status update on a piece of information or action.\n- Use to mark something as a “draft” or “new”.\n- Use when you want to highlight something that has been added recently.\n- Always position badge so that it’s clear to understand what object it’s related to.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t make badges clickable. Instead use button component’s small variant.\n- Don’t use alternatives to existing badge variants.\n\n</div>\n\n---\n\n## Content guidelines\n\nBadge labels should use a single word to describe the status of an object. Only use two words if you need to describe a complex state:\n\n<div class=\"n-usage n-usage-do\">Complete</div>\n<div class=\"n-usage n-usage-dont\">Action completed</div>\n\nWhen writing badge 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\">Partially refunded</div>\n<div class=\"n-usage n-usage-dont\">Partially Refunded</div>\n\nAvoid unnecessary words and articles in badge labels, such as “is”, “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Pending</div>\n<div class=\"n-usage n-usage-dont\">Item is pending</div>\n\nAlways describe the status in the past tense:\n\n<div class=\"n-usage n-usage-do\">Refunded</div>\n<div class=\"n-usage n-usage-dont\">Refund</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| `neutral` | The default style variant. |\n| `info` | Used to convey general information that isn’t critical. |\n| `success` | Used to convey success states. For example, you might want to show a badge that tells the user a payment was successful. |\n| `highlight` | Used to highlight specific items in the interface, like notifications. |\n| `danger` | Used to communicate problems that have to be resolved so that user can continue forward. Should always be used for highlighting errors. |\n| `warning` | Used to display information that needs a user’s attention attention and may require further steps. |\n| `progress` | Used to convey something that’s in progress. |\n",
524
- "examples": [],
525
- "dependencies": [],
526
- "tagName": "nord-badge",
527
- "customElement": true
528
- }
529
- ],
530
- "exports": [
531
- {
532
- "kind": "js",
533
- "name": "default",
534
- "declaration": {
535
- "name": "Badge",
536
- "module": "src/badge/Badge.ts"
537
- }
538
- },
539
- {
540
- "kind": "custom-element-definition",
541
- "name": "nord-badge",
542
- "declaration": {
543
- "name": "Badge",
544
- "module": "src/badge/Badge.ts"
545
- }
546
- }
547
- ]
548
- },
549
- {
550
- "kind": "javascript-module",
551
- "path": "src/banner/Banner.ts",
552
- "declarations": [
553
- {
554
- "kind": "class",
555
- "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.",
556
- "name": "Banner",
557
- "cssProperties": [
558
- {
559
- "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
560
- "name": "--n-banner-border-radius",
561
- "default": "var(--n-border-radius)"
562
- },
563
- {
564
- "description": "Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).",
565
- "name": "--n-banner-box-shadow",
566
- "default": "var(--n-box-shadow-card)"
567
- }
568
- ],
569
- "slots": [
570
- {
571
- "description": "default slot",
572
- "name": ""
573
- }
574
- ],
575
- "members": [
576
- {
577
- "kind": "field",
578
- "name": "variant",
579
- "type": {
580
- "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
581
- },
582
- "default": "\"info\"",
583
- "description": "The style variant of the banner.",
584
- "attribute": "variant",
585
- "reflects": true
586
- }
587
- ],
588
- "attributes": [
589
- {
590
- "name": "variant",
591
- "type": {
592
- "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
593
- },
594
- "default": "\"info\"",
595
- "description": "The style variant of the banner.",
596
- "fieldName": "variant"
597
- }
598
- ],
599
- "superclass": {
600
- "name": "LitElement",
601
- "package": "lit"
602
- },
603
- "localization": [],
604
- "status": "ready",
605
- "category": "feedback",
606
- "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",
607
- "examples": [],
608
- "dependencies": [
609
- "icon"
610
- ],
611
- "tagName": "nord-banner",
612
- "customElement": true
613
- }
614
- ],
615
- "exports": [
616
- {
617
- "kind": "js",
618
- "name": "default",
619
- "declaration": {
620
- "name": "Banner",
621
- "module": "src/banner/Banner.ts"
622
- }
623
- },
624
- {
625
- "kind": "custom-element-definition",
626
- "name": "nord-banner",
627
- "declaration": {
628
- "name": "Banner",
629
- "module": "src/banner/Banner.ts"
630
- }
631
- }
632
- ]
633
- },
634
436
  {
635
437
  "kind": "javascript-module",
636
438
  "path": "src/avatar/Avatar.ts",
@@ -755,38 +557,237 @@
755
557
  "fieldName": "size"
756
558
  },
757
559
  {
758
- "name": "src",
759
- "type": {
760
- "text": "string | undefined"
761
- },
762
- "description": "The URL of the avatar image uploaded by the user.",
763
- "fieldName": "src"
560
+ "name": "src",
561
+ "type": {
562
+ "text": "string | undefined"
563
+ },
564
+ "description": "The URL of the avatar image uploaded by the user.",
565
+ "fieldName": "src"
566
+ },
567
+ {
568
+ "name": "name",
569
+ "type": {
570
+ "text": "string"
571
+ },
572
+ "default": "\"\"",
573
+ "description": "The name of the person or entity.",
574
+ "fieldName": "name"
575
+ },
576
+ {
577
+ "name": "icon",
578
+ "type": {
579
+ "text": "string"
580
+ },
581
+ "default": "\"\"",
582
+ "description": "The fallback icon.",
583
+ "fieldName": "icon"
584
+ },
585
+ {
586
+ "name": "variant",
587
+ "type": {
588
+ "text": "\"default\" | \"square\""
589
+ },
590
+ "default": "\"default\"",
591
+ "description": "The style variant of the avatar.",
592
+ "fieldName": "variant"
593
+ }
594
+ ],
595
+ "superclass": {
596
+ "name": "LitElement",
597
+ "package": "lit"
598
+ },
599
+ "localization": [],
600
+ "status": "ready",
601
+ "category": "image",
602
+ "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- Always add the name of the person using the `name` property.\n- For the best results, use square images or images cropped into a square.\n- Use the avatar to represent a single user, pet or entity.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Try to avoid using landscape or portrait images as avatars. Let users crop their images before or after uploading if possible.\n- Don't use an avatar when an icon is more suitable, for example when denoting groups or \"things\".\n\n</div>\n",
603
+ "examples": [],
604
+ "dependencies": [
605
+ "visually-hidden",
606
+ "icon"
607
+ ],
608
+ "tagName": "nord-avatar",
609
+ "customElement": true
610
+ }
611
+ ],
612
+ "exports": [
613
+ {
614
+ "kind": "js",
615
+ "name": "default",
616
+ "declaration": {
617
+ "name": "Avatar",
618
+ "module": "src/avatar/Avatar.ts"
619
+ }
620
+ },
621
+ {
622
+ "kind": "custom-element-definition",
623
+ "name": "nord-avatar",
624
+ "declaration": {
625
+ "name": "Avatar",
626
+ "module": "src/avatar/Avatar.ts"
627
+ }
628
+ }
629
+ ]
630
+ },
631
+ {
632
+ "kind": "javascript-module",
633
+ "path": "src/badge/Badge.ts",
634
+ "declarations": [
635
+ {
636
+ "kind": "class",
637
+ "description": "Badges are used to inform users of the status of an object\nor of an action that’s been taken. Commonly used in tabular\ndata to indicate status.",
638
+ "name": "Badge",
639
+ "slots": [
640
+ {
641
+ "description": "The badge content.",
642
+ "name": ""
643
+ },
644
+ {
645
+ "description": "Used to place an icon at the start of badge.",
646
+ "name": "icon"
647
+ }
648
+ ],
649
+ "members": [
650
+ {
651
+ "kind": "field",
652
+ "name": "type",
653
+ "type": {
654
+ "text": "\"warning\" | \"success\" | \"danger\" | \"highlight\" | \"info\" | \"neutral\" | \"progress\" | undefined"
655
+ },
656
+ "description": "The type of badge.\nDetermines the background color of the badge.",
657
+ "deprecated": "Use `variant` instead. If you previously used `\"progress\"`, use `\"info\"` instead.",
658
+ "attribute": "type",
659
+ "reflects": true
660
+ },
661
+ {
662
+ "kind": "field",
663
+ "name": "variant",
664
+ "type": {
665
+ "text": "\"warning\" | \"success\" | \"danger\" | \"highlight\" | \"neutral\" | \"info\" | undefined"
666
+ },
667
+ "description": "The style variant of the badge.\nDetermines the background color of the badge.",
668
+ "attribute": "variant",
669
+ "reflects": true
670
+ },
671
+ {
672
+ "kind": "field",
673
+ "name": "strong",
674
+ "type": {
675
+ "text": "boolean"
676
+ },
677
+ "default": "false",
678
+ "description": "Strong badges are a secondary style for badges.\nThey provide more visual prominence and emphasize them.",
679
+ "attribute": "strong",
680
+ "reflects": true
681
+ }
682
+ ],
683
+ "attributes": [
684
+ {
685
+ "name": "type",
686
+ "type": {
687
+ "text": "\"warning\" | \"success\" | \"danger\" | \"highlight\" | \"info\" | \"neutral\" | \"progress\" | undefined"
688
+ },
689
+ "description": "The type of badge.\nDetermines the background color of the badge.",
690
+ "deprecated": "Use `variant` instead. If you previously used `\"progress\"`, use `\"info\"` instead.",
691
+ "fieldName": "type"
692
+ },
693
+ {
694
+ "name": "variant",
695
+ "type": {
696
+ "text": "\"warning\" | \"success\" | \"danger\" | \"highlight\" | \"neutral\" | \"info\" | undefined"
697
+ },
698
+ "description": "The style variant of the badge.\nDetermines the background color of the badge.",
699
+ "fieldName": "variant"
700
+ },
701
+ {
702
+ "name": "strong",
703
+ "type": {
704
+ "text": "boolean"
705
+ },
706
+ "default": "false",
707
+ "description": "Strong badges are a secondary style for badges.\nThey provide more visual prominence and emphasize them.",
708
+ "fieldName": "strong"
709
+ }
710
+ ],
711
+ "superclass": {
712
+ "name": "LitElement",
713
+ "package": "lit"
714
+ },
715
+ "localization": [],
716
+ "status": "ready",
717
+ "category": "text",
718
+ "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 established variants and color patterns so that users can clearly identify the importance level.\n- Use to show a status update on a piece of information or action.\n- Use to mark something as a “draft” or “new”.\n- Use when you want to highlight something that has been added recently.\n- Always position badge so that it’s clear to understand what object it’s related to.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t make badges clickable. Instead use button component’s small variant.\n- Don’t use alternatives to existing badge variants.\n\n</div>\n\n---\n\n## Content guidelines\n\nBadge labels should use a single word to describe the status of an object. Only use two words if you need to describe a complex state:\n\n<div class=\"n-usage n-usage-do\">Complete</div>\n<div class=\"n-usage n-usage-dont\">Action completed</div>\n\nWhen writing badge 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\">Partially refunded</div>\n<div class=\"n-usage n-usage-dont\">Partially Refunded</div>\n\nAvoid unnecessary words and articles in badge labels, such as “is”, “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Pending</div>\n<div class=\"n-usage n-usage-dont\">Item is pending</div>\n\nAlways describe the status in the past tense:\n\n<div class=\"n-usage n-usage-do\">Refunded</div>\n<div class=\"n-usage n-usage-dont\">Refund</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| `neutral` | The default style variant. |\n| `info` | Used to convey general information that isn’t critical. |\n| `success` | Used to convey success states. For example, you might want to show a badge that tells the user a payment was successful. |\n| `highlight` | Used to highlight specific items in the interface, like notifications. |\n| `danger` | Used to communicate problems that have to be resolved so that user can continue forward. Should always be used for highlighting errors. |\n| `warning` | Used to display information that needs a user’s attention attention and may require further steps. |\n| `progress` | Used to convey something that’s in progress. |\n",
719
+ "examples": [],
720
+ "dependencies": [],
721
+ "tagName": "nord-badge",
722
+ "customElement": true
723
+ }
724
+ ],
725
+ "exports": [
726
+ {
727
+ "kind": "js",
728
+ "name": "default",
729
+ "declaration": {
730
+ "name": "Badge",
731
+ "module": "src/badge/Badge.ts"
732
+ }
733
+ },
734
+ {
735
+ "kind": "custom-element-definition",
736
+ "name": "nord-badge",
737
+ "declaration": {
738
+ "name": "Badge",
739
+ "module": "src/badge/Badge.ts"
740
+ }
741
+ }
742
+ ]
743
+ },
744
+ {
745
+ "kind": "javascript-module",
746
+ "path": "src/banner/Banner.ts",
747
+ "declarations": [
748
+ {
749
+ "kind": "class",
750
+ "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.",
751
+ "name": "Banner",
752
+ "cssProperties": [
753
+ {
754
+ "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
755
+ "name": "--n-banner-border-radius",
756
+ "default": "var(--n-border-radius)"
764
757
  },
765
758
  {
766
- "name": "name",
767
- "type": {
768
- "text": "string"
769
- },
770
- "default": "\"\"",
771
- "description": "The name of the person or entity.",
772
- "fieldName": "name"
773
- },
759
+ "description": "Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).",
760
+ "name": "--n-banner-box-shadow",
761
+ "default": "var(--n-box-shadow-card)"
762
+ }
763
+ ],
764
+ "slots": [
774
765
  {
775
- "name": "icon",
766
+ "description": "default slot",
767
+ "name": ""
768
+ }
769
+ ],
770
+ "members": [
771
+ {
772
+ "kind": "field",
773
+ "name": "variant",
776
774
  "type": {
777
- "text": "string"
775
+ "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
778
776
  },
779
- "default": "\"\"",
780
- "description": "The fallback icon.",
781
- "fieldName": "icon"
782
- },
777
+ "default": "\"info\"",
778
+ "description": "The style variant of the banner.",
779
+ "attribute": "variant",
780
+ "reflects": true
781
+ }
782
+ ],
783
+ "attributes": [
783
784
  {
784
785
  "name": "variant",
785
786
  "type": {
786
- "text": "\"default\" | \"square\""
787
+ "text": "\"info\" | \"danger\" | \"success\" | \"warning\""
787
788
  },
788
- "default": "\"default\"",
789
- "description": "The style variant of the avatar.",
789
+ "default": "\"info\"",
790
+ "description": "The style variant of the banner.",
790
791
  "fieldName": "variant"
791
792
  }
792
793
  ],
@@ -796,14 +797,13 @@
796
797
  },
797
798
  "localization": [],
798
799
  "status": "ready",
799
- "category": "image",
800
- "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- Always add the name of the person using the `name` property.\n- For the best results, use square images or images cropped into a square.\n- Use the avatar to represent a single user, pet or entity.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Try to avoid using landscape or portrait images as avatars. Let users crop their images before or after uploading if possible.\n- Don't use an avatar when an icon is more suitable, for example when denoting groups or \"things\".\n\n</div>\n",
800
+ "category": "feedback",
801
+ "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",
801
802
  "examples": [],
802
803
  "dependencies": [
803
- "visually-hidden",
804
804
  "icon"
805
805
  ],
806
- "tagName": "nord-avatar",
806
+ "tagName": "nord-banner",
807
807
  "customElement": true
808
808
  }
809
809
  ],
@@ -812,16 +812,16 @@
812
812
  "kind": "js",
813
813
  "name": "default",
814
814
  "declaration": {
815
- "name": "Avatar",
816
- "module": "src/avatar/Avatar.ts"
815
+ "name": "Banner",
816
+ "module": "src/banner/Banner.ts"
817
817
  }
818
818
  },
819
819
  {
820
820
  "kind": "custom-element-definition",
821
- "name": "nord-avatar",
821
+ "name": "nord-banner",
822
822
  "declaration": {
823
- "name": "Avatar",
824
- "module": "src/avatar/Avatar.ts"
823
+ "name": "Banner",
824
+ "module": "src/banner/Banner.ts"
825
825
  }
826
826
  }
827
827
  ]
@@ -1442,6 +1442,12 @@
1442
1442
  }
1443
1443
  ],
1444
1444
  "members": [
1445
+ {
1446
+ "kind": "field",
1447
+ "name": "dirController",
1448
+ "privacy": "private",
1449
+ "default": "new DirectionController(this)"
1450
+ },
1445
1451
  {
1446
1452
  "kind": "field",
1447
1453
  "name": "direction",
@@ -1938,190 +1944,18 @@
1938
1944
  {
1939
1945
  "name": "yearSelectLabel",
1940
1946
  "description": "Accessible label for the year select."
1941
- }
1942
- ],
1943
- "status": "ready",
1944
- "category": "list",
1945
- "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",
1946
- "examples": [],
1947
- "dependencies": [
1948
- "button",
1949
- "visually-hidden",
1950
- "icon"
1951
- ],
1952
- "tagName": "nord-calendar",
1953
- "customElement": true
1954
- }
1955
- ],
1956
- "exports": [
1957
- {
1958
- "kind": "js",
1959
- "name": "default",
1960
- "declaration": {
1961
- "name": "Calendar",
1962
- "module": "src/calendar/Calendar.ts"
1963
- }
1964
- },
1965
- {
1966
- "kind": "custom-element-definition",
1967
- "name": "nord-calendar",
1968
- "declaration": {
1969
- "name": "Calendar",
1970
- "module": "src/calendar/Calendar.ts"
1971
- }
1972
- }
1973
- ]
1974
- },
1975
- {
1976
- "kind": "javascript-module",
1977
- "path": "src/calendar/DateSelectEvent.ts",
1978
- "declarations": [
1979
- {
1980
- "kind": "class",
1981
- "description": "",
1982
- "name": "DateSelectEvent",
1983
- "superclass": {
1984
- "name": "NordEvent",
1985
- "module": "/src/common/events.js"
1986
- }
1987
- }
1988
- ],
1989
- "exports": [
1990
- {
1991
- "kind": "js",
1992
- "name": "DateSelectEvent",
1993
- "declaration": {
1994
- "name": "DateSelectEvent",
1995
- "module": "src/calendar/DateSelectEvent.ts"
1996
- }
1997
- }
1998
- ]
1999
- },
2000
- {
2001
- "kind": "javascript-module",
2002
- "path": "src/calendar/localization.ts",
2003
- "declarations": [
2004
- {
2005
- "kind": "variable",
2006
- "name": "calendarLocalization",
2007
- "type": {
2008
- "text": "object"
2009
- },
2010
- "default": "{\n prevMonthLabel: \"Previous month\",\n nextMonthLabel: \"Next month\",\n monthSelectLabel: \"Month\",\n yearSelectLabel: \"Year\",\n}"
2011
- }
2012
- ],
2013
- "exports": [
2014
- {
2015
- "kind": "js",
2016
- "name": "default",
2017
- "declaration": {
2018
- "name": "calendarLocalization",
2019
- "module": "src/calendar/localization.ts"
2020
- }
2021
- }
2022
- ]
2023
- },
2024
- {
2025
- "kind": "javascript-module",
2026
- "path": "src/card/Card.ts",
2027
- "declarations": [
2028
- {
2029
- "kind": "class",
2030
- "description": "Cards are shadowed surfaces that display content and actions on a\nsingle topic. They should be easy to scan for relevant and\nactionable information.",
2031
- "name": "Card",
2032
- "cssProperties": [
2033
- {
2034
- "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
2035
- "name": "--n-card-border-radius",
2036
- "default": "var(--n-border-radius)"
2037
- },
2038
- {
2039
- "description": "Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).",
2040
- "name": "--n-card-box-shadow",
2041
- "default": "var(--n-box-shadow-popout)"
2042
- },
2043
- {
2044
- "description": "Controls the padding on all sides of the card.",
2045
- "name": "--n-card-padding",
2046
- "default": "var(--n-space-m)"
2047
- },
2048
- {
2049
- "description": "Controls the padding of items slotted within the card. This does not affect the block padding of items slotted into the header.",
2050
- "name": "--n-card-slot-padding",
2051
- "default": "var(--n-space-m)"
2052
- }
2053
- ],
2054
- "slots": [
2055
- {
2056
- "description": "The card content.",
2057
- "name": ""
2058
- },
2059
- {
2060
- "description": "Optional slot that holds a header for the card.",
2061
- "name": "header"
2062
- },
2063
- {
2064
- "description": "Optional slot that positions content at the end of the header. Useful for actions or additional info.",
2065
- "name": "header-end"
2066
- },
2067
- {
2068
- "description": "Optional slot that holds footer content for the card.",
2069
- "name": "footer"
2070
- }
2071
- ],
2072
- "members": [
2073
- {
2074
- "kind": "field",
2075
- "name": "headerSlot",
2076
- "privacy": "private",
2077
- "default": "new SlotController(this, \"header\")"
2078
- },
2079
- {
2080
- "kind": "field",
2081
- "name": "headerEndSlot",
2082
- "privacy": "private",
2083
- "default": "new SlotController(this, \"header-end\")"
2084
- },
2085
- {
2086
- "kind": "field",
2087
- "name": "footerSlot",
2088
- "privacy": "private",
2089
- "default": "new SlotController(this, \"footer\")"
2090
- },
2091
- {
2092
- "kind": "field",
2093
- "name": "padding",
2094
- "type": {
2095
- "text": "\"m\" | \"l\" | \"none\""
2096
- },
2097
- "default": "\"m\"",
2098
- "description": "Controls the padding of the card component. When set to “none”,\nthe header and footer slots will still have padding.",
2099
- "attribute": "padding",
2100
- "reflects": true
2101
- }
2102
- ],
2103
- "attributes": [
2104
- {
2105
- "name": "padding",
2106
- "type": {
2107
- "text": "\"m\" | \"l\" | \"none\""
2108
- },
2109
- "default": "\"m\"",
2110
- "description": "Controls the padding of the card component. When set to “none”,\nthe header and footer slots will still have padding.",
2111
- "fieldName": "padding"
2112
- }
2113
- ],
2114
- "superclass": {
2115
- "name": "LitElement",
2116
- "package": "lit"
2117
- },
2118
- "localization": [],
1947
+ }
1948
+ ],
2119
1949
  "status": "ready",
2120
- "category": "structure",
2121
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to display content and actions on a single topic inside a container.\n- Use to visually separate specific parts of content in an application view.\n- Use to wrap a form into a container, for example a login form.\n- Include a header when placing a [Table](/components/table) component inside the card.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place cards within cards. Consider using the [divider](/components/divider/) component to break up sections instead.\n- Don’t use when you need to capture user’s attention in a prominent way.\n- Don’t use to inform user about important changes or conditions in the interface.\n- Don’t use multiple primary buttons inside a card. A card should only contain a single primary action.\n\n</div>\n",
1950
+ "category": "list",
1951
+ "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",
2122
1952
  "examples": [],
2123
- "dependencies": [],
2124
- "tagName": "nord-card",
1953
+ "dependencies": [
1954
+ "button",
1955
+ "visually-hidden",
1956
+ "icon"
1957
+ ],
1958
+ "tagName": "nord-calendar",
2125
1959
  "customElement": true
2126
1960
  }
2127
1961
  ],
@@ -2130,16 +1964,65 @@
2130
1964
  "kind": "js",
2131
1965
  "name": "default",
2132
1966
  "declaration": {
2133
- "name": "Card",
2134
- "module": "src/card/Card.ts"
1967
+ "name": "Calendar",
1968
+ "module": "src/calendar/Calendar.ts"
2135
1969
  }
2136
1970
  },
2137
1971
  {
2138
1972
  "kind": "custom-element-definition",
2139
- "name": "nord-card",
1973
+ "name": "nord-calendar",
2140
1974
  "declaration": {
2141
- "name": "Card",
2142
- "module": "src/card/Card.ts"
1975
+ "name": "Calendar",
1976
+ "module": "src/calendar/Calendar.ts"
1977
+ }
1978
+ }
1979
+ ]
1980
+ },
1981
+ {
1982
+ "kind": "javascript-module",
1983
+ "path": "src/calendar/DateSelectEvent.ts",
1984
+ "declarations": [
1985
+ {
1986
+ "kind": "class",
1987
+ "description": "",
1988
+ "name": "DateSelectEvent",
1989
+ "superclass": {
1990
+ "name": "NordEvent",
1991
+ "module": "/src/common/events.js"
1992
+ }
1993
+ }
1994
+ ],
1995
+ "exports": [
1996
+ {
1997
+ "kind": "js",
1998
+ "name": "DateSelectEvent",
1999
+ "declaration": {
2000
+ "name": "DateSelectEvent",
2001
+ "module": "src/calendar/DateSelectEvent.ts"
2002
+ }
2003
+ }
2004
+ ]
2005
+ },
2006
+ {
2007
+ "kind": "javascript-module",
2008
+ "path": "src/calendar/localization.ts",
2009
+ "declarations": [
2010
+ {
2011
+ "kind": "variable",
2012
+ "name": "calendarLocalization",
2013
+ "type": {
2014
+ "text": "object"
2015
+ },
2016
+ "default": "{\n prevMonthLabel: \"Previous month\",\n nextMonthLabel: \"Next month\",\n monthSelectLabel: \"Month\",\n yearSelectLabel: \"Year\",\n}"
2017
+ }
2018
+ ],
2019
+ "exports": [
2020
+ {
2021
+ "kind": "js",
2022
+ "name": "default",
2023
+ "declaration": {
2024
+ "name": "calendarLocalization",
2025
+ "module": "src/calendar/localization.ts"
2143
2026
  }
2144
2027
  }
2145
2028
  ]
@@ -2865,6 +2748,129 @@
2865
2748
  }
2866
2749
  ]
2867
2750
  },
2751
+ {
2752
+ "kind": "javascript-module",
2753
+ "path": "src/card/Card.ts",
2754
+ "declarations": [
2755
+ {
2756
+ "kind": "class",
2757
+ "description": "Cards are shadowed surfaces that display content and actions on a\nsingle topic. They should be easy to scan for relevant and\nactionable information.",
2758
+ "name": "Card",
2759
+ "cssProperties": [
2760
+ {
2761
+ "description": "Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).",
2762
+ "name": "--n-card-border-radius",
2763
+ "default": "var(--n-border-radius)"
2764
+ },
2765
+ {
2766
+ "description": "Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).",
2767
+ "name": "--n-card-box-shadow",
2768
+ "default": "var(--n-box-shadow-popout)"
2769
+ },
2770
+ {
2771
+ "description": "Controls the padding on all sides of the card.",
2772
+ "name": "--n-card-padding",
2773
+ "default": "var(--n-space-m)"
2774
+ },
2775
+ {
2776
+ "description": "Controls the padding of items slotted within the card. This does not affect the block padding of items slotted into the header.",
2777
+ "name": "--n-card-slot-padding",
2778
+ "default": "var(--n-space-m)"
2779
+ }
2780
+ ],
2781
+ "slots": [
2782
+ {
2783
+ "description": "The card content.",
2784
+ "name": ""
2785
+ },
2786
+ {
2787
+ "description": "Optional slot that holds a header for the card.",
2788
+ "name": "header"
2789
+ },
2790
+ {
2791
+ "description": "Optional slot that positions content at the end of the header. Useful for actions or additional info.",
2792
+ "name": "header-end"
2793
+ },
2794
+ {
2795
+ "description": "Optional slot that holds footer content for the card.",
2796
+ "name": "footer"
2797
+ }
2798
+ ],
2799
+ "members": [
2800
+ {
2801
+ "kind": "field",
2802
+ "name": "headerSlot",
2803
+ "privacy": "private",
2804
+ "default": "new SlotController(this, \"header\")"
2805
+ },
2806
+ {
2807
+ "kind": "field",
2808
+ "name": "headerEndSlot",
2809
+ "privacy": "private",
2810
+ "default": "new SlotController(this, \"header-end\")"
2811
+ },
2812
+ {
2813
+ "kind": "field",
2814
+ "name": "footerSlot",
2815
+ "privacy": "private",
2816
+ "default": "new SlotController(this, \"footer\")"
2817
+ },
2818
+ {
2819
+ "kind": "field",
2820
+ "name": "padding",
2821
+ "type": {
2822
+ "text": "\"m\" | \"l\" | \"none\""
2823
+ },
2824
+ "default": "\"m\"",
2825
+ "description": "Controls the padding of the card component. When set to “none”,\nthe header and footer slots will still have padding.",
2826
+ "attribute": "padding",
2827
+ "reflects": true
2828
+ }
2829
+ ],
2830
+ "attributes": [
2831
+ {
2832
+ "name": "padding",
2833
+ "type": {
2834
+ "text": "\"m\" | \"l\" | \"none\""
2835
+ },
2836
+ "default": "\"m\"",
2837
+ "description": "Controls the padding of the card component. When set to “none”,\nthe header and footer slots will still have padding.",
2838
+ "fieldName": "padding"
2839
+ }
2840
+ ],
2841
+ "superclass": {
2842
+ "name": "LitElement",
2843
+ "package": "lit"
2844
+ },
2845
+ "localization": [],
2846
+ "status": "ready",
2847
+ "category": "structure",
2848
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to display content and actions on a single topic inside a container.\n- Use to visually separate specific parts of content in an application view.\n- Use to wrap a form into a container, for example a login form.\n- Include a header when placing a [Table](/components/table) component inside the card.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place cards within cards. Consider using the [divider](/components/divider/) component to break up sections instead.\n- Don’t use when you need to capture user’s attention in a prominent way.\n- Don’t use to inform user about important changes or conditions in the interface.\n- Don’t use multiple primary buttons inside a card. A card should only contain a single primary action.\n\n</div>\n",
2849
+ "examples": [],
2850
+ "dependencies": [],
2851
+ "tagName": "nord-card",
2852
+ "customElement": true
2853
+ }
2854
+ ],
2855
+ "exports": [
2856
+ {
2857
+ "kind": "js",
2858
+ "name": "default",
2859
+ "declaration": {
2860
+ "name": "Card",
2861
+ "module": "src/card/Card.ts"
2862
+ }
2863
+ },
2864
+ {
2865
+ "kind": "custom-element-definition",
2866
+ "name": "nord-card",
2867
+ "declaration": {
2868
+ "name": "Card",
2869
+ "module": "src/card/Card.ts"
2870
+ }
2871
+ }
2872
+ ]
2873
+ },
2868
2874
  {
2869
2875
  "kind": "javascript-module",
2870
2876
  "path": "src/command-menu/CommandMenu.ts",
@@ -9433,8 +9439,78 @@
9433
9439
  "kind": "js",
9434
9440
  "name": "default",
9435
9441
  "declaration": {
9436
- "name": "localization",
9437
- "module": "src/modal/localization.ts"
9442
+ "name": "localization",
9443
+ "module": "src/modal/localization.ts"
9444
+ }
9445
+ }
9446
+ ]
9447
+ },
9448
+ {
9449
+ "kind": "javascript-module",
9450
+ "path": "src/nav-group/NavGroup.ts",
9451
+ "declarations": [
9452
+ {
9453
+ "kind": "class",
9454
+ "description": "Navigation group includes all the actions or items in a single\ngroup and is used for grouping items into related categories.",
9455
+ "name": "NavGroup",
9456
+ "slots": [
9457
+ {
9458
+ "description": "The default slot used for the nav items.",
9459
+ "name": ""
9460
+ }
9461
+ ],
9462
+ "members": [
9463
+ {
9464
+ "kind": "field",
9465
+ "name": "heading",
9466
+ "type": {
9467
+ "text": "string | undefined"
9468
+ },
9469
+ "description": "Heading and accessible label for the nav group",
9470
+ "attribute": "heading"
9471
+ }
9472
+ ],
9473
+ "attributes": [
9474
+ {
9475
+ "name": "heading",
9476
+ "type": {
9477
+ "text": "string | undefined"
9478
+ },
9479
+ "description": "Heading and accessible label for the nav group",
9480
+ "fieldName": "heading"
9481
+ }
9482
+ ],
9483
+ "superclass": {
9484
+ "name": "LitElement",
9485
+ "package": "lit"
9486
+ },
9487
+ "localization": [],
9488
+ "status": "ready",
9489
+ "category": "navigation",
9490
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Group navigation items into navigation groups based on related categories.\n- Use group headings to clarify the category of a section.\n- Use icons for all top level navigation items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for grouping other types of content.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing navigation item labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in item labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending item labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse as few words as possible to describe each item label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoid all caps for item labels and group titles:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n",
9491
+ "examples": [],
9492
+ "dependencies": [
9493
+ "icon"
9494
+ ],
9495
+ "tagName": "nord-nav-group",
9496
+ "customElement": true
9497
+ }
9498
+ ],
9499
+ "exports": [
9500
+ {
9501
+ "kind": "js",
9502
+ "name": "default",
9503
+ "declaration": {
9504
+ "name": "NavGroup",
9505
+ "module": "src/nav-group/NavGroup.ts"
9506
+ }
9507
+ },
9508
+ {
9509
+ "kind": "custom-element-definition",
9510
+ "name": "nord-nav-group",
9511
+ "declaration": {
9512
+ "name": "NavGroup",
9513
+ "module": "src/nav-group/NavGroup.ts"
9438
9514
  }
9439
9515
  }
9440
9516
  ]
@@ -9712,76 +9788,6 @@
9712
9788
  }
9713
9789
  ]
9714
9790
  },
9715
- {
9716
- "kind": "javascript-module",
9717
- "path": "src/nav-group/NavGroup.ts",
9718
- "declarations": [
9719
- {
9720
- "kind": "class",
9721
- "description": "Navigation group includes all the actions or items in a single\ngroup and is used for grouping items into related categories.",
9722
- "name": "NavGroup",
9723
- "slots": [
9724
- {
9725
- "description": "The default slot used for the nav items.",
9726
- "name": ""
9727
- }
9728
- ],
9729
- "members": [
9730
- {
9731
- "kind": "field",
9732
- "name": "heading",
9733
- "type": {
9734
- "text": "string | undefined"
9735
- },
9736
- "description": "Heading and accessible label for the nav group",
9737
- "attribute": "heading"
9738
- }
9739
- ],
9740
- "attributes": [
9741
- {
9742
- "name": "heading",
9743
- "type": {
9744
- "text": "string | undefined"
9745
- },
9746
- "description": "Heading and accessible label for the nav group",
9747
- "fieldName": "heading"
9748
- }
9749
- ],
9750
- "superclass": {
9751
- "name": "LitElement",
9752
- "package": "lit"
9753
- },
9754
- "localization": [],
9755
- "status": "ready",
9756
- "category": "navigation",
9757
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Group navigation items into navigation groups based on related categories.\n- Use group headings to clarify the category of a section.\n- Use icons for all top level navigation items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for grouping other types of content.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing navigation item labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in item labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending item labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse as few words as possible to describe each item label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoid all caps for item labels and group titles:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n",
9758
- "examples": [],
9759
- "dependencies": [
9760
- "icon"
9761
- ],
9762
- "tagName": "nord-nav-group",
9763
- "customElement": true
9764
- }
9765
- ],
9766
- "exports": [
9767
- {
9768
- "kind": "js",
9769
- "name": "default",
9770
- "declaration": {
9771
- "name": "NavGroup",
9772
- "module": "src/nav-group/NavGroup.ts"
9773
- }
9774
- },
9775
- {
9776
- "kind": "custom-element-definition",
9777
- "name": "nord-nav-group",
9778
- "declaration": {
9779
- "name": "NavGroup",
9780
- "module": "src/nav-group/NavGroup.ts"
9781
- }
9782
- }
9783
- ]
9784
- },
9785
9791
  {
9786
9792
  "kind": "javascript-module",
9787
9793
  "path": "src/nav-toggle/NavToggle.ts",
@@ -10946,34 +10952,12 @@
10946
10952
  },
10947
10953
  {
10948
10954
  "kind": "javascript-module",
10949
- "path": "src/range/Range.ts",
10955
+ "path": "src/radio/Radio.ts",
10950
10956
  "declarations": [
10951
10957
  {
10952
10958
  "kind": "class",
10953
- "description": "Range input lets user specify a numeric value using a slider which\nmust be no less than a given value, and no more than another given value.",
10954
- "name": "Range",
10955
- "cssProperties": [
10956
- {
10957
- "description": "Controls the size of the thumb.",
10958
- "name": "--n-range-thumb-size",
10959
- "default": "20px"
10960
- },
10961
- {
10962
- "description": "Controls the color of the portion of the track that represents the current value.",
10963
- "name": "--n-range-track-color-active",
10964
- "default": "var(--n-color-accent)"
10965
- },
10966
- {
10967
- "description": "Controls the color of the portion of the track that represents the remaining value.",
10968
- "name": "--n-range-track-color-inactive",
10969
- "default": "var(--n-color-border-strong)"
10970
- },
10971
- {
10972
- "description": "Controls the height of the track.",
10973
- "name": "--n-range-track-size",
10974
- "default": "3px"
10975
- }
10976
- ],
10959
+ "description": "Radio buttons are graphical user interface elements that allow user to choose only one option from\na predefined set of mutually exclusive options.",
10960
+ "name": "Radio",
10977
10961
  "slots": [
10978
10962
  {
10979
10963
  "description": "Use when a label requires more than plain text.",
@@ -10991,63 +10975,38 @@
10991
10975
  "members": [
10992
10976
  {
10993
10977
  "kind": "field",
10994
- "name": "direction",
10995
- "privacy": "private",
10996
- "default": "new DirectionController(this)"
10997
- },
10998
- {
10999
- "kind": "field",
11000
- "name": "min",
11001
- "type": {
11002
- "text": "number"
11003
- },
11004
- "default": "0",
11005
- "description": "Minimum value for the range slider.",
11006
- "attribute": "min"
11007
- },
11008
- {
11009
- "kind": "field",
11010
- "name": "max",
10978
+ "name": "inputId",
11011
10979
  "type": {
11012
- "text": "number"
10980
+ "text": "string"
11013
10981
  },
11014
- "default": "10",
11015
- "description": "Maximum value for the range slider.",
11016
- "attribute": "max"
10982
+ "privacy": "protected",
10983
+ "default": "\"input\"",
10984
+ "inheritedFrom": {
10985
+ "name": "FormAssociatedMixin",
10986
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
10987
+ }
11017
10988
  },
11018
10989
  {
11019
10990
  "kind": "field",
11020
- "name": "step",
10991
+ "name": "hintId",
11021
10992
  "type": {
11022
- "text": "number"
10993
+ "text": "string"
11023
10994
  },
11024
- "default": "1",
11025
- "description": "Step amount for the range slider.",
11026
- "attribute": "step"
10995
+ "privacy": "protected",
10996
+ "default": "\"hint\"",
10997
+ "inheritedFrom": {
10998
+ "name": "FormAssociatedMixin",
10999
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
11000
+ }
11027
11001
  },
11028
11002
  {
11029
11003
  "kind": "field",
11030
- "name": "expand",
11004
+ "name": "errorId",
11031
11005
  "type": {
11032
- "text": "boolean"
11006
+ "text": "string"
11033
11007
  },
11034
- "default": "false",
11035
- "description": "Controls whether the input expands to fill the width of its container.",
11036
- "attribute": "expand",
11037
- "reflects": true
11038
- },
11039
- {
11040
- "kind": "method",
11041
- "name": "handleInput",
11042
11008
  "privacy": "protected",
11043
- "parameters": [
11044
- {
11045
- "name": "e",
11046
- "type": {
11047
- "text": "Event"
11048
- }
11049
- }
11050
- ],
11009
+ "default": "\"error\"",
11051
11010
  "inheritedFrom": {
11052
11011
  "name": "FormAssociatedMixin",
11053
11012
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11055,9 +11014,10 @@
11055
11014
  },
11056
11015
  {
11057
11016
  "kind": "field",
11058
- "name": "labelSlot",
11017
+ "name": "hintSlot",
11059
11018
  "privacy": "protected",
11060
- "default": "new SlotController(this, \"label\")",
11019
+ "default": "new LightSlotController(this, {\n slotName: \"hint\",\n render: () => (this.hint ? html`<div slot=\"hint-internal\" id=${this.hintId}>${this.hint}</div>` : nothing),\n syncLightDom: element => {\n element.id = this.hintId\n },\n })",
11020
+ "description": "For accessibility reasons, we render some parts of the component to the light DOM.",
11061
11021
  "inheritedFrom": {
11062
11022
  "name": "FormAssociatedMixin",
11063
11023
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11065,9 +11025,9 @@
11065
11025
  },
11066
11026
  {
11067
11027
  "kind": "field",
11068
- "name": "errorSlot",
11028
+ "name": "labelSlot",
11069
11029
  "privacy": "protected",
11070
- "default": "new SlotController(this, \"error\")",
11030
+ "default": "new LightSlotController(this, {\n slotName: \"label\",\n render: () => (this.label ? html`<label slot=\"label-internal\" for=${this.inputId}>${this.label}</label>` : nothing),\n syncLightDom: element => {\n if (!isLabel(element)) {\n // eslint-disable-next-line no-console\n console.warn(`NORD: Only <label> elements should be placed in radio's \"label\" slot`)\n } else {\n element.htmlFor = this.inputId\n }\n },\n })",
11071
11031
  "inheritedFrom": {
11072
11032
  "name": "FormAssociatedMixin",
11073
11033
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11075,9 +11035,9 @@
11075
11035
  },
11076
11036
  {
11077
11037
  "kind": "field",
11078
- "name": "hintSlot",
11038
+ "name": "errorSlot",
11079
11039
  "privacy": "protected",
11080
- "default": "new SlotController(this, \"hint\")",
11040
+ "default": "new LightSlotController(this, {\n slotName: \"error\",\n render: () => (this.error ? html`<div slot=\"error-internal\" id=${this.errorId}>${this.error}</div>` : nothing),\n syncLightDom: element => {\n element.id = this.hintId\n },\n })",
11081
11041
  "inheritedFrom": {
11082
11042
  "name": "FormAssociatedMixin",
11083
11043
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11085,13 +11045,9 @@
11085
11045
  },
11086
11046
  {
11087
11047
  "kind": "field",
11088
- "name": "formData",
11048
+ "name": "inputSlot",
11089
11049
  "privacy": "protected",
11090
- "default": "new FormDataController(this, { value: () => this.formValue })",
11091
- "inheritedFrom": {
11092
- "name": "FormAssociatedMixin",
11093
- "module": "src/common/mixins/FormAssociatedMixin.ts"
11094
- }
11050
+ "default": "new LightDomController(this, {\n render: () =>\n html`\n <input\n slot=\"input\"\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n ${ref(this.focusableRef)}\n class=\"n-input\"\n id=${this.inputId}\n type=\"radio\"\n name=${cond(this.name)}\n .value=${cond(this.value)}\n .checked=${this.checked}\n ?disabled=${this.disabled}\n ?required=${this.required}\n aria-describedby=${cond(this.getDescribedBy())}\n aria-invalid=${cond(this.getInvalid())}\n form=${cond(this._formId)}\n />\n `,\n })"
11095
11051
  },
11096
11052
  {
11097
11053
  "kind": "field",
@@ -11105,25 +11061,50 @@
11105
11061
  },
11106
11062
  {
11107
11063
  "kind": "field",
11108
- "name": "inputId",
11064
+ "name": "checked",
11109
11065
  "type": {
11110
- "text": "string"
11066
+ "text": "boolean"
11111
11067
  },
11068
+ "default": "false",
11069
+ "description": "Controls whether the checkbox is checked or not.",
11070
+ "attribute": "checked",
11071
+ "reflects": true
11072
+ },
11073
+ {
11074
+ "kind": "method",
11075
+ "name": "handleCheckedChange",
11112
11076
  "privacy": "protected",
11113
- "default": "\"input\"",
11114
- "inheritedFrom": {
11115
- "name": "FormAssociatedMixin",
11116
- "module": "src/common/mixins/FormAssociatedMixin.ts"
11117
- }
11077
+ "parameters": [
11078
+ {
11079
+ "name": "previousChecked",
11080
+ "type": {
11081
+ "text": "boolean"
11082
+ }
11083
+ }
11084
+ ]
11118
11085
  },
11119
11086
  {
11120
- "kind": "field",
11121
- "name": "errorId",
11122
- "type": {
11123
- "text": "string"
11124
- },
11087
+ "kind": "method",
11088
+ "name": "uncheckSiblings",
11089
+ "privacy": "private"
11090
+ },
11091
+ {
11092
+ "kind": "method",
11093
+ "name": "handleChange",
11125
11094
  "privacy": "protected",
11126
- "default": "\"error\"",
11095
+ "parameters": [
11096
+ {
11097
+ "name": "e",
11098
+ "type": {
11099
+ "text": "Event"
11100
+ }
11101
+ }
11102
+ ],
11103
+ "return": {
11104
+ "type": {
11105
+ "text": "void"
11106
+ }
11107
+ },
11127
11108
  "inheritedFrom": {
11128
11109
  "name": "FormAssociatedMixin",
11129
11110
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11131,12 +11112,19 @@
11131
11112
  },
11132
11113
  {
11133
11114
  "kind": "field",
11134
- "name": "hintId",
11135
- "type": {
11136
- "text": "string"
11137
- },
11115
+ "name": "handleBlur",
11116
+ "privacy": "private"
11117
+ },
11118
+ {
11119
+ "kind": "field",
11120
+ "name": "handleFocus",
11121
+ "privacy": "private"
11122
+ },
11123
+ {
11124
+ "kind": "field",
11125
+ "name": "formData",
11138
11126
  "privacy": "protected",
11139
- "default": "\"hint\"",
11127
+ "default": "new FormDataController(this, { value: () => this.formValue })",
11140
11128
  "inheritedFrom": {
11141
11129
  "name": "FormAssociatedMixin",
11142
11130
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11239,7 +11227,7 @@
11239
11227
  },
11240
11228
  {
11241
11229
  "kind": "method",
11242
- "name": "handleChange",
11230
+ "name": "handleInput",
11243
11231
  "privacy": "protected",
11244
11232
  "parameters": [
11245
11233
  {
@@ -11319,35 +11307,6 @@
11319
11307
  "module": "src/common/mixins/FormAssociatedMixin.ts"
11320
11308
  }
11321
11309
  },
11322
- {
11323
- "kind": "field",
11324
- "name": "autocomplete",
11325
- "type": {
11326
- "text": "AutocompleteAttribute"
11327
- },
11328
- "default": "\"off\"",
11329
- "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
11330
- "attribute": "autocomplete",
11331
- "inheritedFrom": {
11332
- "name": "AutocompleteMixin",
11333
- "module": "src/common/mixins/AutocompleteMixin.ts"
11334
- }
11335
- },
11336
- {
11337
- "kind": "field",
11338
- "name": "readonly",
11339
- "type": {
11340
- "text": "boolean"
11341
- },
11342
- "default": "false",
11343
- "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
11344
- "attribute": "readonly",
11345
- "reflects": true,
11346
- "inheritedFrom": {
11347
- "name": "ReadonlyMixin",
11348
- "module": "src/common/mixins/ReadonlyMixin.ts"
11349
- }
11350
- },
11351
11310
  {
11352
11311
  "kind": "field",
11353
11312
  "name": "disabled",
@@ -11475,66 +11434,15 @@
11475
11434
  }
11476
11435
  }
11477
11436
  ],
11478
- "events": [
11479
- {
11480
- "name": "input",
11481
- "type": {
11482
- "text": "NordEvent"
11483
- },
11484
- "description": "Fired as the user types into the input.",
11485
- "inheritedFrom": {
11486
- "name": "FormAssociatedMixin",
11487
- "module": "src/common/mixins/FormAssociatedMixin.ts"
11488
- }
11489
- },
11490
- {
11491
- "name": "change",
11492
- "type": {
11493
- "text": "NordEvent"
11494
- },
11495
- "description": "Fired whenever the input's value is changed via user interaction.",
11496
- "inheritedFrom": {
11497
- "name": "FormAssociatedMixin",
11498
- "module": "src/common/mixins/FormAssociatedMixin.ts"
11499
- }
11500
- }
11501
- ],
11502
11437
  "attributes": [
11503
11438
  {
11504
- "name": "min",
11505
- "type": {
11506
- "text": "number"
11507
- },
11508
- "default": "0",
11509
- "description": "Minimum value for the range slider.",
11510
- "fieldName": "min"
11511
- },
11512
- {
11513
- "name": "max",
11514
- "type": {
11515
- "text": "number"
11516
- },
11517
- "default": "10",
11518
- "description": "Maximum value for the range slider.",
11519
- "fieldName": "max"
11520
- },
11521
- {
11522
- "name": "step",
11523
- "type": {
11524
- "text": "number"
11525
- },
11526
- "default": "1",
11527
- "description": "Step amount for the range slider.",
11528
- "fieldName": "step"
11529
- },
11530
- {
11531
- "name": "expand",
11439
+ "name": "checked",
11532
11440
  "type": {
11533
11441
  "text": "boolean"
11534
11442
  },
11535
11443
  "default": "false",
11536
- "description": "Controls whether the input expands to fill the width of its container.",
11537
- "fieldName": "expand"
11444
+ "description": "Controls whether the checkbox is checked or not.",
11445
+ "fieldName": "checked"
11538
11446
  },
11539
11447
  {
11540
11448
  "name": "label",
@@ -11624,32 +11532,6 @@
11624
11532
  "module": "src/common/mixins/FormAssociatedMixin.ts"
11625
11533
  }
11626
11534
  },
11627
- {
11628
- "name": "autocomplete",
11629
- "type": {
11630
- "text": "AutocompleteAttribute"
11631
- },
11632
- "default": "\"off\"",
11633
- "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
11634
- "fieldName": "autocomplete",
11635
- "inheritedFrom": {
11636
- "name": "AutocompleteMixin",
11637
- "module": "src/common/mixins/AutocompleteMixin.ts"
11638
- }
11639
- },
11640
- {
11641
- "name": "readonly",
11642
- "type": {
11643
- "text": "boolean"
11644
- },
11645
- "default": "false",
11646
- "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
11647
- "fieldName": "readonly",
11648
- "inheritedFrom": {
11649
- "name": "ReadonlyMixin",
11650
- "module": "src/common/mixins/ReadonlyMixin.ts"
11651
- }
11652
- },
11653
11535
  {
11654
11536
  "name": "disabled",
11655
11537
  "type": {
@@ -11706,14 +11588,6 @@
11706
11588
  "name": "FormAssociatedMixin",
11707
11589
  "module": "/src/common/mixins/FormAssociatedMixin.js"
11708
11590
  },
11709
- {
11710
- "name": "AutocompleteMixin",
11711
- "module": "/src/common/mixins/AutocompleteMixin.js"
11712
- },
11713
- {
11714
- "name": "ReadonlyMixin",
11715
- "module": "/src/common/mixins/ReadonlyMixin.js"
11716
- },
11717
11591
  {
11718
11592
  "name": "InputMixin",
11719
11593
  "module": "/src/common/mixins/InputMixin.js"
@@ -11728,13 +11602,37 @@
11728
11602
  "package": "lit"
11729
11603
  },
11730
11604
  "localization": [],
11731
- "status": "new",
11605
+ "status": "ready",
11732
11606
  "category": "form",
11733
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to let user specify a numeric value using a slider.\n- Use when the accuracy of the numeric value entered isn’t important.\n- Always use with a label, even if that label is hidden.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use when the accuracy of the numeric value entered is important.\n- For entering arbitrary numeric values. Use [input component](/components/input/) instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nRange labels act as a title for the range input. Labels should typically be short and in noun form:\n\n<div class=\"n-usage n-usage-do\">Lightness percentage</div>\n<div class=\"n-usage n-usage-dont\">What is the lightness percentage?</div>\n\nWhen writing range 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\">Item price</div>\n<div class=\"n-usage n-usage-dont\">Item Price</div>\n\nDo not use colons in range label:\n\n<div class=\"n-usage n-usage-do\">Color depth</div>\n<div class=\"n-usage n-usage-dont\">Color depth:</div>\n",
11607
+ "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 a radio component when users can only select one option from a list.\n- Favour radios over a select component when there are a small number of options. This reduces the number of clicks a user has to make, increasing efficiency.\n- Radio buttons are grouped by their `name` attribute. Therefore, it is crucial that the same `name` is used for a group of radios.\n- Give each radio within a group a unique `value`.\n- Radios **must** be used in combination with a fieldset component.\n- In most cases, a stack component should be used to layout a group of radio buttons.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place interactive content (buttons, links etc) inside the label.\n- Don’t use when a user can select more than one option. In this case, use a checkbox instead.\n- Don’t use for “accepting terms of service” and similar functionality. Use a checkbox instead.\n- When you have more than 10 options to choose from. Consider using a select instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nRadio button labels should be clear, accurate and predictable. It should be possible for the user to understand what they are enabling or disabling:\n\n<div class=\"n-usage n-usage-do\">User settings</div>\n<div class=\"n-usage n-usage-dont\">Option 1</div>\n\nWhen writing radio 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 ending in punctuation if it’s a single sentence, word, or a fragment:\n\n<div class=\"n-usage n-usage-do\">Blue</div>\n<div class=\"n-usage n-usage-dont\">Blue.</div>\n\nDo not use commas or semicolons at the end of each line\n\n<div class=\"n-usage n-usage-do\">Patient</div>\n<div class=\"n-usage n-usage-dont\">Patient;</div>\n\n---\n\n## Additional considerations\n\n- Hint text can be used to offer further information or explanation for an option.\n- Once a radio has been selected, users cannot return to having no radios selected without refreshing their browser window. Therefore, you should include \"None of the above\" or \"I do not know\" if they are valid options.\n- In most cases, radio buttons should be stacked vertically. However, radio buttons can be stacked horizontally when there are only two options with short labels. An example might be a yes/no question.\n",
11734
11608
  "examples": [],
11735
11609
  "dependencies": [],
11736
- "tagName": "nord-range",
11737
- "customElement": true
11610
+ "tagName": "nord-radio",
11611
+ "customElement": true,
11612
+ "events": [
11613
+ {
11614
+ "name": "input",
11615
+ "type": {
11616
+ "text": "NordEvent"
11617
+ },
11618
+ "description": "Fired as the user types into the input.",
11619
+ "inheritedFrom": {
11620
+ "name": "FormAssociatedMixin",
11621
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
11622
+ }
11623
+ },
11624
+ {
11625
+ "name": "change",
11626
+ "type": {
11627
+ "text": "NordEvent"
11628
+ },
11629
+ "description": "Fired whenever the input's value is changed via user interaction.",
11630
+ "inheritedFrom": {
11631
+ "name": "FormAssociatedMixin",
11632
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
11633
+ }
11634
+ }
11635
+ ]
11738
11636
  }
11739
11637
  ],
11740
11638
  "exports": [
@@ -11742,28 +11640,50 @@
11742
11640
  "kind": "js",
11743
11641
  "name": "default",
11744
11642
  "declaration": {
11745
- "name": "Range",
11746
- "module": "src/range/Range.ts"
11643
+ "name": "Radio",
11644
+ "module": "src/radio/Radio.ts"
11747
11645
  }
11748
11646
  },
11749
11647
  {
11750
11648
  "kind": "custom-element-definition",
11751
- "name": "nord-range",
11649
+ "name": "nord-radio",
11752
11650
  "declaration": {
11753
- "name": "Range",
11754
- "module": "src/range/Range.ts"
11651
+ "name": "Radio",
11652
+ "module": "src/radio/Radio.ts"
11755
11653
  }
11756
11654
  }
11757
11655
  ]
11758
11656
  },
11759
11657
  {
11760
11658
  "kind": "javascript-module",
11761
- "path": "src/radio/Radio.ts",
11659
+ "path": "src/range/Range.ts",
11762
11660
  "declarations": [
11763
11661
  {
11764
11662
  "kind": "class",
11765
- "description": "Radio buttons are graphical user interface elements that allow user to choose only one option from\na predefined set of mutually exclusive options.",
11766
- "name": "Radio",
11663
+ "description": "Range input lets user specify a numeric value using a slider which\nmust be no less than a given value, and no more than another given value.",
11664
+ "name": "Range",
11665
+ "cssProperties": [
11666
+ {
11667
+ "description": "Controls the size of the thumb.",
11668
+ "name": "--n-range-thumb-size",
11669
+ "default": "20px"
11670
+ },
11671
+ {
11672
+ "description": "Controls the color of the portion of the track that represents the current value.",
11673
+ "name": "--n-range-track-color-active",
11674
+ "default": "var(--n-color-accent)"
11675
+ },
11676
+ {
11677
+ "description": "Controls the color of the portion of the track that represents the remaining value.",
11678
+ "name": "--n-range-track-color-inactive",
11679
+ "default": "var(--n-color-border-strong)"
11680
+ },
11681
+ {
11682
+ "description": "Controls the height of the track.",
11683
+ "name": "--n-range-track-size",
11684
+ "default": "3px"
11685
+ }
11686
+ ],
11767
11687
  "slots": [
11768
11688
  {
11769
11689
  "description": "Use when a label requires more than plain text.",
@@ -11781,25 +11701,63 @@
11781
11701
  "members": [
11782
11702
  {
11783
11703
  "kind": "field",
11784
- "name": "inputId",
11704
+ "name": "direction",
11705
+ "privacy": "private",
11706
+ "default": "new DirectionController(this)"
11707
+ },
11708
+ {
11709
+ "kind": "field",
11710
+ "name": "min",
11785
11711
  "type": {
11786
- "text": "string"
11712
+ "text": "number"
11787
11713
  },
11788
- "privacy": "protected",
11789
- "default": "\"input\"",
11790
- "inheritedFrom": {
11791
- "name": "FormAssociatedMixin",
11792
- "module": "src/common/mixins/FormAssociatedMixin.ts"
11793
- }
11714
+ "default": "0",
11715
+ "description": "Minimum value for the range slider.",
11716
+ "attribute": "min"
11794
11717
  },
11795
11718
  {
11796
11719
  "kind": "field",
11797
- "name": "hintId",
11720
+ "name": "max",
11798
11721
  "type": {
11799
- "text": "string"
11722
+ "text": "number"
11723
+ },
11724
+ "default": "10",
11725
+ "description": "Maximum value for the range slider.",
11726
+ "attribute": "max"
11727
+ },
11728
+ {
11729
+ "kind": "field",
11730
+ "name": "step",
11731
+ "type": {
11732
+ "text": "number"
11733
+ },
11734
+ "default": "1",
11735
+ "description": "Step amount for the range slider.",
11736
+ "attribute": "step"
11737
+ },
11738
+ {
11739
+ "kind": "field",
11740
+ "name": "expand",
11741
+ "type": {
11742
+ "text": "boolean"
11800
11743
  },
11744
+ "default": "false",
11745
+ "description": "Controls whether the input expands to fill the width of its container.",
11746
+ "attribute": "expand",
11747
+ "reflects": true
11748
+ },
11749
+ {
11750
+ "kind": "method",
11751
+ "name": "handleInput",
11801
11752
  "privacy": "protected",
11802
- "default": "\"hint\"",
11753
+ "parameters": [
11754
+ {
11755
+ "name": "e",
11756
+ "type": {
11757
+ "text": "Event"
11758
+ }
11759
+ }
11760
+ ],
11803
11761
  "inheritedFrom": {
11804
11762
  "name": "FormAssociatedMixin",
11805
11763
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11807,12 +11765,9 @@
11807
11765
  },
11808
11766
  {
11809
11767
  "kind": "field",
11810
- "name": "errorId",
11811
- "type": {
11812
- "text": "string"
11813
- },
11768
+ "name": "labelSlot",
11814
11769
  "privacy": "protected",
11815
- "default": "\"error\"",
11770
+ "default": "new SlotController(this, \"label\")",
11816
11771
  "inheritedFrom": {
11817
11772
  "name": "FormAssociatedMixin",
11818
11773
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11820,10 +11775,9 @@
11820
11775
  },
11821
11776
  {
11822
11777
  "kind": "field",
11823
- "name": "hintSlot",
11778
+ "name": "errorSlot",
11824
11779
  "privacy": "protected",
11825
- "default": "new LightSlotController(this, {\n slotName: \"hint\",\n render: () => (this.hint ? html`<div slot=\"hint-internal\" id=${this.hintId}>${this.hint}</div>` : nothing),\n syncLightDom: element => {\n element.id = this.hintId\n },\n })",
11826
- "description": "For accessibility reasons, we render some parts of the component to the light DOM.",
11780
+ "default": "new SlotController(this, \"error\")",
11827
11781
  "inheritedFrom": {
11828
11782
  "name": "FormAssociatedMixin",
11829
11783
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11831,9 +11785,9 @@
11831
11785
  },
11832
11786
  {
11833
11787
  "kind": "field",
11834
- "name": "labelSlot",
11788
+ "name": "hintSlot",
11835
11789
  "privacy": "protected",
11836
- "default": "new LightSlotController(this, {\n slotName: \"label\",\n render: () => (this.label ? html`<label slot=\"label-internal\" for=${this.inputId}>${this.label}</label>` : nothing),\n syncLightDom: element => {\n if (!isLabel(element)) {\n // eslint-disable-next-line no-console\n console.warn(`NORD: Only <label> elements should be placed in radio's \"label\" slot`)\n } else {\n element.htmlFor = this.inputId\n }\n },\n })",
11790
+ "default": "new SlotController(this, \"hint\")",
11837
11791
  "inheritedFrom": {
11838
11792
  "name": "FormAssociatedMixin",
11839
11793
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11841,20 +11795,14 @@
11841
11795
  },
11842
11796
  {
11843
11797
  "kind": "field",
11844
- "name": "errorSlot",
11798
+ "name": "formData",
11845
11799
  "privacy": "protected",
11846
- "default": "new LightSlotController(this, {\n slotName: \"error\",\n render: () => (this.error ? html`<div slot=\"error-internal\" id=${this.errorId}>${this.error}</div>` : nothing),\n syncLightDom: element => {\n element.id = this.hintId\n },\n })",
11800
+ "default": "new FormDataController(this, { value: () => this.formValue })",
11847
11801
  "inheritedFrom": {
11848
11802
  "name": "FormAssociatedMixin",
11849
11803
  "module": "src/common/mixins/FormAssociatedMixin.ts"
11850
11804
  }
11851
11805
  },
11852
- {
11853
- "kind": "field",
11854
- "name": "inputSlot",
11855
- "privacy": "protected",
11856
- "default": "new LightDomController(this, {\n render: () =>\n html`\n <input\n slot=\"input\"\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n ${ref(this.focusableRef)}\n class=\"n-input\"\n id=${this.inputId}\n type=\"radio\"\n name=${cond(this.name)}\n .value=${cond(this.value)}\n .checked=${this.checked}\n ?disabled=${this.disabled}\n ?required=${this.required}\n aria-describedby=${cond(this.getDescribedBy())}\n aria-invalid=${cond(this.getInvalid())}\n form=${cond(this._formId)}\n />\n `,\n })"
11857
- },
11858
11806
  {
11859
11807
  "kind": "field",
11860
11808
  "name": "formValue",
@@ -11867,50 +11815,12 @@
11867
11815
  },
11868
11816
  {
11869
11817
  "kind": "field",
11870
- "name": "checked",
11818
+ "name": "inputId",
11871
11819
  "type": {
11872
- "text": "boolean"
11820
+ "text": "string"
11873
11821
  },
11874
- "default": "false",
11875
- "description": "Controls whether the checkbox is checked or not.",
11876
- "attribute": "checked",
11877
- "reflects": true
11878
- },
11879
- {
11880
- "kind": "method",
11881
- "name": "handleCheckedChange",
11882
- "privacy": "protected",
11883
- "parameters": [
11884
- {
11885
- "name": "previousChecked",
11886
- "type": {
11887
- "text": "boolean"
11888
- }
11889
- }
11890
- ]
11891
- },
11892
- {
11893
- "kind": "method",
11894
- "name": "uncheckSiblings",
11895
- "privacy": "private"
11896
- },
11897
- {
11898
- "kind": "method",
11899
- "name": "handleChange",
11900
11822
  "privacy": "protected",
11901
- "parameters": [
11902
- {
11903
- "name": "e",
11904
- "type": {
11905
- "text": "Event"
11906
- }
11907
- }
11908
- ],
11909
- "return": {
11910
- "type": {
11911
- "text": "void"
11912
- }
11913
- },
11823
+ "default": "\"input\"",
11914
11824
  "inheritedFrom": {
11915
11825
  "name": "FormAssociatedMixin",
11916
11826
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -11918,19 +11828,25 @@
11918
11828
  },
11919
11829
  {
11920
11830
  "kind": "field",
11921
- "name": "handleBlur",
11922
- "privacy": "private"
11923
- },
11924
- {
11925
- "kind": "field",
11926
- "name": "handleFocus",
11927
- "privacy": "private"
11831
+ "name": "errorId",
11832
+ "type": {
11833
+ "text": "string"
11834
+ },
11835
+ "privacy": "protected",
11836
+ "default": "\"error\"",
11837
+ "inheritedFrom": {
11838
+ "name": "FormAssociatedMixin",
11839
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
11840
+ }
11928
11841
  },
11929
11842
  {
11930
11843
  "kind": "field",
11931
- "name": "formData",
11844
+ "name": "hintId",
11845
+ "type": {
11846
+ "text": "string"
11847
+ },
11932
11848
  "privacy": "protected",
11933
- "default": "new FormDataController(this, { value: () => this.formValue })",
11849
+ "default": "\"hint\"",
11934
11850
  "inheritedFrom": {
11935
11851
  "name": "FormAssociatedMixin",
11936
11852
  "module": "src/common/mixins/FormAssociatedMixin.ts"
@@ -12033,7 +11949,7 @@
12033
11949
  },
12034
11950
  {
12035
11951
  "kind": "method",
12036
- "name": "handleInput",
11952
+ "name": "handleChange",
12037
11953
  "privacy": "protected",
12038
11954
  "parameters": [
12039
11955
  {
@@ -12113,6 +12029,35 @@
12113
12029
  "module": "src/common/mixins/FormAssociatedMixin.ts"
12114
12030
  }
12115
12031
  },
12032
+ {
12033
+ "kind": "field",
12034
+ "name": "autocomplete",
12035
+ "type": {
12036
+ "text": "AutocompleteAttribute"
12037
+ },
12038
+ "default": "\"off\"",
12039
+ "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
12040
+ "attribute": "autocomplete",
12041
+ "inheritedFrom": {
12042
+ "name": "AutocompleteMixin",
12043
+ "module": "src/common/mixins/AutocompleteMixin.ts"
12044
+ }
12045
+ },
12046
+ {
12047
+ "kind": "field",
12048
+ "name": "readonly",
12049
+ "type": {
12050
+ "text": "boolean"
12051
+ },
12052
+ "default": "false",
12053
+ "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
12054
+ "attribute": "readonly",
12055
+ "reflects": true,
12056
+ "inheritedFrom": {
12057
+ "name": "ReadonlyMixin",
12058
+ "module": "src/common/mixins/ReadonlyMixin.ts"
12059
+ }
12060
+ },
12116
12061
  {
12117
12062
  "kind": "field",
12118
12063
  "name": "disabled",
@@ -12240,15 +12185,66 @@
12240
12185
  }
12241
12186
  }
12242
12187
  ],
12188
+ "events": [
12189
+ {
12190
+ "name": "input",
12191
+ "type": {
12192
+ "text": "NordEvent"
12193
+ },
12194
+ "description": "Fired as the user types into the input.",
12195
+ "inheritedFrom": {
12196
+ "name": "FormAssociatedMixin",
12197
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
12198
+ }
12199
+ },
12200
+ {
12201
+ "name": "change",
12202
+ "type": {
12203
+ "text": "NordEvent"
12204
+ },
12205
+ "description": "Fired whenever the input's value is changed via user interaction.",
12206
+ "inheritedFrom": {
12207
+ "name": "FormAssociatedMixin",
12208
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
12209
+ }
12210
+ }
12211
+ ],
12243
12212
  "attributes": [
12244
12213
  {
12245
- "name": "checked",
12214
+ "name": "min",
12215
+ "type": {
12216
+ "text": "number"
12217
+ },
12218
+ "default": "0",
12219
+ "description": "Minimum value for the range slider.",
12220
+ "fieldName": "min"
12221
+ },
12222
+ {
12223
+ "name": "max",
12224
+ "type": {
12225
+ "text": "number"
12226
+ },
12227
+ "default": "10",
12228
+ "description": "Maximum value for the range slider.",
12229
+ "fieldName": "max"
12230
+ },
12231
+ {
12232
+ "name": "step",
12233
+ "type": {
12234
+ "text": "number"
12235
+ },
12236
+ "default": "1",
12237
+ "description": "Step amount for the range slider.",
12238
+ "fieldName": "step"
12239
+ },
12240
+ {
12241
+ "name": "expand",
12246
12242
  "type": {
12247
12243
  "text": "boolean"
12248
12244
  },
12249
12245
  "default": "false",
12250
- "description": "Controls whether the checkbox is checked or not.",
12251
- "fieldName": "checked"
12246
+ "description": "Controls whether the input expands to fill the width of its container.",
12247
+ "fieldName": "expand"
12252
12248
  },
12253
12249
  {
12254
12250
  "name": "label",
@@ -12338,6 +12334,32 @@
12338
12334
  "module": "src/common/mixins/FormAssociatedMixin.ts"
12339
12335
  }
12340
12336
  },
12337
+ {
12338
+ "name": "autocomplete",
12339
+ "type": {
12340
+ "text": "AutocompleteAttribute"
12341
+ },
12342
+ "default": "\"off\"",
12343
+ "description": "Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.",
12344
+ "fieldName": "autocomplete",
12345
+ "inheritedFrom": {
12346
+ "name": "AutocompleteMixin",
12347
+ "module": "src/common/mixins/AutocompleteMixin.ts"
12348
+ }
12349
+ },
12350
+ {
12351
+ "name": "readonly",
12352
+ "type": {
12353
+ "text": "boolean"
12354
+ },
12355
+ "default": "false",
12356
+ "description": "Makes the component readonly, so that it is not editable.\nReadonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.",
12357
+ "fieldName": "readonly",
12358
+ "inheritedFrom": {
12359
+ "name": "ReadonlyMixin",
12360
+ "module": "src/common/mixins/ReadonlyMixin.ts"
12361
+ }
12362
+ },
12341
12363
  {
12342
12364
  "name": "disabled",
12343
12365
  "type": {
@@ -12395,50 +12417,34 @@
12395
12417
  "module": "/src/common/mixins/FormAssociatedMixin.js"
12396
12418
  },
12397
12419
  {
12398
- "name": "InputMixin",
12399
- "module": "/src/common/mixins/InputMixin.js"
12400
- },
12401
- {
12402
- "name": "FocusableMixin",
12403
- "module": "/src/common/mixins/FocusableMixin.js"
12404
- }
12405
- ],
12406
- "superclass": {
12407
- "name": "LitElement",
12408
- "package": "lit"
12409
- },
12410
- "localization": [],
12411
- "status": "ready",
12412
- "category": "form",
12413
- "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 a radio component when users can only select one option from a list.\n- Favour radios over a select component when there are a small number of options. This reduces the number of clicks a user has to make, increasing efficiency.\n- Radio buttons are grouped by their `name` attribute. Therefore, it is crucial that the same `name` is used for a group of radios.\n- Give each radio within a group a unique `value`.\n- Radios **must** be used in combination with a fieldset component.\n- In most cases, a stack component should be used to layout a group of radio buttons.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place interactive content (buttons, links etc) inside the label.\n- Don’t use when a user can select more than one option. In this case, use a checkbox instead.\n- Don’t use for “accepting terms of service” and similar functionality. Use a checkbox instead.\n- When you have more than 10 options to choose from. Consider using a select instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nRadio button labels should be clear, accurate and predictable. It should be possible for the user to understand what they are enabling or disabling:\n\n<div class=\"n-usage n-usage-do\">User settings</div>\n<div class=\"n-usage n-usage-dont\">Option 1</div>\n\nWhen writing radio 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 ending in punctuation if it’s a single sentence, word, or a fragment:\n\n<div class=\"n-usage n-usage-do\">Blue</div>\n<div class=\"n-usage n-usage-dont\">Blue.</div>\n\nDo not use commas or semicolons at the end of each line\n\n<div class=\"n-usage n-usage-do\">Patient</div>\n<div class=\"n-usage n-usage-dont\">Patient;</div>\n\n---\n\n## Additional considerations\n\n- Hint text can be used to offer further information or explanation for an option.\n- Once a radio has been selected, users cannot return to having no radios selected without refreshing their browser window. Therefore, you should include \"None of the above\" or \"I do not know\" if they are valid options.\n- In most cases, radio buttons should be stacked vertically. However, radio buttons can be stacked horizontally when there are only two options with short labels. An example might be a yes/no question.\n",
12414
- "examples": [],
12415
- "dependencies": [],
12416
- "tagName": "nord-radio",
12417
- "customElement": true,
12418
- "events": [
12419
- {
12420
- "name": "input",
12421
- "type": {
12422
- "text": "NordEvent"
12423
- },
12424
- "description": "Fired as the user types into the input.",
12425
- "inheritedFrom": {
12426
- "name": "FormAssociatedMixin",
12427
- "module": "src/common/mixins/FormAssociatedMixin.ts"
12428
- }
12420
+ "name": "AutocompleteMixin",
12421
+ "module": "/src/common/mixins/AutocompleteMixin.js"
12429
12422
  },
12430
12423
  {
12431
- "name": "change",
12432
- "type": {
12433
- "text": "NordEvent"
12434
- },
12435
- "description": "Fired whenever the input's value is changed via user interaction.",
12436
- "inheritedFrom": {
12437
- "name": "FormAssociatedMixin",
12438
- "module": "src/common/mixins/FormAssociatedMixin.ts"
12439
- }
12424
+ "name": "ReadonlyMixin",
12425
+ "module": "/src/common/mixins/ReadonlyMixin.js"
12426
+ },
12427
+ {
12428
+ "name": "InputMixin",
12429
+ "module": "/src/common/mixins/InputMixin.js"
12430
+ },
12431
+ {
12432
+ "name": "FocusableMixin",
12433
+ "module": "/src/common/mixins/FocusableMixin.js"
12440
12434
  }
12441
- ]
12435
+ ],
12436
+ "superclass": {
12437
+ "name": "LitElement",
12438
+ "package": "lit"
12439
+ },
12440
+ "localization": [],
12441
+ "status": "new",
12442
+ "category": "form",
12443
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to let user specify a numeric value using a slider.\n- Use when the accuracy of the numeric value entered isn’t important.\n- Always use with a label, even if that label is hidden.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use when the accuracy of the numeric value entered is important.\n- For entering arbitrary numeric values. Use [input component](/components/input/) instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nRange labels act as a title for the range input. Labels should typically be short and in noun form:\n\n<div class=\"n-usage n-usage-do\">Lightness percentage</div>\n<div class=\"n-usage n-usage-dont\">What is the lightness percentage?</div>\n\nWhen writing range 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\">Item price</div>\n<div class=\"n-usage n-usage-dont\">Item Price</div>\n\nDo not use colons in range label:\n\n<div class=\"n-usage n-usage-do\">Color depth</div>\n<div class=\"n-usage n-usage-dont\">Color depth:</div>\n",
12444
+ "examples": [],
12445
+ "dependencies": [],
12446
+ "tagName": "nord-range",
12447
+ "customElement": true
12442
12448
  }
12443
12449
  ],
12444
12450
  "exports": [
@@ -12446,16 +12452,16 @@
12446
12452
  "kind": "js",
12447
12453
  "name": "default",
12448
12454
  "declaration": {
12449
- "name": "Radio",
12450
- "module": "src/radio/Radio.ts"
12455
+ "name": "Range",
12456
+ "module": "src/range/Range.ts"
12451
12457
  }
12452
12458
  },
12453
12459
  {
12454
12460
  "kind": "custom-element-definition",
12455
- "name": "nord-radio",
12461
+ "name": "nord-range",
12456
12462
  "declaration": {
12457
- "name": "Radio",
12458
- "module": "src/radio/Radio.ts"
12463
+ "name": "Range",
12464
+ "module": "src/range/Range.ts"
12459
12465
  }
12460
12466
  }
12461
12467
  ]
@@ -13328,6 +13334,114 @@
13328
13334
  }
13329
13335
  ]
13330
13336
  },
13337
+ {
13338
+ "kind": "javascript-module",
13339
+ "path": "src/spinner/Spinner.ts",
13340
+ "declarations": [
13341
+ {
13342
+ "kind": "class",
13343
+ "description": "Spinner component is used to indicate users that their action is being\nprocessed. You can customize the size and color of the spinner with the\nprovided properties.",
13344
+ "name": "Spinner",
13345
+ "cssProperties": [
13346
+ {
13347
+ "description": "Controls the color the spinner.",
13348
+ "name": "--n-spinner-color",
13349
+ "default": "var(--n-color-accent)"
13350
+ }
13351
+ ],
13352
+ "members": [
13353
+ {
13354
+ "kind": "field",
13355
+ "name": "size",
13356
+ "type": {
13357
+ "text": "\"xs\" | \"s\" | \"m\" | \"l\" | \"xl\" | \"xxl\""
13358
+ },
13359
+ "default": "\"m\"",
13360
+ "description": "The size of the spinner.",
13361
+ "attribute": "size",
13362
+ "reflects": true
13363
+ },
13364
+ {
13365
+ "kind": "field",
13366
+ "name": "color",
13367
+ "type": {
13368
+ "text": "string | undefined"
13369
+ },
13370
+ "description": "The color of the spinner.\nCan accept any valid CSS color value, including custom properties.\nTakes precedence over the `--n-spinner-color` CSS custom property.",
13371
+ "attribute": "color",
13372
+ "reflects": true
13373
+ },
13374
+ {
13375
+ "kind": "field",
13376
+ "name": "label",
13377
+ "type": {
13378
+ "text": "string | undefined"
13379
+ },
13380
+ "description": "An accessible label for the spinner.\nIf no label is supplied, the spinner is hidden from assistive technology.",
13381
+ "attribute": "label",
13382
+ "reflects": true
13383
+ }
13384
+ ],
13385
+ "attributes": [
13386
+ {
13387
+ "name": "size",
13388
+ "type": {
13389
+ "text": "\"xs\" | \"s\" | \"m\" | \"l\" | \"xl\" | \"xxl\""
13390
+ },
13391
+ "default": "\"m\"",
13392
+ "description": "The size of the spinner.",
13393
+ "fieldName": "size"
13394
+ },
13395
+ {
13396
+ "name": "color",
13397
+ "type": {
13398
+ "text": "string | undefined"
13399
+ },
13400
+ "description": "The color of the spinner.\nCan accept any valid CSS color value, including custom properties.\nTakes precedence over the `--n-spinner-color` CSS custom property.",
13401
+ "fieldName": "color"
13402
+ },
13403
+ {
13404
+ "name": "label",
13405
+ "type": {
13406
+ "text": "string | undefined"
13407
+ },
13408
+ "description": "An accessible label for the spinner.\nIf no label is supplied, the spinner is hidden from assistive technology.",
13409
+ "fieldName": "label"
13410
+ }
13411
+ ],
13412
+ "superclass": {
13413
+ "name": "LitElement",
13414
+ "package": "lit"
13415
+ },
13416
+ "localization": [],
13417
+ "status": "ready",
13418
+ "category": "feedback",
13419
+ "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 for indicating users that their action is being processed.\n- Use the label property to provide an accessible label for the spinner. If no label is supplied, the spinner is hidden from assistive technology.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use to show progress. Favor a progress bar instead.\n\n</div>\n",
13420
+ "examples": [],
13421
+ "dependencies": [],
13422
+ "tagName": "nord-spinner",
13423
+ "customElement": true
13424
+ }
13425
+ ],
13426
+ "exports": [
13427
+ {
13428
+ "kind": "js",
13429
+ "name": "default",
13430
+ "declaration": {
13431
+ "name": "Spinner",
13432
+ "module": "src/spinner/Spinner.ts"
13433
+ }
13434
+ },
13435
+ {
13436
+ "kind": "custom-element-definition",
13437
+ "name": "nord-spinner",
13438
+ "declaration": {
13439
+ "name": "Spinner",
13440
+ "module": "src/spinner/Spinner.ts"
13441
+ }
13442
+ }
13443
+ ]
13444
+ },
13331
13445
  {
13332
13446
  "kind": "javascript-module",
13333
13447
  "path": "src/stack/Stack.ts",
@@ -13579,114 +13693,6 @@
13579
13693
  }
13580
13694
  ]
13581
13695
  },
13582
- {
13583
- "kind": "javascript-module",
13584
- "path": "src/spinner/Spinner.ts",
13585
- "declarations": [
13586
- {
13587
- "kind": "class",
13588
- "description": "Spinner component is used to indicate users that their action is being\nprocessed. You can customize the size and color of the spinner with the\nprovided properties.",
13589
- "name": "Spinner",
13590
- "cssProperties": [
13591
- {
13592
- "description": "Controls the color the spinner.",
13593
- "name": "--n-spinner-color",
13594
- "default": "var(--n-color-accent)"
13595
- }
13596
- ],
13597
- "members": [
13598
- {
13599
- "kind": "field",
13600
- "name": "size",
13601
- "type": {
13602
- "text": "\"xs\" | \"s\" | \"m\" | \"l\" | \"xl\" | \"xxl\""
13603
- },
13604
- "default": "\"m\"",
13605
- "description": "The size of the spinner.",
13606
- "attribute": "size",
13607
- "reflects": true
13608
- },
13609
- {
13610
- "kind": "field",
13611
- "name": "color",
13612
- "type": {
13613
- "text": "string | undefined"
13614
- },
13615
- "description": "The color of the spinner.\nCan accept any valid CSS color value, including custom properties.\nTakes precedence over the `--n-spinner-color` CSS custom property.",
13616
- "attribute": "color",
13617
- "reflects": true
13618
- },
13619
- {
13620
- "kind": "field",
13621
- "name": "label",
13622
- "type": {
13623
- "text": "string | undefined"
13624
- },
13625
- "description": "An accessible label for the spinner.\nIf no label is supplied, the spinner is hidden from assistive technology.",
13626
- "attribute": "label",
13627
- "reflects": true
13628
- }
13629
- ],
13630
- "attributes": [
13631
- {
13632
- "name": "size",
13633
- "type": {
13634
- "text": "\"xs\" | \"s\" | \"m\" | \"l\" | \"xl\" | \"xxl\""
13635
- },
13636
- "default": "\"m\"",
13637
- "description": "The size of the spinner.",
13638
- "fieldName": "size"
13639
- },
13640
- {
13641
- "name": "color",
13642
- "type": {
13643
- "text": "string | undefined"
13644
- },
13645
- "description": "The color of the spinner.\nCan accept any valid CSS color value, including custom properties.\nTakes precedence over the `--n-spinner-color` CSS custom property.",
13646
- "fieldName": "color"
13647
- },
13648
- {
13649
- "name": "label",
13650
- "type": {
13651
- "text": "string | undefined"
13652
- },
13653
- "description": "An accessible label for the spinner.\nIf no label is supplied, the spinner is hidden from assistive technology.",
13654
- "fieldName": "label"
13655
- }
13656
- ],
13657
- "superclass": {
13658
- "name": "LitElement",
13659
- "package": "lit"
13660
- },
13661
- "localization": [],
13662
- "status": "ready",
13663
- "category": "feedback",
13664
- "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 for indicating users that their action is being processed.\n- Use the label property to provide an accessible label for the spinner. If no label is supplied, the spinner is hidden from assistive technology.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use to show progress. Favor a progress bar instead.\n\n</div>\n",
13665
- "examples": [],
13666
- "dependencies": [],
13667
- "tagName": "nord-spinner",
13668
- "customElement": true
13669
- }
13670
- ],
13671
- "exports": [
13672
- {
13673
- "kind": "js",
13674
- "name": "default",
13675
- "declaration": {
13676
- "name": "Spinner",
13677
- "module": "src/spinner/Spinner.ts"
13678
- }
13679
- },
13680
- {
13681
- "kind": "custom-element-definition",
13682
- "name": "nord-spinner",
13683
- "declaration": {
13684
- "name": "Spinner",
13685
- "module": "src/spinner/Spinner.ts"
13686
- }
13687
- }
13688
- ]
13689
- },
13690
13696
  {
13691
13697
  "kind": "javascript-module",
13692
13698
  "path": "src/tab-group/TabGroup.ts",
@@ -16991,10 +16997,6 @@
16991
16997
  {
16992
16998
  "kind": "method",
16993
16999
  "name": "hostUpdated"
16994
- },
16995
- {
16996
- "kind": "method",
16997
- "name": "hostDisconnected"
16998
17000
  }
16999
17001
  ]
17000
17002
  }
@@ -17044,10 +17046,6 @@
17044
17046
  "module": "src/common/controllers/SlotController.ts"
17045
17047
  }
17046
17048
  },
17047
- {
17048
- "kind": "method",
17049
- "name": "hostDisconnected"
17050
- },
17051
17049
  {
17052
17050
  "kind": "field",
17053
17051
  "name": "onChange",