@spectrum-web-components/swatch 0.33.3-overlay.66 → 0.34.1-rc.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/README.md CHANGED
@@ -208,6 +208,8 @@ The `mixed-value` attribute and `mixedValue` property outline when an `<sp-swatc
208
208
  </sp-swatch-group>
209
209
  ```
210
210
 
211
+ Please note that the `aria-checked="mixed"` value only applies when the swatch is in a group with `selects="multiple"`
212
+
211
213
  ### Nothing
212
214
 
213
215
  The `nothing` attribute/property outlines that the `<sp-swatch>` represents no color or that it represents "transparent".
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spectrum-web-components/swatch",
3
- "version": "0.33.3-overlay.66+30e96d5ea",
3
+ "version": "0.34.1-rc.0+1647bfed5",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -67,11 +67,11 @@
67
67
  ],
68
68
  "dependencies": {
69
69
  "@lit-labs/observers": "^2.0.0",
70
- "@spectrum-web-components/base": "^0.33.3-overlay.66+30e96d5ea",
71
- "@spectrum-web-components/icon": "^0.33.3-overlay.66+30e96d5ea",
72
- "@spectrum-web-components/icons-ui": "^0.33.3-overlay.66+30e96d5ea",
73
- "@spectrum-web-components/reactive-controllers": "^0.33.3-overlay.66+30e96d5ea",
74
- "@spectrum-web-components/shared": "^0.33.3-overlay.66+30e96d5ea"
70
+ "@spectrum-web-components/base": "^0.34.1-rc.0+1647bfed5",
71
+ "@spectrum-web-components/icon": "^0.34.1-rc.0+1647bfed5",
72
+ "@spectrum-web-components/icons-ui": "^0.34.1-rc.0+1647bfed5",
73
+ "@spectrum-web-components/reactive-controllers": "^0.34.1-rc.0+1647bfed5",
74
+ "@spectrum-web-components/shared": "^0.34.1-rc.0+1647bfed5"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@spectrum-css/swatch": "^4.0.25",
@@ -83,5 +83,5 @@
83
83
  "./sp-*.js",
84
84
  "./**/*.dev.js"
85
85
  ],
86
- "gitHead": "30e96d5eaed31b7b2af916d78cabccb722889fe3"
86
+ "gitHead": "1647bfed54cb29f3513343cd0d2c2d9e73e1c508"
87
87
  }
package/src/Swatch.dev.js CHANGED
@@ -160,6 +160,7 @@ export class Swatch extends SizedMixin(Focusable, {
160
160
  `;
161
161
  }
162
162
  willUpdate(changes) {
163
+ var _a;
163
164
  if (!this.getAttribute("role")) {
164
165
  this.setAttribute("role", "button");
165
166
  }
@@ -175,12 +176,19 @@ export class Swatch extends SizedMixin(Focusable, {
175
176
  );
176
177
  }
177
178
  if (changes.has("label")) {
178
- if (this.label) {
179
+ if (this.label !== this.color && ((_a = this.label) == null ? void 0 : _a.length)) {
179
180
  this.setAttribute("aria-label", this.label);
181
+ } else if (this.color !== "") {
182
+ this.setAttribute("aria-label", this.color);
180
183
  } else {
181
184
  this.removeAttribute("aria-label");
182
185
  }
183
186
  }
187
+ if (changes.has("mixedValue")) {
188
+ if (this.mixedValue) {
189
+ this.setAttribute("aria-checked", "mixed");
190
+ }
191
+ }
184
192
  }
185
193
  firstUpdated(changes) {
186
194
  super.firstUpdated(changes);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["Swatch.ts"],
4
- "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SizedMixin,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { when } from '@spectrum-web-components/base/src/directives.js';\nimport { Focusable } from '@spectrum-web-components/shared/src/focusable.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js';\n\nimport styles from './swatch.css.js';\nimport dashStyles from '@spectrum-web-components/icon/src/spectrum-icon-dash.css.js';\n\nexport type SwatchBorder = 'light' | 'none' | undefined;\nexport type SwatchRounding = 'none' | 'full' | undefined;\nexport type SwatchShape = 'rectangle' | undefined;\n\nconst dashIcon: Record<string, () => TemplateResult> = {\n xs: () => html`\n <sp-icon-dash75\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash75\"\n ></sp-icon-dash75>\n `,\n s: () => html`\n <sp-icon-dash100\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash100\"\n ></sp-icon-dash100>\n `,\n m: () => html`\n <sp-icon-dash200\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash200\"\n ></sp-icon-dash200>\n `,\n l: () => html`\n <sp-icon-dash300\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash300\"\n ></sp-icon-dash300>\n `,\n};\n\n/**\n * @element sp-swatch\n */\nexport class Swatch extends SizedMixin(Focusable, {\n validSizes: ['xs', 's', 'm', 'l'],\n}) {\n public static override get styles(): CSSResultArray {\n return [styles, dashStyles];\n }\n\n @property({ reflect: true })\n public border: SwatchBorder;\n\n @property()\n public color = '';\n\n @property()\n public label = '';\n\n @property({ type: Boolean, reflect: true, attribute: 'mixed-value' })\n public mixedValue = false;\n\n @property({ type: Boolean, reflect: true })\n public nothing = false;\n\n @property({ reflect: true })\n public role = 'button';\n\n @property({ reflect: true })\n public rounding: SwatchRounding;\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ reflect: true })\n public shape: SwatchShape;\n\n @property()\n get value(): string {\n return this._value || this.color || this.label;\n }\n\n set value(value: string) {\n if (value === this._value) return;\n const oldValue = this.value;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n\n private _value?: string;\n\n public override get focusElement(): HTMLElement {\n return this;\n }\n\n public toggle(force?: boolean): void {\n this.selected = force ?? !this.selected;\n }\n\n private handleClick(): void {\n if (this.disabled || this.mixedValue) return;\n this.toggle();\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n cancelable: true,\n bubbles: true,\n })\n );\n if (!applyDefault) {\n this.toggle();\n }\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n event.preventDefault();\n this.addEventListener('keyup', this.handleKeyup);\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n private handleKeypress(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Enter':\n case 'NumpadEnter':\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n this.removeEventListener('keyup', this.handleKeyup);\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected renderDisabled = (): TemplateResult => {\n return html`\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"disabledIcon\"\n viewBox=\"0 0 20 20\"\n >\n <path\n d=\"M9.889,1a8.889,8.889,0,1,0,8.889,8.889A8.889,8.889,0,0,0,9.889,1Zm6.667,8.889a6.635,6.635,0,0,1-1.233,3.863l-9.3-9.3A6.667,6.667,0,0,1,16.556,9.889Zm-13.333,0A6.636,6.636,0,0,1,4.455,6.026l9.3,9.3A6.667,6.667,0,0,1,3.222,9.889Z\"\n stroke=\"none\"\n fill=\"var(--spectrum-swatch-disabled-icon-color)\"\n />\n <path\n d=\"M 9.888889312744141 1 C 4.979689598083496 1 1 4.979689598083496 1 9.888889312744141 C 1 14.7980899810791 4.979689598083496 18.77777862548828 9.888889312744141 18.77777862548828 C 14.7980899810791 18.77777862548828 18.77777862548828 14.7980899810791 18.77777862548828 9.888889312744141 C 18.77777862548828 4.979689598083496 14.7980899810791 1 9.888889312744141 1 M 15.32277870178223 13.75166893005371 L 6.02610969543457 4.454998970031738 C 8.059318542480469 3.009572982788086 10.72937774658203 2.820217132568359 12.9462194442749 3.964249610900879 C 15.16304969787598 5.10828971862793 16.55568885803223 7.394259452819824 16.5555591583252 9.888889312744141 C 16.55776977539062 11.27357959747314 16.126708984375 12.62425994873047 15.32277870178223 13.75166893005371 M 9.888258934020996 16.55648612976074 C 8.843273162841797 16.55648612976074 7.794573783874512 16.31111145019531 6.831318855285645 15.8139591217041 C 4.614439010620117 14.66977882385254 3.221879959106445 12.38361930847168 3.222219467163086 9.888889312744141 C 3.220088958740234 8.504219055175781 3.651140213012695 7.153559684753418 4.454998970031738 6.02610969543457 L 13.75166893005371 15.32333946228027 C 12.60186290740967 16.14075088500977 11.24825286865234 16.55648612976074 9.888258934020996 16.55648612976074 M 9.888889312744141 0 C 15.34163951873779 0 19.77777862548828 4.436139106750488 19.77777862548828 9.888889312744141 C 19.77777862548828 15.34163951873779 15.34163951873779 19.77777862548828 9.888889312744141 19.77777862548828 C 4.436139106750488 19.77777862548828 0 15.34163951873779 0 9.888889312744141 C 0 4.436139106750488 4.436139106750488 0 9.888889312744141 0 Z M 15.10232830047607 12.11699867248535 C 15.40205764770508 11.41858959197998 15.55679702758789 10.66494941711426 15.5555591583252 9.89048957824707 C 15.5556697845459 7.759209632873535 14.38009929656982 5.829549789428711 12.48761940002441 4.852889060974121 C 11.68764972686768 4.440059661865234 10.78924942016602 4.22184944152832 9.889529228210449 4.22184944152832 C 9.114802360534668 4.22184944152832 8.360831260681152 4.377038955688477 7.661839485168457 4.676509857177734 L 15.10232830047607 12.11699867248535 Z M 12.11597919464111 15.10181331634521 L 4.675475120544434 7.660861015319824 C 4.375750541687012 8.359296798706055 4.221027374267578 9.112875938415527 4.222219467163086 9.887349128723145 C 4.221929550170898 12.01874923706055 5.397418975830078 13.94855880737305 7.289958953857422 14.92533874511719 C 8.08997917175293 15.3382396697998 8.988459587097168 15.55648994445801 9.888258934020996 15.55648994445801 C 10.66298007965088 15.55648994445801 11.41698551177979 15.40128421783447 12.11597919464111 15.10181331634521 Z\"\n stroke=\"none\"\n fill=\"var(--spectrum-swatch-disabled-icon-stroke-color)\"\n />\n </svg>\n `;\n };\n\n protected renderMixedValue = (): TemplateResult => {\n return dashIcon[this.size]();\n };\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"fill\" style=\"--spectrum-picked-color: ${this.color}\">\n <slot name=\"image\"></slot>\n ${when(this.disabled, this.renderDisabled)}\n ${when(this.mixedValue, this.renderMixedValue)}\n </div>\n `;\n }\n\n protected override willUpdate(changes: PropertyValues): void {\n if (!this.getAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n if (changes.has('selected') || changes.has('role')) {\n const selectedAttribute =\n this.role === 'button' ? 'aria-pressed' : 'aria-checked';\n const removedSelectedAttribute =\n this.role === 'button' ? 'aria-checked' : 'aria-pressed';\n if (changes.has('role')) {\n this.removeAttribute(removedSelectedAttribute);\n }\n this.setAttribute(\n selectedAttribute,\n this.selected ? 'true' : 'false'\n );\n }\n if (changes.has('label')) {\n if (this.label) {\n this.setAttribute('aria-label', this.label);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeydown);\n this.addEventListener('keypress', this.handleKeypress);\n if (!this.hasAttribute('tabindex')) {\n this.setAttribute('tabindex', '0');\n }\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SizedMixin,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { when } from '@spectrum-web-components/base/src/directives.js';\nimport { Focusable } from '@spectrum-web-components/shared/src/focusable.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js';\n\nimport styles from './swatch.css.js';\nimport dashStyles from '@spectrum-web-components/icon/src/spectrum-icon-dash.css.js';\n\nexport type SwatchBorder = 'light' | 'none' | undefined;\nexport type SwatchRounding = 'none' | 'full' | undefined;\nexport type SwatchShape = 'rectangle' | undefined;\n\nconst dashIcon: Record<string, () => TemplateResult> = {\n xs: () => html`\n <sp-icon-dash75\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash75\"\n ></sp-icon-dash75>\n `,\n s: () => html`\n <sp-icon-dash100\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash100\"\n ></sp-icon-dash100>\n `,\n m: () => html`\n <sp-icon-dash200\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash200\"\n ></sp-icon-dash200>\n `,\n l: () => html`\n <sp-icon-dash300\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash300\"\n ></sp-icon-dash300>\n `,\n};\n\n/**\n * @element sp-swatch\n */\nexport class Swatch extends SizedMixin(Focusable, {\n validSizes: ['xs', 's', 'm', 'l'],\n}) {\n public static override get styles(): CSSResultArray {\n return [styles, dashStyles];\n }\n\n @property({ reflect: true })\n public border: SwatchBorder;\n\n @property()\n public color = '';\n\n @property()\n public label = '';\n\n @property({ type: Boolean, reflect: true, attribute: 'mixed-value' })\n public mixedValue = false;\n\n @property({ type: Boolean, reflect: true })\n public nothing = false;\n\n @property({ reflect: true })\n public role = 'button';\n\n @property({ reflect: true })\n public rounding: SwatchRounding;\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ reflect: true })\n public shape: SwatchShape;\n\n @property()\n get value(): string {\n return this._value || this.color || this.label;\n }\n\n set value(value: string) {\n if (value === this._value) return;\n const oldValue = this.value;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n\n private _value?: string;\n\n public override get focusElement(): HTMLElement {\n return this;\n }\n\n public toggle(force?: boolean): void {\n this.selected = force ?? !this.selected;\n }\n\n private handleClick(): void {\n if (this.disabled || this.mixedValue) return;\n this.toggle();\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n cancelable: true,\n bubbles: true,\n })\n );\n if (!applyDefault) {\n this.toggle();\n }\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n event.preventDefault();\n this.addEventListener('keyup', this.handleKeyup);\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n private handleKeypress(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Enter':\n case 'NumpadEnter':\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n this.removeEventListener('keyup', this.handleKeyup);\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected renderDisabled = (): TemplateResult => {\n return html`\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"disabledIcon\"\n viewBox=\"0 0 20 20\"\n >\n <path\n d=\"M9.889,1a8.889,8.889,0,1,0,8.889,8.889A8.889,8.889,0,0,0,9.889,1Zm6.667,8.889a6.635,6.635,0,0,1-1.233,3.863l-9.3-9.3A6.667,6.667,0,0,1,16.556,9.889Zm-13.333,0A6.636,6.636,0,0,1,4.455,6.026l9.3,9.3A6.667,6.667,0,0,1,3.222,9.889Z\"\n stroke=\"none\"\n fill=\"var(--spectrum-swatch-disabled-icon-color)\"\n />\n <path\n d=\"M 9.888889312744141 1 C 4.979689598083496 1 1 4.979689598083496 1 9.888889312744141 C 1 14.7980899810791 4.979689598083496 18.77777862548828 9.888889312744141 18.77777862548828 C 14.7980899810791 18.77777862548828 18.77777862548828 14.7980899810791 18.77777862548828 9.888889312744141 C 18.77777862548828 4.979689598083496 14.7980899810791 1 9.888889312744141 1 M 15.32277870178223 13.75166893005371 L 6.02610969543457 4.454998970031738 C 8.059318542480469 3.009572982788086 10.72937774658203 2.820217132568359 12.9462194442749 3.964249610900879 C 15.16304969787598 5.10828971862793 16.55568885803223 7.394259452819824 16.5555591583252 9.888889312744141 C 16.55776977539062 11.27357959747314 16.126708984375 12.62425994873047 15.32277870178223 13.75166893005371 M 9.888258934020996 16.55648612976074 C 8.843273162841797 16.55648612976074 7.794573783874512 16.31111145019531 6.831318855285645 15.8139591217041 C 4.614439010620117 14.66977882385254 3.221879959106445 12.38361930847168 3.222219467163086 9.888889312744141 C 3.220088958740234 8.504219055175781 3.651140213012695 7.153559684753418 4.454998970031738 6.02610969543457 L 13.75166893005371 15.32333946228027 C 12.60186290740967 16.14075088500977 11.24825286865234 16.55648612976074 9.888258934020996 16.55648612976074 M 9.888889312744141 0 C 15.34163951873779 0 19.77777862548828 4.436139106750488 19.77777862548828 9.888889312744141 C 19.77777862548828 15.34163951873779 15.34163951873779 19.77777862548828 9.888889312744141 19.77777862548828 C 4.436139106750488 19.77777862548828 0 15.34163951873779 0 9.888889312744141 C 0 4.436139106750488 4.436139106750488 0 9.888889312744141 0 Z M 15.10232830047607 12.11699867248535 C 15.40205764770508 11.41858959197998 15.55679702758789 10.66494941711426 15.5555591583252 9.89048957824707 C 15.5556697845459 7.759209632873535 14.38009929656982 5.829549789428711 12.48761940002441 4.852889060974121 C 11.68764972686768 4.440059661865234 10.78924942016602 4.22184944152832 9.889529228210449 4.22184944152832 C 9.114802360534668 4.22184944152832 8.360831260681152 4.377038955688477 7.661839485168457 4.676509857177734 L 15.10232830047607 12.11699867248535 Z M 12.11597919464111 15.10181331634521 L 4.675475120544434 7.660861015319824 C 4.375750541687012 8.359296798706055 4.221027374267578 9.112875938415527 4.222219467163086 9.887349128723145 C 4.221929550170898 12.01874923706055 5.397418975830078 13.94855880737305 7.289958953857422 14.92533874511719 C 8.08997917175293 15.3382396697998 8.988459587097168 15.55648994445801 9.888258934020996 15.55648994445801 C 10.66298007965088 15.55648994445801 11.41698551177979 15.40128421783447 12.11597919464111 15.10181331634521 Z\"\n stroke=\"none\"\n fill=\"var(--spectrum-swatch-disabled-icon-stroke-color)\"\n />\n </svg>\n `;\n };\n\n protected renderMixedValue = (): TemplateResult => {\n return dashIcon[this.size]();\n };\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"fill\" style=\"--spectrum-picked-color: ${this.color}\">\n <slot name=\"image\"></slot>\n ${when(this.disabled, this.renderDisabled)}\n ${when(this.mixedValue, this.renderMixedValue)}\n </div>\n `;\n }\n\n protected override willUpdate(changes: PropertyValues): void {\n if (!this.getAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n if (changes.has('selected') || changes.has('role')) {\n const selectedAttribute =\n this.role === 'button' ? 'aria-pressed' : 'aria-checked';\n const removedSelectedAttribute =\n this.role === 'button' ? 'aria-checked' : 'aria-pressed';\n if (changes.has('role')) {\n this.removeAttribute(removedSelectedAttribute);\n }\n this.setAttribute(\n selectedAttribute,\n this.selected ? 'true' : 'false'\n );\n }\n if (changes.has('label')) {\n if (this.label !== this.color && this.label?.length) {\n this.setAttribute('aria-label', this.label);\n } else if (this.color !== '') {\n this.setAttribute('aria-label', this.color);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n if (changes.has('mixedValue')) {\n if (this.mixedValue) {\n this.setAttribute('aria-checked', 'mixed');\n }\n }\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeydown);\n this.addEventListener('keypress', this.handleKeypress);\n if (!this.hasAttribute('tabindex')) {\n this.setAttribute('tabindex', '0');\n }\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/src/Swatch.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var u=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=(o,a,e,t)=>{for(var r=t>1?void 0:t?p(a,e):a,d=o.length-1,n;d>=0;d--)(n=o[d])&&(r=(t?n(a,e,r):n(r))||r);return t&&r&&u(a,e,r),r};import{html as l,SizedMixin as h}from"@spectrum-web-components/base";import{property as i}from"@spectrum-web-components/base/src/decorators.js";import{when as c}from"@spectrum-web-components/base/src/directives.js";import{Focusable as b}from"@spectrum-web-components/shared/src/focusable.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js";import m from"./swatch.css.js";import v from"@spectrum-web-components/icon/src/spectrum-icon-dash.css.js";const f={xs:()=>l`
1
+ "use strict";var u=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=(d,a,e,t)=>{for(var r=t>1?void 0:t?p(a,e):a,o=d.length-1,n;o>=0;o--)(n=d[o])&&(r=(t?n(a,e,r):n(r))||r);return t&&r&&u(a,e,r),r};import{html as l,SizedMixin as h}from"@spectrum-web-components/base";import{property as i}from"@spectrum-web-components/base/src/decorators.js";import{when as c}from"@spectrum-web-components/base/src/directives.js";import{Focusable as b}from"@spectrum-web-components/shared/src/focusable.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js";import m from"./swatch.css.js";import v from"@spectrum-web-components/icon/src/spectrum-icon-dash.css.js";const f={xs:()=>l`
2
2
  <sp-icon-dash75
3
3
  slot="icon"
4
4
  class="mixedValueIcon spectrum-UIIcon-Dash75"
@@ -41,5 +41,5 @@
41
41
  ${c(this.disabled,this.renderDisabled)}
42
42
  ${c(this.mixedValue,this.renderMixedValue)}
43
43
  </div>
44
- `}willUpdate(e){if(this.getAttribute("role")||this.setAttribute("role","button"),e.has("selected")||e.has("role")){const t=this.role==="button"?"aria-pressed":"aria-checked",r=this.role==="button"?"aria-checked":"aria-pressed";e.has("role")&&this.removeAttribute(r),this.setAttribute(t,this.selected?"true":"false")}e.has("label")&&(this.label?this.setAttribute("aria-label",this.label):this.removeAttribute("aria-label"))}firstUpdated(e){super.firstUpdated(e),this.addEventListener("click",this.handleClick),this.addEventListener("keydown",this.handleKeydown),this.addEventListener("keypress",this.handleKeypress),this.hasAttribute("tabindex")||this.setAttribute("tabindex","0")}}s([i({reflect:!0})],Swatch.prototype,"border",2),s([i()],Swatch.prototype,"color",2),s([i()],Swatch.prototype,"label",2),s([i({type:Boolean,reflect:!0,attribute:"mixed-value"})],Swatch.prototype,"mixedValue",2),s([i({type:Boolean,reflect:!0})],Swatch.prototype,"nothing",2),s([i({reflect:!0})],Swatch.prototype,"role",2),s([i({reflect:!0})],Swatch.prototype,"rounding",2),s([i({type:Boolean,reflect:!0})],Swatch.prototype,"selected",2),s([i({reflect:!0})],Swatch.prototype,"shape",2),s([i()],Swatch.prototype,"value",1);
44
+ `}willUpdate(e){var t;if(this.getAttribute("role")||this.setAttribute("role","button"),e.has("selected")||e.has("role")){const r=this.role==="button"?"aria-pressed":"aria-checked",o=this.role==="button"?"aria-checked":"aria-pressed";e.has("role")&&this.removeAttribute(o),this.setAttribute(r,this.selected?"true":"false")}e.has("label")&&(this.label!==this.color&&((t=this.label)!=null&&t.length)?this.setAttribute("aria-label",this.label):this.color!==""?this.setAttribute("aria-label",this.color):this.removeAttribute("aria-label")),e.has("mixedValue")&&this.mixedValue&&this.setAttribute("aria-checked","mixed")}firstUpdated(e){super.firstUpdated(e),this.addEventListener("click",this.handleClick),this.addEventListener("keydown",this.handleKeydown),this.addEventListener("keypress",this.handleKeypress),this.hasAttribute("tabindex")||this.setAttribute("tabindex","0")}}s([i({reflect:!0})],Swatch.prototype,"border",2),s([i()],Swatch.prototype,"color",2),s([i()],Swatch.prototype,"label",2),s([i({type:Boolean,reflect:!0,attribute:"mixed-value"})],Swatch.prototype,"mixedValue",2),s([i({type:Boolean,reflect:!0})],Swatch.prototype,"nothing",2),s([i({reflect:!0})],Swatch.prototype,"role",2),s([i({reflect:!0})],Swatch.prototype,"rounding",2),s([i({type:Boolean,reflect:!0})],Swatch.prototype,"selected",2),s([i({reflect:!0})],Swatch.prototype,"shape",2),s([i()],Swatch.prototype,"value",1);
45
45
  //# sourceMappingURL=Swatch.js.map
package/src/Swatch.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["Swatch.ts"],
4
- "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SizedMixin,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { when } from '@spectrum-web-components/base/src/directives.js';\nimport { Focusable } from '@spectrum-web-components/shared/src/focusable.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js';\n\nimport styles from './swatch.css.js';\nimport dashStyles from '@spectrum-web-components/icon/src/spectrum-icon-dash.css.js';\n\nexport type SwatchBorder = 'light' | 'none' | undefined;\nexport type SwatchRounding = 'none' | 'full' | undefined;\nexport type SwatchShape = 'rectangle' | undefined;\n\nconst dashIcon: Record<string, () => TemplateResult> = {\n xs: () => html`\n <sp-icon-dash75\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash75\"\n ></sp-icon-dash75>\n `,\n s: () => html`\n <sp-icon-dash100\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash100\"\n ></sp-icon-dash100>\n `,\n m: () => html`\n <sp-icon-dash200\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash200\"\n ></sp-icon-dash200>\n `,\n l: () => html`\n <sp-icon-dash300\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash300\"\n ></sp-icon-dash300>\n `,\n};\n\n/**\n * @element sp-swatch\n */\nexport class Swatch extends SizedMixin(Focusable, {\n validSizes: ['xs', 's', 'm', 'l'],\n}) {\n public static override get styles(): CSSResultArray {\n return [styles, dashStyles];\n }\n\n @property({ reflect: true })\n public border: SwatchBorder;\n\n @property()\n public color = '';\n\n @property()\n public label = '';\n\n @property({ type: Boolean, reflect: true, attribute: 'mixed-value' })\n public mixedValue = false;\n\n @property({ type: Boolean, reflect: true })\n public nothing = false;\n\n @property({ reflect: true })\n public role = 'button';\n\n @property({ reflect: true })\n public rounding: SwatchRounding;\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ reflect: true })\n public shape: SwatchShape;\n\n @property()\n get value(): string {\n return this._value || this.color || this.label;\n }\n\n set value(value: string) {\n if (value === this._value) return;\n const oldValue = this.value;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n\n private _value?: string;\n\n public override get focusElement(): HTMLElement {\n return this;\n }\n\n public toggle(force?: boolean): void {\n this.selected = force ?? !this.selected;\n }\n\n private handleClick(): void {\n if (this.disabled || this.mixedValue) return;\n this.toggle();\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n cancelable: true,\n bubbles: true,\n })\n );\n if (!applyDefault) {\n this.toggle();\n }\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n event.preventDefault();\n this.addEventListener('keyup', this.handleKeyup);\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n private handleKeypress(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Enter':\n case 'NumpadEnter':\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n this.removeEventListener('keyup', this.handleKeyup);\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected renderDisabled = (): TemplateResult => {\n return html`\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"disabledIcon\"\n viewBox=\"0 0 20 20\"\n >\n <path\n d=\"M9.889,1a8.889,8.889,0,1,0,8.889,8.889A8.889,8.889,0,0,0,9.889,1Zm6.667,8.889a6.635,6.635,0,0,1-1.233,3.863l-9.3-9.3A6.667,6.667,0,0,1,16.556,9.889Zm-13.333,0A6.636,6.636,0,0,1,4.455,6.026l9.3,9.3A6.667,6.667,0,0,1,3.222,9.889Z\"\n stroke=\"none\"\n fill=\"var(--spectrum-swatch-disabled-icon-color)\"\n />\n <path\n d=\"M 9.888889312744141 1 C 4.979689598083496 1 1 4.979689598083496 1 9.888889312744141 C 1 14.7980899810791 4.979689598083496 18.77777862548828 9.888889312744141 18.77777862548828 C 14.7980899810791 18.77777862548828 18.77777862548828 14.7980899810791 18.77777862548828 9.888889312744141 C 18.77777862548828 4.979689598083496 14.7980899810791 1 9.888889312744141 1 M 15.32277870178223 13.75166893005371 L 6.02610969543457 4.454998970031738 C 8.059318542480469 3.009572982788086 10.72937774658203 2.820217132568359 12.9462194442749 3.964249610900879 C 15.16304969787598 5.10828971862793 16.55568885803223 7.394259452819824 16.5555591583252 9.888889312744141 C 16.55776977539062 11.27357959747314 16.126708984375 12.62425994873047 15.32277870178223 13.75166893005371 M 9.888258934020996 16.55648612976074 C 8.843273162841797 16.55648612976074 7.794573783874512 16.31111145019531 6.831318855285645 15.8139591217041 C 4.614439010620117 14.66977882385254 3.221879959106445 12.38361930847168 3.222219467163086 9.888889312744141 C 3.220088958740234 8.504219055175781 3.651140213012695 7.153559684753418 4.454998970031738 6.02610969543457 L 13.75166893005371 15.32333946228027 C 12.60186290740967 16.14075088500977 11.24825286865234 16.55648612976074 9.888258934020996 16.55648612976074 M 9.888889312744141 0 C 15.34163951873779 0 19.77777862548828 4.436139106750488 19.77777862548828 9.888889312744141 C 19.77777862548828 15.34163951873779 15.34163951873779 19.77777862548828 9.888889312744141 19.77777862548828 C 4.436139106750488 19.77777862548828 0 15.34163951873779 0 9.888889312744141 C 0 4.436139106750488 4.436139106750488 0 9.888889312744141 0 Z M 15.10232830047607 12.11699867248535 C 15.40205764770508 11.41858959197998 15.55679702758789 10.66494941711426 15.5555591583252 9.89048957824707 C 15.5556697845459 7.759209632873535 14.38009929656982 5.829549789428711 12.48761940002441 4.852889060974121 C 11.68764972686768 4.440059661865234 10.78924942016602 4.22184944152832 9.889529228210449 4.22184944152832 C 9.114802360534668 4.22184944152832 8.360831260681152 4.377038955688477 7.661839485168457 4.676509857177734 L 15.10232830047607 12.11699867248535 Z M 12.11597919464111 15.10181331634521 L 4.675475120544434 7.660861015319824 C 4.375750541687012 8.359296798706055 4.221027374267578 9.112875938415527 4.222219467163086 9.887349128723145 C 4.221929550170898 12.01874923706055 5.397418975830078 13.94855880737305 7.289958953857422 14.92533874511719 C 8.08997917175293 15.3382396697998 8.988459587097168 15.55648994445801 9.888258934020996 15.55648994445801 C 10.66298007965088 15.55648994445801 11.41698551177979 15.40128421783447 12.11597919464111 15.10181331634521 Z\"\n stroke=\"none\"\n fill=\"var(--spectrum-swatch-disabled-icon-stroke-color)\"\n />\n </svg>\n `;\n };\n\n protected renderMixedValue = (): TemplateResult => {\n return dashIcon[this.size]();\n };\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"fill\" style=\"--spectrum-picked-color: ${this.color}\">\n <slot name=\"image\"></slot>\n ${when(this.disabled, this.renderDisabled)}\n ${when(this.mixedValue, this.renderMixedValue)}\n </div>\n `;\n }\n\n protected override willUpdate(changes: PropertyValues): void {\n if (!this.getAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n if (changes.has('selected') || changes.has('role')) {\n const selectedAttribute =\n this.role === 'button' ? 'aria-pressed' : 'aria-checked';\n const removedSelectedAttribute =\n this.role === 'button' ? 'aria-checked' : 'aria-pressed';\n if (changes.has('role')) {\n this.removeAttribute(removedSelectedAttribute);\n }\n this.setAttribute(\n selectedAttribute,\n this.selected ? 'true' : 'false'\n );\n }\n if (changes.has('label')) {\n if (this.label) {\n this.setAttribute('aria-label', this.label);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeydown);\n this.addEventListener('keypress', this.handleKeypress);\n if (!this.hasAttribute('tabindex')) {\n this.setAttribute('tabindex', '0');\n }\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["html", "SizedMixin", "property", "when", "Focusable", "styles", "dashStyles", "dashIcon", "value", "oldValue", "force", "event", "code", "changes", "selectedAttribute", "removedSelectedAttribute", "__decorateClass"]
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SizedMixin,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { when } from '@spectrum-web-components/base/src/directives.js';\nimport { Focusable } from '@spectrum-web-components/shared/src/focusable.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash75.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash100.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash200.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-dash300.js';\n\nimport styles from './swatch.css.js';\nimport dashStyles from '@spectrum-web-components/icon/src/spectrum-icon-dash.css.js';\n\nexport type SwatchBorder = 'light' | 'none' | undefined;\nexport type SwatchRounding = 'none' | 'full' | undefined;\nexport type SwatchShape = 'rectangle' | undefined;\n\nconst dashIcon: Record<string, () => TemplateResult> = {\n xs: () => html`\n <sp-icon-dash75\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash75\"\n ></sp-icon-dash75>\n `,\n s: () => html`\n <sp-icon-dash100\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash100\"\n ></sp-icon-dash100>\n `,\n m: () => html`\n <sp-icon-dash200\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash200\"\n ></sp-icon-dash200>\n `,\n l: () => html`\n <sp-icon-dash300\n slot=\"icon\"\n class=\"mixedValueIcon spectrum-UIIcon-Dash300\"\n ></sp-icon-dash300>\n `,\n};\n\n/**\n * @element sp-swatch\n */\nexport class Swatch extends SizedMixin(Focusable, {\n validSizes: ['xs', 's', 'm', 'l'],\n}) {\n public static override get styles(): CSSResultArray {\n return [styles, dashStyles];\n }\n\n @property({ reflect: true })\n public border: SwatchBorder;\n\n @property()\n public color = '';\n\n @property()\n public label = '';\n\n @property({ type: Boolean, reflect: true, attribute: 'mixed-value' })\n public mixedValue = false;\n\n @property({ type: Boolean, reflect: true })\n public nothing = false;\n\n @property({ reflect: true })\n public role = 'button';\n\n @property({ reflect: true })\n public rounding: SwatchRounding;\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ reflect: true })\n public shape: SwatchShape;\n\n @property()\n get value(): string {\n return this._value || this.color || this.label;\n }\n\n set value(value: string) {\n if (value === this._value) return;\n const oldValue = this.value;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n\n private _value?: string;\n\n public override get focusElement(): HTMLElement {\n return this;\n }\n\n public toggle(force?: boolean): void {\n this.selected = force ?? !this.selected;\n }\n\n private handleClick(): void {\n if (this.disabled || this.mixedValue) return;\n this.toggle();\n const applyDefault = this.dispatchEvent(\n new Event('change', {\n cancelable: true,\n bubbles: true,\n })\n );\n if (!applyDefault) {\n this.toggle();\n }\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n event.preventDefault();\n this.addEventListener('keyup', this.handleKeyup);\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n private handleKeypress(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Enter':\n case 'NumpadEnter':\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n this.removeEventListener('keyup', this.handleKeyup);\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected renderDisabled = (): TemplateResult => {\n return html`\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"disabledIcon\"\n viewBox=\"0 0 20 20\"\n >\n <path\n d=\"M9.889,1a8.889,8.889,0,1,0,8.889,8.889A8.889,8.889,0,0,0,9.889,1Zm6.667,8.889a6.635,6.635,0,0,1-1.233,3.863l-9.3-9.3A6.667,6.667,0,0,1,16.556,9.889Zm-13.333,0A6.636,6.636,0,0,1,4.455,6.026l9.3,9.3A6.667,6.667,0,0,1,3.222,9.889Z\"\n stroke=\"none\"\n fill=\"var(--spectrum-swatch-disabled-icon-color)\"\n />\n <path\n d=\"M 9.888889312744141 1 C 4.979689598083496 1 1 4.979689598083496 1 9.888889312744141 C 1 14.7980899810791 4.979689598083496 18.77777862548828 9.888889312744141 18.77777862548828 C 14.7980899810791 18.77777862548828 18.77777862548828 14.7980899810791 18.77777862548828 9.888889312744141 C 18.77777862548828 4.979689598083496 14.7980899810791 1 9.888889312744141 1 M 15.32277870178223 13.75166893005371 L 6.02610969543457 4.454998970031738 C 8.059318542480469 3.009572982788086 10.72937774658203 2.820217132568359 12.9462194442749 3.964249610900879 C 15.16304969787598 5.10828971862793 16.55568885803223 7.394259452819824 16.5555591583252 9.888889312744141 C 16.55776977539062 11.27357959747314 16.126708984375 12.62425994873047 15.32277870178223 13.75166893005371 M 9.888258934020996 16.55648612976074 C 8.843273162841797 16.55648612976074 7.794573783874512 16.31111145019531 6.831318855285645 15.8139591217041 C 4.614439010620117 14.66977882385254 3.221879959106445 12.38361930847168 3.222219467163086 9.888889312744141 C 3.220088958740234 8.504219055175781 3.651140213012695 7.153559684753418 4.454998970031738 6.02610969543457 L 13.75166893005371 15.32333946228027 C 12.60186290740967 16.14075088500977 11.24825286865234 16.55648612976074 9.888258934020996 16.55648612976074 M 9.888889312744141 0 C 15.34163951873779 0 19.77777862548828 4.436139106750488 19.77777862548828 9.888889312744141 C 19.77777862548828 15.34163951873779 15.34163951873779 19.77777862548828 9.888889312744141 19.77777862548828 C 4.436139106750488 19.77777862548828 0 15.34163951873779 0 9.888889312744141 C 0 4.436139106750488 4.436139106750488 0 9.888889312744141 0 Z M 15.10232830047607 12.11699867248535 C 15.40205764770508 11.41858959197998 15.55679702758789 10.66494941711426 15.5555591583252 9.89048957824707 C 15.5556697845459 7.759209632873535 14.38009929656982 5.829549789428711 12.48761940002441 4.852889060974121 C 11.68764972686768 4.440059661865234 10.78924942016602 4.22184944152832 9.889529228210449 4.22184944152832 C 9.114802360534668 4.22184944152832 8.360831260681152 4.377038955688477 7.661839485168457 4.676509857177734 L 15.10232830047607 12.11699867248535 Z M 12.11597919464111 15.10181331634521 L 4.675475120544434 7.660861015319824 C 4.375750541687012 8.359296798706055 4.221027374267578 9.112875938415527 4.222219467163086 9.887349128723145 C 4.221929550170898 12.01874923706055 5.397418975830078 13.94855880737305 7.289958953857422 14.92533874511719 C 8.08997917175293 15.3382396697998 8.988459587097168 15.55648994445801 9.888258934020996 15.55648994445801 C 10.66298007965088 15.55648994445801 11.41698551177979 15.40128421783447 12.11597919464111 15.10181331634521 Z\"\n stroke=\"none\"\n fill=\"var(--spectrum-swatch-disabled-icon-stroke-color)\"\n />\n </svg>\n `;\n };\n\n protected renderMixedValue = (): TemplateResult => {\n return dashIcon[this.size]();\n };\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"fill\" style=\"--spectrum-picked-color: ${this.color}\">\n <slot name=\"image\"></slot>\n ${when(this.disabled, this.renderDisabled)}\n ${when(this.mixedValue, this.renderMixedValue)}\n </div>\n `;\n }\n\n protected override willUpdate(changes: PropertyValues): void {\n if (!this.getAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n if (changes.has('selected') || changes.has('role')) {\n const selectedAttribute =\n this.role === 'button' ? 'aria-pressed' : 'aria-checked';\n const removedSelectedAttribute =\n this.role === 'button' ? 'aria-checked' : 'aria-pressed';\n if (changes.has('role')) {\n this.removeAttribute(removedSelectedAttribute);\n }\n this.setAttribute(\n selectedAttribute,\n this.selected ? 'true' : 'false'\n );\n }\n if (changes.has('label')) {\n if (this.label !== this.color && this.label?.length) {\n this.setAttribute('aria-label', this.label);\n } else if (this.color !== '') {\n this.setAttribute('aria-label', this.color);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n if (changes.has('mixedValue')) {\n if (this.mixedValue) {\n this.setAttribute('aria-checked', 'mixed');\n }\n }\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeydown);\n this.addEventListener('keypress', this.handleKeypress);\n if (!this.hasAttribute('tabindex')) {\n this.setAttribute('tabindex', '0');\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["html", "SizedMixin", "property", "when", "Focusable", "styles", "dashStyles", "dashIcon", "value", "oldValue", "force", "event", "code", "changes", "_a", "selectedAttribute", "removedSelectedAttribute", "__decorateClass"]
7
7
  }
@@ -24,6 +24,11 @@ describe("Swatch", () => {
24
24
  it(`loads default swatch accessibly`, async () => {
25
25
  await expect(el).to.be.accessible();
26
26
  });
27
+ it("loads [mixed-value] swatch accessibly", async () => {
28
+ el.mixedValue = true;
29
+ await expect(el).to.be.accessible();
30
+ expect(el.getAttribute("aria-checked")).to.equal("mixed");
31
+ });
27
32
  it("loads [nothing] swatch accessibly", async () => {
28
33
  el.nothing = true;
29
34
  el.removeAttribute("color");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["swatch.test.ts"],
4
- "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { elementUpdated, expect, fixture, html } from '@open-wc/testing';\nimport { spy } from 'sinon';\nimport { sendKeys } from '@web/test-runner-commands';\n\nimport '../sp-swatch.js';\nimport { Swatch } from '../src/Swatch.js';\nimport { ElementSize } from '@spectrum-web-components/base';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\n\ndescribe('Swatch', () => {\n let el: Swatch;\n beforeEach(async () => {\n el = await fixture<Swatch>(\n html`\n <sp-swatch color=\"red\" label=\"Red\"></sp-swatch>\n `\n );\n\n await elementUpdated(el);\n });\n testForLitDevWarnings(\n async () =>\n await fixture<Swatch>(\n html`\n <sp-swatch color=\"red\" label=\"Red\"></sp-swatch>\n `\n )\n );\n it(`loads default swatch accessibly`, async () => {\n await expect(el).to.be.accessible();\n });\n it('loads [nothing] swatch accessibly', async () => {\n el.nothing = true;\n el.removeAttribute('color');\n el.label = 'Transparent';\n\n await expect(el).to.be.accessible();\n expect(el.getAttribute('aria-label')).to.equal('Transparent');\n });\n (['xs', 's', 'm', 'l'] as ElementSize[]).map((size) => {\n it(`loads [mixed-value] swatch accessibly as [size=${size}]`, async () => {\n el.mixedValue = true;\n el.removeAttribute('color');\n el.label = 'Mixed Value';\n el.size = size;\n\n await expect(el).to.be.accessible();\n expect(el.getAttribute('aria-label')).to.equal('Mixed Value');\n });\n });\n it('toggles on `click`', async () => {\n expect(el.selected).to.be.false;\n\n el.click();\n\n expect(el.selected).to.be.true;\n await expect(el).to.be.accessible();\n });\n it('toggles on `click` as [role=\"checkbox\"]', async () => {\n el.role = 'checkbox';\n await elementUpdated(el);\n\n expect(el.selected).to.be.false;\n await expect(el).to.be.accessible();\n\n el.click();\n\n expect(el.selected).to.be.true;\n await expect(el).to.be.accessible();\n });\n it('toggles on `Space`', async () => {\n expect(el.selected).to.be.false;\n\n el.focus();\n await sendKeys({\n press: 'Space',\n });\n\n expect(el.selected).to.be.true;\n });\n it('toggles on `Enter`', async () => {\n expect(el.selected).to.be.false;\n\n el.focus();\n await sendKeys({\n press: 'Enter',\n });\n\n expect(el.selected).to.be.true;\n\n await sendKeys({\n press: 'NumpadEnter',\n });\n\n expect(el.selected).to.be.false;\n });\n it('dispatches `change`', async () => {\n const changeSpy = spy();\n\n el.addEventListener('change', () => changeSpy());\n\n el.click();\n\n expect(changeSpy.calledOnce).to.be.true;\n });\n it('does not dispatch `change` when [disabled]', async () => {\n const changeSpy = spy();\n\n el.addEventListener('change', () => changeSpy());\n el.disabled = true;\n await elementUpdated(el);\n\n el.click();\n\n expect(changeSpy.calledOnce).to.be.false;\n });\n it('does not dispatch `change` when [mixed-value]', async () => {\n const changeSpy = spy();\n\n el.addEventListener('change', () => changeSpy());\n el.mixedValue = true;\n await elementUpdated(el);\n\n el.click();\n\n expect(changeSpy.calledOnce).to.be.false;\n });\n it('can have `change` prevented', async () => {\n el.addEventListener('change', (event: Event) => {\n event.preventDefault();\n });\n\n expect(el.selected).to.false;\n\n el.click();\n\n expect(el.selected).to.false;\n });\n it('is in the tab order', async () => {\n const inputBefore = document.createElement('input');\n const inputAfter = document.createElement('input');\n el.insertAdjacentElement('beforebegin', inputBefore);\n el.insertAdjacentElement('afterend', inputAfter);\n inputBefore.focus();\n expect(document.activeElement === el).to.be.false;\n await sendKeys({\n press: 'Tab',\n });\n expect(document.activeElement === el).to.be.true;\n await sendKeys({\n press: 'Tab',\n });\n expect(document.activeElement === el).to.be.false;\n await sendKeys({\n press: 'Shift+Tab',\n });\n expect(document.activeElement === el).to.be.true;\n });\n it('is not in the tab order when [disabled]', async () => {\n const inputBefore = document.createElement('input');\n const inputAfter = document.createElement('input');\n el.insertAdjacentElement('beforebegin', inputBefore);\n el.insertAdjacentElement('afterend', inputAfter);\n inputBefore.focus();\n el.disabled = true;\n await elementUpdated(el);\n\n expect(document.activeElement === el).to.be.false;\n await sendKeys({\n press: 'Tab',\n });\n expect(document.activeElement === el).to.be.false;\n await sendKeys({\n press: 'Shift+Tab',\n });\n expect(document.activeElement === el).to.be.false;\n });\n});\n"],
5
- "mappings": ";AAWA,SAAS,gBAAgB,QAAQ,SAAS,YAAY;AACtD,SAAS,WAAW;AACpB,SAAS,gBAAgB;AAEzB,OAAO;AAGP,SAAS,6BAA6B;AAEtC,SAAS,UAAU,MAAM;AACrB,MAAI;AACJ,aAAW,YAAY;AACnB,SAAK,MAAM;AAAA,MACP;AAAA;AAAA;AAAA,IAGJ;AAEA,UAAM,eAAe,EAAE;AAAA,EAC3B,CAAC;AACD;AAAA,IACI,YACI,MAAM;AAAA,MACF;AAAA;AAAA;AAAA,IAGJ;AAAA,EACR;AACA,KAAG,mCAAmC,YAAY;AAC9C,UAAM,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW;AAAA,EACtC,CAAC;AACD,KAAG,qCAAqC,YAAY;AAChD,OAAG,UAAU;AACb,OAAG,gBAAgB,OAAO;AAC1B,OAAG,QAAQ;AAEX,UAAM,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW;AAClC,WAAO,GAAG,aAAa,YAAY,CAAC,EAAE,GAAG,MAAM,aAAa;AAAA,EAChE,CAAC;AACD,EAAC,CAAC,MAAM,KAAK,KAAK,GAAG,EAAoB,IAAI,CAAC,SAAS;AACnD,OAAG,kDAAkD,SAAS,YAAY;AACtE,SAAG,aAAa;AAChB,SAAG,gBAAgB,OAAO;AAC1B,SAAG,QAAQ;AACX,SAAG,OAAO;AAEV,YAAM,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW;AAClC,aAAO,GAAG,aAAa,YAAY,CAAC,EAAE,GAAG,MAAM,aAAa;AAAA,IAChE,CAAC;AAAA,EACL,CAAC;AACD,KAAG,sBAAsB,YAAY;AACjC,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAE1B,OAAG,MAAM;AAET,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAC1B,UAAM,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW;AAAA,EACtC,CAAC;AACD,KAAG,2CAA2C,YAAY;AACtD,OAAG,OAAO;AACV,UAAM,eAAe,EAAE;AAEvB,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAC1B,UAAM,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW;AAElC,OAAG,MAAM;AAET,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAC1B,UAAM,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW;AAAA,EACtC,CAAC;AACD,KAAG,sBAAsB,YAAY;AACjC,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAE1B,OAAG,MAAM;AACT,UAAM,SAAS;AAAA,MACX,OAAO;AAAA,IACX,CAAC;AAED,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAAA,EAC9B,CAAC;AACD,KAAG,sBAAsB,YAAY;AACjC,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAE1B,OAAG,MAAM;AACT,UAAM,SAAS;AAAA,MACX,OAAO;AAAA,IACX,CAAC;AAED,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAE1B,UAAM,SAAS;AAAA,MACX,OAAO;AAAA,IACX,CAAC;AAED,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAAA,EAC9B,CAAC;AACD,KAAG,uBAAuB,YAAY;AAClC,UAAM,YAAY,IAAI;AAEtB,OAAG,iBAAiB,UAAU,MAAM,UAAU,CAAC;AAE/C,OAAG,MAAM;AAET,WAAO,UAAU,UAAU,EAAE,GAAG,GAAG;AAAA,EACvC,CAAC;AACD,KAAG,8CAA8C,YAAY;AACzD,UAAM,YAAY,IAAI;AAEtB,OAAG,iBAAiB,UAAU,MAAM,UAAU,CAAC;AAC/C,OAAG,WAAW;AACd,UAAM,eAAe,EAAE;AAEvB,OAAG,MAAM;AAET,WAAO,UAAU,UAAU,EAAE,GAAG,GAAG;AAAA,EACvC,CAAC;AACD,KAAG,iDAAiD,YAAY;AAC5D,UAAM,YAAY,IAAI;AAEtB,OAAG,iBAAiB,UAAU,MAAM,UAAU,CAAC;AAC/C,OAAG,aAAa;AAChB,UAAM,eAAe,EAAE;AAEvB,OAAG,MAAM;AAET,WAAO,UAAU,UAAU,EAAE,GAAG,GAAG;AAAA,EACvC,CAAC;AACD,KAAG,+BAA+B,YAAY;AAC1C,OAAG,iBAAiB,UAAU,CAAC,UAAiB;AAC5C,YAAM,eAAe;AAAA,IACzB,CAAC;AAED,WAAO,GAAG,QAAQ,EAAE,GAAG;AAEvB,OAAG,MAAM;AAET,WAAO,GAAG,QAAQ,EAAE,GAAG;AAAA,EAC3B,CAAC;AACD,KAAG,uBAAuB,YAAY;AAClC,UAAM,cAAc,SAAS,cAAc,OAAO;AAClD,UAAM,aAAa,SAAS,cAAc,OAAO;AACjD,OAAG,sBAAsB,eAAe,WAAW;AACnD,OAAG,sBAAsB,YAAY,UAAU;AAC/C,gBAAY,MAAM;AAClB,WAAO,SAAS,kBAAkB,EAAE,EAAE,GAAG,GAAG;AAC5C,UAAM,SAAS;AAAA,MACX,OAAO;AAAA,IACX,CAAC;AACD,WAAO,SAAS,kBAAkB,EAAE,EAAE,GAAG,GAAG;AAC5C,UAAM,SAAS;AAAA,MACX,OAAO;AAAA,IACX,CAAC;AACD,WAAO,SAAS,kBAAkB,EAAE,EAAE,GAAG,GAAG;AAC5C,UAAM,SAAS;AAAA,MACX,OAAO;AAAA,IACX,CAAC;AACD,WAAO,SAAS,kBAAkB,EAAE,EAAE,GAAG,GAAG;AAAA,EAChD,CAAC;AACD,KAAG,2CAA2C,YAAY;AACtD,UAAM,cAAc,SAAS,cAAc,OAAO;AAClD,UAAM,aAAa,SAAS,cAAc,OAAO;AACjD,OAAG,sBAAsB,eAAe,WAAW;AACnD,OAAG,sBAAsB,YAAY,UAAU;AAC/C,gBAAY,MAAM;AAClB,OAAG,WAAW;AACd,UAAM,eAAe,EAAE;AAEvB,WAAO,SAAS,kBAAkB,EAAE,EAAE,GAAG,GAAG;AAC5C,UAAM,SAAS;AAAA,MACX,OAAO;AAAA,IACX,CAAC;AACD,WAAO,SAAS,kBAAkB,EAAE,EAAE,GAAG,GAAG;AAC5C,UAAM,SAAS;AAAA,MACX,OAAO;AAAA,IACX,CAAC;AACD,WAAO,SAAS,kBAAkB,EAAE,EAAE,GAAG,GAAG;AAAA,EAChD,CAAC;AACL,CAAC;",
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { elementUpdated, expect, fixture, html } from '@open-wc/testing';\nimport { spy } from 'sinon';\nimport { sendKeys } from '@web/test-runner-commands';\n\nimport '../sp-swatch.js';\nimport { Swatch } from '../src/Swatch.js';\nimport { ElementSize } from '@spectrum-web-components/base';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\n\ndescribe('Swatch', () => {\n let el: Swatch;\n beforeEach(async () => {\n el = await fixture<Swatch>(\n html`\n <sp-swatch color=\"red\" label=\"Red\"></sp-swatch>\n `\n );\n\n await elementUpdated(el);\n });\n testForLitDevWarnings(\n async () =>\n await fixture<Swatch>(\n html`\n <sp-swatch color=\"red\" label=\"Red\"></sp-swatch>\n `\n )\n );\n it(`loads default swatch accessibly`, async () => {\n await expect(el).to.be.accessible();\n });\n it('loads [mixed-value] swatch accessibly', async () => {\n el.mixedValue = true;\n await expect(el).to.be.accessible();\n expect(el.getAttribute('aria-checked')).to.equal('mixed');\n });\n it('loads [nothing] swatch accessibly', async () => {\n el.nothing = true;\n el.removeAttribute('color');\n el.label = 'Transparent';\n\n await expect(el).to.be.accessible();\n expect(el.getAttribute('aria-label')).to.equal('Transparent');\n });\n (['xs', 's', 'm', 'l'] as ElementSize[]).map((size) => {\n it(`loads [mixed-value] swatch accessibly as [size=${size}]`, async () => {\n el.mixedValue = true;\n el.removeAttribute('color');\n el.label = 'Mixed Value';\n el.size = size;\n\n await expect(el).to.be.accessible();\n expect(el.getAttribute('aria-label')).to.equal('Mixed Value');\n });\n });\n it('toggles on `click`', async () => {\n expect(el.selected).to.be.false;\n\n el.click();\n\n expect(el.selected).to.be.true;\n await expect(el).to.be.accessible();\n });\n it('toggles on `click` as [role=\"checkbox\"]', async () => {\n el.role = 'checkbox';\n await elementUpdated(el);\n\n expect(el.selected).to.be.false;\n await expect(el).to.be.accessible();\n\n el.click();\n\n expect(el.selected).to.be.true;\n await expect(el).to.be.accessible();\n });\n it('toggles on `Space`', async () => {\n expect(el.selected).to.be.false;\n\n el.focus();\n await sendKeys({\n press: 'Space',\n });\n\n expect(el.selected).to.be.true;\n });\n it('toggles on `Enter`', async () => {\n expect(el.selected).to.be.false;\n\n el.focus();\n await sendKeys({\n press: 'Enter',\n });\n\n expect(el.selected).to.be.true;\n\n await sendKeys({\n press: 'NumpadEnter',\n });\n\n expect(el.selected).to.be.false;\n });\n it('dispatches `change`', async () => {\n const changeSpy = spy();\n\n el.addEventListener('change', () => changeSpy());\n\n el.click();\n\n expect(changeSpy.calledOnce).to.be.true;\n });\n it('does not dispatch `change` when [disabled]', async () => {\n const changeSpy = spy();\n\n el.addEventListener('change', () => changeSpy());\n el.disabled = true;\n await elementUpdated(el);\n\n el.click();\n\n expect(changeSpy.calledOnce).to.be.false;\n });\n it('does not dispatch `change` when [mixed-value]', async () => {\n const changeSpy = spy();\n\n el.addEventListener('change', () => changeSpy());\n el.mixedValue = true;\n await elementUpdated(el);\n\n el.click();\n\n expect(changeSpy.calledOnce).to.be.false;\n });\n it('can have `change` prevented', async () => {\n el.addEventListener('change', (event: Event) => {\n event.preventDefault();\n });\n\n expect(el.selected).to.false;\n\n el.click();\n\n expect(el.selected).to.false;\n });\n it('is in the tab order', async () => {\n const inputBefore = document.createElement('input');\n const inputAfter = document.createElement('input');\n el.insertAdjacentElement('beforebegin', inputBefore);\n el.insertAdjacentElement('afterend', inputAfter);\n inputBefore.focus();\n expect(document.activeElement === el).to.be.false;\n await sendKeys({\n press: 'Tab',\n });\n expect(document.activeElement === el).to.be.true;\n await sendKeys({\n press: 'Tab',\n });\n expect(document.activeElement === el).to.be.false;\n await sendKeys({\n press: 'Shift+Tab',\n });\n expect(document.activeElement === el).to.be.true;\n });\n it('is not in the tab order when [disabled]', async () => {\n const inputBefore = document.createElement('input');\n const inputAfter = document.createElement('input');\n el.insertAdjacentElement('beforebegin', inputBefore);\n el.insertAdjacentElement('afterend', inputAfter);\n inputBefore.focus();\n el.disabled = true;\n await elementUpdated(el);\n\n expect(document.activeElement === el).to.be.false;\n await sendKeys({\n press: 'Tab',\n });\n expect(document.activeElement === el).to.be.false;\n await sendKeys({\n press: 'Shift+Tab',\n });\n expect(document.activeElement === el).to.be.false;\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }