@nordhealth/components 1.0.0-alpha.47 → 1.0.0-alpha.50

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 (110) hide show
  1. package/custom-elements.json +329 -282
  2. package/lib/Badge.js +1 -1
  3. package/lib/Badge.js.map +1 -1
  4. package/lib/Button.js +1 -1
  5. package/lib/Button.js.map +1 -1
  6. package/lib/Calendar-6f8b8450.js +13 -0
  7. package/lib/Calendar-6f8b8450.js.map +1 -0
  8. package/lib/Calendar.js +1 -1
  9. package/lib/Card.js +1 -1
  10. package/lib/Card.js.map +1 -1
  11. package/lib/Checkbox.js +1 -1
  12. package/lib/Checkbox.js.map +1 -1
  13. package/lib/CommandMenu.js +1 -1
  14. package/lib/CommandMenu.js.map +1 -1
  15. package/lib/CommandMenuAction.js +1 -1
  16. package/lib/CommandMenuAction.js.map +1 -1
  17. package/lib/Component-1dcd22f4.js +2 -0
  18. package/lib/Component-1dcd22f4.js.map +1 -0
  19. package/lib/DatePicker.js +1 -1
  20. package/lib/DatePicker.js.map +1 -1
  21. package/lib/Fieldset.js +1 -1
  22. package/lib/Fieldset.js.map +1 -1
  23. package/lib/FormAssociatedMixin-f7acf8b3.js +2 -0
  24. package/lib/FormAssociatedMixin-f7acf8b3.js.map +1 -0
  25. package/lib/FormField-8b024c79.js +2 -0
  26. package/lib/FormField-8b024c79.js.map +1 -0
  27. package/lib/Header.js +2 -0
  28. package/lib/Header.js.map +1 -0
  29. package/lib/Icon.js +1 -1
  30. package/lib/Icon.js.map +1 -1
  31. package/lib/Input.js +1 -1
  32. package/lib/Input.js.map +1 -1
  33. package/lib/{InputMixin-ce7052a0.js → InputMixin-f2da5fa8.js} +2 -2
  34. package/lib/InputMixin-f2da5fa8.js.map +1 -0
  35. package/lib/KeyboardController.js +1 -1
  36. package/lib/KeyboardController.js.map +1 -1
  37. package/lib/{LightDismissController-fe8ab526.js → LightDismissController-cc5b4bf2.js} +2 -2
  38. package/lib/{LightDismissController-fe8ab526.js.map → LightDismissController-cc5b4bf2.js.map} +1 -1
  39. package/lib/{LightDomController-84246dce.js → LightDomController-37815039.js} +2 -2
  40. package/lib/{LightDomController-84246dce.js.map → LightDomController-37815039.js.map} +1 -1
  41. package/lib/Radio.js +1 -1
  42. package/lib/Radio.js.map +1 -1
  43. package/lib/Select.js +1 -1
  44. package/lib/Select.js.map +1 -1
  45. package/lib/{ShortcutController-ff7b7fea.js → ShortcutController-93173ff4.js} +2 -2
  46. package/lib/{ShortcutController-ff7b7fea.js.map → ShortcutController-93173ff4.js.map} +1 -1
  47. package/lib/{SlotController-a18e9d36.js → SlotController-5bfc47d1.js} +2 -2
  48. package/lib/SlotController-5bfc47d1.js.map +1 -0
  49. package/lib/Spinner.js +1 -1
  50. package/lib/Spinner.js.map +1 -1
  51. package/lib/Stack.js +1 -1
  52. package/lib/Stack.js.map +1 -1
  53. package/lib/Table.js +1 -1
  54. package/lib/{TextField-8f1a0294.js → TextField-d925074c.js} +2 -2
  55. package/lib/TextField-d925074c.js.map +1 -0
  56. package/lib/Textarea.js +1 -1
  57. package/lib/Textarea.js.map +1 -1
  58. package/lib/Tooltip.js +1 -1
  59. package/lib/Tooltip.js.map +1 -1
  60. package/lib/VisuallyHidden.js +1 -1
  61. package/lib/{class-map-8601d1a3.js → class-map-df701775.js} +2 -2
  62. package/lib/{class-map-8601d1a3.js.map → class-map-df701775.js.map} +1 -1
  63. package/lib/{directive-helpers-3d1ca3c6.js → directive-helpers-f86e6d16.js} +2 -2
  64. package/lib/{directive-helpers-3d1ca3c6.js.map → directive-helpers-f86e6d16.js.map} +1 -1
  65. package/lib/{if-defined-c9888cf2.js → if-defined-f6a18fde.js} +2 -2
  66. package/lib/{if-defined-c9888cf2.js.map → if-defined-f6a18fde.js.map} +1 -1
  67. package/lib/index.js +1 -1
  68. package/lib/{lit-element-8f368fa0.js → lit-element-99571067.js} +3 -3
  69. package/lib/lit-element-99571067.js.map +1 -0
  70. package/lib/month-view.js +1 -1
  71. package/lib/{number-c84289ac.js → number-ca13a56f.js} +3 -3
  72. package/lib/{number-c84289ac.js.map → number-ca13a56f.js.map} +1 -1
  73. package/lib/ref-3b5a3bd2.js +12 -0
  74. package/lib/{ref-1cd4fff3.js.map → ref-3b5a3bd2.js.map} +1 -1
  75. package/lib/src/badge/Badge.d.ts +2 -2
  76. package/lib/src/button/Button.d.ts +2 -2
  77. package/lib/src/calendar/Calendar.d.ts +1 -1
  78. package/lib/src/card/Card.d.ts +3 -3
  79. package/lib/src/checkbox/Checkbox.test.d.ts +1 -0
  80. package/lib/src/command-menu/CommandMenu.d.ts +8 -5
  81. package/lib/src/command-menu/ICommandMenuAction.d.ts +1 -1
  82. package/lib/src/common/controllers/SlotController.d.ts +1 -0
  83. package/lib/src/common/controllers/SwipeController.d.ts +0 -1
  84. package/lib/src/date-picker/DatePicker.d.ts +1 -1
  85. package/lib/src/fieldset/Fieldset.d.ts +0 -2
  86. package/lib/src/header/Header.d.ts +22 -0
  87. package/lib/src/header/Header.test.d.ts +2 -0
  88. package/lib/src/icon/Icon.d.ts +1 -1
  89. package/lib/src/index.d.ts +1 -0
  90. package/lib/src/spinner/Spinner.d.ts +1 -1
  91. package/lib/src/stack/Stack.d.ts +1 -1
  92. package/lib/src/tooltip/Tooltip.d.ts +4 -4
  93. package/lib/tinykeys.module-84e6cc41.js +2 -0
  94. package/lib/tinykeys.module-84e6cc41.js.map +1 -0
  95. package/lib/{unsafe-html-5ab9167e.js → unsafe-html-7493c929.js} +2 -2
  96. package/lib/{unsafe-html-5ab9167e.js.map → unsafe-html-7493c929.js.map} +1 -1
  97. package/package.json +22 -20
  98. package/lib/Calendar-346fe5bf.js +0 -13
  99. package/lib/Calendar-346fe5bf.js.map +0 -1
  100. package/lib/FormAssociatedMixin-3af06f3e.js +0 -2
  101. package/lib/FormAssociatedMixin-3af06f3e.js.map +0 -1
  102. package/lib/FormField-43d04caa.js +0 -2
  103. package/lib/FormField-43d04caa.js.map +0 -1
  104. package/lib/InputMixin-ce7052a0.js.map +0 -1
  105. package/lib/SlotController-a18e9d36.js.map +0 -1
  106. package/lib/TextField-8f1a0294.js.map +0 -1
  107. package/lib/lit-element-8f368fa0.js.map +0 -1
  108. package/lib/ref-1cd4fff3.js +0 -12
  109. package/lib/tinykeys.module-26a9f7a7.js +0 -2
  110. package/lib/tinykeys.module-26a9f7a7.js.map +0 -1
@@ -158,6 +158,14 @@
158
158
  "name": "default",
159
159
  "module": "\"./radio/Radio.js\""
160
160
  }
161
+ },
162
+ {
163
+ "kind": "js",
164
+ "name": "Header",
165
+ "declaration": {
166
+ "name": "default",
167
+ "module": "\"./header/Header.js\""
168
+ }
161
169
  }
162
170
  ]
163
171
  },
@@ -183,7 +191,7 @@
183
191
  "text": "\"warning\" | \"success\" | \"danger\" | \"highlight\" | \"info\" | undefined"
184
192
  },
185
193
  "default": "\"info\"",
186
- "description": "The type of badge.\nDetermines the colour of the chip shown on the badge.",
194
+ "description": "The type of badge.\nDetermines the color of the chip shown on the badge.",
187
195
  "attribute": "type",
188
196
  "reflects": true
189
197
  },
@@ -209,7 +217,7 @@
209
217
  "text": "\"warning\" | \"success\" | \"danger\" | \"highlight\" | \"info\" | undefined"
210
218
  },
211
219
  "default": "\"info\"",
212
- "description": "The type of badge.\nDetermines the colour of the chip shown on the badge.",
220
+ "description": "The type of badge.\nDetermines the color of the chip shown on the badge.",
213
221
  "fieldName": "type"
214
222
  }
215
223
  ],
@@ -246,7 +254,8 @@
246
254
  "module": "src/badge/Badge.ts"
247
255
  }
248
256
  }
249
- ]
257
+ ],
258
+ "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 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- Use established color patterns so that users can clearly identify the importance level.\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| `info` | The default variant. 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"
250
259
  },
251
260
  {
252
261
  "kind": "javascript-module",
@@ -321,7 +330,7 @@
321
330
  "type": {
322
331
  "text": "string | undefined"
323
332
  },
324
- "description": "When provided, renders the button as a link,\nwith it's href attribute set to the given value.",
333
+ "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
325
334
  "attribute": "href",
326
335
  "reflects": true
327
336
  },
@@ -374,7 +383,7 @@
374
383
  "text": "boolean"
375
384
  },
376
385
  "default": "false",
377
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
386
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
378
387
  "attribute": "disabled",
379
388
  "reflects": true,
380
389
  "inheritedFrom": {
@@ -388,7 +397,7 @@
388
397
  "type": {
389
398
  "text": "string | undefined"
390
399
  },
391
- "description": "The name of the input component.",
400
+ "description": "The name of the form component.",
392
401
  "attribute": "name",
393
402
  "inheritedFrom": {
394
403
  "name": "InputMixin",
@@ -402,7 +411,7 @@
402
411
  "text": "string"
403
412
  },
404
413
  "default": "\"\"",
405
- "description": "The value of the input component.",
414
+ "description": "The value of the form component.",
406
415
  "attribute": "value",
407
416
  "inheritedFrom": {
408
417
  "name": "InputMixin",
@@ -413,7 +422,7 @@
413
422
  "kind": "field",
414
423
  "name": "form",
415
424
  "privacy": "protected",
416
- "description": "Gets the form, if any, associated with the input element.",
425
+ "description": "Gets the form, if any, associated with the form element.",
417
426
  "inheritedFrom": {
418
427
  "name": "InputMixin",
419
428
  "module": "src/common/mixins/InputMixin.ts"
@@ -441,7 +450,7 @@
441
450
  "description": "An object which controls aspects of the focusing process."
442
451
  }
443
452
  ],
444
- "description": "Programmatically move focus to the component",
453
+ "description": "Programmatically move focus to the component.",
445
454
  "inheritedFrom": {
446
455
  "name": "FocusableMixin",
447
456
  "module": "src/common/mixins/FocusableMixin.ts"
@@ -513,7 +522,7 @@
513
522
  "type": {
514
523
  "text": "string | undefined"
515
524
  },
516
- "description": "When provided, renders the button as a link,\nwith it's href attribute set to the given value.",
525
+ "description": "When provided, renders the button as a link,\nwith its href attribute set to the given value.",
517
526
  "fieldName": "href"
518
527
  },
519
528
  {
@@ -549,7 +558,7 @@
549
558
  "text": "boolean"
550
559
  },
551
560
  "default": "false",
552
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
561
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
553
562
  "fieldName": "disabled",
554
563
  "inheritedFrom": {
555
564
  "name": "InputMixin",
@@ -561,7 +570,7 @@
561
570
  "type": {
562
571
  "text": "string | undefined"
563
572
  },
564
- "description": "The name of the input component.",
573
+ "description": "The name of the form component.",
565
574
  "fieldName": "name",
566
575
  "inheritedFrom": {
567
576
  "name": "InputMixin",
@@ -574,7 +583,7 @@
574
583
  "text": "string"
575
584
  },
576
585
  "default": "\"\"",
577
- "description": "The value of the input component.",
586
+ "description": "The value of the form component.",
578
587
  "fieldName": "value",
579
588
  "inheritedFrom": {
580
589
  "name": "InputMixin",
@@ -624,7 +633,7 @@
624
633
  }
625
634
  }
626
635
  ],
627
- "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use clear and accurate labels.\n- Use established button colors appropriately. For example, only use a danger button style for an action that’s difficult or impossible to undo.\n- Prioritize the most important actions. Too many buttons will cause confusion.\n- Be consistent with positioning of buttons in the user interface.\n- Use strong, actionable verbs in labels such as “Add”, “Close”, “Cancel”, or “Save”.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use buttons to link to other pages. Use regular link or a plain style instead where necessary.\n- Don’t use buttons for navigation where the link appears within or following a sentence.\n- Don’t use labels such as “Read more”, “Click here” or “More”.\n\n</div>\n\n-------\n\n## Content guidelines\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button: \n\n<div class=\"n-usage n-usage-do\">View user settings</div>\n<div class=\"n-usage n-usage-dont\">Click here</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Add item</div>\n<div class=\"n-usage n-usage-dont\">Add an item</div>\n\n-------\n\n## Variations\n\nThis section describes the different component variations, their purpose, and when to use each variation.\n\n| Name | Purpose |\n| ---- | ------- |\n| `default` | Default style is the most common button variation. Only switch to another variation if you need to adjust the visual weight of the element. |\n| `primary` | Primary style is reserved for main call-to-actions. Should be used only once per content area or panel, e.g. for a “Save” action. |\n| `dashed` | Dashed style should be used for actions that trigger filtering. |\n| `danger` | Danger style should be used for actions that delete data or otherwise make it hard to undo the action. |\n| `plain` | Used for less important or less common actions. Can be also used for linking to other pages. |\n| `disabled` | Used for actions that aren’t currently available or not available anymore. Also prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies. |\n\n-------\n\n## Additional considerations\n\n- Users of assistive technology expect a button to submit data or do an action. If you need the button to navigate into another view, use the `href` property which will output `<a>` tag instead of a `<button>`.\n- When you need to disable a button, use `disabled` property as it conveys this information correctly to assistive technologies like screen readers.\n- Button component provides 3 size variants; small, medium and large. The large size should only be used for marketing purposes or on areas such as an empty space/content notice.\n"
636
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use clear and accurate labels.\n- Use established button colors appropriately. For example, only use a danger button style for an action that’s difficult or impossible to undo.\n- Prioritize the most important actions. Too many buttons will cause confusion.\n- Be consistent with positioning of buttons in the user interface.\n- Use strong, actionable verbs in labels such as “Add”, “Close”, “Cancel”, or “Save”.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use buttons to link to other pages. Use regular link or a plain style instead where necessary.\n- Don’t use buttons for navigation where the link appears within or following a sentence.\n- Don’t use labels such as “Read more”, “Click here” or “More”.\n\n</div>\n\n---\n\n## Content guidelines\n\nButton labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:\n\n<div class=\"n-usage n-usage-do\">View user settings</div>\n<div class=\"n-usage n-usage-dont\">Click here</div>\n\nWhen writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Add item</div>\n<div class=\"n-usage n-usage-dont\">Add an item</div>\n\n---\n\n## Variants\n\nThis section describes the different component variants, their purpose, and when to use each variant.\n\n| Name | Purpose |\n| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `default` | Default style is the most common button variant. Only switch to another variant if you need to adjust the visual weight of the element. |\n| `primary` | Primary style is reserved for main call-to-actions. Should be used only once per content area or panel, e.g. for a “Save” action. |\n| `dashed` | Dashed style should be used for actions that trigger filtering. |\n| `danger` | Danger style should be used for actions that delete data or otherwise make it hard to undo the action. |\n| `plain` | Used for less important or less common actions. Can be also used for linking to other pages. |\n| `disabled` | Used for actions that aren’t currently available or not available anymore. Also prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies. |\n\n---\n\n## Additional considerations\n\n- Users of assistive technology expect a button to submit data or do an action. If you need the button to navigate into another view, use the `href` property which will output `<a>` tag instead of a `<button>`.\n- When you need to disable a button, use `disabled` property as it conveys this information correctly to assistive technologies like screen readers.\n- Button component provides 3 size variants; small, medium and large. The large size should only be used for marketing purposes or on areas such as an empty space/content notice.\n"
628
637
  },
629
638
  {
630
639
  "kind": "javascript-module",
@@ -739,6 +748,7 @@
739
748
  "type": {
740
749
  "text": "DateDisabledPredicate"
741
750
  },
751
+ "default": "isDateDisabled",
742
752
  "description": "Controls which days are disabled and therefore disallowed.\nFor example, this can be used to disallow selection of weekends."
743
753
  },
744
754
  {
@@ -982,7 +992,8 @@
982
992
  "module": "src/calendar/Calendar.ts"
983
993
  }
984
994
  }
985
- ]
995
+ ],
996
+ "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"
986
997
  },
987
998
  {
988
999
  "kind": "javascript-module",
@@ -1026,7 +1037,8 @@
1026
1037
  "module": "src/calendar/DateSelectEvent.ts"
1027
1038
  }
1028
1039
  }
1029
- ]
1040
+ ],
1041
+ "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"
1030
1042
  },
1031
1043
  {
1032
1044
  "kind": "javascript-module",
@@ -1050,7 +1062,8 @@
1050
1062
  "module": "src/calendar/calendar-localization.ts"
1051
1063
  }
1052
1064
  }
1053
- ]
1065
+ ],
1066
+ "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"
1054
1067
  },
1055
1068
  {
1056
1069
  "kind": "javascript-module",
@@ -1098,7 +1111,116 @@
1098
1111
  "module": "src/calendar/month-view.ts"
1099
1112
  }
1100
1113
  }
1101
- ]
1114
+ ],
1115
+ "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"
1116
+ },
1117
+ {
1118
+ "kind": "javascript-module",
1119
+ "path": "src/card/Card.ts",
1120
+ "declarations": [
1121
+ {
1122
+ "kind": "class",
1123
+ "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.",
1124
+ "name": "Card",
1125
+ "slots": [
1126
+ {
1127
+ "description": "The card content.",
1128
+ "name": ""
1129
+ },
1130
+ {
1131
+ "description": "Optional slot that holds a header for the card.",
1132
+ "name": "header"
1133
+ },
1134
+ {
1135
+ "description": "Optional slot that holds footer content for the card.",
1136
+ "name": "footer"
1137
+ }
1138
+ ],
1139
+ "members": [
1140
+ {
1141
+ "kind": "field",
1142
+ "name": "headerSlot",
1143
+ "privacy": "private",
1144
+ "default": "new SlotController(this, \"header\")"
1145
+ },
1146
+ {
1147
+ "kind": "field",
1148
+ "name": "footerSlot",
1149
+ "privacy": "private",
1150
+ "default": "new SlotController(this, \"footer\")"
1151
+ },
1152
+ {
1153
+ "kind": "field",
1154
+ "name": "padding",
1155
+ "type": {
1156
+ "text": "\"m\" | \"l\" | \"none\""
1157
+ },
1158
+ "default": "\"m\"",
1159
+ "description": "Controls the padding of card component. When set to “none”,\nthe header and footer slots will still have padding.",
1160
+ "attribute": "padding",
1161
+ "reflects": true
1162
+ },
1163
+ {
1164
+ "kind": "field",
1165
+ "name": "_warningLogged",
1166
+ "type": {
1167
+ "text": "boolean"
1168
+ },
1169
+ "privacy": "private",
1170
+ "static": true,
1171
+ "default": "false",
1172
+ "inheritedFrom": {
1173
+ "name": "DraftComponentMixin",
1174
+ "module": "src/common/mixins/DraftComponentMixin.ts"
1175
+ }
1176
+ }
1177
+ ],
1178
+ "attributes": [
1179
+ {
1180
+ "name": "padding",
1181
+ "type": {
1182
+ "text": "\"m\" | \"l\" | \"none\""
1183
+ },
1184
+ "default": "\"m\"",
1185
+ "description": "Controls the padding of card component. When set to “none”,\nthe header and footer slots will still have padding.",
1186
+ "fieldName": "padding"
1187
+ }
1188
+ ],
1189
+ "mixins": [
1190
+ {
1191
+ "name": "DraftComponentMixin",
1192
+ "module": "/src/common/mixins/DraftComponentMixin.js"
1193
+ }
1194
+ ],
1195
+ "superclass": {
1196
+ "name": "LitElement",
1197
+ "package": "lit"
1198
+ },
1199
+ "status": "draft",
1200
+ "category": "structure",
1201
+ "tagName": "nord-card",
1202
+ "customElement": true
1203
+ }
1204
+ ],
1205
+ "exports": [
1206
+ {
1207
+ "kind": "js",
1208
+ "name": "default",
1209
+ "declaration": {
1210
+ "name": "Card",
1211
+ "module": "src/card/Card.ts"
1212
+ }
1213
+ },
1214
+ {
1215
+ "kind": "custom-element-definition",
1216
+ "name": "nord-card",
1217
+ "declaration": {
1218
+ "name": "Card",
1219
+ "module": "src/card/Card.ts"
1220
+ }
1221
+ }
1222
+ ],
1223
+ "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\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\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"
1102
1224
  },
1103
1225
  {
1104
1226
  "kind": "javascript-module",
@@ -1365,15 +1487,6 @@
1365
1487
  "module": "src/common/mixins/FormAssociatedMixin.ts"
1366
1488
  }
1367
1489
  },
1368
- {
1369
- "kind": "method",
1370
- "name": "renderHint",
1371
- "privacy": "private",
1372
- "inheritedFrom": {
1373
- "name": "FormAssociatedMixin",
1374
- "module": "src/common/mixins/FormAssociatedMixin.ts"
1375
- }
1376
- },
1377
1490
  {
1378
1491
  "kind": "method",
1379
1492
  "name": "renderError",
@@ -1426,7 +1539,7 @@
1426
1539
  "text": "boolean"
1427
1540
  },
1428
1541
  "default": "false",
1429
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
1542
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
1430
1543
  "attribute": "disabled",
1431
1544
  "reflects": true,
1432
1545
  "inheritedFrom": {
@@ -1440,7 +1553,7 @@
1440
1553
  "type": {
1441
1554
  "text": "string | undefined"
1442
1555
  },
1443
- "description": "The name of the input component.",
1556
+ "description": "The name of the form component.",
1444
1557
  "attribute": "name",
1445
1558
  "inheritedFrom": {
1446
1559
  "name": "InputMixin",
@@ -1454,7 +1567,7 @@
1454
1567
  "text": "string"
1455
1568
  },
1456
1569
  "default": "\"\"",
1457
- "description": "The value of the input component.",
1570
+ "description": "The value of the form component.",
1458
1571
  "attribute": "value",
1459
1572
  "inheritedFrom": {
1460
1573
  "name": "InputMixin",
@@ -1465,7 +1578,7 @@
1465
1578
  "kind": "field",
1466
1579
  "name": "form",
1467
1580
  "privacy": "protected",
1468
- "description": "Gets the form, if any, associated with the input element.",
1581
+ "description": "Gets the form, if any, associated with the form element.",
1469
1582
  "inheritedFrom": {
1470
1583
  "name": "InputMixin",
1471
1584
  "module": "src/common/mixins/InputMixin.ts"
@@ -1493,7 +1606,7 @@
1493
1606
  "description": "An object which controls aspects of the focusing process."
1494
1607
  }
1495
1608
  ],
1496
- "description": "Programmatically move focus to the component",
1609
+ "description": "Programmatically move focus to the component.",
1497
1610
  "inheritedFrom": {
1498
1611
  "name": "FocusableMixin",
1499
1612
  "module": "src/common/mixins/FocusableMixin.ts"
@@ -1636,7 +1749,7 @@
1636
1749
  "text": "boolean"
1637
1750
  },
1638
1751
  "default": "false",
1639
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
1752
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
1640
1753
  "fieldName": "disabled",
1641
1754
  "inheritedFrom": {
1642
1755
  "name": "InputMixin",
@@ -1648,7 +1761,7 @@
1648
1761
  "type": {
1649
1762
  "text": "string | undefined"
1650
1763
  },
1651
- "description": "The name of the input component.",
1764
+ "description": "The name of the form component.",
1652
1765
  "fieldName": "name",
1653
1766
  "inheritedFrom": {
1654
1767
  "name": "InputMixin",
@@ -1661,7 +1774,7 @@
1661
1774
  "text": "string"
1662
1775
  },
1663
1776
  "default": "\"\"",
1664
- "description": "The value of the input component.",
1777
+ "description": "The value of the form component.",
1665
1778
  "fieldName": "value",
1666
1779
  "inheritedFrom": {
1667
1780
  "name": "InputMixin",
@@ -1738,114 +1851,8 @@
1738
1851
  "module": "src/checkbox/Checkbox.ts"
1739
1852
  }
1740
1853
  }
1741
- ]
1742
- },
1743
- {
1744
- "kind": "javascript-module",
1745
- "path": "src/card/Card.ts",
1746
- "declarations": [
1747
- {
1748
- "kind": "class",
1749
- "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.",
1750
- "name": "Card",
1751
- "slots": [
1752
- {
1753
- "description": "The card content.",
1754
- "name": ""
1755
- },
1756
- {
1757
- "description": "Optional slot that holds a header for the card.",
1758
- "name": "header"
1759
- },
1760
- {
1761
- "description": "Optional slot that holds footer content for the card.",
1762
- "name": "footer"
1763
- }
1764
- ],
1765
- "members": [
1766
- {
1767
- "kind": "field",
1768
- "name": "headerSlot",
1769
- "privacy": "private",
1770
- "default": "new SlotController(this, \"header\")"
1771
- },
1772
- {
1773
- "kind": "field",
1774
- "name": "footerSlot",
1775
- "privacy": "private",
1776
- "default": "new SlotController(this, \"footer\")"
1777
- },
1778
- {
1779
- "kind": "field",
1780
- "name": "padding",
1781
- "type": {
1782
- "text": "\"m\" | \"l\" | \"none\""
1783
- },
1784
- "default": "\"m\"",
1785
- "description": "Control the padding of the card component.\nWhen set to \"none\", the header and footer slots will still have padding.",
1786
- "attribute": "padding",
1787
- "reflects": true
1788
- },
1789
- {
1790
- "kind": "field",
1791
- "name": "_warningLogged",
1792
- "type": {
1793
- "text": "boolean"
1794
- },
1795
- "privacy": "private",
1796
- "static": true,
1797
- "default": "false",
1798
- "inheritedFrom": {
1799
- "name": "DraftComponentMixin",
1800
- "module": "src/common/mixins/DraftComponentMixin.ts"
1801
- }
1802
- }
1803
- ],
1804
- "attributes": [
1805
- {
1806
- "name": "padding",
1807
- "type": {
1808
- "text": "\"m\" | \"l\" | \"none\""
1809
- },
1810
- "default": "\"m\"",
1811
- "description": "Control the padding of the card component.\nWhen set to \"none\", the header and footer slots will still have padding.",
1812
- "fieldName": "padding"
1813
- }
1814
- ],
1815
- "mixins": [
1816
- {
1817
- "name": "DraftComponentMixin",
1818
- "module": "/src/common/mixins/DraftComponentMixin.js"
1819
- }
1820
- ],
1821
- "superclass": {
1822
- "name": "LitElement",
1823
- "package": "lit"
1824
- },
1825
- "status": "draft",
1826
- "category": "structure",
1827
- "tagName": "nord-card",
1828
- "customElement": true
1829
- }
1830
1854
  ],
1831
- "exports": [
1832
- {
1833
- "kind": "js",
1834
- "name": "default",
1835
- "declaration": {
1836
- "name": "Card",
1837
- "module": "src/card/Card.ts"
1838
- }
1839
- },
1840
- {
1841
- "kind": "custom-element-definition",
1842
- "name": "nord-card",
1843
- "declaration": {
1844
- "name": "Card",
1845
- "module": "src/card/Card.ts"
1846
- }
1847
- }
1848
- ]
1855
+ "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 making it possible to choose one or more options from a limited number of options.\n- Use for “accepting terms of service” and similar functionality.\n- Use in forms to toggle something on or off.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use when you have more than 10 options to choose from.\n- Don’t change the selection of another checkbox when another one is clicked. Only exception is when a checkbox is used to make a bulk selection of multiple items.\n\n</div>\n\n---\n\n## Content guidelines\n\nCheckbox labels should be clear, accurate and predictable. It should be possible for the user to understand what they are selecting:\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 checkbox 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\">User settings</div>\n<div class=\"n-usage n-usage-dont\">User Settings</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\">Show dashboard</div>\n<div class=\"n-usage n-usage-dont\">Show dashboard.</div>\n\nDo not use commas or semicolons at the end of each line\n\n<div class=\"n-usage n-usage-do\">Patients</div>\n<div class=\"n-usage n-usage-dont\">Patients;</div>\n"
1849
1856
  },
1850
1857
  {
1851
1858
  "kind": "javascript-module",
@@ -1853,7 +1860,7 @@
1853
1860
  "declarations": [
1854
1861
  {
1855
1862
  "kind": "class",
1856
- "description": "Command Menu allows users to navigate and use an app without touching the mouse and helps them transform into “power users who can harness more advanced features far faster.",
1863
+ "description": "Command Menu allows users to navigate and use an app without\ntouching the mouse and helps them transform into “power users”\nwho can harness more advanced features far faster.",
1857
1864
  "name": "CommandMenu",
1858
1865
  "slots": [
1859
1866
  {
@@ -1909,7 +1916,7 @@
1909
1916
  "text": "string"
1910
1917
  },
1911
1918
  "default": "\"Type a command or search...\"",
1912
- "description": "Hint text to display in the search field.",
1919
+ "description": "Hint text to display in the Command Menu search field.",
1913
1920
  "attribute": "placeholder"
1914
1921
  },
1915
1922
  {
@@ -1919,7 +1926,7 @@
1919
1926
  "text": "Array<ICommandMenuAction>"
1920
1927
  },
1921
1928
  "default": "[]",
1922
- "description": "Array of commands to be included in the menu."
1929
+ "description": "Array of commands to be included in the menu.\nPlease see “Commands data” section for more documentation."
1923
1930
  },
1924
1931
  {
1925
1932
  "kind": "field",
@@ -2142,14 +2149,14 @@
2142
2149
  "type": {
2143
2150
  "text": "NordEvent"
2144
2151
  },
2145
- "description": "The command menu was opened foo."
2152
+ "description": "The command menu was opened."
2146
2153
  },
2147
2154
  {
2148
2155
  "name": "close",
2149
2156
  "type": {
2150
2157
  "text": "NordEvent"
2151
2158
  },
2152
- "description": "The command menu was closed bar."
2159
+ "description": "The command menu was closed."
2153
2160
  },
2154
2161
  {
2155
2162
  "type": {
@@ -2175,7 +2182,7 @@
2175
2182
  "text": "string"
2176
2183
  },
2177
2184
  "default": "\"Type a command or search...\"",
2178
- "description": "Hint text to display in the search field.",
2185
+ "description": "Hint text to display in the Command Menu search field.",
2179
2186
  "fieldName": "placeholder"
2180
2187
  }
2181
2188
  ],
@@ -2212,7 +2219,8 @@
2212
2219
  "module": "src/command-menu/CommandMenu.ts"
2213
2220
  }
2214
2221
  }
2215
- ]
2222
+ ],
2223
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide global and contextual keyboard shortcuts for users.\n- Make command menu available everywhere. Users must be able to bring up the command menu easily.\n- Make command menu central. Users should be able to find global shortcuts from one location.\n- Make command menu omnipotent. Give users access to every possible action.\n- Group related commands logically under sections with the section setting.\n- Use `Alt` key as the modifier, since this is less likely to clash with existing shortcuts.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t make command menu available only in certain views of the application.\n- Don’t define shortcuts such as `Ctrl+C`, since this will clash with the native \"Copy\" shortcut.\n- Don't create complex shortcuts, as users will struggle to remember them.\n- Avoid using `KeyboardEvent.key` for defining the shortcut keys.\n- Don’t use as a search field only.\n\n</div>\n\n---\n\n## Content guidelines\n\nCommand titles should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they execute a command:\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Consultation</div>\n\nAlways lead with a strong verb that encourages action. To provide enough context to user, use the {verb} + {noun} content formula:\n\n<div class=\"n-usage n-usage-do\">Open dashboard</div>\n<div class=\"n-usage n-usage-dont\">Dashboard</div>\n\nWhen writing command titles, 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\">New appointment</div>\n<div class=\"n-usage n-usage-dont\">New Appointment</div>\n\nAvoid unnecessary words and articles in command titles, 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 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 ellipsis in the title when describing sections that have commands grouped inside of them:\n\n<div class=\"n-usage n-usage-do\">Change theme…</div>\n<div class=\"n-usage n-usage-dont\">Change theme</div>\n\n---\n\n## Commands data\n\nEach command in the `commands` data array must include at least an `id` and `title`. A&nbsp;command may also include properties for `section`, `icon`, `handler`, `shortcut` , `parent`, and `keywords`:\n\n| Name | Purpose |\n| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `id` | An identifier for each command, must be unique. Example: `id: \"user\"`. |\n| `title` | The title shown to users. This is used when searching for a command. Example: `title: \"Change theme...\"`. |\n| `keywords` | Not visible in the user interface, but can make it easier to discover commands through search. Example: `keywords: \"command change log sign out in\"`. |\n| `shortcut` | The keyboard shortcut. Example: `shortcut: \"Alt+KeyU\"`. See the sections [Defining Shortcuts](#defining-shortcuts) and [Choosing shortcuts](#choosing-shortcuts) below for more information. |\n| `section` | Used for grouping many commands under a common header. Example: `section: \"Commands\"`. |\n| `icon` | A name of an icon form Nordicons to show beside the title. If not specified, default command icon will be used instead. Example: `icon: \"file-picture\"`. |\n| `parent` | The `id` of a parent command. This is used for nesting commands. Example: `parent: \"theme\"`. |\n| `handler` | A function to execute when an user triggers a command. Example: `handler: () => { alert(\"Change to light theme\") }`. In cases where a command is only used as a parent command e.g. \"Change theme\", this is not required. |\n\n---\n\n## Defining shortcuts\n\nShortcuts in the Command Menu have the following form: `[modifier]+[key]`. Shortcuts are made up of a sequence of presses. A press can be as simple as a single key which matches against [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values):\n\n```js\n// Matches: event.code:\n\"KeyD\"\n```\n\nPresses can optionally be prefixed with **_modifiers_** which match against any valid value to [`KeyboardEvent.getModifierState()`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState).\n\n```js\n\"Control+KeyD\"\n\"Meta+KeyD\"\n\"Shift+KeyD\"\n\"Alt+KeyD\"\n\"Meta+Shift+KeyD\"\n```\n\nThere is also a special `$mod` modifier that makes it easy to support cross platform keybindings:\n\n- Mac: `$mod` = `Meta` (⌘)\n- Windows/Linux: `$mod` = `Control`\n\n```js\n\"$mod+KeyD\" // ⌘/Ctrl + D\n\"$mod+Shift+KeyD\" // ⌘/Ctrl + Shift + D\n```\n\nThe Command Menu itself can be opened using `⌘+k` (or `Ctrl+k` on Windows) and closed by hitting `Esc`. These are both non-configurable shortcuts in order to unify the experience across our platforms.\n\n---\n\n## Choosing shortcuts\n\nWhen choosing shortcuts, it is very important that they do not clash with native operating system or browser shortcuts.\n\nFor example, you _should not_ define a shortcut like `$mod+KeyC`, since this will clash with the native “Copy” shortcut, and will be triggered every time a user copies text in the app. Nor should you use shortcuts like `Shift+KeyA` since this will get triggered whenever a user types an uppercase “A” character. Therefore, special care and attention must be given to _each and every_ shortcut choice.\n\nIn general, we recommend using the `Alt` modifier, since this is less likely to clash with existing shortcuts. However, be aware, the `Alt` key is also used for accented characters e.g. `Alt+KeyA` produces the letter “å”. Again, it is crucial that you choose shortcuts carefully.\n\nYou should strive to choose shortcuts that are intuitive and easy to remember. The more complex a shortcut, the less likely a user is to remember it. Of course, a user can still find a command by searching the command menu, and for some users this may be their preferred way of triggering commands.\n\n---\n\n## Common keybindings\n\nKeybindings will be matched against [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) and [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values) which may have some names you don’t expect. Please note that we recommend always using `KeyboardEvent.code` for defining the keys and only using `KeyboardEvent.key` for defining modifiers.\n\n| Windows | macOS | key | code |\n| ------------- | --------------- | ------------- | ------------------------------ |\n| N/A | `Command` / `⌘` | `Meta` | `MetaLeft` / `MetaRight` |\n| `Alt` | `Option` / `⌥` | `Alt` | `AltLeft` / `AltRight` |\n| `Control` | `Control` / `^` | `Control` | `ControlLeft` / `ControlRight` |\n| `Shift` | `Shift` | `Shift` | `ShiftLeft` / `ShiftRight` |\n| `Space` | `Space` | N/A | `Space` |\n| `Enter` | `Return` | `Enter` | `Enter` |\n| `Esc` | `Esc` | `Escape` | `Escape` |\n| `1`, `2`, etc | `1`, `2`, etc | `1`, `2`, etc | `Digit1`, `Digit2`, etc |\n| `a`, `b`, etc | `a`, `b`, etc | `a`, `b`, etc | `KeyA`, `KeyB`, etc |\n| `-` | `-` | `-` | `Minus` |\n| `=` | `=` | `=` | `Equal` |\n| `+` | `+` | `+` | `Equal`\\* |\n\nIn addition to the above table, you can use [https://keycode.info/](https://keycode.info/) for checking the specific values needed. Note that some keys will have the same code as others because they appear on the same key on the keyboard. Keep in mind how this is affected by international keyboards which may have different layouts.\n\n---\n\n## Navigating with the command menu\n\n1. Use `Ctrl+K` (Windows/Linux) or `Cmd+K` (Mac) to open the command menu.\n2. Start typing the command you want to execute. The suggestions in the command menu change to match your text.\n3. Finish entering the name, or use the arrow keys to highlight the command you want from the list of suggestions.\n4. Use `Enter` to execute the chosen command.\n5. If you chose a command that has nested commands, you can use `Backspace` to return to the previous menu.\n6. When the command menu is active, you can use one of the following keyboard shortcuts to close it: `Esc`, `Ctrl+K` (Windows and Linux) or `Cmd+K` (Mac).\n"
2216
2224
  },
2217
2225
  {
2218
2226
  "kind": "javascript-module",
@@ -2296,13 +2304,15 @@
2296
2304
  "module": "src/command-menu/CommandMenuAction.ts"
2297
2305
  }
2298
2306
  }
2299
- ]
2307
+ ],
2308
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide global and contextual keyboard shortcuts for users.\n- Make command menu available everywhere. Users must be able to bring up the command menu easily.\n- Make command menu central. Users should be able to find global shortcuts from one location.\n- Make command menu omnipotent. Give users access to every possible action.\n- Group related commands logically under sections with the section setting.\n- Use `Alt` key as the modifier, since this is less likely to clash with existing shortcuts.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t make command menu available only in certain views of the application.\n- Don’t define shortcuts such as `Ctrl+C`, since this will clash with the native \"Copy\" shortcut.\n- Don't create complex shortcuts, as users will struggle to remember them.\n- Avoid using `KeyboardEvent.key` for defining the shortcut keys.\n- Don’t use as a search field only.\n\n</div>\n\n---\n\n## Content guidelines\n\nCommand titles should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they execute a command:\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Consultation</div>\n\nAlways lead with a strong verb that encourages action. To provide enough context to user, use the {verb} + {noun} content formula:\n\n<div class=\"n-usage n-usage-do\">Open dashboard</div>\n<div class=\"n-usage n-usage-dont\">Dashboard</div>\n\nWhen writing command titles, 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\">New appointment</div>\n<div class=\"n-usage n-usage-dont\">New Appointment</div>\n\nAvoid unnecessary words and articles in command titles, 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 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 ellipsis in the title when describing sections that have commands grouped inside of them:\n\n<div class=\"n-usage n-usage-do\">Change theme…</div>\n<div class=\"n-usage n-usage-dont\">Change theme</div>\n\n---\n\n## Commands data\n\nEach command in the `commands` data array must include at least an `id` and `title`. A&nbsp;command may also include properties for `section`, `icon`, `handler`, `shortcut` , `parent`, and `keywords`:\n\n| Name | Purpose |\n| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `id` | An identifier for each command, must be unique. Example: `id: \"user\"`. |\n| `title` | The title shown to users. This is used when searching for a command. Example: `title: \"Change theme...\"`. |\n| `keywords` | Not visible in the user interface, but can make it easier to discover commands through search. Example: `keywords: \"command change log sign out in\"`. |\n| `shortcut` | The keyboard shortcut. Example: `shortcut: \"Alt+KeyU\"`. See the sections [Defining Shortcuts](#defining-shortcuts) and [Choosing shortcuts](#choosing-shortcuts) below for more information. |\n| `section` | Used for grouping many commands under a common header. Example: `section: \"Commands\"`. |\n| `icon` | A name of an icon form Nordicons to show beside the title. If not specified, default command icon will be used instead. Example: `icon: \"file-picture\"`. |\n| `parent` | The `id` of a parent command. This is used for nesting commands. Example: `parent: \"theme\"`. |\n| `handler` | A function to execute when an user triggers a command. Example: `handler: () => { alert(\"Change to light theme\") }`. In cases where a command is only used as a parent command e.g. \"Change theme\", this is not required. |\n\n---\n\n## Defining shortcuts\n\nShortcuts in the Command Menu have the following form: `[modifier]+[key]`. Shortcuts are made up of a sequence of presses. A press can be as simple as a single key which matches against [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values):\n\n```js\n// Matches: event.code:\n\"KeyD\"\n```\n\nPresses can optionally be prefixed with **_modifiers_** which match against any valid value to [`KeyboardEvent.getModifierState()`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState).\n\n```js\n\"Control+KeyD\"\n\"Meta+KeyD\"\n\"Shift+KeyD\"\n\"Alt+KeyD\"\n\"Meta+Shift+KeyD\"\n```\n\nThere is also a special `$mod` modifier that makes it easy to support cross platform keybindings:\n\n- Mac: `$mod` = `Meta` (⌘)\n- Windows/Linux: `$mod` = `Control`\n\n```js\n\"$mod+KeyD\" // ⌘/Ctrl + D\n\"$mod+Shift+KeyD\" // ⌘/Ctrl + Shift + D\n```\n\nThe Command Menu itself can be opened using `⌘+k` (or `Ctrl+k` on Windows) and closed by hitting `Esc`. These are both non-configurable shortcuts in order to unify the experience across our platforms.\n\n---\n\n## Choosing shortcuts\n\nWhen choosing shortcuts, it is very important that they do not clash with native operating system or browser shortcuts.\n\nFor example, you _should not_ define a shortcut like `$mod+KeyC`, since this will clash with the native “Copy” shortcut, and will be triggered every time a user copies text in the app. Nor should you use shortcuts like `Shift+KeyA` since this will get triggered whenever a user types an uppercase “A” character. Therefore, special care and attention must be given to _each and every_ shortcut choice.\n\nIn general, we recommend using the `Alt` modifier, since this is less likely to clash with existing shortcuts. However, be aware, the `Alt` key is also used for accented characters e.g. `Alt+KeyA` produces the letter “å”. Again, it is crucial that you choose shortcuts carefully.\n\nYou should strive to choose shortcuts that are intuitive and easy to remember. The more complex a shortcut, the less likely a user is to remember it. Of course, a user can still find a command by searching the command menu, and for some users this may be their preferred way of triggering commands.\n\n---\n\n## Common keybindings\n\nKeybindings will be matched against [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) and [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values) which may have some names you don’t expect. Please note that we recommend always using `KeyboardEvent.code` for defining the keys and only using `KeyboardEvent.key` for defining modifiers.\n\n| Windows | macOS | key | code |\n| ------------- | --------------- | ------------- | ------------------------------ |\n| N/A | `Command` / `⌘` | `Meta` | `MetaLeft` / `MetaRight` |\n| `Alt` | `Option` / `⌥` | `Alt` | `AltLeft` / `AltRight` |\n| `Control` | `Control` / `^` | `Control` | `ControlLeft` / `ControlRight` |\n| `Shift` | `Shift` | `Shift` | `ShiftLeft` / `ShiftRight` |\n| `Space` | `Space` | N/A | `Space` |\n| `Enter` | `Return` | `Enter` | `Enter` |\n| `Esc` | `Esc` | `Escape` | `Escape` |\n| `1`, `2`, etc | `1`, `2`, etc | `1`, `2`, etc | `Digit1`, `Digit2`, etc |\n| `a`, `b`, etc | `a`, `b`, etc | `a`, `b`, etc | `KeyA`, `KeyB`, etc |\n| `-` | `-` | `-` | `Minus` |\n| `=` | `=` | `=` | `Equal` |\n| `+` | `+` | `+` | `Equal`\\* |\n\nIn addition to the above table, you can use [https://keycode.info/](https://keycode.info/) for checking the specific values needed. Note that some keys will have the same code as others because they appear on the same key on the keyboard. Keep in mind how this is affected by international keyboards which may have different layouts.\n\n---\n\n## Navigating with the command menu\n\n1. Use `Ctrl+K` (Windows/Linux) or `Cmd+K` (Mac) to open the command menu.\n2. Start typing the command you want to execute. The suggestions in the command menu change to match your text.\n3. Finish entering the name, or use the arrow keys to highlight the command you want from the list of suggestions.\n4. Use `Enter` to execute the chosen command.\n5. If you chose a command that has nested commands, you can use `Backspace` to return to the previous menu.\n6. When the command menu is active, you can use one of the following keyboard shortcuts to close it: `Esc`, `Ctrl+K` (Windows and Linux) or `Cmd+K` (Mac).\n"
2300
2309
  },
2301
2310
  {
2302
2311
  "kind": "javascript-module",
2303
2312
  "path": "src/command-menu/ICommandMenuAction.ts",
2304
2313
  "declarations": [],
2305
- "exports": []
2314
+ "exports": [],
2315
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide global and contextual keyboard shortcuts for users.\n- Make command menu available everywhere. Users must be able to bring up the command menu easily.\n- Make command menu central. Users should be able to find global shortcuts from one location.\n- Make command menu omnipotent. Give users access to every possible action.\n- Group related commands logically under sections with the section setting.\n- Use `Alt` key as the modifier, since this is less likely to clash with existing shortcuts.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t make command menu available only in certain views of the application.\n- Don’t define shortcuts such as `Ctrl+C`, since this will clash with the native \"Copy\" shortcut.\n- Don't create complex shortcuts, as users will struggle to remember them.\n- Avoid using `KeyboardEvent.key` for defining the shortcut keys.\n- Don’t use as a search field only.\n\n</div>\n\n---\n\n## Content guidelines\n\nCommand titles should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they execute a command:\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Consultation</div>\n\nAlways lead with a strong verb that encourages action. To provide enough context to user, use the {verb} + {noun} content formula:\n\n<div class=\"n-usage n-usage-do\">Open dashboard</div>\n<div class=\"n-usage n-usage-dont\">Dashboard</div>\n\nWhen writing command titles, 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\">New appointment</div>\n<div class=\"n-usage n-usage-dont\">New Appointment</div>\n\nAvoid unnecessary words and articles in command titles, 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 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 ellipsis in the title when describing sections that have commands grouped inside of them:\n\n<div class=\"n-usage n-usage-do\">Change theme…</div>\n<div class=\"n-usage n-usage-dont\">Change theme</div>\n\n---\n\n## Commands data\n\nEach command in the `commands` data array must include at least an `id` and `title`. A&nbsp;command may also include properties for `section`, `icon`, `handler`, `shortcut` , `parent`, and `keywords`:\n\n| Name | Purpose |\n| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `id` | An identifier for each command, must be unique. Example: `id: \"user\"`. |\n| `title` | The title shown to users. This is used when searching for a command. Example: `title: \"Change theme...\"`. |\n| `keywords` | Not visible in the user interface, but can make it easier to discover commands through search. Example: `keywords: \"command change log sign out in\"`. |\n| `shortcut` | The keyboard shortcut. Example: `shortcut: \"Alt+KeyU\"`. See the sections [Defining Shortcuts](#defining-shortcuts) and [Choosing shortcuts](#choosing-shortcuts) below for more information. |\n| `section` | Used for grouping many commands under a common header. Example: `section: \"Commands\"`. |\n| `icon` | A name of an icon form Nordicons to show beside the title. If not specified, default command icon will be used instead. Example: `icon: \"file-picture\"`. |\n| `parent` | The `id` of a parent command. This is used for nesting commands. Example: `parent: \"theme\"`. |\n| `handler` | A function to execute when an user triggers a command. Example: `handler: () => { alert(\"Change to light theme\") }`. In cases where a command is only used as a parent command e.g. \"Change theme\", this is not required. |\n\n---\n\n## Defining shortcuts\n\nShortcuts in the Command Menu have the following form: `[modifier]+[key]`. Shortcuts are made up of a sequence of presses. A press can be as simple as a single key which matches against [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values):\n\n```js\n// Matches: event.code:\n\"KeyD\"\n```\n\nPresses can optionally be prefixed with **_modifiers_** which match against any valid value to [`KeyboardEvent.getModifierState()`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState).\n\n```js\n\"Control+KeyD\"\n\"Meta+KeyD\"\n\"Shift+KeyD\"\n\"Alt+KeyD\"\n\"Meta+Shift+KeyD\"\n```\n\nThere is also a special `$mod` modifier that makes it easy to support cross platform keybindings:\n\n- Mac: `$mod` = `Meta` (⌘)\n- Windows/Linux: `$mod` = `Control`\n\n```js\n\"$mod+KeyD\" // ⌘/Ctrl + D\n\"$mod+Shift+KeyD\" // ⌘/Ctrl + Shift + D\n```\n\nThe Command Menu itself can be opened using `⌘+k` (or `Ctrl+k` on Windows) and closed by hitting `Esc`. These are both non-configurable shortcuts in order to unify the experience across our platforms.\n\n---\n\n## Choosing shortcuts\n\nWhen choosing shortcuts, it is very important that they do not clash with native operating system or browser shortcuts.\n\nFor example, you _should not_ define a shortcut like `$mod+KeyC`, since this will clash with the native “Copy” shortcut, and will be triggered every time a user copies text in the app. Nor should you use shortcuts like `Shift+KeyA` since this will get triggered whenever a user types an uppercase “A” character. Therefore, special care and attention must be given to _each and every_ shortcut choice.\n\nIn general, we recommend using the `Alt` modifier, since this is less likely to clash with existing shortcuts. However, be aware, the `Alt` key is also used for accented characters e.g. `Alt+KeyA` produces the letter “å”. Again, it is crucial that you choose shortcuts carefully.\n\nYou should strive to choose shortcuts that are intuitive and easy to remember. The more complex a shortcut, the less likely a user is to remember it. Of course, a user can still find a command by searching the command menu, and for some users this may be their preferred way of triggering commands.\n\n---\n\n## Common keybindings\n\nKeybindings will be matched against [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) and [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values) which may have some names you don’t expect. Please note that we recommend always using `KeyboardEvent.code` for defining the keys and only using `KeyboardEvent.key` for defining modifiers.\n\n| Windows | macOS | key | code |\n| ------------- | --------------- | ------------- | ------------------------------ |\n| N/A | `Command` / `⌘` | `Meta` | `MetaLeft` / `MetaRight` |\n| `Alt` | `Option` / `⌥` | `Alt` | `AltLeft` / `AltRight` |\n| `Control` | `Control` / `^` | `Control` | `ControlLeft` / `ControlRight` |\n| `Shift` | `Shift` | `Shift` | `ShiftLeft` / `ShiftRight` |\n| `Space` | `Space` | N/A | `Space` |\n| `Enter` | `Return` | `Enter` | `Enter` |\n| `Esc` | `Esc` | `Escape` | `Escape` |\n| `1`, `2`, etc | `1`, `2`, etc | `1`, `2`, etc | `Digit1`, `Digit2`, etc |\n| `a`, `b`, etc | `a`, `b`, etc | `a`, `b`, etc | `KeyA`, `KeyB`, etc |\n| `-` | `-` | `-` | `Minus` |\n| `=` | `=` | `=` | `Equal` |\n| `+` | `+` | `+` | `Equal`\\* |\n\nIn addition to the above table, you can use [https://keycode.info/](https://keycode.info/) for checking the specific values needed. Note that some keys will have the same code as others because they appear on the same key on the keyboard. Keep in mind how this is affected by international keyboards which may have different layouts.\n\n---\n\n## Navigating with the command menu\n\n1. Use `Ctrl+K` (Windows/Linux) or `Cmd+K` (Mac) to open the command menu.\n2. Start typing the command you want to execute. The suggestions in the command menu change to match your text.\n3. Finish entering the name, or use the arrow keys to highlight the command you want from the list of suggestions.\n4. Use `Enter` to execute the chosen command.\n5. If you chose a command that has nested commands, you can use `Backspace` to return to the previous menu.\n6. When the command menu is active, you can use one of the following keyboard shortcuts to close it: `Esc`, `Ctrl+K` (Windows and Linux) or `Cmd+K` (Mac).\n"
2306
2316
  },
2307
2317
  {
2308
2318
  "kind": "javascript-module",
@@ -2365,7 +2375,8 @@
2365
2375
  "module": "src/command-menu/KeyboardController.ts"
2366
2376
  }
2367
2377
  }
2368
- ]
2378
+ ],
2379
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide global and contextual keyboard shortcuts for users.\n- Make command menu available everywhere. Users must be able to bring up the command menu easily.\n- Make command menu central. Users should be able to find global shortcuts from one location.\n- Make command menu omnipotent. Give users access to every possible action.\n- Group related commands logically under sections with the section setting.\n- Use `Alt` key as the modifier, since this is less likely to clash with existing shortcuts.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t make command menu available only in certain views of the application.\n- Don’t define shortcuts such as `Ctrl+C`, since this will clash with the native \"Copy\" shortcut.\n- Don't create complex shortcuts, as users will struggle to remember them.\n- Avoid using `KeyboardEvent.key` for defining the shortcut keys.\n- Don’t use as a search field only.\n\n</div>\n\n---\n\n## Content guidelines\n\nCommand titles should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they execute a command:\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Consultation</div>\n\nAlways lead with a strong verb that encourages action. To provide enough context to user, use the {verb} + {noun} content formula:\n\n<div class=\"n-usage n-usage-do\">Open dashboard</div>\n<div class=\"n-usage n-usage-dont\">Dashboard</div>\n\nWhen writing command titles, 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\">New appointment</div>\n<div class=\"n-usage n-usage-dont\">New Appointment</div>\n\nAvoid unnecessary words and articles in command titles, 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 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 ellipsis in the title when describing sections that have commands grouped inside of them:\n\n<div class=\"n-usage n-usage-do\">Change theme…</div>\n<div class=\"n-usage n-usage-dont\">Change theme</div>\n\n---\n\n## Commands data\n\nEach command in the `commands` data array must include at least an `id` and `title`. A&nbsp;command may also include properties for `section`, `icon`, `handler`, `shortcut` , `parent`, and `keywords`:\n\n| Name | Purpose |\n| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `id` | An identifier for each command, must be unique. Example: `id: \"user\"`. |\n| `title` | The title shown to users. This is used when searching for a command. Example: `title: \"Change theme...\"`. |\n| `keywords` | Not visible in the user interface, but can make it easier to discover commands through search. Example: `keywords: \"command change log sign out in\"`. |\n| `shortcut` | The keyboard shortcut. Example: `shortcut: \"Alt+KeyU\"`. See the sections [Defining Shortcuts](#defining-shortcuts) and [Choosing shortcuts](#choosing-shortcuts) below for more information. |\n| `section` | Used for grouping many commands under a common header. Example: `section: \"Commands\"`. |\n| `icon` | A name of an icon form Nordicons to show beside the title. If not specified, default command icon will be used instead. Example: `icon: \"file-picture\"`. |\n| `parent` | The `id` of a parent command. This is used for nesting commands. Example: `parent: \"theme\"`. |\n| `handler` | A function to execute when an user triggers a command. Example: `handler: () => { alert(\"Change to light theme\") }`. In cases where a command is only used as a parent command e.g. \"Change theme\", this is not required. |\n\n---\n\n## Defining shortcuts\n\nShortcuts in the Command Menu have the following form: `[modifier]+[key]`. Shortcuts are made up of a sequence of presses. A press can be as simple as a single key which matches against [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values):\n\n```js\n// Matches: event.code:\n\"KeyD\"\n```\n\nPresses can optionally be prefixed with **_modifiers_** which match against any valid value to [`KeyboardEvent.getModifierState()`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState).\n\n```js\n\"Control+KeyD\"\n\"Meta+KeyD\"\n\"Shift+KeyD\"\n\"Alt+KeyD\"\n\"Meta+Shift+KeyD\"\n```\n\nThere is also a special `$mod` modifier that makes it easy to support cross platform keybindings:\n\n- Mac: `$mod` = `Meta` (⌘)\n- Windows/Linux: `$mod` = `Control`\n\n```js\n\"$mod+KeyD\" // ⌘/Ctrl + D\n\"$mod+Shift+KeyD\" // ⌘/Ctrl + Shift + D\n```\n\nThe Command Menu itself can be opened using `⌘+k` (or `Ctrl+k` on Windows) and closed by hitting `Esc`. These are both non-configurable shortcuts in order to unify the experience across our platforms.\n\n---\n\n## Choosing shortcuts\n\nWhen choosing shortcuts, it is very important that they do not clash with native operating system or browser shortcuts.\n\nFor example, you _should not_ define a shortcut like `$mod+KeyC`, since this will clash with the native “Copy” shortcut, and will be triggered every time a user copies text in the app. Nor should you use shortcuts like `Shift+KeyA` since this will get triggered whenever a user types an uppercase “A” character. Therefore, special care and attention must be given to _each and every_ shortcut choice.\n\nIn general, we recommend using the `Alt` modifier, since this is less likely to clash with existing shortcuts. However, be aware, the `Alt` key is also used for accented characters e.g. `Alt+KeyA` produces the letter “å”. Again, it is crucial that you choose shortcuts carefully.\n\nYou should strive to choose shortcuts that are intuitive and easy to remember. The more complex a shortcut, the less likely a user is to remember it. Of course, a user can still find a command by searching the command menu, and for some users this may be their preferred way of triggering commands.\n\n---\n\n## Common keybindings\n\nKeybindings will be matched against [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) and [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values) which may have some names you don’t expect. Please note that we recommend always using `KeyboardEvent.code` for defining the keys and only using `KeyboardEvent.key` for defining modifiers.\n\n| Windows | macOS | key | code |\n| ------------- | --------------- | ------------- | ------------------------------ |\n| N/A | `Command` / `⌘` | `Meta` | `MetaLeft` / `MetaRight` |\n| `Alt` | `Option` / `⌥` | `Alt` | `AltLeft` / `AltRight` |\n| `Control` | `Control` / `^` | `Control` | `ControlLeft` / `ControlRight` |\n| `Shift` | `Shift` | `Shift` | `ShiftLeft` / `ShiftRight` |\n| `Space` | `Space` | N/A | `Space` |\n| `Enter` | `Return` | `Enter` | `Enter` |\n| `Esc` | `Esc` | `Escape` | `Escape` |\n| `1`, `2`, etc | `1`, `2`, etc | `1`, `2`, etc | `Digit1`, `Digit2`, etc |\n| `a`, `b`, etc | `a`, `b`, etc | `a`, `b`, etc | `KeyA`, `KeyB`, etc |\n| `-` | `-` | `-` | `Minus` |\n| `=` | `=` | `=` | `Equal` |\n| `+` | `+` | `+` | `Equal`\\* |\n\nIn addition to the above table, you can use [https://keycode.info/](https://keycode.info/) for checking the specific values needed. Note that some keys will have the same code as others because they appear on the same key on the keyboard. Keep in mind how this is affected by international keyboards which may have different layouts.\n\n---\n\n## Navigating with the command menu\n\n1. Use `Ctrl+K` (Windows/Linux) or `Cmd+K` (Mac) to open the command menu.\n2. Start typing the command you want to execute. The suggestions in the command menu change to match your text.\n3. Finish entering the name, or use the arrow keys to highlight the command you want from the list of suggestions.\n4. Use `Enter` to execute the chosen command.\n5. If you chose a command that has nested commands, you can use `Backspace` to return to the previous menu.\n6. When the command menu is active, you can use one of the following keyboard shortcuts to close it: `Esc`, `Ctrl+K` (Windows and Linux) or `Cmd+K` (Mac).\n"
2369
2380
  },
2370
2381
  {
2371
2382
  "kind": "javascript-module",
@@ -2400,7 +2411,8 @@
2400
2411
  "module": "src/command-menu/events.ts"
2401
2412
  }
2402
2413
  }
2403
- ]
2414
+ ],
2415
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide global and contextual keyboard shortcuts for users.\n- Make command menu available everywhere. Users must be able to bring up the command menu easily.\n- Make command menu central. Users should be able to find global shortcuts from one location.\n- Make command menu omnipotent. Give users access to every possible action.\n- Group related commands logically under sections with the section setting.\n- Use `Alt` key as the modifier, since this is less likely to clash with existing shortcuts.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t make command menu available only in certain views of the application.\n- Don’t define shortcuts such as `Ctrl+C`, since this will clash with the native \"Copy\" shortcut.\n- Don't create complex shortcuts, as users will struggle to remember them.\n- Avoid using `KeyboardEvent.key` for defining the shortcut keys.\n- Don’t use as a search field only.\n\n</div>\n\n---\n\n## Content guidelines\n\nCommand titles should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they execute a command:\n\n<div class=\"n-usage n-usage-do\">Start consultation</div>\n<div class=\"n-usage n-usage-dont\">Consultation</div>\n\nAlways lead with a strong verb that encourages action. To provide enough context to user, use the {verb} + {noun} content formula:\n\n<div class=\"n-usage n-usage-do\">Open dashboard</div>\n<div class=\"n-usage n-usage-dont\">Dashboard</div>\n\nWhen writing command titles, 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\">New appointment</div>\n<div class=\"n-usage n-usage-dont\">New Appointment</div>\n\nAvoid unnecessary words and articles in command titles, 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 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 ellipsis in the title when describing sections that have commands grouped inside of them:\n\n<div class=\"n-usage n-usage-do\">Change theme…</div>\n<div class=\"n-usage n-usage-dont\">Change theme</div>\n\n---\n\n## Commands data\n\nEach command in the `commands` data array must include at least an `id` and `title`. A&nbsp;command may also include properties for `section`, `icon`, `handler`, `shortcut` , `parent`, and `keywords`:\n\n| Name | Purpose |\n| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `id` | An identifier for each command, must be unique. Example: `id: \"user\"`. |\n| `title` | The title shown to users. This is used when searching for a command. Example: `title: \"Change theme...\"`. |\n| `keywords` | Not visible in the user interface, but can make it easier to discover commands through search. Example: `keywords: \"command change log sign out in\"`. |\n| `shortcut` | The keyboard shortcut. Example: `shortcut: \"Alt+KeyU\"`. See the sections [Defining Shortcuts](#defining-shortcuts) and [Choosing shortcuts](#choosing-shortcuts) below for more information. |\n| `section` | Used for grouping many commands under a common header. Example: `section: \"Commands\"`. |\n| `icon` | A name of an icon form Nordicons to show beside the title. If not specified, default command icon will be used instead. Example: `icon: \"file-picture\"`. |\n| `parent` | The `id` of a parent command. This is used for nesting commands. Example: `parent: \"theme\"`. |\n| `handler` | A function to execute when an user triggers a command. Example: `handler: () => { alert(\"Change to light theme\") }`. In cases where a command is only used as a parent command e.g. \"Change theme\", this is not required. |\n\n---\n\n## Defining shortcuts\n\nShortcuts in the Command Menu have the following form: `[modifier]+[key]`. Shortcuts are made up of a sequence of presses. A press can be as simple as a single key which matches against [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values):\n\n```js\n// Matches: event.code:\n\"KeyD\"\n```\n\nPresses can optionally be prefixed with **_modifiers_** which match against any valid value to [`KeyboardEvent.getModifierState()`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState).\n\n```js\n\"Control+KeyD\"\n\"Meta+KeyD\"\n\"Shift+KeyD\"\n\"Alt+KeyD\"\n\"Meta+Shift+KeyD\"\n```\n\nThere is also a special `$mod` modifier that makes it easy to support cross platform keybindings:\n\n- Mac: `$mod` = `Meta` (⌘)\n- Windows/Linux: `$mod` = `Control`\n\n```js\n\"$mod+KeyD\" // ⌘/Ctrl + D\n\"$mod+Shift+KeyD\" // ⌘/Ctrl + Shift + D\n```\n\nThe Command Menu itself can be opened using `⌘+k` (or `Ctrl+k` on Windows) and closed by hitting `Esc`. These are both non-configurable shortcuts in order to unify the experience across our platforms.\n\n---\n\n## Choosing shortcuts\n\nWhen choosing shortcuts, it is very important that they do not clash with native operating system or browser shortcuts.\n\nFor example, you _should not_ define a shortcut like `$mod+KeyC`, since this will clash with the native “Copy” shortcut, and will be triggered every time a user copies text in the app. Nor should you use shortcuts like `Shift+KeyA` since this will get triggered whenever a user types an uppercase “A” character. Therefore, special care and attention must be given to _each and every_ shortcut choice.\n\nIn general, we recommend using the `Alt` modifier, since this is less likely to clash with existing shortcuts. However, be aware, the `Alt` key is also used for accented characters e.g. `Alt+KeyA` produces the letter “å”. Again, it is crucial that you choose shortcuts carefully.\n\nYou should strive to choose shortcuts that are intuitive and easy to remember. The more complex a shortcut, the less likely a user is to remember it. Of course, a user can still find a command by searching the command menu, and for some users this may be their preferred way of triggering commands.\n\n---\n\n## Common keybindings\n\nKeybindings will be matched against [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) and [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values) which may have some names you don’t expect. Please note that we recommend always using `KeyboardEvent.code` for defining the keys and only using `KeyboardEvent.key` for defining modifiers.\n\n| Windows | macOS | key | code |\n| ------------- | --------------- | ------------- | ------------------------------ |\n| N/A | `Command` / `⌘` | `Meta` | `MetaLeft` / `MetaRight` |\n| `Alt` | `Option` / `⌥` | `Alt` | `AltLeft` / `AltRight` |\n| `Control` | `Control` / `^` | `Control` | `ControlLeft` / `ControlRight` |\n| `Shift` | `Shift` | `Shift` | `ShiftLeft` / `ShiftRight` |\n| `Space` | `Space` | N/A | `Space` |\n| `Enter` | `Return` | `Enter` | `Enter` |\n| `Esc` | `Esc` | `Escape` | `Escape` |\n| `1`, `2`, etc | `1`, `2`, etc | `1`, `2`, etc | `Digit1`, `Digit2`, etc |\n| `a`, `b`, etc | `a`, `b`, etc | `a`, `b`, etc | `KeyA`, `KeyB`, etc |\n| `-` | `-` | `-` | `Minus` |\n| `=` | `=` | `=` | `Equal` |\n| `+` | `+` | `+` | `Equal`\\* |\n\nIn addition to the above table, you can use [https://keycode.info/](https://keycode.info/) for checking the specific values needed. Note that some keys will have the same code as others because they appear on the same key on the keyboard. Keep in mind how this is affected by international keyboards which may have different layouts.\n\n---\n\n## Navigating with the command menu\n\n1. Use `Ctrl+K` (Windows/Linux) or `Cmd+K` (Mac) to open the command menu.\n2. Start typing the command you want to execute. The suggestions in the command menu change to match your text.\n3. Finish entering the name, or use the arrow keys to highlight the command you want from the list of suggestions.\n4. Use `Enter` to execute the chosen command.\n5. If you chose a command that has nested commands, you can use `Backspace` to return to the previous menu.\n6. When the command menu is active, you can use one of the following keyboard shortcuts to close it: `Esc`, `Ctrl+K` (Windows and Linux) or `Cmd+K` (Mac).\n"
2404
2416
  },
2405
2417
  {
2406
2418
  "kind": "javascript-module",
@@ -3340,7 +3352,7 @@
3340
3352
  "text": "string"
3341
3353
  },
3342
3354
  "default": "\"\"",
3343
- "description": "Date value. Must be in IS0-8601 format: YYYY-MM-DD",
3355
+ "description": "Date value. Must be in IS0-8601 format: YYYY-MM-DD.",
3344
3356
  "attribute": "value",
3345
3357
  "inheritedFrom": {
3346
3358
  "name": "InputMixin",
@@ -3426,6 +3438,7 @@
3426
3438
  "type": {
3427
3439
  "text": "DateDisabledPredicate"
3428
3440
  },
3441
+ "default": "isDateDisabled",
3429
3442
  "description": "Controls which days are disabled and therefore disallowed.\nFor example, this can be used to disallow selection of weekends."
3430
3443
  },
3431
3444
  {
@@ -3717,15 +3730,6 @@
3717
3730
  "module": "src/common/mixins/FormAssociatedMixin.ts"
3718
3731
  }
3719
3732
  },
3720
- {
3721
- "kind": "method",
3722
- "name": "renderHint",
3723
- "privacy": "private",
3724
- "inheritedFrom": {
3725
- "name": "FormAssociatedMixin",
3726
- "module": "src/common/mixins/FormAssociatedMixin.ts"
3727
- }
3728
- },
3729
3733
  {
3730
3734
  "kind": "method",
3731
3735
  "name": "renderError",
@@ -3778,7 +3782,7 @@
3778
3782
  "text": "boolean"
3779
3783
  },
3780
3784
  "default": "false",
3781
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
3785
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
3782
3786
  "attribute": "disabled",
3783
3787
  "reflects": true,
3784
3788
  "inheritedFrom": {
@@ -3792,7 +3796,7 @@
3792
3796
  "type": {
3793
3797
  "text": "string | undefined"
3794
3798
  },
3795
- "description": "The name of the input component.",
3799
+ "description": "The name of the form component.",
3796
3800
  "attribute": "name",
3797
3801
  "inheritedFrom": {
3798
3802
  "name": "InputMixin",
@@ -3803,7 +3807,7 @@
3803
3807
  "kind": "field",
3804
3808
  "name": "form",
3805
3809
  "privacy": "protected",
3806
- "description": "Gets the form, if any, associated with the input element.",
3810
+ "description": "Gets the form, if any, associated with the form element.",
3807
3811
  "inheritedFrom": {
3808
3812
  "name": "InputMixin",
3809
3813
  "module": "src/common/mixins/InputMixin.ts"
@@ -3831,7 +3835,7 @@
3831
3835
  "description": "An object which controls aspects of the focusing process."
3832
3836
  }
3833
3837
  ],
3834
- "description": "Programmatically move focus to the component",
3838
+ "description": "Programmatically move focus to the component.",
3835
3839
  "inheritedFrom": {
3836
3840
  "name": "FocusableMixin",
3837
3841
  "module": "src/common/mixins/FocusableMixin.ts"
@@ -3915,7 +3919,7 @@
3915
3919
  "text": "string"
3916
3920
  },
3917
3921
  "default": "\"\"",
3918
- "description": "Date value. Must be in IS0-8601 format: YYYY-MM-DD",
3922
+ "description": "Date value. Must be in IS0-8601 format: YYYY-MM-DD.",
3919
3923
  "fieldName": "value",
3920
3924
  "inheritedFrom": {
3921
3925
  "name": "InputMixin",
@@ -4051,7 +4055,7 @@
4051
4055
  "text": "boolean"
4052
4056
  },
4053
4057
  "default": "false",
4054
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
4058
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
4055
4059
  "fieldName": "disabled",
4056
4060
  "inheritedFrom": {
4057
4061
  "name": "InputMixin",
@@ -4063,7 +4067,7 @@
4063
4067
  "type": {
4064
4068
  "text": "string | undefined"
4065
4069
  },
4066
- "description": "The name of the input component.",
4070
+ "description": "The name of the form component.",
4067
4071
  "fieldName": "name",
4068
4072
  "inheritedFrom": {
4069
4073
  "name": "InputMixin",
@@ -4116,7 +4120,8 @@
4116
4120
  "module": "src/date-picker/DatePicker.ts"
4117
4121
  }
4118
4122
  }
4119
- ]
4123
+ ],
4124
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use to choose a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nDate picker is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Choose date button\n\n- `Space, Enter`: Opens the date picker dialog and moves focus to the first select menu in the dialog.\n\n### Date picker dialog\n\n- `Esc`: Closes the date picker dialog and moves focus back to the “choose date” button.\n- `Tab`: Moves focus to the next element in the dialog. Please note since the calendar uses `role=\"grid\"`, only one button in the calendar grid is in the tab sequence. Additionally, if focus is on the last focusable element, focus is next moved back to the first focusable element inside the date picker dialog.\n- `Shift + Tab`: Same as above, but in reverse order.\n\n### Date picker dialog: Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Date picker dialog: Date grid\n\n- `Space, Enter`: Selects a date, closes the dialog, and moves focus back to the “Choose Date” button. Additionally updates the value of the date picker input with the selected date, and adds selected date to “Choose Date” button label.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n\n#### Date picker dialog: Close button\n\n- `Space, Enter`: Closes the dialog, moves focus to “choose date” button, but does not update the date in input.\n"
4120
4125
  },
4121
4126
  {
4122
4127
  "kind": "javascript-module",
@@ -4140,7 +4145,8 @@
4140
4145
  "module": "src/date-picker/date-adapter.ts"
4141
4146
  }
4142
4147
  }
4143
- ]
4148
+ ],
4149
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use to choose a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nDate picker is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Choose date button\n\n- `Space, Enter`: Opens the date picker dialog and moves focus to the first select menu in the dialog.\n\n### Date picker dialog\n\n- `Esc`: Closes the date picker dialog and moves focus back to the “choose date” button.\n- `Tab`: Moves focus to the next element in the dialog. Please note since the calendar uses `role=\"grid\"`, only one button in the calendar grid is in the tab sequence. Additionally, if focus is on the last focusable element, focus is next moved back to the first focusable element inside the date picker dialog.\n- `Shift + Tab`: Same as above, but in reverse order.\n\n### Date picker dialog: Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Date picker dialog: Date grid\n\n- `Space, Enter`: Selects a date, closes the dialog, and moves focus back to the “Choose Date” button. Additionally updates the value of the date picker input with the selected date, and adds selected date to “Choose Date” button label.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n\n#### Date picker dialog: Close button\n\n- `Space, Enter`: Closes the dialog, moves focus to “choose date” button, but does not update the date in input.\n"
4144
4150
  },
4145
4151
  {
4146
4152
  "kind": "javascript-module",
@@ -4164,7 +4170,8 @@
4164
4170
  "module": "src/date-picker/date-localization.ts"
4165
4171
  }
4166
4172
  }
4167
- ]
4173
+ ],
4174
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use to choose a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nDate picker is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Choose date button\n\n- `Space, Enter`: Opens the date picker dialog and moves focus to the first select menu in the dialog.\n\n### Date picker dialog\n\n- `Esc`: Closes the date picker dialog and moves focus back to the “choose date” button.\n- `Tab`: Moves focus to the next element in the dialog. Please note since the calendar uses `role=\"grid\"`, only one button in the calendar grid is in the tab sequence. Additionally, if focus is on the last focusable element, focus is next moved back to the first focusable element inside the date picker dialog.\n- `Shift + Tab`: Same as above, but in reverse order.\n\n### Date picker dialog: Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Date picker dialog: Date grid\n\n- `Space, Enter`: Selects a date, closes the dialog, and moves focus back to the “Choose Date” button. Additionally updates the value of the date picker input with the selected date, and adds selected date to “Choose Date” button label.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n\n#### Date picker dialog: Close button\n\n- `Space, Enter`: Closes the dialog, moves focus to “choose date” button, but does not update the date in input.\n"
4168
4175
  },
4169
4176
  {
4170
4177
  "kind": "javascript-module",
@@ -4229,16 +4236,6 @@
4229
4236
  "description": "Optional error to be shown with the fieldset. Alternatively use the error slot.",
4230
4237
  "attribute": "error"
4231
4238
  },
4232
- {
4233
- "kind": "method",
4234
- "name": "renderHint",
4235
- "privacy": "private"
4236
- },
4237
- {
4238
- "kind": "method",
4239
- "name": "renderError",
4240
- "privacy": "private"
4241
- },
4242
4239
  {
4243
4240
  "kind": "field",
4244
4241
  "name": "hasHint",
@@ -4327,6 +4324,82 @@
4327
4324
  ],
4328
4325
  "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use the fieldset component when you need to create a relationship between multiple form inputs.\n- It is especially important to use with a group of radio components.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place interactive content (buttons, links etc) inside the label.\n- Don’t use with a checkbox component when there is **only one** checkbox. For example, when accepting terms and conditions.\n\n</div>\n\n-------\n\n## Content guidelines\n\nFieldset label should be clear, accurate and predictable. It should help the user to understand how the items in the fieldset are grouped together, or what kind of choice the user is making:\n\n<div class=\"n-usage n-usage-do\">Pick a color</div>\n<div class=\"n-usage n-usage-dont\">Choose</div>\n\nWhen writing fieldset labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">Pick a color</div>\n<div class=\"n-usage n-usage-dont\">Pick A Color</div>\n\nAvoid ending in punctuation if it’s a single sentence, word, or a fragment:\n\n<div class=\"n-usage n-usage-do\">Pick a color</div>\n<div class=\"n-usage n-usage-dont\">Pick a color.</div>\n\nDo not use colons in fieldset label:\n\n<div class=\"n-usage n-usage-do\">Payment details</div>\n<div class=\"n-usage n-usage-dont\">Payment details:</div>\n\n-------\n\n## Additional considerations\n\n- A label (which becomes to `<legend>` inside the fieldset) is always required.\n- Hint text can be used to offer further information or explanation for an option.\n"
4329
4326
  },
4327
+ {
4328
+ "kind": "javascript-module",
4329
+ "path": "src/header/Header.ts",
4330
+ "declarations": [
4331
+ {
4332
+ "kind": "class",
4333
+ "description": "The header is a block of designated space for labelling the currently\nviewed context as well as providing primary actions.",
4334
+ "name": "Header",
4335
+ "slots": [
4336
+ {
4337
+ "description": "The header content.",
4338
+ "name": ""
4339
+ },
4340
+ {
4341
+ "description": "Optional slot for buttons, toggles, etc.",
4342
+ "name": "action"
4343
+ }
4344
+ ],
4345
+ "members": [
4346
+ {
4347
+ "kind": "field",
4348
+ "name": "actionSlot",
4349
+ "privacy": "private",
4350
+ "default": "new SlotController(this, \"action\")"
4351
+ },
4352
+ {
4353
+ "kind": "field",
4354
+ "name": "_warningLogged",
4355
+ "type": {
4356
+ "text": "boolean"
4357
+ },
4358
+ "privacy": "private",
4359
+ "static": true,
4360
+ "default": "false",
4361
+ "inheritedFrom": {
4362
+ "name": "DraftComponentMixin",
4363
+ "module": "src/common/mixins/DraftComponentMixin.ts"
4364
+ }
4365
+ }
4366
+ ],
4367
+ "mixins": [
4368
+ {
4369
+ "name": "DraftComponentMixin",
4370
+ "module": "/src/common/mixins/DraftComponentMixin.js"
4371
+ }
4372
+ ],
4373
+ "superclass": {
4374
+ "name": "LitElement",
4375
+ "package": "lit"
4376
+ },
4377
+ "status": "draft",
4378
+ "category": "structure",
4379
+ "tagName": "nord-header",
4380
+ "customElement": true
4381
+ }
4382
+ ],
4383
+ "exports": [
4384
+ {
4385
+ "kind": "js",
4386
+ "name": "default",
4387
+ "declaration": {
4388
+ "name": "Header",
4389
+ "module": "src/header/Header.ts"
4390
+ }
4391
+ },
4392
+ {
4393
+ "kind": "custom-element-definition",
4394
+ "name": "nord-header",
4395
+ "declaration": {
4396
+ "name": "Header",
4397
+ "module": "src/header/Header.ts"
4398
+ }
4399
+ }
4400
+ ],
4401
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use the header component to show a heading to describe the current view.\n- Use the header component to hold primary actions.\n- Use the header component at a visual high position at full width.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t overcrowd the header component with too many actions or information.\n- Don’t nest the header component too deeply and restrict its available space.\n\n</div>\n\n-------\n\n## Content guidelines\n\nThe header component should be a containing element placed high on the page to present high level controls and to describe the page itself. It shouldn’t be overcrowded with controls or information.\n\n<div class=\"n-usage n-usage-do\">[Menu] Dashboard [Account] [Log out]</div>\n<div class=\"n-usage n-usage-dont\">[Menu] Use the cards below to view various information [Export] [Save] [Edit Profile] [Log out] [Preferences]</div>\n"
4402
+ },
4330
4403
  {
4331
4404
  "kind": "javascript-module",
4332
4405
  "path": "src/icon/Icon.ts",
@@ -4579,7 +4652,8 @@
4579
4652
  "module": "src/icon/Icon.ts"
4580
4653
  }
4581
4654
  }
4582
- ]
4655
+ ],
4656
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide additional meaning in addition to a text label.\n- Use to help users who have difficulties with reading and attention.\n- Use in places where text label doesn’t fit (remember to add an accessible label for the icon).\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for decorative purposes alone.\n- Don’t use when a button’s action is already clear based on the text label.\n- Don’t use the same icon for differing purposes, as users will come to associate icons with specific types of actions.\n\n</div>\n\n---\n\n## Additional considerations\n\n- Icon components are hidden from assistive technologies by default.\n- Use `label` property to give an accessible label for the icon and to make it visible to assistive technologies.\n"
4583
4657
  },
4584
4658
  {
4585
4659
  "kind": "javascript-module",
@@ -4856,15 +4930,6 @@
4856
4930
  "module": "src/common/mixins/FormAssociatedMixin.ts"
4857
4931
  }
4858
4932
  },
4859
- {
4860
- "kind": "method",
4861
- "name": "renderHint",
4862
- "privacy": "private",
4863
- "inheritedFrom": {
4864
- "name": "FormAssociatedMixin",
4865
- "module": "src/common/mixins/FormAssociatedMixin.ts"
4866
- }
4867
- },
4868
4933
  {
4869
4934
  "kind": "method",
4870
4935
  "name": "renderError",
@@ -4917,7 +4982,7 @@
4917
4982
  "text": "boolean"
4918
4983
  },
4919
4984
  "default": "false",
4920
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
4985
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
4921
4986
  "attribute": "disabled",
4922
4987
  "reflects": true,
4923
4988
  "inheritedFrom": {
@@ -4931,7 +4996,7 @@
4931
4996
  "type": {
4932
4997
  "text": "string | undefined"
4933
4998
  },
4934
- "description": "The name of the input component.",
4999
+ "description": "The name of the form component.",
4935
5000
  "attribute": "name",
4936
5001
  "inheritedFrom": {
4937
5002
  "name": "InputMixin",
@@ -4945,7 +5010,7 @@
4945
5010
  "text": "string"
4946
5011
  },
4947
5012
  "default": "\"\"",
4948
- "description": "The value of the input component.",
5013
+ "description": "The value of the form component.",
4949
5014
  "attribute": "value",
4950
5015
  "inheritedFrom": {
4951
5016
  "name": "InputMixin",
@@ -4956,7 +5021,7 @@
4956
5021
  "kind": "field",
4957
5022
  "name": "form",
4958
5023
  "privacy": "protected",
4959
- "description": "Gets the form, if any, associated with the input element.",
5024
+ "description": "Gets the form, if any, associated with the form element.",
4960
5025
  "inheritedFrom": {
4961
5026
  "name": "InputMixin",
4962
5027
  "module": "src/common/mixins/InputMixin.ts"
@@ -4984,7 +5049,7 @@
4984
5049
  "description": "An object which controls aspects of the focusing process."
4985
5050
  }
4986
5051
  ],
4987
- "description": "Programmatically move focus to the component",
5052
+ "description": "Programmatically move focus to the component.",
4988
5053
  "inheritedFrom": {
4989
5054
  "name": "FocusableMixin",
4990
5055
  "module": "src/common/mixins/FocusableMixin.ts"
@@ -5127,7 +5192,7 @@
5127
5192
  "text": "boolean"
5128
5193
  },
5129
5194
  "default": "false",
5130
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
5195
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
5131
5196
  "fieldName": "disabled",
5132
5197
  "inheritedFrom": {
5133
5198
  "name": "InputMixin",
@@ -5139,7 +5204,7 @@
5139
5204
  "type": {
5140
5205
  "text": "string | undefined"
5141
5206
  },
5142
- "description": "The name of the input component.",
5207
+ "description": "The name of the form component.",
5143
5208
  "fieldName": "name",
5144
5209
  "inheritedFrom": {
5145
5210
  "name": "InputMixin",
@@ -5152,7 +5217,7 @@
5152
5217
  "text": "string"
5153
5218
  },
5154
5219
  "default": "\"\"",
5155
- "description": "The value of the input component.",
5220
+ "description": "The value of the form component.",
5156
5221
  "fieldName": "value",
5157
5222
  "inheritedFrom": {
5158
5223
  "name": "InputMixin",
@@ -5229,7 +5294,8 @@
5229
5294
  "module": "src/input/Input.ts"
5230
5295
  }
5231
5296
  }
5232
- ]
5297
+ ],
5298
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use to provide a text input where the expected input is short.\n- Use to only ask for information that’s really needed. Hide optional fields by default if possible or have them shown with a lower priority.\n- Use help text and placeholder to provide additional, non-critical instructions.\n- Validate input as soon as users have finished interacting with them (but not before).\n- Where necessary, label the input as “Optional” when you need to request input that’s not required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use when the expected text input is long. Use textarea component instead.\n- Don’t use the placeholder to provide information that’s required to use the input. Hint text should be used for this purpose instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nInput labels act as a title for the text field. Labels should typically be short and in noun form:\n\n<div class=\"n-usage n-usage-do\">Company name</div>\n<div class=\"n-usage n-usage-dont\">What is your company name?</div>\n\nWhen writing input 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\">Company name</div>\n<div class=\"n-usage n-usage-dont\">Company Name</div>\n\nWhen an input isn’t part of a form and is placed individually on a page, you could provide the input label as a call to action:\n\n<div class=\"n-usage n-usage-do\">Leave a comment</div>\n<div class=\"n-usage n-usage-dont\">Comment</div>\n\nDo not use colons in input label:\n\n<div class=\"n-usage n-usage-do\">First name</div>\n<div class=\"n-usage n-usage-dont\">First name:</div>\n\n---\n\n## Types\n\nThis section describes the different input types, their purpose, and when to use each type.\n\n| Name | Purpose |\n| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `text` | The default and most common variant. Displayed as a single-line text field. Line-breaks are automatically removed from the input value. |\n| `email` | A field for editing an email address. Looks similar to a text input, but has validation parameters and relevant keyboard for devices with dynamic keyboards. |\n| `password` | A single-line text field where the value is obscured. This type will alert user if a site is not secure. |\n| `tel` | A field for entering a telephone number. Displays a number keypad on mobile devices. |\n| `url` | A field variant that is used to let the user enter and edit an URL. |\n| `search` | A single-line text field for entering search strings. |\n| `number` | Used to let the user enter a number. |\n"
5233
5299
  },
5234
5300
  {
5235
5301
  "kind": "javascript-module",
@@ -5519,15 +5585,6 @@
5519
5585
  "module": "src/common/mixins/FormAssociatedMixin.ts"
5520
5586
  }
5521
5587
  },
5522
- {
5523
- "kind": "method",
5524
- "name": "renderHint",
5525
- "privacy": "private",
5526
- "inheritedFrom": {
5527
- "name": "FormAssociatedMixin",
5528
- "module": "src/common/mixins/FormAssociatedMixin.ts"
5529
- }
5530
- },
5531
5588
  {
5532
5589
  "kind": "method",
5533
5590
  "name": "renderError",
@@ -5580,7 +5637,7 @@
5580
5637
  "text": "boolean"
5581
5638
  },
5582
5639
  "default": "false",
5583
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
5640
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
5584
5641
  "attribute": "disabled",
5585
5642
  "reflects": true,
5586
5643
  "inheritedFrom": {
@@ -5594,7 +5651,7 @@
5594
5651
  "type": {
5595
5652
  "text": "string | undefined"
5596
5653
  },
5597
- "description": "The name of the input component.",
5654
+ "description": "The name of the form component.",
5598
5655
  "attribute": "name",
5599
5656
  "inheritedFrom": {
5600
5657
  "name": "InputMixin",
@@ -5608,7 +5665,7 @@
5608
5665
  "text": "string"
5609
5666
  },
5610
5667
  "default": "\"\"",
5611
- "description": "The value of the input component.",
5668
+ "description": "The value of the form component.",
5612
5669
  "attribute": "value",
5613
5670
  "inheritedFrom": {
5614
5671
  "name": "InputMixin",
@@ -5619,7 +5676,7 @@
5619
5676
  "kind": "field",
5620
5677
  "name": "form",
5621
5678
  "privacy": "protected",
5622
- "description": "Gets the form, if any, associated with the input element.",
5679
+ "description": "Gets the form, if any, associated with the form element.",
5623
5680
  "inheritedFrom": {
5624
5681
  "name": "InputMixin",
5625
5682
  "module": "src/common/mixins/InputMixin.ts"
@@ -5647,7 +5704,7 @@
5647
5704
  "description": "An object which controls aspects of the focusing process."
5648
5705
  }
5649
5706
  ],
5650
- "description": "Programmatically move focus to the component",
5707
+ "description": "Programmatically move focus to the component.",
5651
5708
  "inheritedFrom": {
5652
5709
  "name": "FocusableMixin",
5653
5710
  "module": "src/common/mixins/FocusableMixin.ts"
@@ -5790,7 +5847,7 @@
5790
5847
  "text": "boolean"
5791
5848
  },
5792
5849
  "default": "false",
5793
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
5850
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
5794
5851
  "fieldName": "disabled",
5795
5852
  "inheritedFrom": {
5796
5853
  "name": "InputMixin",
@@ -5802,7 +5859,7 @@
5802
5859
  "type": {
5803
5860
  "text": "string | undefined"
5804
5861
  },
5805
- "description": "The name of the input component.",
5862
+ "description": "The name of the form component.",
5806
5863
  "fieldName": "name",
5807
5864
  "inheritedFrom": {
5808
5865
  "name": "InputMixin",
@@ -5815,7 +5872,7 @@
5815
5872
  "text": "string"
5816
5873
  },
5817
5874
  "default": "\"\"",
5818
- "description": "The value of the input component.",
5875
+ "description": "The value of the form component.",
5819
5876
  "fieldName": "value",
5820
5877
  "inheritedFrom": {
5821
5878
  "name": "InputMixin",
@@ -5893,7 +5950,7 @@
5893
5950
  }
5894
5951
  }
5895
5952
  ],
5896
- "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\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."
5953
+ "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"
5897
5954
  },
5898
5955
  {
5899
5956
  "kind": "javascript-module",
@@ -6183,15 +6240,6 @@
6183
6240
  "module": "src/common/mixins/FormAssociatedMixin.ts"
6184
6241
  }
6185
6242
  },
6186
- {
6187
- "kind": "method",
6188
- "name": "renderHint",
6189
- "privacy": "private",
6190
- "inheritedFrom": {
6191
- "name": "FormAssociatedMixin",
6192
- "module": "src/common/mixins/FormAssociatedMixin.ts"
6193
- }
6194
- },
6195
6243
  {
6196
6244
  "kind": "method",
6197
6245
  "name": "renderError",
@@ -6244,7 +6292,7 @@
6244
6292
  "text": "boolean"
6245
6293
  },
6246
6294
  "default": "false",
6247
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
6295
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
6248
6296
  "attribute": "disabled",
6249
6297
  "reflects": true,
6250
6298
  "inheritedFrom": {
@@ -6258,7 +6306,7 @@
6258
6306
  "type": {
6259
6307
  "text": "string | undefined"
6260
6308
  },
6261
- "description": "The name of the input component.",
6309
+ "description": "The name of the form component.",
6262
6310
  "attribute": "name",
6263
6311
  "inheritedFrom": {
6264
6312
  "name": "InputMixin",
@@ -6272,7 +6320,7 @@
6272
6320
  "text": "string"
6273
6321
  },
6274
6322
  "default": "\"\"",
6275
- "description": "The value of the input component.",
6323
+ "description": "The value of the form component.",
6276
6324
  "attribute": "value",
6277
6325
  "inheritedFrom": {
6278
6326
  "name": "InputMixin",
@@ -6283,7 +6331,7 @@
6283
6331
  "kind": "field",
6284
6332
  "name": "form",
6285
6333
  "privacy": "protected",
6286
- "description": "Gets the form, if any, associated with the input element.",
6334
+ "description": "Gets the form, if any, associated with the form element.",
6287
6335
  "inheritedFrom": {
6288
6336
  "name": "InputMixin",
6289
6337
  "module": "src/common/mixins/InputMixin.ts"
@@ -6311,7 +6359,7 @@
6311
6359
  "description": "An object which controls aspects of the focusing process."
6312
6360
  }
6313
6361
  ],
6314
- "description": "Programmatically move focus to the component",
6362
+ "description": "Programmatically move focus to the component.",
6315
6363
  "inheritedFrom": {
6316
6364
  "name": "FocusableMixin",
6317
6365
  "module": "src/common/mixins/FocusableMixin.ts"
@@ -6471,7 +6519,7 @@
6471
6519
  "text": "boolean"
6472
6520
  },
6473
6521
  "default": "false",
6474
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
6522
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
6475
6523
  "fieldName": "disabled",
6476
6524
  "inheritedFrom": {
6477
6525
  "name": "InputMixin",
@@ -6483,7 +6531,7 @@
6483
6531
  "type": {
6484
6532
  "text": "string | undefined"
6485
6533
  },
6486
- "description": "The name of the input component.",
6534
+ "description": "The name of the form component.",
6487
6535
  "fieldName": "name",
6488
6536
  "inheritedFrom": {
6489
6537
  "name": "InputMixin",
@@ -6496,7 +6544,7 @@
6496
6544
  "text": "string"
6497
6545
  },
6498
6546
  "default": "\"\"",
6499
- "description": "The value of the input component.",
6547
+ "description": "The value of the form component.",
6500
6548
  "fieldName": "value",
6501
6549
  "inheritedFrom": {
6502
6550
  "name": "InputMixin",
@@ -6547,7 +6595,8 @@
6547
6595
  "module": "src/select/Select.ts"
6548
6596
  }
6549
6597
  }
6550
- ]
6598
+ ],
6599
+ "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 a user choose one option from an options menu.\n- Use when you have more than 6 options to choose from.\n- Use when you don’t know how many options there will be.\n- Use hint text and placeholder to provide additional, non-critical instructions.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don't use a select if you have less than 6 options to choose from. Consider using radio components instead, if you have enough space to allow it. \n\n</div>\n\n---\n\n## Content guidelines\n\nSelect labels act as a title for the select field. Labels should typically be short and in noun&nbsp;form:\n\n<div class=\"n-usage n-usage-do\">Company name</div>\n<div class=\"n-usage n-usage-dont\">What is your company name?</div>\n\nWhen writing select 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\">Company name</div>\n<div class=\"n-usage n-usage-dont\">Company Name</div>\n\nDo not use colons in select labels:\n\n<div class=\"n-usage n-usage-do\">Choose organization</div>\n<div class=\"n-usage n-usage-dont\">Choose organization:</div>\n"
6551
6600
  },
6552
6601
  {
6553
6602
  "kind": "javascript-module",
@@ -6664,7 +6713,8 @@
6664
6713
  "module": "src/spinner/Spinner.ts"
6665
6714
  }
6666
6715
  }
6667
- ]
6716
+ ],
6717
+ "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"
6668
6718
  },
6669
6719
  {
6670
6720
  "kind": "javascript-module",
@@ -6789,7 +6839,8 @@
6789
6839
  "module": "src/stack/Stack.ts"
6790
6840
  }
6791
6841
  }
6792
- ]
6842
+ ],
6843
+ "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 you need to stack multiple components vertically or horizontally.\n- Use when you want to adjust the white space between two or more components.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for building grid based layouts.\n\n</div>\n"
6793
6844
  },
6794
6845
  {
6795
6846
  "kind": "javascript-module",
@@ -6888,7 +6939,8 @@
6888
6939
  "module": "src/table/Table.ts"
6889
6940
  }
6890
6941
  }
6891
- ]
6942
+ ],
6943
+ "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 you need to display tabular data in a view.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use to display list data.\n- Don’t use tables for layout.\n\n</div>\n\n---\n\n## Content guidelines\n\nHeaders in a table should be clear, accurate and predictable. When writing headers, 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\">User account</div>\n<div class=\"n-usage n-usage-dont\">User Account</div>\n\nInclude units of measurement symbols in the table header so they aren’t repeated throughout every single column:\n\n<div class=\"n-usage n-usage-do\">Temperature °C</div>\n<div class=\"n-usage n-usage-dont\">Temperature</div>\n\nAvoid unnecessary words and articles in table headers, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Description</div>\n<div class=\"n-usage n-usage-dont\">A description</div>\n\nKeep decimals consistent. For example, don’t use 3 decimals in one row and 2 in others:\n\n<div class=\"n-usage n-usage-do\">30.00<br/>25.00</div>\n<div class=\"n-usage n-usage-dont\">30.000<br/>25.0</div>\n\n---\n\n## Additional considerations\n\n- Nord’s table component acts as a lightweight and un-opinionated component for enhancing tabular data. It is up to the user of this component to make sure that the table markup they use is accessible.\n- It’s important to pay close attention to semantics when authoring tables. The markup in the examples can be used as a starting point. However, be aware that HTML tables have a large feature set which cannot be fully covered in this documentation.\n"
6892
6944
  },
6893
6945
  {
6894
6946
  "kind": "javascript-module",
@@ -7148,15 +7200,6 @@
7148
7200
  "module": "src/common/mixins/FormAssociatedMixin.ts"
7149
7201
  }
7150
7202
  },
7151
- {
7152
- "kind": "method",
7153
- "name": "renderHint",
7154
- "privacy": "private",
7155
- "inheritedFrom": {
7156
- "name": "FormAssociatedMixin",
7157
- "module": "src/common/mixins/FormAssociatedMixin.ts"
7158
- }
7159
- },
7160
7203
  {
7161
7204
  "kind": "method",
7162
7205
  "name": "renderError",
@@ -7209,7 +7252,7 @@
7209
7252
  "text": "boolean"
7210
7253
  },
7211
7254
  "default": "false",
7212
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
7255
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
7213
7256
  "attribute": "disabled",
7214
7257
  "reflects": true,
7215
7258
  "inheritedFrom": {
@@ -7223,7 +7266,7 @@
7223
7266
  "type": {
7224
7267
  "text": "string | undefined"
7225
7268
  },
7226
- "description": "The name of the input component.",
7269
+ "description": "The name of the form component.",
7227
7270
  "attribute": "name",
7228
7271
  "inheritedFrom": {
7229
7272
  "name": "InputMixin",
@@ -7237,7 +7280,7 @@
7237
7280
  "text": "string"
7238
7281
  },
7239
7282
  "default": "\"\"",
7240
- "description": "The value of the input component.",
7283
+ "description": "The value of the form component.",
7241
7284
  "attribute": "value",
7242
7285
  "inheritedFrom": {
7243
7286
  "name": "InputMixin",
@@ -7248,7 +7291,7 @@
7248
7291
  "kind": "field",
7249
7292
  "name": "form",
7250
7293
  "privacy": "protected",
7251
- "description": "Gets the form, if any, associated with the input element.",
7294
+ "description": "Gets the form, if any, associated with the form element.",
7252
7295
  "inheritedFrom": {
7253
7296
  "name": "InputMixin",
7254
7297
  "module": "src/common/mixins/InputMixin.ts"
@@ -7276,7 +7319,7 @@
7276
7319
  "description": "An object which controls aspects of the focusing process."
7277
7320
  }
7278
7321
  ],
7279
- "description": "Programmatically move focus to the component",
7322
+ "description": "Programmatically move focus to the component.",
7280
7323
  "inheritedFrom": {
7281
7324
  "name": "FocusableMixin",
7282
7325
  "module": "src/common/mixins/FocusableMixin.ts"
@@ -7419,7 +7462,7 @@
7419
7462
  "text": "boolean"
7420
7463
  },
7421
7464
  "default": "false",
7422
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
7465
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
7423
7466
  "fieldName": "disabled",
7424
7467
  "inheritedFrom": {
7425
7468
  "name": "InputMixin",
@@ -7431,7 +7474,7 @@
7431
7474
  "type": {
7432
7475
  "text": "string | undefined"
7433
7476
  },
7434
- "description": "The name of the input component.",
7477
+ "description": "The name of the form component.",
7435
7478
  "fieldName": "name",
7436
7479
  "inheritedFrom": {
7437
7480
  "name": "InputMixin",
@@ -7444,7 +7487,7 @@
7444
7487
  "text": "string"
7445
7488
  },
7446
7489
  "default": "\"\"",
7447
- "description": "The value of the input component.",
7490
+ "description": "The value of the form component.",
7448
7491
  "fieldName": "value",
7449
7492
  "inheritedFrom": {
7450
7493
  "name": "InputMixin",
@@ -7521,7 +7564,8 @@
7521
7564
  "module": "src/textarea/Textarea.ts"
7522
7565
  }
7523
7566
  }
7524
- ]
7567
+ ],
7568
+ "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 allow text input where the expected input is long.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use when the expected text input is short. Use input component instead.\n\n</div>\n\n---\n\n## Content guidelines\n\nTextarea labels act as a title for the text field. Labels should typically be short and in noun&nbsp;form:\n\n<div class=\"n-usage n-usage-do\">Company name</div>\n<div class=\"n-usage n-usage-dont\">What is your company name?</div>\n\nWhen writing textarea 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\">Provide description</div>\n<div class=\"n-usage n-usage-dont\">Provide Description</div>\n\nWhen a textarea isn’t part of a form and is placed individually on a page, you could provide the textarea label as a call to action:\n\n<div class=\"n-usage n-usage-do\">Leave a comment</div>\n<div class=\"n-usage n-usage-dont\">Comment</div>\n\nDo not use colons in textarea labels:\n\n<div class=\"n-usage n-usage-do\">Provide description</div>\n<div class=\"n-usage n-usage-dont\">Provide description:</div>\n"
7525
7569
  },
7526
7570
  {
7527
7571
  "kind": "javascript-module",
@@ -7529,16 +7573,16 @@
7529
7573
  "declarations": [
7530
7574
  {
7531
7575
  "kind": "class",
7532
- "description": "Tooltips are floating containers for displaying additional information\nfor the currently focused element. A tooltip can be useful when you want\nto e.g. give a hint about an existing Command Menu hotkey.",
7576
+ "description": "Tooltips are floating containers for displaying additional information\nfor the currently focused element. A tooltip can be useful when you want\nto e.g. give a hint about an existing Command Menu shortcut.",
7533
7577
  "name": "Tooltip",
7534
7578
  "slots": [
7535
7579
  {
7536
- "description": "The subject of the tooltip, the item the tooltip refers to.",
7580
+ "description": "The tooltip content",
7537
7581
  "name": ""
7538
7582
  },
7539
7583
  {
7540
- "description": "The content of the tooltip itself.",
7541
- "name": "content"
7584
+ "description": "Optional slot that holds shortcut keys to access the subject",
7585
+ "name": "shortcut"
7542
7586
  }
7543
7587
  ],
7544
7588
  "members": [
@@ -7783,7 +7827,8 @@
7783
7827
  "module": "src/visually-hidden/VisuallyHidden.ts"
7784
7828
  }
7785
7829
  }
7786
- ]
7830
+ ],
7831
+ "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 hide text visually from the screen, but keep it available to assistive technologies, such as screen readers.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for hiding interactive content.\n\n</div>\n"
7787
7832
  },
7788
7833
  {
7789
7834
  "kind": "javascript-module",
@@ -8082,6 +8127,14 @@
8082
8127
  "module": "src/common/controllers/SlotController.ts"
8083
8128
  }
8084
8129
  },
8130
+ {
8131
+ "kind": "field",
8132
+ "name": "isEmpty",
8133
+ "inheritedFrom": {
8134
+ "name": "SlotController",
8135
+ "module": "src/common/controllers/SlotController.ts"
8136
+ }
8137
+ },
8085
8138
  {
8086
8139
  "kind": "field",
8087
8140
  "name": "content",
@@ -8231,6 +8284,10 @@
8231
8284
  "kind": "field",
8232
8285
  "name": "hasContent"
8233
8286
  },
8287
+ {
8288
+ "kind": "field",
8289
+ "name": "isEmpty"
8290
+ },
8234
8291
  {
8235
8292
  "kind": "field",
8236
8293
  "name": "content"
@@ -8358,11 +8415,6 @@
8358
8415
  "name": "handleTouchStart",
8359
8416
  "privacy": "private"
8360
8417
  },
8361
- {
8362
- "kind": "field",
8363
- "name": "handleTouchMove",
8364
- "privacy": "private"
8365
- },
8366
8418
  {
8367
8419
  "kind": "field",
8368
8420
  "name": "handleTouchEnd",
@@ -8717,7 +8769,7 @@
8717
8769
  "description": "An object which controls aspects of the focusing process."
8718
8770
  }
8719
8771
  ],
8720
- "description": "Programmatically move focus to the component"
8772
+ "description": "Programmatically move focus to the component."
8721
8773
  },
8722
8774
  {
8723
8775
  "kind": "method",
@@ -9127,11 +9179,6 @@
9127
9179
  "name": "renderLabel",
9128
9180
  "privacy": "protected"
9129
9181
  },
9130
- {
9131
- "kind": "method",
9132
- "name": "renderHint",
9133
- "privacy": "private"
9134
- },
9135
9182
  {
9136
9183
  "kind": "method",
9137
9184
  "name": "renderError",
@@ -9316,7 +9363,7 @@
9316
9363
  "text": "boolean"
9317
9364
  },
9318
9365
  "default": "false",
9319
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
9366
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
9320
9367
  "attribute": "disabled",
9321
9368
  "reflects": true
9322
9369
  },
@@ -9326,7 +9373,7 @@
9326
9373
  "type": {
9327
9374
  "text": "string | undefined"
9328
9375
  },
9329
- "description": "The name of the input component.",
9376
+ "description": "The name of the form component.",
9330
9377
  "attribute": "name"
9331
9378
  },
9332
9379
  {
@@ -9336,14 +9383,14 @@
9336
9383
  "text": "string"
9337
9384
  },
9338
9385
  "default": "\"\"",
9339
- "description": "The value of the input component.",
9386
+ "description": "The value of the form component.",
9340
9387
  "attribute": "value"
9341
9388
  },
9342
9389
  {
9343
9390
  "kind": "field",
9344
9391
  "name": "form",
9345
9392
  "privacy": "protected",
9346
- "description": "Gets the form, if any, associated with the input element."
9393
+ "description": "Gets the form, if any, associated with the form element."
9347
9394
  }
9348
9395
  ],
9349
9396
  "attributes": [
@@ -9353,7 +9400,7 @@
9353
9400
  "text": "boolean"
9354
9401
  },
9355
9402
  "default": "false",
9356
- "description": "Makes the input component disabled.\nThis prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.",
9403
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
9357
9404
  "fieldName": "disabled"
9358
9405
  },
9359
9406
  {
@@ -9361,7 +9408,7 @@
9361
9408
  "type": {
9362
9409
  "text": "string | undefined"
9363
9410
  },
9364
- "description": "The name of the input component.",
9411
+ "description": "The name of the form component.",
9365
9412
  "fieldName": "name"
9366
9413
  },
9367
9414
  {
@@ -9370,7 +9417,7 @@
9370
9417
  "text": "string"
9371
9418
  },
9372
9419
  "default": "\"\"",
9373
- "description": "The value of the input component.",
9420
+ "description": "The value of the form component.",
9374
9421
  "fieldName": "value"
9375
9422
  }
9376
9423
  ],