@nordhealth/components 1.4.0 → 1.6.0

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 (90) hide show
  1. package/README.md +1 -1
  2. package/custom-elements.json +2842 -1680
  3. package/lib/Avatar.js +1 -1
  4. package/lib/Badge.js +1 -1
  5. package/lib/Banner.js +1 -1
  6. package/lib/Banner.js.map +1 -1
  7. package/lib/Button.js +1 -1
  8. package/lib/Button.js.map +1 -1
  9. package/lib/{Calendar-a389d216.js → Calendar-6f7a7d8f.js} +2 -2
  10. package/lib/{Calendar-a389d216.js.map → Calendar-6f7a7d8f.js.map} +1 -1
  11. package/lib/Calendar.js +1 -1
  12. package/lib/Card.js +1 -1
  13. package/lib/Card.js.map +1 -1
  14. package/lib/Checkbox.js +1 -1
  15. package/lib/Checkbox.js.map +1 -1
  16. package/lib/CommandMenu.js +1 -1
  17. package/lib/CommandMenu.js.map +1 -1
  18. package/lib/CommandMenuAction.js +1 -1
  19. package/lib/CommandMenuAction.js.map +1 -1
  20. package/lib/Component-5a499e30.js +2 -0
  21. package/lib/Component-5a499e30.js.map +1 -0
  22. package/lib/DatePicker.js +1 -1
  23. package/lib/DatePicker.js.map +1 -1
  24. package/lib/Dropdown.js +1 -1
  25. package/lib/DropdownGroup.js +1 -1
  26. package/lib/DropdownItem.js +1 -1
  27. package/lib/DropdownItem.js.map +1 -1
  28. package/lib/EmptyState.js +1 -1
  29. package/lib/EmptyState.js.map +1 -1
  30. package/lib/Fieldset.js +1 -1
  31. package/lib/Header.js +1 -1
  32. package/lib/Header.js.map +1 -1
  33. package/lib/Icon.js +1 -1
  34. package/lib/Input.js +1 -1
  35. package/lib/Input.js.map +1 -1
  36. package/lib/InputMixin-9334d385.js +2 -0
  37. package/lib/{InputMixin-84ca72ae.js.map → InputMixin-9334d385.js.map} +1 -1
  38. package/lib/Layout.js +1 -1
  39. package/lib/Layout.js.map +1 -1
  40. package/lib/LocalizeController.js +1 -1
  41. package/lib/LocalizeController.js.map +1 -1
  42. package/lib/Modal.js +2 -0
  43. package/lib/Modal.js.map +1 -0
  44. package/lib/NavGroup.js +1 -1
  45. package/lib/NavGroup.js.map +1 -1
  46. package/lib/NavItem.js +1 -1
  47. package/lib/NavItem.js.map +1 -1
  48. package/lib/Popout.js +1 -1
  49. package/lib/Popout.js.map +1 -1
  50. package/lib/ProgressBar.js +1 -1
  51. package/lib/Radio.js +1 -1
  52. package/lib/Radio.js.map +1 -1
  53. package/lib/Select.js +1 -1
  54. package/lib/Spinner.js +1 -1
  55. package/lib/Stack.js +1 -1
  56. package/lib/Stack.js.map +1 -1
  57. package/lib/{TextField-f8848f28.js → TextField-9dea5c28.js} +2 -2
  58. package/lib/TextField-9dea5c28.js.map +1 -0
  59. package/lib/Textarea.js +1 -1
  60. package/lib/Toggle.js +2 -0
  61. package/lib/Toggle.js.map +1 -0
  62. package/lib/Tooltip.js +1 -1
  63. package/lib/bundle.js +12 -11
  64. package/lib/bundle.js.map +1 -1
  65. package/lib/en-us.js +1 -1
  66. package/lib/en-us.js.map +1 -1
  67. package/lib/fi-fi.js +1 -1
  68. package/lib/fi-fi.js.map +1 -1
  69. package/lib/index.js +1 -1
  70. package/lib/localization4.js +2 -0
  71. package/lib/localization4.js.map +1 -0
  72. package/lib/src/common/controllers/FocusTrapController.d.ts +14 -0
  73. package/lib/src/common/controllers/ScrollbarController.d.ts +11 -0
  74. package/lib/src/common/form.d.ts +5 -0
  75. package/lib/src/index.d.ts +2 -0
  76. package/lib/src/input/Input.d.ts +3 -1
  77. package/lib/src/localization/en-us.d.ts +3 -0
  78. package/lib/src/modal/Modal.d.ts +84 -0
  79. package/lib/src/modal/Modal.test.d.ts +6 -0
  80. package/lib/src/modal/localization.d.ts +4 -0
  81. package/lib/src/nav-item/NavItem.d.ts +2 -0
  82. package/lib/src/toggle/Toggle.d.ts +38 -0
  83. package/lib/src/toggle/Toggle.test.d.ts +3 -0
  84. package/lib/translation.js +1 -1
  85. package/lib/translation.js.map +1 -1
  86. package/package.json +15 -6
  87. package/lib/Component-fa316972.js +0 -2
  88. package/lib/Component-fa316972.js.map +0 -1
  89. package/lib/InputMixin-84ca72ae.js +0 -2
  90. package/lib/TextField-f8848f28.js.map +0 -1
package/lib/en-us.js CHANGED
@@ -1,2 +1,2 @@
1
- import o from"./localization.js";import a from"./localization2.js";import n from"./localization3.js";const r={$lang:"en-US",$name:"English",$dir:"ltr","nord-command-menu":o,"nord-calendar":n,"nord-date-picker":a};export{r as default};
1
+ import o from"./localization.js";import a from"./localization2.js";import r from"./localization3.js";import n from"./localization4.js";const i={$lang:"en-US",$name:"English",$dir:"ltr","nord-command-menu":o,"nord-calendar":r,"nord-date-picker":a,"nord-modal":n};export{i as default};
2
2
  //# sourceMappingURL=en-us.js.map
package/lib/en-us.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"en-us.js","sources":["../src/localization/en-us.ts"],"sourcesContent":["import commandMenuLocalization from \"../command-menu/localization.js\"\nimport datePickerLocalization from \"../date-picker/localization.js\"\nimport calendarLocalization from \"../calendar/localization.js\"\n\nconst en = {\n $lang: \"en-US\",\n $name: \"English\",\n $dir: \"ltr\" as \"ltr\" | \"rtl\",\n \"nord-command-menu\": commandMenuLocalization,\n \"nord-calendar\": calendarLocalization,\n \"nord-date-picker\": datePickerLocalization,\n}\n\nexport default en\n"],"names":["en","$lang","$name","$dir","commandMenuLocalization","calendarLocalization","datePickerLocalization"],"mappings":"qGAIA,MAAMA,EAAK,CACTC,MAAO,QACPC,MAAO,UACPC,KAAM,MACN,oBAAqBC,EACrB,gBAAiBC,EACjB,mBAAoBC"}
1
+ {"version":3,"file":"en-us.js","sources":["../src/localization/en-us.ts"],"sourcesContent":["import commandMenuLocalization from \"../command-menu/localization.js\"\nimport datePickerLocalization from \"../date-picker/localization.js\"\nimport calendarLocalization from \"../calendar/localization.js\"\nimport modalLocalization from \"../modal/localization.js\"\n\nconst en = {\n $lang: \"en-US\",\n $name: \"English\",\n $dir: \"ltr\" as \"ltr\" | \"rtl\",\n \"nord-command-menu\": commandMenuLocalization,\n \"nord-calendar\": calendarLocalization,\n \"nord-date-picker\": datePickerLocalization,\n \"nord-modal\": modalLocalization,\n}\n\nexport default en\n"],"names":["en","$lang","$name","$dir","commandMenuLocalization","calendarLocalization","datePickerLocalization","modalLocalization"],"mappings":"uIAKA,MAAMA,EAAK,CACTC,MAAO,QACPC,MAAO,UACPC,KAAM,MACN,oBAAqBC,EACrB,gBAAiBC,EACjB,mBAAoBC,EACpB,aAAcC"}
package/lib/fi-fi.js CHANGED
@@ -1,2 +1,2 @@
1
- const a={$lang:"fi",$name:"Suomi",$dir:"ltr","nord-command-menu":{instructions:"Paina 'Enter' vahvistaaksesi valinnan tai 'Escape' peruuttaaksesi",inputLabel:"Kirjoita komento jonka haluat suorittaa.",footerArrowKeys:"Siirry",footerEnterKey:"Valitse",footerEscapeKey:"Esc sulje",footerBackspaceKey:"Siirry takaisin",noResults:a=>`Ei tuloksia haulle "${a}"`,tip:"Vinkki: jotkin haut vaativat tarkan hakutermin. Koita kirjoittaa koko hakutermi kokonaisuudessaan, tai kokeile toista sanaa tai fraasia."},"nord-calendar":{prevMonthLabel:"Edellinen kuukausi",nextMonthLabel:"Seuraava kuukausi",monthSelectLabel:"Kuukausi",yearSelectLabel:"Vuosi"},"nord-date-picker":{modalHeading:"Valitse päivämäärä",closeLabel:"Sulje ikkuna",buttonLabel:"Valitse päivämäärä",selectedDateMessage:"Valittu päivämäärä on"}};export{a as default};
1
+ const a={$lang:"fi",$name:"Suomi",$dir:"ltr","nord-command-menu":{instructions:"Paina 'Enter' vahvistaaksesi valinnan tai 'Escape' peruuttaaksesi",inputLabel:"Kirjoita komento jonka haluat suorittaa.",footerArrowKeys:"Siirry",footerEnterKey:"Valitse",footerEscapeKey:"Esc sulje",footerBackspaceKey:"Siirry takaisin",noResults:a=>`Ei tuloksia haulle "${a}"`,tip:"Vinkki: jotkin haut vaativat tarkan hakutermin. Koita kirjoittaa koko hakutermi kokonaisuudessaan, tai kokeile toista sanaa tai fraasia."},"nord-calendar":{prevMonthLabel:"Edellinen kuukausi",nextMonthLabel:"Seuraava kuukausi",monthSelectLabel:"Kuukausi",yearSelectLabel:"Vuosi"},"nord-date-picker":{modalHeading:"Valitse päivämäärä",closeLabel:"Sulje ikkuna",buttonLabel:"Valitse päivämäärä",selectedDateMessage:"Valittu päivämäärä on"},"nord-modal":{closeLabel:"Sulje ikkuna"}};export{a as default};
2
2
  //# sourceMappingURL=fi-fi.js.map
package/lib/fi-fi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fi-fi.js","sources":["../src/localization/fi-fi.ts"],"sourcesContent":["import { Translation } from \"./translation.js\"\n\nconst fi: Translation = {\n $lang: \"fi\",\n $name: \"Suomi\",\n $dir: \"ltr\",\n\n \"nord-command-menu\": {\n instructions: \"Paina 'Enter' vahvistaaksesi valinnan tai 'Escape' peruuttaaksesi\",\n inputLabel: \"Kirjoita komento jonka haluat suorittaa.\",\n footerArrowKeys: \"Siirry\",\n footerEnterKey: \"Valitse\",\n footerEscapeKey: \"Esc sulje\",\n footerBackspaceKey: \"Siirry takaisin\",\n noResults: searchTerm => `Ei tuloksia haulle \"${searchTerm}\"`,\n tip: \"Vinkki: jotkin haut vaativat tarkan hakutermin. Koita kirjoittaa koko hakutermi kokonaisuudessaan, tai kokeile toista sanaa tai fraasia.\",\n },\n\n \"nord-calendar\": {\n prevMonthLabel: \"Edellinen kuukausi\",\n nextMonthLabel: \"Seuraava kuukausi\",\n monthSelectLabel: \"Kuukausi\",\n yearSelectLabel: \"Vuosi\",\n },\n\n \"nord-date-picker\": {\n modalHeading: \"Valitse päivämäärä\",\n closeLabel: \"Sulje ikkuna\",\n buttonLabel: \"Valitse päivämäärä\",\n selectedDateMessage: \"Valittu päivämäärä on\",\n },\n}\n\nexport default fi\n"],"names":["fi","$lang","$name","$dir","instructions","inputLabel","footerArrowKeys","footerEnterKey","footerEscapeKey","footerBackspaceKey","noResults","searchTerm","tip","prevMonthLabel","nextMonthLabel","monthSelectLabel","yearSelectLabel","modalHeading","closeLabel","buttonLabel","selectedDateMessage"],"mappings":"AAEA,MAAMA,EAAkB,CACtBC,MAAO,KACPC,MAAO,QACPC,KAAM,MAEN,oBAAqB,CACnBC,aAAc,oEACdC,WAAY,2CACZC,gBAAiB,SACjBC,eAAgB,UAChBC,gBAAiB,YACjBC,mBAAoB,kBACpBC,UAAWC,GAAc,uBAAuBA,KAChDC,IAAK,4IAGP,gBAAiB,CACfC,eAAgB,qBAChBC,eAAgB,oBAChBC,iBAAkB,WAClBC,gBAAiB,SAGnB,mBAAoB,CAClBC,aAAc,qBACdC,WAAY,eACZC,YAAa,qBACbC,oBAAqB"}
1
+ {"version":3,"file":"fi-fi.js","sources":["../src/localization/fi-fi.ts"],"sourcesContent":["import { Translation } from \"./translation.js\"\n\nconst fi: Translation = {\n $lang: \"fi\",\n $name: \"Suomi\",\n $dir: \"ltr\",\n\n \"nord-command-menu\": {\n instructions: \"Paina 'Enter' vahvistaaksesi valinnan tai 'Escape' peruuttaaksesi\",\n inputLabel: \"Kirjoita komento jonka haluat suorittaa.\",\n footerArrowKeys: \"Siirry\",\n footerEnterKey: \"Valitse\",\n footerEscapeKey: \"Esc sulje\",\n footerBackspaceKey: \"Siirry takaisin\",\n noResults: searchTerm => `Ei tuloksia haulle \"${searchTerm}\"`,\n tip: \"Vinkki: jotkin haut vaativat tarkan hakutermin. Koita kirjoittaa koko hakutermi kokonaisuudessaan, tai kokeile toista sanaa tai fraasia.\",\n },\n\n \"nord-calendar\": {\n prevMonthLabel: \"Edellinen kuukausi\",\n nextMonthLabel: \"Seuraava kuukausi\",\n monthSelectLabel: \"Kuukausi\",\n yearSelectLabel: \"Vuosi\",\n },\n\n \"nord-date-picker\": {\n modalHeading: \"Valitse päivämäärä\",\n closeLabel: \"Sulje ikkuna\",\n buttonLabel: \"Valitse päivämäärä\",\n selectedDateMessage: \"Valittu päivämäärä on\",\n },\n\n \"nord-modal\": {\n closeLabel: \"Sulje ikkuna\",\n },\n}\n\nexport default fi\n"],"names":["fi","$lang","$name","$dir","instructions","inputLabel","footerArrowKeys","footerEnterKey","footerEscapeKey","footerBackspaceKey","noResults","searchTerm","tip","prevMonthLabel","nextMonthLabel","monthSelectLabel","yearSelectLabel","modalHeading","closeLabel","buttonLabel","selectedDateMessage"],"mappings":"AAEA,MAAMA,EAAkB,CACtBC,MAAO,KACPC,MAAO,QACPC,KAAM,MAEN,oBAAqB,CACnBC,aAAc,oEACdC,WAAY,2CACZC,gBAAiB,SACjBC,eAAgB,UAChBC,gBAAiB,YACjBC,mBAAoB,kBACpBC,UAAWC,GAAc,uBAAuBA,KAChDC,IAAK,4IAGP,gBAAiB,CACfC,eAAgB,qBAChBC,eAAgB,oBAChBC,iBAAkB,WAClBC,gBAAiB,SAGnB,mBAAoB,CAClBC,aAAc,qBACdC,WAAY,eACZC,YAAa,qBACbC,oBAAqB,yBAGvB,aAAc,CACZF,WAAY"}
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{default as Badge}from"./Badge.js";export{default as Button}from"./Button.js";export{default as Card}from"./Card.js";export{default as Input}from"./Input.js";export{default as Icon}from"./Icon.js";export{default as CommandMenu}from"./CommandMenu.js";export{default as CommandMenuAction}from"./CommandMenuAction.js";export{default as Select}from"./Select.js";export{default as Stack}from"./Stack.js";export{default as Spinner}from"./Spinner.js";export{default as Table}from"./Table.js";export{default as VisuallyHidden}from"./VisuallyHidden.js";export{default as Textarea}from"./Textarea.js";export{C as Calendar}from"./Calendar-a389d216.js";export{default as DatePicker}from"./DatePicker.js";export{default as Checkbox}from"./Checkbox.js";export{default as Tooltip}from"./Tooltip.js";export{default as Fieldset}from"./Fieldset.js";export{default as Radio}from"./Radio.js";export{default as Header}from"./Header.js";export{default as NavGroup}from"./NavGroup.js";export{default as NavItem}from"./NavItem.js";export{default as Navigation}from"./Navigation.js";export{default as Layout}from"./Layout.js";export{default as EmptyState}from"./EmptyState.js";export{default as Banner}from"./Banner.js";export{default as Avatar}from"./Avatar.js";export{default as ProgressBar}from"./ProgressBar.js";export{default as Popout}from"./Popout.js";export{default as Dropdown}from"./Dropdown.js";export{default as DropdownItem}from"./DropdownItem.js";export{default as DropdownGroup}from"./DropdownGroup.js";export{isTranslationRegistered,registerTranslation}from"./translation.js";import"./query-assigned-elements-ef860822.js";import"./lit-element-e382250e.js";import"./property-03f59dce.js";import"./Component-fa316972.js";import"./ref-adf41565.js";import"./directive-de55b00a.js";import"./EventController-d99ebeef.js";import"./LightDomController-e0762f0d.js";import"./cond-ed8742b5.js";import"./FocusableMixin-4c85ced9.js";import"./InputMixin-84ca72ae.js";import"./SlotController-ea6eff46.js";import"./if-defined-4d1db15c.js";import"./unsafe-html-76575c49.js";import"./FormAssociatedMixin-9d38814c.js";import"./events-731d0007.js";import"./FormField-44e865a4.js";import"./TextField-f8848f28.js";import"./state-70f38ceb.js";import"./observe-a9c6dfb6.js";import"./repeat-ed796481.js";import"./class-map-9e39244c.js";import"./collection-800f5002.js";import"./number-c3ab3e95.js";import"./LightDismissController-a2645ae6.js";import"./ShortcutController-87615e31.js";import"./tinykeys.module-84e6cc41.js";import"./KeyboardController.js";import"./SelectEvent.js";import"./LocalizeController.js";import"./DirectionController-8b298382.js";import"./query-2d22378e.js";import"./dates-56f73760.js";import"./month-view.js";import"./DateSelectEvent.js";import"./date-adapter.js";import"./positioning-763efb3a.js";import"./fsm-50373df9.js";import"./en-us.js";import"./localization.js";import"./localization2.js";import"./localization3.js";
1
+ export{default as Badge}from"./Badge.js";export{default as Button}from"./Button.js";export{default as Card}from"./Card.js";export{default as Input}from"./Input.js";export{default as Icon}from"./Icon.js";export{default as CommandMenu}from"./CommandMenu.js";export{default as CommandMenuAction}from"./CommandMenuAction.js";export{default as Select}from"./Select.js";export{default as Stack}from"./Stack.js";export{default as Spinner}from"./Spinner.js";export{default as Table}from"./Table.js";export{default as VisuallyHidden}from"./VisuallyHidden.js";export{default as Textarea}from"./Textarea.js";export{C as Calendar}from"./Calendar-6f7a7d8f.js";export{default as DatePicker}from"./DatePicker.js";export{default as Checkbox}from"./Checkbox.js";export{default as Tooltip}from"./Tooltip.js";export{default as Fieldset}from"./Fieldset.js";export{default as Radio}from"./Radio.js";export{default as Header}from"./Header.js";export{default as NavGroup}from"./NavGroup.js";export{default as NavItem}from"./NavItem.js";export{default as Navigation}from"./Navigation.js";export{default as Layout}from"./Layout.js";export{default as EmptyState}from"./EmptyState.js";export{default as Banner}from"./Banner.js";export{default as Avatar}from"./Avatar.js";export{default as ProgressBar}from"./ProgressBar.js";export{default as Popout}from"./Popout.js";export{default as Dropdown}from"./Dropdown.js";export{default as DropdownItem}from"./DropdownItem.js";export{default as DropdownGroup}from"./DropdownGroup.js";export{isTranslationRegistered,registerTranslation}from"./translation.js";export{default as Toggle}from"./Toggle.js";export{default as Modal}from"./Modal.js";import"./query-assigned-elements-ef860822.js";import"./lit-element-e382250e.js";import"./property-03f59dce.js";import"./Component-5a499e30.js";import"./ref-adf41565.js";import"./directive-de55b00a.js";import"./EventController-d99ebeef.js";import"./LightDomController-e0762f0d.js";import"./cond-ed8742b5.js";import"./FocusableMixin-4c85ced9.js";import"./InputMixin-9334d385.js";import"./SlotController-ea6eff46.js";import"./if-defined-4d1db15c.js";import"./class-map-9e39244c.js";import"./unsafe-html-76575c49.js";import"./FormAssociatedMixin-9d38814c.js";import"./events-731d0007.js";import"./FormField-44e865a4.js";import"./TextField-9dea5c28.js";import"./state-70f38ceb.js";import"./observe-a9c6dfb6.js";import"./repeat-ed796481.js";import"./collection-800f5002.js";import"./number-c3ab3e95.js";import"./LightDismissController-a2645ae6.js";import"./ShortcutController-87615e31.js";import"./tinykeys.module-84e6cc41.js";import"./KeyboardController.js";import"./SelectEvent.js";import"./LocalizeController.js";import"./DirectionController-8b298382.js";import"./query-2d22378e.js";import"./dates-56f73760.js";import"./month-view.js";import"./DateSelectEvent.js";import"./date-adapter.js";import"./positioning-763efb3a.js";import"./fsm-50373df9.js";import"./en-us.js";import"./localization.js";import"./localization2.js";import"./localization3.js";import"./localization4.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ const e={closeLabel:"Close dialog"};export{e as default};
2
+ //# sourceMappingURL=localization4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localization4.js","sources":["../src/modal/localization.ts"],"sourcesContent":["const localization = {\n closeLabel: \"Close dialog\",\n}\n\nexport default localization\n"],"names":["localization","closeLabel"],"mappings":"AAAA,MAAMA,EAAe,CACnBC,WAAY"}
@@ -0,0 +1,14 @@
1
+ import { ReactiveController, ReactiveControllerHost } from "lit";
2
+ export declare class FocusTrapController implements ReactiveController {
3
+ private boundary;
4
+ private lastScrollY;
5
+ private lastFocused?;
6
+ constructor(host: ReactiveControllerHost & HTMLElement, boundary?: () => HTMLElement);
7
+ hostDisconnected(): void;
8
+ trap(): void;
9
+ release(): void;
10
+ private handleFocusOut;
11
+ private handleFocusIn;
12
+ private recaptureFocus;
13
+ private restoreScroll;
14
+ }
@@ -0,0 +1,11 @@
1
+ import { ReactiveController, ReactiveControllerHost } from "lit";
2
+ export declare class ScrollbarController implements ReactiveController {
3
+ private scroller;
4
+ private resets;
5
+ constructor(host: ReactiveControllerHost);
6
+ constructor(host: ReactiveControllerHost, scroller: HTMLElement);
7
+ hostDisconnected(): void;
8
+ get width(): number;
9
+ hide(): void;
10
+ restore(): void;
11
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Finds a form's submit button. First looking for a button inside form,
3
+ * and then looking for a button whose form attribute is equal to the ID of the form.
4
+ */
5
+ export declare function getSubmitButton(form: HTMLFormElement): HTMLButtonElement | null;
@@ -32,3 +32,5 @@ export { default as DropdownItem } from "./dropdown-item/DropdownItem.js";
32
32
  export { default as DropdownGroup } from "./dropdown-group/DropdownGroup.js";
33
33
  export { registerTranslation, isTranslationRegistered } from "./localization/translation.js";
34
34
  export type { Translation } from "./localization/translation.js";
35
+ export { default as Toggle } from "./toggle/Toggle.js";
36
+ export { default as Modal } from "./modal/Modal.js";
@@ -9,11 +9,13 @@ declare const Input_base: (new (...args: any[]) => import("../common/mixins/Form
9
9
  * @slot label - Use when a label requires more than plain text.
10
10
  * @slot hint - Optional slot that holds hint text for the input.
11
11
  * @slot error - Optional slot that holds error text for the input.
12
- * @slot start - Optional slot used to place an icon at the start of the input.
12
+ * @slot start - Optional slot used to place an icon or prefix at the start of the input.
13
+ * @slot end - Optional slot used to place an icon or suffix at the end of the input.
13
14
  */
14
15
  export default class Input extends Input_base {
15
16
  static styles: import("lit").CSSResult[];
16
17
  private startSlot;
18
+ private endSlot;
17
19
  /**
18
20
  * The type of the input.
19
21
  */
@@ -24,5 +24,8 @@ declare const en: {
24
24
  buttonLabel: string;
25
25
  selectedDateMessage: string;
26
26
  };
27
+ "nord-modal": {
28
+ closeLabel: string;
29
+ };
27
30
  };
28
31
  export default en;
@@ -0,0 +1,84 @@
1
+ import { LitElement } from "lit";
2
+ import "../icon/Icon.js";
3
+ declare const Modal_base: typeof LitElement;
4
+ /**
5
+ * Modal component is used to display content that temporarily blocks interactions
6
+ * with the main view of an application. Modal should be used sparingly and
7
+ * only when necessary.
8
+ *
9
+ * @status draft
10
+ * @category overlay
11
+ * @slot - Default slot
12
+ * @slot header - Slot which holds the header of the modal, positioned next to the close button.
13
+ * @slot footer - Slot which is typically used to hold call to action buttons, but can also be used to build custom footers.
14
+ * @fires cancel - Dispatched before the modal has closed when a user attempts to dismiss a modal. Call `preventDefault()` on the event to prevent the modal closing.
15
+ * @fires close - Dispatched when a modal is closed for any reason.
16
+ */
17
+ export default class Modal extends Modal_base {
18
+ static styles: import("lit").CSSResult[];
19
+ private modal;
20
+ private backdrop;
21
+ private trigger?;
22
+ private lastButton?;
23
+ private headerSlot;
24
+ private featureSlot;
25
+ private footerSlot;
26
+ private scrollBar;
27
+ private focusTrap;
28
+ private localize;
29
+ private events;
30
+ private lightDismiss;
31
+ /**
32
+ * Controls whether the modal is open or not.
33
+ */
34
+ open: boolean;
35
+ /**
36
+ * Controls the max-width of the modal when open.
37
+ */
38
+ size: "s" | "m" | "l";
39
+ /**
40
+ * The reason why the modal was closed. This typically indicates
41
+ * which button the user pressed to close the modal, though any value
42
+ * can be supplied if the modal is programmatically closed.
43
+ */
44
+ returnValue: string;
45
+ /**
46
+ * By default if a modal is too big for the browser window,
47
+ * the entire modal will scroll. This setting changes that behavior
48
+ * so that the body of the modal scrolls instead, with the modal
49
+ * itself remaining fixed.
50
+ */
51
+ scrollable: boolean;
52
+ connectedCallback(): void;
53
+ /**
54
+ * Show the modal, automatically moving focus to the modal or a child
55
+ * element with an `autofocus` attribute.
56
+ */
57
+ showModal(): void;
58
+ /**
59
+ * Programmatically close the modal.
60
+ * @param returnValue An optional value to indicate why the modal was closed.
61
+ */
62
+ close(returnValue?: string): void;
63
+ /**
64
+ * Programmatically focus the modal.
65
+ * @param options An object which controls aspects of the focusing process.
66
+ */
67
+ focus(options?: FocusOptions): void;
68
+ render(): import("lit-html").TemplateResult<1>;
69
+ protected handleOpenUpdated(): void;
70
+ private enableScroll;
71
+ private handleDismiss;
72
+ /**
73
+ * capture the last button clicked, so that we can polyfill `submitter` property in submit event
74
+ */
75
+ private trackLastButton;
76
+ private polyfillSubmitter;
77
+ private handleSubmit;
78
+ }
79
+ declare global {
80
+ interface HTMLElementTagNameMap {
81
+ "nord-modal": Modal;
82
+ }
83
+ }
84
+ export {};
@@ -0,0 +1,6 @@
1
+ import "../button/Button.js";
2
+ import "../input/Input.js";
3
+ import "../textarea/Textarea.js";
4
+ import "../select/Select.js";
5
+ import "../stack/Stack.js";
6
+ import "../checkbox/Checkbox.js";
@@ -0,0 +1,4 @@
1
+ declare const localization: {
2
+ closeLabel: string;
3
+ };
4
+ export default localization;
@@ -30,6 +30,8 @@ export default class NavItem extends NavItem_base {
30
30
  href?: string;
31
31
  /**
32
32
  * Allows you to add a notification badge with a number next to the nav item.
33
+ * Please note that this isn’t supported for nav items which have nested nav
34
+ * items inside them.
33
35
  */
34
36
  badge?: string;
35
37
  /**
@@ -0,0 +1,38 @@
1
+ import { LitElement } from "lit";
2
+ declare const Toggle_base: (new (...args: any[]) => import("../common/mixins/FormAssociatedMixin.js").FormAssociatedMixinInterface) & (new (...args: any[]) => import("../common/mixins/InputMixin.js").InputMixinInterface) & (new (...args: any[]) => import("../common/mixins/FocusableMixin.js").FocusableMixinInterface) & typeof LitElement;
3
+ /**
4
+ * Toggle switch gives control over a feature or option that can be
5
+ * turned on or off. If a physical switch would work for the action, a
6
+ * toggle is probably the best component to use.
7
+ *
8
+ * @status new
9
+ * @category form
10
+ * @slot label - Use when a label requires more than plain text.
11
+ * @slot hint - Optional slot that holds hint text for the input.
12
+ * @slot error - Optional slot that holds error text for the input.
13
+ */
14
+ export default class Toggle extends Toggle_base {
15
+ static styles: import("lit").CSSResult[];
16
+ protected get formValue(): string | undefined;
17
+ /**
18
+ * Controls whether the toggle is checked or not.
19
+ */
20
+ checked: boolean;
21
+ /**
22
+ * Controls whether the contents are displayed in reverse order,
23
+ * putting the label before the toggle.
24
+ */
25
+ reverse: boolean;
26
+ /**
27
+ * The size of the toggle switch.
28
+ */
29
+ size: "s" | "m" | "l";
30
+ render(): import("lit-html").TemplateResult<1>;
31
+ protected handleChange(e: Event): void;
32
+ }
33
+ declare global {
34
+ interface HTMLElementTagNameMap {
35
+ "nord-toggle": Toggle;
36
+ }
37
+ }
38
+ export {};
@@ -0,0 +1,3 @@
1
+ import "../button/Button.js";
2
+ import "../stack/Stack.js";
3
+ import "../fieldset/Fieldset.js";
@@ -1,2 +1,2 @@
1
- import t from"./en-us.js";import"./localization.js";import"./localization2.js";import"./localization3.js";const o=new Set,n=new Map;function e(){for(const t of o)t()}function r(){n.clear()}function i(...t){t.forEach((t=>{const o=t.$lang.toLowerCase();n.set(o,t)})),e()}function a(t){return o.add(t),()=>o.delete(t)}function c(t){return n.has(t)}function s(o){const e=o.toLowerCase(),[r]=e.split("-");return n.get(e)||n.get(r)||t}new MutationObserver(e).observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]});export{r as clearTranslations,c as isTranslationRegistered,i as registerTranslation,s as resolveTranslation,a as subscribe};
1
+ import t from"./en-us.js";import"./localization.js";import"./localization2.js";import"./localization3.js";import"./localization4.js";const o=new Set,n=new Map;function e(){for(const t of o)t()}function i(){n.clear()}function r(...t){t.forEach((t=>{const o=t.$lang.toLowerCase();n.set(o,t)})),e()}function a(t){return o.add(t),()=>o.delete(t)}function c(t){return n.has(t)}function s(o){const e=o.toLowerCase(),[i]=e.split("-");return n.get(e)||n.get(i)||t}new MutationObserver(e).observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]});export{i as clearTranslations,c as isTranslationRegistered,r as registerTranslation,s as resolveTranslation,a as subscribe};
2
2
  //# sourceMappingURL=translation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"translation.js","sources":["../src/localization/translation.ts"],"sourcesContent":["import en from \"./en-us.js\"\n\n// gets list of properties beginning prefix\ntype PickStartsWith<Type, Prefix extends string> = {\n [Property in keyof Type]: Property extends `${Prefix}${string}` ? Property : never\n}[keyof Type]\n\nexport type Translation = typeof en\nexport type WellKnownKeys = PickStartsWith<Translation, \"$\">\n\nconst subscribers = new Set<() => void>()\nconst translations = new Map<string, Translation>()\n\nfunction update() {\n for (const subscriber of subscribers) {\n subscriber()\n }\n}\n\n// observe changes to the document's lang\nconst observer = new MutationObserver(update)\nobserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"lang\"],\n})\n\n/**\n * Removes all registered translations\n */\nexport function clearTranslations() {\n translations.clear()\n}\n\n/**\n * Registers one or more translations\n */\nexport function registerTranslation(...translation: Translation[]) {\n translation.forEach(t => {\n const lang = t.$lang.toLowerCase()\n translations.set(lang, t)\n })\n\n update()\n}\n\n/**\n * subscribe to language changes\n * @param onChange callback for when either `lang` attr changes, or a new language is registered.\n * @returns cleanup function\n */\nexport function subscribe(onChange: () => void): () => void {\n subscribers.add(onChange)\n return () => subscribers.delete(onChange)\n}\n\n/**\n * Check whether there is a translation registered for the given lang\n * @param lang the lang code e.g. \"en\" or \"en-GB\"\n */\nexport function isTranslationRegistered(lang: string) {\n return translations.has(lang)\n}\n\n/**\n * Picks the most appropriate translation for the given language, from most specific to least specific.\n * First tries lang + region, then lang only, then fallback.\n */\nexport function resolveTranslation(langCode: string): Translation {\n const lang = langCode.toLowerCase()\n const [langOnly] = lang.split(\"-\")\n\n return translations.get(lang) || translations.get(langOnly) || en\n}\n"],"names":["subscribers","Set","translations","Map","update","subscriber","clearTranslations","clear","registerTranslation","translation","forEach","t","lang","$lang","toLowerCase","set","subscribe","onChange","add","delete","isTranslationRegistered","has","resolveTranslation","langCode","langOnly","split","get","en","MutationObserver","observe","document","documentElement","attributes","attributeFilter"],"mappings":"0GAUA,MAAMA,EAAc,IAAIC,IAClBC,EAAe,IAAIC,IAEzB,SAASC,IACP,IAAK,MAAMC,KAAcL,EACvBK,aAcYC,IACdJ,EAAaK,QAMC,SAAAC,KAAuBC,GACrCA,EAAYC,SAAQC,IAClB,MAAMC,EAAOD,EAAEE,MAAMC,cACrBZ,EAAaa,IAAIH,EAAMD,MAGzBP,IAQI,SAAUY,EAAUC,GAExB,OADAjB,EAAYkB,IAAID,GACT,IAAMjB,EAAYmB,OAAOF,GAO5B,SAAUG,EAAwBR,GACtC,OAAOV,EAAamB,IAAIT,GAOpB,SAAUU,EAAmBC,GACjC,MAAMX,EAAOW,EAAST,eACfU,GAAYZ,EAAKa,MAAM,KAE9B,OAAOvB,EAAawB,IAAId,IAASV,EAAawB,IAAIF,IAAaG,EAnDhD,IAAIC,iBAAiBxB,GAC7ByB,QAAQC,SAASC,gBAAiB,CACzCC,YAAY,EACZC,gBAAiB,CAAC"}
1
+ {"version":3,"file":"translation.js","sources":["../src/localization/translation.ts"],"sourcesContent":["import en from \"./en-us.js\"\n\n// gets list of properties beginning prefix\ntype PickStartsWith<Type, Prefix extends string> = {\n [Property in keyof Type]: Property extends `${Prefix}${string}` ? Property : never\n}[keyof Type]\n\nexport type Translation = typeof en\nexport type WellKnownKeys = PickStartsWith<Translation, \"$\">\n\nconst subscribers = new Set<() => void>()\nconst translations = new Map<string, Translation>()\n\nfunction update() {\n for (const subscriber of subscribers) {\n subscriber()\n }\n}\n\n// observe changes to the document's lang\nconst observer = new MutationObserver(update)\nobserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"lang\"],\n})\n\n/**\n * Removes all registered translations\n */\nexport function clearTranslations() {\n translations.clear()\n}\n\n/**\n * Registers one or more translations\n */\nexport function registerTranslation(...translation: Translation[]) {\n translation.forEach(t => {\n const lang = t.$lang.toLowerCase()\n translations.set(lang, t)\n })\n\n update()\n}\n\n/**\n * subscribe to language changes\n * @param onChange callback for when either `lang` attr changes, or a new language is registered.\n * @returns cleanup function\n */\nexport function subscribe(onChange: () => void): () => void {\n subscribers.add(onChange)\n return () => subscribers.delete(onChange)\n}\n\n/**\n * Check whether there is a translation registered for the given lang\n * @param lang the lang code e.g. \"en\" or \"en-GB\"\n */\nexport function isTranslationRegistered(lang: string) {\n return translations.has(lang)\n}\n\n/**\n * Picks the most appropriate translation for the given language, from most specific to least specific.\n * First tries lang + region, then lang only, then fallback.\n */\nexport function resolveTranslation(langCode: string): Translation {\n const lang = langCode.toLowerCase()\n const [langOnly] = lang.split(\"-\")\n\n return translations.get(lang) || translations.get(langOnly) || en\n}\n"],"names":["subscribers","Set","translations","Map","update","subscriber","clearTranslations","clear","registerTranslation","translation","forEach","t","lang","$lang","toLowerCase","set","subscribe","onChange","add","delete","isTranslationRegistered","has","resolveTranslation","langCode","langOnly","split","get","en","MutationObserver","observe","document","documentElement","attributes","attributeFilter"],"mappings":"qIAUA,MAAMA,EAAc,IAAIC,IAClBC,EAAe,IAAIC,IAEzB,SAASC,IACP,IAAK,MAAMC,KAAcL,EACvBK,aAcYC,IACdJ,EAAaK,QAMC,SAAAC,KAAuBC,GACrCA,EAAYC,SAAQC,IAClB,MAAMC,EAAOD,EAAEE,MAAMC,cACrBZ,EAAaa,IAAIH,EAAMD,MAGzBP,IAQI,SAAUY,EAAUC,GAExB,OADAjB,EAAYkB,IAAID,GACT,IAAMjB,EAAYmB,OAAOF,GAO5B,SAAUG,EAAwBR,GACtC,OAAOV,EAAamB,IAAIT,GAOpB,SAAUU,EAAmBC,GACjC,MAAMX,EAAOW,EAAST,eACfU,GAAYZ,EAAKa,MAAM,KAE9B,OAAOvB,EAAawB,IAAId,IAASV,EAAawB,IAAIF,IAAaG,EAnDhD,IAAIC,iBAAiBxB,GAC7ByB,QAAQC,SAASC,gBAAiB,CACzCC,YAAY,EACZC,gBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nordhealth/components",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "This package includes Nord Design System web components",
5
5
  "author": "Nordhealth <support@nordhealth.design>",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -25,21 +25,22 @@
25
25
  "format": "eslint --ext .ts,.js,.html . --fix --ignore-path .gitignore && prettier \"**/*.ts\" --write --ignore-path .gitignore",
26
26
  "test": "docker-compose run --rm -e INCLUDE_VISUAL_REGRESSION test",
27
27
  "test:watch": "docker-compose run --rm -e INCLUDE_VISUAL_REGRESSION test --watch",
28
+ "test:local": "wtr --coverage --watch",
28
29
  "analyze": "custom-elements-manifest analyze --litelement",
29
30
  "scaffold": "node ./utils/scaffold.mjs"
30
31
  },
31
32
  "dependencies": {
32
33
  "@floating-ui/dom": "0.4.4",
33
- "@nordhealth/icons": "^1.3.8",
34
+ "@nordhealth/icons": "^1.3.9",
34
35
  "lit": "2.2.2",
35
36
  "tinykeys": "1.4.0"
36
37
  },
37
38
  "devDependencies": {
38
39
  "@custom-elements-manifest/analyzer": "^0.5.5",
39
- "@nordhealth/css": "^1.2.0",
40
+ "@nordhealth/css": "^1.3.0",
40
41
  "@nordhealth/fonts": "^2.0.14",
41
- "@nordhealth/themes": "^6.0.0",
42
- "@nordhealth/tokens": "^5.0.0",
42
+ "@nordhealth/themes": "^6.1.0",
43
+ "@nordhealth/tokens": "^5.1.0",
43
44
  "@open-wc/eslint-config": "^7.0.0",
44
45
  "@open-wc/testing": "3.1.3",
45
46
  "@rollup/plugin-node-resolve": "13.2.1",
@@ -147,6 +148,14 @@
147
148
  "default-case": "off",
148
149
  "@typescript-eslint/switch-exhaustiveness-check": [
149
150
  "error"
151
+ ],
152
+ "no-useless-constructor": "off",
153
+ "@typescript-eslint/no-useless-constructor": [
154
+ "error"
155
+ ],
156
+ "no-empty-function": "off",
157
+ "@typescript-eslint/no-empty-function": [
158
+ "error"
150
159
  ]
151
160
  },
152
161
  "overrides": [
@@ -168,5 +177,5 @@
168
177
  }
169
178
  ]
170
179
  },
171
- "gitHead": "d9851c88649586a75ef915f4a5fa2841524bcc61"
180
+ "gitHead": "f0834bb231514fe55e86168e4614a059d6bfaa73"
172
181
  }
@@ -1,2 +0,0 @@
1
- import{r as t}from"./lit-element-e382250e.js";const e=t`:host{all:unset;display:block;font-family:var(--n-font-family);line-height:var(--n-line-height);font-feature-settings:var(--n-font-features);text-align:start}*,::after,::before{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}`;export{e as s};
2
- //# sourceMappingURL=Component-fa316972.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Component-fa316972.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import{_ as e}from"./query-assigned-elements-ef860822.js";import{e as o}from"./property-03f59dce.js";function t(t){class r extends t{constructor(){super(...arguments),this.disabled=!1,this.value=""}get form(){return this.closest("form")||void 0}}return e([o({type:Boolean,reflect:!0})],r.prototype,"disabled",void 0),e([o()],r.prototype,"name",void 0),e([o()],r.prototype,"value",void 0),r}export{t as I};
2
- //# sourceMappingURL=InputMixin-84ca72ae.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextField-f8848f28.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}