@cas-smartdesign/button 7.0.0 → 7.0.1
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/dist/button.mjs +1 -1
- package/dist/button.mjs.map +1 -1
- package/dist/docs/doc.mjs +1 -1
- package/package.json +3 -3
package/dist/button.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ElementBase as e } from "@cas-smartdesign/element-base";
|
|
2
2
|
import { ImageEmbed as t } from "@cas-smartdesign/image-embed";
|
|
3
3
|
//#region button.html?raw
|
|
4
|
-
var n = "<slot name=\"icon\">\n <sd-image-embed class=\"icon\" part=\"icon\"></sd-image-embed>\n</slot>\n<div class=\"content\">\n <slot></slot>\n</div>\n", r = ":host{contain:content;box-sizing:border-box;vertical-align:middle;min-height:36px;padding:var(--spacing-x3,6px) var(--spacing-x4,8px);border-radius:var(--radius-s,4px);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;justify-content:center;align-items:center;display:inline-flex}:host:focus-visible{outline:1px solid var(--color-border-interaction-focus,#111);outline-offset:var(--spacing-x1,2px)}:host:is(:disabled,[disabled],[aria-disabled=true]){cursor:default}:host{background-color:var(--sd-button-background-color,var(--color-bg-action-neutral-default,#d4d4d4));color:var(--sd-button-color,var(--color-fg-action-neutral-default,#111))}:host:after{content:\"\";border:var(--sd-button-border,none);border-radius:inherit;position:absolute;inset:0}:host(:is(:focus,:hover)){background-color:var(--sd-button-background-color-hover,var(--color-bg-action-neutral-default-hover,#c6c6c6));color:var(--sd-button-color-hover,var(--color-fg-action-neutral-default-hover,#111))}:host(:is(:focus,:hover)):after{border-color:var(--sd-button-border-color-hover,transparent)}:host(:active){background-color:var(--sd-button-background-color-pressed,var(--color-bg-action-neutral-default-pressed,#b3b3b3));color:var(--sd-button-color-pressed,var(--color-fg-action-neutral-default-pressed,#111))}:host(:active):after{border-color:var(--sd-button-border-color-pressed,transparent)}:host(:is([aria-disabled=true],[disabled])){background-color:var(--sd-button-background-color-disabled,var(--color-bg-interaction-disabled,#e7e7e7));color:var(--sd-button-color-disabled,var(--color-fg-interaction-disabled,#999))}:host(:is([aria-disabled=true],[disabled])):after{border-color:var(--sd-button-border-color-disabled,transparent)}:host(:is([aria-disabled=true],[disabled])){cursor:default}:host(:focus-visible){outline:1px solid var(--color-border-interaction-focus,#111);outline-offset:var(--spacing-x1,2px)}:host([variant=primary i]){--sd-button-background-color:var(--color-bg-action-accent-default,#1467ba);--sd-button-color:var(--color-fg-interaction-on-color,#fff);--sd-button-background-color-hover:var(--color-bg-action-accent-default-hover,#0f4d8b);--sd-button-color-hover:var(--color-fg-interaction-on-color,#fff);--sd-button-background-color-pressed:var(--color-bg-action-accent-default-pressed,#0b3a69);--sd-button-color-pressed:var(--color-fg-interaction-on-color,#fff)}:host([variant=outline i]){--sd-button-background-color:var(--color-bg-action-accent-weak,#e0ebf6);--sd-button-color:var(--color-fg-action-accent-default,#1467ba);--sd-button-border:1px solid var(--color-border-action-accent-default,#1467ba);--sd-button-background-color-hover:var(--color-bg-action-accent-weak-hover,#d5e4f3);--sd-button-color-hover:var(--color-fg-action-accent-default-hover,#0f4d8b);--sd-button-border-color-hover:var(--color-border-action-accent-default-hover,#0f4d8b);--sd-button-background-color-pressed:var(--color-bg-action-accent-weak-pressed,#c7dbef);--sd-button-color-pressed:var(--color-fg-action-accent-default-pressed,#0b3a69);--sd-button-border-color-pressed:var(--color-border-action-accent-default-pressed,#0b3a69);--sd-button-background-color-disabled:transparent;--sd-button-border-color-disabled:var(--color-border-interaction-disabled,#c6c6c6)}:host([variant=ghost i]){--sd-button-background-color:transparent;--sd-button-color:var(--color-fg-action-accent-default,#1467ba);--sd-button-background-color-hover:var(--color-bg-action-accent-weakest-hover,#e0ebf6);--sd-button-color-hover:var(--color-fg-action-accent-default-hover,#0f4d8b);--sd-button-background-color-pressed:var(--color-bg-action-accent-weakest-pressed,#c7dbef);--sd-button-color-pressed:var(--color-fg-action-accent-default-pressed,#0b3a69);--sd-button-background-color-disabled:transparent}:host([variant=outline-danger i]){--sd-button-background-color:var(--color-bg-action-danger-default,#fbdde0);--sd-button-color:var(--color-fg-action-danger-default,#a90014);--sd-button-border:1px solid var(--color-border-action-danger-default,#a90014);--sd-button-background-color-hover:var(--color-bg-action-danger-default-hover,#fad2d6);--sd-button-color-hover:var(--color-fg-action-danger-default-hover,#7f000f);--sd-button-border-color-hover:var(--color-border-action-danger-default-hover,#7f000f);--sd-button-background-color-pressed:var(--color-bg-action-danger-default-pressed,#f8c3c9);--sd-button-color-pressed:var(--color-fg-action-danger-default-pressed,#5f000b);--sd-button-border-color-pressed:var(--color-border-action-danger-default-pressed,#5f000b);--sd-button-background-color-disabled:transparent;--sd-button-border-color-disabled:var(--color-border-interaction-disabled,#c6c6c6)}:host([variant=ghost-danger i]){--sd-button-background-color:transparent;--sd-button-color:var(--color-fg-action-danger-default,#a90014);--sd-button-background-color-hover:var(--color-bg-action-danger-default-hover,#fad2d6);--sd-button-color-hover:var(--color-fg-action-danger-default-hover,#7f000f);--sd-button-background-color-pressed:var(--color-bg-action-danger-default-pressed,#f8c3c9);--sd-button-color-pressed:var(--color-fg-action-danger-default-pressed,#5f000b);--sd-button-background-color-disabled:transparent}:host([variant=selection i]){--sd-button-background-color:var(--color-bg-selection-neutral-weakest,#fff);--sd-button-color:var(--color-fg-selection-neutral-default,#111);--sd-button-border:1px solid var(--color-border-selection-neutral-default,#999);--sd-button-background-color-hover:var(--color-bg-selection-accent-weak-hover,#e0ebf6);--sd-button-color-hover:var(--color-fg-selection-neutral-default,#111);--sd-button-border-color-hover:var(--color-border-selection-neutral-default,#999);--sd-button-background-color-pressed:var(--color-bg-selection-accent-weak,#c7dbef);--sd-button-color-pressed:var(--color-fg-selection-neutral-default,#111);--sd-button-border-color-pressed:var(--color-border-selection-accent-default,#1467ba);--sd-button-border-color-disabled:var(--color-border-interaction-disabled,#c6c6c6)}:host([variant=custom i]){--sd-button-background-color-hover:color-mix(in oklab, var(--sd-button-background-color,var(--color-bg-action-neutral-default,#d4d4d4)), var(--color-fg-default,#111) 12%);--sd-button-color-hover:var(--sd-button-color,var(--color-fg-action-neutral-default,#111));--sd-button-background-color-pressed:color-mix(in oklab, var(--sd-button-background-color,var(--color-bg-action-neutral-default,#d4d4d4)), var(--color-fg-default,#111) 22%);--sd-button-color-pressed:var(--sd-button-color,var(--color-fg-action-neutral-default,#111))}:host([variant=selection i][aria-pressed=true]){--sd-button-background-color:var(--color-bg-selection-accent-weak,#c7dbef);--sd-button-border:1px solid var(--color-border-selection-accent-default,#1467ba);--sd-button-background-color-hover:var(--color-bg-selection-accent-weak,#c7dbef);--sd-button-border-color-hover:var(--color-border-selection-accent-default,#1467ba)}.icon:is(:not([src]),[src=\"\"],[src=\"data:,\"]){display:none}.content{align-items:center;min-width:0;display:flex}.content ::slotted(*){font:var(--text-body);margin-left:var(--sd-button-content-padding,8px)}.content ::slotted(:last-child){margin-right:var(--sd-button-content-padding,8px)}.icon{max-height:var(--sd-button-max-icon-size,24px);max-width:var(--sd-button-max-icon-size,24px)}", i = [
|
|
4
|
+
var n = "<slot name=\"icon\">\n <sd-image-embed class=\"icon\" part=\"icon\" exportparts=\"img, svg\"></sd-image-embed>\n</slot>\n<div class=\"content\">\n <slot></slot>\n</div>\n", r = ":host{contain:content;box-sizing:border-box;vertical-align:middle;min-height:36px;padding:var(--spacing-x3,6px) var(--spacing-x4,8px);border-radius:var(--radius-s,4px);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;justify-content:center;align-items:center;display:inline-flex}:host:focus-visible{outline:1px solid var(--color-border-interaction-focus,#111);outline-offset:var(--spacing-x1,2px)}:host:is(:disabled,[disabled],[aria-disabled=true]){cursor:default}:host{background-color:var(--sd-button-background-color,var(--color-bg-action-neutral-default,#d4d4d4));color:var(--sd-button-color,var(--color-fg-action-neutral-default,#111))}:host:after{content:\"\";border:var(--sd-button-border,none);border-radius:inherit;position:absolute;inset:0}:host(:is(:focus,:hover)){background-color:var(--sd-button-background-color-hover,var(--color-bg-action-neutral-default-hover,#c6c6c6));color:var(--sd-button-color-hover,var(--color-fg-action-neutral-default-hover,#111))}:host(:is(:focus,:hover)):after{border-color:var(--sd-button-border-color-hover,transparent)}:host(:active){background-color:var(--sd-button-background-color-pressed,var(--color-bg-action-neutral-default-pressed,#b3b3b3));color:var(--sd-button-color-pressed,var(--color-fg-action-neutral-default-pressed,#111))}:host(:active):after{border-color:var(--sd-button-border-color-pressed,transparent)}:host(:is([aria-disabled=true],[disabled])){background-color:var(--sd-button-background-color-disabled,var(--color-bg-interaction-disabled,#e7e7e7));color:var(--sd-button-color-disabled,var(--color-fg-interaction-disabled,#999))}:host(:is([aria-disabled=true],[disabled])):after{border-color:var(--sd-button-border-color-disabled,transparent)}:host(:is([aria-disabled=true],[disabled])){cursor:default}:host(:focus-visible){outline:1px solid var(--color-border-interaction-focus,#111);outline-offset:var(--spacing-x1,2px)}:host([variant=primary i]){--sd-button-background-color:var(--color-bg-action-accent-default,#1467ba);--sd-button-color:var(--color-fg-interaction-on-color,#fff);--sd-button-background-color-hover:var(--color-bg-action-accent-default-hover,#0f4d8b);--sd-button-color-hover:var(--color-fg-interaction-on-color,#fff);--sd-button-background-color-pressed:var(--color-bg-action-accent-default-pressed,#0b3a69);--sd-button-color-pressed:var(--color-fg-interaction-on-color,#fff)}:host([variant=outline i]){--sd-button-background-color:var(--color-bg-action-accent-weak,#e0ebf6);--sd-button-color:var(--color-fg-action-accent-default,#1467ba);--sd-button-border:1px solid var(--color-border-action-accent-default,#1467ba);--sd-button-background-color-hover:var(--color-bg-action-accent-weak-hover,#d5e4f3);--sd-button-color-hover:var(--color-fg-action-accent-default-hover,#0f4d8b);--sd-button-border-color-hover:var(--color-border-action-accent-default-hover,#0f4d8b);--sd-button-background-color-pressed:var(--color-bg-action-accent-weak-pressed,#c7dbef);--sd-button-color-pressed:var(--color-fg-action-accent-default-pressed,#0b3a69);--sd-button-border-color-pressed:var(--color-border-action-accent-default-pressed,#0b3a69);--sd-button-background-color-disabled:transparent;--sd-button-border-color-disabled:var(--color-border-interaction-disabled,#c6c6c6)}:host([variant=ghost i]){--sd-button-background-color:transparent;--sd-button-color:var(--color-fg-action-accent-default,#1467ba);--sd-button-background-color-hover:var(--color-bg-action-accent-weakest-hover,#e0ebf6);--sd-button-color-hover:var(--color-fg-action-accent-default-hover,#0f4d8b);--sd-button-background-color-pressed:var(--color-bg-action-accent-weakest-pressed,#c7dbef);--sd-button-color-pressed:var(--color-fg-action-accent-default-pressed,#0b3a69);--sd-button-background-color-disabled:transparent}:host([variant=outline-danger i]){--sd-button-background-color:var(--color-bg-action-danger-default,#fbdde0);--sd-button-color:var(--color-fg-action-danger-default,#a90014);--sd-button-border:1px solid var(--color-border-action-danger-default,#a90014);--sd-button-background-color-hover:var(--color-bg-action-danger-default-hover,#fad2d6);--sd-button-color-hover:var(--color-fg-action-danger-default-hover,#7f000f);--sd-button-border-color-hover:var(--color-border-action-danger-default-hover,#7f000f);--sd-button-background-color-pressed:var(--color-bg-action-danger-default-pressed,#f8c3c9);--sd-button-color-pressed:var(--color-fg-action-danger-default-pressed,#5f000b);--sd-button-border-color-pressed:var(--color-border-action-danger-default-pressed,#5f000b);--sd-button-background-color-disabled:transparent;--sd-button-border-color-disabled:var(--color-border-interaction-disabled,#c6c6c6)}:host([variant=ghost-danger i]){--sd-button-background-color:transparent;--sd-button-color:var(--color-fg-action-danger-default,#a90014);--sd-button-background-color-hover:var(--color-bg-action-danger-default-hover,#fad2d6);--sd-button-color-hover:var(--color-fg-action-danger-default-hover,#7f000f);--sd-button-background-color-pressed:var(--color-bg-action-danger-default-pressed,#f8c3c9);--sd-button-color-pressed:var(--color-fg-action-danger-default-pressed,#5f000b);--sd-button-background-color-disabled:transparent}:host([variant=selection i]){--sd-button-background-color:var(--color-bg-selection-neutral-weakest,#fff);--sd-button-color:var(--color-fg-selection-neutral-default,#111);--sd-button-border:1px solid var(--color-border-selection-neutral-default,#999);--sd-button-background-color-hover:var(--color-bg-selection-accent-weak-hover,#e0ebf6);--sd-button-color-hover:var(--color-fg-selection-neutral-default,#111);--sd-button-border-color-hover:var(--color-border-selection-neutral-default,#999);--sd-button-background-color-pressed:var(--color-bg-selection-accent-weak,#c7dbef);--sd-button-color-pressed:var(--color-fg-selection-neutral-default,#111);--sd-button-border-color-pressed:var(--color-border-selection-accent-default,#1467ba);--sd-button-border-color-disabled:var(--color-border-interaction-disabled,#c6c6c6)}:host([variant=custom i]){--sd-button-background-color-hover:color-mix(in oklab, var(--sd-button-background-color,var(--color-bg-action-neutral-default,#d4d4d4)), var(--color-fg-default,#111) 12%);--sd-button-color-hover:var(--sd-button-color,var(--color-fg-action-neutral-default,#111));--sd-button-background-color-pressed:color-mix(in oklab, var(--sd-button-background-color,var(--color-bg-action-neutral-default,#d4d4d4)), var(--color-fg-default,#111) 22%);--sd-button-color-pressed:var(--sd-button-color,var(--color-fg-action-neutral-default,#111))}:host([variant=selection i][aria-pressed=true]){--sd-button-background-color:var(--color-bg-selection-accent-weak,#c7dbef);--sd-button-border:1px solid var(--color-border-selection-accent-default,#1467ba);--sd-button-background-color-hover:var(--color-bg-selection-accent-weak,#c7dbef);--sd-button-border-color-hover:var(--color-border-selection-accent-default,#1467ba)}.icon:is(:not([src]),[src=\"\"],[src=\"data:,\"]){display:none}.content{align-items:center;min-width:0;display:flex}.content ::slotted(*){font:var(--text-body);margin-left:var(--sd-button-content-padding,8px)}.content ::slotted(:last-child){margin-right:var(--sd-button-content-padding,8px)}.icon{max-height:var(--sd-button-max-icon-size,24px);max-width:var(--sd-button-max-icon-size,24px)}", i = [
|
|
5
5
|
"primary",
|
|
6
6
|
"outline",
|
|
7
7
|
"standard",
|
package/dist/button.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.mjs","names":[],"sources":["../button.html?raw","../styles.scss?inline","../button.ts"],"sourcesContent":["export default \"<slot name=\\\"icon\\\">\\n\\t<sd-image-embed class=\\\"icon\\\" part=\\\"icon\\\"></sd-image-embed>\\n</slot>\\n<div class=\\\"content\\\">\\n\\t<slot></slot>\\n</div>\\n\"","@use \"scss/config\";\n@use \"scss/button\";\n\n:host {\n\tcontain: content;\n\n\t@include button.base;\n\t@include config.state(\"base\");\n\t&::after {\n\t\tcontent: \"\";\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tborder: var(--sd-button-border, none);\n\t\tborder-radius: inherit;\n\t}\n}\n\n:host(:is(:focus, :hover)) {\n\t@include config.state(\"hover\");\n}\n\n:host(:active) {\n\t@include config.state(\"pressed\");\n}\n\n:host(:is([aria-disabled=\"true\"], [disabled])) {\n\t@include config.state(\"disabled\");\n\tcursor: default;\n}\n\n:host(:focus-visible) {\n\toutline: 1px solid var(--color-border-interaction-focus, #111);\n\toutline-offset: var(--spacing-x1, 2px);\n}\n\n@each $name, $props in config.$variants {\n\t:host([variant=\"#{$name}\" i]) {\n\t\t@include config.variant-vars($name);\n\t}\n}\n\n:host([variant=\"selection\" i][aria-pressed=\"true\"]) {\n\t@include config.selection-checked-vars;\n}\n\n.icon:is(:not([src]), [src=\"\"], [src=\"data:,\"]) {\n\tdisplay: none;\n}\n\n.content {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-width: 0px;\n}\n\n.content ::slotted(*) {\n\tfont: var(--text-body);\n\tmargin-left: var(--sd-button-content-padding, 8px);\n}\n\n.content ::slotted(*:last-child) {\n\tmargin-right: var(--sd-button-content-padding, 8px);\n}\n\n.icon {\n\tmax-height: var(--sd-button-max-icon-size, 24px);\n\tmax-width: var(--sd-button-max-icon-size, 24px);\n}\n","import { ElementBase } from \"@cas-smartdesign/element-base\";\nimport { ImageEmbed } from \"@cas-smartdesign/image-embed\";\n\nimport { default as htmlTemplate } from \"./button.html?raw\";\nimport { default as styles } from \"./styles.scss?inline\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [Button.ID]: Button;\n }\n}\n\nexport type ButtonVariant =\n | \"primary\"\n | \"outline\"\n | \"standard\"\n | \"ghost\"\n | \"outline-danger\"\n | \"ghost-danger\"\n | \"selection\"\n | \"custom\";\nexport const BUTTON_VARIANTS: ButtonVariant[] = [\n \"primary\",\n \"outline\",\n \"standard\",\n \"ghost\",\n \"outline-danger\",\n \"ghost-danger\",\n \"selection\",\n \"custom\",\n];\nconst DEFAULT_BUTTON_VARIANT: ButtonVariant = \"standard\";\nfunction isButtonVariant(value: string | null): value is ButtonVariant {\n return BUTTON_VARIANTS.includes(value as ButtonVariant);\n}\n\nexport class Button extends ElementBase {\n public static readonly ID = \"sd-button\";\n public static ensureDefined = () => {\n if (!customElements.get(Button.ID)) {\n customElements.define(Button.ID, Button);\n ImageEmbed.ensureDefined();\n }\n };\n\n static styleSheet = new CSSStyleSheet();\n\n static {\n this.styleSheet.replaceSync(styles);\n }\n\n private _image?: ImageEmbed | HTMLImageElement;\n private _isSpaceOrEnterKeyDown = false;\n\n public get imageElement() {\n return this._image;\n }\n\n public get icon(): string | undefined | null {\n return this.getAttribute(\"icon\");\n }\n\n public set icon(icon: string | undefined | null) {\n if (this.icon !== icon) {\n if (icon) {\n this.setAttribute(\"icon\", icon);\n } else {\n this.removeAttribute(\"icon\");\n }\n this.updateIcon();\n }\n }\n\n get variant(): ButtonVariant {\n const attr = this.getAttribute(\"variant\");\n return isButtonVariant(attr) ? attr : DEFAULT_BUTTON_VARIANT;\n }\n\n set variant(value: ButtonVariant | (string & {}) | null) {\n this.setAttribute(\"variant\", isButtonVariant(value) ? value : DEFAULT_BUTTON_VARIANT);\n }\n\n public get disabled(): boolean {\n return this.getAttribute(\"aria-disabled\") == \"true\";\n }\n\n public set disabled(disabled: boolean) {\n this.setAttribute(\"aria-disabled\", disabled.toString());\n }\n\n static get observedAttributes() {\n return [\"icon\", \"variant\"];\n }\n\n public is(): string {\n return Button.ID;\n }\n\n protected template(): HTMLTemplateElement {\n const template = document.createElement(\"template\");\n template.innerHTML = htmlTemplate;\n return template;\n }\n\n constructor() {\n super();\n this.addEventListener(\"keydown\", (e) => {\n if (this.isSpaceOrEnter(e)) {\n this._isSpaceOrEnterKeyDown = true;\n e.preventDefault(); // prevent potential scroll-down triggered by space\n }\n });\n this.addEventListener(\"keyup\", (e) => {\n if (this.isSpaceOrEnter(e) && this._isSpaceOrEnterKeyDown == true) {\n this._isSpaceOrEnterKeyDown = false;\n this.click();\n }\n });\n // As Button is not an input element, click is fired even in disabled state\n this.addEventListener(\n \"click\",\n (event) => {\n if (this.disabled || this.hasAttribute(\"disabled\")) {\n event.stopImmediatePropagation();\n return;\n }\n\n const type = this.getAttribute(\"type\")?.toLowerCase()?.trim();\n\n if (type !== \"submit\" && type !== \"reset\") {\n return;\n }\n\n const form = this.closest(\"form\");\n\n if (form && type === \"submit\") {\n form.requestSubmit();\n }\n\n if (form && type === \"reset\") {\n form.reset();\n }\n },\n { capture: true },\n );\n }\n\n private isSpaceOrEnter(event: KeyboardEvent): boolean {\n switch (event.key) {\n case \" \":\n case \"Space\":\n case \"Enter\":\n return true;\n default:\n return false;\n }\n }\n\n public override click() {\n if (!this.disabled && !this.hasAttribute(\"disabled\")) {\n super.click();\n }\n }\n\n public override connectedCallback() {\n const initStyles = this.shadowRoot == null;\n super.connectedCallback();\n if (initStyles) {\n this.shadowRoot!.adoptedStyleSheets = [Button.styleSheet];\n }\n\n if (!this.hasAttribute(\"tabIndex\")) {\n this.tabIndex = 0;\n }\n\n this._image = this.shadowRoot!.querySelector(\".icon\") as HTMLImageElement;\n\n this.updateIcon();\n if (!this.hasAttribute(\"role\")) {\n this.setAttribute(\"role\", \"button\");\n }\n }\n\n public override attributeChangedCallback(name: string, oldValue: string | null): void {\n switch (name) {\n case \"icon\": {\n this.updateIcon();\n break;\n }\n case \"variant\": {\n if (this.variant === \"selection\") {\n // Expose toggle semantics, but don't clobber an\n // aria-pressed value already managed by the consumer.\n if (!this.hasAttribute(\"aria-pressed\")) {\n this.setAttribute(\"aria-pressed\", \"false\");\n }\n } else if (oldValue?.toLowerCase() === \"selection\") {\n this.removeAttribute(\"aria-pressed\");\n }\n break;\n }\n }\n }\n\n private updateIcon() {\n if (this._image) {\n const iconSrc = this.getAttribute(\"icon\");\n if (iconSrc) {\n this._image.src = iconSrc;\n }\n }\n }\n}\nButton.ensureDefined();\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"button.mjs","names":[],"sources":["../button.html?raw","../styles.scss?inline","../button.ts"],"sourcesContent":["export default \"<slot name=\\\"icon\\\">\\n\\t<sd-image-embed class=\\\"icon\\\" part=\\\"icon\\\" exportparts=\\\"img, svg\\\"></sd-image-embed>\\n</slot>\\n<div class=\\\"content\\\">\\n\\t<slot></slot>\\n</div>\\n\"","@use \"scss/config\";\n@use \"scss/button\";\n\n:host {\n\tcontain: content;\n\n\t@include button.base;\n\t@include config.state(\"base\");\n\t&::after {\n\t\tcontent: \"\";\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tborder: var(--sd-button-border, none);\n\t\tborder-radius: inherit;\n\t}\n}\n\n:host(:is(:focus, :hover)) {\n\t@include config.state(\"hover\");\n}\n\n:host(:active) {\n\t@include config.state(\"pressed\");\n}\n\n:host(:is([aria-disabled=\"true\"], [disabled])) {\n\t@include config.state(\"disabled\");\n\tcursor: default;\n}\n\n:host(:focus-visible) {\n\toutline: 1px solid var(--color-border-interaction-focus, #111);\n\toutline-offset: var(--spacing-x1, 2px);\n}\n\n@each $name, $props in config.$variants {\n\t:host([variant=\"#{$name}\" i]) {\n\t\t@include config.variant-vars($name);\n\t}\n}\n\n:host([variant=\"selection\" i][aria-pressed=\"true\"]) {\n\t@include config.selection-checked-vars;\n}\n\n.icon:is(:not([src]), [src=\"\"], [src=\"data:,\"]) {\n\tdisplay: none;\n}\n\n.content {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-width: 0px;\n}\n\n.content ::slotted(*) {\n\tfont: var(--text-body);\n\tmargin-left: var(--sd-button-content-padding, 8px);\n}\n\n.content ::slotted(*:last-child) {\n\tmargin-right: var(--sd-button-content-padding, 8px);\n}\n\n.icon {\n\tmax-height: var(--sd-button-max-icon-size, 24px);\n\tmax-width: var(--sd-button-max-icon-size, 24px);\n}\n","import { ElementBase } from \"@cas-smartdesign/element-base\";\nimport { ImageEmbed } from \"@cas-smartdesign/image-embed\";\n\nimport { default as htmlTemplate } from \"./button.html?raw\";\nimport { default as styles } from \"./styles.scss?inline\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [Button.ID]: Button;\n }\n}\n\nexport type ButtonVariant =\n | \"primary\"\n | \"outline\"\n | \"standard\"\n | \"ghost\"\n | \"outline-danger\"\n | \"ghost-danger\"\n | \"selection\"\n | \"custom\";\nexport const BUTTON_VARIANTS: ButtonVariant[] = [\n \"primary\",\n \"outline\",\n \"standard\",\n \"ghost\",\n \"outline-danger\",\n \"ghost-danger\",\n \"selection\",\n \"custom\",\n];\nconst DEFAULT_BUTTON_VARIANT: ButtonVariant = \"standard\";\nfunction isButtonVariant(value: string | null): value is ButtonVariant {\n return BUTTON_VARIANTS.includes(value as ButtonVariant);\n}\n\nexport class Button extends ElementBase {\n public static readonly ID = \"sd-button\";\n public static ensureDefined = () => {\n if (!customElements.get(Button.ID)) {\n customElements.define(Button.ID, Button);\n ImageEmbed.ensureDefined();\n }\n };\n\n static styleSheet = new CSSStyleSheet();\n\n static {\n this.styleSheet.replaceSync(styles);\n }\n\n private _image?: ImageEmbed | HTMLImageElement;\n private _isSpaceOrEnterKeyDown = false;\n\n public get imageElement() {\n return this._image;\n }\n\n public get icon(): string | undefined | null {\n return this.getAttribute(\"icon\");\n }\n\n public set icon(icon: string | undefined | null) {\n if (this.icon !== icon) {\n if (icon) {\n this.setAttribute(\"icon\", icon);\n } else {\n this.removeAttribute(\"icon\");\n }\n this.updateIcon();\n }\n }\n\n get variant(): ButtonVariant {\n const attr = this.getAttribute(\"variant\");\n return isButtonVariant(attr) ? attr : DEFAULT_BUTTON_VARIANT;\n }\n\n set variant(value: ButtonVariant | (string & {}) | null) {\n this.setAttribute(\"variant\", isButtonVariant(value) ? value : DEFAULT_BUTTON_VARIANT);\n }\n\n public get disabled(): boolean {\n return this.getAttribute(\"aria-disabled\") == \"true\";\n }\n\n public set disabled(disabled: boolean) {\n this.setAttribute(\"aria-disabled\", disabled.toString());\n }\n\n static get observedAttributes() {\n return [\"icon\", \"variant\"];\n }\n\n public is(): string {\n return Button.ID;\n }\n\n protected template(): HTMLTemplateElement {\n const template = document.createElement(\"template\");\n template.innerHTML = htmlTemplate;\n return template;\n }\n\n constructor() {\n super();\n this.addEventListener(\"keydown\", (e) => {\n if (this.isSpaceOrEnter(e)) {\n this._isSpaceOrEnterKeyDown = true;\n e.preventDefault(); // prevent potential scroll-down triggered by space\n }\n });\n this.addEventListener(\"keyup\", (e) => {\n if (this.isSpaceOrEnter(e) && this._isSpaceOrEnterKeyDown == true) {\n this._isSpaceOrEnterKeyDown = false;\n this.click();\n }\n });\n // As Button is not an input element, click is fired even in disabled state\n this.addEventListener(\n \"click\",\n (event) => {\n if (this.disabled || this.hasAttribute(\"disabled\")) {\n event.stopImmediatePropagation();\n return;\n }\n\n const type = this.getAttribute(\"type\")?.toLowerCase()?.trim();\n\n if (type !== \"submit\" && type !== \"reset\") {\n return;\n }\n\n const form = this.closest(\"form\");\n\n if (form && type === \"submit\") {\n form.requestSubmit();\n }\n\n if (form && type === \"reset\") {\n form.reset();\n }\n },\n { capture: true },\n );\n }\n\n private isSpaceOrEnter(event: KeyboardEvent): boolean {\n switch (event.key) {\n case \" \":\n case \"Space\":\n case \"Enter\":\n return true;\n default:\n return false;\n }\n }\n\n public override click() {\n if (!this.disabled && !this.hasAttribute(\"disabled\")) {\n super.click();\n }\n }\n\n public override connectedCallback() {\n const initStyles = this.shadowRoot == null;\n super.connectedCallback();\n if (initStyles) {\n this.shadowRoot!.adoptedStyleSheets = [Button.styleSheet];\n }\n\n if (!this.hasAttribute(\"tabIndex\")) {\n this.tabIndex = 0;\n }\n\n this._image = this.shadowRoot!.querySelector(\".icon\") as HTMLImageElement;\n\n this.updateIcon();\n if (!this.hasAttribute(\"role\")) {\n this.setAttribute(\"role\", \"button\");\n }\n }\n\n public override attributeChangedCallback(name: string, oldValue: string | null): void {\n switch (name) {\n case \"icon\": {\n this.updateIcon();\n break;\n }\n case \"variant\": {\n if (this.variant === \"selection\") {\n // Expose toggle semantics, but don't clobber an\n // aria-pressed value already managed by the consumer.\n if (!this.hasAttribute(\"aria-pressed\")) {\n this.setAttribute(\"aria-pressed\", \"false\");\n }\n } else if (oldValue?.toLowerCase() === \"selection\") {\n this.removeAttribute(\"aria-pressed\");\n }\n break;\n }\n }\n }\n\n private updateIcon() {\n if (this._image) {\n const iconSrc = this.getAttribute(\"icon\");\n if (iconSrc) {\n this._image.src = iconSrc;\n }\n }\n }\n}\nButton.ensureDefined();\n"],"mappings":"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"}
|
package/dist/docs/doc.mjs
CHANGED
|
@@ -305,7 +305,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
305
305
|
min-width: min(100%, var(--natural-width));
|
|
306
306
|
object-fit: scale-down;
|
|
307
307
|
}`)}static get observedAttributes(){return[`src`,`placeholder-src`]}constructor(){super(),this._loadPending=null,this._renderedPlaceholder=null,this._renderedSrc=null,this.trustedTypePolicy=null;let t=this.attachShadow({mode:`open`});this._privateStyleSheet=new CSSStyleSheet,t.adoptedStyleSheets=[e.styleSheet,this._privateStyleSheet],this._sanitizer=new ot}connectedCallback(){this.svgContent&&this.inlineSVG(this.svgContent),this.role||=`img`,this.updateContentDependentStyle()}attributeChangedCallback(e,t,n){(e===`src`||e===`placeholder-src`)&&t!==n&&this._loadPending==null&&(this._loadPending=window.requestAnimationFrame(()=>{this._loadPending=null,this.loadSvg()}))}updateContentDependentStyle(){let e=!!this.src||!!this.placeholderSrc||this.shadowRoot?.querySelector(`svg`)!=null;this.classList.toggle(`no-image`,!e)}async loadSvg(){this.shadowRoot&&(this._renderedSrc===this.src&&this.shadowRoot.querySelector(`img:not(.placeholder),svg:not(.placeholder)`)!=null||(this.placeholderSrc!=this._renderedPlaceholder&&(this._renderedPlaceholder=this.placeholderSrc,this.placeholderSrc&&this.renderUrl(this.placeholderSrc,!0)),this.src!=this._renderedSrc&&(this._renderedSrc=this.src,this.src&&this.renderUrl(this.src,!1))))}async renderUrl(e,t){let n=new URL(e,document.baseURI);if(n.protocol===`data:`){this.renderDataUrl(e,t);return}n.protocol.startsWith(`http`)&&n.origin===new URL(document.baseURI).origin&&n.searchParams.set(`skip-token-processing`,``);try{let r=await fetch(n);if(!r.ok)if(r.status==404){this.updateContentDependentStyle();return}else throw Error();if(r.headers.get(`content-type`)?.includes(`image/svg+xml`)){let n=await r.text();this.isRelevantRendering(e,t)&&this.inlineSVG(n,t);return}r.status==204?this.updateContentDependentStyle():this.handleImageFallback(e,t,await r.blob())}catch{this.handleImageFallback(e,t)}}renderDataUrl(e,t){let n=/^data:([^,]*),(.*)$/s.exec(e);if(n&&/^image\/svg\+xml/i.test(n[1])){let r=/;base64/i.test(n[1])?atob(n[2]):decodeURIComponent(n[2]);this.isRelevantRendering(e,t)&&this.inlineSVG(r,t)}else this.handleImageFallback(e,t)}get src(){return this.getAttribute(`src`)}set src(e){e?this.setAttribute(`src`,e):this.removeAttribute(`src`)}get placeholderSrc(){return this.getAttribute(`placeholder-src`)}set placeholderSrc(e){e?this.setAttribute(`placeholder-src`,e):this.removeAttribute(`placeholder-src`)}get svgContent(){return this._svgContent}set svgContent(e){this.inlineSVG(e)}inlineSVG(e,t){if(this._svgContent=this.svgContent,!this.shadowRoot)return;this.initShadowRoot();let n=new DOMParser,r=(e?n.parseFromString(this._sanitizer.sanitize(this.trustedTypePolicy,e),`image/svg+xml`):void 0)?.querySelector(`svg`);if(r){let e=parseFloat(r.getAttribute(`width`)||`0`),n=parseFloat(r.getAttribute(`height`)||`0`),i=r.getAttribute(`viewBox`);if((!e||!n)&&i){let t=i.split(/\s+/);t.length===4&&(e||=parseFloat(t[2]),n||=parseFloat(t[3]))}e&&n&&(this.style.setProperty(`--image-aspect-ratio`,`${e} / ${n}`),this.style.setProperty(`--natural-width`,`${e}px`),this.style.maxWidth=`${e}px`),r.setAttribute(`preserveAspectRatio`,`xMidYMid meet`),r.removeAttribute(`width`),r.removeAttribute(`height`),(i==null||i.trim()==``&&e&&n)&&r.setAttribute(`viewBox`,`0 0 ${e} ${n}`);let a=r.getAttribute(`color`);r.removeAttribute(`color`),a?this._privateStyleSheet.replaceSync(`:host {color: var(--sd-image-embed-color, ${a})}`):this._privateStyleSheet.replaceSync(`:host {color: var(--sd-image-embed-color)}`),this.shadowRoot.appendChild(r),r.classList.toggle(`placeholder`,t),r.part=`svg`,this.dispatchEvent(new CustomEvent(`load`))}else this.dispatchEvent(new CustomEvent(`error`));this.updateContentDependentStyle()}handleImageFallback(e,t,n){if(this.shadowRoot&&(this.initShadowRoot(),this.isRelevantRendering(e,t))){if(!t){let e=this.shadowRoot.querySelector(`.placeholder`);e&&e.remove()}let r=document.createElement(`img`);r.classList.toggle(`placeholder`,t),r.src=n==null?e:URL.createObjectURL(n),r.part=`img`;let i=()=>{n!=null&&URL.revokeObjectURL(r.src)};r.onload=()=>{this.style.setProperty(`--image-aspect-ratio`,`${r.naturalWidth} / ${r.naturalHeight}`),this.style.maxWidth=`${r.naturalWidth}px`,this.style.setProperty(`--natural-width`,`${r.naturalWidth}px`),this.dispatchEvent(new CustomEvent(`load`)),i()},r.onerror=()=>{this.dispatchEvent(new CustomEvent(`error`)),i()},this.shadowRoot.appendChild(r),this.updateContentDependentStyle()}}isRelevantRendering(e,t){return this.shadowRoot?t?this.placeholderSrc==e&&this.shadowRoot.querySelector(`svg,img`)==null:this.src==e:!1}initShadowRoot(){this.shadowRoot&&(this.shadowRoot.innerHTML=``)}};st.ensureDefined();var ct=`<slot name="icon">
|
|
308
|
-
<sd-image-embed class="icon" part="icon"></sd-image-embed>
|
|
308
|
+
<sd-image-embed class="icon" part="icon" exportparts="img, svg"></sd-image-embed>
|
|
309
309
|
</slot>
|
|
310
310
|
<div class="content">
|
|
311
311
|
<slot></slot>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cas-smartdesign/button",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.1",
|
|
4
4
|
"description": "A button element which encloses the look and feel of the smartdesign button",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"files": [
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"registry": "https://registry.npmjs.org/"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@cas-smartdesign/
|
|
21
|
-
"@cas-smartdesign/
|
|
20
|
+
"@cas-smartdesign/image-embed": "^1.0.1",
|
|
21
|
+
"@cas-smartdesign/element-base": "^6.0.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@cas-smartdesign/element-preview": "^1.1.0",
|