@nordhealth/components 5.0.1 → 5.0.3

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 (49) hide show
  1. package/custom-elements.json +20491 -20303
  2. package/lib/Aside.js +1 -1
  3. package/lib/AsideDrawer.js +2 -2
  4. package/lib/AsideDrawer.js.map +1 -1
  5. package/lib/AsideTrigger.js +2 -2
  6. package/lib/AsideTrigger.js.map +1 -1
  7. package/lib/Button.js +2 -2
  8. package/lib/Button.js.map +1 -1
  9. package/lib/CommandMenu.js +1 -1
  10. package/lib/DatePicker.js +1 -1
  11. package/lib/DateRangePicker.js +1 -1
  12. package/lib/FilterDateRange.js +1 -1
  13. package/lib/FilterDropdown.js +1 -1
  14. package/lib/Header.js +1 -1
  15. package/lib/Header.js.map +1 -1
  16. package/lib/IconManager.js +1 -1
  17. package/lib/Input.js +1 -1
  18. package/lib/KeyboardController.js +1 -1
  19. package/lib/KeyboardController.js.map +1 -1
  20. package/lib/Layout.js +1 -1
  21. package/lib/Layout.js.map +1 -1
  22. package/lib/NavItem.js +1 -1
  23. package/lib/NavItem.js.map +1 -1
  24. package/lib/Navigation.js +1 -1
  25. package/lib/Navigation.js.map +1 -1
  26. package/lib/Range.js +1 -1
  27. package/lib/SegmentedControlItem.js +1 -1
  28. package/lib/ShortcutController-CV5b0BZl.js.map +1 -1
  29. package/lib/TextField-BYSciLeB.js +2 -0
  30. package/lib/TextField-BYSciLeB.js.map +1 -0
  31. package/lib/Textarea.js +1 -1
  32. package/lib/TimePicker.js +1 -1
  33. package/lib/bundle.js +18 -18
  34. package/lib/bundle.js.map +1 -1
  35. package/lib/focus-Dsbrvxj1.js +2 -0
  36. package/lib/focus-Dsbrvxj1.js.map +1 -0
  37. package/lib/index.js +1 -1
  38. package/lib/src/aside-trigger/AsideTrigger.d.ts +28 -2
  39. package/lib/src/button/Button.d.ts +6 -0
  40. package/lib/src/command-menu/ICommandMenuAction.d.ts +11 -0
  41. package/lib/src/common/controllers/BroadcastChannelController.d.ts +15 -0
  42. package/lib/src/common/focus.d.ts +10 -0
  43. package/lib/src/nav-item/NavItem.d.ts +22 -0
  44. package/lib/src/navigation/Navigation.d.ts +18 -0
  45. package/package.json +8 -8
  46. package/lib/TextField-CSKvieoG.js +0 -2
  47. package/lib/TextField-CSKvieoG.js.map +0 -1
  48. package/lib/focus-D8oSvIcN.js +0 -2
  49. package/lib/focus-D8oSvIcN.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ function t(e){var n;return(null===(n=e.activeElement)||void 0===n?void 0:n.shadowRoot)?t(e.activeElement.shadowRoot):e.activeElement||void 0}function e(t){if(!t)return!1;const e=t.tagName;return"INPUT"===e||"TEXTAREA"===e||"SELECT"===e||t.isContentEditable}export{t as g,e as i};
2
+ //# sourceMappingURL=focus-Dsbrvxj1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-Dsbrvxj1.js","sources":["../src/common/focus.ts"],"sourcesContent":["/**\n * Gets the currently focused element, taking shadow roots into account.\n */\nexport function getFocusedElement(root: Document | ShadowRoot): Element | undefined {\n if (root.activeElement?.shadowRoot) {\n return getFocusedElement(root.activeElement.shadowRoot)\n }\n\n return root.activeElement || undefined\n}\n\n/**\n * Returns `true` when the element is one the user types into: a native form\n * field (`input`, `textarea`, `select`) or a `contenteditable` region.\n *\n * Pair with `getFocusedElement(document)` to resolve the deep active element\n * through shadow roots first, so Nord's own inputs (e.g. `nord-input`) are\n * detected via their inner native field. Used to suppress global shortcuts\n * while the user is editing text.\n */\nexport function isEditableElement(element: Element | null | undefined): boolean {\n if (!element) {\n return false\n }\n\n const tagName = element.tagName\n if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {\n return true\n }\n\n return (element as HTMLElement).isContentEditable\n}\n"],"names":["getFocusedElement","root","activeElement","_a","shadowRoot","undefined","isEditableElement","element","tagName","isContentEditable"],"mappings":"AAGM,SAAUA,EAAkBC,SAChC,OAAwB,UAApBA,EAAKC,qBAAe,IAAAC,OAAA,EAAAA,EAAAC,YACfJ,EAAkBC,EAAKC,cAAcE,YAGvCH,EAAKC,oBAAiBG,CAC/B,CAWM,SAAUC,EAAkBC,GAChC,IAAKA,EACH,OAAO,EAGT,MAAMC,EAAUD,EAAQC,QACxB,MAAgB,UAAZA,GAAmC,aAAZA,GAAsC,WAAZA,GAI7CD,EAAwBE,iBAClC"}
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{default as Accordion,AccordionChangeEvent}from"./Accordion.js";export{default as AccordionHeader}from"./AccordionHeader.js";export{default as AccordionItem}from"./AccordionItem.js";export{default as AccordionPanel}from"./AccordionPanel.js";export{default as AccordionTrigger}from"./AccordionTrigger.js";export{default as AsideDrawer,AsideDrawerWidthChangeEvent}from"./AsideDrawer.js";export{default as AsideTrigger}from"./AsideTrigger.js";export{default as Aside,AsideActiveDrawerChangeEvent,AsideDrawerCloseEvent,AsideDrawerOpenEvent,AsideDrawerResizeEvent,AsideHandleModeChangeEvent}from"./Aside.js";export{default as Autocomplete}from"./Autocomplete.js";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-D47b20IT.js";export{DateRangeSelectEvent}from"./DateRangeSelectEvent.js";export{DateSelectEvent}from"./DateSelectEvent.js";export{default as Card}from"./Card.js";export{default as Checkbox}from"./Checkbox.js";export{default as Collapsible,CollapsibleToggleEvent}from"./Collapsible.js";export{default as CollapsiblePanel}from"./CollapsiblePanel.js";export{default as CollapsibleTrigger}from"./CollapsibleTrigger.js";export{default as Combobox}from"./Combobox.js";export{default as ComboboxGroup}from"./ComboboxGroup.js";export{default as ComboboxOption}from"./ComboboxOption.js";export{default as CommandMenu}from"./CommandMenu.js";export{default as CommandMenuAction}from"./CommandMenuAction.js";export{default as DatePicker}from"./DatePicker.js";export{DateRangeChangeEvent}from"./DateRangeChangeEvent.js";export{default as DateRangePicker}from"./DateRangePicker.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 Field}from"./Field.js";export{default as FieldContent}from"./FieldContent.js";export{default as FieldDescription}from"./FieldDescription.js";export{default as FieldError}from"./FieldError.js";export{default as FieldGroup}from"./FieldGroup.js";export{default as FieldLabel}from"./FieldLabel.js";export{default as FieldLegend}from"./FieldLegend.js";export{default as FieldSeparator}from"./FieldSeparator.js";export{default as FieldSet}from"./FieldSet.js";export{default as FieldTitle}from"./FieldTitle.js";export{default as Fieldset}from"./Fieldset2.js";export{default as FilterAddButton}from"./FilterAddButton.js";export{default as FilterBar}from"./FilterBar.js";export{default as FilterDateRange}from"./FilterDateRange.js";export{default as FilterDropdown}from"./FilterDropdown.js";export{default as FilterField}from"./FilterField.js";export{default as FilterInput}from"./FilterInput.js";export{default as FilterResetButton}from"./FilterResetButton.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 Item}from"./Item.js";export{default as ItemActions}from"./ItemActions.js";export{default as ItemContent}from"./ItemContent.js";export{default as ItemDescription}from"./ItemDescription.js";export{default as ItemFooter}from"./ItemFooter.js";export{default as ItemGroup}from"./ItemGroup.js";export{default as ItemHeader}from"./ItemHeader.js";export{default as ItemMedia}from"./ItemMedia.js";export{default as ItemSeparator}from"./ItemSeparator.js";export{default as ItemTitle}from"./ItemTitle.js";export{default as Kbd}from"./Kbd.js";export{default as KbdGroup}from"./KbdGroup.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 Meter}from"./Meter.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-ROsuaJkW.js";export{default as Navigation}from"./Navigation.js";export{default as NotificationGroup}from"./NotificationGroup.js";export{default as Notification}from"./Notification.js";export{getCurrencySymbol,resolveCurrencyPlacement}from"./currency.js";export{default as NumberField}from"./NumberField.js";export{default as OtpField}from"./OtpField.js";export{NordOutlineChangeEvent,default as Outline}from"./Outline.js";export{default as OutlineItem}from"./OutlineItem.js";export{ELLIPSIS,paginate}from"./paginate.js";export{default as Pagination}from"./Pagination.js";export{default as PaginationContent}from"./PaginationContent.js";export{default as PaginationEllipsis}from"./PaginationEllipsis.js";export{default as PaginationItem}from"./PaginationItem.js";export{default as PaginationLink}from"./PaginationLink.js";export{default as PaginationNext}from"./PaginationNext.js";export{default as PaginationPrevious}from"./PaginationPrevious.js";export{P as Popout}from"./Popout-B6Hirj3y.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 ScrollArea}from"./ScrollArea.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 TimePicker}from"./TimePicker.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 Truncate}from"./Truncate.js";export{default as VisuallyHidden}from"./VisuallyHidden.js";export{ComboboxClearEvent,ComboboxCreateEvent}from"./ComboboxEvents.js";export{FilterAddButtonSelectEvent}from"./FilterAddButtonEvents.js";export{FilterDateRangeChangeEvent,FilterDateRangeClearEvent,FilterDateRangeRemoveEvent}from"./FilterDateRangeEvents.js";export{FilterDropdownChangeEvent,FilterDropdownClearEvent,FilterDropdownLoadMoreEvent,FilterDropdownRemoveEvent,FilterDropdownSearchChangeEvent}from"./FilterDropdownEvents.js";export{FilterFieldClearEvent,FilterFieldRemoveEvent}from"./FilterFieldEvents.js";export{NumberFieldChangeEvent}from"./NumberFieldEvents.js";export{OtpFieldCompleteEvent,OtpFieldInvalidEvent}from"./OtpFieldEvents.js";import"./tslib.es6-CmLYFWVC.js";import"lit";import"lit/decorators.js";import"./DirectionController-ChvNGESZ.js";import"./number-Dg2vCfGd.js";import"./observe-D0n0zOfU.js";import"./events-Bv6wNHwJ.js";import"./light-dom-styles-DXsbiKU9.js";import"./DraftComponentMixin-4qug5Rky.js";import"./CollapseController-BtKNFNyJ.js";import"./StateAttributesController-BIh96sXZ.js";import"./FocusableWhenDisabledController-C_Mn1mfN.js";import"./storage-CGZ-YX4-.js";import"./Component-BJ5O5n8k.js";import"./SlotController-Z6eG7LSZ.js";import"./EventController-BBOmvfLa.js";import"lit/directives/class-map.js";import"./focus-D8oSvIcN.js";import"./Combobox-DBxXlbY7.js";import"./ComboboxBase.js";import"./ActiveDescendantController-BnMqM79O.js";import"./interface-close-small-CnpAFMO3.js";import"./interface-dropdown-small-CYvgxudU.js";import"lit/directives/if-defined.js";import"lit/directives/ref.js";import"lit/directives/repeat.js";import"lit/directives/style-map.js";import"lit/directives/unsafe-html.js";import"./collection-Dvg2XbxV.js";import"./FormDataController-OUt5L5uC.js";import"./LightDismissController-wcL1ziJa.js";import"./ShortcutController-CV5b0BZl.js";import"./tinykeys-DwvDXsEb.js";import"./ResizeController-14PUwRQy.js";import"./cond-CI1KbneT.js";import"./AutocompleteMixin-D8eiOxvO.js";import"./FieldControlMixin-BXNZJXu9.js";import"./context-consumer-BJVUulGf.js";import"./context-request-event-CCRlXoeR.js";import"./field-context.js";import"./create-context-CJ69ntlY.js";import"./InputMixin-LetXsCyv.js";import"./SizeMixin-CU9cLbLC.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"./localization10.js";import"./localization11.js";import"./localization12.js";import"./localization13.js";import"./localization14.js";import"./localization15.js";import"./localization16.js";import"./localization17.js";import"./localization18.js";import"./localization19.js";import"./localization20.js";import"./localization21.js";import"./localization22.js";import"./localization23.js";import"./localization24.js";import"./fsm-Bq5jMQrK.js";import"./LightDomController-DIwtVelV.js";import"./FocusableMixin-BlQLNPdJ.js";import"./dates-C-ZvzXaC.js";import"./interface-checked-small-BQmkNgCI.js";import"./interface-remove-small-DUaWSs90.js";import"./FormAssociatedMixin-D9aPREgv.js";import"./FormField-CMgEFZCK.js";import"./context-provider-D8lrPLVi.js";import"./interface-add-small-B-hv2v9J.js";import"./combobox-context.js";import"./KeyboardController.js";import"./SelectEvent.js";import"./interface-calendar-Cw2bJfbS.js";import"./ReadonlyMixin-BdJPGtQ3.js";import"./TextField-CSKvieoG.js";import"./date-adapter.js";import"./OpenStateController-CCnZ7up6.js";import"./DropdownItem-BYbOLth6.js";import"./interface-filter-CCsx9-u6.js";import"./navigation-search-CBbIGzo2.js";import"./filter-chip-C97zd4PT.js";import"./interface-close-BvKnv9eh.js";import"./IconManager.js";import"./TextSelectableMixin-Cfv__lHS.js";import"./Sticky-CZImMrGj.js";import"./ModalController.js";import"./ScrollbarController-BFC67Y2x.js";import"./nav-context.js";import"./NotificationMixin-DOUQsx7N.js";import"./format.js";import"./parse.js";import"./validate.js";import"./primitives-Dj0vyf1-.js";import"./positioning-D-K8Mueq.js";import"./LightSlotController-Coyy4nqS.js";
1
+ export{default as Accordion,AccordionChangeEvent}from"./Accordion.js";export{default as AccordionHeader}from"./AccordionHeader.js";export{default as AccordionItem}from"./AccordionItem.js";export{default as AccordionPanel}from"./AccordionPanel.js";export{default as AccordionTrigger}from"./AccordionTrigger.js";export{default as AsideDrawer,AsideDrawerWidthChangeEvent}from"./AsideDrawer.js";export{default as AsideTrigger}from"./AsideTrigger.js";export{default as Aside,AsideActiveDrawerChangeEvent,AsideDrawerCloseEvent,AsideDrawerOpenEvent,AsideDrawerResizeEvent,AsideHandleModeChangeEvent}from"./Aside.js";export{default as Autocomplete}from"./Autocomplete.js";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-D47b20IT.js";export{DateRangeSelectEvent}from"./DateRangeSelectEvent.js";export{DateSelectEvent}from"./DateSelectEvent.js";export{default as Card}from"./Card.js";export{default as Checkbox}from"./Checkbox.js";export{default as Collapsible,CollapsibleToggleEvent}from"./Collapsible.js";export{default as CollapsiblePanel}from"./CollapsiblePanel.js";export{default as CollapsibleTrigger}from"./CollapsibleTrigger.js";export{default as Combobox}from"./Combobox.js";export{default as ComboboxGroup}from"./ComboboxGroup.js";export{default as ComboboxOption}from"./ComboboxOption.js";export{default as CommandMenu}from"./CommandMenu.js";export{default as CommandMenuAction}from"./CommandMenuAction.js";export{default as DatePicker}from"./DatePicker.js";export{DateRangeChangeEvent}from"./DateRangeChangeEvent.js";export{default as DateRangePicker}from"./DateRangePicker.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 Field}from"./Field.js";export{default as FieldContent}from"./FieldContent.js";export{default as FieldDescription}from"./FieldDescription.js";export{default as FieldError}from"./FieldError.js";export{default as FieldGroup}from"./FieldGroup.js";export{default as FieldLabel}from"./FieldLabel.js";export{default as FieldLegend}from"./FieldLegend.js";export{default as FieldSeparator}from"./FieldSeparator.js";export{default as FieldSet}from"./FieldSet.js";export{default as FieldTitle}from"./FieldTitle.js";export{default as Fieldset}from"./Fieldset2.js";export{default as FilterAddButton}from"./FilterAddButton.js";export{default as FilterBar}from"./FilterBar.js";export{default as FilterDateRange}from"./FilterDateRange.js";export{default as FilterDropdown}from"./FilterDropdown.js";export{default as FilterField}from"./FilterField.js";export{default as FilterInput}from"./FilterInput.js";export{default as FilterResetButton}from"./FilterResetButton.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 Item}from"./Item.js";export{default as ItemActions}from"./ItemActions.js";export{default as ItemContent}from"./ItemContent.js";export{default as ItemDescription}from"./ItemDescription.js";export{default as ItemFooter}from"./ItemFooter.js";export{default as ItemGroup}from"./ItemGroup.js";export{default as ItemHeader}from"./ItemHeader.js";export{default as ItemMedia}from"./ItemMedia.js";export{default as ItemSeparator}from"./ItemSeparator.js";export{default as ItemTitle}from"./ItemTitle.js";export{default as Kbd}from"./Kbd.js";export{default as KbdGroup}from"./KbdGroup.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 Meter}from"./Meter.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-ROsuaJkW.js";export{default as Navigation}from"./Navigation.js";export{default as NotificationGroup}from"./NotificationGroup.js";export{default as Notification}from"./Notification.js";export{getCurrencySymbol,resolveCurrencyPlacement}from"./currency.js";export{default as NumberField}from"./NumberField.js";export{default as OtpField}from"./OtpField.js";export{NordOutlineChangeEvent,default as Outline}from"./Outline.js";export{default as OutlineItem}from"./OutlineItem.js";export{ELLIPSIS,paginate}from"./paginate.js";export{default as Pagination}from"./Pagination.js";export{default as PaginationContent}from"./PaginationContent.js";export{default as PaginationEllipsis}from"./PaginationEllipsis.js";export{default as PaginationItem}from"./PaginationItem.js";export{default as PaginationLink}from"./PaginationLink.js";export{default as PaginationNext}from"./PaginationNext.js";export{default as PaginationPrevious}from"./PaginationPrevious.js";export{P as Popout}from"./Popout-B6Hirj3y.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 ScrollArea}from"./ScrollArea.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 TimePicker}from"./TimePicker.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 Truncate}from"./Truncate.js";export{default as VisuallyHidden}from"./VisuallyHidden.js";export{ComboboxClearEvent,ComboboxCreateEvent}from"./ComboboxEvents.js";export{FilterAddButtonSelectEvent}from"./FilterAddButtonEvents.js";export{FilterDateRangeChangeEvent,FilterDateRangeClearEvent,FilterDateRangeRemoveEvent}from"./FilterDateRangeEvents.js";export{FilterDropdownChangeEvent,FilterDropdownClearEvent,FilterDropdownLoadMoreEvent,FilterDropdownRemoveEvent,FilterDropdownSearchChangeEvent}from"./FilterDropdownEvents.js";export{FilterFieldClearEvent,FilterFieldRemoveEvent}from"./FilterFieldEvents.js";export{NumberFieldChangeEvent}from"./NumberFieldEvents.js";export{OtpFieldCompleteEvent,OtpFieldInvalidEvent}from"./OtpFieldEvents.js";import"./tslib.es6-CmLYFWVC.js";import"lit";import"lit/decorators.js";import"./DirectionController-ChvNGESZ.js";import"./number-Dg2vCfGd.js";import"./observe-D0n0zOfU.js";import"./events-Bv6wNHwJ.js";import"./light-dom-styles-DXsbiKU9.js";import"./DraftComponentMixin-4qug5Rky.js";import"./CollapseController-BtKNFNyJ.js";import"./StateAttributesController-BIh96sXZ.js";import"./FocusableWhenDisabledController-C_Mn1mfN.js";import"./storage-CGZ-YX4-.js";import"./Component-BJ5O5n8k.js";import"./SlotController-Z6eG7LSZ.js";import"./EventController-BBOmvfLa.js";import"lit/directives/class-map.js";import"./focus-Dsbrvxj1.js";import"./Combobox-DBxXlbY7.js";import"./ComboboxBase.js";import"./ActiveDescendantController-BnMqM79O.js";import"./interface-close-small-CnpAFMO3.js";import"./interface-dropdown-small-CYvgxudU.js";import"lit/directives/if-defined.js";import"lit/directives/ref.js";import"lit/directives/repeat.js";import"lit/directives/style-map.js";import"lit/directives/unsafe-html.js";import"./collection-Dvg2XbxV.js";import"./FormDataController-OUt5L5uC.js";import"./LightDismissController-wcL1ziJa.js";import"./ShortcutController-CV5b0BZl.js";import"./tinykeys-DwvDXsEb.js";import"./ResizeController-14PUwRQy.js";import"./cond-CI1KbneT.js";import"./AutocompleteMixin-D8eiOxvO.js";import"./FieldControlMixin-BXNZJXu9.js";import"./context-consumer-BJVUulGf.js";import"./context-request-event-CCRlXoeR.js";import"./field-context.js";import"./create-context-CJ69ntlY.js";import"./InputMixin-LetXsCyv.js";import"./SizeMixin-CU9cLbLC.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"./localization10.js";import"./localization11.js";import"./localization12.js";import"./localization13.js";import"./localization14.js";import"./localization15.js";import"./localization16.js";import"./localization17.js";import"./localization18.js";import"./localization19.js";import"./localization20.js";import"./localization21.js";import"./localization22.js";import"./localization23.js";import"./localization24.js";import"./fsm-Bq5jMQrK.js";import"./LightDomController-DIwtVelV.js";import"./FocusableMixin-BlQLNPdJ.js";import"./dates-C-ZvzXaC.js";import"./interface-checked-small-BQmkNgCI.js";import"./interface-remove-small-DUaWSs90.js";import"./FormAssociatedMixin-D9aPREgv.js";import"./FormField-CMgEFZCK.js";import"./context-provider-D8lrPLVi.js";import"./interface-add-small-B-hv2v9J.js";import"./combobox-context.js";import"./KeyboardController.js";import"./SelectEvent.js";import"./interface-calendar-Cw2bJfbS.js";import"./ReadonlyMixin-BdJPGtQ3.js";import"./TextField-BYSciLeB.js";import"./date-adapter.js";import"./OpenStateController-CCnZ7up6.js";import"./DropdownItem-BYbOLth6.js";import"./interface-filter-CCsx9-u6.js";import"./navigation-search-CBbIGzo2.js";import"./filter-chip-C97zd4PT.js";import"./interface-close-BvKnv9eh.js";import"./IconManager.js";import"./TextSelectableMixin-Cfv__lHS.js";import"./Sticky-CZImMrGj.js";import"./ModalController.js";import"./ScrollbarController-BFC67Y2x.js";import"./nav-context.js";import"./NotificationMixin-DOUQsx7N.js";import"./format.js";import"./parse.js";import"./validate.js";import"./primitives-Dj0vyf1-.js";import"./positioning-D-K8Mueq.js";import"./LightSlotController-Coyy4nqS.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -3,7 +3,8 @@ import '../button/Button.js';
3
3
  import '../icon/Icon.js';
4
4
  import '../tooltip/Tooltip.js';
5
5
  /**
6
- * Rail button that toggles a `<nord-aside-drawer>` inside `<nord-aside>`.
6
+ * Rail button that toggles a `<nord-aside-drawer>` inside `<nord-aside>`,
7
+ * or navigates like a link when `href` is set.
7
8
  *
8
9
  * @status new
9
10
  * @category action
@@ -20,9 +21,28 @@ export default class AsideTrigger extends LitElement {
20
21
  private tooltipSlot;
21
22
  /**
22
23
  * The id of the `<nord-aside-drawer>` this trigger toggles.
23
- * Required.
24
+ * Mutually exclusive with `href` — when both are set, `href` wins and
25
+ * the trigger acts as a link instead of a drawer toggle.
24
26
  */
25
27
  drawer: string;
28
+ /**
29
+ * When provided, renders the trigger as a link that navigates to the
30
+ * given URL instead of toggling a drawer. Mutually exclusive with
31
+ * `drawer`. Mirrors `nord-button`'s link mode, so middle-click,
32
+ * cmd/ctrl-click and right-click behave like a real anchor.
33
+ */
34
+ href?: string;
35
+ /**
36
+ * When provided together with a href property, determines where to open
37
+ * the linked URL. Forwarded to the underlying anchor.
38
+ */
39
+ target?: '_self' | '_blank' | '_parent' | '_top';
40
+ /**
41
+ * When provided together with a href property, sets the relationship
42
+ * between the linked URL and the current document, e.g. “noopener
43
+ * noreferrer” when linking to untrusted content in a new tab.
44
+ */
45
+ rel?: string;
26
46
  /**
27
47
  * Nord icon name. Shortcut for the common case; equivalent to placing
28
48
  * `<nord-icon name="…">` in the default slot.
@@ -64,8 +84,14 @@ export default class AsideTrigger extends LitElement {
64
84
  connectedCallback(): void;
65
85
  disconnectedCallback(): void;
66
86
  protected handleDrawerChange(): void;
87
+ protected handleHrefChange(): void;
67
88
  protected handleDisabledChange(): void;
68
89
  private get aside();
90
+ /**
91
+ * `href` takes precedence over `drawer`: a trigger with both acts as a
92
+ * link and never toggles a drawer.
93
+ */
94
+ private get isLink();
69
95
  private readonly handleActiveDrawerChange;
70
96
  /**
71
97
  * Listen to the aside's own `active-drawer-change` event instead of each
@@ -87,6 +87,12 @@ export default class Button extends Button_base {
87
87
  * _self, and finally “top” means the topmost browsing context.
88
88
  */
89
89
  target: '_self' | '_blank' | '_parent' | '_top';
90
+ /**
91
+ * When provided together with a href property, sets the relationship
92
+ * between the linked URL and the current document, e.g. “noopener
93
+ * noreferrer” when linking to untrusted content in a new tab.
94
+ */
95
+ rel?: string;
90
96
  /**
91
97
  * Controls whether the button expands to fill the width of its container.
92
98
  */
@@ -14,6 +14,17 @@ export interface ICommandMenuAction {
14
14
  * reclaimed even with this set.
15
15
  */
16
16
  forceShortcut?: boolean;
17
+ /**
18
+ * By default a `shortcut` fires even while the user is typing in a form field,
19
+ * which can hijack keystrokes — `Alt+KeyL` runs the command instead of typing
20
+ * the character the combo produces (e.g. `¬`, or `ß` for `Alt+KeyS` on some
21
+ * layouts). Set this to `true` to skip this command's shortcut while an
22
+ * editable element is focused: native `input`, `textarea`, `select`,
23
+ * `contenteditable`, as well as Nord form controls such as `nord-input`. Off
24
+ * by default for backwards compatibility. The global (`$mod+k`) and in-menu
25
+ * navigation keys are unaffected and always work while typing.
26
+ */
27
+ ignoreWhileTyping?: boolean;
17
28
  handler?: (menu: CommandMenu) => void;
18
29
  icon?: string;
19
30
  parent?: string | null;
@@ -3,14 +3,29 @@ interface Options<T> {
3
3
  channelName: string;
4
4
  onMessage: (message: T) => void;
5
5
  enabled?: () => boolean;
6
+ /**
7
+ * When the document is hidden, incoming messages are buffered instead of
8
+ * delivered, and successive messages are coalesced with this reducer
9
+ * (default: keep the latest). The buffered value is delivered once, when the
10
+ * document becomes visible again.
11
+ *
12
+ * This stops background tabs from doing work (e.g. layout reflows) they
13
+ * cannot show. On machines where same-origin tabs share a single renderer
14
+ * process/main thread — common on low-memory devices — that background work
15
+ * would otherwise steal main-thread time from the foreground tab and degrade
16
+ * its interaction latency (INP).
17
+ */
18
+ coalesce?: (pending: T | undefined, incoming: T) => T;
6
19
  }
7
20
  export declare class BroadcastChannelController<T> implements ReactiveController {
8
21
  private channel?;
9
22
  private options;
23
+ private pending?;
10
24
  constructor(host: ReactiveControllerHost, options: Options<T>);
11
25
  hostConnected(): void;
12
26
  hostDisconnected(): void;
13
27
  handleEvent(event: MessageEvent<T>): void;
28
+ private handleVisibilityChange;
14
29
  post(message: T): void;
15
30
  }
16
31
  export {};
@@ -2,3 +2,13 @@
2
2
  * Gets the currently focused element, taking shadow roots into account.
3
3
  */
4
4
  export declare function getFocusedElement(root: Document | ShadowRoot): Element | undefined;
5
+ /**
6
+ * Returns `true` when the element is one the user types into: a native form
7
+ * field (`input`, `textarea`, `select`) or a `contenteditable` region.
8
+ *
9
+ * Pair with `getFocusedElement(document)` to resolve the deep active element
10
+ * through shadow roots first, so Nord's own inputs (e.g. `nord-input`) are
11
+ * detected via their inner native field. Used to suppress global shortcuts
12
+ * while the user is editing text.
13
+ */
14
+ export declare function isEditableElement(element: Element | null | undefined): boolean;
@@ -104,6 +104,13 @@ export default class NavItem extends NavItem_base {
104
104
  * Note: this is only used if you have nested navigation using the "subnav" slot.
105
105
  */
106
106
  open: boolean;
107
+ /**
108
+ * Opt-in: when set, the item's rail-mode subnav flyout closes automatically
109
+ * once one of its leaf descendants is activated (for example, when a user
110
+ * clicks a link inside the flyout). Off by default — existing flyout
111
+ * behavior is unchanged unless this attribute is present.
112
+ */
113
+ autoDismissOnSelect: boolean;
107
114
  /**
108
115
  * Distance in pixels between the rail-mode tooltip and the item, forwarded
109
116
  * to the internal [Tooltip](/components/tooltip/)'s `side-offset` (the
@@ -122,8 +129,23 @@ export default class NavItem extends NavItem_base {
122
129
  * @internal
123
130
  */
124
131
  get hasSubNav(): boolean;
132
+ /**
133
+ * Closes this item's rail-mode subnav flyout if it is open.
134
+ *
135
+ * In rail-collapsed mode a parent nav item opens its subnav inside a
136
+ * flyout popout. Clicking a leaf link inside that flyout does not close it,
137
+ * because the click passes through the popout host and is treated as
138
+ * "inside" by the popout's light-dismiss logic. Call this method to close
139
+ * the flyout without reaching into the component's shadow DOM.
140
+ *
141
+ * Returns a promise that resolves once the flyout's hide animation ends.
142
+ * If there is no flyout, or it is already closed, the promise resolves
143
+ * immediately.
144
+ */
145
+ closeFlyout(): Promise<void>;
125
146
  connectedCallback(): void;
126
147
  disconnectedCallback(): void;
148
+ private handleDescendantActivate;
127
149
  private handleViewportChange;
128
150
  private startObservingLayout;
129
151
  private stopObservingLayout;
@@ -34,6 +34,24 @@ export default class Navigation extends LitElement {
34
34
  * Controls whether the navigations's footer has sticky positioning.
35
35
  */
36
36
  stickyFooter: boolean;
37
+ /**
38
+ * Opt-in: when set, any open rail-mode subnav flyout in this navigation
39
+ * closes automatically once one of its leaf items is activated (for example,
40
+ * when a user clicks a link inside a flyout). Off by default — existing
41
+ * flyout behavior is unchanged unless this attribute is present.
42
+ */
43
+ autoDismissOnSelect: boolean;
44
+ /**
45
+ * Closes every open rail-mode subnav flyout within this navigation.
46
+ *
47
+ * Each parent `<nord-nav-item>` renders its rail flyout inside its own shadow
48
+ * DOM, so a leaf link click inside a flyout does not dismiss it. Wire a single
49
+ * root-level handler that calls this method to close any open flyout without
50
+ * reaching into component shadow DOM.
51
+ *
52
+ * Returns a promise that resolves once every flyout has finished closing.
53
+ */
54
+ closeAllFlyouts(): Promise<void>;
37
55
  connectedCallback(): void;
38
56
  disconnectedCallback(): void;
39
57
  private handleViewportChange;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nordhealth/components",
3
3
  "type": "module",
4
- "version": "5.0.1",
4
+ "version": "5.0.3",
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",
@@ -39,7 +39,7 @@
39
39
  "dependencies": {
40
40
  "@floating-ui/dom": "^1.7.5",
41
41
  "@lit/context": "^1.1.6",
42
- "@nordhealth/icons": "^3.17.0",
42
+ "@nordhealth/icons": "^3.17.2",
43
43
  "@tanstack/lit-virtual": "^3.13.30",
44
44
  "@tanstack/virtual-core": "3.17.1",
45
45
  "lit": "^3.3.2",
@@ -50,8 +50,8 @@
50
50
  "@custom-elements-manifest/analyzer": "^0.10.10",
51
51
  "@nordhealth/css": "^4.4.1",
52
52
  "@nordhealth/fonts": "^3.0.4",
53
- "@nordhealth/themes": "^10.0.1",
54
- "@nordhealth/tokens": "^9.0.1",
53
+ "@nordhealth/themes": "^10.0.3",
54
+ "@nordhealth/tokens": "^9.0.3",
55
55
  "@open-wc/testing-helpers": "^3.0.1",
56
56
  "@playwright/test": "1.58.0",
57
57
  "@rollup/plugin-node-resolve": "^15.3.1",
@@ -64,8 +64,8 @@
64
64
  "@storybook/web-components-vite": "^10.4.6",
65
65
  "@tailwindcss/vite": "^4.2.0",
66
66
  "@types/node": "^22.19.11",
67
- "@vitest/browser": "^4.0.18",
68
- "@vitest/browser-playwright": "^4.0.18",
67
+ "@vitest/browser": "^4.1.10",
68
+ "@vitest/browser-playwright": "^4.1.10",
69
69
  "axe-core": "^4.10.3",
70
70
  "concurrently": "^9.2.1",
71
71
  "glob": "^11.1.0",
@@ -80,7 +80,7 @@
80
80
  "tailwindcss": "^4.2.0",
81
81
  "tslib": "^2.8.1",
82
82
  "typescript": "~5.5.4",
83
- "vitest": "^4.0.18",
83
+ "vitest": "^4.1.10",
84
84
  "vitest-browser-lit": "^1.0.1"
85
85
  },
86
86
  "overrides": {
@@ -88,5 +88,5 @@
88
88
  "rollup": "~4.21.3"
89
89
  }
90
90
  },
91
- "gitHead": "9499a03daba4b5ffa56d49bf43d163edf119a372"
91
+ "gitHead": "8e82ebeca8221358b8da0584cbf95f39a97d7129"
92
92
  }
@@ -1,2 +0,0 @@
1
- import{css as n}from"lit";const r=n`:host{--_n-input-inline-size:var(--n-input-inline-size,240px);--_n-input-block-size:var(--n-input-block-size,var(--n-space-xl));--_n-input-background:var(--n-input-background,var(--n-color-surface));--_n-input-color:var(--n-input-color,var(--n-color-text));--_n-input-font-size:var(--n-input-font-size,var(--n-font-size-m));--_n-input-border-color:var(--n-input-border-color,var(--n-color-border-strong));--_n-input-border-radius:var(--n-input-border-radius,var(--n-border-radius-s));--_n-input-text-align:var(--n-input-text-align,start);--_n-input-placeholder-color:var(--n-input-placeholder-color,var(--n-color-text-weakest));--_n-input-padding-block:calc(var(--_n-input-block-size)/2 - var(--n-line-height-form)/2 - 1px);--_n-input-padding-inline:calc(var(--n-space-s)*1.6);--_n-input-min-content-block-size:calc(var(--n-line-height-form) + var(--n-space-s)/1.6*2 + 2px)}.n-input-container{inline-size:var(--_n-input-inline-size);position:relative}.n-input{background:var(--_n-input-background);border:1px solid var(--_n-input-border-color);border-radius:var(--_n-input-border-radius);color:var(--_n-input-color);font-family:var(--n-font-family);font-feature-settings:var(--n-font-features);font-size:var(--_n-input-font-size);inline-size:100%;line-height:var(--n-line-height-form);padding:var(--_n-input-padding-block) var(--_n-input-padding-inline);text-align:var(--_n-input-text-align);transition:border var(--n-transition-quickly),box-shadow var(--n-transition-quickly),background var(--n-transition-quickly)}@media (max-width:480px){:host{--_n-input-font-size:var(--n-input-font-size,var(--n-font-size-l))}}:host([expand]){--_n-input-inline-size:100%;inline-size:100%}.n-input:hover,.n-label-container:hover+.n-input-container{--_n-input-border-color:var(--n-input-border-color,var(--n-color-border-hover))}.n-input:focus{--_n-input-border-color:var(--n-input-border-color,var(--n-color-accent));--_n-input-background:var(--n-input-background,var(--n-color-surface));box-shadow:0 0 0 1px var(--_n-input-border-color);outline:none}.n-input::placeholder{color:var(--_n-input-placeholder-color);opacity:1}.n-input[aria-invalid=true]{--_n-input-border-color:var(--n-input-border-color,var(--n-color-status-danger))!important}.n-input:disabled,.n-input[readonly],.n-label-container:hover+.n-input-container .n-input:disabled,.n-label-container:hover+.n-input-container .n-input[readonly]{--_n-input-background:var(--n-input-background-inactive,var(--n-color-active));--_n-input-border-color:var(--n-input-border-color,var(--n-color-active));--_n-input-color:var(--n-input-color,var(--n-color-text-weakest))}.n-input[readonly],.n-label-container:hover+.n-input-container .n-input[readonly]{--_n-input-color:var(--n-input-color,var(--n-color-text))}.n-input[readonly]:focus{--_n-input-border-color:var(--n-input-border-color,var(--n-color-accent))}:host([size=s]){--_n-input-font-size:var(--n-font-size-s);--_n-input-padding-block:calc(var(--n-space-xs) - 1px);--_n-input-padding-inline:calc(var(--n-space-xs)*1.6)}:host([size=l]){--_n-input-font-size:var(--n-font-size-l);--_n-input-block-size:max(var(--n-input-block-size,calc(var(--n-space-xxl) - var(--n-space-l))),var(--_n-input-min-content-block-size));--_n-input-padding-block:calc(var(--_n-input-block-size)/2 - var(--n-line-height-form)/2 - 1px)}`;export{r as s};
2
- //# sourceMappingURL=TextField-CSKvieoG.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextField-CSKvieoG.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- function e(o){var t;return(null===(t=o.activeElement)||void 0===t?void 0:t.shadowRoot)?e(o.activeElement.shadowRoot):o.activeElement||void 0}export{e as g};
2
- //# sourceMappingURL=focus-D8oSvIcN.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"focus-D8oSvIcN.js","sources":["../src/common/focus.ts"],"sourcesContent":["/**\n * Gets the currently focused element, taking shadow roots into account.\n */\nexport function getFocusedElement(root: Document | ShadowRoot): Element | undefined {\n if (root.activeElement?.shadowRoot) {\n return getFocusedElement(root.activeElement.shadowRoot)\n }\n\n return root.activeElement || undefined\n}\n"],"names":["getFocusedElement","root","activeElement","_a","shadowRoot","undefined"],"mappings":"AAGM,SAAUA,EAAkBC,SAChC,OAAwB,UAApBA,EAAKC,qBAAe,IAAAC,OAAA,EAAAA,EAAAC,YACfJ,EAAkBC,EAAKC,cAAcE,YAGvCH,EAAKC,oBAAiBG,CAC/B"}