@nordhealth/components 2.11.0 → 2.12.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/custom-elements.json +1745 -1821
- package/lib/{AutocompleteMixin-370de2be.js → AutocompleteMixin-5163f8db.js} +2 -2
- package/lib/{AutocompleteMixin-370de2be.js.map → AutocompleteMixin-5163f8db.js.map} +1 -1
- package/lib/Avatar.js +1 -1
- package/lib/Avatar.js.map +1 -1
- package/lib/Badge.js +1 -1
- package/lib/Badge.js.map +1 -1
- package/lib/Banner.js +1 -1
- package/lib/Banner.js.map +1 -1
- package/lib/Button.js +1 -1
- package/lib/Button.js.map +1 -1
- package/lib/ButtonGroup.js +1 -1
- package/lib/ButtonGroup.js.map +1 -1
- package/lib/Calendar-e3786f07.js +2 -0
- package/lib/Calendar-e3786f07.js.map +1 -0
- package/lib/Calendar.js +1 -1
- package/lib/Card.js +1 -1
- package/lib/Card.js.map +1 -1
- package/lib/Checkbox.js +1 -1
- package/lib/Checkbox.js.map +1 -1
- package/lib/CommandMenu.js +1 -1
- package/lib/CommandMenu.js.map +1 -1
- package/lib/CommandMenuAction.js +1 -1
- package/lib/CommandMenuAction.js.map +1 -1
- package/lib/Component-449e40fb.js +2 -0
- package/lib/Component-449e40fb.js.map +1 -0
- package/lib/DatePicker.js +1 -1
- package/lib/DatePicker.js.map +1 -1
- package/lib/Divider.js +1 -1
- package/lib/Divider.js.map +1 -1
- package/lib/Drawer.js +1 -1
- package/lib/Drawer.js.map +1 -1
- package/lib/Dropdown.js +1 -1
- package/lib/Dropdown.js.map +1 -1
- package/lib/DropdownGroup.js +1 -1
- package/lib/DropdownGroup.js.map +1 -1
- package/lib/DropdownItem.js +1 -1
- package/lib/DropdownItem.js.map +1 -1
- package/lib/EmptyState.js +1 -1
- package/lib/EmptyState.js.map +1 -1
- package/lib/Fieldset.js +1 -1
- package/lib/Fieldset.js.map +1 -1
- package/lib/{FocusableMixin-34870ed3.js → FocusableMixin-32631bff.js} +2 -2
- package/lib/{FocusableMixin-34870ed3.js.map → FocusableMixin-32631bff.js.map} +1 -1
- package/lib/FormAssociatedMixin-e8bc2869.js +2 -0
- package/lib/{FormAssociatedMixin-aa74901e.js.map → FormAssociatedMixin-e8bc2869.js.map} +1 -1
- package/lib/FormField-413f22f5.js +2 -0
- package/lib/FormField-413f22f5.js.map +1 -0
- package/lib/Header.js +1 -1
- package/lib/Header.js.map +1 -1
- package/lib/Icon.js +2 -2
- package/lib/Input.js +1 -1
- package/lib/Input.js.map +1 -1
- package/lib/{InputMixin-158f63fb.js → InputMixin-7fa755e1.js} +2 -2
- package/lib/{InputMixin-158f63fb.js.map → InputMixin-7fa755e1.js.map} +1 -1
- package/lib/Layout.js +1 -1
- package/lib/Layout.js.map +1 -1
- package/lib/LightDomController-052f446a.js +2 -0
- package/lib/{LightDomController-3c726b20.js.map → LightDomController-052f446a.js.map} +1 -1
- package/lib/Modal.js +1 -1
- package/lib/Modal.js.map +1 -1
- package/lib/NavGroup.js +1 -1
- package/lib/NavGroup.js.map +1 -1
- package/lib/NavItem.js +1 -1
- package/lib/NavItem.js.map +1 -1
- package/lib/NavToggle.js +1 -1
- package/lib/NavToggle.js.map +1 -1
- package/lib/Navigation.js +1 -1
- package/lib/Navigation.js.map +1 -1
- package/lib/Popout-dae54e30.js +2 -0
- package/lib/{Popout-4aa0cc87.js.map → Popout-dae54e30.js.map} +1 -1
- package/lib/Popout.js +1 -1
- package/lib/ProgressBar.js +1 -1
- package/lib/ProgressBar.js.map +1 -1
- package/lib/Qrcode.js +1 -1
- package/lib/Qrcode.js.map +1 -1
- package/lib/Radio.js +1 -1
- package/lib/Radio.js.map +1 -1
- package/lib/Range.js +1 -1
- package/lib/Range.js.map +1 -1
- package/lib/Select.js +1 -1
- package/lib/Select.js.map +1 -1
- package/lib/{SizeMixin-4559b224.js → SizeMixin-d5afdb92.js} +2 -2
- package/lib/{SizeMixin-4559b224.js.map → SizeMixin-d5afdb92.js.map} +1 -1
- package/lib/Skeleton.js +1 -1
- package/lib/Skeleton.js.map +1 -1
- package/lib/Spinner.js +1 -1
- package/lib/Spinner.js.map +1 -1
- package/lib/Stack.js +1 -1
- package/lib/Stack.js.map +1 -1
- package/lib/Sticky-c4cf185e.js +2 -0
- package/lib/Sticky-c4cf185e.js.map +1 -0
- package/lib/Tab.js +1 -1
- package/lib/Tab.js.map +1 -1
- package/lib/TabGroup.js +1 -1
- package/lib/TabGroup.js.map +1 -1
- package/lib/TabPanel.js +1 -1
- package/lib/TabPanel.js.map +1 -1
- package/lib/Table.js +1 -1
- package/lib/Table.js.map +1 -1
- package/lib/TextField-ca819c35.js +2 -0
- package/lib/{TextField-db22898b.js.map → TextField-ca819c35.js.map} +1 -1
- package/lib/Textarea.js +1 -1
- package/lib/Textarea.js.map +1 -1
- package/lib/Toast.js +1 -1
- package/lib/Toast.js.map +1 -1
- package/lib/ToastGroup.js +1 -1
- package/lib/ToastGroup.js.map +1 -1
- package/lib/Toggle.js +1 -1
- package/lib/Toggle.js.map +1 -1
- package/lib/Tooltip.js +1 -1
- package/lib/Tooltip.js.map +1 -1
- package/lib/VisuallyHidden.js +1 -1
- package/lib/VisuallyHidden.js.map +1 -1
- package/lib/bundle.js +8 -8
- package/lib/bundle.js.map +1 -1
- package/lib/class-map-21152cee.js +7 -0
- package/lib/{class-map-949b7d3b.js.map → class-map-21152cee.js.map} +1 -1
- package/lib/collection-7eee4e72.js +7 -0
- package/lib/collection-7eee4e72.js.map +1 -0
- package/lib/cond-2da54107.js +2 -0
- package/lib/{cond-338158e9.js.map → cond-2da54107.js.map} +1 -1
- package/lib/date-adapter.js +1 -1
- package/lib/{dates-a8de5b83.js → dates-5b651fbe.js} +2 -2
- package/lib/{dates-a8de5b83.js.map → dates-5b651fbe.js.map} +1 -1
- package/lib/if-defined-720964c0.js +7 -0
- package/lib/{if-defined-4598a996.js.map → if-defined-720964c0.js.map} +1 -1
- package/lib/index.js +1 -1
- package/lib/query-assigned-elements-cf502539.js +35 -0
- package/lib/query-assigned-elements-cf502539.js.map +1 -0
- package/lib/{ref-0e619221.js → ref-c44e9f3c.js} +5 -5
- package/lib/{ref-0e619221.js.map → ref-c44e9f3c.js.map} +1 -1
- package/lib/src/calendar/Calendar.d.ts +10 -3
- package/lib/src/calendar/Calendar.test.d.ts +0 -1
- package/lib/src/date-picker/DatePicker.d.ts +10 -2
- package/lib/src/date-picker/DatePicker.test.d.ts +0 -1
- package/lib/src/modal/Modal.d.ts +1 -1
- package/lib/src/nav-toggle/NavToggle.d.ts +1 -1
- package/lib/src/qrcode/Qrcode.d.ts +1 -1
- package/lib/src/range/Range.d.ts +1 -1
- package/lib/src/tab/Tab.d.ts +1 -1
- package/lib/src/tab-group/TabGroup.d.ts +1 -1
- package/lib/src/tab-panel/TabPanel.d.ts +1 -1
- package/lib/src/toast/Toast.d.ts +1 -1
- package/lib/src/toast-group/ToastGroup.d.ts +1 -1
- package/lib/src/toast-group/ToastGroup.test.d.ts +0 -1
- package/lib/src/toggle/Toggle.d.ts +1 -1
- package/lib/{style-map-2fe03b77.js → style-map-2e8fcab6.js} +2 -2
- package/lib/{style-map-2fe03b77.js.map → style-map-2e8fcab6.js.map} +1 -1
- package/package.json +2 -2
- package/lib/Calendar-29123404.js +0 -2
- package/lib/Calendar-29123404.js.map +0 -1
- package/lib/Component-92eb6234.js +0 -2
- package/lib/Component-92eb6234.js.map +0 -1
- package/lib/FormAssociatedMixin-aa74901e.js +0 -2
- package/lib/FormField-ae3570d2.js +0 -2
- package/lib/FormField-ae3570d2.js.map +0 -1
- package/lib/LightDomController-3c726b20.js +0 -2
- package/lib/Popout-4aa0cc87.js +0 -2
- package/lib/Sticky-991acfdd.js +0 -2
- package/lib/Sticky-991acfdd.js.map +0 -1
- package/lib/TextField-db22898b.js +0 -2
- package/lib/class-map-949b7d3b.js +0 -7
- package/lib/collection-800f5002.js +0 -2
- package/lib/collection-800f5002.js.map +0 -1
- package/lib/cond-338158e9.js +0 -2
- package/lib/if-defined-4598a996.js +0 -7
- package/lib/lit-element-9178eae5.js +0 -24
- package/lib/lit-element-9178eae5.js.map +0 -1
- package/lib/month-view.js +0 -2
- package/lib/month-view.js.map +0 -1
- package/lib/query-assigned-elements-e6cbac30.js +0 -12
- package/lib/query-assigned-elements-e6cbac30.js.map +0 -1
- package/lib/repeat-ae6f075f.js +0 -7
- package/lib/repeat-ae6f075f.js.map +0 -1
- package/lib/src/calendar/month-view.d.ts +0 -32
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as e}from"./query-assigned-elements-
|
|
2
|
-
//# sourceMappingURL=AutocompleteMixin-
|
|
1
|
+
import{_ as e}from"./query-assigned-elements-cf502539.js";import{e as o}from"./property-03f59dce.js";function t(t){class r extends t{constructor(){super(...arguments),this.autocomplete="off"}}return e([o()],r.prototype,"autocomplete",void 0),r}export{t as A};
|
|
2
|
+
//# sourceMappingURL=AutocompleteMixin-5163f8db.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteMixin-
|
|
1
|
+
{"version":3,"file":"AutocompleteMixin-5163f8db.js","sources":["../src/common/mixins/AutocompleteMixin.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { LitElement } from \"lit\"\nimport { property } from \"lit/decorators.js\"\n\ntype Constructor<T = Record<string, unknown>> = new (...args: any[]) => T\ntype AutocompleteAttribute =\n | \"off\"\n | \"on\"\n | \"name\"\n | \"honorific-prefix\"\n | \"given-name\"\n | \"additional-name\"\n | \"family-name\"\n | \"honorific-suffix\"\n | \"nickname\"\n | \"email\"\n | \"username\"\n | \"new-password\"\n | \"current-password\"\n | \"one-time-code\"\n | \"organization-title\"\n | \"organization\"\n | \"street-address\"\n | \"address-line1\"\n | \"address-line2\"\n | \"address-line3\"\n | \"address-level4\"\n | \"address-level3\"\n | \"address-level2\"\n | \"address-level1\"\n | \"country\"\n | \"country-name\"\n | \"postal-code\"\n | \"cc-name\"\n | \"cc-given-name\"\n | \"cc-additional-name\"\n | \"cc-family-name\"\n | \"cc-number\"\n | \"cc-exp\"\n | \"cc-exp-month\"\n | \"cc-exp-year\"\n | \"cc-csc\"\n | \"cc-type\"\n | \"transaction-currency\"\n | \"transaction-amount\"\n | \"language\"\n | \"bday\"\n | \"bday-day\"\n | \"bday-month\"\n | \"bday-year\"\n | \"sex\"\n | \"tel\"\n | \"tel-country-code\"\n | \"tel-national\"\n | \"tel-area-code\"\n | \"tel-local\"\n | \"tel-extension\"\n | \"impp\"\n | \"url\"\n | \"photo\"\n\nexport declare class AutocompleteMixinInterface {\n autocomplete: AutocompleteAttribute\n}\n\nexport function AutocompleteMixin<T extends Constructor<LitElement>>(\n superClass: T\n): Constructor<AutocompleteMixinInterface> & T {\n class AutocompleteElement extends superClass {\n /**\n * Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.\n */\n @property() autocomplete: AutocompleteAttribute = \"off\"\n }\n\n return AutocompleteElement\n}\n"],"names":["AutocompleteMixin","superClass","AutocompleteElement","constructor","this","autocomplete","__decorate","property","prototype"],"mappings":"qGAiEM,SAAUA,EACdC,GAEA,MAAMC,UAA4BD,EAAlCE,kCAIcC,KAAYC,aAA0B,KACnD,EAED,OAHcC,EAAA,CAAXC,KAAsDL,EAAAM,UAAA,oBAAA,GAGlDN,CACT"}
|
package/lib/Avatar.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as a,_ as r,s as t,y as e,b as s,e as i}from"./query-assigned-elements-cf502539.js";import{e as n}from"./property-03f59dce.js";import{t as o}from"./state-70f38ceb.js";import{s as l}from"./Component-449e40fb.js";import{f as v}from"./fsm-50373df9.js";import{o as c}from"./observe-a9c6dfb6.js";import"./VisuallyHidden.js";const d=a`:host{--_n-avatar-color:var(--n-avatar-color, var(--n-color-status-highlight));--_n-avatar-size:var(--n-avatar-size, var(--n-size-icon-l));--_n-avatar-border-radius:var(--n-border-radius-circle);--_n-avatar-font-size:var(--n-font-size-xs);--_n-avatar-box-shadow:none;display:inline-flex;block-size:var(--_n-avatar-size);inline-size:var(--_n-avatar-size)}:host(:empty) .n-avatar-inner,:host(:not(:empty)) svg{display:none}.n-avatar{background:var(--_n-avatar-color);border-radius:var(--_n-avatar-border-radius);box-shadow:var(--_n-avatar-box-shadow);overflow:hidden;inline-size:100%;block-size:100%;display:grid;place-items:center;color:var(--n-color-text-on-accent);font-size:var(--_n-avatar-font-size);font-weight:var(--n-font-weight-active)}img,svg{inline-size:100%;block-size:auto;object-fit:cover}.n-loading{display:none}:host([size="s"]){--_n-avatar-size:var(--n-avatar-size, calc(var(--n-size-icon-m) * 1.25));--_n-avatar-font-size:calc(var(--n-font-size-xs) / 1.1)}:host([size="l"]){--_n-avatar-size:var(--n-avatar-size, var(--n-size-icon-xl));--_n-avatar-font-size:var(--n-font-size-m)}:host([size=xl]){--_n-avatar-size:var(--n-avatar-size, var(--n-size-icon-xxl));--_n-avatar-font-size:var(--n-font-size-xxl)}:host([size=xxl]){--_n-avatar-size:var(--n-avatar-size, calc(var(--n-size-icon-xxl) * 1.5));--_n-avatar-font-size:var(--n-font-size-xxxl)}:host([variant=square]){--_n-avatar-color:var(--n-avatar-color, var(--n-color-accent));--_n-avatar-border-radius:var(--n-border-radius);--_n-avatar-box-shadow:var(--n-box-shadow)}`,{transition:h}=v({initial:{"src-set":"loading"},loading:{load:"loaded",error:"initial","src-clear":"initial"},loaded:{"src-set":"loading","src-clear":"initial"}});let f=class extends t{constructor(){super(...arguments),this.state="initial",this.size="m",this.name="",this.variant="default"}render(){return e`<div class="n-avatar">${"initial"!==this.state?this.renderImage():s} ${"loaded"!==this.state?this.renderFallback():s}</div>`}handleSrcChange(){const a=this.src?"src-set":"src-clear";this.state=h(this.state,a)}renderImage(){return this.src?e`<slot hidden></slot><img class="n-${this.state}" src="${this.src}" @load="${this.handleLoad}" @error="${this.handleError}" alt="${this.name||""}">`:s}renderFallback(){return e`<nord-visually-hidden>${this.name}</nord-visually-hidden><div class="n-avatar-inner" aria-hidden="true"><slot></slot></div><svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 27"><rect fill="var(--_n-avatar-color)" height="27" rx="12" width="27" x="0" y="0"></rect><g fill="#fff" opacity=".5"><circle cx="13.5" cy="30" r="13"></circle><circle cx="13.5" cy="11" r="5"></circle></g></svg>`}handleLoad(){this.state=h(this.state,"load")}handleError(){this.state=h(this.state,"error")}};f.styles=[l,d],r([o()],f.prototype,"state",void 0),r([n({reflect:!0})],f.prototype,"size",void 0),r([n({reflect:!0})],f.prototype,"src",void 0),r([n()],f.prototype,"name",void 0),r([n({reflect:!0})],f.prototype,"variant",void 0),r([c("src")],f.prototype,"handleSrcChange",null),f=r([i("nord-avatar")],f);var z=f;export{z as default};
|
|
2
2
|
//# sourceMappingURL=Avatar.js.map
|
package/lib/Avatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sources":["../src/avatar/Avatar.ts"],"sourcesContent":["import { LitElement, html, nothing } from \"lit\"\nimport { customElement, property, state } from \"lit/decorators.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Avatar.css\"\nimport { fsm, States } from \"../common/fsm.js\"\nimport { observe } from \"../common/decorators/observe.js\"\nimport \"../visually-hidden/VisuallyHidden.js\"\n\nconst { transition } = fsm({\n initial: {\n \"src-set\": \"loading\",\n },\n loading: {\n load: \"loaded\",\n error: \"initial\",\n \"src-clear\": \"initial\",\n },\n loaded: {\n \"src-set\": \"loading\",\n \"src-clear\": \"initial\",\n },\n})\n\n/**\n * Avatar is used for showing a thumbnail representation of a user or entity.\n * Default avatar illustration is displayed when no src is specified.\n *\n * @status ready\n * @category image\n *\n * @cssprop [--n-avatar-color=var(--n-color-status-highlight)] - Controls the color of the avatar fallback, using [color tokens](/tokens/#color).\n * @cssprop [--n-avatar-size=var(--n-size-icon-l)] - Controls the size of the avatar, using [icon sizing tokens](/tokens/#size).\n */\n\n@customElement(\"nord-avatar\")\nexport default class Avatar extends LitElement {\n static styles = [componentStyle, style]\n\n @state() private state: States<typeof transition> = \"initial\"\n\n /**\n * The size of the avatar.\n */\n @property({ reflect: true }) size: \"s\" | \"m\" | \"l\" | \"xl\" | \"xxl\" = \"m\"\n\n /**\n * The URL of the avatar image uploaded by the user.\n */\n @property({ reflect: true }) src?: string\n\n /**\n * The name of the person.\n */\n @property() name: string = \"\"\n\n /**\n * The style variant of the avatar.\n */\n @property({ reflect: true }) variant: \"default\" | \"square\" = \"default\"\n\n render() {\n return html`\n <div class=\"n-avatar\">\n ${this.state !== \"initial\" ? this.renderImage() : nothing}\n ${this.state !== \"loaded\" ? this.renderFallback() : nothing}\n </div>\n `\n }\n\n @observe(\"src\")\n protected handleSrcChange() {\n const event = this.src ? \"src-set\" : \"src-clear\"\n this.state = transition(this.state, event)\n }\n\n protected renderImage() {\n return this.src\n ? html`\n <slot hidden></slot>\n <img\n class=\"n-${this.state}\"\n src=${this.src}\n @load=${this.handleLoad}\n @error=${this.handleError}\n alt=${this.name || \"\"}\n />\n `\n : nothing\n }\n\n protected renderFallback() {\n return html`\n <nord-visually-hidden>${this.name}</nord-visually-hidden>\n <div class=\"n-avatar-inner\" aria-hidden=\"true\">\n <slot></slot>\n </div>\n <svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 27 27\">\n <rect fill=\"var(--_n-avatar-color)\" height=\"27\" rx=\"12\" width=\"27\" x=\"0\" y=\"0\"></rect>\n <g fill=\"#fff\" opacity=\".5\">\n <circle cx=\"13.5\" cy=\"30\" r=\"13\"></circle>\n <circle cx=\"13.5\" cy=\"11\" r=\"5\"></circle>\n </g>\n </svg>\n `\n }\n\n private handleLoad() {\n this.state = transition(this.state, \"load\")\n }\n\n private handleError() {\n this.state = transition(this.state, \"error\")\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-avatar\": Avatar\n }\n}\n"],"names":["transition","fsm","initial","loading","load","error","loaded","Avatar","LitElement","constructor","this","state","size","name","variant","render","html","renderImage","nothing","renderFallback","handleSrcChange","event","src","handleLoad","handleError","styles","componentStyle","style","__decorate","prototype","property","reflect","observe","customElement"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Avatar.js","sources":["../src/avatar/Avatar.ts"],"sourcesContent":["import { LitElement, html, nothing } from \"lit\"\nimport { customElement, property, state } from \"lit/decorators.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Avatar.css\"\nimport { fsm, States } from \"../common/fsm.js\"\nimport { observe } from \"../common/decorators/observe.js\"\nimport \"../visually-hidden/VisuallyHidden.js\"\n\nconst { transition } = fsm({\n initial: {\n \"src-set\": \"loading\",\n },\n loading: {\n load: \"loaded\",\n error: \"initial\",\n \"src-clear\": \"initial\",\n },\n loaded: {\n \"src-set\": \"loading\",\n \"src-clear\": \"initial\",\n },\n})\n\n/**\n * Avatar is used for showing a thumbnail representation of a user or entity.\n * Default avatar illustration is displayed when no src is specified.\n *\n * @status ready\n * @category image\n *\n * @cssprop [--n-avatar-color=var(--n-color-status-highlight)] - Controls the color of the avatar fallback, using [color tokens](/tokens/#color).\n * @cssprop [--n-avatar-size=var(--n-size-icon-l)] - Controls the size of the avatar, using [icon sizing tokens](/tokens/#size).\n */\n\n@customElement(\"nord-avatar\")\nexport default class Avatar extends LitElement {\n static styles = [componentStyle, style]\n\n @state() private state: States<typeof transition> = \"initial\"\n\n /**\n * The size of the avatar.\n */\n @property({ reflect: true }) size: \"s\" | \"m\" | \"l\" | \"xl\" | \"xxl\" = \"m\"\n\n /**\n * The URL of the avatar image uploaded by the user.\n */\n @property({ reflect: true }) src?: string\n\n /**\n * The name of the person.\n */\n @property() name: string = \"\"\n\n /**\n * The style variant of the avatar.\n */\n @property({ reflect: true }) variant: \"default\" | \"square\" = \"default\"\n\n render() {\n return html`\n <div class=\"n-avatar\">\n ${this.state !== \"initial\" ? this.renderImage() : nothing}\n ${this.state !== \"loaded\" ? this.renderFallback() : nothing}\n </div>\n `\n }\n\n @observe(\"src\")\n protected handleSrcChange() {\n const event = this.src ? \"src-set\" : \"src-clear\"\n this.state = transition(this.state, event)\n }\n\n protected renderImage() {\n return this.src\n ? html`\n <slot hidden></slot>\n <img\n class=\"n-${this.state}\"\n src=${this.src}\n @load=${this.handleLoad}\n @error=${this.handleError}\n alt=${this.name || \"\"}\n />\n `\n : nothing\n }\n\n protected renderFallback() {\n return html`\n <nord-visually-hidden>${this.name}</nord-visually-hidden>\n <div class=\"n-avatar-inner\" aria-hidden=\"true\">\n <slot></slot>\n </div>\n <svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 27 27\">\n <rect fill=\"var(--_n-avatar-color)\" height=\"27\" rx=\"12\" width=\"27\" x=\"0\" y=\"0\"></rect>\n <g fill=\"#fff\" opacity=\".5\">\n <circle cx=\"13.5\" cy=\"30\" r=\"13\"></circle>\n <circle cx=\"13.5\" cy=\"11\" r=\"5\"></circle>\n </g>\n </svg>\n `\n }\n\n private handleLoad() {\n this.state = transition(this.state, \"load\")\n }\n\n private handleError() {\n this.state = transition(this.state, \"error\")\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-avatar\": Avatar\n }\n}\n"],"names":["transition","fsm","initial","loading","load","error","loaded","Avatar","LitElement","constructor","this","state","size","name","variant","render","html","renderImage","nothing","renderFallback","handleSrcChange","event","src","handleLoad","handleError","styles","componentStyle","style","__decorate","prototype","property","reflect","observe","customElement"],"mappings":"o1DASMA,WAAEA,GAAeC,EAAI,CACzBC,QAAS,CACP,UAAW,WAEbC,QAAS,CACPC,KAAM,SACNC,MAAO,UACP,YAAa,WAEfC,OAAQ,CACN,UAAW,UACX,YAAa,aAgBjB,IAAqBC,EAArB,cAAoCC,EAApCC,kCAGmBC,KAAKC,MAA8B,UAKvBD,KAAIE,KAAmC,IAUxDF,KAAIG,KAAW,GAKEH,KAAOI,QAAyB,SAuD9D,CArDCC,SACE,OAAOC,CAAI,yBAEU,YAAfN,KAAKC,MAAsBD,KAAKO,cAAgBC,KACjC,WAAfR,KAAKC,MAAqBD,KAAKS,iBAAmBD,SAGzD,CAGSE,kBACR,MAAMC,EAAQX,KAAKY,IAAM,UAAY,YACrCZ,KAAKC,MAAQX,EAAWU,KAAKC,MAAOU,EACrC,CAESJ,cACR,OAAOP,KAAKY,IACRN,CAAI,qCAGWN,KAAKC,eACVD,KAAKY,eACHZ,KAAKa,uBACJb,KAAKc,qBACRd,KAAKG,MAAQ,OAGvBK,CACL,CAESC,iBACR,OAAOH,CAAI,yBACeN,KAAKG,6XAYhC,CAEOU,aACNb,KAAKC,MAAQX,EAAWU,KAAKC,MAAO,OACrC,CAEOa,cACNd,KAAKC,MAAQX,EAAWU,KAAKC,MAAO,QACrC,GA5EMJ,EAAAkB,OAAS,CAACC,EAAgBC,GAExBC,EAAA,CAARjB,KAA4DJ,EAAAsB,UAAA,aAAA,GAKhCD,EAAA,CAA5BE,EAAS,CAAEC,SAAS,KAAkDxB,EAAAsB,UAAA,YAAA,GAK1CD,EAAA,CAA5BE,EAAS,CAAEC,SAAS,KAAoBxB,EAAAsB,UAAA,WAAA,GAK7BD,EAAA,CAAXE,KAA4BvB,EAAAsB,UAAA,YAAA,GAKAD,EAAA,CAA5BE,EAAS,CAAEC,SAAS,KAAiDxB,EAAAsB,UAAA,eAAA,GAYtED,EAAA,CADCI,EAAQ,QAIRzB,EAAAsB,UAAA,kBAAA,MAtCkBtB,EAAMqB,EAAA,CAD1BK,EAAc,gBACM1B,SAAAA"}
|
package/lib/Badge.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as e,_ as o,s as t,y as r,e as s}from"./query-assigned-elements-cf502539.js";import{e as a}from"./property-03f59dce.js";import n from"./Icon.js";import{s as l}from"./Component-449e40fb.js";import"./state-70f38ceb.js";import"./if-defined-720964c0.js";import"./directive-de55b00a.js";import"./observe-a9c6dfb6.js";import"./cond-2da54107.js";const c="interface-cancelled-small";var i=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m7.80265 23.7423c-2.51458-4.4598-1.87318-10.2181 1.9242-14.01545 3.79735-3.79738 9.55565-4.43878 14.01545-1.9242zm4.45465 4.4548 15.9398-15.9398c2.5149 4.4599 1.8735 10.2184-1.9239 14.0159-3.7975 3.7974-9.556 4.4388-14.0159 1.9239zm-6.98522 2.5308c-7.02944-7.0294-7.02944-18.4264 0-25.45582 7.02942-7.02944 18.42642-7.02944 25.45582 0 7.0295 7.02942 7.0295 18.42642 0 25.45582-7.0294 7.0295-18.4264 7.0295-25.45582 0z" fill="currentColor" fill-rule="evenodd"/></svg>',title:c,tags:"nordicon interface small badge process indicator status cancelled progress"});const d="interface-complete-small";var p=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg"><circle cx="18" cy="18" fill="currentColor" r="18"/></svg>',title:d,tags:"nordicon interface small badge process indicator status fulfilled complete progress"});const g="interface-incomplete-small";var f=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m18 29.7c6.4617 0 11.7-5.2383 11.7-11.7s-5.2383-11.7-11.7-11.7-11.7 5.2383-11.7 11.7 5.2383 11.7 11.7 11.7zm0 6.3c9.9411 0 18-8.0589 18-18 0-9.94112-8.0589-18-18-18-9.94112 0-18 8.05888-18 18 0 9.9411 8.05888 18 18 18z" fill="currentColor" fill-rule="evenodd"/></svg>',title:g,tags:"nordicon interface small badge process indicator status cancelled unfulfilled incomplete progress"});const v="interface-partially-complete-small";var m=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m6.3 18h23.4c0-6.4617-5.2383-11.7-11.7-11.7s-11.7 5.2383-11.7 11.7zm29.7 0c0 9.9411-8.0589 18-18 18-9.94113 0-18-8.0589-18-18 0-9.94113 8.05887-18 18-18 9.9411 0 18 8.05887 18 18z" fill="currentColor" fill-rule="evenodd"/></svg>',title:v,tags:"nordicon interface small badge process indicator status partially fulfilled complete progress"});const u=e`:host{--_n-badge-color:var(--n-color-text);--_n-badge-chip-color:var(--n-color-status-neutral-weak);display:inline;vertical-align:middle}.n-badge{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;border-radius:var(--n-border-radius-pill);background:var(--_n-badge-chip-color);font-size:var(--n-font-size-s);font-family:var(--n-font-family);font-weight:var(--n-font-weight);font-feature-settings:var(--n-font-features);line-height:var(--n-line-height);letter-spacing:0;padding-block-start:calc(var(--n-space-s)/ 4);padding-block-end:calc(var(--n-space-s)/ 4);padding-inline-start:var(--n-space-s);padding-inline-end:var(--n-space-s);color:var(--_n-badge-color);gap:calc(var(--n-space-s)/ 2);align-items:center;display:inline-flex;white-space:nowrap;position:relative}:host([type=success]){--_n-badge-chip-color:var(--n-color-status-success-weak)}:host([type=warning]){--_n-badge-chip-color:var(--n-color-status-warning-weak)}:host([type=highlight]){--_n-badge-chip-color:var(--n-color-status-highlight-weak)}:host([type=info]){--_n-badge-chip-color:var(--n-color-status-info-weak)}:host([type=progress]){--_n-badge-chip-color:var(--n-color-status-progress-weak)}:host([type=danger]){--_n-badge-chip-color:var(--n-color-status-danger);--_n-badge-color:var(--n-color-text-on-accent)}`;n.registerIcon(i),n.registerIcon(p),n.registerIcon(f),n.registerIcon(m);const h={cancelled:c,complete:d,incomplete:g,"partially-complete":v};let b=class extends t{constructor(){super(...arguments),this.type="neutral"}render(){const e=this.progress?h[this.progress]:"";return r`<span class="n-badge"><nord-icon name="${e}" size="xxs" ?hidden="${!e}"></nord-icon><slot></slot></span>`}};b.styles=[l,u],o([a({reflect:!0})],b.prototype,"type",void 0),o([a()],b.prototype,"progress",void 0),b=o([s("nord-badge")],b);var w=b;export{w as default};
|
|
2
2
|
//# sourceMappingURL=Badge.js.map
|
package/lib/Badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sources":["../../icons/lib/assets/interface-cancelled-small.js","../../icons/lib/assets/interface-complete-small.js","../../icons/lib/assets/interface-incomplete-small.js","../../icons/lib/assets/interface-partially-complete-small.js","../src/badge/Badge.ts"],"sourcesContent":["export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path clip-rule=\"evenodd\" d=\"m7.80265 23.7423c-2.51458-4.4598-1.87318-10.2181 1.9242-14.01545 3.79735-3.79738 9.55565-4.43878 14.01545-1.9242zm4.45465 4.4548 15.9398-15.9398c2.5149 4.4599 1.8735 10.2184-1.9239 14.0159-3.7975 3.7974-9.556 4.4388-14.0159 1.9239zm-6.98522 2.5308c-7.02944-7.0294-7.02944-18.4264 0-25.45582 7.02942-7.02944 18.42642-7.02944 25.45582 0 7.0295 7.02942 7.0295 18.42642 0 25.45582-7.0294 7.0295-18.4264 7.0295-25.45582 0z\" fill=\"currentColor\" fill-rule=\"evenodd\"/></svg>'\nexport const title = \"interface-cancelled-small\"\nexport const tags = \"nordicon interface small badge process indicator status cancelled progress\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"18\" cy=\"18\" fill=\"currentColor\" r=\"18\"/></svg>'\nexport const title = \"interface-complete-small\"\nexport const tags = \"nordicon interface small badge process indicator status fulfilled complete progress\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path clip-rule=\"evenodd\" d=\"m18 29.7c6.4617 0 11.7-5.2383 11.7-11.7s-5.2383-11.7-11.7-11.7-11.7 5.2383-11.7 11.7 5.2383 11.7 11.7 11.7zm0 6.3c9.9411 0 18-8.0589 18-18 0-9.94112-8.0589-18-18-18-9.94112 0-18 8.05888-18 18 0 9.9411 8.05888 18 18 18z\" fill=\"currentColor\" fill-rule=\"evenodd\"/></svg>'\nexport const title = \"interface-incomplete-small\"\nexport const tags = \"nordicon interface small badge process indicator status cancelled unfulfilled incomplete progress\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path clip-rule=\"evenodd\" d=\"m6.3 18h23.4c0-6.4617-5.2383-11.7-11.7-11.7s-11.7 5.2383-11.7 11.7zm29.7 0c0 9.9411-8.0589 18-18 18-9.94113 0-18-8.0589-18-18 0-9.94113 8.05887-18 18-18 9.9411 0 18 8.05887 18 18z\" fill=\"currentColor\" fill-rule=\"evenodd\"/></svg>'\nexport const title = \"interface-partially-complete-small\"\nexport const tags = \"nordicon interface small badge process indicator status partially fulfilled complete progress\"\n","import { LitElement, html } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport * as cancelledIcon from \"@nordhealth/icons/lib/assets/interface-cancelled-small.js\"\nimport * as completeIcon from \"@nordhealth/icons/lib/assets/interface-complete-small.js\"\nimport * as incompleteIcon from \"@nordhealth/icons/lib/assets/interface-incomplete-small.js\"\nimport * as partiallyCompleteIcon from \"@nordhealth/icons/lib/assets/interface-partially-complete-small.js\"\nimport Icon from \"../icon/Icon.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Badge.css\"\n\nIcon.registerIcon(cancelledIcon)\nIcon.registerIcon(completeIcon)\nIcon.registerIcon(incompleteIcon)\nIcon.registerIcon(partiallyCompleteIcon)\n\nconst iconMap: Record<Exclude<Badge[\"progress\"], undefined>, string> = {\n cancelled: cancelledIcon.title,\n complete: completeIcon.title,\n incomplete: incompleteIcon.title,\n \"partially-complete\": partiallyCompleteIcon.title,\n}\n\n/**\n * Badges are used to inform users of the status of an object\n * or of an action that’s been taken. Commonly used in tabular\n * data to indicate status.\n *\n * @status ready\n * @category text\n * @slot - The badge content.\n */\n@customElement(\"nord-badge\")\nexport default class Badge extends LitElement {\n static styles = [componentStyle, style]\n\n /**\n * The type of badge.\n * Determines the background color of the badge.\n */\n @property({ reflect: true }) type?: \"warning\" | \"success\" | \"danger\" | \"highlight\" | \"info\" | \"neutral\" | \"progress\" =\n \"neutral\"\n\n /**\n * The progress of the badge. Displays a progress\n * indicator next to the label.\n */\n @property() progress?: \"cancelled\" | \"complete\" | \"incomplete\" | \"partially-complete\"\n\n render() {\n const icon = this.progress ? iconMap[this.progress] : \"\"\n\n return html`\n <span class=\"n-badge\">\n <nord-icon name=${icon} size=\"xxs\" ?hidden=${!icon}></nord-icon>\n <slot></slot>\n </span>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-badge\": Badge\n }\n}\n"],"names":["title","Icon","registerIcon","cancelledIcon","completeIcon","incompleteIcon","partiallyCompleteIcon","iconMap","cancelled","cancelledIcon.title","complete","completeIcon.title","incomplete","incompleteIcon.title","partiallyCompleteIcon.title","Badge","LitElement","constructor","this","type","render","icon","progress","html","styles","componentStyle","style","__decorate","property","reflect","prototype","customElement"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Badge.js","sources":["../../icons/lib/assets/interface-cancelled-small.js","../../icons/lib/assets/interface-complete-small.js","../../icons/lib/assets/interface-incomplete-small.js","../../icons/lib/assets/interface-partially-complete-small.js","../src/badge/Badge.ts"],"sourcesContent":["export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path clip-rule=\"evenodd\" d=\"m7.80265 23.7423c-2.51458-4.4598-1.87318-10.2181 1.9242-14.01545 3.79735-3.79738 9.55565-4.43878 14.01545-1.9242zm4.45465 4.4548 15.9398-15.9398c2.5149 4.4599 1.8735 10.2184-1.9239 14.0159-3.7975 3.7974-9.556 4.4388-14.0159 1.9239zm-6.98522 2.5308c-7.02944-7.0294-7.02944-18.4264 0-25.45582 7.02942-7.02944 18.42642-7.02944 25.45582 0 7.0295 7.02942 7.0295 18.42642 0 25.45582-7.0294 7.0295-18.4264 7.0295-25.45582 0z\" fill=\"currentColor\" fill-rule=\"evenodd\"/></svg>'\nexport const title = \"interface-cancelled-small\"\nexport const tags = \"nordicon interface small badge process indicator status cancelled progress\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"18\" cy=\"18\" fill=\"currentColor\" r=\"18\"/></svg>'\nexport const title = \"interface-complete-small\"\nexport const tags = \"nordicon interface small badge process indicator status fulfilled complete progress\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path clip-rule=\"evenodd\" d=\"m18 29.7c6.4617 0 11.7-5.2383 11.7-11.7s-5.2383-11.7-11.7-11.7-11.7 5.2383-11.7 11.7 5.2383 11.7 11.7 11.7zm0 6.3c9.9411 0 18-8.0589 18-18 0-9.94112-8.0589-18-18-18-9.94112 0-18 8.05888-18 18 0 9.9411 8.05888 18 18 18z\" fill=\"currentColor\" fill-rule=\"evenodd\"/></svg>'\nexport const title = \"interface-incomplete-small\"\nexport const tags = \"nordicon interface small badge process indicator status cancelled unfulfilled incomplete progress\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path clip-rule=\"evenodd\" d=\"m6.3 18h23.4c0-6.4617-5.2383-11.7-11.7-11.7s-11.7 5.2383-11.7 11.7zm29.7 0c0 9.9411-8.0589 18-18 18-9.94113 0-18-8.0589-18-18 0-9.94113 8.05887-18 18-18 9.9411 0 18 8.05887 18 18z\" fill=\"currentColor\" fill-rule=\"evenodd\"/></svg>'\nexport const title = \"interface-partially-complete-small\"\nexport const tags = \"nordicon interface small badge process indicator status partially fulfilled complete progress\"\n","import { LitElement, html } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport * as cancelledIcon from \"@nordhealth/icons/lib/assets/interface-cancelled-small.js\"\nimport * as completeIcon from \"@nordhealth/icons/lib/assets/interface-complete-small.js\"\nimport * as incompleteIcon from \"@nordhealth/icons/lib/assets/interface-incomplete-small.js\"\nimport * as partiallyCompleteIcon from \"@nordhealth/icons/lib/assets/interface-partially-complete-small.js\"\nimport Icon from \"../icon/Icon.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Badge.css\"\n\nIcon.registerIcon(cancelledIcon)\nIcon.registerIcon(completeIcon)\nIcon.registerIcon(incompleteIcon)\nIcon.registerIcon(partiallyCompleteIcon)\n\nconst iconMap: Record<Exclude<Badge[\"progress\"], undefined>, string> = {\n cancelled: cancelledIcon.title,\n complete: completeIcon.title,\n incomplete: incompleteIcon.title,\n \"partially-complete\": partiallyCompleteIcon.title,\n}\n\n/**\n * Badges are used to inform users of the status of an object\n * or of an action that’s been taken. Commonly used in tabular\n * data to indicate status.\n *\n * @status ready\n * @category text\n * @slot - The badge content.\n */\n@customElement(\"nord-badge\")\nexport default class Badge extends LitElement {\n static styles = [componentStyle, style]\n\n /**\n * The type of badge.\n * Determines the background color of the badge.\n */\n @property({ reflect: true }) type?: \"warning\" | \"success\" | \"danger\" | \"highlight\" | \"info\" | \"neutral\" | \"progress\" =\n \"neutral\"\n\n /**\n * The progress of the badge. Displays a progress\n * indicator next to the label.\n */\n @property() progress?: \"cancelled\" | \"complete\" | \"incomplete\" | \"partially-complete\"\n\n render() {\n const icon = this.progress ? iconMap[this.progress] : \"\"\n\n return html`\n <span class=\"n-badge\">\n <nord-icon name=${icon} size=\"xxs\" ?hidden=${!icon}></nord-icon>\n <slot></slot>\n </span>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-badge\": Badge\n }\n}\n"],"names":["title","Icon","registerIcon","cancelledIcon","completeIcon","incompleteIcon","partiallyCompleteIcon","iconMap","cancelled","cancelledIcon.title","complete","completeIcon.title","incomplete","incompleteIcon.title","partiallyCompleteIcon.title","Badge","LitElement","constructor","this","type","render","icon","progress","html","styles","componentStyle","style","__decorate","property","reflect","prototype","customElement"],"mappings":"4VACO,MAAMA,EAAQ,wEADN,2jBAEK,+ECDb,MAAMA,EAAQ,uEADN,sIAEK,wFCDb,MAAMA,EAAQ,yEADN,oXAEK,sGCDb,MAAMA,EAAQ,iFADN,6UAEK,q3CCSpBC,EAAKC,aAAaC,GAClBF,EAAKC,aAAaE,GAClBH,EAAKC,aAAaG,GAClBJ,EAAKC,aAAaI,GAElB,MAAMC,EAAiE,CACrEC,UAAWC,EACXC,SAAUC,EACVC,WAAYC,EACZ,qBAAsBC,GAaxB,IAAqBC,EAArB,cAAmCC,EAAnCC,kCAO+BC,KAAIC,KAC/B,SAkBH,CAVCC,SACE,MAAMC,EAAOH,KAAKI,SAAWf,EAAQW,KAAKI,UAAY,GAEtD,OAAOC,CAAI,0CAEWF,2BAA4BA,qCAInD,GAxBMN,EAAAS,OAAS,CAACC,EAAgBC,GAMJC,EAAA,CAA5BC,EAAS,CAAEC,SAAS,KACVd,EAAAe,UAAA,YAAA,GAMCH,EAAA,CAAXC,KAAoFb,EAAAe,UAAA,gBAAA,GAdlEf,EAAKY,EAAA,CADzBI,EAAc,eACMhB,SAAAA"}
|
package/lib/Banner.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as r,_ as e,s as n,y as o,e as t}from"./query-assigned-elements-cf502539.js";import{e as a}from"./property-03f59dce.js";import i from"./Icon.js";import{s as l}from"./Component-449e40fb.js";import"./state-70f38ceb.js";import"./if-defined-720964c0.js";import"./directive-de55b00a.js";import"./observe-a9c6dfb6.js";import"./cond-2da54107.js";var s=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 140 140" xmlns="http://www.w3.org/2000/svg"><path d="M7 70a63 63 0 1 0 126 0A63 63 0 1 0 7 70z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="14"/><path fill="currentColor" d="M59.5 101.5a10.5 10.5 0 1 0 21 0 10.5 10.5 0 1 0-21 0z"/><path d="M70 70a17.5 17.5 0 1 0-14-28" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="14"/></svg>',title:"interface-help-2",tags:"nordicon interface help support question mark circle round"});var c=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M18 9C18.9941 9 19.8 9.80589 19.8 10.8V18C19.8 18.9941 18.9941 19.8 18 19.8C17.0058 19.8 16.2 18.9941 16.2 18V10.8C16.2 9.80589 17.0058 9 18 9Z" fill="currentColor"/><path d="M15.3214 25.2C15.3214 25.9104 15.6036 26.5917 16.106 27.0941C16.6083 27.5964 17.2896 27.8786 18 27.8786C18.7105 27.8786 19.3918 27.5964 19.8941 27.0941C20.3965 26.5917 20.6787 25.9104 20.6787 25.2C20.6787 24.4896 20.3965 23.8083 19.8941 23.3059C19.3918 22.8036 18.7105 22.5214 18 22.5214C17.2896 22.5214 16.6083 22.8036 16.106 23.3059C15.6036 23.8083 15.3214 24.4896 15.3214 25.2Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M15.3891 0.71328C16.1794 0.244619 17.0813 -0.00268555 18.0002 -0.00268555C18.919 -0.00268555 19.8209 0.244619 20.6113 0.71328C21.3993 1.18057 22.0474 1.85075 22.4881 2.65385L35.092 25.2668L35.0968 25.2753C35.7031 26.3771 36.0118 27.618 35.9924 28.8754C35.973 30.1329 35.6263 31.3636 34.9863 32.4462C34.3463 33.5288 33.4352 34.426 32.3428 35.0491C31.2505 35.6723 30.0146 36 28.757 35.9999C28.757 35.9999 28.757 35.9999 28.757 35.9999H7.23618C7.23611 35.9999 7.23626 35.9999 7.23618 35.9999C5.97993 35.9998 4.74519 35.6722 3.65409 35.0496C2.56299 34.427 1.65299 33.5308 1.01378 32.4493C0.374574 31.3678 0.0282382 30.1384 0.00891227 28.8823C-0.0104135 27.6262 0.297938 26.3868 0.90357 25.2862L0.90814 25.2779L13.5122 2.65398C13.9529 1.85082 14.601 1.1806 15.3891 0.71328ZM7.23641 32.3999H28.757C29.3889 32.4 30.0101 32.2353 30.559 31.9222C31.1079 31.609 31.5657 31.1582 31.8873 30.6142C32.2089 30.0703 32.3831 29.4518 32.3928 28.82C32.4026 28.1896 32.2482 27.5676 31.945 27.0149C31.9442 27.0136 31.9435 27.0123 31.9428 27.011L19.3403 4.40069L19.3332 4.38778C19.2024 4.14852 19.0096 3.94887 18.7751 3.80979C18.5405 3.67071 18.2729 3.59731 18.0002 3.59731C17.7275 3.59731 17.4599 3.67071 17.2253 3.80979C16.9908 3.94887 16.798 4.14852 16.6672 4.38778L16.6602 4.40037L4.0576 27.0217C4.05692 27.0229 4.05625 27.0242 4.05558 27.0254C3.75289 27.577 3.59881 28.1978 3.60849 28.827C3.61819 29.4575 3.79205 30.0747 4.11292 30.6175C4.4338 31.1604 4.89061 31.6103 5.43834 31.9229C5.986 32.2354 6.60586 32.3998 7.23641 32.3999C7.23648 32.3999 7.23633 32.3999 7.23641 32.3999Z" fill="currentColor"/></svg>\n',title:"interface-warning",tags:"nordicon interface warning exclamation mark triangle shape alert error"});var d=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.27208 5.27208C8.64773 1.89642 13.2261 0 18 0C22.7739 0 27.3523 1.89642 30.7279 5.27208C34.1036 8.64773 36 13.2261 36 18C36 22.7739 34.1036 27.3523 30.7279 30.7279C27.3523 34.1036 22.7739 36 18 36C13.2261 36 8.64773 34.1036 5.27208 30.7279C1.89642 27.3523 0 22.7739 0 18C0 13.2261 1.89642 8.64773 5.27208 5.27208ZM18 3.6C14.1809 3.6 10.5182 5.11714 7.81766 7.81766C5.11714 10.5182 3.6 14.1809 3.6 18C3.6 21.8191 5.11714 25.4818 7.81766 28.1823C10.5182 30.8829 14.1809 32.4 18 32.4C21.8191 32.4 25.4818 30.8829 28.1823 28.1823C30.8829 25.4818 32.4 21.8191 32.4 18C32.4 14.1809 30.8829 10.5182 28.1823 7.81766C25.4818 5.11714 21.8191 3.6 18 3.6Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M18 18C18.9941 18 19.8 18.8059 19.8 19.8V27C19.8 27.9941 18.9941 28.8 18 28.8C17.0058 28.8 16.2 27.9941 16.2 27V19.8C16.2 18.8059 17.0058 18 18 18Z" fill="currentColor"/><path d="M15.2795 10.7999C15.2795 11.5213 15.5661 12.2132 16.0763 12.7234C16.5864 13.2336 17.2784 13.5202 17.9998 13.5202C18.7213 13.5202 19.4132 13.2336 19.9234 12.7234C20.4335 12.2132 20.7201 11.5213 20.7201 10.7999C20.7201 10.0784 20.4335 9.38649 19.9234 8.87634C19.4132 8.36619 18.7213 8.07959 17.9998 8.07959C17.2784 8.07959 16.5864 8.36619 16.0763 8.87634C15.5661 9.38649 15.2795 10.0784 15.2795 10.7999Z" fill="currentColor"/></svg>\n',title:"interface-info",tags:"nordicon interface info circle round alert notice information"});const C="interface-checked-circle";var u=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.67198 5.27208C9.04764 1.89642 13.626 0 18.3999 0C23.1738 0 27.7522 1.89642 31.1278 5.27208C34.5035 8.64773 36.3999 13.2261 36.3999 18C36.3999 22.7739 34.5035 27.3523 31.1278 30.7279C27.7522 34.1036 23.1738 36 18.3999 36C13.626 36 9.04764 34.1036 5.67198 30.7279C2.29633 27.3523 0.399902 22.7739 0.399902 18C0.399902 13.2261 2.29633 8.64773 5.67198 5.27208ZM18.3999 3.6C14.5808 3.6 10.9181 5.11714 8.21757 7.81766C5.51704 10.5182 3.9999 14.1809 3.9999 18C3.9999 21.8191 5.51704 25.4818 8.21757 28.1823C10.9181 30.8829 14.5808 32.4 18.3999 32.4C22.219 32.4 25.8817 30.8829 28.5822 28.1823C31.2828 25.4818 32.7999 21.8191 32.7999 18C32.7999 14.1809 31.2828 10.5182 28.5822 7.81766C25.8817 5.11714 22.219 3.6 18.3999 3.6Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M27.0484 10.0907C27.8261 10.7099 27.9546 11.8423 27.3354 12.62L16.233 26.5642C15.8927 26.9915 15.3768 27.2412 14.8306 27.243C14.2843 27.2447 13.7669 26.9983 13.4239 26.5732L9.39039 21.5735C8.76619 20.7998 8.8874 19.6666 9.66112 19.0424C10.4348 18.4182 11.5681 18.5394 12.1923 19.3131L14.8156 22.5648L24.5191 10.3776C25.1383 9.59994 26.2707 9.47146 27.0484 10.0907Z" fill="currentColor"/></svg>\n',title:C,tags:"nordicon interface circle round checked checkmark ready done success"});const v=r`:host{--_n-banner-box-shadow:var(--n-banner-box-shadow, none);--_n-banner-border-radius:var(--n-banner-border-radius, var(--n-border-radius));--_n-banner-background:var(--n-color-status-info-weak);color:var(--n-color-text)}.n-banner{background:var(--_n-banner-background);border-radius:var(--_n-banner-border-radius);box-shadow:var(--_n-banner-box-shadow);padding:calc(var(--n-space-m)/ 1.2) var(--n-space-l);margin:0;inline-size:100%}.n-banner-content{inline-size:calc(100% - var(--n-space-xl))}nord-icon{transform:translateY(2px);color:var(--n-color-icon-hover)}::slotted(a){color:var(--n-color-text)!important;text-decoration:underline!important}::slotted(p){margin:0!important}:host([variant=success]){--_n-banner-background:var(--n-color-status-success-weak)}:host([variant=danger]){--_n-banner-background:var(--n-color-status-danger-weak)}:host([variant=warning]){--_n-banner-background:var(--n-color-status-warning-weak)}`;i.registerIcon(s),i.registerIcon(c),i.registerIcon(d),i.registerIcon(u);const f={warning:"interface-help-2",danger:"interface-warning",info:"interface-info",success:C};let p=class extends n{constructor(){super(...arguments),this.variant="info"}render(){const r=f[this.variant]||f.info;return o`<div class="n-banner" role="alert"><nord-stack align-items="start" direction="horizontal"><nord-icon name="${r}" size="m"></nord-icon><div class="n-banner-content"><slot></slot></div></nord-stack></div>`}};p.styles=[l,v],e([a({reflect:!0})],p.prototype,"variant",void 0),p=e([t("nord-banner")],p);var g=p;export{g as default};
|
|
2
2
|
//# sourceMappingURL=Banner.js.map
|
package/lib/Banner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.js","sources":["../../icons/lib/assets/interface-help-2.js","../../icons/lib/assets/interface-warning.js","../../icons/lib/assets/interface-info.js","../../icons/lib/assets/interface-checked-circle.js","../src/banner/Banner.ts"],"sourcesContent":["export default '<svg viewBox=\"0 0 140 140\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 70a63 63 0 1 0 126 0A63 63 0 1 0 7 70z\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"14\"/><path fill=\"currentColor\" d=\"M59.5 101.5a10.5 10.5 0 1 0 21 0 10.5 10.5 0 1 0-21 0z\"/><path d=\"M70 70a17.5 17.5 0 1 0-14-28\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"14\"/></svg>'\nexport const title = \"interface-help-2\"\nexport const tags = \"nordicon interface help support question mark circle round\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 9C18.9941 9 19.8 9.80589 19.8 10.8V18C19.8 18.9941 18.9941 19.8 18 19.8C17.0058 19.8 16.2 18.9941 16.2 18V10.8C16.2 9.80589 17.0058 9 18 9Z\" fill=\"currentColor\"/><path d=\"M15.3214 25.2C15.3214 25.9104 15.6036 26.5917 16.106 27.0941C16.6083 27.5964 17.2896 27.8786 18 27.8786C18.7105 27.8786 19.3918 27.5964 19.8941 27.0941C20.3965 26.5917 20.6787 25.9104 20.6787 25.2C20.6787 24.4896 20.3965 23.8083 19.8941 23.3059C19.3918 22.8036 18.7105 22.5214 18 22.5214C17.2896 22.5214 16.6083 22.8036 16.106 23.3059C15.6036 23.8083 15.3214 24.4896 15.3214 25.2Z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.3891 0.71328C16.1794 0.244619 17.0813 -0.00268555 18.0002 -0.00268555C18.919 -0.00268555 19.8209 0.244619 20.6113 0.71328C21.3993 1.18057 22.0474 1.85075 22.4881 2.65385L35.092 25.2668L35.0968 25.2753C35.7031 26.3771 36.0118 27.618 35.9924 28.8754C35.973 30.1329 35.6263 31.3636 34.9863 32.4462C34.3463 33.5288 33.4352 34.426 32.3428 35.0491C31.2505 35.6723 30.0146 36 28.757 35.9999C28.757 35.9999 28.757 35.9999 28.757 35.9999H7.23618C7.23611 35.9999 7.23626 35.9999 7.23618 35.9999C5.97993 35.9998 4.74519 35.6722 3.65409 35.0496C2.56299 34.427 1.65299 33.5308 1.01378 32.4493C0.374574 31.3678 0.0282382 30.1384 0.00891227 28.8823C-0.0104135 27.6262 0.297938 26.3868 0.90357 25.2862L0.90814 25.2779L13.5122 2.65398C13.9529 1.85082 14.601 1.1806 15.3891 0.71328ZM7.23641 32.3999H28.757C29.3889 32.4 30.0101 32.2353 30.559 31.9222C31.1079 31.609 31.5657 31.1582 31.8873 30.6142C32.2089 30.0703 32.3831 29.4518 32.3928 28.82C32.4026 28.1896 32.2482 27.5676 31.945 27.0149C31.9442 27.0136 31.9435 27.0123 31.9428 27.011L19.3403 4.40069L19.3332 4.38778C19.2024 4.14852 19.0096 3.94887 18.7751 3.80979C18.5405 3.67071 18.2729 3.59731 18.0002 3.59731C17.7275 3.59731 17.4599 3.67071 17.2253 3.80979C16.9908 3.94887 16.798 4.14852 16.6672 4.38778L16.6602 4.40037L4.0576 27.0217C4.05692 27.0229 4.05625 27.0242 4.05558 27.0254C3.75289 27.577 3.59881 28.1978 3.60849 28.827C3.61819 29.4575 3.79205 30.0747 4.11292 30.6175C4.4338 31.1604 4.89061 31.6103 5.43834 31.9229C5.986 32.2354 6.60586 32.3998 7.23641 32.3999C7.23648 32.3999 7.23633 32.3999 7.23641 32.3999Z\" fill=\"currentColor\"/></svg>\\n'\nexport const title = \"interface-warning\"\nexport const tags = \"nordicon interface warning exclamation mark triangle shape alert error\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.27208 5.27208C8.64773 1.89642 13.2261 0 18 0C22.7739 0 27.3523 1.89642 30.7279 5.27208C34.1036 8.64773 36 13.2261 36 18C36 22.7739 34.1036 27.3523 30.7279 30.7279C27.3523 34.1036 22.7739 36 18 36C13.2261 36 8.64773 34.1036 5.27208 30.7279C1.89642 27.3523 0 22.7739 0 18C0 13.2261 1.89642 8.64773 5.27208 5.27208ZM18 3.6C14.1809 3.6 10.5182 5.11714 7.81766 7.81766C5.11714 10.5182 3.6 14.1809 3.6 18C3.6 21.8191 5.11714 25.4818 7.81766 28.1823C10.5182 30.8829 14.1809 32.4 18 32.4C21.8191 32.4 25.4818 30.8829 28.1823 28.1823C30.8829 25.4818 32.4 21.8191 32.4 18C32.4 14.1809 30.8829 10.5182 28.1823 7.81766C25.4818 5.11714 21.8191 3.6 18 3.6Z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 18C18.9941 18 19.8 18.8059 19.8 19.8V27C19.8 27.9941 18.9941 28.8 18 28.8C17.0058 28.8 16.2 27.9941 16.2 27V19.8C16.2 18.8059 17.0058 18 18 18Z\" fill=\"currentColor\"/><path d=\"M15.2795 10.7999C15.2795 11.5213 15.5661 12.2132 16.0763 12.7234C16.5864 13.2336 17.2784 13.5202 17.9998 13.5202C18.7213 13.5202 19.4132 13.2336 19.9234 12.7234C20.4335 12.2132 20.7201 11.5213 20.7201 10.7999C20.7201 10.0784 20.4335 9.38649 19.9234 8.87634C19.4132 8.36619 18.7213 8.07959 17.9998 8.07959C17.2784 8.07959 16.5864 8.36619 16.0763 8.87634C15.5661 9.38649 15.2795 10.0784 15.2795 10.7999Z\" fill=\"currentColor\"/></svg>\\n'\nexport const title = \"interface-info\"\nexport const tags = \"nordicon interface info circle round alert notice information\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.67198 5.27208C9.04764 1.89642 13.626 0 18.3999 0C23.1738 0 27.7522 1.89642 31.1278 5.27208C34.5035 8.64773 36.3999 13.2261 36.3999 18C36.3999 22.7739 34.5035 27.3523 31.1278 30.7279C27.7522 34.1036 23.1738 36 18.3999 36C13.626 36 9.04764 34.1036 5.67198 30.7279C2.29633 27.3523 0.399902 22.7739 0.399902 18C0.399902 13.2261 2.29633 8.64773 5.67198 5.27208ZM18.3999 3.6C14.5808 3.6 10.9181 5.11714 8.21757 7.81766C5.51704 10.5182 3.9999 14.1809 3.9999 18C3.9999 21.8191 5.51704 25.4818 8.21757 28.1823C10.9181 30.8829 14.5808 32.4 18.3999 32.4C22.219 32.4 25.8817 30.8829 28.5822 28.1823C31.2828 25.4818 32.7999 21.8191 32.7999 18C32.7999 14.1809 31.2828 10.5182 28.5822 7.81766C25.8817 5.11714 22.219 3.6 18.3999 3.6Z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.0484 10.0907C27.8261 10.7099 27.9546 11.8423 27.3354 12.62L16.233 26.5642C15.8927 26.9915 15.3768 27.2412 14.8306 27.243C14.2843 27.2447 13.7669 26.9983 13.4239 26.5732L9.39039 21.5735C8.76619 20.7998 8.8874 19.6666 9.66112 19.0424C10.4348 18.4182 11.5681 18.5394 12.1923 19.3131L14.8156 22.5648L24.5191 10.3776C25.1383 9.59994 26.2707 9.47146 27.0484 10.0907Z\" fill=\"currentColor\"/></svg>\\n'\nexport const title = \"interface-checked-circle\"\nexport const tags = \"nordicon interface circle round checked checkmark ready done success\"\n","import { LitElement, html } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport * as warningIcon from \"@nordhealth/icons/lib/assets/interface-help-2.js\"\nimport * as dangerIcon from \"@nordhealth/icons/lib/assets/interface-warning.js\"\nimport * as infoIcon from \"@nordhealth/icons/lib/assets/interface-info.js\"\nimport * as successIcon from \"@nordhealth/icons/lib/assets/interface-checked-circle.js\"\nimport Icon from \"../icon/Icon.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Banner.css\"\n\nIcon.registerIcon(warningIcon)\nIcon.registerIcon(dangerIcon)\nIcon.registerIcon(infoIcon)\nIcon.registerIcon(successIcon)\n\nconst iconMap: Record<Banner[\"variant\"], string> = {\n warning: warningIcon.title,\n danger: dangerIcon.title,\n info: infoIcon.title,\n success: successIcon.title,\n}\n\n/**\n * Banner informs users about important changes or conditions in the\n * interface. Use this component if you need to communicate to users\n * in a prominent way.\n *\n * @status ready\n * @category feedback\n * @slot - default slot\n *\n * @cssprop [--n-banner-border-radius=var(--n-border-radius)] - Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).\n * @cssprop [--n-banner-box-shadow=var(--n-box-shadow-card)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).\n */\n@customElement(\"nord-banner\")\nexport default class Banner extends LitElement {\n static styles = [componentStyle, style]\n\n /**\n * The style variant of the banner.\n */\n @property({ reflect: true }) variant: \"info\" | \"danger\" | \"success\" | \"warning\" = \"info\"\n\n render() {\n const icon = iconMap[this.variant] || iconMap.info\n\n return html`\n <div class=\"n-banner\" role=\"alert\">\n <nord-stack align-items=\"start\" direction=\"horizontal\">\n <nord-icon name=${icon} size=\"m\"></nord-icon>\n <div class=\"n-banner-content\">\n <slot></slot>\n </div>\n </nord-stack>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-banner\": Banner\n }\n}\n"],"names":["title","Icon","registerIcon","warningIcon","dangerIcon","infoIcon","successIcon","iconMap","warning","danger","info","success","successIcon.title","Banner","LitElement","constructor","this","variant","render","icon","html","styles","componentStyle","style","__decorate","property","reflect","prototype","customElement"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Banner.js","sources":["../../icons/lib/assets/interface-help-2.js","../../icons/lib/assets/interface-warning.js","../../icons/lib/assets/interface-info.js","../../icons/lib/assets/interface-checked-circle.js","../src/banner/Banner.ts"],"sourcesContent":["export default '<svg viewBox=\"0 0 140 140\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 70a63 63 0 1 0 126 0A63 63 0 1 0 7 70z\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"14\"/><path fill=\"currentColor\" d=\"M59.5 101.5a10.5 10.5 0 1 0 21 0 10.5 10.5 0 1 0-21 0z\"/><path d=\"M70 70a17.5 17.5 0 1 0-14-28\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"14\"/></svg>'\nexport const title = \"interface-help-2\"\nexport const tags = \"nordicon interface help support question mark circle round\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 9C18.9941 9 19.8 9.80589 19.8 10.8V18C19.8 18.9941 18.9941 19.8 18 19.8C17.0058 19.8 16.2 18.9941 16.2 18V10.8C16.2 9.80589 17.0058 9 18 9Z\" fill=\"currentColor\"/><path d=\"M15.3214 25.2C15.3214 25.9104 15.6036 26.5917 16.106 27.0941C16.6083 27.5964 17.2896 27.8786 18 27.8786C18.7105 27.8786 19.3918 27.5964 19.8941 27.0941C20.3965 26.5917 20.6787 25.9104 20.6787 25.2C20.6787 24.4896 20.3965 23.8083 19.8941 23.3059C19.3918 22.8036 18.7105 22.5214 18 22.5214C17.2896 22.5214 16.6083 22.8036 16.106 23.3059C15.6036 23.8083 15.3214 24.4896 15.3214 25.2Z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.3891 0.71328C16.1794 0.244619 17.0813 -0.00268555 18.0002 -0.00268555C18.919 -0.00268555 19.8209 0.244619 20.6113 0.71328C21.3993 1.18057 22.0474 1.85075 22.4881 2.65385L35.092 25.2668L35.0968 25.2753C35.7031 26.3771 36.0118 27.618 35.9924 28.8754C35.973 30.1329 35.6263 31.3636 34.9863 32.4462C34.3463 33.5288 33.4352 34.426 32.3428 35.0491C31.2505 35.6723 30.0146 36 28.757 35.9999C28.757 35.9999 28.757 35.9999 28.757 35.9999H7.23618C7.23611 35.9999 7.23626 35.9999 7.23618 35.9999C5.97993 35.9998 4.74519 35.6722 3.65409 35.0496C2.56299 34.427 1.65299 33.5308 1.01378 32.4493C0.374574 31.3678 0.0282382 30.1384 0.00891227 28.8823C-0.0104135 27.6262 0.297938 26.3868 0.90357 25.2862L0.90814 25.2779L13.5122 2.65398C13.9529 1.85082 14.601 1.1806 15.3891 0.71328ZM7.23641 32.3999H28.757C29.3889 32.4 30.0101 32.2353 30.559 31.9222C31.1079 31.609 31.5657 31.1582 31.8873 30.6142C32.2089 30.0703 32.3831 29.4518 32.3928 28.82C32.4026 28.1896 32.2482 27.5676 31.945 27.0149C31.9442 27.0136 31.9435 27.0123 31.9428 27.011L19.3403 4.40069L19.3332 4.38778C19.2024 4.14852 19.0096 3.94887 18.7751 3.80979C18.5405 3.67071 18.2729 3.59731 18.0002 3.59731C17.7275 3.59731 17.4599 3.67071 17.2253 3.80979C16.9908 3.94887 16.798 4.14852 16.6672 4.38778L16.6602 4.40037L4.0576 27.0217C4.05692 27.0229 4.05625 27.0242 4.05558 27.0254C3.75289 27.577 3.59881 28.1978 3.60849 28.827C3.61819 29.4575 3.79205 30.0747 4.11292 30.6175C4.4338 31.1604 4.89061 31.6103 5.43834 31.9229C5.986 32.2354 6.60586 32.3998 7.23641 32.3999C7.23648 32.3999 7.23633 32.3999 7.23641 32.3999Z\" fill=\"currentColor\"/></svg>\\n'\nexport const title = \"interface-warning\"\nexport const tags = \"nordicon interface warning exclamation mark triangle shape alert error\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.27208 5.27208C8.64773 1.89642 13.2261 0 18 0C22.7739 0 27.3523 1.89642 30.7279 5.27208C34.1036 8.64773 36 13.2261 36 18C36 22.7739 34.1036 27.3523 30.7279 30.7279C27.3523 34.1036 22.7739 36 18 36C13.2261 36 8.64773 34.1036 5.27208 30.7279C1.89642 27.3523 0 22.7739 0 18C0 13.2261 1.89642 8.64773 5.27208 5.27208ZM18 3.6C14.1809 3.6 10.5182 5.11714 7.81766 7.81766C5.11714 10.5182 3.6 14.1809 3.6 18C3.6 21.8191 5.11714 25.4818 7.81766 28.1823C10.5182 30.8829 14.1809 32.4 18 32.4C21.8191 32.4 25.4818 30.8829 28.1823 28.1823C30.8829 25.4818 32.4 21.8191 32.4 18C32.4 14.1809 30.8829 10.5182 28.1823 7.81766C25.4818 5.11714 21.8191 3.6 18 3.6Z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 18C18.9941 18 19.8 18.8059 19.8 19.8V27C19.8 27.9941 18.9941 28.8 18 28.8C17.0058 28.8 16.2 27.9941 16.2 27V19.8C16.2 18.8059 17.0058 18 18 18Z\" fill=\"currentColor\"/><path d=\"M15.2795 10.7999C15.2795 11.5213 15.5661 12.2132 16.0763 12.7234C16.5864 13.2336 17.2784 13.5202 17.9998 13.5202C18.7213 13.5202 19.4132 13.2336 19.9234 12.7234C20.4335 12.2132 20.7201 11.5213 20.7201 10.7999C20.7201 10.0784 20.4335 9.38649 19.9234 8.87634C19.4132 8.36619 18.7213 8.07959 17.9998 8.07959C17.2784 8.07959 16.5864 8.36619 16.0763 8.87634C15.5661 9.38649 15.2795 10.0784 15.2795 10.7999Z\" fill=\"currentColor\"/></svg>\\n'\nexport const title = \"interface-info\"\nexport const tags = \"nordicon interface info circle round alert notice information\"\n","export default '<svg viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.67198 5.27208C9.04764 1.89642 13.626 0 18.3999 0C23.1738 0 27.7522 1.89642 31.1278 5.27208C34.5035 8.64773 36.3999 13.2261 36.3999 18C36.3999 22.7739 34.5035 27.3523 31.1278 30.7279C27.7522 34.1036 23.1738 36 18.3999 36C13.626 36 9.04764 34.1036 5.67198 30.7279C2.29633 27.3523 0.399902 22.7739 0.399902 18C0.399902 13.2261 2.29633 8.64773 5.67198 5.27208ZM18.3999 3.6C14.5808 3.6 10.9181 5.11714 8.21757 7.81766C5.51704 10.5182 3.9999 14.1809 3.9999 18C3.9999 21.8191 5.51704 25.4818 8.21757 28.1823C10.9181 30.8829 14.5808 32.4 18.3999 32.4C22.219 32.4 25.8817 30.8829 28.5822 28.1823C31.2828 25.4818 32.7999 21.8191 32.7999 18C32.7999 14.1809 31.2828 10.5182 28.5822 7.81766C25.8817 5.11714 22.219 3.6 18.3999 3.6Z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.0484 10.0907C27.8261 10.7099 27.9546 11.8423 27.3354 12.62L16.233 26.5642C15.8927 26.9915 15.3768 27.2412 14.8306 27.243C14.2843 27.2447 13.7669 26.9983 13.4239 26.5732L9.39039 21.5735C8.76619 20.7998 8.8874 19.6666 9.66112 19.0424C10.4348 18.4182 11.5681 18.5394 12.1923 19.3131L14.8156 22.5648L24.5191 10.3776C25.1383 9.59994 26.2707 9.47146 27.0484 10.0907Z\" fill=\"currentColor\"/></svg>\\n'\nexport const title = \"interface-checked-circle\"\nexport const tags = \"nordicon interface circle round checked checkmark ready done success\"\n","import { LitElement, html } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport * as warningIcon from \"@nordhealth/icons/lib/assets/interface-help-2.js\"\nimport * as dangerIcon from \"@nordhealth/icons/lib/assets/interface-warning.js\"\nimport * as infoIcon from \"@nordhealth/icons/lib/assets/interface-info.js\"\nimport * as successIcon from \"@nordhealth/icons/lib/assets/interface-checked-circle.js\"\nimport Icon from \"../icon/Icon.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Banner.css\"\n\nIcon.registerIcon(warningIcon)\nIcon.registerIcon(dangerIcon)\nIcon.registerIcon(infoIcon)\nIcon.registerIcon(successIcon)\n\nconst iconMap: Record<Banner[\"variant\"], string> = {\n warning: warningIcon.title,\n danger: dangerIcon.title,\n info: infoIcon.title,\n success: successIcon.title,\n}\n\n/**\n * Banner informs users about important changes or conditions in the\n * interface. Use this component if you need to communicate to users\n * in a prominent way.\n *\n * @status ready\n * @category feedback\n * @slot - default slot\n *\n * @cssprop [--n-banner-border-radius=var(--n-border-radius)] - Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).\n * @cssprop [--n-banner-box-shadow=var(--n-box-shadow-card)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).\n */\n@customElement(\"nord-banner\")\nexport default class Banner extends LitElement {\n static styles = [componentStyle, style]\n\n /**\n * The style variant of the banner.\n */\n @property({ reflect: true }) variant: \"info\" | \"danger\" | \"success\" | \"warning\" = \"info\"\n\n render() {\n const icon = iconMap[this.variant] || iconMap.info\n\n return html`\n <div class=\"n-banner\" role=\"alert\">\n <nord-stack align-items=\"start\" direction=\"horizontal\">\n <nord-icon name=${icon} size=\"m\"></nord-icon>\n <div class=\"n-banner-content\">\n <slot></slot>\n </div>\n </nord-stack>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-banner\": Banner\n }\n}\n"],"names":["title","Icon","registerIcon","warningIcon","dangerIcon","infoIcon","successIcon","iconMap","warning","danger","info","success","successIcon.title","Banner","LitElement","constructor","this","variant","render","icon","html","styles","componentStyle","style","__decorate","property","reflect","prototype","customElement"],"mappings":"wYAAe,scACM,wBACD,2GCFL,gyEACM,yBACD,uHCFL,s6CACM,sBACD,kECDb,MAAMA,EAAQ,uEADN,gyCAEK,q/BCSpBC,EAAKC,aAAaC,GAClBF,EAAKC,aAAaE,GAClBH,EAAKC,aAAaG,GAClBJ,EAAKC,aAAaI,GAElB,MAAMC,EAA6C,CACjDC,QJhBmB,mBIiBnBC,OHjBmB,oBGkBnBC,KFlBmB,iBEmBnBC,QAASC,GAgBX,IAAqBC,EAArB,cAAoCC,EAApCC,kCAM+BC,KAAOC,QAA8C,MAgBnF,CAdCC,SACE,MAAMC,EAAOZ,EAAQS,KAAKC,UAAYV,EAAQG,KAE9C,OAAOU,CAAI,8GAGaD,8FAOzB,GApBMN,EAAAQ,OAAS,CAACC,EAAgBC,GAKJC,EAAA,CAA5BC,EAAS,CAAEC,SAAS,KAAmEb,EAAAc,UAAA,eAAA,GANrEd,EAAMW,EAAA,CAD1BI,EAAc,gBACMf,SAAAA"}
|
package/lib/Button.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as t,e as o}from"./query-assigned-elements-e6cbac30.js";import{i as n,y as r,b as e,s as a}from"./lit-element-9178eae5.js";import{e as i}from"./property-03f59dce.js";import{e as s,n as b}from"./ref-0e619221.js";import{E as l}from"./EventController-d99ebeef.js";import{L as d}from"./LightDomController-3c726b20.js";import{c}from"./cond-338158e9.js";import"./Spinner.js";import{F as u}from"./FocusableMixin-34870ed3.js";import{I as h}from"./InputMixin-158f63fb.js";import{s as v}from"./Component-92eb6234.js";import"./directive-de55b00a.js";import"./if-defined-4598a996.js";const p=n`:host{--_n-button-border-radius:var(--n-button-border-radius, var(--n-border-radius-s));--_n-button-gap:var(--n-button-gap, var(--n-space-s));--_n-button-gradient:var(--n-button-gradient, linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.013) 100%));--_n-button-background-color:var(--n-button-background-color, var(--n-color-button));--_n-button-border-color:var(--n-button-border-color, var(--n-color-border-strong));--_n-button-text-align:var(--n-button-text-align, center);--_n-button-box-shadow:var(--n-button-box-shadow, var(--n-box-shadow));--_n-button-padding-inline:calc(var(--n-space-m) / 1.2);--_n-button-color:var(--n-color-text);--_n-button-opacity:1;--_n-button-border-style:solid;--_n-button-font-size:var(--n-font-size-m);--_n-button-font-weight:var(--n-font-weight);--_n-button-min-block-size:var(--n-space-xl);--_n-button-inline-size:fit-content;--_n-button-padding-block:calc(var(--n-space-s) / 1.6);display:inline-block}.n-button{-webkit-appearance:none;align-items:center;appearance:none;background:var(--_n-button-background-color);opacity:var(--_n-button-opacity);border-radius:var(--_n-button-border-radius);border:1px var(--_n-button-border-style) var(--_n-button-border-color);box-shadow:var(--_n-button-box-shadow);color:var(--_n-button-color);cursor:pointer;display:flex;gap:var(--_n-button-gap);font-family:var(--n-font-family);font-feature-settings:var(--n-font-features);font-size:var(--_n-button-font-size);font-weight:var(--_n-button-font-weight);line-height:var(--n-line-height-form);margin:0;min-block-size:var(--_n-button-min-block-size);padding:var(--_n-button-padding-block) var(--_n-button-padding-inline);text-align:var(--_n-button-text-align);text-decoration:none;transition:.1s ease;transition-property:background-color,opacity,color,box-shadow,border-color;-webkit-user-select:none;user-select:none;position:relative;inline-size:var(--_n-button-inline-size)}.n-button::after{content:"";position:absolute;background:0 0;background-image:var(--_n-button-gradient);border-radius:var(--_n-button-border-radius);background-repeat:repeat-x;inline-size:100%;inset-inline:0;block-size:100%;inset-block-start:0}:host([expand]){--_n-button-inline-size:100%;display:block}.n-content{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.n-button:hover{--_n-button-border-color:var(--n-button-border-color, var(--n-color-border-hover));--_n-button-background-color:var(--n-button-background-color, var(--n-color-button-hover))}.n-button:focus{--_n-button-border-color:var(--n-button-border-color, var(--n-color-accent));--_n-button-border-style:solid;--_n-button-box-shadow:0 0 0 1px var(--n-color-accent),var(--n-box-shadow);outline:0}.n-button:active{opacity:.8;transform:translateY(1px);transition:none}:host([variant=primary]){--_n-button-box-shadow:var(--n-button-box-shadow, none);--_n-button-color:var(--n-color-text-on-accent);--_n-button-font-weight:var(--n-font-weight-active)}:host([variant=primary]),:host([variant=primary]) .n-button:hover{--_n-button-border-color:var(--n-button-border-color, transparent);--_n-button-background-color:var(--n-button-background-color, var(--n-color-accent))}:host([variant=primary]) .n-button:hover{filter:brightness(93%)}:host([variant=primary]) .n-button:focus{--_n-button-box-shadow:0 0 0 1px var(--n-color-surface),0 0 0 3px var(--_n-button-border-color)}:host([variant=dashed]){--_n-button-border-color:var(--n-button-border-color, var(--n-color-border-hover));--_n-button-box-shadow:var(--n-button-box-shadow, none);--_n-button-color:var(--n-color-text-weaker);--_n-button-border-style:dashed}:host([variant=dashed]) .n-button:hover{--_n-button-color:var(--n-color-text)}:host([variant=dashed]) .n-button::after{display:none}:host([variant=plain]){--_n-button-box-shadow:var(--n-button-box-shadow, none)}:host([variant=plain]),:host([variant=plain]) .n-button:hover{--_n-button-border-color:var(--n-button-border-color, transparent)}:host([variant=plain]) .n-button::after{display:none}:host([variant=danger]){--_n-button-box-shadow:var(--n-button-box-shadow, none);--_n-button-color:var(--n-color-text-on-accent);--_n-button-font-weight:var(--n-font-weight-active)}:host([variant=danger]),:host([variant=danger]) .n-button:hover{--_n-button-border-color:var(--n-button-border-color, transparent);--_n-button-background-color:var(--n-button-background-color, var(--n-color-status-danger))}:host([variant=danger]) .n-button:hover{filter:brightness(93%)}:host([variant=danger]) .n-button:focus{--_n-button-border-color:var(--n-button-border-color, var(--n-color-status-danger));--_n-button-box-shadow:0 0 0 1px var(--n-color-surface),0 0 0 3px var(--n-color-status-danger)}:host([variant=switch]){--_n-button-border-radius:var(--n-button-border-radius, var(--n-border-radius-sharp));--_n-button-border-color:var(--n-button-border-color, transparent);--_n-button-text-align:var(--n-button-text-align, start);--_n-button-background-color:var(--n-button-background-color, transparent);--_n-button-box-shadow:var(--n-button-box-shadow, none);--_n-button-color:var(--n-color-text);--_n-button-font-weight:var(--n-font-weight-heading);--_n-button-min-block-size:calc(var(--n-space-xxl) - 1px);--_n-button-font-size:var(--n-font-size-l);--_n-button-padding-inline:var(--n-space-m);display:flex;align-items:center}:host([variant=switch]) .n-button *{pointer-events:none}:host([variant=switch]) .n-button::after{display:none}:host([variant=switch]) .n-button:hover,:host([variant=switch][aria-expanded=true]) .n-button{--_n-button-border-color:var(--n-button-border-color, transparent);--_n-button-background-color:var(--n-button-background-color, var(--n-color-nav-hover))}:host([variant=switch]) .n-button:focus{--_n-button-box-shadow:inset 0 0 0 1px var(--_n-button-border-color)}.n-button-switch-icon{color:var(--n-color-icon);margin-inline-end:var(--n-space-s)}:host([disabled]){--_n-button-border-color:var(--n-button-border-color, var(--_n-button-background-color));--_n-button-background-color:var(--n-button-background-color, var(--n-color-border));--_n-button-box-shadow:var(--n-button-box-shadow, none);--_n-button-color:var(--n-color-text-weaker);--_n-button-opacity:0.5;pointer-events:none}:host([disabled]) .n-button::after{display:none}.n-button-spinner{position:absolute;transform:translateX(-50%) translateY(-50%);inset-block-start:50%;inset-inline-start:50%}:host([loading]:not([href])){pointer-events:none}:host([loading]:not([href])) .n-content,:host([loading]:not([href])) ::slotted([slot=end]),:host([loading]:not([href])) ::slotted([slot=start]){opacity:0}:host([size="s"]){--_n-button-gap:var(--n-button-gap, calc(var(--n-space-s) / 2));--_n-button-padding-inline:var(--n-space-s);--_n-button-padding-block:calc(var(--n-space-s) / 1.5);--_n-button-font-size:var(--n-font-size-s);--_n-button-min-block-size:var(--n-space-l)}:host([size="s"]) .n-button{line-height:var(--n-line-height-tight)}:host([size="l"]){--_n-button-border-radius:var(--n-button-border-radius, var(--n-border-radius));--_n-button-padding-inline:calc(var(--n-space-l) / 1.3);--_n-button-font-size:var(--n-font-size-l);--_n-button-min-block-size:calc(var(--n-space-xxl) - var(--n-space-l));--_n-button-font-weight:var(--n-font-weight-active)}::slotted(*){color:inherit;pointer-events:none}::slotted(svg){color:var(--n-color-icon)}::slotted(button[slot=proxy]){display:none}:host(:not([variant=primary],[variant=danger])) ::slotted(nord-icon){color:var(--n-color-icon)}slot:not([name])::slotted(nord-icon:not([size=xs])){transform:translateY(1px)}`;let g=class extends(h(u(a))){constructor(){super(...arguments),this.buttonRef=s(),this.events=new l(this),this.lightDom=new d(this,{render:()=>this.renderLightDom()}),this.variant="default",this.type="submit",this.size="m",this.download=!1,this.target="_self",this.expand=!1,this.loading=!1,this.handleOuterClick=t=>{t.composedPath().some((t=>t===this.focusableRef.value||t===this.buttonRef.value))||t.stopPropagation()}}connectedCallback(){super.connectedCallback(),this.events.listen(this,"click",this.handleOuterClick,!0)}render(){const t=r`<slot name="start"></slot><div class="n-content"><slot></slot></div><nord-spinner class="n-button-spinner" color="currentColor" ?hidden="${!this.loading||this.href}"></nord-spinner><slot name="end">${"switch"!==this.variant||this.href?e:r`<nord-icon class="n-button-switch-icon" name="interface-dropdown-small" size="s"></nord-icon>`}</slot>`;return this.href?this.renderLink(t):this.renderButton(t)}renderLink(t){return r`<a ${b(this.focusableRef)} class="n-button" target="${this.target}" ?download="${this.download}" href="${c(this.disabled,e,this.href)}" tabindex="${c(this.disabled,"-1")}" aria-disabled="${c(this.disabled,"true")}" role="${c(this.disabled,"link")}">${t}</a>`}renderButton(t){return r`<slot name="proxy" @slotchange="${this.handleProxyChange}"></slot><button ${b(this.focusableRef)} class="n-button" ?disabled="${this.disabled}" name="${c(this.name)}" value="${c(this.value)}" @click="${this.handleClick}" aria-disabled="${c(this.loading,"true")}" aria-expanded="${c(this.accessibleExpanded)}" aria-haspopup="${c(this.accessibleHasPopup)}">${t}</button>`}renderLightDom(){return this.href||!this.form?e:r`<button ${b(this.buttonRef)} slot="proxy" name="${c(this.name)}" value="${c(this.value)}" ?disabled="${this.disabled}" form="${c(this.getAttribute("form"))}" type="${this.type}"></button>`}handleClick(t){this.buttonRef.value&&(t.stopPropagation(),this.buttonRef.value.click())}handleProxyChange(t){const o=t.target,n=this.buttonRef.value;n&&n.assignedSlot!==o&&this.appendChild(n)}};g.styles=[v,p],t([i({reflect:!0})],g.prototype,"variant",void 0),t([i({reflect:!0})],g.prototype,"type",void 0),t([i({reflect:!0})],g.prototype,"size",void 0),t([i({attribute:"aria-expanded"})],g.prototype,"accessibleExpanded",void 0),t([i({attribute:"aria-haspopup"})],g.prototype,"accessibleHasPopup",void 0),t([i({reflect:!0})],g.prototype,"href",void 0),t([i({type:Boolean})],g.prototype,"download",void 0),t([i({reflect:!0})],g.prototype,"target",void 0),t([i({reflect:!0,type:Boolean})],g.prototype,"expand",void 0),t([i({reflect:!0,type:Boolean})],g.prototype,"loading",void 0),g=t([o("nord-button")],g);var f=g;export{f as default};
|
|
1
|
+
import{i as t,y as o,b as n,_ as r,e as a,s as e}from"./query-assigned-elements-cf502539.js";import{e as i}from"./property-03f59dce.js";import{e as s,n as b}from"./ref-c44e9f3c.js";import{E as l}from"./EventController-d99ebeef.js";import{L as d}from"./LightDomController-052f446a.js";import{c}from"./cond-2da54107.js";import"./Spinner.js";import{F as u}from"./FocusableMixin-32631bff.js";import{I as h}from"./InputMixin-7fa755e1.js";import{s as v}from"./Component-449e40fb.js";import"./directive-de55b00a.js";import"./if-defined-720964c0.js";const p=t`:host{--_n-button-border-radius:var(--n-button-border-radius, var(--n-border-radius-s));--_n-button-gap:var(--n-button-gap, var(--n-space-s));--_n-button-gradient:var(--n-button-gradient, linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.013) 100%));--_n-button-background-color:var(--n-button-background-color, var(--n-color-button));--_n-button-border-color:var(--n-button-border-color, var(--n-color-border-strong));--_n-button-text-align:var(--n-button-text-align, center);--_n-button-box-shadow:var(--n-button-box-shadow, var(--n-box-shadow));--_n-button-padding-inline:calc(var(--n-space-m) / 1.2);--_n-button-color:var(--n-color-text);--_n-button-opacity:1;--_n-button-border-style:solid;--_n-button-font-size:var(--n-font-size-m);--_n-button-font-weight:var(--n-font-weight);--_n-button-min-block-size:var(--n-space-xl);--_n-button-inline-size:fit-content;--_n-button-padding-block:calc(var(--n-space-s) / 1.6);display:inline-block}.n-button{-webkit-appearance:none;align-items:center;appearance:none;background:var(--_n-button-background-color);opacity:var(--_n-button-opacity);border-radius:var(--_n-button-border-radius);border:1px var(--_n-button-border-style) var(--_n-button-border-color);box-shadow:var(--_n-button-box-shadow);color:var(--_n-button-color);cursor:pointer;display:flex;gap:var(--_n-button-gap);font-family:var(--n-font-family);font-feature-settings:var(--n-font-features);font-size:var(--_n-button-font-size);font-weight:var(--_n-button-font-weight);line-height:var(--n-line-height-form);margin:0;min-block-size:var(--_n-button-min-block-size);padding:var(--_n-button-padding-block) var(--_n-button-padding-inline);text-align:var(--_n-button-text-align);text-decoration:none;transition:.1s ease;transition-property:background-color,opacity,color,box-shadow,border-color;-webkit-user-select:none;user-select:none;position:relative;inline-size:var(--_n-button-inline-size)}.n-button::after{content:"";position:absolute;background:0 0;background-image:var(--_n-button-gradient);border-radius:var(--_n-button-border-radius);background-repeat:repeat-x;inline-size:100%;inset-inline:0;block-size:100%;inset-block-start:0}:host([expand]){--_n-button-inline-size:100%;display:block}.n-content{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.n-button:hover{--_n-button-border-color:var(--n-button-border-color, var(--n-color-border-hover));--_n-button-background-color:var(--n-button-background-color, var(--n-color-button-hover))}.n-button:focus{--_n-button-border-color:var(--n-button-border-color, var(--n-color-accent));--_n-button-border-style:solid;--_n-button-box-shadow:0 0 0 1px var(--n-color-accent),var(--n-box-shadow);outline:0}.n-button:active{opacity:.8;transform:translateY(1px);transition:none}:host([variant=primary]){--_n-button-box-shadow:var(--n-button-box-shadow, none);--_n-button-color:var(--n-color-text-on-accent);--_n-button-font-weight:var(--n-font-weight-active)}:host([variant=primary]),:host([variant=primary]) .n-button:hover{--_n-button-border-color:var(--n-button-border-color, transparent);--_n-button-background-color:var(--n-button-background-color, var(--n-color-accent))}:host([variant=primary]) .n-button:hover{filter:brightness(93%)}:host([variant=primary]) .n-button:focus{--_n-button-box-shadow:0 0 0 1px var(--n-color-surface),0 0 0 3px var(--_n-button-border-color)}:host([variant=dashed]){--_n-button-border-color:var(--n-button-border-color, var(--n-color-border-hover));--_n-button-box-shadow:var(--n-button-box-shadow, none);--_n-button-color:var(--n-color-text-weaker);--_n-button-border-style:dashed}:host([variant=dashed]) .n-button:hover{--_n-button-color:var(--n-color-text)}:host([variant=dashed]) .n-button::after{display:none}:host([variant=plain]){--_n-button-box-shadow:var(--n-button-box-shadow, none)}:host([variant=plain]),:host([variant=plain]) .n-button:hover{--_n-button-border-color:var(--n-button-border-color, transparent)}:host([variant=plain]) .n-button::after{display:none}:host([variant=danger]){--_n-button-box-shadow:var(--n-button-box-shadow, none);--_n-button-color:var(--n-color-text-on-accent);--_n-button-font-weight:var(--n-font-weight-active)}:host([variant=danger]),:host([variant=danger]) .n-button:hover{--_n-button-border-color:var(--n-button-border-color, transparent);--_n-button-background-color:var(--n-button-background-color, var(--n-color-status-danger))}:host([variant=danger]) .n-button:hover{filter:brightness(93%)}:host([variant=danger]) .n-button:focus{--_n-button-border-color:var(--n-button-border-color, var(--n-color-status-danger));--_n-button-box-shadow:0 0 0 1px var(--n-color-surface),0 0 0 3px var(--n-color-status-danger)}:host([variant=switch]){--_n-button-border-radius:var(--n-button-border-radius, var(--n-border-radius-sharp));--_n-button-border-color:var(--n-button-border-color, transparent);--_n-button-text-align:var(--n-button-text-align, start);--_n-button-background-color:var(--n-button-background-color, transparent);--_n-button-box-shadow:var(--n-button-box-shadow, none);--_n-button-color:var(--n-color-text);--_n-button-font-weight:var(--n-font-weight-heading);--_n-button-min-block-size:calc(var(--n-space-xxl) - 1px);--_n-button-font-size:var(--n-font-size-l);--_n-button-padding-inline:var(--n-space-m);display:flex;align-items:center}:host([variant=switch]) .n-button *{pointer-events:none}:host([variant=switch]) .n-button::after{display:none}:host([variant=switch]) .n-button:hover,:host([variant=switch][aria-expanded=true]) .n-button{--_n-button-border-color:var(--n-button-border-color, transparent);--_n-button-background-color:var(--n-button-background-color, var(--n-color-nav-hover))}:host([variant=switch]) .n-button:focus{--_n-button-box-shadow:inset 0 0 0 1px var(--_n-button-border-color)}.n-button-switch-icon{color:var(--n-color-icon);margin-inline-end:var(--n-space-s)}:host([disabled]){--_n-button-border-color:var(--n-button-border-color, var(--_n-button-background-color));--_n-button-background-color:var(--n-button-background-color, var(--n-color-border));--_n-button-box-shadow:var(--n-button-box-shadow, none);--_n-button-color:var(--n-color-text-weaker);--_n-button-opacity:0.5;pointer-events:none}:host([disabled]) .n-button::after{display:none}.n-button-spinner{position:absolute;transform:translateX(-50%) translateY(-50%);inset-block-start:50%;inset-inline-start:50%}:host([loading]:not([href])){pointer-events:none}:host([loading]:not([href])) .n-content,:host([loading]:not([href])) ::slotted([slot=end]),:host([loading]:not([href])) ::slotted([slot=start]){opacity:0}:host([size="s"]){--_n-button-gap:var(--n-button-gap, calc(var(--n-space-s) / 2));--_n-button-padding-inline:var(--n-space-s);--_n-button-padding-block:calc(var(--n-space-s) / 1.5);--_n-button-font-size:var(--n-font-size-s);--_n-button-min-block-size:var(--n-space-l)}:host([size="s"]) .n-button{line-height:var(--n-line-height-tight)}:host([size="l"]){--_n-button-border-radius:var(--n-button-border-radius, var(--n-border-radius));--_n-button-padding-inline:calc(var(--n-space-l) / 1.3);--_n-button-font-size:var(--n-font-size-l);--_n-button-min-block-size:calc(var(--n-space-xxl) - var(--n-space-l));--_n-button-font-weight:var(--n-font-weight-active)}::slotted(*){color:inherit;pointer-events:none}::slotted(svg){color:var(--n-color-icon)}::slotted(button[slot=proxy]){display:none}:host(:not([variant=primary],[variant=danger])) ::slotted(nord-icon){color:var(--n-color-icon)}slot:not([name])::slotted(nord-icon:not([size=xs])){transform:translateY(1px)}`;let f=class extends(h(u(e))){constructor(){super(...arguments),this.buttonRef=s(),this.events=new l(this),this.lightDom=new d(this,{render:()=>this.renderLightDom()}),this.variant="default",this.type="submit",this.size="m",this.download=!1,this.target="_self",this.expand=!1,this.loading=!1,this.handleOuterClick=t=>{t.composedPath().some((t=>t===this.focusableRef.value||t===this.buttonRef.value))||t.stopPropagation()}}connectedCallback(){super.connectedCallback(),this.events.listen(this,"click",this.handleOuterClick,!0)}render(){const t=o`<slot name="start"></slot><div class="n-content"><slot></slot></div><nord-spinner class="n-button-spinner" color="currentColor" ?hidden="${!this.loading||this.href}"></nord-spinner><slot name="end">${"switch"!==this.variant||this.href?n:o`<nord-icon class="n-button-switch-icon" name="interface-dropdown-small" size="s"></nord-icon>`}</slot>`;return this.href?this.renderLink(t):this.renderButton(t)}renderLink(t){return o`<a ${b(this.focusableRef)} class="n-button" target="${this.target}" ?download="${this.download}" href="${c(this.disabled,n,this.href)}" tabindex="${c(this.disabled,"-1")}" aria-disabled="${c(this.disabled,"true")}" role="${c(this.disabled,"link")}">${t}</a>`}renderButton(t){return o`<slot name="proxy" @slotchange="${this.handleProxyChange}"></slot><button ${b(this.focusableRef)} class="n-button" ?disabled="${this.disabled}" name="${c(this.name)}" value="${c(this.value)}" @click="${this.handleClick}" aria-disabled="${c(this.loading,"true")}" aria-expanded="${c(this.accessibleExpanded)}" aria-haspopup="${c(this.accessibleHasPopup)}">${t}</button>`}renderLightDom(){return this.href||!this.form?n:o`<button ${b(this.buttonRef)} slot="proxy" name="${c(this.name)}" value="${c(this.value)}" ?disabled="${this.disabled}" form="${c(this.getAttribute("form"))}" type="${this.type}"></button>`}handleClick(t){this.buttonRef.value&&(t.stopPropagation(),this.buttonRef.value.click())}handleProxyChange(t){const o=t.target,n=this.buttonRef.value;n&&n.assignedSlot!==o&&this.appendChild(n)}};f.styles=[v,p],r([i({reflect:!0})],f.prototype,"variant",void 0),r([i({reflect:!0})],f.prototype,"type",void 0),r([i({reflect:!0})],f.prototype,"size",void 0),r([i({attribute:"aria-expanded"})],f.prototype,"accessibleExpanded",void 0),r([i({attribute:"aria-haspopup"})],f.prototype,"accessibleHasPopup",void 0),r([i({reflect:!0})],f.prototype,"href",void 0),r([i({type:Boolean})],f.prototype,"download",void 0),r([i({reflect:!0})],f.prototype,"target",void 0),r([i({reflect:!0,type:Boolean})],f.prototype,"expand",void 0),r([i({reflect:!0,type:Boolean})],f.prototype,"loading",void 0),f=r([a("nord-button")],f);var g=f;export{g as default};
|
|
2
2
|
//# sourceMappingURL=Button.js.map
|
package/lib/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../src/button/Button.ts"],"sourcesContent":["import { LitElement, html, nothing, TemplateResult } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { createRef, ref } from \"lit/directives/ref.js\"\nimport { EventController } from \"../common/controllers/EventController.js\"\nimport { LightDomController } from \"../common/controllers/LightDomController.js\"\nimport { cond } from \"../common/directives/cond.js\"\n\nimport \"../spinner/Spinner.js\"\n\nimport { FocusableMixin } from \"../common/mixins/FocusableMixin.js\"\nimport { InputMixin } from \"../common/mixins/InputMixin.js\"\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Button.css\"\n\n/**\n * Buttons are used for interface actions. Primary style should be\n * used only once per section for main call-to-action, while other\n * styles can appear more frequently.\n *\n * @status ready\n * @category action\n * @slot - The button content\n * @slot start - Used to place content at the start of button text. Typically used for icons.\n * @slot end - Used to place content at the end of button text. Typically used for icons.\n *\n * @cssprop [--n-button-border-radius=var(--n-border-radius-s)] - Controls the rounded corners of the button, using [border radius tokens](/tokens/#border-radius).\n * @cssprop [--n-button-gap=var(--n-space-s)] - Controls the spacing between items within the button, using our [spacing tokens](/tokens/#space).\n * @cssprop [--n-button-gradient=linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.013) 100%))] - Controls the overlayed gradient background on the button.\n * @cssprop [--n-button-background-color=var(--n-color-button)] - Controls the background color of the button, using [color tokens](/tokens/#color).\n * @cssprop [--n-button-border-color=var(--n-color-border-strong)] - Controls the border color of the button, using [color tokens](/tokens/#color).\n * @cssprop [--n-button-text-align=center] - Controls the text alignment for the text in the button.\n * @cssprop [--n-button-box-shadow=var(--n-box-shadow)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).\n */\n@customElement(\"nord-button\")\nexport default class Button extends InputMixin(FocusableMixin(LitElement)) {\n static styles = [componentStyle, style]\n\n private buttonRef = createRef<HTMLButtonElement>()\n private events = new EventController(this)\n private lightDom = new LightDomController(this, {\n render: () => this.renderLightDom(),\n })\n\n /**\n * The style variant of the button.\n */\n @property({ reflect: true }) variant: \"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\" | \"switch\" = \"default\"\n\n /**\n * The type of the button.\n */\n @property({ reflect: true }) type: \"button\" | \"submit\" | \"reset\" = \"submit\"\n\n /**\n * The size of the button.\n * This affects font-size and padding.\n */\n @property({ reflect: true }) size: \"s\" | \"m\" | \"l\" = \"m\"\n\n /**\n * @private\n * This does not need to be documented,\n * since it is only for forwarding the aria-expanded attribute\n * to the internal button element.\n */\n @property({ attribute: \"aria-expanded\" }) accessibleExpanded?: \"true\" | \"false\"\n\n /**\n * @private\n * This does not need to be documented,\n * since it is only for forwarding the aria-haspopup attribute\n * to the internal button element.\n */\n @property({ attribute: \"aria-haspopup\" }) accessibleHasPopup?:\n | \"false\"\n | \"true\"\n | \"menu\"\n | \"listbox\"\n | \"tree\"\n | \"grid\"\n | \"dialog\"\n\n /**\n * When provided, renders the button as a link,\n * with its href attribute set to the given value.\n */\n @property({ reflect: true }) href?: string\n\n /**\n * When provided together with a href property, the button will\n * trigger a file download instead of a page visit.\n */\n @property({ type: Boolean }) download = false\n\n /**\n * When provided together with a href property, determines where\n * to open the linked URL. The keywords have special meanings for\n * where to load the URL: “_self” means the current browsing context,\n * “_blank” usually a new tab but users can configure browsers this to\n * open a new window instead, “_parent” means the parent browsing\n * context of the current one, but if no parent exists, behaves as\n * _self, and finally “top” means the topmost browsing context.\n */\n @property({ reflect: true }) target: \"_self\" | \"_blank\" | \"_parent\" | \"_top\" = \"_self\"\n\n /**\n * Controls whether the button expands to fill the width of its container.\n */\n @property({ reflect: true, type: Boolean }) expand = false\n\n /**\n * Controls whether the button is in loading state. Please note that the spinner\n * is hidden from assistive technologies, so you need to make sure to announce\n * the loading state to e.g. screen reader users. We also recommend disabling\n * all user interactions on the button itself while in loading state.\n */\n @property({ reflect: true, type: Boolean }) loading = false\n\n connectedCallback() {\n super.connectedCallback()\n this.events.listen(this, \"click\", this.handleOuterClick, true)\n }\n\n render() {\n const innards = html`\n <slot name=\"start\"></slot>\n <div class=\"n-content\">\n <slot></slot>\n </div>\n <nord-spinner class=\"n-button-spinner\" color=\"currentColor\" ?hidden=${!this.loading || this.href}></nord-spinner>\n <slot name=\"end\">\n ${this.variant === \"switch\" && !this.href\n ? html`<nord-icon class=\"n-button-switch-icon\" name=\"interface-dropdown-small\" size=\"s\"></nord-icon>`\n : nothing}\n </slot>\n `\n\n return this.href ? this.renderLink(innards) : this.renderButton(innards)\n }\n\n /**\n * We jump through some hoops here to ensure the link is treated correctly when \"disabled\".\n * Links cannot be disabled natively, so we need to rely on some aria magic to get the correct semantics.\n * Along with the advice in the article below, we also set tabindex to \"-1\", so it is taken out of tab order.\n *\n * @see https://www.scottohara.me/blog/2021/05/28/disabled-links.html\n */\n private renderLink(innards: TemplateResult) {\n return html`\n <a\n ${ref(this.focusableRef)}\n class=\"n-button\"\n target=${this.target}\n ?download=${this.download}\n href=${cond(this.disabled, nothing, this.href)}\n tabindex=${cond(this.disabled, \"-1\")}\n aria-disabled=${cond(this.disabled, \"true\")}\n role=${cond(this.disabled, \"link\")}\n >${innards}\n </a>\n `\n }\n\n private renderButton(innards: TemplateResult) {\n return html`\n <slot name=\"proxy\" @slotchange=${this.handleProxyChange}></slot>\n <button\n ${ref(this.focusableRef)}\n class=\"n-button\"\n ?disabled=${this.disabled}\n name=${cond(this.name)}\n value=${cond(this.value)}\n @click=${this.handleClick}\n aria-disabled=${cond(this.loading, \"true\")}\n aria-expanded=${cond(this.accessibleExpanded)}\n aria-haspopup=${cond(this.accessibleHasPopup)}\n >\n ${innards}\n </button>\n `\n }\n\n private renderLightDom() {\n if (this.href || !this.form) {\n return nothing\n }\n\n return html`\n <button\n ${ref(this.buttonRef)}\n slot=\"proxy\"\n name=${cond(this.name)}\n value=${cond(this.value)}\n ?disabled=${this.disabled}\n form=${cond(this.getAttribute(\"form\"))}\n type=${this.type}\n ></button>\n `\n }\n\n private handleOuterClick = (e: MouseEvent) => {\n // we want to avoid emitting click events when a click\n // happens in blank space in the host, but not on the button\n // so we stop propagation of any events if click didn't happen on the internal or proxy button\n const isInternalButton = e\n .composedPath()\n .some(node => node === this.focusableRef.value || node === this.buttonRef.value)\n\n if (!isInternalButton) {\n e.stopPropagation()\n }\n }\n\n private handleClick(e: Event) {\n if (this.buttonRef.value) {\n // prevents two events: one from internal button, one from proxy button\n e.stopPropagation()\n this.buttonRef.value.click()\n }\n }\n\n /**\n * React/Vue etc may remove our proxy button when updating button text, since they are unaware of its existence.\n * So we listen for a slotchange event, and if the element is no longer connected to the DOM we add it back in.\n */\n private handleProxyChange(e: Event) {\n const slot = e.target as HTMLSlotElement\n const proxyButton = this.buttonRef.value\n\n if (proxyButton && proxyButton.assignedSlot !== slot) {\n this.appendChild(proxyButton)\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-button\": Button\n }\n}\n"],"names":["Button","InputMixin","FocusableMixin","LitElement","constructor","this","buttonRef","createRef","events","EventController","lightDom","LightDomController","render","renderLightDom","variant","type","size","download","target","expand","loading","handleOuterClick","e","composedPath","some","node","focusableRef","value","stopPropagation","connectedCallback","super","listen","innards","html","href","nothing","renderLink","renderButton","ref","cond","disabled","handleProxyChange","name","handleClick","accessibleExpanded","accessibleHasPopup","form","getAttribute","click","slot","proxyButton","assignedSlot","appendChild","styles","componentStyle","style","__decorate","property","reflect","prototype","attribute","Boolean","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../src/button/Button.ts"],"sourcesContent":["import { LitElement, html, nothing, TemplateResult } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { createRef, ref } from \"lit/directives/ref.js\"\nimport { EventController } from \"../common/controllers/EventController.js\"\nimport { LightDomController } from \"../common/controllers/LightDomController.js\"\nimport { cond } from \"../common/directives/cond.js\"\n\nimport \"../spinner/Spinner.js\"\n\nimport { FocusableMixin } from \"../common/mixins/FocusableMixin.js\"\nimport { InputMixin } from \"../common/mixins/InputMixin.js\"\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Button.css\"\n\n/**\n * Buttons are used for interface actions. Primary style should be\n * used only once per section for main call-to-action, while other\n * styles can appear more frequently.\n *\n * @status ready\n * @category action\n * @slot - The button content\n * @slot start - Used to place content at the start of button text. Typically used for icons.\n * @slot end - Used to place content at the end of button text. Typically used for icons.\n *\n * @cssprop [--n-button-border-radius=var(--n-border-radius-s)] - Controls the rounded corners of the button, using [border radius tokens](/tokens/#border-radius).\n * @cssprop [--n-button-gap=var(--n-space-s)] - Controls the spacing between items within the button, using our [spacing tokens](/tokens/#space).\n * @cssprop [--n-button-gradient=linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.013) 100%))] - Controls the overlayed gradient background on the button.\n * @cssprop [--n-button-background-color=var(--n-color-button)] - Controls the background color of the button, using [color tokens](/tokens/#color).\n * @cssprop [--n-button-border-color=var(--n-color-border-strong)] - Controls the border color of the button, using [color tokens](/tokens/#color).\n * @cssprop [--n-button-text-align=center] - Controls the text alignment for the text in the button.\n * @cssprop [--n-button-box-shadow=var(--n-box-shadow)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).\n */\n@customElement(\"nord-button\")\nexport default class Button extends InputMixin(FocusableMixin(LitElement)) {\n static styles = [componentStyle, style]\n\n private buttonRef = createRef<HTMLButtonElement>()\n private events = new EventController(this)\n private lightDom = new LightDomController(this, {\n render: () => this.renderLightDom(),\n })\n\n /**\n * The style variant of the button.\n */\n @property({ reflect: true }) variant: \"default\" | \"primary\" | \"dashed\" | \"plain\" | \"danger\" | \"switch\" = \"default\"\n\n /**\n * The type of the button.\n */\n @property({ reflect: true }) type: \"button\" | \"submit\" | \"reset\" = \"submit\"\n\n /**\n * The size of the button.\n * This affects font-size and padding.\n */\n @property({ reflect: true }) size: \"s\" | \"m\" | \"l\" = \"m\"\n\n /**\n * @private\n * This does not need to be documented,\n * since it is only for forwarding the aria-expanded attribute\n * to the internal button element.\n */\n @property({ attribute: \"aria-expanded\" }) accessibleExpanded?: \"true\" | \"false\"\n\n /**\n * @private\n * This does not need to be documented,\n * since it is only for forwarding the aria-haspopup attribute\n * to the internal button element.\n */\n @property({ attribute: \"aria-haspopup\" }) accessibleHasPopup?:\n | \"false\"\n | \"true\"\n | \"menu\"\n | \"listbox\"\n | \"tree\"\n | \"grid\"\n | \"dialog\"\n\n /**\n * When provided, renders the button as a link,\n * with its href attribute set to the given value.\n */\n @property({ reflect: true }) href?: string\n\n /**\n * When provided together with a href property, the button will\n * trigger a file download instead of a page visit.\n */\n @property({ type: Boolean }) download = false\n\n /**\n * When provided together with a href property, determines where\n * to open the linked URL. The keywords have special meanings for\n * where to load the URL: “_self” means the current browsing context,\n * “_blank” usually a new tab but users can configure browsers this to\n * open a new window instead, “_parent” means the parent browsing\n * context of the current one, but if no parent exists, behaves as\n * _self, and finally “top” means the topmost browsing context.\n */\n @property({ reflect: true }) target: \"_self\" | \"_blank\" | \"_parent\" | \"_top\" = \"_self\"\n\n /**\n * Controls whether the button expands to fill the width of its container.\n */\n @property({ reflect: true, type: Boolean }) expand = false\n\n /**\n * Controls whether the button is in loading state. Please note that the spinner\n * is hidden from assistive technologies, so you need to make sure to announce\n * the loading state to e.g. screen reader users. We also recommend disabling\n * all user interactions on the button itself while in loading state.\n */\n @property({ reflect: true, type: Boolean }) loading = false\n\n connectedCallback() {\n super.connectedCallback()\n this.events.listen(this, \"click\", this.handleOuterClick, true)\n }\n\n render() {\n const innards = html`\n <slot name=\"start\"></slot>\n <div class=\"n-content\">\n <slot></slot>\n </div>\n <nord-spinner class=\"n-button-spinner\" color=\"currentColor\" ?hidden=${!this.loading || this.href}></nord-spinner>\n <slot name=\"end\">\n ${this.variant === \"switch\" && !this.href\n ? html`<nord-icon class=\"n-button-switch-icon\" name=\"interface-dropdown-small\" size=\"s\"></nord-icon>`\n : nothing}\n </slot>\n `\n\n return this.href ? this.renderLink(innards) : this.renderButton(innards)\n }\n\n /**\n * We jump through some hoops here to ensure the link is treated correctly when \"disabled\".\n * Links cannot be disabled natively, so we need to rely on some aria magic to get the correct semantics.\n * Along with the advice in the article below, we also set tabindex to \"-1\", so it is taken out of tab order.\n *\n * @see https://www.scottohara.me/blog/2021/05/28/disabled-links.html\n */\n private renderLink(innards: TemplateResult) {\n return html`\n <a\n ${ref(this.focusableRef)}\n class=\"n-button\"\n target=${this.target}\n ?download=${this.download}\n href=${cond(this.disabled, nothing, this.href)}\n tabindex=${cond(this.disabled, \"-1\")}\n aria-disabled=${cond(this.disabled, \"true\")}\n role=${cond(this.disabled, \"link\")}\n >${innards}\n </a>\n `\n }\n\n private renderButton(innards: TemplateResult) {\n return html`\n <slot name=\"proxy\" @slotchange=${this.handleProxyChange}></slot>\n <button\n ${ref(this.focusableRef)}\n class=\"n-button\"\n ?disabled=${this.disabled}\n name=${cond(this.name)}\n value=${cond(this.value)}\n @click=${this.handleClick}\n aria-disabled=${cond(this.loading, \"true\")}\n aria-expanded=${cond(this.accessibleExpanded)}\n aria-haspopup=${cond(this.accessibleHasPopup)}\n >\n ${innards}\n </button>\n `\n }\n\n private renderLightDom() {\n if (this.href || !this.form) {\n return nothing\n }\n\n return html`\n <button\n ${ref(this.buttonRef)}\n slot=\"proxy\"\n name=${cond(this.name)}\n value=${cond(this.value)}\n ?disabled=${this.disabled}\n form=${cond(this.getAttribute(\"form\"))}\n type=${this.type}\n ></button>\n `\n }\n\n private handleOuterClick = (e: MouseEvent) => {\n // we want to avoid emitting click events when a click\n // happens in blank space in the host, but not on the button\n // so we stop propagation of any events if click didn't happen on the internal or proxy button\n const isInternalButton = e\n .composedPath()\n .some(node => node === this.focusableRef.value || node === this.buttonRef.value)\n\n if (!isInternalButton) {\n e.stopPropagation()\n }\n }\n\n private handleClick(e: Event) {\n if (this.buttonRef.value) {\n // prevents two events: one from internal button, one from proxy button\n e.stopPropagation()\n this.buttonRef.value.click()\n }\n }\n\n /**\n * React/Vue etc may remove our proxy button when updating button text, since they are unaware of its existence.\n * So we listen for a slotchange event, and if the element is no longer connected to the DOM we add it back in.\n */\n private handleProxyChange(e: Event) {\n const slot = e.target as HTMLSlotElement\n const proxyButton = this.buttonRef.value\n\n if (proxyButton && proxyButton.assignedSlot !== slot) {\n this.appendChild(proxyButton)\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-button\": Button\n }\n}\n"],"names":["Button","InputMixin","FocusableMixin","LitElement","constructor","this","buttonRef","createRef","events","EventController","lightDom","LightDomController","render","renderLightDom","variant","type","size","download","target","expand","loading","handleOuterClick","e","composedPath","some","node","focusableRef","value","stopPropagation","connectedCallback","super","listen","innards","html","href","nothing","renderLink","renderButton","ref","cond","disabled","handleProxyChange","name","handleClick","accessibleExpanded","accessibleHasPopup","form","getAttribute","click","slot","proxyButton","assignedSlot","appendChild","styles","componentStyle","style","__decorate","property","reflect","prototype","attribute","Boolean","customElement"],"mappings":"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"}
|
package/lib/ButtonGroup.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as r,y as o,_ as t,e as n,s as e}from"./query-assigned-elements-cf502539.js";import{e as i}from"./property-03f59dce.js";import{D as a}from"./DraftComponentMixin-9e4b7b34.js";import{s as d}from"./Component-449e40fb.js";const s=r`:host{--_n-button-group-border-radius:var(--n-button-group-border-radius, var(--n-border-radius-s));--_n-button-group-box-shadow:var(--n-button-group-box-shadow, var(--n-box-shadow));--n-button-border-radius:0;--n-button-box-shadow:none}.n-button-group{display:flex;max-inline-size:max-content;border-radius:var(--_n-button-group-border-radius);box-shadow:var(--_n-button-group-box-shadow)}:host([direction=horizontal]) ::slotted(*){margin-inline-end:-1px}::slotted(:is(:hover,:focus,:focus-within,[aria-pressed=true])){z-index:var(--n-index-masked)}::slotted([aria-pressed=true]){--n-button-background-color:var(--n-color-status-info-weak);--n-button-border-color:var(--n-color-accent)}::slotted(:first-child){--n-button-border-radius:var(--_n-button-group-border-radius) 0 0 var(--_n-button-group-border-radius);border-radius:var(--_n-button-group-border-radius) 0 0 var(--_n-button-group-border-radius)}::slotted(:last-child){--n-button-border-radius:0 var(--_n-button-group-border-radius) var(--_n-button-group-border-radius) 0;border-radius:0 var(--_n-button-group-border-radius) var(--_n-button-group-border-radius) 0}:host([direction=vertical]) .n-button-group{flex-direction:column}:host([direction=vertical]) ::slotted(*){margin-block-end:-1px}:host([direction=vertical]) ::slotted(:first-child){--n-button-border-radius:var(--_n-button-group-border-radius) var(--_n-button-group-border-radius) 0 0}:host([direction=vertical]) ::slotted(:last-child){--n-button-border-radius:0 0 var(--_n-button-group-border-radius) var(--_n-button-group-border-radius)}::slotted(nord-button[variant=primary]){position:relative}::slotted(nord-button[variant=primary]:not(:is(:focus,:first-child)))::before,::slotted(nord-button[variant=primary]:not(:is(:focus,:last-child)))::after{content:"";position:absolute;z-index:var(--n-index-mask);background:var(--n-color-text);opacity:.25}:host([direction=horizontal]) ::slotted(nord-button[variant=primary])::after,:host([direction=horizontal]) ::slotted(nord-button[variant=primary])::before{inline-size:1px;inset-block:0}:host([direction=horizontal]) ::slotted(nord-button[variant=primary])::after{inset-inline-end:0}:host([direction=vertical]) ::slotted(nord-button[variant=primary])::after,:host([direction=vertical]) ::slotted(nord-button[variant=primary])::before{block-size:1px;inset-inline:0}:host([direction=vertical]) ::slotted(nord-button[variant=primary])::after{inset-block-end:0}`;let u=class extends(a(e)){constructor(){super(...arguments),this.direction="horizontal",this.role="group"}render(){return o`<div class="n-button-group"><slot></slot></div>`}};u.styles=[d,s],t([i({reflect:!0})],u.prototype,"direction",void 0),t([i({reflect:!0})],u.prototype,"role",void 0),u=t([n("nord-button-group")],u);var b=u;export{b as default};
|
|
2
2
|
//# sourceMappingURL=ButtonGroup.js.map
|
package/lib/ButtonGroup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonGroup.js","sources":["../src/button-group/ButtonGroup.ts"],"sourcesContent":["import { LitElement, html } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { DraftComponentMixin } from \"../common/mixins/DraftComponentMixin.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./ButtonGroup.css\"\n\n/**\n * Button groups are designed to bring together button controls that are of a similar nature. For example text formatting controls.\n *\n * @status draft\n * @category structure\n * @slot - The button group content\n *\n * @cssprop [--n-button-group-border-radius=var(--n-border-radius-s)] - Controls the rounded corners of the button, using [border radius tokens](/tokens/#border-radius).\n * @cssprop [--n-button-group-box-shadow=var(--n-box-shadow)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).\n\n */\n@customElement(\"nord-button-group\")\nexport default class ButtonGroup extends DraftComponentMixin(LitElement) {\n static styles = [componentStyle, style]\n\n /**\n * The direction of the button group.\n */\n @property({ reflect: true }) direction: \"vertical\" | \"horizontal\" = \"horizontal\"\n\n /**\n * The appropriate role for the containing element.\n */\n @property({ reflect: true }) role: string = \"group\"\n\n render() {\n return html`\n <div class=\"n-button-group\">\n <slot></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-button-group\": ButtonGroup\n }\n}\n"],"names":["ButtonGroup","DraftComponentMixin","LitElement","constructor","this","direction","role","render","html","styles","componentStyle","style","__decorate","property","reflect","prototype","customElement"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ButtonGroup.js","sources":["../src/button-group/ButtonGroup.ts"],"sourcesContent":["import { LitElement, html } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { DraftComponentMixin } from \"../common/mixins/DraftComponentMixin.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./ButtonGroup.css\"\n\n/**\n * Button groups are designed to bring together button controls that are of a similar nature. For example text formatting controls.\n *\n * @status draft\n * @category structure\n * @slot - The button group content\n *\n * @cssprop [--n-button-group-border-radius=var(--n-border-radius-s)] - Controls the rounded corners of the button, using [border radius tokens](/tokens/#border-radius).\n * @cssprop [--n-button-group-box-shadow=var(--n-box-shadow)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).\n\n */\n@customElement(\"nord-button-group\")\nexport default class ButtonGroup extends DraftComponentMixin(LitElement) {\n static styles = [componentStyle, style]\n\n /**\n * The direction of the button group.\n */\n @property({ reflect: true }) direction: \"vertical\" | \"horizontal\" = \"horizontal\"\n\n /**\n * The appropriate role for the containing element.\n */\n @property({ reflect: true }) role: string = \"group\"\n\n render() {\n return html`\n <div class=\"n-button-group\">\n <slot></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-button-group\": ButtonGroup\n }\n}\n"],"names":["ButtonGroup","DraftComponentMixin","LitElement","constructor","this","direction","role","render","html","styles","componentStyle","style","__decorate","property","reflect","prototype","customElement"],"mappings":"4mFAmBA,IAAqBA,EAArB,cAAyCC,EAAoBC,IAA7DC,kCAM+BC,KAASC,UAA8B,aAKvCD,KAAIE,KAAW,OAS7C,CAPCC,SACE,OAAOC,CAAI,iDAKZ,GAlBMR,EAAAS,OAAS,CAACC,EAAgBC,GAKJC,EAAA,CAA5BC,EAAS,CAAEC,SAAS,KAA2Dd,EAAAe,UAAA,iBAAA,GAKnDH,EAAA,CAA5BC,EAAS,CAAEC,SAAS,KAA8Bd,EAAAe,UAAA,YAAA,GAXhCf,EAAWY,EAAA,CAD/BI,EAAc,sBACMhB,SAAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e,_ as a,s as t,y as n,e as s}from"./query-assigned-elements-cf502539.js";import{e as i}from"./property-03f59dce.js";import{t as o}from"./state-70f38ceb.js";import{i as r}from"./query-2d22378e.js";import{o as l}from"./class-map-21152cee.js";import{c as d,m as c,a as h}from"./collection-7eee4e72.js";import{o as u}from"./tinykeys.module-84e6cc41.js";import"./Button.js";import"./VisuallyHidden.js";import p from"./Icon.js";import{E as v}from"./EventController-d99ebeef.js";import{D as g}from"./DirectionController-8b298382.js";import{LocalizeController as f}from"./LocalizeController.js";import{c as m}from"./cond-2da54107.js";import{r as b}from"./number-c3ab3e95.js";import{i as y,p as w,a as x,s as D,e as k,b as z,g as $,c as F,d as _,f as M,h as Y,j,k as S,l as T,m as C,n as L}from"./dates-5b651fbe.js";import{o as N}from"./observe-a9c6dfb6.js";import{DateSelectEvent as O}from"./DateSelectEvent.js";import{s as X}from"./Component-449e40fb.js";var A=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 140 140" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M105 57.4 47.6 2.8a10.566 10.566 0 1 0-14.56 15.316l51.968 49.35a3.486 3.486 0 0 1 0 5.068l-51.968 49.35a10.502 10.502 0 0 0 14.462 15.232l57.638-54.74A17.584 17.584 0 0 0 105 57.4z"/></svg>',title:"arrow-right-small",tags:"nordicon arrow right small caret pointing triangle chevron"});var E=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 140 140" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M99.736 140a10.486 10.486 0 0 1-7.238-2.884L35 82.6a17.598 17.598 0 0 1-.14-24.976l57.638-54.74a10.502 10.502 0 1 1 14.462 15.232l-51.968 49.35a3.486 3.486 0 0 0 0 5.068l51.968 49.35A10.5 10.5 0 0 1 99.736 140z"/></svg>',title:"arrow-left-small",tags:"nordicon arrow left small caret pointing triangle chevron"});var W=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 140 140" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M70 110.236a17.332 17.332 0 0 1-12.306-5.096L2.884 47.502A10.502 10.502 0 1 1 18.116 33.04l49.35 51.968a3.486 3.486 0 0 0 5.068 0l49.35-51.968a10.502 10.502 0 1 1 15.232 14.462L82.6 105a17.766 17.766 0 0 1-12.6 5.236z"/></svg>',title:"arrow-down-small",tags:"nordicon arrow down small caret pointing triangle chevron"});const U=e=>e.preventDefault();class I{constructor(e,a){this.hadFirstUpdate=!1,this.initialTouchX=0,this.initialTouchY=0,this.handleTouchStart=e=>{const[{pageX:a,pageY:t}]=e.changedTouches;this.initialTouchX=a,this.initialTouchY=t},this.handleTouchEnd=e=>{const[{pageX:a,pageY:t}]=e.changedTouches,{matchesGesture:n,onSwipeEnd:s}=this.options,i=a-this.initialTouchX,o=t-this.initialTouchY,r={initialX:this.initialTouchX,initialY:this.initialTouchY,pageX:a,pageY:t,distX:i,distY:o};n(r)&&(e.preventDefault(),s(r))},e.addController(this),this.events=new v(e),this.options={target:()=>e,...a}}hostUpdated(){if(!this.hadFirstUpdate){this.hadFirstUpdate=!0;const e=this.options.target();this.events.listen(e,"touchstart",this.handleTouchStart),this.events.listen(e,"touchmove",U),this.events.listen(e,"touchend",this.handleTouchEnd)}}hostDisconnected(){this.hadFirstUpdate=!1}}const P=({distX:e,distY:a})=>Math.abs(e)>=70&&Math.abs(a)<=70,B=({distX:e,distY:a})=>Math.abs(a)>=70&&Math.abs(e)<=70&&a>0,H=e`:host{--_n-calendar-box-shadow:var(--n-calendar-box-shadow, var(--n-box-shadow-popout));--_n-calendar-border-radius:var(--n-calendar-border-radius, var(--n-border-radius-s));--_n-calendar-highlight-color:var(--n-calendar-highlight-color, var(--n-color-accent));--_n-calendar-padding:var(--n-space-m) var(--n-space-m) calc(var(--n-space-m) * 1.25);--_n-calendar-inline-size:max-content;font-feature-settings:var(--n-font-features-reduced)}.n-calendar{-webkit-user-select:none;user-select:none;background:var(--n-color-surface);box-shadow:var(--_n-calendar-box-shadow);border-radius:var(--_n-calendar-border-radius);inline-size:var(--_n-calendar-inline-size);min-inline-size:min-content;padding:var(--_n-calendar-padding)}:host([expand]){--_n-calendar-inline-size:100%}.n-calendar-table{border-collapse:collapse;border-spacing:0;color:var(--n-color-text);font-size:var(--n-font-size-m);font-weight:var(--n-font-weight);text-align:center;inline-size:100%}.n-calendar-table-header{font-size:var(--n-font-size-s);font-weight:var(--n-font-weight-active);letter-spacing:1px;padding-block-end:var(--n-space-s);text-decoration:none;text-transform:uppercase}.n-calendar-cell{text-align:center;padding:1px}.n-calendar-day{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:0;border-radius:var(--n-border-radius-s);color:var(--n-color-text);cursor:pointer;display:inline-block;font-family:var(--n-font-family);font-size:var(--n-font-size-m);font-weight:var(--n-font-weight);font-variant-numeric:tabular-nums;block-size:var(--n-space-xl);inline-size:var(--n-space-xl);padding:0 0 1px;position:relative;text-align:center;vertical-align:middle}.n-calendar-day[aria-current=date]{box-shadow:0 0 0 1px var(--n-color-accent);color:var(--n-color-text-link);position:relative}.n-calendar-day:hover{background:var(--n-color-active)}.n-calendar-day:focus,.n-calendar-day[aria-pressed=true]{background:var(--n-color-accent);box-shadow:none;color:var(--n-color-text-on-accent);outline:0}.n-calendar-day:active{background:var(--n-color-accent);box-shadow:none!important;color:var(--n-color-text-on-accent)}.n-calendar-day:focus{box-shadow:0 0 5px var(--n-color-accent)}.n-calendar-day:not(.is-month){box-shadow:none}.n-calendar-day:not(.is-month),.n-calendar-day[aria-disabled=true]{background:0 0;color:var(--n-color-text-weakest);cursor:default}.n-calendar-day[aria-disabled=true]{color:var(--n-color-text-weaker);text-decoration:line-through}.n-calendar-day:not(.is-month)[aria-disabled=true]{color:var(--n-color-text-weakest);text-decoration:none}.n-calendar-day[aria-disabled=true][aria-current=date]{box-shadow:0 0 0 1px var(--n-color-accent);color:var(--n-color-text-link)}.n-calendar-day[aria-disabled=true][aria-current=date]:focus{box-shadow:0 0 5px var(--n-color-accent);background:var(--n-color-accent);color:var(--n-color-text-on-accent)}.n-calendar-day[aria-disabled=true]:not([aria-current=date])::before{display:none}.n-calendar-day.is-outside{background:0 0;box-shadow:none;color:var(--n-color-text-weakest);cursor:default;pointer-events:none}.n-calendar-day.is-outside::before{display:none}.n-calendar-day.is-highlighted::after{--_n-calendar-highlight-size:5px;content:"";position:absolute;inset-inline-start:calc(50% - (var(--_n-calendar-highlight-size)/ 2));inset-block-end:calc(var(--n-space-s)/ 2);block-size:var(--_n-calendar-highlight-size);inline-size:var(--_n-calendar-highlight-size);border-radius:var(--n-border-radius-circle);background-color:var(--_n-calendar-highlight-color)}.n-calendar-day.is-highlighted.is-month:is([aria-pressed=true],:focus):not([aria-disabled=true])::after{background-color:var(--n-color-text-on-accent)}.n-calendar-day.is-highlighted:is(:not(.is-month),.is-outside,[aria-disabled=true])::after{background-color:var(--n-color-text-weakest)}.n-calendar-header{align-items:start;display:flex;justify-content:space-between;margin-block-end:var(--n-space-m);inline-size:100%}.n-calendar-nav{white-space:nowrap}.n-calendar-nav nord-button{--_n-button-padding-inline:11px;margin-inline-start:calc(var(--n-space-s)/ 2)}.n-calendar-select{display:inline-flex;margin-block-start:calc(var(--n-space-s)/ 2);position:relative;line-height:var(--n-line-height)}.n-calendar-select span{margin-inline-end:var(--n-space-s)}.n-calendar-select select{cursor:pointer;font-size:var(--n-font-size-l);block-size:100%;inset-inline-start:0;opacity:0;position:absolute;inset-block-start:0;inline-size:100%}.n-calendar-select select:focus+.n-calendar-select-label{box-shadow:0 0 0 2px var(--n-color-accent)}.n-calendar-select-label{display:flex;align-items:center;border-radius:var(--n-border-radius-s);color:var(--n-color-text);font-size:var(--n-font-size-xl);font-weight:var(--n-font-weight-active);padding-block:0;padding-inline-start:var(--n-space-s);padding-inline-end:calc(var(--n-space-s)/ 2);pointer-events:none;position:relative;inline-size:100%;text-transform:capitalize}`;p.registerIcon(A),p.registerIcon(E),p.registerIcon(W);const R=e=>a=>{a.preventDefault(),e(a)},V=()=>!1,q=()=>!1;let G=class extends t{constructor(){super(...arguments),this.direction=new g(this),this.swipe=new I(this,{matchesGesture:P,onSwipeEnd:({distX:e})=>this.addMonths(e<0?1:-1)}),this.shortcuts=u({ArrowRight:R((()=>this.addDays(this.direction.isLTR?1:-1))),ArrowLeft:R((()=>this.addDays(this.direction.isLTR?-1:1))),ArrowDown:R((()=>this.addDays(7))),ArrowUp:R((()=>this.addDays(-7))),Home:R((()=>this.startOfWeek())),End:R((()=>this.endOfWeek())),PageUp:R((()=>this.addMonths(-1))),PageDown:R((()=>this.addMonths(1))),"Shift+PageUp":R((()=>this.addYears(-1))),"Shift+PageDown":R((()=>this.addYears(1)))}),this.localize=new f(this,{onLangChange:()=>this.handleLangChange()}),this.value="",this.firstDayOfWeek=1,this.min="",this.max="",this.expand=!1,this.isDateDisabled=V,this.isDateHighlighted=q,this.activeFocus=!1,this.focusedDay=new Date,this.handleDaySelect=e=>{const a=y(e,w(this.min),w(this.max)),t=!this.isDateDisabled(e);a&&t&&(this.value=x(e),this.dispatchEvent(new O("change",e)))},this.handleMonthSelect=e=>{this.setMonth(parseInt(e.target.value,10))},this.handleYearSelect=e=>{this.setYear(parseInt(e.target.value,10))},this.handleNextMonthClick=e=>{e.preventDefault(),this.addMonths(1)},this.handlePreviousMonthClick=e=>{e.preventDefault(),this.addMonths(-1)},this.enableActiveFocus=()=>{this.activeFocus=!0},this.disableActiveFocus=e=>{const a=e.currentTarget,t=e.relatedTarget;t&&!a.contains(t)&&(this.activeFocus=!1)}}focus(e){var a;const t=null!==(a=null==e?void 0:e.target)&&void 0!==a?a:"day";"day"===t?this.focusedDayNode.focus():"month"===t&&this.monthSelectNode.focus()}render(){const e=new Date,a=w(this.value),t=this.focusedDay.getMonth(),s=this.focusedDay.getFullYear(),i=w(this.min),o=w(this.max),r=i?D(i):void 0,u=o?k(o):void 0,p=(a||this.focusedDay).getFullYear(),v=i?i.getFullYear():p-10,g=o?o.getFullYear():p+10;return n`<div class="n-calendar"><div class="n-calendar-header"><div><nord-visually-hidden><h2 id="${"dialog-header"}" aria-live="polite" aria-atomic="true">${this.monthNames[t]}, ${this.focusedDay.getFullYear()}</h2></nord-visually-hidden><div class="n-calendar-select"><select aria-label="${this.localize.term("monthSelectLabel")}" class="n-calendar-select-month" @input="${this.handleMonthSelect}">${this.monthNames.map(((e,a)=>n`<option value="${a}" ?selected="${a===t}" ?disabled="${!y(new Date(s,a,1),r,u)}">${e}</option>`))}</select><div class="n-calendar-select-label" aria-hidden="true"><span>${this.monthNamesShort[t]}</span><nord-icon color="var(--n-color-icon)" name="arrow-down-small" size="xxs"></nord-icon></div></div><div class="n-calendar-select"><select aria-label="${this.localize.term("yearSelectLabel")}" class="n-calendar-select-year" @input="${this.handleYearSelect}">${d(b(v,g),(e=>e),(e=>n`<option ?selected="${e===s}">${e}</option>`))}</select><div class="n-calendar-select-label" aria-hidden="true"><span>${this.focusedDay.getFullYear()}</span><nord-icon color="var(--n-color-icon)" name="arrow-down-small" size="xxs"></nord-icon></div></div></div><div class="n-calendar-nav"><nord-button class="n-calendar-prev" @click="${this.handlePreviousMonthClick}" ?disabled="${z(i,this.focusedDay)}" type="button"><nord-visually-hidden>${this.localize.term("prevMonthLabel")}</nord-visually-hidden><nord-icon name="${this.direction.isLTR?"arrow-left-small":"arrow-right-small"}" size="s"></nord-icon></nord-button><nord-button class="n-calendar-next" @click="${this.handleNextMonthClick}" ?disabled="${z(o,this.focusedDay)}" type="button"><nord-visually-hidden>${this.localize.term("nextMonthLabel")}</nord-visually-hidden><nord-icon name="${this.direction.isLTR?"arrow-right-small":"arrow-left-small"}" size="s"></nord-icon></nord-button></div></div><table class="n-calendar-table" aria-labelledby="${"dialog-header"}" @focusin="${this.enableActiveFocus}" @focusout="${this.disableActiveFocus}"><thead><tr>${c(this.dayNames,this.firstDayOfWeek,((e,a)=>n`<th class="n-calendar-table-header" scope="col"><span aria-hidden="true">${this.dayNamesShort[a]}</span><nord-visually-hidden>${e}</nord-visually-hidden></th>`))}</tr></thead><tbody>${h($(this.focusedDay,this.firstDayOfWeek),7).map((t=>n`<tr class="n-calendar-row">${t.map((t=>{const s=!y(t,i,o),r=F(t,e),d=this.isDateDisabled(t),c=F(t,a),h=z(t,this.focusedDay),u=this.isDateHighlighted(t),p=this.dateFormatShort.format(t),v=u&&"string"==typeof u?`${p}, ${u}`:p;return n`<td class="n-calendar-cell"><button type="button" tabindex="${F(t,this.focusedDay)?0:-1}" class="${l({"n-calendar-day":!0,"is-outside":s,"is-month":h,"is-highlighted":u})}" @click="${()=>this.handleDaySelect(t)}" @keydown="${this.shortcuts}" ?disabled="${s}" aria-disabled="${m(d,"true")}" aria-pressed="${c?"true":"false"}" aria-current="${m(r,"date")}" aria-label="${v}"><span aria-hidden="true">${t.getDate()}</span></button></td>`}))}</tr>`))}</tbody></table></div>`}handleValueChange(){this.setFocusedDay(w(this.value)||new Date)}handleFocusedDayChange(){this.activeFocus&&this.focusedDayNode.focus()}handleLangChange(){const e=this.localize.resolvedLang;this.dateFormatShort=new Intl.DateTimeFormat(e,{day:"numeric",month:"long"}),this.monthNames=_(e,"long"),this.monthNamesShort=_(e,"short"),this.dayNames=M(e,"long"),this.dayNamesShort=M(e,"narrow")}addDays(e){this.setFocusedDay(Y(this.focusedDay,e))}addMonths(e){this.setMonth(this.focusedDay.getMonth()+e)}addYears(e){this.setYear(this.focusedDay.getFullYear()+e)}startOfWeek(){this.setFocusedDay(j(this.focusedDay,this.firstDayOfWeek))}endOfWeek(){this.setFocusedDay(S(this.focusedDay,this.firstDayOfWeek))}setMonth(e){const a=T(D(this.focusedDay),e),t=k(a),n=T(this.focusedDay,e);this.setFocusedDay(C(n,a,t))}setYear(e){const a=L(D(this.focusedDay),e),t=k(a),n=L(this.focusedDay,e);this.setFocusedDay(C(n,a,t))}setFocusedDay(e){this.focusedDay=C(e,w(this.min),w(this.max)),this.dispatchEvent(new O("nord-focus-date",this.focusedDay))}};G.styles=[X,H],a([r(".n-calendar-select-month",!0)],G.prototype,"monthSelectNode",void 0),a([r('button[tabindex="0"]')],G.prototype,"focusedDayNode",void 0),a([i()],G.prototype,"value",void 0),a([i({type:Number})],G.prototype,"firstDayOfWeek",void 0),a([i()],G.prototype,"min",void 0),a([i()],G.prototype,"max",void 0),a([i({reflect:!0,type:Boolean})],G.prototype,"expand",void 0),a([i({attribute:!1})],G.prototype,"isDateDisabled",void 0),a([i({attribute:!1})],G.prototype,"isDateHighlighted",void 0),a([o()],G.prototype,"activeFocus",void 0),a([o()],G.prototype,"focusedDay",void 0),a([N("value")],G.prototype,"handleValueChange",null),a([N("focusedDay","updated")],G.prototype,"handleFocusedDayChange",null),G=a([s("nord-calendar")],G);var J=G;export{J as C,I as S,B as i};
|
|
2
|
+
//# sourceMappingURL=Calendar-e3786f07.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Calendar-e3786f07.js","sources":["../../icons/lib/assets/arrow-right-small.js","../../icons/lib/assets/arrow-left-small.js","../../icons/lib/assets/arrow-down-small.js","../src/common/controllers/SwipeController.ts","../src/calendar/Calendar.ts"],"sourcesContent":["export default '<svg viewBox=\"0 0 140 140\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M105 57.4 47.6 2.8a10.566 10.566 0 1 0-14.56 15.316l51.968 49.35a3.486 3.486 0 0 1 0 5.068l-51.968 49.35a10.502 10.502 0 0 0 14.462 15.232l57.638-54.74A17.584 17.584 0 0 0 105 57.4z\"/></svg>'\nexport const title = \"arrow-right-small\"\nexport const tags = \"nordicon arrow right small caret pointing triangle chevron\"\n","export default '<svg viewBox=\"0 0 140 140\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M99.736 140a10.486 10.486 0 0 1-7.238-2.884L35 82.6a17.598 17.598 0 0 1-.14-24.976l57.638-54.74a10.502 10.502 0 1 1 14.462 15.232l-51.968 49.35a3.486 3.486 0 0 0 0 5.068l51.968 49.35A10.5 10.5 0 0 1 99.736 140z\"/></svg>'\nexport const title = \"arrow-left-small\"\nexport const tags = \"nordicon arrow left small caret pointing triangle chevron\"\n","export default '<svg viewBox=\"0 0 140 140\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M70 110.236a17.332 17.332 0 0 1-12.306-5.096L2.884 47.502A10.502 10.502 0 1 1 18.116 33.04l49.35 51.968a3.486 3.486 0 0 0 5.068 0l49.35-51.968a10.502 10.502 0 1 1 15.232 14.462L82.6 105a17.766 17.766 0 0 1-12.6 5.236z\"/></svg>'\nexport const title = \"arrow-down-small\"\nexport const tags = \"nordicon arrow down small caret pointing triangle chevron\"\n","import { ReactiveController, ReactiveElement } from \"lit\"\nimport { EventController } from \"./EventController.js\"\n\nexport type SwipeDetails = {\n initialX: number\n initialY: number\n pageX: number\n pageY: number\n distX: number\n distY: number\n}\n\nconst preventDefault = (e: Event) => e.preventDefault()\n\ntype SetRequired<T, K extends keyof T> = T & { [Property in K]-?: T[K] }\ntype SwipeControllerOptions = {\n target?: () => HTMLElement\n matchesGesture: (details: SwipeDetails) => boolean\n onSwipeEnd: (details: SwipeDetails) => void\n}\n\nexport class SwipeController implements ReactiveController {\n private events: EventController\n private hadFirstUpdate = false\n\n private initialTouchX: number = 0\n private initialTouchY: number = 0\n private options: SetRequired<SwipeControllerOptions, \"target\">\n\n constructor(host: ReactiveElement, options: SwipeControllerOptions) {\n host.addController(this)\n this.events = new EventController(host)\n\n this.options = {\n target: () => host,\n ...options,\n }\n }\n\n hostUpdated() {\n if (!this.hadFirstUpdate) {\n this.hadFirstUpdate = true\n\n const target = this.options.target()\n this.events.listen(target, \"touchstart\", this.handleTouchStart)\n this.events.listen(target, \"touchmove\", preventDefault)\n this.events.listen(target, \"touchend\", this.handleTouchEnd)\n }\n }\n\n hostDisconnected() {\n this.hadFirstUpdate = false\n }\n\n private handleTouchStart = (event: TouchEvent) => {\n const [{ pageX, pageY }] = event.changedTouches\n this.initialTouchX = pageX\n this.initialTouchY = pageY\n }\n\n private handleTouchEnd = (event: TouchEvent) => {\n const [{ pageX, pageY }] = event.changedTouches\n const { matchesGesture, onSwipeEnd } = this.options\n\n const distX = pageX - this.initialTouchX\n const distY = pageY - this.initialTouchY\n const details = { initialX: this.initialTouchX, initialY: this.initialTouchY, pageX, pageY, distX, distY }\n\n if (matchesGesture(details)) {\n event.preventDefault()\n onSwipeEnd(details)\n }\n }\n}\n\nconst THRESHOLD = 70\n\nexport const isHorizontalSwipe = ({ distX, distY }: SwipeDetails) =>\n Math.abs(distX) >= THRESHOLD && Math.abs(distY) <= THRESHOLD\n\nexport const isDownwardsSwipe = ({ distX, distY }: SwipeDetails) =>\n Math.abs(distY) >= THRESHOLD && Math.abs(distX) <= THRESHOLD && distY > 0\n","import { html, LitElement } from \"lit\"\nimport { customElement, property, query, state } from \"lit/decorators.js\"\nimport { classMap } from \"lit/directives/class-map.js\"\nimport { repeat } from \"lit/directives/repeat.js\"\nimport { createKeybindingsHandler } from \"tinykeys\"\nimport * as arrowRightIcon from \"@nordhealth/icons/lib/assets/arrow-right-small.js\"\nimport * as arrowLeftIcon from \"@nordhealth/icons/lib/assets/arrow-left-small.js\"\nimport * as arrowDownIcon from \"@nordhealth/icons/lib/assets/arrow-down-small.js\"\n\nimport \"../button/Button.js\"\nimport \"../visually-hidden/VisuallyHidden.js\"\nimport Icon from \"../icon/Icon.js\"\n\nimport { isHorizontalSwipe, SwipeController } from \"../common/controllers/SwipeController.js\"\nimport { DirectionController } from \"../common/controllers/DirectionController.js\"\nimport { LocalizeController } from \"../localization/LocalizeController.js\"\nimport { chunk, mapWithOffset } from \"../common/collection.js\"\nimport { cond } from \"../common/directives/cond.js\"\nimport { range } from \"../common/number.js\"\nimport {\n addDays,\n clamp,\n DaysOfWeek,\n endOfMonth,\n endOfWeek,\n getDayNames,\n getMonthNames,\n getViewOfMonth,\n inRange,\n isEqual,\n isEqualMonth,\n parseISODate,\n printISODate,\n setMonth,\n setYear,\n startOfMonth,\n startOfWeek,\n} from \"../common/dates.js\"\nimport { observe } from \"../common/decorators/observe.js\"\n\nimport { DateSelectEvent } from \"./DateSelectEvent.js\"\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Calendar.css\"\n\nexport type DatePredicate = (date: Date) => boolean\n\nIcon.registerIcon(arrowRightIcon)\nIcon.registerIcon(arrowLeftIcon)\nIcon.registerIcon(arrowDownIcon)\n\nconst preventDefault = (fn: EventListener) => (e: Event) => {\n e.preventDefault()\n fn(e)\n}\n\nconst isDateDisabled: DatePredicate = () => false\nconst isDateHighlighted = () => false\n\nconst dialogLabelId = \"dialog-header\"\n\n/**\n * Calendar allows user to pick a date. It comes with built-in\n * functionality that allows you to set a minimum and a maximum allowed date.\n * Please note that the date must be passed in ISO-8601 format.\n *\n * @status ready\n * @category list\n * @fires {DateSelectEvent} change - Dispatched when a date is selected and the value changes.\n * @fires {DateSelectEvent} nord-focus-date - Dispatched when the calendar's focused date changes.\n *\n * @cssprop [--n-calendar-border-radius=var(--n-border-radius)] - Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).\n * @cssprop [--n-calendar-box-shadow=var(--n-box-shadow-popout)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).\n */\n@customElement(\"nord-calendar\")\nexport default class Calendar extends LitElement {\n static styles = [componentStyle, style]\n\n @query(\".n-calendar-select-month\", true) private monthSelectNode!: HTMLElement\n @query(`button[tabindex=\"0\"]`) private focusedDayNode!: HTMLButtonElement\n\n private direction = new DirectionController(this)\n private swipe = new SwipeController(this, {\n matchesGesture: isHorizontalSwipe,\n onSwipeEnd: ({ distX }) => this.addMonths(distX < 0 ? 1 : -1),\n })\n\n private shortcuts = createKeybindingsHandler({\n ArrowRight: preventDefault(() => this.addDays(this.direction.isLTR ? 1 : -1)),\n ArrowLeft: preventDefault(() => this.addDays(this.direction.isLTR ? -1 : 1)),\n ArrowDown: preventDefault(() => this.addDays(7)),\n ArrowUp: preventDefault(() => this.addDays(-7)),\n Home: preventDefault(() => this.startOfWeek()),\n End: preventDefault(() => this.endOfWeek()),\n PageUp: preventDefault(() => this.addMonths(-1)),\n PageDown: preventDefault(() => this.addMonths(1)),\n \"Shift+PageUp\": preventDefault(() => this.addYears(-1)),\n \"Shift+PageDown\": preventDefault(() => this.addYears(1)),\n })\n\n private localize = new LocalizeController<\"nord-calendar\">(this, {\n onLangChange: () => this.handleLangChange(),\n })\n\n /**\n * Whilst dateAdapter is used for handling the formatting/parsing dates in the input,\n * these are used to format dates exclusively for the benefit of screen readers.\n *\n * We prefer DateTimeFormat over date.toLocaleDateString, as the former has\n * better performance when formatting large number of dates. See:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString#Performance\n */\n private dateFormatShort!: Intl.DateTimeFormat\n private monthNames!: string[]\n private monthNamesShort!: string[]\n private dayNames!: string[]\n private dayNamesShort!: string[]\n\n /**\n * The selected date on the calendar. Must be in IS0-8601 format: YYYY-MM-DD.\n */\n @property() value: string = \"\"\n\n /**\n * Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\n * Default is Monday.\n */\n @property({ type: Number }) firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday\n\n /**\n * Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\n * This setting can be used alone or together with the max property.\n */\n @property() min: string = \"\"\n\n /**\n * Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\n * This setting can be used alone or together with the min property.\n */\n @property() max: string = \"\"\n\n /**\n * Controls whether the calendar expands to fill the width of its container.\n */\n @property({ reflect: true, type: Boolean }) expand = false\n\n /**\n * Controls which days are disabled and therefore disallowed.\n * For example, this can be used to disallow selection of weekends.\n */\n @property({ attribute: false }) isDateDisabled: DatePredicate = isDateDisabled\n\n /**\n * Controls which days are highlighted with a small indicator.\n * Returning a \"falsy\" value will not show an indicator.\n * Returning \"truthy\" value will show the indicator, but without an accessible label.\n * Returning a string will show the indicator, and use the string as accessible label.\n * It is recommended to return a string rather than a truthy value whenever possible.\n */\n @property({ attribute: false }) isDateHighlighted: (date: Date) => string | boolean = isDateHighlighted\n\n @state() private activeFocus = false\n @state() private focusedDay = new Date()\n\n /**\n * Programmatically move focus to the calendar.\n * @param options An object which controls aspects of the focusing process.\n */\n focus(options?: FocusOptions & { target: \"day\" | \"month\" }) {\n const target = options?.target ?? \"day\"\n\n if (target === \"day\") {\n this.focusedDayNode.focus()\n } else if (target === \"month\") {\n this.monthSelectNode.focus()\n }\n }\n\n render() {\n const today = new Date()\n const valueAsDate = parseISODate(this.value)\n const focusedMonth = this.focusedDay.getMonth()\n const focusedYear = this.focusedDay.getFullYear()\n\n const minDate = parseISODate(this.min)\n const maxDate = parseISODate(this.max)\n const minDateStartOfMonth = minDate ? startOfMonth(minDate) : undefined\n const maxDateEndOfMonth = maxDate ? endOfMonth(maxDate) : undefined\n\n const selectedYear = (valueAsDate || this.focusedDay).getFullYear()\n const minYear = minDate ? minDate.getFullYear() : selectedYear - 10\n const maxYear = maxDate ? maxDate.getFullYear() : selectedYear + 10\n\n return html`\n <div class=\"n-calendar\">\n <div class=\"n-calendar-header\">\n <div>\n <nord-visually-hidden>\n <h2 id=${dialogLabelId} aria-live=\"polite\" aria-atomic=\"true\">\n ${this.monthNames[focusedMonth]}, ${this.focusedDay.getFullYear()}\n </h2>\n </nord-visually-hidden>\n\n <div class=\"n-calendar-select\">\n <select\n aria-label=${this.localize.term(\"monthSelectLabel\")}\n class=\"n-calendar-select-month\"\n @input=${this.handleMonthSelect}\n >\n ${this.monthNames.map(\n (month, i) =>\n html`\n <option\n value=${i}\n ?selected=${i === focusedMonth}\n ?disabled=${!inRange(new Date(focusedYear, i, 1), minDateStartOfMonth, maxDateEndOfMonth)}\n >\n ${month}\n </option>\n `\n )}\n </select>\n <div class=\"n-calendar-select-label\" aria-hidden=\"true\">\n <span>${this.monthNamesShort[focusedMonth]}</span>\n <nord-icon color=\"var(--n-color-icon)\" name=\"arrow-down-small\" size=\"xxs\"></nord-icon>\n </div>\n </div>\n\n <div class=\"n-calendar-select\">\n <select\n aria-label=${this.localize.term(\"yearSelectLabel\")}\n class=\"n-calendar-select-year\"\n @input=${this.handleYearSelect}\n >\n ${repeat(\n range(minYear, maxYear),\n year => year,\n year => html`<option ?selected=${year === focusedYear}>${year}</option>`\n )}\n </select>\n <div class=\"n-calendar-select-label\" aria-hidden=\"true\">\n <span>${this.focusedDay.getFullYear()}</span>\n <nord-icon color=\"var(--n-color-icon)\" name=\"arrow-down-small\" size=\"xxs\"></nord-icon>\n </div>\n </div>\n </div>\n\n <div class=\"n-calendar-nav\">\n <nord-button\n class=\"n-calendar-prev\"\n @click=${this.handlePreviousMonthClick}\n ?disabled=${isEqualMonth(minDate, this.focusedDay)}\n type=\"button\"\n >\n <nord-visually-hidden>${this.localize.term(\"prevMonthLabel\")}</nord-visually-hidden>\n <nord-icon name=${this.direction.isLTR ? \"arrow-left-small\" : \"arrow-right-small\"} size=\"s\"></nord-icon>\n </nord-button>\n\n <nord-button\n class=\"n-calendar-next\"\n @click=${this.handleNextMonthClick}\n ?disabled=${isEqualMonth(maxDate, this.focusedDay)}\n type=\"button\"\n >\n <nord-visually-hidden>${this.localize.term(\"nextMonthLabel\")}</nord-visually-hidden>\n <nord-icon name=${this.direction.isLTR ? \"arrow-right-small\" : \"arrow-left-small\"} size=\"s\"></nord-icon>\n </nord-button>\n </div>\n </div>\n\n <table\n class=\"n-calendar-table\"\n aria-labelledby=${dialogLabelId}\n @focusin=${this.enableActiveFocus}\n @focusout=${this.disableActiveFocus}\n >\n <thead>\n <tr>\n ${mapWithOffset(\n this.dayNames,\n this.firstDayOfWeek,\n (dayName, i) =>\n html`\n <th class=\"n-calendar-table-header\" scope=\"col\">\n <span aria-hidden=\"true\">${this.dayNamesShort[i]}</span>\n <nord-visually-hidden>${dayName}</nord-visually-hidden>\n </th>\n `\n )}\n </tr>\n </thead>\n <tbody>\n ${chunk(getViewOfMonth(this.focusedDay, this.firstDayOfWeek), 7).map(\n week =>\n html`\n <tr class=\"n-calendar-row\">\n ${week.map(day => {\n const outsideRange = !inRange(day, minDate, maxDate)\n const isToday = isEqual(day, today)\n const isDisabled = this.isDateDisabled(day)\n const isSelected = isEqual(day, valueAsDate)\n const isInMonth = isEqualMonth(day, this.focusedDay)\n const isHighlighted = this.isDateHighlighted(day)\n const formattedDate = this.dateFormatShort.format(day)\n\n const accessibleLabel =\n isHighlighted && typeof isHighlighted === \"string\"\n ? `${formattedDate}, ${isHighlighted}`\n : formattedDate\n\n return html`\n <td class=\"n-calendar-cell\">\n <button\n type=\"button\"\n tabindex=${isEqual(day, this.focusedDay) ? 0 : -1}\n class=${classMap({\n \"n-calendar-day\": true,\n \"is-outside\": outsideRange,\n \"is-month\": isInMonth,\n \"is-highlighted\": isHighlighted,\n })}\n @click=${() => this.handleDaySelect(day)}\n @keydown=${this.shortcuts}\n ?disabled=${outsideRange}\n aria-disabled=${cond(isDisabled, \"true\")}\n aria-pressed=${isSelected ? \"true\" : \"false\"}\n aria-current=${cond(isToday, \"date\")}\n aria-label=${accessibleLabel}\n >\n <span aria-hidden=\"true\">${day.getDate()}</span>\n </button>\n </td>\n `\n })}\n </tr>\n `\n )}\n </tbody>\n </table>\n </div>\n `\n }\n\n @observe(\"value\")\n protected handleValueChange() {\n this.setFocusedDay(parseISODate(this.value) || new Date())\n }\n\n @observe(\"focusedDay\", \"updated\")\n protected handleFocusedDayChange() {\n if (this.activeFocus) {\n this.focusedDayNode.focus()\n }\n }\n\n private handleLangChange() {\n const lang = this.localize.resolvedLang\n this.dateFormatShort = new Intl.DateTimeFormat(lang, { day: \"numeric\", month: \"long\" })\n this.monthNames = getMonthNames(lang, \"long\")\n this.monthNamesShort = getMonthNames(lang, \"short\")\n this.dayNames = getDayNames(lang, \"long\")\n this.dayNamesShort = getDayNames(lang, \"narrow\")\n }\n\n private handleDaySelect = (day: Date) => {\n const isInRange = inRange(day, parseISODate(this.min), parseISODate(this.max))\n const isAllowed = !this.isDateDisabled(day)\n\n if (isInRange && isAllowed) {\n this.value = printISODate(day)\n this.dispatchEvent(new DateSelectEvent(\"change\", day))\n }\n }\n\n private addDays(days: number) {\n this.setFocusedDay(addDays(this.focusedDay, days))\n }\n\n private addMonths(months: number) {\n this.setMonth(this.focusedDay.getMonth() + months)\n }\n\n private addYears(years: number) {\n this.setYear(this.focusedDay.getFullYear() + years)\n }\n\n private startOfWeek() {\n this.setFocusedDay(startOfWeek(this.focusedDay, this.firstDayOfWeek))\n }\n\n private endOfWeek() {\n this.setFocusedDay(endOfWeek(this.focusedDay, this.firstDayOfWeek))\n }\n\n private setMonth(month: number) {\n const min = setMonth(startOfMonth(this.focusedDay), month)\n const max = endOfMonth(min)\n const date = setMonth(this.focusedDay, month)\n\n this.setFocusedDay(clamp(date, min, max))\n }\n\n private setYear(year: number) {\n const min = setYear(startOfMonth(this.focusedDay), year)\n const max = endOfMonth(min)\n const date = setYear(this.focusedDay, year)\n\n this.setFocusedDay(clamp(date, min, max))\n }\n\n private setFocusedDay(day: Date) {\n this.focusedDay = clamp(day, parseISODate(this.min), parseISODate(this.max))\n this.dispatchEvent(new DateSelectEvent(\"nord-focus-date\", this.focusedDay))\n }\n\n private handleMonthSelect = (e: Event) => {\n this.setMonth(parseInt((e.target as HTMLSelectElement).value, 10))\n }\n\n private handleYearSelect = (e: Event) => {\n this.setYear(parseInt((e.target as HTMLSelectElement).value, 10))\n }\n\n private handleNextMonthClick = (event: MouseEvent) => {\n event.preventDefault()\n this.addMonths(1)\n }\n\n private handlePreviousMonthClick = (event: MouseEvent) => {\n event.preventDefault()\n this.addMonths(-1)\n }\n\n private enableActiveFocus = () => {\n this.activeFocus = true\n }\n\n private disableActiveFocus = (e: FocusEvent) => {\n const table = e.currentTarget as Node\n const relatedTarget = e.relatedTarget as Node\n\n if (relatedTarget && !table.contains(relatedTarget)) {\n this.activeFocus = false\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-calendar\": Calendar\n }\n}\n"],"names":["preventDefault","e","SwipeController","constructor","host","options","this","hadFirstUpdate","initialTouchX","initialTouchY","handleTouchStart","event","pageX","pageY","changedTouches","handleTouchEnd","matchesGesture","onSwipeEnd","distX","distY","details","initialX","initialY","addController","events","EventController","target","hostUpdated","listen","hostDisconnected","isHorizontalSwipe","Math","abs","isDownwardsSwipe","Icon","registerIcon","arrowRightIcon","arrowLeftIcon","arrowDownIcon","fn","isDateDisabled","isDateHighlighted","Calendar","LitElement","direction","DirectionController","swipe","addMonths","shortcuts","createKeybindingsHandler","ArrowRight","addDays","isLTR","ArrowLeft","ArrowDown","ArrowUp","Home","startOfWeek","End","endOfWeek","PageUp","PageDown","addYears","localize","LocalizeController","onLangChange","handleLangChange","value","firstDayOfWeek","min","max","expand","activeFocus","focusedDay","Date","handleDaySelect","day","isInRange","inRange","parseISODate","isAllowed","printISODate","dispatchEvent","DateSelectEvent","handleMonthSelect","setMonth","parseInt","handleYearSelect","setYear","handleNextMonthClick","handlePreviousMonthClick","enableActiveFocus","disableActiveFocus","table","currentTarget","relatedTarget","contains","focus","_a","focusedDayNode","monthSelectNode","render","today","valueAsDate","focusedMonth","getMonth","focusedYear","getFullYear","minDate","maxDate","minDateStartOfMonth","startOfMonth","undefined","maxDateEndOfMonth","endOfMonth","selectedYear","minYear","maxYear","html","monthNames","term","map","month","i","monthNamesShort","repeat","range","year","isEqualMonth","mapWithOffset","dayNames","dayName","dayNamesShort","chunk","getViewOfMonth","week","outsideRange","isToday","isEqual","isDisabled","isSelected","isInMonth","isHighlighted","formattedDate","dateFormatShort","format","accessibleLabel","classMap","cond","getDate","handleValueChange","setFocusedDay","handleFocusedDayChange","lang","resolvedLang","Intl","DateTimeFormat","getMonthNames","getDayNames","days","months","years","date","clamp","styles","componentStyle","style","__decorate","query","prototype","property","type","Number","reflect","Boolean","attribute","state","observe","customElement"],"mappings":"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"}
|
package/lib/Calendar.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./query-assigned-elements-
|
|
1
|
+
import"./query-assigned-elements-cf502539.js";import"./property-03f59dce.js";import"./state-70f38ceb.js";import"./query-2d22378e.js";import"./class-map-21152cee.js";import"./collection-7eee4e72.js";import"./tinykeys.module-84e6cc41.js";export{C as default}from"./Calendar-e3786f07.js";import"./Button.js";import"./VisuallyHidden.js";import"./Icon.js";import"./DirectionController-8b298382.js";import"./LocalizeController.js";import"./cond-2da54107.js";import"./number-c3ab3e95.js";import"./dates-5b651fbe.js";import"./observe-a9c6dfb6.js";import"./DateSelectEvent.js";import"./Component-449e40fb.js";import"./directive-de55b00a.js";import"./ref-c44e9f3c.js";import"./EventController-d99ebeef.js";import"./LightDomController-052f446a.js";import"./Spinner.js";import"./if-defined-720964c0.js";import"./FocusableMixin-32631bff.js";import"./InputMixin-7fa755e1.js";import"./translation.js";import"./en-us.js";import"./localization.js";import"./localization2.js";import"./localization3.js";import"./localization4.js";import"./localization5.js";import"./events-731d0007.js";
|
|
2
2
|
//# sourceMappingURL=Calendar.js.map
|
package/lib/Card.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as a,_ as r,s as e,y as d,e as o}from"./query-assigned-elements-cf502539.js";import{e as t}from"./property-03f59dce.js";import{S as n}from"./SlotController-89834aef.js";import{s}from"./Component-449e40fb.js";import"./EventController-d99ebeef.js";const i=a`:host{--_n-card-padding:var(--n-card-padding, var(--n-space-m));--_n-card-slot-padding:var(--n-card-slot-padding, var(--n-space-m));--_n-card-box-shadow:var(--n-card-box-shadow, var(--n-box-shadow-card));--_n-card-border-radius:var(--n-card-border-radius, var(--n-border-radius));color:var(--n-color-text);display:block;inline-size:100%}.n-card{background:var(--n-color-surface);border-radius:var(--_n-card-border-radius);box-shadow:var(--_n-card-box-shadow);block-size:100%;display:flex;flex-direction:column}.header{border-block-end:1px solid var(--n-color-border);padding:var(--n-space-m) var(--_n-card-slot-padding);display:flex;gap:var(--n-space-s);align-items:center;justify-content:space-between;flex-wrap:wrap}:host([padding="l"]){--_n-card-padding:var(--n-card-padding, var(--n-space-l));--_n-card-slot-padding:var(--n-card-slot-padding, var(--n-space-l))}:host([padding=none]){--_n-card-padding:var(--n-card-padding, 0)}slot{display:block}slot:not([name]){padding:var(--_n-card-padding);flex:1}slot[name=footer]{padding:var(--_n-card-slot-padding);padding-block-start:0;white-space:nowrap}::slotted([slot=header-end]){--n-stack-gap:var(--n-space-s);display:flex;gap:var(--n-stack-gap);align-items:center;flex-wrap:wrap}::slotted([slot=header]){font-size:var(--n-font-size-m);font-weight:var(--n-font-weight-heading);margin:0}::slotted(a){color:var(--n-color-text-link);text-decoration:underline}::slotted(a:hover){text-decoration:none}`;let l=class extends e{constructor(){super(...arguments),this.headerSlot=new n(this,"header"),this.headerEndSlot=new n(this,"header-end"),this.footerSlot=new n(this,"footer"),this.padding="m"}render(){return d`<div class="n-card"><div class="header" ?hidden="${this.headerSlot.isEmpty&&this.headerEndSlot.isEmpty}"><slot name="${this.headerSlot.slotName}"></slot><slot name="${this.headerEndSlot.slotName}"></slot></div><slot></slot><slot name="${this.footerSlot.slotName}" ?hidden="${this.footerSlot.isEmpty}"></slot></div>`}};l.styles=[s,i],r([t({reflect:!0})],l.prototype,"padding",void 0),l=r([o("nord-card")],l);var c=l;export{c as default};
|
|
2
2
|
//# sourceMappingURL=Card.js.map
|