@nordhealth/components 4.22.0 → 4.23.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.
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{default as Avatar}from"./Avatar.js";export{default as Badge}from"./Badge.js";export{default as Banner}from"./Banner.js";export{default as ButtonGroup}from"./ButtonGroup.js";export{default as Button}from"./Button.js";export{C as Calendar}from"./Calendar-B5X2WKNb.js";export{default as Card}from"./Card.js";export{default as Checkbox}from"./Checkbox.js";export{default as CommandMenu}from"./CommandMenu.js";export{default as CommandMenuAction}from"./CommandMenuAction.js";export{default as DatePicker}from"./DatePicker.js";export{default as Divider}from"./Divider.js";export{default as Drawer}from"./Drawer.js";export{default as DropdownGroup}from"./DropdownGroup.js";export{default as DropdownItem}from"./DropdownItem.js";export{default as DropdownSubmenu}from"./DropdownSubmenu.js";export{default as Dropdown}from"./Dropdown.js";export{default as EmptyState}from"./EmptyState.js";export{default as Fieldset}from"./Fieldset.js";export{default as Footer}from"./Footer.js";export{default as Header}from"./Header.js";export{default as Icon}from"./Icon.js";export{default as Input}from"./Input.js";export{default as Layout}from"./Layout.js";export{isTranslationRegistered,registerTranslation}from"./translation.js";export{default as Message}from"./Message.js";export{default as Modal,ModalCancelEvent,ModalCloseEvent}from"./Modal.js";export{default as NavGroup}from"./NavGroup.js";export{default as NavItem}from"./NavItem.js";export{N as NavToggle}from"./NavToggle-DL74d1aQ.js";export{default as Navigation}from"./Navigation.js";export{default as NotificationGroup}from"./NotificationGroup.js";export{default as Notification}from"./Notification.js";export{P as Popout}from"./Popout-vR6LxNS9.js";export{default as ProgressBar}from"./ProgressBar.js";export{default as Progress}from"./Progress.js";export{default as Qrcode}from"./Qrcode.js";export{default as Radio}from"./Radio.js";export{default as Range}from"./Range.js";export{default as SegmentedControlItem}from"./SegmentedControlItem.js";export{default as SegmentedControl}from"./SegmentedControl.js";export{default as Select}from"./Select.js";export{default as Skeleton}from"./Skeleton.js";export{default as Spinner}from"./Spinner.js";export{default as Stack}from"./Stack.js";export{default as TabGroup}from"./TabGroup.js";export{default as TabPanel}from"./TabPanel.js";export{default as Tab}from"./Tab.js";export{default as Table}from"./Table.js";export{default as TagGroup}from"./TagGroup.js";export{default as Tag}from"./Tag.js";export{default as Textarea}from"./Textarea.js";export{default as ToastGroup}from"./ToastGroup.js";export{default as Toast}from"./Toast.js";export{default as Toggle}from"./Toggle.js";export{default as Tooltip}from"./Tooltip.js";export{default as TopBar}from"./TopBar.js";export{default as VisuallyHidden}from"./VisuallyHidden.js";import"./tslib.es6-CmLYFWVC.js";import"lit";import"lit/decorators.js";import"./observe-D0n0zOfU.js";import"./fsm-Bq5jMQrK.js";import"./Component-DSU3Qp0O.js";import"lit/directives/class-map.js";import"./DirectionController-ChvNGESZ.js";import"./SlotController-Z6eG7LSZ.js";import"./EventController-BBOmvfLa.js";import"lit/directives/ref.js";import"./LightDomController-DIwtVelV.js";import"./cond-CI1KbneT.js";import"./FocusableMixin-BlQLNPdJ.js";import"./InputMixin-LetXsCyv.js";import"lit/directives/repeat.js";import"./tinykeys.module-_6MZt7MP.js";import"./collection-Dvg2XbxV.js";import"./dates-CAAlPKZi.js";import"./number-Dg2vCfGd.js";import"./LocalizeController.js";import"./en-us.js";import"./localization.js";import"./localization2.js";import"./localization3.js";import"./localization4.js";import"./localization5.js";import"./localization6.js";import"./localization7.js";import"./localization8.js";import"./localization9.js";import"./DateSelectEvent.js";import"./events-Bv6wNHwJ.js";import"./interface-checked-small-BtICPEsp.js";import"lit/directives/if-defined.js";import"./FormAssociatedMixin-B4Qj-CQN.js";import"./FormDataController-OUt5L5uC.js";import"./SizeMixin-CU9cLbLC.js";import"./FormField-BFaVzUjk.js";import"./LightDismissController-4pH8cdko.js";import"./ShortcutController-BIb3WGzH.js";import"./KeyboardController.js";import"./SelectEvent.js";import"./interface-close-small-CnpAFMO3.js";import"./TextField-B955GOhe.js";import"./date-adapter.js";import"./DropdownItem-Cp-z3XA9.js";import"lit/directives/unsafe-html.js";import"./IconManager.js";import"lit/directives/style-map.js";import"./AutocompleteMixin-D8eiOxvO.js";import"./TextSelectableMixin-Cfv__lHS.js";import"./Sticky-DqnqENYN.js";import"./ModalController.js";import"./ScrollbarController-BFC67Y2x.js";import"./NotificationMixin-DOUQsx7N.js";import"./positioning-D-K8Mueq.js";import"./LightSlotController-Coyy4nqS.js";
1
+ export{default as Avatar}from"./Avatar.js";export{default as Badge}from"./Badge.js";export{default as Banner}from"./Banner.js";export{default as ButtonGroup}from"./ButtonGroup.js";export{default as Button}from"./Button.js";export{C as Calendar}from"./Calendar-B5X2WKNb.js";export{default as Card}from"./Card.js";export{default as Checkbox}from"./Checkbox.js";export{default as CommandMenu}from"./CommandMenu.js";export{default as CommandMenuAction}from"./CommandMenuAction.js";export{default as DatePicker}from"./DatePicker.js";export{default as Divider}from"./Divider.js";export{default as Drawer}from"./Drawer.js";export{default as DropdownGroup}from"./DropdownGroup.js";export{default as DropdownItem}from"./DropdownItem.js";export{default as DropdownSubmenu}from"./DropdownSubmenu.js";export{default as Dropdown}from"./Dropdown.js";export{default as EmptyState}from"./EmptyState.js";export{default as Fieldset}from"./Fieldset.js";export{default as Footer}from"./Footer.js";export{default as Header}from"./Header.js";export{default as Icon}from"./Icon.js";export{default as Input}from"./Input.js";export{default as Layout}from"./Layout.js";export{NavOpenChangeEvent}from"./NavOpenChangeEvent.js";export{isTranslationRegistered,registerTranslation}from"./translation.js";export{default as Message}from"./Message.js";export{default as Modal,ModalCancelEvent,ModalCloseEvent}from"./Modal.js";export{default as NavGroup}from"./NavGroup.js";export{default as NavItem}from"./NavItem.js";export{N as NavToggle}from"./NavToggle-QzUt-7lX.js";export{default as Navigation}from"./Navigation.js";export{default as NotificationGroup}from"./NotificationGroup.js";export{default as Notification}from"./Notification.js";export{P as Popout}from"./Popout-vR6LxNS9.js";export{default as ProgressBar}from"./ProgressBar.js";export{default as Progress}from"./Progress.js";export{default as Qrcode}from"./Qrcode.js";export{default as Radio}from"./Radio.js";export{default as Range}from"./Range.js";export{default as SegmentedControlItem}from"./SegmentedControlItem.js";export{default as SegmentedControl}from"./SegmentedControl.js";export{default as Select}from"./Select.js";export{default as Skeleton}from"./Skeleton.js";export{default as Spinner}from"./Spinner.js";export{default as Stack}from"./Stack.js";export{default as TabGroup}from"./TabGroup.js";export{default as TabPanel}from"./TabPanel.js";export{default as Tab}from"./Tab.js";export{default as Table}from"./Table.js";export{default as TagGroup}from"./TagGroup.js";export{default as Tag}from"./Tag.js";export{default as Textarea}from"./Textarea.js";export{default as ToastGroup}from"./ToastGroup.js";export{default as Toast}from"./Toast.js";export{default as Toggle}from"./Toggle.js";export{default as Tooltip}from"./Tooltip.js";export{default as TopBar}from"./TopBar.js";export{default as VisuallyHidden}from"./VisuallyHidden.js";import"./tslib.es6-CmLYFWVC.js";import"lit";import"lit/decorators.js";import"./observe-D0n0zOfU.js";import"./fsm-Bq5jMQrK.js";import"./Component-DSU3Qp0O.js";import"lit/directives/class-map.js";import"./DirectionController-ChvNGESZ.js";import"./SlotController-Z6eG7LSZ.js";import"./EventController-BBOmvfLa.js";import"lit/directives/ref.js";import"./LightDomController-DIwtVelV.js";import"./cond-CI1KbneT.js";import"./FocusableMixin-BlQLNPdJ.js";import"./InputMixin-LetXsCyv.js";import"lit/directives/repeat.js";import"./tinykeys.module-_6MZt7MP.js";import"./collection-Dvg2XbxV.js";import"./dates-CAAlPKZi.js";import"./number-Dg2vCfGd.js";import"./LocalizeController.js";import"./en-us.js";import"./localization.js";import"./localization2.js";import"./localization3.js";import"./localization4.js";import"./localization5.js";import"./localization6.js";import"./localization7.js";import"./localization8.js";import"./localization9.js";import"./DateSelectEvent.js";import"./events-Bv6wNHwJ.js";import"./interface-checked-small-BtICPEsp.js";import"lit/directives/if-defined.js";import"./FormAssociatedMixin-B4Qj-CQN.js";import"./FormDataController-OUt5L5uC.js";import"./SizeMixin-CU9cLbLC.js";import"./FormField-BFaVzUjk.js";import"./LightDismissController-4pH8cdko.js";import"./ShortcutController-BIb3WGzH.js";import"./KeyboardController.js";import"./SelectEvent.js";import"./interface-close-small-CnpAFMO3.js";import"./TextField-B955GOhe.js";import"./date-adapter.js";import"./DropdownItem-Cp-z3XA9.js";import"lit/directives/unsafe-html.js";import"./IconManager.js";import"lit/directives/style-map.js";import"./AutocompleteMixin-D8eiOxvO.js";import"./TextSelectableMixin-Cfv__lHS.js";import"./Sticky-DqnqENYN.js";import"./ModalController.js";import"./ScrollbarController-BFC67Y2x.js";import"./NotificationMixin-DOUQsx7N.js";import"./positioning-D-K8Mueq.js";import"./LightSlotController-Coyy4nqS.js";
2
2
  //# sourceMappingURL=index.js.map
package/lib/react.d.ts CHANGED
@@ -231,7 +231,17 @@ declare module "react" {
231
231
  "nord-layout": WCProps<Components.Layout> &
232
232
  React.RefAttributes<Components.Layout> &
233
233
  React.HTMLAttributes<HTMLElement> &
234
- React.Attributes & {};
234
+ React.Attributes & {
235
+ /**
236
+ * Dispatched when the navigation open state changes, regardless of the trigger (user toggle, peek, focus, programmatic). The event's `navOpen` property contains the new state.
237
+ */
238
+ "onnav-open-change"?: (event: Event) => void;
239
+
240
+ /**
241
+ * undefined
242
+ */
243
+ onnavopen?: (event: Event) => void;
244
+ };
235
245
 
236
246
  "nord-message": WCProps<Components.Message> &
237
247
  React.RefAttributes<Components.Message> &
@@ -11,6 +11,7 @@ import { LitElement } from 'lit';
11
11
  * @slot header-end - Optional slot that positions content at the end of the header. Useful for actions or additional info.
12
12
  * @slot footer - Optional slot that holds footer content for the card.
13
13
  *
14
+ * @cssprop [--n-card-background-color=var(--n-color-surface)] - Controls the background color of the card.
14
15
  * @cssprop [--n-card-border-radius=var(--n-border-radius)] - Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).
15
16
  * @cssprop [--n-card-box-shadow=var(--n-box-shadow-popout)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).
16
17
  * @cssprop [--n-card-padding=var(--n-space-m)] - Controls the padding on all sides of the card.
@@ -22,6 +22,7 @@ export { default as Header } from './header/Header.js';
22
22
  export { default as Icon } from './icon/Icon.js';
23
23
  export { default as Input } from './input/Input.js';
24
24
  export { default as Layout } from './layout/Layout.js';
25
+ export { NavOpenChangeEvent } from './layout/NavOpenChangeEvent.js';
25
26
  export { isTranslationRegistered, registerTranslation } from './localization/translation.js';
26
27
  export type { Translation } from './localization/translation.js';
27
28
  export { default as Message } from './message/Message.js';
@@ -17,7 +17,9 @@ type NavState = States<typeof navMachine>;
17
17
  * @slot header - Used to place content inside the header section. This slot can be made sticky by utilizing the `sticky` property on the layout component.
18
18
  * @slot footer - Used to place content inside the footer section. This slot can be made sticky by utilizing the `stickyFooter` property on the layout component.
19
19
  * @slot drawer - Used to place additional content/details relating to a selected item.
20
- * @slot nav-toggle - Used to place a own nav-toggle component, for cases where you might need to add a tooltip.
20
+ * @slot nav-toggle - Used to place a own nav-toggle component, for cases where you might need to add a tooltip. As an alternative, `<nord-nav-toggle>` can be placed anywhere inside `<nord-layout>` (e.g. inside a `<nord-header>`) — the layout listens for clicks and hover on any descendant `<nord-nav-toggle>` and drives toggle / peek behaviour accordingly. When using that placement, set `hide-default-nav-toggle` to suppress the layout's built-in fallback toggle.
21
+ *
22
+ * @fires {NavOpenChangeEvent} nav-open-change - Dispatched when the navigation open state changes, regardless of the trigger (user toggle, peek, focus, programmatic). The event's `navOpen` property contains the new state.
21
23
  *
22
24
  * @cssprop [--n-layout-padding=var(--n-space-l)] - Controls the padding around the main layout area (the main slot), using our [spacing tokens](/tokens/#space).
23
25
  * @cssprop [--n-layout-drawer-inline-size=320px] - Controls the width of the drawer area, when used.
@@ -83,12 +85,20 @@ export default class Layout extends LitElement {
83
85
  * Controls whether the layout's footer has sticky positioning.
84
86
  */
85
87
  stickyFooter: boolean;
88
+ /**
89
+ * Suppresses the built-in `<nord-nav-toggle>` rendered as the fallback for
90
+ * the `nav-toggle` slot. Set this when you've placed your own
91
+ * `<nord-nav-toggle>` elsewhere inside the layout (e.g. inside
92
+ * `<nord-header>`) and want the layout's default one hidden.
93
+ */
94
+ hideDefaultNavToggle: boolean;
86
95
  /**
87
96
  * A getter whose values reflects whether the layout component considers the viewport to be narrow or not.
88
97
  * A narrow viewport is considered to be less than 768px wide.
89
98
  */
90
99
  get isNarrow(): boolean;
91
100
  connectedCallback(): void;
101
+ disconnectedCallback(): void;
92
102
  willUpdate(): void;
93
103
  render(): import("lit").TemplateResult<1>;
94
104
  private renderNavToggle;
@@ -103,6 +113,9 @@ export default class Layout extends LitElement {
103
113
  private handleDropdownClose;
104
114
  private handleMediaQueryChange;
105
115
  private handleToggleClick;
116
+ private handleHostClick;
117
+ private handleHostMouseOver;
118
+ private handleHostMouseOut;
106
119
  private handleNavFocus;
107
120
  private handleMainFocus;
108
121
  private handleMouseEnter;
@@ -0,0 +1,20 @@
1
+ import { NordEvent } from '../common/events.js';
2
+ /**
3
+ * Event dispatched when the layout's navigation open state changes.
4
+ * The `navOpen` property contains the new state — `true` when opened, `false` when closed.
5
+ */
6
+ export declare class NavOpenChangeEvent extends NordEvent {
7
+ navOpen: boolean;
8
+ constructor(navOpen: boolean);
9
+ }
10
+ declare global {
11
+ interface HTMLElementEventMap {
12
+ 'nav-open-change': NavOpenChangeEvent;
13
+ }
14
+ interface DocumentEventMap {
15
+ 'nav-open-change': NavOpenChangeEvent;
16
+ }
17
+ interface WindowEventMap {
18
+ 'nav-open-change': NavOpenChangeEvent;
19
+ }
20
+ }
@@ -4,8 +4,21 @@ import '../visually-hidden/VisuallyHidden.js';
4
4
  declare const NavToggle_base: (new (...args: any[]) => import("../common/mixins/FocusableMixin.js").FocusableMixinInterface) & typeof LitElement;
5
5
  /**
6
6
  * Nav toggle is meant for hiding and showing the primary navigation.
7
- * This component is used internally in the Layout component, but can also be
8
- * used separate to further customize the behavior.
7
+ *
8
+ * Used internally by `<nord-layout>` as the default contents of its
9
+ * `nav-toggle` slot. Can also be placed **anywhere inside `<nord-layout>`**
10
+ * (e.g. inside a `<nord-header>` next to the page title) — the layout
11
+ * listens for clicks on any descendant `<nord-nav-toggle>` and toggles the
12
+ * navigation accordingly. Outside of a `<nord-layout>` it renders as a
13
+ * presentational button with no behaviour.
14
+ *
15
+ * The two displayed icons can be customised via the `icon` and
16
+ * `icon-active` attributes. The first is shown in the resting state; the
17
+ * second replaces it on hover/focus (≥ 768px).
18
+ *
19
+ * Set `auto-hide` to have the toggle disappear automatically when the
20
+ * ancestor `<nord-layout>`'s nav is open (on wide viewports), mirroring
21
+ * the built-in fallback toggle's behaviour.
9
22
  *
10
23
  * @status ready
11
24
  * @category action
@@ -16,6 +29,34 @@ export default class NavToggle extends NavToggle_base {
16
29
  static styles: import("lit").CSSResult[];
17
30
  private direction;
18
31
  private localization;
32
+ private layoutObserver?;
33
+ private observedLayout?;
34
+ /**
35
+ * Icon shown in the resting state. Accepts any registered icon name.
36
+ * Defaults to `navigation-toggle`.
37
+ */
38
+ icon: string;
39
+ /**
40
+ * Icon shown on hover/focus (≥ 768px), swapping in for `icon`.
41
+ * Defaults to `navigation-toggle-lock`.
42
+ */
43
+ iconActive: string;
44
+ /**
45
+ * When set, the toggle finds its ancestor `<nord-layout>` and hides
46
+ * itself on wide viewports while the layout's nav is open. Useful when
47
+ * placing the toggle outside the `nav-toggle` slot.
48
+ */
49
+ autoHide: boolean;
50
+ /**
51
+ * Reflects whether `auto-hide` is engaged (i.e. the ancestor layout
52
+ * currently has `nav-open`). The CSS hides the host based on this.
53
+ */
54
+ private autoHidden;
55
+ connectedCallback(): void;
56
+ disconnectedCallback(): void;
57
+ protected updated(changed: Map<string, unknown>): void;
58
+ private startAutoHide;
59
+ private stopAutoHide;
19
60
  render(): import("lit").TemplateResult<1>;
20
61
  }
21
62
  declare global {
package/lib/vue.d.ts CHANGED
@@ -183,7 +183,19 @@ interface NordComponents {
183
183
  }
184
184
  >;
185
185
 
186
- "nord-layout": DefineComponent<WCProps<Components.Layout> & {}>;
186
+ "nord-layout": DefineComponent<
187
+ WCProps<Components.Layout> & {
188
+ /**
189
+ * Dispatched when the navigation open state changes, regardless of the trigger (user toggle, peek, focus, programmatic). The event's `navOpen` property contains the new state.
190
+ */
191
+ onNavOpenChange?: (event: Event) => void;
192
+
193
+ /**
194
+ * undefined
195
+ */
196
+ onNavOpen?: (event: Event) => void;
197
+ }
198
+ >;
187
199
 
188
200
  "nord-message": DefineComponent<WCProps<Components.Message> & {}>;
189
201
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nordhealth/components",
3
3
  "type": "module",
4
- "version": "4.22.0",
4
+ "version": "4.23.0",
5
5
  "description": "This package includes Nord Design System Web Components",
6
6
  "author": "Nordhealth <support@nordhealth.design>",
7
7
  "license": "SEE LICENSE IN LICENSE.md",
@@ -90,5 +90,5 @@
90
90
  "rollup": "~4.21.3"
91
91
  }
92
92
  },
93
- "gitHead": "f30db0e9e434f11b54c922087413b87c3387e13e"
93
+ "gitHead": "df121438147c1ac6d71e645a1c877409899fa22c"
94
94
  }
@@ -1,2 +0,0 @@
1
- import{_ as o}from"./tslib.es6-CmLYFWVC.js";import{css as t,html as n,LitElement as i}from"lit";import{customElement as r}from"lit/decorators.js";import{classMap as e}from"lit/directives/class-map.js";import{ref as l}from"lit/directives/ref.js";import{D as s}from"./DirectionController-ChvNGESZ.js";import{F as a}from"./FocusableMixin-BlQLNPdJ.js";import{s as c}from"./Component-DSU3Qp0O.js";import m from"./Icon.js";import{LocalizeController as g}from"./LocalizeController.js";import"./Button.js";import"./VisuallyHidden.js";const d="navigation-toggle-lock";var v=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m19.7188 10.71-8 8-1.41-1.41 7.29-7.29-7.3-7.29996 1.41-1.41 8 8c.39.39.39 1.01996 0 1.40996zm-8-1.40996-7.99997-8.01-1.41 1.41 7.29 7.29-7.3 7.29996 1.41 1.41 8.00997-7.99c.39-.39.39-1.01996 0-1.40996z" fill="currentColor"/></svg>',tags:"nordicon navigation hamburger menu toggle navigation arrow right double lock triangle chevron",title:d});const h="navigation-toggle";var p=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m18.9988 3v2h-16.00002v-2zm-16.00002 8h16.00002v-2h-16.00002zm0 6h16.00002v-2h-16.00002z" fill="currentColor"/></svg>',tags:"nordicon navigation hamburger menu toggle navigation three lines",title:h});const u=t`:host{color:var(--n-color-icon);display:inline-flex}nord-button{--n-button-color:currentColor}nord-icon{display:block;transform:translateX(-1px);color:currentColor}nord-icon[name=navigation-toggle-lock]{display:none}.is-rtl nord-icon[name=navigation-toggle-lock]{transform:rotate(180deg)}@media (min-width:768px){:host(:is(:hover,:focus-within)) nord-icon[name=navigation-toggle-lock]{display:block}:host(:is(:hover,:focus-within)) nord-icon[name=navigation-toggle]{display:none}}`;m.registerIcon(p),m.registerIcon(v);let f=class extends(a(i)){constructor(){super(...arguments),this.direction=new s(this),this.localization=new g(this)}render(){return n`<nord-button variant="plain" ${l(this.focusableRef)} class="${e({"is-rtl":this.direction.isRTL})}"><nord-visually-hidden>${this.localization.term("label")}</nord-visually-hidden><nord-icon size="m" name="${h}"></nord-icon><nord-icon size="m" name="${d}"></nord-icon></nord-button>`}};f.styles=[c,u],f=o([r("nord-nav-toggle")],f);var w=f;export{w as N,v as l};
2
- //# sourceMappingURL=NavToggle-DL74d1aQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavToggle-DL74d1aQ.js","sources":["../../icons/lib/assets/navigation-toggle-lock.js","../../icons/lib/assets/navigation-toggle.js","../src/nav-toggle/NavToggle.ts"],"sourcesContent":["export default '<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m19.7188 10.71-8 8-1.41-1.41 7.29-7.29-7.3-7.29996 1.41-1.41 8 8c.39.39.39 1.01996 0 1.40996zm-8-1.40996-7.99997-8.01-1.41 1.41 7.29 7.29-7.3 7.29996 1.41 1.41 8.00997-7.99c.39-.39.39-1.01996 0-1.40996z\" fill=\"currentColor\"/></svg>';\nexport const title = \"navigation-toggle-lock\";\nexport const tags =\n \"nordicon navigation hamburger menu toggle navigation arrow right double lock triangle chevron\";\n","export default '<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m18.9988 3v2h-16.00002v-2zm-16.00002 8h16.00002v-2h-16.00002zm0 6h16.00002v-2h-16.00002z\" fill=\"currentColor\"/></svg>';\nexport const title = \"navigation-toggle\";\nexport const tags =\n \"nordicon navigation hamburger menu toggle navigation three lines\";\n","import * as lockIcon from '@nordhealth/icons/lib/assets/navigation-toggle-lock.js'\nimport * as unlockIcon from '@nordhealth/icons/lib/assets/navigation-toggle.js'\nimport { html, LitElement } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ref } from 'lit/directives/ref.js'\n\nimport { DirectionController } from '../common/controllers/DirectionController.js'\nimport { FocusableMixin } from '../common/mixins/FocusableMixin.js'\nimport componentStyle from '../common/styles/Component.css'\n\nimport Icon from '../icon/Icon.js'\nimport { LocalizeController } from '../localization/LocalizeController.js'\nimport style from './NavToggle.css'\n\nimport '../button/Button.js'\nimport '../visually-hidden/VisuallyHidden.js'\n\nIcon.registerIcon(unlockIcon)\nIcon.registerIcon(lockIcon)\n\n/**\n * Nav toggle is meant for hiding and showing the primary navigation.\n * This component is used internally in the Layout component, but can also be\n * used separate to further customize the behavior.\n *\n * @status ready\n * @category action\n *\n * @localization label - Accessible label for the nav toggle button.\n */\n@customElement('nord-nav-toggle')\nexport default class NavToggle extends FocusableMixin(LitElement) {\n static styles = [componentStyle, style]\n\n private direction = new DirectionController(this)\n private localization = new LocalizeController<'nord-nav-toggle'>(this)\n\n render() {\n return html`\n <nord-button variant=\"plain\" ${ref(this.focusableRef)} class=${classMap({ 'is-rtl': this.direction.isRTL })}>\n <nord-visually-hidden>${this.localization.term('label')}</nord-visually-hidden>\n <nord-icon size=\"m\" name=${unlockIcon.title}></nord-icon>\n <nord-icon size=\"m\" name=${lockIcon.title}></nord-icon>\n </nord-button>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nord-nav-toggle': NavToggle\n }\n}\n"],"names":["title","Icon","registerIcon","unlockIcon","lockIcon","NavToggle","FocusableMixin","LitElement","constructor","this","direction","DirectionController","localization","LocalizeController","render","html","ref","focusableRef","classMap","isRTL","term","unlockIcon.title","lockIcon.title","styles","componentStyle","style","__decorate","customElement"],"mappings":"8gBACO,MAAMA,EAAQ,qEADN,oTAGb,0GCFK,MAAMA,EAAQ,gEADN,kMAGb,yjBCeFC,EAAKC,aAAaC,GAClBF,EAAKC,aAAaE,GAaH,IAAMC,EAAN,cAAwBC,EAAeC,IAAvC,WAAAC,uBAGLC,KAAAC,UAAY,IAAIC,EAAoBF,MACpCA,KAAAG,aAAe,IAAIC,EAAsCJ,KAWlE,CATC,MAAAK,GACE,OAAOC,CAAI,gCACsBC,EAAIP,KAAKQ,wBAAuBC,EAAS,CAAE,SAAUT,KAAKC,UAAUS,kCACzEV,KAAKG,aAAaQ,KAAK,4DACpBC,4CACAC,+BAGhC,GAbMjB,EAAAkB,OAAS,CAACC,EAAgBC,GADdpB,EAASqB,EAAA,CAD7BC,EAAc,oBACMtB,SAAAA"}