@nordhealth/components 2.16.1 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/README.md +1 -1
  2. package/custom-elements.json +1034 -540
  3. package/lib/{AutocompleteMixin-c8018288.js → AutocompleteMixin-5163f8db.js} +2 -2
  4. package/lib/{AutocompleteMixin-c8018288.js.map → AutocompleteMixin-5163f8db.js.map} +1 -1
  5. package/lib/Avatar.js +1 -1
  6. package/lib/Badge.js +1 -1
  7. package/lib/Badge.js.map +1 -1
  8. package/lib/Banner.js +1 -1
  9. package/lib/Banner.js.map +1 -1
  10. package/lib/Button.js +1 -1
  11. package/lib/Button.js.map +1 -1
  12. package/lib/ButtonGroup.js +1 -1
  13. package/lib/Calendar-8ee21eab.js +2 -0
  14. package/lib/{Calendar-27eae615.js.map → Calendar-8ee21eab.js.map} +1 -1
  15. package/lib/Calendar.js +1 -1
  16. package/lib/Card.js +1 -1
  17. package/lib/Checkbox.js +1 -1
  18. package/lib/Checkbox.js.map +1 -1
  19. package/lib/CommandMenu.js +1 -1
  20. package/lib/CommandMenu.js.map +1 -1
  21. package/lib/CommandMenuAction.js +1 -1
  22. package/lib/CommandMenuAction.js.map +1 -1
  23. package/lib/{Component-d4d6fa77.js → Component-449e40fb.js} +2 -2
  24. package/lib/Component-449e40fb.js.map +1 -0
  25. package/lib/DatePicker.js +1 -1
  26. package/lib/DatePicker.js.map +1 -1
  27. package/lib/DateSelectEvent.js +1 -1
  28. package/lib/Divider.js +1 -1
  29. package/lib/Divider.js.map +1 -1
  30. package/lib/Drawer.js +1 -1
  31. package/lib/Dropdown.js +1 -1
  32. package/lib/Dropdown.js.map +1 -1
  33. package/lib/DropdownGroup.js +1 -1
  34. package/lib/DropdownGroup.js.map +1 -1
  35. package/lib/DropdownItem.js +1 -1
  36. package/lib/EmptyState.js +1 -1
  37. package/lib/EmptyState.js.map +1 -1
  38. package/lib/Fieldset.js +1 -1
  39. package/lib/FocusableMixin-32631bff.js +2 -0
  40. package/lib/{FocusableMixin-fc1e2a13.js.map → FocusableMixin-32631bff.js.map} +1 -1
  41. package/lib/{FormAssociatedMixin-ad4d6c08.js → FormAssociatedMixin-9e798802.js} +2 -2
  42. package/lib/{FormAssociatedMixin-ad4d6c08.js.map → FormAssociatedMixin-9e798802.js.map} +1 -1
  43. package/lib/{FormField-c733b196.js → FormField-3f772bad.js} +2 -2
  44. package/lib/FormField-3f772bad.js.map +1 -0
  45. package/lib/Header.js +1 -1
  46. package/lib/Header.js.map +1 -1
  47. package/lib/Icon.js +1 -1
  48. package/lib/Input.js +1 -1
  49. package/lib/Input.js.map +1 -1
  50. package/lib/{InputMixin-1564ca2a.js → InputMixin-7fa755e1.js} +2 -2
  51. package/lib/{InputMixin-1564ca2a.js.map → InputMixin-7fa755e1.js.map} +1 -1
  52. package/lib/Layout.js +1 -1
  53. package/lib/Layout.js.map +1 -1
  54. package/lib/{LightDomController-3b7b1f44.js → LightDomController-052f446a.js} +2 -2
  55. package/lib/{LightDomController-3b7b1f44.js.map → LightDomController-052f446a.js.map} +1 -1
  56. package/lib/LocalizeController.js +1 -1
  57. package/lib/LocalizeController.js.map +1 -1
  58. package/lib/Modal.js +1 -1
  59. package/lib/Modal.js.map +1 -1
  60. package/lib/NavGroup.js +1 -1
  61. package/lib/NavGroup.js.map +1 -1
  62. package/lib/NavItem.js +1 -1
  63. package/lib/NavToggle.js +1 -1
  64. package/lib/NavToggle.js.map +1 -1
  65. package/lib/Navigation.js +1 -1
  66. package/lib/Navigation.js.map +1 -1
  67. package/lib/Notification.js +2 -0
  68. package/lib/Notification.js.map +1 -0
  69. package/lib/NotificationGroup.js +2 -0
  70. package/lib/NotificationGroup.js.map +1 -0
  71. package/lib/NotificationMixin-86b09bcd.js +2 -0
  72. package/lib/NotificationMixin-86b09bcd.js.map +1 -0
  73. package/lib/{Popout-0baf2085.js → Popout-bb7ff989.js} +2 -2
  74. package/lib/{Popout-0baf2085.js.map → Popout-bb7ff989.js.map} +1 -1
  75. package/lib/Popout.js +1 -1
  76. package/lib/ProgressBar.js +1 -1
  77. package/lib/Qrcode.js +1 -1
  78. package/lib/Radio.js +1 -1
  79. package/lib/Radio.js.map +1 -1
  80. package/lib/Range.js +1 -1
  81. package/lib/Select.js +1 -1
  82. package/lib/SelectEvent.js +1 -1
  83. package/lib/{SizeMixin-9da6dc81.js → SizeMixin-4d04817d.js} +2 -2
  84. package/lib/{SizeMixin-9da6dc81.js.map → SizeMixin-4d04817d.js.map} +1 -1
  85. package/lib/Skeleton.js +1 -1
  86. package/lib/Spinner.js +1 -1
  87. package/lib/Stack.js +1 -1
  88. package/lib/{Sticky-64b0b58a.js → Sticky-c4cf185e.js} +2 -2
  89. package/lib/Sticky-c4cf185e.js.map +1 -0
  90. package/lib/Tab.js +1 -1
  91. package/lib/Tab.js.map +1 -1
  92. package/lib/TabGroup.js +1 -1
  93. package/lib/TabGroup.js.map +1 -1
  94. package/lib/TabPanel.js +1 -1
  95. package/lib/Table.js +1 -1
  96. package/lib/TextField-55a08df5.js +2 -0
  97. package/lib/{TextField-6a272cd7.js.map → TextField-55a08df5.js.map} +1 -1
  98. package/lib/Textarea.js +1 -1
  99. package/lib/Textarea.js.map +1 -1
  100. package/lib/Toast.js +1 -1
  101. package/lib/Toast.js.map +1 -1
  102. package/lib/ToastGroup.js +1 -1
  103. package/lib/Toggle.js +1 -1
  104. package/lib/Toggle.js.map +1 -1
  105. package/lib/Tooltip.js +1 -1
  106. package/lib/VisuallyHidden.js +1 -1
  107. package/lib/bundle.js +10 -9
  108. package/lib/bundle.js.map +1 -1
  109. package/lib/class-map-21152cee.js +7 -0
  110. package/lib/{class-map-1bc3148f.js.map → class-map-21152cee.js.map} +1 -1
  111. package/lib/{collection-a0cd49b2.js → collection-7eee4e72.js} +2 -2
  112. package/lib/{collection-a0cd49b2.js.map → collection-7eee4e72.js.map} +1 -1
  113. package/lib/cond-2da54107.js +2 -0
  114. package/lib/{cond-8e7df9cf.js.map → cond-2da54107.js.map} +1 -1
  115. package/lib/en-us.js +1 -1
  116. package/lib/en-us.js.map +1 -1
  117. package/lib/events-d9666e88.js +2 -0
  118. package/lib/events-d9666e88.js.map +1 -0
  119. package/lib/fi-fi.js +1 -1
  120. package/lib/fi-fi.js.map +1 -1
  121. package/lib/{if-defined-718a58b2.js → if-defined-720964c0.js} +2 -2
  122. package/lib/{if-defined-718a58b2.js.map → if-defined-720964c0.js.map} +1 -1
  123. package/lib/index.js +1 -1
  124. package/lib/localization7.js +2 -0
  125. package/lib/localization7.js.map +1 -0
  126. package/lib/positioning-3bbd3548.js +2 -0
  127. package/lib/positioning-3bbd3548.js.map +1 -0
  128. package/lib/query-assigned-elements-cf502539.js +35 -0
  129. package/lib/query-assigned-elements-cf502539.js.map +1 -0
  130. package/lib/{ref-4265fcf9.js → ref-c44e9f3c.js} +4 -4
  131. package/lib/{ref-4265fcf9.js.map → ref-c44e9f3c.js.map} +1 -1
  132. package/lib/src/common/events.d.ts +1 -0
  133. package/lib/src/common/mixins/NotificationMixin.d.ts +10 -0
  134. package/lib/src/header/Header.d.ts +4 -0
  135. package/lib/src/index.d.ts +2 -0
  136. package/lib/src/input/Input.d.ts +2 -1
  137. package/lib/src/layout/Layout.d.ts +2 -2
  138. package/lib/src/localization/en-us.d.ts +3 -0
  139. package/lib/src/localization/translation.d.ts +3 -0
  140. package/lib/src/navigation/Navigation.d.ts +2 -1
  141. package/lib/src/notification/Notification.d.ts +26 -0
  142. package/lib/src/notification/Notification.test.d.ts +1 -0
  143. package/lib/src/notification/localization.d.ts +4 -0
  144. package/lib/src/notification-group/NotificationGroup.d.ts +19 -0
  145. package/lib/src/notification-group/NotificationGroup.test.d.ts +1 -0
  146. package/lib/src/toast/Toast.d.ts +3 -4
  147. package/lib/{style-map-c63c0180.js → style-map-2e8fcab6.js} +2 -2
  148. package/lib/{style-map-c63c0180.js.map → style-map-2e8fcab6.js.map} +1 -1
  149. package/lib/translation.js +1 -1
  150. package/lib/translation.js.map +1 -1
  151. package/package.json +6 -6
  152. package/lib/Calendar-27eae615.js +0 -2
  153. package/lib/Component-d4d6fa77.js.map +0 -1
  154. package/lib/FocusableMixin-fc1e2a13.js +0 -2
  155. package/lib/FormField-c733b196.js.map +0 -1
  156. package/lib/Sticky-64b0b58a.js.map +0 -1
  157. package/lib/TextField-6a272cd7.js +0 -2
  158. package/lib/class-map-1bc3148f.js +0 -7
  159. package/lib/cond-8e7df9cf.js +0 -2
  160. package/lib/events-5337a6d7.js +0 -2
  161. package/lib/events-5337a6d7.js.map +0 -1
  162. package/lib/positioning-acf73137.js +0 -2
  163. package/lib/positioning-acf73137.js.map +0 -1
  164. package/lib/query-assigned-elements-89f41e17.js +0 -34
  165. package/lib/query-assigned-elements-89f41e17.js.map +0 -1
package/lib/Toggle.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Toggle.js","sources":["../src/toggle/Toggle.ts"],"sourcesContent":["/* eslint-disable lit-a11y/role-has-required-aria-attrs */\nimport { html, LitElement } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { ifDefined } from \"lit/directives/if-defined.js\"\nimport { ref } from \"lit/directives/ref.js\"\n\nimport { FocusableMixin } from \"../common/mixins/FocusableMixin.js\"\nimport { FormAssociatedMixin } from \"../common/mixins/FormAssociatedMixin.js\"\nimport { InputMixin } from \"../common/mixins/InputMixin.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport formFieldStyle from \"../common/styles/FormField.css\"\nimport style from \"./Toggle.css\"\n\n/**\n * Toggle switch gives control over a feature or option that can be\n * turned on or off. If a physical switch would work for the action, a\n * toggle is probably the best component to use.\n *\n * @status ready\n * @category form\n * @slot label - Use when a label requires more than plain text.\n * @slot hint - Optional slot that holds hint text for the input.\n * @slot error - Optional slot that holds error text for the input.\n */\n@customElement(\"nord-toggle\")\nexport default class Toggle extends FormAssociatedMixin(InputMixin(FocusableMixin(LitElement))) {\n static styles = [componentStyle, formFieldStyle, style]\n\n protected override get formValue() {\n return this.checked ? this.value || \"on\" : undefined\n }\n\n /**\n * Controls whether the toggle is checked or not.\n */\n @property({ type: Boolean }) checked: boolean = false\n\n /**\n * Controls whether the contents are displayed in reverse order,\n * putting the label before the toggle.\n */\n @property({ type: Boolean }) reverse: boolean = false\n\n /**\n * The size of the toggle switch.\n */\n @property({ reflect: true }) size: \"s\" | \"m\" | \"l\" = \"m\"\n\n render() {\n const label = html`<div class=\"n-expand\">${this.renderLabel()} ${this.renderError()}</div>`\n const input = html`<div class=\"n-input-container\">\n <input\n ${ref(this.focusableRef)}\n class=\"n-toggle\"\n id=${this.inputId}\n type=\"checkbox\"\n role=\"switch\"\n name=${ifDefined(this.name)}\n .value=${this.value}\n .checked=${this.checked}\n ?disabled=${this.disabled}\n ?required=${this.required}\n aria-describedby=${ifDefined(this.getDescribedBy())}\n aria-invalid=${ifDefined(this.getInvalid())}\n @change=${this.handleChange}\n />\n </div>`\n\n return html`<div class=\"n-flex\">${this.reverse ? [label, input] : [input, label]}</div>`\n }\n\n protected handleChange(e: Event): void {\n const target = e.target as HTMLInputElement\n this.checked = target.checked\n super.handleChange(e)\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-toggle\": Toggle\n }\n}\n"],"names":["Toggle","FormAssociatedMixin","InputMixin","FocusableMixin","LitElement","constructor","this","checked","reverse","size","formValue","value","undefined","render","label","html","renderLabel","renderError","input","ref","focusableRef","inputId","ifDefined","name","disabled","required","getDescribedBy","getInvalid","handleChange","e","target","super","styles","componentStyle","formFieldStyle","style","__decorate","property","type","Boolean","prototype","reflect","customElement"],"mappings":"wxFA0BA,IAAqBA,EAArB,cAAoCC,EAAoBC,EAAWC,EAAeC,MAAlFC,kCAU+BC,KAAOC,SAAY,EAMnBD,KAAOE,SAAY,EAKnBF,KAAIG,KAAoB,GA8BtD,CAhDwBC,gBACrB,OAAOJ,KAAKC,QAAUD,KAAKK,OAAS,UAAOC,CAC5C,CAkBDC,SACE,MAAMC,EAAQC,CAAI,yBAAyBT,KAAKU,iBAAiBV,KAAKW,sBAChEC,EAAQH,CAAI,yCAEZI,EAAIb,KAAKc,sCAENd,KAAKe,gDAGHC,EAAUhB,KAAKiB,kBACbjB,KAAKK,oBACHL,KAAKC,uBACJD,KAAKkB,wBACLlB,KAAKmB,+BACEH,EAAUhB,KAAKoB,oCACnBJ,EAAUhB,KAAKqB,2BACpBrB,KAAKsB,uBAInB,OAAOb,CAAI,uBAAuBT,KAAKE,QAAU,CAACM,EAAOI,GAAS,CAACA,EAAOJ,UAC3E,CAESc,aAAaC,GACrB,MAAMC,EAASD,EAAEC,OACjBxB,KAAKC,QAAUuB,EAAOvB,QACtBwB,MAAMH,aAAaC,EACpB,GAjDM7B,EAAMgC,OAAG,CAACC,EAAgBC,EAAgBC,GASpBC,EAAA,CAA5BC,EAAS,CAAEC,KAAMC,WAAmCvC,EAAAwC,UAAA,eAAA,GAMxBJ,EAAA,CAA5BC,EAAS,CAAEC,KAAMC,WAAmCvC,EAAAwC,UAAA,eAAA,GAKxBJ,EAAA,CAA5BC,EAAS,CAAEI,SAAS,KAAmCzC,EAAAwC,UAAA,YAAA,GArBrCxC,EAAMoC,EAAA,CAD1BM,EAAc,gBACM1C,SAAAA"}
1
+ {"version":3,"file":"Toggle.js","sources":["../src/toggle/Toggle.ts"],"sourcesContent":["/* eslint-disable lit-a11y/role-has-required-aria-attrs */\nimport { html, LitElement } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { ifDefined } from \"lit/directives/if-defined.js\"\nimport { ref } from \"lit/directives/ref.js\"\n\nimport { FocusableMixin } from \"../common/mixins/FocusableMixin.js\"\nimport { FormAssociatedMixin } from \"../common/mixins/FormAssociatedMixin.js\"\nimport { InputMixin } from \"../common/mixins/InputMixin.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport formFieldStyle from \"../common/styles/FormField.css\"\nimport style from \"./Toggle.css\"\n\n/**\n * Toggle switch gives control over a feature or option that can be\n * turned on or off. If a physical switch would work for the action, a\n * toggle is probably the best component to use.\n *\n * @status ready\n * @category form\n * @slot label - Use when a label requires more than plain text.\n * @slot hint - Optional slot that holds hint text for the input.\n * @slot error - Optional slot that holds error text for the input.\n */\n@customElement(\"nord-toggle\")\nexport default class Toggle extends FormAssociatedMixin(InputMixin(FocusableMixin(LitElement))) {\n static styles = [componentStyle, formFieldStyle, style]\n\n protected override get formValue() {\n return this.checked ? this.value || \"on\" : undefined\n }\n\n /**\n * Controls whether the toggle is checked or not.\n */\n @property({ type: Boolean }) checked: boolean = false\n\n /**\n * Controls whether the contents are displayed in reverse order,\n * putting the label before the toggle.\n */\n @property({ type: Boolean }) reverse: boolean = false\n\n /**\n * The size of the toggle switch.\n */\n @property({ reflect: true }) size: \"s\" | \"m\" | \"l\" = \"m\"\n\n render() {\n const label = html`<div class=\"n-expand\">${this.renderLabel()} ${this.renderError()}</div>`\n const input = html`<div class=\"n-input-container\">\n <input\n ${ref(this.focusableRef)}\n class=\"n-toggle\"\n id=${this.inputId}\n type=\"checkbox\"\n role=\"switch\"\n name=${ifDefined(this.name)}\n .value=${this.value}\n .checked=${this.checked}\n ?disabled=${this.disabled}\n ?required=${this.required}\n aria-describedby=${ifDefined(this.getDescribedBy())}\n aria-invalid=${ifDefined(this.getInvalid())}\n @change=${this.handleChange}\n />\n </div>`\n\n return html`<div class=\"n-flex\">${this.reverse ? [label, input] : [input, label]}</div>`\n }\n\n protected handleChange(e: Event): void {\n const target = e.target as HTMLInputElement\n this.checked = target.checked\n super.handleChange(e)\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-toggle\": Toggle\n }\n}\n"],"names":["Toggle","FormAssociatedMixin","InputMixin","FocusableMixin","LitElement","constructor","this","checked","reverse","size","formValue","value","undefined","render","label","html","renderLabel","renderError","input","ref","focusableRef","inputId","ifDefined","name","disabled","required","getDescribedBy","getInvalid","handleChange","e","target","super","styles","componentStyle","formFieldStyle","style","__decorate","property","type","Boolean","prototype","reflect","customElement"],"mappings":"gxFA0BA,IAAqBA,EAArB,cAAoCC,EAAoBC,EAAWC,EAAeC,MAAlFC,kCAU+BC,KAAOC,SAAY,EAMnBD,KAAOE,SAAY,EAKnBF,KAAIG,KAAoB,GA8BtD,CAhDwBC,gBACrB,OAAOJ,KAAKC,QAAUD,KAAKK,OAAS,UAAOC,CAC5C,CAkBDC,SACE,MAAMC,EAAQC,CAAI,yBAAyBT,KAAKU,iBAAiBV,KAAKW,sBAChEC,EAAQH,CAAI,yCAEZI,EAAIb,KAAKc,sCAENd,KAAKe,gDAGHC,EAAUhB,KAAKiB,kBACbjB,KAAKK,oBACHL,KAAKC,uBACJD,KAAKkB,wBACLlB,KAAKmB,+BACEH,EAAUhB,KAAKoB,oCACnBJ,EAAUhB,KAAKqB,2BACpBrB,KAAKsB,uBAInB,OAAOb,CAAI,uBAAuBT,KAAKE,QAAU,CAACM,EAAOI,GAAS,CAACA,EAAOJ,UAC3E,CAESc,aAAaC,GACrB,MAAMC,EAASD,EAAEC,OACjBxB,KAAKC,QAAUuB,EAAOvB,QACtBwB,MAAMH,aAAaC,EACpB,GAjDM7B,EAAMgC,OAAG,CAACC,EAAgBC,EAAgBC,GASpBC,EAAA,CAA5BC,EAAS,CAAEC,KAAMC,WAAmCvC,EAAAwC,UAAA,eAAA,GAMxBJ,EAAA,CAA5BC,EAAS,CAAEC,KAAMC,WAAmCvC,EAAAwC,UAAA,eAAA,GAKxBJ,EAAA,CAA5BC,EAAS,CAAEI,SAAS,KAAmCzC,EAAAwC,UAAA,YAAA,GArBrCxC,EAAMoC,EAAA,CAD1BM,EAAc,gBACM1C,SAAAA"}
package/lib/Tooltip.js CHANGED
@@ -1,2 +1,2 @@
1
- import{i as t,_ as i,s as e,y as s,e as o}from"./query-assigned-elements-89f41e17.js";import{e as n}from"./property-03f59dce.js";import{t as r}from"./state-70f38ceb.js";import{c as a,l as d,o as l,f as h,s as c}from"./positioning-acf73137.js";import{S as p}from"./SlotController-d733c575.js";import{s as u}from"./Component-d4d6fa77.js";import{E as v}from"./EventController-d99ebeef.js";import{f as m}from"./fsm-50373df9.js";import{o as b}from"./observe-a9c6dfb6.js";function y(t,i){const e=t.getAttribute(i);return e?e.split(/\s+/):[]}function f(t,i,e){t.setAttribute(i,e.join(" "))}const g=t`:host{--_n-tooltip-max-size:var(--n-tooltip-max-size, 50ch);--_n-tooltip-background:rgba(20, 20, 20, 0.95);--_n-tooltip-color:#fff;--_n-tooltip-key-border:rgba(255, 255, 255, 0.03);--_n-tooltip-key-background:rgba(255, 255, 255, 0.1);position:fixed;pointer-events:none;visibility:hidden;opacity:0;transition:opacity var(--n-transition-slowly),visibility var(--n-transition-slowly);transition-timing-function:ease;z-index:var(--n-index-popout)}.n-tooltip{gap:var(--n-space-s);font-family:var(--n-font-family);font-size:var(--n-font-size-xs);line-height:var(--n-line-height);color:var(--_n-tooltip-color);padding:calc(var(--n-space-s)/ 1.5) var(--n-space-s);background-color:var(--_n-tooltip-background);border-radius:var(--n-border-radius-s);word-break:break-word;max-inline-size:var(--_n-tooltip-max-size)}.n-tooltip,.n-tooltip-shortcut{display:flex;align-items:center}.n-tooltip-shortcut{gap:2px}::slotted([slot=shortcut]){box-sizing:border-box;margin:0;inline-size:var(--n-size-icon-m);block-size:var(--n-size-icon-m);border-radius:var(--n-border-radius-s);border:1px solid var(--_n-tooltip-key-border)!important;padding:1px!important;text-align:center;font-size:var(--n-font-size-xs);line-height:var(--n-line-height-tight);letter-spacing:-.5px;vertical-align:middle!important;background-color:var(--_n-tooltip-key-background)}[slot=shortcut]::slotted(nord-icon:not([size])){--_n-icon-size:var(--n-size-icon-s)}`;var x;function w(t,i){return Boolean(i.id)&&t.nodeType===Node.ELEMENT_NODE&&t.getAttribute("aria-describedby")===i.id}function k(t){var i;const e=null===(i=null==t?void 0:t.focusableRef)||void 0===i?void 0:i.value;return e&&"focusableRef"in e?k(e):e}const{transition:E}=m({hidden:{show:"waiting"},visible:{hide:"hidden",reposition:"positioning",show:"positioning"},waiting:{timeout:"positioning",hide:"hidden"},positioning:{positioned:"visible",hide:"hidden"}});let z=x=class extends e{constructor(){super(...arguments),this.shortcutSlot=new p(this,"shortcut"),this.events=new v(this),this.proxy=document.createElement("span"),this.state="hidden",this.coords=[0,0],this.position="block-start",this.role="tooltip",this.id="",this.delay=500,this.updatePosition=t=>a(t,this,{strategy:"fixed",placement:d(this.position),middleware:[l(8),h(),c({padding:8})]}).then((({x:t,y:i})=>{this.coords=[t,i],this.state=E(this.state,"positioned")})),this.hideTooltip=()=>{this.state=E(this.state,"hide")},this.reposition=()=>{this.state=E(this.state,"reposition")},this.handleShow=t=>{const i=t.target;w(i,this)&&(this.currentElement=i,this.state=E(this.state,"show"))},this.handleHide=t=>{t.target===this.currentElement&&this.hideTooltip()},this.hideOnEscape=t=>{"Escape"===t.key&&this.hideTooltip()},this.addDescribedBy=()=>{const t=k(this.currentElement);t&&(this.proxy.hidden=!0,this.proxy.id=this.id,this.proxy.textContent=this.textContent,t.insertAdjacentElement("afterend",this.proxy),function(t,i,e){const s=y(t,i);s.includes(e)||f(t,i,s.concat(e))}(t,"aria-describedby",this.id))},this.removeDescribedBy=()=>{const t=k(this.currentElement);t&&(this.proxy.remove(),function(t,i,e){const s=y(t,i);s.includes(e)&&f(t,i,s.filter((t=>t!==e)))}(t,"aria-describedby",this.id))}}connectedCallback(){super.connectedCallback();const t=this.getRootNode();this.events.listen(t,"keydown",this.hideOnEscape),this.events.listen(t,"mouseover",this.handleShow),this.events.listen(t,"focusin",this.handleShow),this.events.listen(t,"mouseout",this.handleHide),this.events.listen(t,"focusout",this.handleHide),this.events.listen(t,"click",this.handleHide,{capture:!0}),this.events.listen(window,"resize",this.reposition,{passive:!0}),this.events.listen(window,"scroll",this.reposition,{passive:!0})}render(){return s`<div class="n-tooltip"><slot></slot><div class="n-tooltip-shortcut" ?hidden="${this.shortcutSlot.isEmpty}"><slot class="n-tooltip-key" name="shortcut"></slot></div></div>`}handleIdChange(){this.id||console.warn("NORD: The tooltip requires an id attribute and value")}handleStateChange(t){var i;switch(this.state){case"hidden":"waiting"===t&&this.timeoutId&&clearTimeout(this.timeoutId),this.removeDescribedBy(),this.currentElement=void 0,this.style.visibility="hidden",this.style.opacity="0";break;case"visible":{this.timeoutId=void 0,x.lastOpened=this,this.addDescribedBy();const[t,i]=this.coords;this.style.left=`${t}px`,this.style.top=`${i}px`,this.style.visibility="visible",this.style.opacity="1";break}case"waiting":this.timeoutId=setTimeout((()=>{this.state=E(this.state,"timeout")}),this.delay);break;case"positioning":x.lastOpened!==this&&(null===(i=x.lastOpened)||void 0===i||i.hideTooltip()),this.currentElement&&this.updatePosition(this.currentElement)}}};z.styles=[u,g],i([r()],z.prototype,"state",void 0),i([n({reflect:!0})],z.prototype,"position",void 0),i([n({reflect:!0})],z.prototype,"role",void 0),i([n({reflect:!0})],z.prototype,"id",void 0),i([n({reflect:!0,type:Number})],z.prototype,"delay",void 0),i([b("id")],z.prototype,"handleIdChange",null),i([b("state")],z.prototype,"handleStateChange",null),z=x=i([o("nord-tooltip")],z);var _=z;export{_ as default};
1
+ import{i as t,_ as i,s as e,y as s,e as o}from"./query-assigned-elements-cf502539.js";import{e as n}from"./property-03f59dce.js";import{t as r}from"./state-70f38ceb.js";import{c as a,l as d,o as l,f as h,s as c}from"./positioning-3bbd3548.js";import{S as p}from"./SlotController-d733c575.js";import{s as u}from"./Component-449e40fb.js";import{E as v}from"./EventController-d99ebeef.js";import{f as m}from"./fsm-50373df9.js";import{o as b}from"./observe-a9c6dfb6.js";function y(t,i){const e=t.getAttribute(i);return e?e.split(/\s+/):[]}function f(t,i,e){t.setAttribute(i,e.join(" "))}const g=t`:host{--_n-tooltip-max-size:var(--n-tooltip-max-size, 50ch);--_n-tooltip-background:rgba(20, 20, 20, 0.95);--_n-tooltip-color:#fff;--_n-tooltip-key-border:rgba(255, 255, 255, 0.03);--_n-tooltip-key-background:rgba(255, 255, 255, 0.1);position:fixed;pointer-events:none;visibility:hidden;opacity:0;transition:opacity var(--n-transition-slowly),visibility var(--n-transition-slowly);transition-timing-function:ease;z-index:var(--n-index-popout)}.n-tooltip{gap:var(--n-space-s);font-family:var(--n-font-family);font-size:var(--n-font-size-xs);line-height:var(--n-line-height);color:var(--_n-tooltip-color);padding:calc(var(--n-space-s)/ 1.5) var(--n-space-s);background-color:var(--_n-tooltip-background);border-radius:var(--n-border-radius-s);word-break:break-word;max-inline-size:var(--_n-tooltip-max-size)}.n-tooltip,.n-tooltip-shortcut{display:flex;align-items:center}.n-tooltip-shortcut{gap:2px}::slotted([slot=shortcut]){box-sizing:border-box;margin:0;inline-size:var(--n-size-icon-m);block-size:var(--n-size-icon-m);border-radius:var(--n-border-radius-s);border:1px solid var(--_n-tooltip-key-border)!important;padding:1px!important;text-align:center;font-size:var(--n-font-size-xs);line-height:var(--n-line-height-tight);letter-spacing:-.5px;vertical-align:middle!important;background-color:var(--_n-tooltip-key-background)}[slot=shortcut]::slotted(nord-icon:not([size])){--_n-icon-size:var(--n-size-icon-s)}`;var x;function w(t,i){return Boolean(i.id)&&t.nodeType===Node.ELEMENT_NODE&&t.getAttribute("aria-describedby")===i.id}function k(t){var i;const e=null===(i=null==t?void 0:t.focusableRef)||void 0===i?void 0:i.value;return e&&"focusableRef"in e?k(e):e}const{transition:E}=m({hidden:{show:"waiting"},visible:{hide:"hidden",reposition:"positioning",show:"positioning"},waiting:{timeout:"positioning",hide:"hidden"},positioning:{positioned:"visible",hide:"hidden"}});let z=x=class extends e{constructor(){super(...arguments),this.shortcutSlot=new p(this,"shortcut"),this.events=new v(this),this.proxy=document.createElement("span"),this.state="hidden",this.coords=[0,0],this.position="block-start",this.role="tooltip",this.id="",this.delay=500,this.updatePosition=t=>a(t,this,{strategy:"fixed",placement:d(this.position),middleware:[l(8),h(),c({padding:8})]}).then((({x:t,y:i})=>{this.coords=[t,i],this.state=E(this.state,"positioned")})),this.hideTooltip=()=>{this.state=E(this.state,"hide")},this.reposition=()=>{this.state=E(this.state,"reposition")},this.handleShow=t=>{const i=t.target;w(i,this)&&(this.currentElement=i,this.state=E(this.state,"show"))},this.handleHide=t=>{t.target===this.currentElement&&this.hideTooltip()},this.hideOnEscape=t=>{"Escape"===t.key&&this.hideTooltip()},this.addDescribedBy=()=>{const t=k(this.currentElement);t&&(this.proxy.hidden=!0,this.proxy.id=this.id,this.proxy.textContent=this.textContent,t.insertAdjacentElement("afterend",this.proxy),function(t,i,e){const s=y(t,i);s.includes(e)||f(t,i,s.concat(e))}(t,"aria-describedby",this.id))},this.removeDescribedBy=()=>{const t=k(this.currentElement);t&&(this.proxy.remove(),function(t,i,e){const s=y(t,i);s.includes(e)&&f(t,i,s.filter((t=>t!==e)))}(t,"aria-describedby",this.id))}}connectedCallback(){super.connectedCallback();const t=this.getRootNode();this.events.listen(t,"keydown",this.hideOnEscape),this.events.listen(t,"mouseover",this.handleShow),this.events.listen(t,"focusin",this.handleShow),this.events.listen(t,"mouseout",this.handleHide),this.events.listen(t,"focusout",this.handleHide),this.events.listen(t,"click",this.handleHide,{capture:!0}),this.events.listen(window,"resize",this.reposition,{passive:!0}),this.events.listen(window,"scroll",this.reposition,{passive:!0})}render(){return s`<div class="n-tooltip"><slot></slot><div class="n-tooltip-shortcut" ?hidden="${this.shortcutSlot.isEmpty}"><slot class="n-tooltip-key" name="shortcut"></slot></div></div>`}handleIdChange(){this.id||console.warn("NORD: The tooltip requires an id attribute and value")}handleStateChange(t){var i;switch(this.state){case"hidden":"waiting"===t&&this.timeoutId&&clearTimeout(this.timeoutId),this.removeDescribedBy(),this.currentElement=void 0,this.style.visibility="hidden",this.style.opacity="0";break;case"visible":{this.timeoutId=void 0,x.lastOpened=this,this.addDescribedBy();const[t,i]=this.coords;this.style.left=`${t}px`,this.style.top=`${i}px`,this.style.visibility="visible",this.style.opacity="1";break}case"waiting":this.timeoutId=setTimeout((()=>{this.state=E(this.state,"timeout")}),this.delay);break;case"positioning":x.lastOpened!==this&&(null===(i=x.lastOpened)||void 0===i||i.hideTooltip()),this.currentElement&&this.updatePosition(this.currentElement)}}};z.styles=[u,g],i([r()],z.prototype,"state",void 0),i([n({reflect:!0})],z.prototype,"position",void 0),i([n({reflect:!0})],z.prototype,"role",void 0),i([n({reflect:!0})],z.prototype,"id",void 0),i([n({reflect:!0,type:Number})],z.prototype,"delay",void 0),i([b("id")],z.prototype,"handleIdChange",null),i([b("state")],z.prototype,"handleStateChange",null),z=x=i([o("nord-tooltip")],z);var _=z;export{_ as default};
2
2
  //# sourceMappingURL=Tooltip.js.map
@@ -1,2 +1,2 @@
1
- import{i as t,_ as e,s as i,y as o,e as n}from"./query-assigned-elements-89f41e17.js";const r=t`:host{all:initial;border:0!important;clip:rect(1px,1px,1px,1px)!important;block-size:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;inset-block-start:0;inline-size:1px!important}`;let s=class extends i{render(){return o`<slot></slot>`}};s.styles=r,s=e([n("nord-visually-hidden")],s);var a=s;export{a as default};
1
+ import{i as t,_ as e,s as i,y as o,e as n}from"./query-assigned-elements-cf502539.js";const r=t`:host{all:initial;border:0!important;clip:rect(1px,1px,1px,1px)!important;block-size:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;inset-block-start:0;inline-size:1px!important}`;let s=class extends i{render(){return o`<slot></slot>`}};s.styles=r,s=e([n("nord-visually-hidden")],s);var a=s;export{a as default};
2
2
  //# sourceMappingURL=VisuallyHidden.js.map