@digital-realty/ix-icon-button 1.0.14 → 1.0.16

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.
@@ -47,6 +47,7 @@ export declare class IxIconButton extends LitElement {
47
47
  type: FormSubmitterType;
48
48
  name: string | undefined;
49
49
  value: string | undefined;
50
+ label: string | undefined;
50
51
  protected createRenderRoot(): this;
51
52
  render(): import("lit").TemplateResult<1>;
52
53
  }
@@ -47,12 +47,14 @@ export class IxIconButton extends LitElement {
47
47
  this.type = 'submit';
48
48
  this.name = undefined;
49
49
  this.value = undefined;
50
+ this.label = undefined;
50
51
  }
51
52
  createRenderRoot() {
52
53
  return this;
53
54
  }
54
55
  render() {
55
56
  let comp;
57
+ const ariaLabel = this.label || this.ariaLabel;
56
58
  if (this.appearance === 'filled') {
57
59
  comp = html `<md-filled-icon-button
58
60
  class="button"
@@ -61,6 +63,7 @@ export class IxIconButton extends LitElement {
61
63
  href=${ifDefined(this.href)}
62
64
  target=${ifDefined(this.target)}
63
65
  aria-label-selected=${ifDefined(this.ariaLabelSelected)}
66
+ aria-label=${ariaLabel || nothing}
64
67
  ?toggle=${this.toggle}
65
68
  ?selected=${this.selected}
66
69
  type=${this.type}
@@ -80,6 +83,7 @@ export class IxIconButton extends LitElement {
80
83
  href=${ifDefined(this.href)}
81
84
  target=${ifDefined(this.target)}
82
85
  aria-label-selected=${ifDefined(this.ariaLabelSelected)}
86
+ aria-label=${ariaLabel || nothing}
83
87
  ?toggle=${this.toggle}
84
88
  ?selected=${this.selected}
85
89
  type=${this.type}
@@ -99,6 +103,7 @@ export class IxIconButton extends LitElement {
99
103
  href=${ifDefined(this.href)}
100
104
  target=${ifDefined(this.target)}
101
105
  aria-label-selected=${ifDefined(this.ariaLabelSelected)}
106
+ aria-label=${ariaLabel || nothing}
102
107
  ?toggle=${this.toggle}
103
108
  ?selected=${this.selected}
104
109
  type=${this.type}
@@ -118,6 +123,7 @@ export class IxIconButton extends LitElement {
118
123
  href=${ifDefined(this.href)}
119
124
  target=${ifDefined(this.target)}
120
125
  aria-label-selected=${ifDefined(this.ariaLabelSelected)}
126
+ aria-label=${ariaLabel || nothing}
121
127
  ?toggle=${this.toggle}
122
128
  ?selected=${this.selected}
123
129
  type=${this.type}
@@ -174,4 +180,7 @@ __decorate([
174
180
  __decorate([
175
181
  property()
176
182
  ], IxIconButton.prototype, "value", void 0);
183
+ __decorate([
184
+ property()
185
+ ], IxIconButton.prototype, "label", void 0);
177
186
  //# sourceMappingURL=IxIconButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IxIconButton.js","sourceRoot":"","sources":["../src/IxIconButton.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,yCAAyC,CAAC;AACjD,OAAO,gDAAgD,CAAC;AACxD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,kDAAkD,CAAC;AAC1D,OAAO,oCAAoC,CAAC;AAO5C,MAAM,OAAO,YAAa,SAAQ,UAAU;IAA5C;;QAKE,eAAU,GAAe,SAAS,CAAC;QAGnC,SAAI,GAAW,EAAE,CAAC;QAGlB,iBAAY,GAAW,EAAE,CAAC;QAE1B;;WAEG;QACyC,aAAQ,GAAG,KAAK,CAAC;QAE7D;;WAEG;QAEH,kBAAa,GAAG,KAAK,CAAC;QAEtB;;WAEG;QACS,SAAI,GAAuB,SAAS,CAAC;QAEjD;;WAEG;QACS,WAAM,GAAgC,SAAS,CAAC;QAE5D;;WAEG;QAC6C,sBAAiB,GAEjD,SAAS,CAAC;QAE1B;;;WAGG;QAC0B,WAAM,GAAG,KAAK,CAAC;QAE5C;;;;WAIG;QACyC,aAAQ,GAAG,KAAK,CAAC;QAEjD,SAAI,GAAsB,QAAQ,CAAC;QAEnC,SAAI,GAAuB,SAAS,CAAC;QAErC,UAAK,GAAuB,SAAS,CAAC;IAoFpD,CAAC;IAlFW,gBAAgB;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,IAAI,GAAG,IAAI,CAAA;;oBAEG,IAAI,CAAC,QAAQ;4BACL,IAAI,CAAC,aAAa;eAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;8BACT,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC;kBAC7C,IAAI,CAAC,MAAM;oBACT,IAAI,CAAC,QAAQ;eAClB,IAAI,CAAC,IAAI;eACT,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;oBACjB,IAAI,CAAC,IAAI;UACnB,IAAI,CAAC,YAAY;gBACjB,CAAC,CAAC,IAAI,CAAA,4BAA4B,IAAI,CAAC,YAAY,YAAY;gBAC/D,CAAC,CAAC,OAAO;+BACY,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,EAAE;YAC7C,IAAI,GAAG,IAAI,CAAA;;oBAEG,IAAI,CAAC,QAAQ;4BACL,IAAI,CAAC,aAAa;eAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;8BACT,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC;kBAC7C,IAAI,CAAC,MAAM;oBACT,IAAI,CAAC,QAAQ;eAClB,IAAI,CAAC,IAAI;eACT,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;oBACjB,IAAI,CAAC,IAAI;UACnB,IAAI,CAAC,YAAY;gBACjB,CAAC,CAAC,IAAI,CAAA,4BAA4B,IAAI,CAAC,YAAY,YAAY;gBAC/D,CAAC,CAAC,OAAO;qCACkB,CAAC;SACjC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YACzC,IAAI,GAAG,IAAI,CAAA;;oBAEG,IAAI,CAAC,QAAQ;4BACL,IAAI,CAAC,aAAa;eAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;8BACT,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC;kBAC7C,IAAI,CAAC,MAAM;oBACT,IAAI,CAAC,QAAQ;eAClB,IAAI,CAAC,IAAI;eACT,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;oBACjB,IAAI,CAAC,IAAI;UACnB,IAAI,CAAC,YAAY;gBACjB,CAAC,CAAC,IAAI,CAAA,4BAA4B,IAAI,CAAC,YAAY,YAAY;gBAC/D,CAAC,CAAC,OAAO;iCACc,CAAC;SAC7B;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACxC,IAAI,GAAG,IAAI,CAAA;;oBAEG,IAAI,CAAC,QAAQ;4BACL,IAAI,CAAC,aAAa;eAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;8BACT,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC;kBAC7C,IAAI,CAAC,MAAM;oBACT,IAAI,CAAC,QAAQ;eAClB,IAAI,CAAC,IAAI;eACT,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;oBACjB,IAAI,CAAC,IAAI;UACnB,IAAI,CAAC,YAAY;gBACjB,CAAC,CAAC,IAAI,CAAA,4BAA4B,IAAI,CAAC,YAAY,YAAY;gBAC/D,CAAC,CAAC,OAAO;wBACK,CAAC;SACpB;QAED,OAAO,IAAI,CAAA,GAAG,IAAI,EAAE,CAAC;IACvB,CAAC;CACF;AA5IC;IADC,KAAK,CAAC,SAAS,CAAC;+CACe;AAGhC;IADC,QAAQ,EAAE;gDACwB;AAGnC;IADC,QAAQ,EAAE;0CACO;AAGlB;IADC,QAAQ,EAAE;kDACe;AAKkB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAkB;AAM7D;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;mDACrC;AAKV;IAAX,QAAQ,EAAE;0CAAsC;AAKrC;IAAX,QAAQ,EAAE;4CAAiD;AAKZ;IAA/C,QAAQ,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;uDAErB;AAMG;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CAAgB;AAOA;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAkB;AAEjD;IAAX,QAAQ,EAAE;0CAAoC;AAEnC;IAAX,QAAQ,EAAE;0CAAsC;AAErC;IAAX,QAAQ,EAAE;2CAAuC","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport '@material/web/iconbutton/icon-button.js';\nimport '@material/web/iconbutton/filled-icon-button.js';\nimport '@material/web/iconbutton/filled-tonal-icon-button.js';\nimport '@material/web/iconbutton/outlined-icon-button.js';\nimport '@digital-realty/ix-icon/ix-icon.js';\nimport { IconButton } from '@material/web/iconbutton/internal/icon-button';\nimport { FormSubmitterType } from '@material/web/internal/controller/form-submitter.js';\n\ntype LinkTarget = '_blank' | '_parent' | '_self' | '_top';\nexport type Appearance = 'filled' | 'filled-tonal' | 'outlined' | 'default';\n\nexport class IxIconButton extends LitElement {\n @query('.button')\n readonly component!: IconButton;\n\n @property()\n appearance: Appearance = 'default';\n\n @property()\n icon: string = '';\n\n @property()\n selectedIcon: string = '';\n\n /**\n * Disables the icon button and makes it non-interactive.\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Flips the icon if it is in an RTL context at startup.\n */\n @property({ type: Boolean, attribute: 'flip-icon-in-rtl' })\n flipIconInRtl = false;\n\n /**\n * Sets the underlying `HTMLAnchorElement`'s `href` resource attribute.\n */\n @property() href: string | undefined = undefined;\n\n /**\n * Sets the underlying `HTMLAnchorElement`'s `target` attribute.\n */\n @property() target: LinkTarget | '' | undefined = undefined;\n\n /**\n * The `aria-label` of the button when the button is toggleable and selected.\n */\n @property({ attribute: 'aria-label-selected' }) ariaLabelSelected:\n | string\n | undefined = undefined;\n\n /**\n * When true, the button will toggle between selected and unselected\n * states\n */\n @property({ type: Boolean }) toggle = false;\n\n /**\n * Sets the selected state. When false, displays the default icon. When true,\n * displays the selected icon, or the default icon If no `slot=\"selected\"`\n * icon is provided.\n */\n @property({ type: Boolean, reflect: true }) selected = false;\n\n @property() type: FormSubmitterType = 'submit';\n\n @property() name: string | undefined = undefined;\n\n @property() value: string | undefined = undefined;\n\n protected createRenderRoot() {\n return this;\n }\n\n render() {\n let comp;\n if (this.appearance === 'filled') {\n comp = html`<md-filled-icon-button\n class=\"button\"\n ?disabled=${this.disabled}\n ?flip-icon-in-rtl=${this.flipIconInRtl}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n aria-label-selected=${ifDefined(this.ariaLabelSelected)}\n ?toggle=${this.toggle}\n ?selected=${this.selected}\n type=${this.type}\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ><ix-icon>${this.icon}</ix-icon>\n ${this.selectedIcon\n ? html`<ix-icon slot=\"selected\">${this.selectedIcon}</ix-icon>`\n : nothing}\n </md-filled-icon-button>`;\n } else if (this.appearance === 'filled-tonal') {\n comp = html`<md-filled-tonal-icon-button\n class=\"button\"\n ?disabled=${this.disabled}\n ?flip-icon-in-rtl=${this.flipIconInRtl}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n aria-label-selected=${ifDefined(this.ariaLabelSelected)}\n ?toggle=${this.toggle}\n ?selected=${this.selected}\n type=${this.type}\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ><ix-icon>${this.icon}</ix-icon>\n ${this.selectedIcon\n ? html`<ix-icon slot=\"selected\">${this.selectedIcon}</ix-icon>`\n : nothing}\n </md-filled-tonal-icon-button>`;\n } else if (this.appearance === 'outlined') {\n comp = html`<md-outlined-icon-button\n class=\"button\"\n ?disabled=${this.disabled}\n ?flip-icon-in-rtl=${this.flipIconInRtl}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n aria-label-selected=${ifDefined(this.ariaLabelSelected)}\n ?toggle=${this.toggle}\n ?selected=${this.selected}\n type=${this.type}\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ><ix-icon>${this.icon}</ix-icon>\n ${this.selectedIcon\n ? html`<ix-icon slot=\"selected\">${this.selectedIcon}</ix-icon>`\n : nothing}\n </md-outlined-icon-button>`;\n } else if (this.appearance === 'default') {\n comp = html`<md-icon-button\n class=\"button\"\n ?disabled=${this.disabled}\n ?flip-icon-in-rtl=${this.flipIconInRtl}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n aria-label-selected=${ifDefined(this.ariaLabelSelected)}\n ?toggle=${this.toggle}\n ?selected=${this.selected}\n type=${this.type}\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ><ix-icon>${this.icon}</ix-icon>\n ${this.selectedIcon\n ? html`<ix-icon slot=\"selected\">${this.selectedIcon}</ix-icon>`\n : nothing}\n </md-icon-button>`;\n }\n\n return html`${comp}`;\n }\n}\n"]}
1
+ {"version":3,"file":"IxIconButton.js","sourceRoot":"","sources":["../src/IxIconButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { ARIAMixinStrict } from '@material/web/internal/aria/aria.js';\nimport '@material/web/iconbutton/icon-button.js';\nimport '@material/web/iconbutton/filled-icon-button.js';\nimport '@material/web/iconbutton/filled-tonal-icon-button.js';\nimport '@material/web/iconbutton/outlined-icon-button.js';\nimport '@digital-realty/ix-icon/ix-icon.js';\nimport { IconButton } from '@material/web/iconbutton/internal/icon-button';\nimport { FormSubmitterType } from '@material/web/internal/controller/form-submitter.js';\n\ntype LinkTarget = '_blank' | '_parent' | '_self' | '_top';\nexport type Appearance = 'filled' | 'filled-tonal' | 'outlined' | 'default';\n\nexport class IxIconButton extends LitElement {\n @query('.button')\n readonly component!: IconButton;\n\n @property()\n appearance: Appearance = 'default';\n\n @property()\n icon: string = '';\n\n @property()\n selectedIcon: string = '';\n\n /**\n * Disables the icon button and makes it non-interactive.\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Flips the icon if it is in an RTL context at startup.\n */\n @property({ type: Boolean, attribute: 'flip-icon-in-rtl' })\n flipIconInRtl = false;\n\n /**\n * Sets the underlying `HTMLAnchorElement`'s `href` resource attribute.\n */\n @property() href: string | undefined = undefined;\n\n /**\n * Sets the underlying `HTMLAnchorElement`'s `target` attribute.\n */\n @property() target: LinkTarget | '' | undefined = undefined;\n\n /**\n * The `aria-label` of the button when the button is toggleable and selected.\n */\n @property({ attribute: 'aria-label-selected' }) ariaLabelSelected:\n | string\n | undefined = undefined;\n\n /**\n * When true, the button will toggle between selected and unselected\n * states\n */\n @property({ type: Boolean }) toggle = false;\n\n /**\n * Sets the selected state. When false, displays the default icon. When true,\n * displays the selected icon, or the default icon If no `slot=\"selected\"`\n * icon is provided.\n */\n @property({ type: Boolean, reflect: true }) selected = false;\n\n @property() type: FormSubmitterType = 'submit';\n\n @property() name: string | undefined = undefined;\n\n @property() value: string | undefined = undefined;\n\n @property() label: string | undefined = undefined;\n\n protected createRenderRoot() {\n return this;\n }\n\n render() {\n let comp;\n\n const ariaLabel = this.label || (this as ARIAMixinStrict).ariaLabel;\n\n if (this.appearance === 'filled') {\n comp = html`<md-filled-icon-button\n class=\"button\"\n ?disabled=${this.disabled}\n ?flip-icon-in-rtl=${this.flipIconInRtl}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n aria-label-selected=${ifDefined(this.ariaLabelSelected)}\n aria-label=${ariaLabel || nothing}\n ?toggle=${this.toggle}\n ?selected=${this.selected}\n type=${this.type}\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ><ix-icon>${this.icon}</ix-icon>\n ${this.selectedIcon\n ? html`<ix-icon slot=\"selected\">${this.selectedIcon}</ix-icon>`\n : nothing}\n </md-filled-icon-button>`;\n } else if (this.appearance === 'filled-tonal') {\n comp = html`<md-filled-tonal-icon-button\n class=\"button\"\n ?disabled=${this.disabled}\n ?flip-icon-in-rtl=${this.flipIconInRtl}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n aria-label-selected=${ifDefined(this.ariaLabelSelected)}\n aria-label=${ariaLabel || nothing}\n ?toggle=${this.toggle}\n ?selected=${this.selected}\n type=${this.type}\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ><ix-icon>${this.icon}</ix-icon>\n ${this.selectedIcon\n ? html`<ix-icon slot=\"selected\">${this.selectedIcon}</ix-icon>`\n : nothing}\n </md-filled-tonal-icon-button>`;\n } else if (this.appearance === 'outlined') {\n comp = html`<md-outlined-icon-button\n class=\"button\"\n ?disabled=${this.disabled}\n ?flip-icon-in-rtl=${this.flipIconInRtl}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n aria-label-selected=${ifDefined(this.ariaLabelSelected)}\n aria-label=${ariaLabel || nothing}\n ?toggle=${this.toggle}\n ?selected=${this.selected}\n type=${this.type}\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ><ix-icon>${this.icon}</ix-icon>\n ${this.selectedIcon\n ? html`<ix-icon slot=\"selected\">${this.selectedIcon}</ix-icon>`\n : nothing}\n </md-outlined-icon-button>`;\n } else if (this.appearance === 'default') {\n comp = html`<md-icon-button\n class=\"button\"\n ?disabled=${this.disabled}\n ?flip-icon-in-rtl=${this.flipIconInRtl}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n aria-label-selected=${ifDefined(this.ariaLabelSelected)}\n aria-label=${ariaLabel || nothing}\n ?toggle=${this.toggle}\n ?selected=${this.selected}\n type=${this.type}\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ><ix-icon>${this.icon}</ix-icon>\n ${this.selectedIcon\n ? html`<ix-icon slot=\"selected\">${this.selectedIcon}</ix-icon>`\n : nothing}\n </md-icon-button>`;\n }\n\n return html`${comp}`;\n }\n}\n"]}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent ix-icon-button following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "Digital Realty",
6
- "version": "1.0.14",
6
+ "version": "1.0.16",
7
7
  "type": "module",
8
8
  "main": "dist/index.js",
9
9
  "module": "dist/index.js",
@@ -26,7 +26,7 @@
26
26
  "test:watch": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wtr --watch\""
27
27
  },
28
28
  "dependencies": {
29
- "@digital-realty/ix-icon": "*",
29
+ "@digital-realty/ix-icon": "^1.0.1",
30
30
  "@lit/react": "^1.0.2",
31
31
  "@material/web": "^1.0.1",
32
32
  "lit": "^2.0.2",
@@ -98,5 +98,5 @@
98
98
  "README.md",
99
99
  "LICENSE"
100
100
  ],
101
- "gitHead": "fb8987c768a39f377d98b1edacf456011cec29fe"
101
+ "gitHead": "6457ff35fdd737f00e1580ec8c4dc5725733163f"
102
102
  }