@nordhealth/components 4.22.0 → 4.24.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{NavResizeEvent}from"./NavResizeEvent.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-BQmkNgCI.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
@@ -1,2 +1,2 @@
1
- var e=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m18.9985 5.35769-9.8419 10.83221c-.27855.3095-.68088.4952-1.11417.5107h-.03095c-.41782 0-.80469-.1548-1.0987-.4488l-5.91132-5.9113 2.18193-2.1819 4.76619 4.7662 8.75862-9.62524 2.2903 2.08908z" fill="currentColor"/></svg>',tags:"nordicon interface checked small symbol checkmark done ready",title:"interface-checked-small"});export{e as c};
2
- //# sourceMappingURL=interface-checked-small-BtICPEsp.js.map
1
+ var e=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m18.9985 5.35769-9.8419 10.83221c-.27855.3095-.68088.4952-1.11417.5107h-.03095c-.41782 0-.80469-.1548-1.0987-.4488l-5.91132-5.9113 2.18193-2.1819 4.76619 4.7662 8.75862-9.62524 2.2903 2.08908z" fill="currentColor"/></svg>',tags:"nordicon interface checked small symbol checkmark done ready square",title:"interface-checked-small"});export{e as c};
2
+ //# sourceMappingURL=interface-checked-small-BQmkNgCI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface-checked-small-BtICPEsp.js","sources":["../../icons/lib/assets/interface-checked-small.js"],"sourcesContent":["export default '<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m18.9985 5.35769-9.8419 10.83221c-.27855.3095-.68088.4952-1.11417.5107h-.03095c-.41782 0-.80469-.1548-1.0987-.4488l-5.91132-5.9113 2.18193-2.1819 4.76619 4.7662 8.75862-9.62524 2.2903 2.08908z\" fill=\"currentColor\"/></svg>';\nexport const title = \"interface-checked-small\";\nexport const tags =\n \"nordicon interface checked small symbol checkmark done ready\";\n"],"names":[],"mappings":"4CAAe,0SAGb,qEAFmB"}
1
+ {"version":3,"file":"interface-checked-small-BQmkNgCI.js","sources":["../../icons/lib/assets/interface-checked-small.js"],"sourcesContent":["export default '<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m18.9985 5.35769-9.8419 10.83221c-.27855.3095-.68088.4952-1.11417.5107h-.03095c-.41782 0-.80469-.1548-1.0987-.4488l-5.91132-5.9113 2.18193-2.1819 4.76619 4.7662 8.75862-9.62524 2.2903 2.08908z\" fill=\"currentColor\"/></svg>';\nexport const title = \"interface-checked-small\";\nexport const tags =\n \"nordicon interface checked small symbol checkmark done ready square\";\n"],"names":[],"mappings":"4CAAe,0SAGb,4EAFmB"}
package/lib/react.d.ts CHANGED
@@ -231,7 +231,27 @@ 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
+ * Dispatched when the navigation sidebar width changes. The event's `width` property contains the new width in pixels.
242
+ */
243
+ "onnav-resize"?: (event: Event) => void;
244
+
245
+ /**
246
+ * undefined
247
+ */
248
+ onnavopen?: (event: Event) => void;
249
+
250
+ /**
251
+ * undefined
252
+ */
253
+ onnavwidth?: (event: Event) => void;
254
+ };
235
255
 
236
256
  "nord-message": WCProps<Components.Message> &
237
257
  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,8 @@ 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';
26
+ export { NavResizeEvent } from './layout/NavResizeEvent.js';
25
27
  export { isTranslationRegistered, registerTranslation } from './localization/translation.js';
26
28
  export type { Translation } from './localization/translation.js';
27
29
  export { default as Message } from './message/Message.js';
@@ -17,7 +17,10 @@ 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.
23
+ * @fires {NavResizeEvent} nav-resize - Dispatched when the navigation sidebar width changes. The event's `width` property contains the new width in pixels.
21
24
  *
22
25
  * @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
26
  * @cssprop [--n-layout-drawer-inline-size=320px] - Controls the width of the drawer area, when used.
@@ -83,17 +86,25 @@ export default class Layout extends LitElement {
83
86
  * Controls whether the layout's footer has sticky positioning.
84
87
  */
85
88
  stickyFooter: boolean;
89
+ /**
90
+ * Suppresses the built-in `<nord-nav-toggle>` rendered as the fallback for
91
+ * the `nav-toggle` slot. Set this when you've placed your own
92
+ * `<nord-nav-toggle>` elsewhere inside the layout (e.g. inside
93
+ * `<nord-header>`) and want the layout's default one hidden.
94
+ */
95
+ hideDefaultNavToggle: boolean;
86
96
  /**
87
97
  * A getter whose values reflects whether the layout component considers the viewport to be narrow or not.
88
98
  * A narrow viewport is considered to be less than 768px wide.
89
99
  */
90
100
  get isNarrow(): boolean;
91
101
  connectedCallback(): void;
102
+ disconnectedCallback(): void;
92
103
  willUpdate(): void;
93
104
  render(): import("lit").TemplateResult<1>;
94
105
  private renderNavToggle;
95
106
  private renderNavCollapse;
96
- protected handleNavWidthChange(): void;
107
+ protected handleNavWidthChange(prev: number): void;
97
108
  protected handleNavStateChange(prev: NavState): void;
98
109
  protected handleOpenChange(prev: boolean): void;
99
110
  private navTransition;
@@ -103,6 +114,9 @@ export default class Layout extends LitElement {
103
114
  private handleDropdownClose;
104
115
  private handleMediaQueryChange;
105
116
  private handleToggleClick;
117
+ private handleHostClick;
118
+ private handleHostMouseOver;
119
+ private handleHostMouseOut;
106
120
  private handleNavFocus;
107
121
  private handleMainFocus;
108
122
  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
+ }
@@ -0,0 +1,20 @@
1
+ import { NordEvent } from '../common/events.js';
2
+ /**
3
+ * Event dispatched when the layout's navigation sidebar width changes.
4
+ * The `width` property contains the new width in pixels.
5
+ */
6
+ export declare class NavResizeEvent extends NordEvent {
7
+ width: number;
8
+ constructor(width: number);
9
+ }
10
+ declare global {
11
+ interface HTMLElementEventMap {
12
+ 'nav-resize': NavResizeEvent;
13
+ }
14
+ interface DocumentEventMap {
15
+ 'nav-resize': NavResizeEvent;
16
+ }
17
+ interface WindowEventMap {
18
+ 'nav-resize': NavResizeEvent;
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,29 @@ 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
+ * Dispatched when the navigation sidebar width changes. The event's `width` property contains the new width in pixels.
195
+ */
196
+ onNavResize?: (event: Event) => void;
197
+
198
+ /**
199
+ * undefined
200
+ */
201
+ onNavOpen?: (event: Event) => void;
202
+
203
+ /**
204
+ * undefined
205
+ */
206
+ onNavWidth?: (event: Event) => void;
207
+ }
208
+ >;
187
209
 
188
210
  "nord-message": DefineComponent<WCProps<Components.Message> & {}>;
189
211
 
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.24.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",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@floating-ui/dom": "^1.7.5",
40
- "@nordhealth/icons": "^3.15.5",
40
+ "@nordhealth/icons": "^3.16.0",
41
41
  "lit": "^3.3.2",
42
42
  "qr": "^0.4.2",
43
43
  "tinykeys": "^1.4.0"
@@ -90,5 +90,5 @@
90
90
  "rollup": "~4.21.3"
91
91
  }
92
92
  },
93
- "gitHead": "f30db0e9e434f11b54c922087413b87c3387e13e"
93
+ "gitHead": "23ca3a3ba3188933d888210c55252556c62a6615"
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"}