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

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 (105) hide show
  1. package/custom-elements.json +892 -197
  2. package/lib/Badge.js +1 -1
  3. package/lib/Button.js +1 -1
  4. package/lib/Button.js.map +1 -1
  5. package/lib/Calendar-55a0b169.js +13 -0
  6. package/lib/Calendar-55a0b169.js.map +1 -0
  7. package/lib/Calendar.js +1 -1
  8. package/lib/Card.js +1 -1
  9. package/lib/Card.js.map +1 -1
  10. package/lib/Checkbox.js +1 -1
  11. package/lib/Checkbox.js.map +1 -1
  12. package/lib/CommandMenu.js +1 -1
  13. package/lib/CommandMenuAction.js +1 -1
  14. package/lib/{Component-1dcd22f4.js → Component-a19be7c9.js} +2 -2
  15. package/lib/Component-a19be7c9.js.map +1 -0
  16. package/lib/DatePicker.js +1 -1
  17. package/lib/DatePicker.js.map +1 -1
  18. package/lib/DirectionController-82794ee9.js +2 -0
  19. package/lib/DirectionController-82794ee9.js.map +1 -0
  20. package/lib/{DraftComponentMixin-1d7c27bc.js → DraftComponentMixin-30345acf.js} +8 -3
  21. package/lib/DraftComponentMixin-30345acf.js.map +1 -0
  22. package/lib/Fieldset.js +1 -1
  23. package/lib/FocusableMixin-98e13999.js +2 -0
  24. package/lib/FocusableMixin-98e13999.js.map +1 -0
  25. package/lib/{FormAssociatedMixin-f7acf8b3.js → FormAssociatedMixin-e146e0ab.js} +2 -2
  26. package/lib/{FormAssociatedMixin-f7acf8b3.js.map → FormAssociatedMixin-e146e0ab.js.map} +1 -1
  27. package/lib/{FormField-8b024c79.js → FormField-926a0dda.js} +2 -2
  28. package/lib/FormField-926a0dda.js.map +1 -0
  29. package/lib/Header.js +1 -1
  30. package/lib/Header.js.map +1 -1
  31. package/lib/Icon.js +1 -1
  32. package/lib/Icon.js.map +1 -1
  33. package/lib/Input.js +1 -1
  34. package/lib/Input.js.map +1 -1
  35. package/lib/InputMixin-33bc2df5.js +2 -0
  36. package/lib/InputMixin-33bc2df5.js.map +1 -0
  37. package/lib/LightDomController-f56fa1a4.js +2 -0
  38. package/lib/LightDomController-f56fa1a4.js.map +1 -0
  39. package/lib/NavGroup.js +2 -0
  40. package/lib/NavGroup.js.map +1 -0
  41. package/lib/NavItem.js +2 -0
  42. package/lib/NavItem.js.map +1 -0
  43. package/lib/Navigation.js +2 -0
  44. package/lib/Navigation.js.map +1 -0
  45. package/lib/Radio.js +1 -1
  46. package/lib/Radio.js.map +1 -1
  47. package/lib/Select.js +1 -1
  48. package/lib/Select.js.map +1 -1
  49. package/lib/SlotController-5bfc47d1.js.map +1 -1
  50. package/lib/Spinner.js +1 -1
  51. package/lib/Stack.js +1 -1
  52. package/lib/Table.js +1 -1
  53. package/lib/{TextField-d925074c.js → TextField-b4155167.js} +2 -2
  54. package/lib/TextField-b4155167.js.map +1 -0
  55. package/lib/Textarea.js +1 -1
  56. package/lib/Textarea.js.map +1 -1
  57. package/lib/Tooltip.js +1 -1
  58. package/lib/Tooltip.js.map +1 -1
  59. package/lib/VisuallyHidden.js +1 -1
  60. package/lib/class-map-61e9e8c1.js +7 -0
  61. package/lib/{class-map-df701775.js.map → class-map-61e9e8c1.js.map} +1 -1
  62. package/lib/{directive-helpers-f86e6d16.js → directive-helpers-e7b6bf4b.js} +2 -2
  63. package/lib/{directive-helpers-f86e6d16.js.map → directive-helpers-e7b6bf4b.js.map} +1 -1
  64. package/lib/if-defined-2a4c6dbc.js +7 -0
  65. package/lib/{if-defined-f6a18fde.js.map → if-defined-2a4c6dbc.js.map} +1 -1
  66. package/lib/index.js +1 -1
  67. package/lib/{lit-element-99571067.js → lit-element-9646ab7e.js} +4 -4
  68. package/lib/lit-element-9646ab7e.js.map +1 -0
  69. package/lib/month-view.js +1 -1
  70. package/lib/number-e7cd246c.js +7 -0
  71. package/lib/{number-ca13a56f.js.map → number-e7cd246c.js.map} +1 -1
  72. package/lib/{ref-3b5a3bd2.js → ref-eb5cfa10.js} +3 -3
  73. package/lib/{ref-3b5a3bd2.js.map → ref-eb5cfa10.js.map} +1 -1
  74. package/lib/src/button/Button.d.ts +11 -2
  75. package/lib/src/common/attribute.d.ts +12 -0
  76. package/lib/src/common/controllers/LightDomController.d.ts +3 -0
  77. package/lib/src/common/controllers/PortalController.d.ts +16 -0
  78. package/lib/src/common/controllers/SlotController.d.ts +1 -1
  79. package/lib/src/common/portal.d.ts +9 -0
  80. package/lib/src/index.d.ts +3 -0
  81. package/lib/src/nav-group/NavGroup.d.ts +25 -0
  82. package/lib/src/nav-group/NavGroup.test.d.ts +1 -0
  83. package/lib/src/nav-item/NavItem.d.ts +52 -0
  84. package/lib/src/nav-item/NavItem.test.d.ts +1 -0
  85. package/lib/src/navigation/Navigation.d.ts +23 -0
  86. package/lib/src/navigation/Navigation.test.d.ts +3 -0
  87. package/lib/src/tooltip/Tooltip.d.ts +16 -4
  88. package/lib/unsafe-html-4da54dd2.js +7 -0
  89. package/lib/{unsafe-html-7493c929.js.map → unsafe-html-4da54dd2.js.map} +1 -1
  90. package/package.json +15 -7
  91. package/lib/Calendar-6f8b8450.js +0 -13
  92. package/lib/Calendar-6f8b8450.js.map +0 -1
  93. package/lib/Component-1dcd22f4.js.map +0 -1
  94. package/lib/DraftComponentMixin-1d7c27bc.js.map +0 -1
  95. package/lib/FormField-8b024c79.js.map +0 -1
  96. package/lib/InputMixin-f2da5fa8.js +0 -2
  97. package/lib/InputMixin-f2da5fa8.js.map +0 -1
  98. package/lib/LightDomController-37815039.js +0 -2
  99. package/lib/LightDomController-37815039.js.map +0 -1
  100. package/lib/TextField-d925074c.js.map +0 -1
  101. package/lib/class-map-df701775.js +0 -7
  102. package/lib/if-defined-f6a18fde.js +0 -7
  103. package/lib/lit-element-99571067.js.map +0 -1
  104. package/lib/number-ca13a56f.js +0 -7
  105. package/lib/unsafe-html-7493c929.js +0 -7
@@ -166,6 +166,30 @@
166
166
  "name": "default",
167
167
  "module": "\"./header/Header.js\""
168
168
  }
169
+ },
170
+ {
171
+ "kind": "js",
172
+ "name": "NavGroup",
173
+ "declaration": {
174
+ "name": "default",
175
+ "module": "\"./nav-group/NavGroup.js\""
176
+ }
177
+ },
178
+ {
179
+ "kind": "js",
180
+ "name": "NavItem",
181
+ "declaration": {
182
+ "name": "default",
183
+ "module": "\"./nav-item/NavItem.js\""
184
+ }
185
+ },
186
+ {
187
+ "kind": "js",
188
+ "name": "Navigation",
189
+ "declaration": {
190
+ "name": "default",
191
+ "module": "\"./navigation/Navigation.js\""
192
+ }
169
193
  }
170
194
  ]
171
195
  },
@@ -366,6 +390,33 @@
366
390
  "attribute": "expand",
367
391
  "reflects": true
368
392
  },
393
+ {
394
+ "kind": "method",
395
+ "name": "renderLink",
396
+ "privacy": "private",
397
+ "parameters": [
398
+ {
399
+ "name": "innards",
400
+ "type": {
401
+ "text": "TemplateResult"
402
+ }
403
+ }
404
+ ],
405
+ "description": "We jump through some hoops here to ensure the link is treated correctly when \"disabled\".\nLinks cannot be disabled natively, so we need to rely on some aria magic to get the correct semantics.\nAlong with the advice in the article below, we also set tabindex to \"-1\", so it is taken out of tab order."
406
+ },
407
+ {
408
+ "kind": "method",
409
+ "name": "renderButton",
410
+ "privacy": "private",
411
+ "parameters": [
412
+ {
413
+ "name": "innards",
414
+ "type": {
415
+ "text": "TemplateResult"
416
+ }
417
+ }
418
+ ]
419
+ },
369
420
  {
370
421
  "kind": "method",
371
422
  "name": "renderLightDom",
@@ -635,6 +686,114 @@
635
686
  ],
636
687
  "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"
637
688
  },
689
+ {
690
+ "kind": "javascript-module",
691
+ "path": "src/card/Card.ts",
692
+ "declarations": [
693
+ {
694
+ "kind": "class",
695
+ "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.",
696
+ "name": "Card",
697
+ "slots": [
698
+ {
699
+ "description": "The card content.",
700
+ "name": ""
701
+ },
702
+ {
703
+ "description": "Optional slot that holds a header for the card.",
704
+ "name": "header"
705
+ },
706
+ {
707
+ "description": "Optional slot that holds footer content for the card.",
708
+ "name": "footer"
709
+ }
710
+ ],
711
+ "members": [
712
+ {
713
+ "kind": "field",
714
+ "name": "headerSlot",
715
+ "privacy": "private",
716
+ "default": "new SlotController(this, \"header\")"
717
+ },
718
+ {
719
+ "kind": "field",
720
+ "name": "footerSlot",
721
+ "privacy": "private",
722
+ "default": "new SlotController(this, \"footer\")"
723
+ },
724
+ {
725
+ "kind": "field",
726
+ "name": "padding",
727
+ "type": {
728
+ "text": "\"m\" | \"l\" | \"none\""
729
+ },
730
+ "default": "\"m\"",
731
+ "description": "Controls the padding of card component. When set to “none”,\nthe header and footer slots will still have padding.",
732
+ "attribute": "padding",
733
+ "reflects": true
734
+ },
735
+ {
736
+ "kind": "field",
737
+ "name": "_warningLogged",
738
+ "type": {
739
+ "text": "boolean"
740
+ },
741
+ "privacy": "private",
742
+ "static": true,
743
+ "default": "false",
744
+ "inheritedFrom": {
745
+ "name": "DraftComponentMixin",
746
+ "module": "src/common/mixins/DraftComponentMixin.ts"
747
+ }
748
+ }
749
+ ],
750
+ "attributes": [
751
+ {
752
+ "name": "padding",
753
+ "type": {
754
+ "text": "\"m\" | \"l\" | \"none\""
755
+ },
756
+ "default": "\"m\"",
757
+ "description": "Controls the padding of card component. When set to “none”,\nthe header and footer slots will still have padding.",
758
+ "fieldName": "padding"
759
+ }
760
+ ],
761
+ "mixins": [
762
+ {
763
+ "name": "DraftComponentMixin",
764
+ "module": "/src/common/mixins/DraftComponentMixin.js"
765
+ }
766
+ ],
767
+ "superclass": {
768
+ "name": "LitElement",
769
+ "package": "lit"
770
+ },
771
+ "status": "draft",
772
+ "category": "structure",
773
+ "tagName": "nord-card",
774
+ "customElement": true
775
+ }
776
+ ],
777
+ "exports": [
778
+ {
779
+ "kind": "js",
780
+ "name": "default",
781
+ "declaration": {
782
+ "name": "Card",
783
+ "module": "src/card/Card.ts"
784
+ }
785
+ },
786
+ {
787
+ "kind": "custom-element-definition",
788
+ "name": "nord-card",
789
+ "declaration": {
790
+ "name": "Card",
791
+ "module": "src/card/Card.ts"
792
+ }
793
+ }
794
+ ],
795
+ "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"
796
+ },
638
797
  {
639
798
  "kind": "javascript-module",
640
799
  "path": "src/calendar/Calendar.ts",
@@ -1114,114 +1273,6 @@
1114
1273
  ],
1115
1274
  "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Use when the user needs to choose a single date or a date range.\n- Close calendar after a single date is selected, unless a range with a start and end date is required.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for entering date of birth. Use input component instead.\n- Don’t use for choosing a date that is over 10 years in the future or the past.\n\n</div>\n\n---\n\n## Keyboard accessibility\n\nCalendar component is built to closely follow [W3C Date Picker Dialog example](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/datepicker-dialog.html) with some small exceptions to e.g. better support iOS VoiceOver and Android TalkBack.\n\n### Month/year buttons\n\n- `Space, Enter`: Changes the month and/or year displayed.\n\n### Calendar grid\n\n- `Space, Enter`: Selects a date.\n- `Arrow up`: Moves focus to the same day of the previous week.\n- `Arrow down`: Moves focus to the same day of the next week.\n- `Arrow right`: Moves focus to the next day. In right-to-left languages, moves focus to the previous day.\n- `Arrow left`: Moves focus to the previous day. In right-to-left languages, moves focus to the next day.\n- `Home`: Moves focus to the first day (e.g Monday) of the current week.\n- `End`: Moves focus to the last day (e.g. Sunday) of the current week.\n- `Page Up`: Changes the grid of dates to the previous month and sets focus on the same day of the same week.\n- `Shift + Page Up`: Changes the grid of dates to the previous year and sets focus on the same day of the same week.\n- `Page Down`: Changes the grid of dates to the next month and sets focus on the same day of the same week.\n- `Shift + Page Down`: Changes the grid of dates to the next year and sets focus on the same day of the same week.\n"
1116
1275
  },
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"
1224
- },
1225
1276
  {
1226
1277
  "kind": "javascript-module",
1227
1278
  "path": "src/checkbox/Checkbox.ts",
@@ -2416,11 +2467,85 @@
2416
2467
  },
2417
2468
  {
2418
2469
  "kind": "javascript-module",
2419
- "path": "src/common/collection.ts",
2470
+ "path": "src/common/attribute.ts",
2420
2471
  "declarations": [
2421
2472
  {
2422
2473
  "kind": "function",
2423
- "name": "groupBy",
2474
+ "name": "add",
2475
+ "parameters": [
2476
+ {
2477
+ "name": "element",
2478
+ "type": {
2479
+ "text": "Element"
2480
+ }
2481
+ },
2482
+ {
2483
+ "name": "attr",
2484
+ "type": {
2485
+ "text": "string"
2486
+ }
2487
+ },
2488
+ {
2489
+ "name": "token",
2490
+ "type": {
2491
+ "text": "string"
2492
+ }
2493
+ }
2494
+ ],
2495
+ "description": "Carefully adds a token to a space-separated attribute\nSimilar to classList, but for any attribute."
2496
+ },
2497
+ {
2498
+ "kind": "function",
2499
+ "name": "remove",
2500
+ "parameters": [
2501
+ {
2502
+ "name": "element",
2503
+ "type": {
2504
+ "text": "Element"
2505
+ }
2506
+ },
2507
+ {
2508
+ "name": "attr",
2509
+ "type": {
2510
+ "text": "string"
2511
+ }
2512
+ },
2513
+ {
2514
+ "name": "token",
2515
+ "type": {
2516
+ "text": "string"
2517
+ }
2518
+ }
2519
+ ],
2520
+ "description": "Carefully removes a token from a space-separated attribute.\nSimilar to classList, but for any attribute."
2521
+ }
2522
+ ],
2523
+ "exports": [
2524
+ {
2525
+ "kind": "js",
2526
+ "name": "add",
2527
+ "declaration": {
2528
+ "name": "add",
2529
+ "module": "src/common/attribute.ts"
2530
+ }
2531
+ },
2532
+ {
2533
+ "kind": "js",
2534
+ "name": "remove",
2535
+ "declaration": {
2536
+ "name": "remove",
2537
+ "module": "src/common/attribute.ts"
2538
+ }
2539
+ }
2540
+ ]
2541
+ },
2542
+ {
2543
+ "kind": "javascript-module",
2544
+ "path": "src/common/collection.ts",
2545
+ "declarations": [
2546
+ {
2547
+ "kind": "function",
2548
+ "name": "groupBy",
2424
2549
  "parameters": [
2425
2550
  {
2426
2551
  "name": "array",
@@ -3240,6 +3365,41 @@
3240
3365
  }
3241
3366
  ]
3242
3367
  },
3368
+ {
3369
+ "kind": "javascript-module",
3370
+ "path": "src/common/portal.ts",
3371
+ "declarations": [
3372
+ {
3373
+ "kind": "function",
3374
+ "name": "createPortal",
3375
+ "parameters": [
3376
+ {
3377
+ "name": "src",
3378
+ "type": {
3379
+ "text": "Node"
3380
+ }
3381
+ },
3382
+ {
3383
+ "name": "dest",
3384
+ "type": {
3385
+ "text": "Node"
3386
+ }
3387
+ }
3388
+ ],
3389
+ "description": "Creates a \"portal\" for transporting an element from one location to another.\nThe element gets moved to its destination on open(),\nand restored to its original location on close()."
3390
+ }
3391
+ ],
3392
+ "exports": [
3393
+ {
3394
+ "kind": "js",
3395
+ "name": "createPortal",
3396
+ "declaration": {
3397
+ "name": "createPortal",
3398
+ "module": "src/common/portal.ts"
3399
+ }
3400
+ }
3401
+ ]
3402
+ },
3243
3403
  {
3244
3404
  "kind": "javascript-module",
3245
3405
  "path": "src/common/ref.ts",
@@ -5149,91 +5309,477 @@
5149
5309
  }
5150
5310
  },
5151
5311
  {
5152
- "name": "error",
5312
+ "name": "error",
5313
+ "type": {
5314
+ "text": "string | undefined"
5315
+ },
5316
+ "description": "Optional error to be shown with the input. Alternatively use the error slot.",
5317
+ "fieldName": "error",
5318
+ "inheritedFrom": {
5319
+ "name": "FormAssociatedMixin",
5320
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
5321
+ }
5322
+ },
5323
+ {
5324
+ "name": "required",
5325
+ "type": {
5326
+ "text": "boolean"
5327
+ },
5328
+ "default": "false",
5329
+ "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
5330
+ "fieldName": "required",
5331
+ "inheritedFrom": {
5332
+ "name": "FormAssociatedMixin",
5333
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
5334
+ }
5335
+ },
5336
+ {
5337
+ "name": "expand",
5338
+ "type": {
5339
+ "text": "boolean"
5340
+ },
5341
+ "default": "false",
5342
+ "description": "Controls whether the input expands to fill the width of its container.",
5343
+ "fieldName": "expand",
5344
+ "inheritedFrom": {
5345
+ "name": "FormAssociatedMixin",
5346
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
5347
+ }
5348
+ },
5349
+ {
5350
+ "name": "disabled",
5351
+ "type": {
5352
+ "text": "boolean"
5353
+ },
5354
+ "default": "false",
5355
+ "description": "Makes the component disabled. This prevents users from\nbeing able to interact with the component, and conveys\nits inactive state to assistive technologies.",
5356
+ "fieldName": "disabled",
5357
+ "inheritedFrom": {
5358
+ "name": "InputMixin",
5359
+ "module": "src/common/mixins/InputMixin.ts"
5360
+ }
5361
+ },
5362
+ {
5363
+ "name": "name",
5364
+ "type": {
5365
+ "text": "string | undefined"
5366
+ },
5367
+ "description": "The name of the form component.",
5368
+ "fieldName": "name",
5369
+ "inheritedFrom": {
5370
+ "name": "InputMixin",
5371
+ "module": "src/common/mixins/InputMixin.ts"
5372
+ }
5373
+ },
5374
+ {
5375
+ "name": "value",
5376
+ "type": {
5377
+ "text": "string"
5378
+ },
5379
+ "default": "\"\"",
5380
+ "description": "The value of the form component.",
5381
+ "fieldName": "value",
5382
+ "inheritedFrom": {
5383
+ "name": "InputMixin",
5384
+ "module": "src/common/mixins/InputMixin.ts"
5385
+ }
5386
+ }
5387
+ ],
5388
+ "mixins": [
5389
+ {
5390
+ "name": "FormAssociatedMixin",
5391
+ "module": "/src/common/mixins/FormAssociatedMixin.js"
5392
+ },
5393
+ {
5394
+ "name": "InputMixin",
5395
+ "module": "/src/common/mixins/InputMixin.js"
5396
+ },
5397
+ {
5398
+ "name": "FocusableMixin",
5399
+ "module": "/src/common/mixins/FocusableMixin.js"
5400
+ },
5401
+ {
5402
+ "name": "DraftComponentMixin",
5403
+ "module": "/src/common/mixins/DraftComponentMixin.js"
5404
+ }
5405
+ ],
5406
+ "superclass": {
5407
+ "name": "LitElement",
5408
+ "package": "lit"
5409
+ },
5410
+ "status": "draft",
5411
+ "category": "form",
5412
+ "tagName": "nord-input",
5413
+ "customElement": true,
5414
+ "events": [
5415
+ {
5416
+ "name": "input",
5417
+ "type": {
5418
+ "text": "NordEvent"
5419
+ },
5420
+ "description": "Fired as the user types into the input.",
5421
+ "inheritedFrom": {
5422
+ "name": "FormAssociatedMixin",
5423
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
5424
+ }
5425
+ },
5426
+ {
5427
+ "name": "change",
5428
+ "type": {
5429
+ "text": "NordEvent"
5430
+ },
5431
+ "description": "Fired whenever the input's value is changed via user interaction.",
5432
+ "inheritedFrom": {
5433
+ "name": "FormAssociatedMixin",
5434
+ "module": "src/common/mixins/FormAssociatedMixin.ts"
5435
+ }
5436
+ }
5437
+ ]
5438
+ }
5439
+ ],
5440
+ "exports": [
5441
+ {
5442
+ "kind": "js",
5443
+ "name": "default",
5444
+ "declaration": {
5445
+ "name": "Input",
5446
+ "module": "src/input/Input.ts"
5447
+ }
5448
+ },
5449
+ {
5450
+ "kind": "custom-element-definition",
5451
+ "name": "nord-input",
5452
+ "declaration": {
5453
+ "name": "Input",
5454
+ "module": "src/input/Input.ts"
5455
+ }
5456
+ }
5457
+ ],
5458
+ "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"
5459
+ },
5460
+ {
5461
+ "kind": "javascript-module",
5462
+ "path": "src/nav-group/NavGroup.ts",
5463
+ "declarations": [
5464
+ {
5465
+ "kind": "class",
5466
+ "description": "Navigation group includes all the actions or items in a single\ngroup and is used for grouping items into related categories.",
5467
+ "name": "NavGroup",
5468
+ "slots": [
5469
+ {
5470
+ "description": "The default slot used for the nav items.",
5471
+ "name": ""
5472
+ }
5473
+ ],
5474
+ "members": [
5475
+ {
5476
+ "kind": "field",
5477
+ "name": "heading",
5478
+ "type": {
5479
+ "text": "string | undefined"
5480
+ },
5481
+ "description": "Heading and accessible label for the nav group",
5482
+ "attribute": "heading"
5483
+ },
5484
+ {
5485
+ "kind": "field",
5486
+ "name": "_warningLogged",
5487
+ "type": {
5488
+ "text": "boolean"
5489
+ },
5490
+ "privacy": "private",
5491
+ "static": true,
5492
+ "default": "false",
5493
+ "inheritedFrom": {
5494
+ "name": "DraftComponentMixin",
5495
+ "module": "src/common/mixins/DraftComponentMixin.ts"
5496
+ }
5497
+ }
5498
+ ],
5499
+ "attributes": [
5500
+ {
5501
+ "name": "heading",
5502
+ "type": {
5503
+ "text": "string | undefined"
5504
+ },
5505
+ "description": "Heading and accessible label for the nav group",
5506
+ "fieldName": "heading"
5507
+ }
5508
+ ],
5509
+ "mixins": [
5510
+ {
5511
+ "name": "DraftComponentMixin",
5512
+ "module": "/src/common/mixins/DraftComponentMixin.js"
5513
+ }
5514
+ ],
5515
+ "superclass": {
5516
+ "name": "LitElement",
5517
+ "package": "lit"
5518
+ },
5519
+ "status": "draft",
5520
+ "category": "navigation",
5521
+ "tagName": "nord-nav-group",
5522
+ "customElement": true
5523
+ }
5524
+ ],
5525
+ "exports": [
5526
+ {
5527
+ "kind": "js",
5528
+ "name": "default",
5529
+ "declaration": {
5530
+ "name": "NavGroup",
5531
+ "module": "src/nav-group/NavGroup.ts"
5532
+ }
5533
+ },
5534
+ {
5535
+ "kind": "custom-element-definition",
5536
+ "name": "nord-nav-group",
5537
+ "declaration": {
5538
+ "name": "NavGroup",
5539
+ "module": "src/nav-group/NavGroup.ts"
5540
+ }
5541
+ }
5542
+ ],
5543
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Group navigation items into navigation groups based on related categories.\n- Use group headings to clarify the category of a section.\n- Use icons for all top level navigation items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use for grouping other types of content.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing navigation item labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in item labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending item labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse as few words as possible to describe each item label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoud all caps for item labels and group titles:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n"
5544
+ },
5545
+ {
5546
+ "kind": "javascript-module",
5547
+ "path": "src/nav-item/NavItem.ts",
5548
+ "declarations": [
5549
+ {
5550
+ "kind": "class",
5551
+ "description": "Navigation item populates sidebar navigation with links.\nEvery item should be placed inside a navigation group.",
5552
+ "name": "NavItem",
5553
+ "slots": [
5554
+ {
5555
+ "description": "The default slot used for the nav item's text.",
5556
+ "name": ""
5557
+ },
5558
+ {
5559
+ "description": "Used for nesting navigation. When used the nav-item becomes a button to collapse the subnav, rather than a link.",
5560
+ "name": "subnav"
5561
+ }
5562
+ ],
5563
+ "members": [
5564
+ {
5565
+ "kind": "field",
5566
+ "name": "subnavSlot",
5567
+ "privacy": "private",
5568
+ "default": "new SlotController(this, \"subnav\")"
5569
+ },
5570
+ {
5571
+ "kind": "field",
5572
+ "name": "direction",
5573
+ "privacy": "private",
5574
+ "default": "new DirectionController(this)"
5575
+ },
5576
+ {
5577
+ "kind": "field",
5578
+ "name": "active",
5579
+ "type": {
5580
+ "text": "boolean"
5581
+ },
5582
+ "default": "false",
5583
+ "description": "Used for indicating the current page. This gives a prominent background to the nav item,\nand marks the item as the current page for assistive technology.",
5584
+ "attribute": "active",
5585
+ "reflects": true
5586
+ },
5587
+ {
5588
+ "kind": "field",
5589
+ "name": "icon",
5590
+ "type": {
5591
+ "text": "string | undefined"
5592
+ },
5593
+ "description": "The name of an icon from Nordicons to display for the nav item.",
5594
+ "attribute": "icon"
5595
+ },
5596
+ {
5597
+ "kind": "field",
5598
+ "name": "href",
5599
+ "type": {
5600
+ "text": "string | undefined"
5601
+ },
5602
+ "description": "The url the nav item should link to.\nNote: this is not used if you have nested navigation using the \"subnav\" slot.",
5603
+ "attribute": "href"
5604
+ },
5605
+ {
5606
+ "kind": "field",
5607
+ "name": "badge",
5608
+ "type": {
5609
+ "text": "string | undefined"
5610
+ },
5611
+ "description": "Allows you to add a notification badge with a number next to the nav item.",
5612
+ "attribute": "badge"
5613
+ },
5614
+ {
5615
+ "kind": "field",
5616
+ "name": "open",
5617
+ "type": {
5618
+ "text": "boolean"
5619
+ },
5620
+ "default": "false",
5621
+ "description": "When the nav items contains a subnav, controls whether the section is expanded or not.\nNote: this is only used if you have nested navigation using the \"subnav\" slot.",
5622
+ "attribute": "open"
5623
+ },
5624
+ {
5625
+ "kind": "method",
5626
+ "name": "renderLink",
5627
+ "privacy": "private",
5628
+ "parameters": [
5629
+ {
5630
+ "name": "innards",
5631
+ "type": {
5632
+ "text": "TemplateResult"
5633
+ }
5634
+ }
5635
+ ]
5636
+ },
5637
+ {
5638
+ "kind": "method",
5639
+ "name": "renderToggle",
5640
+ "privacy": "private",
5641
+ "parameters": [
5642
+ {
5643
+ "name": "innards",
5644
+ "type": {
5645
+ "text": "TemplateResult"
5646
+ }
5647
+ }
5648
+ ]
5649
+ },
5650
+ {
5651
+ "kind": "method",
5652
+ "name": "renderButton",
5653
+ "privacy": "private",
5654
+ "parameters": [
5655
+ {
5656
+ "name": "innards",
5657
+ "type": {
5658
+ "text": "TemplateResult"
5659
+ }
5660
+ }
5661
+ ]
5662
+ },
5663
+ {
5664
+ "kind": "method",
5665
+ "name": "toggleOpen",
5666
+ "privacy": "private"
5667
+ },
5668
+ {
5669
+ "kind": "field",
5670
+ "name": "focusableRef",
5671
+ "privacy": "protected",
5672
+ "inheritedFrom": {
5673
+ "name": "FocusableMixin",
5674
+ "module": "src/common/mixins/FocusableMixin.ts"
5675
+ }
5676
+ },
5677
+ {
5678
+ "kind": "method",
5679
+ "name": "focus",
5680
+ "parameters": [
5681
+ {
5682
+ "name": "options",
5683
+ "optional": true,
5684
+ "type": {
5685
+ "text": "FocusOptions"
5686
+ },
5687
+ "description": "An object which controls aspects of the focusing process."
5688
+ }
5689
+ ],
5690
+ "description": "Programmatically move focus to the component.",
5691
+ "inheritedFrom": {
5692
+ "name": "FocusableMixin",
5693
+ "module": "src/common/mixins/FocusableMixin.ts"
5694
+ }
5695
+ },
5696
+ {
5697
+ "kind": "method",
5698
+ "name": "blur",
5699
+ "description": "Programmatically remove focus from the component.",
5700
+ "inheritedFrom": {
5701
+ "name": "FocusableMixin",
5702
+ "module": "src/common/mixins/FocusableMixin.ts"
5703
+ }
5704
+ },
5705
+ {
5706
+ "kind": "method",
5707
+ "name": "click",
5708
+ "description": "Programmatically simulates a click on the component.",
5709
+ "inheritedFrom": {
5710
+ "name": "FocusableMixin",
5711
+ "module": "src/common/mixins/FocusableMixin.ts"
5712
+ }
5713
+ },
5714
+ {
5715
+ "kind": "field",
5716
+ "name": "_warningLogged",
5153
5717
  "type": {
5154
- "text": "string | undefined"
5718
+ "text": "boolean"
5155
5719
  },
5156
- "description": "Optional error to be shown with the input. Alternatively use the error slot.",
5157
- "fieldName": "error",
5720
+ "privacy": "private",
5721
+ "static": true,
5722
+ "default": "false",
5158
5723
  "inheritedFrom": {
5159
- "name": "FormAssociatedMixin",
5160
- "module": "src/common/mixins/FormAssociatedMixin.ts"
5724
+ "name": "DraftComponentMixin",
5725
+ "module": "src/common/mixins/DraftComponentMixin.ts"
5161
5726
  }
5162
- },
5727
+ }
5728
+ ],
5729
+ "events": [
5163
5730
  {
5164
- "name": "required",
5731
+ "name": "toggle",
5732
+ "type": {
5733
+ "text": "NordEvent"
5734
+ },
5735
+ "description": "Dispatched whenever a nav item's state changes between open and closed."
5736
+ }
5737
+ ],
5738
+ "attributes": [
5739
+ {
5740
+ "name": "active",
5165
5741
  "type": {
5166
5742
  "text": "boolean"
5167
5743
  },
5168
5744
  "default": "false",
5169
- "description": "Determines whether the input is required or not.\nAn input marked as required will be announced as such to users of assistive technology.\nWhen using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.",
5170
- "fieldName": "required",
5171
- "inheritedFrom": {
5172
- "name": "FormAssociatedMixin",
5173
- "module": "src/common/mixins/FormAssociatedMixin.ts"
5174
- }
5745
+ "description": "Used for indicating the current page. This gives a prominent background to the nav item,\nand marks the item as the current page for assistive technology.",
5746
+ "fieldName": "active"
5175
5747
  },
5176
5748
  {
5177
- "name": "expand",
5749
+ "name": "icon",
5178
5750
  "type": {
5179
- "text": "boolean"
5751
+ "text": "string | undefined"
5180
5752
  },
5181
- "default": "false",
5182
- "description": "Controls whether the input expands to fill the width of its container.",
5183
- "fieldName": "expand",
5184
- "inheritedFrom": {
5185
- "name": "FormAssociatedMixin",
5186
- "module": "src/common/mixins/FormAssociatedMixin.ts"
5187
- }
5753
+ "description": "The name of an icon from Nordicons to display for the nav item.",
5754
+ "fieldName": "icon"
5188
5755
  },
5189
5756
  {
5190
- "name": "disabled",
5757
+ "name": "href",
5191
5758
  "type": {
5192
- "text": "boolean"
5759
+ "text": "string | undefined"
5193
5760
  },
5194
- "default": "false",
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.",
5196
- "fieldName": "disabled",
5197
- "inheritedFrom": {
5198
- "name": "InputMixin",
5199
- "module": "src/common/mixins/InputMixin.ts"
5200
- }
5761
+ "description": "The url the nav item should link to.\nNote: this is not used if you have nested navigation using the \"subnav\" slot.",
5762
+ "fieldName": "href"
5201
5763
  },
5202
5764
  {
5203
- "name": "name",
5765
+ "name": "badge",
5204
5766
  "type": {
5205
5767
  "text": "string | undefined"
5206
5768
  },
5207
- "description": "The name of the form component.",
5208
- "fieldName": "name",
5209
- "inheritedFrom": {
5210
- "name": "InputMixin",
5211
- "module": "src/common/mixins/InputMixin.ts"
5212
- }
5769
+ "description": "Allows you to add a notification badge with a number next to the nav item.",
5770
+ "fieldName": "badge"
5213
5771
  },
5214
5772
  {
5215
- "name": "value",
5773
+ "name": "open",
5216
5774
  "type": {
5217
- "text": "string"
5775
+ "text": "boolean"
5218
5776
  },
5219
- "default": "\"\"",
5220
- "description": "The value of the form component.",
5221
- "fieldName": "value",
5222
- "inheritedFrom": {
5223
- "name": "InputMixin",
5224
- "module": "src/common/mixins/InputMixin.ts"
5225
- }
5777
+ "default": "false",
5778
+ "description": "When the nav items contains a subnav, controls whether the section is expanded or not.\nNote: this is only used if you have nested navigation using the \"subnav\" slot.",
5779
+ "fieldName": "open"
5226
5780
  }
5227
5781
  ],
5228
5782
  "mixins": [
5229
- {
5230
- "name": "FormAssociatedMixin",
5231
- "module": "/src/common/mixins/FormAssociatedMixin.js"
5232
- },
5233
- {
5234
- "name": "InputMixin",
5235
- "module": "/src/common/mixins/InputMixin.js"
5236
- },
5237
5783
  {
5238
5784
  "name": "FocusableMixin",
5239
5785
  "module": "/src/common/mixins/FocusableMixin.js"
@@ -5248,33 +5794,83 @@
5248
5794
  "package": "lit"
5249
5795
  },
5250
5796
  "status": "draft",
5251
- "category": "form",
5252
- "tagName": "nord-input",
5253
- "customElement": true,
5254
- "events": [
5797
+ "category": "navigation",
5798
+ "tagName": "nord-nav-item",
5799
+ "customElement": true
5800
+ }
5801
+ ],
5802
+ "exports": [
5803
+ {
5804
+ "kind": "js",
5805
+ "name": "default",
5806
+ "declaration": {
5807
+ "name": "NavItem",
5808
+ "module": "src/nav-item/NavItem.ts"
5809
+ }
5810
+ },
5811
+ {
5812
+ "kind": "custom-element-definition",
5813
+ "name": "nord-nav-item",
5814
+ "declaration": {
5815
+ "name": "NavItem",
5816
+ "module": "src/nav-item/NavItem.ts"
5817
+ }
5818
+ }
5819
+ ],
5820
+ "readme": "## Usage\n\nThis section includes guidelines for designers and developers about the usage of this component in different contexts.\n\n<div class=\"n-usage n-usage-do\">\n\n### Do\n\n- Group navigation items into navigation groups based on related categories.\n- Use group headings to clarify the category of a section.\n- Use icons for all top level navigation items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t use navigation item outside of navigation group and navigation components.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing navigation item labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in item labels, such as “the”, “an” or “a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending item labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse as few words as possible to describe each item label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoud all caps for item labels and group titles:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n"
5821
+ },
5822
+ {
5823
+ "kind": "javascript-module",
5824
+ "path": "src/navigation/Navigation.ts",
5825
+ "declarations": [
5826
+ {
5827
+ "kind": "class",
5828
+ "description": "Navigation is used to display the primary navigation in the sidebar\nof an application. Navigation includes a list of links that users\nuse to move between sections of the application.",
5829
+ "name": "Navigation",
5830
+ "slots": [
5255
5831
  {
5256
- "name": "input",
5257
- "type": {
5258
- "text": "NordEvent"
5259
- },
5260
- "description": "Fired as the user types into the input.",
5261
- "inheritedFrom": {
5262
- "name": "FormAssociatedMixin",
5263
- "module": "src/common/mixins/FormAssociatedMixin.ts"
5264
- }
5832
+ "description": "The main section of the sidebar, for holding nav components.",
5833
+ "name": ""
5265
5834
  },
5266
5835
  {
5267
- "name": "change",
5836
+ "description": "The top section of the sidebar.",
5837
+ "name": "header"
5838
+ },
5839
+ {
5840
+ "description": "The bottom section of the sidebar.",
5841
+ "name": "footer"
5842
+ }
5843
+ ],
5844
+ "members": [
5845
+ {
5846
+ "kind": "field",
5847
+ "name": "_warningLogged",
5268
5848
  "type": {
5269
- "text": "NordEvent"
5849
+ "text": "boolean"
5270
5850
  },
5271
- "description": "Fired whenever the input's value is changed via user interaction.",
5851
+ "privacy": "private",
5852
+ "static": true,
5853
+ "default": "false",
5272
5854
  "inheritedFrom": {
5273
- "name": "FormAssociatedMixin",
5274
- "module": "src/common/mixins/FormAssociatedMixin.ts"
5855
+ "name": "DraftComponentMixin",
5856
+ "module": "src/common/mixins/DraftComponentMixin.ts"
5275
5857
  }
5276
5858
  }
5277
- ]
5859
+ ],
5860
+ "mixins": [
5861
+ {
5862
+ "name": "DraftComponentMixin",
5863
+ "module": "/src/common/mixins/DraftComponentMixin.js"
5864
+ }
5865
+ ],
5866
+ "superclass": {
5867
+ "name": "LitElement",
5868
+ "package": "lit"
5869
+ },
5870
+ "status": "draft",
5871
+ "category": "navigation",
5872
+ "tagName": "nord-navigation",
5873
+ "customElement": true
5278
5874
  }
5279
5875
  ],
5280
5876
  "exports": [
@@ -5282,20 +5878,20 @@
5282
5878
  "kind": "js",
5283
5879
  "name": "default",
5284
5880
  "declaration": {
5285
- "name": "Input",
5286
- "module": "src/input/Input.ts"
5881
+ "name": "Navigation",
5882
+ "module": "src/navigation/Navigation.ts"
5287
5883
  }
5288
5884
  },
5289
5885
  {
5290
5886
  "kind": "custom-element-definition",
5291
- "name": "nord-input",
5887
+ "name": "nord-navigation",
5292
5888
  "declaration": {
5293
- "name": "Input",
5294
- "module": "src/input/Input.ts"
5889
+ "name": "Navigation",
5890
+ "module": "src/navigation/Navigation.ts"
5295
5891
  }
5296
5892
  }
5297
5893
  ],
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"
5894
+ "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 primary navigation items that perform an action when clicked. Each action should navigate to a URL or trigger another action like a modal overlay.\n- Group navigation items into navigation groups based on related categories.\n- Use group headings to clarify the category of a section.\n- Use icons for all top level navigation items.\n\n</div>\n<div class=\"n-usage n-usage-dont\">\n\n### Don’t\n\n- Don’t place a `<nav>` element inside the navigation component, as it already contains one internally.\n\n</div>\n\n---\n\n## Content guidelines\n\nWhen writing navigation item labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):\n\n<div class=\"n-usage n-usage-do\">My tasks</div>\n<div class=\"n-usage n-usage-dont\">My Tasks</div>\n\nAvoid unnecessary words and articles in item labels, such as the”, “an” or a”:\n\n<div class=\"n-usage n-usage-do\">Change theme</div>\n<div class=\"n-usage n-usage-dont\">Change the theme</div>\n\nAvoid ending item labels in punctuation:\n\n<div class=\"n-usage n-usage-do\">Switch user</div>\n<div class=\"n-usage n-usage-dont\">Switch user.</div>\n\nUse as few words as possible to describe each item label:\n\n<div class=\"n-usage n-usage-do\">Payments</div>\n<div class=\"n-usage n-usage-dont\">Payments in your clinic</div>\n\nAvoud all caps for item labels and group titles:\n\n<div class=\"n-usage n-usage-do\">Dashboard</div>\n<div class=\"n-usage n-usage-dont\">DASHBOARD</div>\n"
5299
5895
  },
5300
5896
  {
5301
5897
  "kind": "javascript-module",
@@ -7586,6 +8182,14 @@
7586
8182
  }
7587
8183
  ],
7588
8184
  "members": [
8185
+ {
8186
+ "kind": "field",
8187
+ "name": "lastOpened",
8188
+ "type": {
8189
+ "text": "Tooltip | undefined"
8190
+ },
8191
+ "static": true
8192
+ },
7589
8193
  {
7590
8194
  "kind": "field",
7591
8195
  "name": "shortcutSlot",
@@ -7596,10 +8200,16 @@
7596
8200
  "kind": "field",
7597
8201
  "name": "targetElement",
7598
8202
  "type": {
7599
- "text": "HTMLElement"
8203
+ "text": "FocusableElement"
7600
8204
  },
7601
8205
  "privacy": "private"
7602
8206
  },
8207
+ {
8208
+ "kind": "field",
8209
+ "name": "proxy",
8210
+ "privacy": "private",
8211
+ "description": "the proxy element is for cases where the targetElement is a web component,\nand the WC has a focusable child in its shadow root e.g. a button component.\nin this case, when the tooltip is shown, we inject the proxy into targetElement's shadow root\nand wire up aria-describedby from the focusable element to the proxy.\nwhen the tooltip is hidden, we remove the proxy and remove the aria-describedby relationship."
8212
+ },
7603
8213
  {
7604
8214
  "kind": "field",
7605
8215
  "name": "visible",
@@ -7675,6 +8285,21 @@
7675
8285
  "name": "hideTooltip",
7676
8286
  "privacy": "private"
7677
8287
  },
8288
+ {
8289
+ "kind": "field",
8290
+ "name": "hideOnEscape",
8291
+ "privacy": "private"
8292
+ },
8293
+ {
8294
+ "kind": "field",
8295
+ "name": "addDescribedBy",
8296
+ "privacy": "private"
8297
+ },
8298
+ {
8299
+ "kind": "field",
8300
+ "name": "removeDescribedBy",
8301
+ "privacy": "private"
8302
+ },
7678
8303
  {
7679
8304
  "kind": "field",
7680
8305
  "name": "_warningLogged",
@@ -8018,10 +8643,22 @@
8018
8643
  "description": "",
8019
8644
  "name": "LightDomController",
8020
8645
  "members": [
8646
+ {
8647
+ "kind": "field",
8648
+ "name": "container",
8649
+ "type": {
8650
+ "text": "HTMLElement"
8651
+ },
8652
+ "privacy": "private"
8653
+ },
8021
8654
  {
8022
8655
  "kind": "method",
8023
8656
  "name": "hostUpdated"
8024
8657
  },
8658
+ {
8659
+ "kind": "method",
8660
+ "name": "hostDisconnected"
8661
+ },
8025
8662
  {
8026
8663
  "kind": "field",
8027
8664
  "name": "host",
@@ -8059,7 +8696,7 @@
8059
8696
  "kind": "field",
8060
8697
  "name": "renderHook",
8061
8698
  "type": {
8062
- "text": "HTMLElement"
8699
+ "text": "Comment"
8063
8700
  },
8064
8701
  "privacy": "private"
8065
8702
  },
@@ -8115,10 +8752,6 @@
8115
8752
  "name": "options",
8116
8753
  "default": "options"
8117
8754
  },
8118
- {
8119
- "kind": "field",
8120
- "name": "slot"
8121
- },
8122
8755
  {
8123
8756
  "kind": "field",
8124
8757
  "name": "hasContent",
@@ -8190,6 +8823,68 @@
8190
8823
  }
8191
8824
  ]
8192
8825
  },
8826
+ {
8827
+ "kind": "javascript-module",
8828
+ "path": "src/common/controllers/PortalController.ts",
8829
+ "declarations": [
8830
+ {
8831
+ "kind": "class",
8832
+ "description": "",
8833
+ "name": "PortalController",
8834
+ "members": [
8835
+ {
8836
+ "kind": "field",
8837
+ "name": "renderHook",
8838
+ "type": {
8839
+ "text": "Comment"
8840
+ },
8841
+ "privacy": "private"
8842
+ },
8843
+ {
8844
+ "kind": "field",
8845
+ "name": "lightDom",
8846
+ "type": {
8847
+ "text": "LightDomController"
8848
+ },
8849
+ "privacy": "private",
8850
+ "default": "new LightDomController(host, {\n render: () => this.options.render.call(host),\n container: options.outlet,\n renderOptions: {\n renderBefore: this.renderHook,\n host,\n },\n })"
8851
+ },
8852
+ {
8853
+ "kind": "method",
8854
+ "name": "hostConnected"
8855
+ },
8856
+ {
8857
+ "kind": "method",
8858
+ "name": "hostUpdated"
8859
+ },
8860
+ {
8861
+ "kind": "method",
8862
+ "name": "hostDisconnected"
8863
+ },
8864
+ {
8865
+ "kind": "field",
8866
+ "name": "host",
8867
+ "default": "host"
8868
+ },
8869
+ {
8870
+ "kind": "field",
8871
+ "name": "options",
8872
+ "default": "options"
8873
+ }
8874
+ ]
8875
+ }
8876
+ ],
8877
+ "exports": [
8878
+ {
8879
+ "kind": "js",
8880
+ "name": "PortalController",
8881
+ "declaration": {
8882
+ "name": "PortalController",
8883
+ "module": "src/common/controllers/PortalController.ts"
8884
+ }
8885
+ }
8886
+ ]
8887
+ },
8193
8888
  {
8194
8889
  "kind": "javascript-module",
8195
8890
  "path": "src/common/controllers/ShortcutController.ts",