@spectrum-web-components/iconset 1.9.1-nightly.20251028225812 → 1.9.1-nightly.20251029132910

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.
@@ -1,281 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __decorateClass = (decorators, target, key, kind) => {
5
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
6
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
- if (decorator = decorators[i])
8
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9
- if (kind && result) __defProp(target, key, result);
10
- return result;
11
- };
12
- import {
13
- css,
14
- html,
15
- SpectrumElement
16
- } from "@spectrum-web-components/base";
17
- import {
18
- customElement,
19
- property,
20
- state
21
- } from "@spectrum-web-components/base/src/decorators.js";
22
- import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
23
- import "@spectrum-web-components/search/sp-search.js";
24
- import "@spectrum-web-components/field-label/sp-field-label.js";
25
- import bodyStyles from "@spectrum-web-components/styles/body.js";
26
- import "@spectrum-web-components/icon/sp-icon.js";
27
- import "@spectrum-web-components/help-text/sp-help-text.js";
28
- import iconsList from "./iconsList.json";
29
- import {
30
- SystemResolutionController,
31
- systemResolverUpdatedSymbol
32
- } from "@spectrum-web-components/reactive-controllers/src/SystemContextResolution.js";
33
- export let DelayedReady = class extends SpectrumElement {
34
- render() {
35
- return html`
36
- <slot @slotchange=${this.handleSlotchange}></slot>
37
- `;
38
- }
39
- firstUpdated() {
40
- this._delayedReady = new Promise(
41
- (res) => this._resolveDelayedReady = res
42
- );
43
- }
44
- async getUpdateComplete() {
45
- const complete = await super.getUpdateComplete();
46
- await this._delayedReady;
47
- return complete;
48
- }
49
- handleSlotchange({
50
- target
51
- }) {
52
- if (target.assignedElements({ flatten: true }).length) {
53
- requestAnimationFrame(() => {
54
- this._resolveDelayedReady();
55
- });
56
- }
57
- }
58
- };
59
- DelayedReady = __decorateClass([
60
- customElement("delayed-ready")
61
- ], DelayedReady);
62
- export let IconsDemo = class extends SpectrumElement {
63
- constructor() {
64
- super();
65
- this.name = "ui";
66
- this.package = "";
67
- this.size = "m";
68
- this.search = "";
69
- this.icons = [];
70
- this.filteredIcons = [];
71
- this.unsubscribeSystemContext = null;
72
- this.spectrumVersion = 1;
73
- this.iconset = [];
74
- this.systemResolver = new SystemResolutionController(this);
75
- this.iconset = [];
76
- this.handleIconSetAdded = this.handleIconSetAdded.bind(this);
77
- }
78
- async connectedCallback() {
79
- super.connectedCallback();
80
- window.addEventListener("sp-iconset-added", this.handleIconSetAdded);
81
- }
82
- disconnectedCallback() {
83
- window.removeEventListener("sp-iconset-added", this.handleIconSetAdded);
84
- super.disconnectedCallback();
85
- if (this.unsubscribeSystemContext) {
86
- this.unsubscribeSystemContext();
87
- this.unsubscribeSystemContext = null;
88
- }
89
- }
90
- filterIconsBySpectrumVersion() {
91
- const iconVersion = this.spectrumVersion === 2 ? "s2" : "s1";
92
- let filteredIcons = this.icons;
93
- if (this.name === "workflow") {
94
- filteredIcons = filteredIcons.filter((icon) => {
95
- const iconName = icon.name.replace(/\s/g, "").toLowerCase();
96
- return iconsList[iconVersion].includes(iconName);
97
- });
98
- }
99
- const iconSet = /* @__PURE__ */ new Set();
100
- filteredIcons = filteredIcons.filter((icon) => {
101
- if (iconSet.has(icon.name)) {
102
- return false;
103
- }
104
- iconSet.add(icon.name);
105
- return true;
106
- });
107
- this.filteredIcons = filteredIcons;
108
- }
109
- update(changes) {
110
- if (changes.has(systemResolverUpdatedSymbol)) {
111
- this.spectrumVersion = this.systemResolver.system === "spectrum-two" ? 2 : 1;
112
- this.filterIconsBySpectrumVersion();
113
- }
114
- if (changes.has("icons")) {
115
- this.filterIconsBySpectrumVersion();
116
- }
117
- super.update(changes);
118
- }
119
- handleIconSetAdded(event) {
120
- const { iconset } = event.detail;
121
- this.iconset = iconset.getIconList();
122
- this.requestUpdate();
123
- }
124
- static get styles() {
125
- return [
126
- ...bodyStyles,
127
- css`
128
- :host {
129
- display: grid;
130
- grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
131
- gap: 20px;
132
- align-items: flex-start;
133
- }
134
- .icon {
135
- display: flex;
136
- flex-direction: column;
137
- align-items: center;
138
- text-align: center;
139
- border-radius: var(
140
- --spectrum-alias-focus-ring-gap,
141
- var(--spectrum-spacing-50)
142
- );
143
- }
144
- :host([package]) .icon {
145
- cursor: pointer;
146
- }
147
- sp-icon {
148
- margin-bottom: 10px;
149
- }
150
- .search {
151
- grid-column-start: 1;
152
- grid-column-end: -1;
153
- }
154
- .icon[tabindex]:focus {
155
- outline: none;
156
- }
157
- .icon[tabindex]:focus-visible {
158
- outline: var(--spectrum-alias-focus-ring-size) solid
159
- var(--spectrum-alias-focus-ring-color);
160
- outline-offset: calc(
161
- var(
162
- --spectrum-alias-focus-ring-gap,
163
- var(--spectrum-spacing-50)
164
- ) *
165
- 2
166
- );
167
- }
168
- `
169
- ];
170
- }
171
- handleKeydown(event, tag) {
172
- const { code } = event;
173
- if (code !== "Enter" && code !== "NumpadEnter" && code !== "Space") {
174
- return;
175
- }
176
- event.preventDefault();
177
- this.shouldCopy(tag);
178
- }
179
- shouldCopy(tag) {
180
- if (!this.package) return;
181
- const conditionedTag = tag.slice(1, tag.length - 1);
182
- const importURL = `import '@spectrum-web-components/${this.package}/icons/${conditionedTag}.js';`;
183
- this.dispatchEvent(
184
- new CustomEvent("copy-text", {
185
- bubbles: true,
186
- composed: true,
187
- detail: {
188
- message: "Import statement copied to clipboard!",
189
- text: importURL
190
- }
191
- })
192
- );
193
- }
194
- updateSearch(event) {
195
- event.stopPropagation();
196
- this.search = event.target.value;
197
- }
198
- submit(event) {
199
- event.stopPropagation();
200
- this.updateSearch(event);
201
- }
202
- renderSearch() {
203
- const matchingIcons = this.search ? this.filteredIcons.filter(
204
- (icon) => icon.name.toLowerCase().includes(this.search.toLowerCase())
205
- ) : this.filteredIcons;
206
- return html`
207
- <div class="search" part="search">
208
- <sp-field-label for="search">Spectrum icons:</sp-field-label>
209
- <sp-search
210
- id="search"
211
- @keydown=${this.updateSearch}
212
- @input=${this.updateSearch}
213
- @submit=${this.submit}
214
- .value=${this.search}
215
- label="Search for icons"
216
- autocomplete="off"
217
- >
218
- <sp-help-text slot="help-text">
219
- Showing ${matchingIcons.length} of
220
- ${this.filteredIcons.length} available icons.
221
- </sp-help-text>
222
- </sp-search>
223
- </div>
224
- ${matchingIcons.map((icon) => {
225
- return html`
226
- <bdo
227
- class="icon"
228
- part="icon"
229
- dir="ltr"
230
- class="icon"
231
- @click=${() => this.shouldCopy(icon.tag)}
232
- @keydown=${(event) => this.handleKeydown(event, icon.tag)}
233
- tabindex=${ifDefined(this.package ? "0" : void 0)}
234
- >
235
- ${icon.story(this.size)} ${icon.tag}
236
- </bdo>
237
- `;
238
- })}
239
- `;
240
- }
241
- render() {
242
- return html`
243
- ${this.filteredIcons.length ? this.renderSearch() : html`
244
- <slot></slot>
245
- `}
246
- ${this.iconset.map(
247
- (icon) => html`
248
- <bdo class="icon" dir="ltr">
249
- <sp-icon
250
- size="xl"
251
- name=${`${this.name}:${icon}`}
252
- ></sp-icon>
253
- ${icon}
254
- </bdo>
255
- `
256
- )}
257
- `;
258
- }
259
- };
260
- __decorateClass([
261
- property()
262
- ], IconsDemo.prototype, "name", 2);
263
- __decorateClass([
264
- property()
265
- ], IconsDemo.prototype, "package", 2);
266
- __decorateClass([
267
- property()
268
- ], IconsDemo.prototype, "size", 2);
269
- __decorateClass([
270
- property()
271
- ], IconsDemo.prototype, "search", 2);
272
- __decorateClass([
273
- property({ attribute: false })
274
- ], IconsDemo.prototype, "icons", 2);
275
- __decorateClass([
276
- state()
277
- ], IconsDemo.prototype, "spectrumVersion", 2);
278
- IconsDemo = __decorateClass([
279
- customElement("icons-demo")
280
- ], IconsDemo);
281
- //# sourceMappingURL=icons-demo.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["icons-demo.ts"],
4
- "sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { IconsetAddedDetail } from '@spectrum-web-components/iconset';\nimport {\n css,\n CSSResultGroup,\n html,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n customElement,\n property,\n state,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\nimport { Search } from '@spectrum-web-components/search';\nimport '@spectrum-web-components/search/sp-search.js';\nimport '@spectrum-web-components/field-label/sp-field-label.js';\nimport bodyStyles from '@spectrum-web-components/styles/body.js';\nimport '@spectrum-web-components/icon/sp-icon.js';\nimport '@spectrum-web-components/help-text/sp-help-text.js';\n\nimport iconsList from './iconsList.json' with { type: 'json' };\n\nimport {\n SystemResolutionController,\n systemResolverUpdatedSymbol,\n} from '@spectrum-web-components/reactive-controllers/src/SystemContextResolution.js';\n\n@customElement('delayed-ready')\nexport class DelayedReady extends SpectrumElement {\n _delayedReady!: Promise<void>;\n _resolveDelayedReady!: () => void;\n\n protected override render(): TemplateResult {\n return html`\n <slot @slotchange=${this.handleSlotchange}></slot>\n `;\n }\n\n protected override firstUpdated(): void {\n this._delayedReady = new Promise(\n (res) => (this._resolveDelayedReady = res)\n );\n }\n\n protected override async getUpdateComplete(): Promise<boolean> {\n const complete = (await super.getUpdateComplete()) as boolean;\n await this._delayedReady;\n return complete;\n }\n\n public handleSlotchange({\n target,\n }: Event & { target: HTMLSlotElement }): void {\n if (target.assignedElements({ flatten: true }).length) {\n requestAnimationFrame(() => {\n this._resolveDelayedReady();\n });\n }\n }\n}\n\n@customElement('icons-demo')\nexport class IconsDemo extends SpectrumElement {\n @property()\n public name = 'ui';\n\n @property()\n public package = '';\n\n @property()\n public size = 'm';\n\n @property()\n public search = '';\n\n @property({ attribute: false })\n public icons: {\n name: string;\n story(size: string): TemplateResult;\n tag: string;\n }[] = [];\n\n private filteredIcons: {\n name: string;\n story(size: string): TemplateResult;\n tag: string;\n }[] = [];\n\n private unsubscribeSystemContext: (() => void) | null = null;\n\n @state()\n public spectrumVersion = 1;\n\n private iconset: string[] = [];\n public constructor() {\n super();\n this.iconset = [];\n this.handleIconSetAdded = this.handleIconSetAdded.bind(this);\n }\n\n public override async connectedCallback(): Promise<void> {\n super.connectedCallback();\n window.addEventListener('sp-iconset-added', this.handleIconSetAdded);\n }\n public override disconnectedCallback(): void {\n window.removeEventListener('sp-iconset-added', this.handleIconSetAdded);\n super.disconnectedCallback();\n if (this.unsubscribeSystemContext) {\n this.unsubscribeSystemContext();\n this.unsubscribeSystemContext = null;\n }\n }\n\n private filterIconsBySpectrumVersion(): void {\n const iconVersion = this.spectrumVersion === 2 ? 's2' : 's1';\n let filteredIcons = this.icons;\n // Filter out icons that are not in the current version for workflow icons\n if (this.name === 'workflow') {\n filteredIcons = filteredIcons.filter((icon) => {\n const iconName = icon.name.replace(/\\s/g, '').toLowerCase();\n return iconsList[iconVersion].includes(iconName);\n });\n }\n\n // Use a Set to remove duplicates that may get added because of the same icon name in both versions\n const iconSet = new Set();\n filteredIcons = filteredIcons.filter((icon) => {\n if (iconSet.has(icon.name)) {\n return false;\n }\n iconSet.add(icon.name);\n return true;\n });\n\n this.filteredIcons = filteredIcons;\n }\n\n private systemResolver = new SystemResolutionController(this);\n\n protected override update(changes: PropertyValues): void {\n if (changes.has(systemResolverUpdatedSymbol)) {\n this.spectrumVersion =\n this.systemResolver.system === 'spectrum-two' ? 2 : 1;\n this.filterIconsBySpectrumVersion();\n }\n\n if (changes.has('icons')) {\n this.filterIconsBySpectrumVersion();\n }\n\n super.update(changes);\n }\n\n public handleIconSetAdded(event: CustomEvent<IconsetAddedDetail>): void {\n const { iconset } = event.detail;\n this.iconset = iconset.getIconList();\n this.requestUpdate();\n }\n public static override get styles(): CSSResultGroup {\n return [\n ...bodyStyles,\n css`\n :host {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: 20px;\n align-items: flex-start;\n }\n .icon {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n border-radius: var(\n --spectrum-alias-focus-ring-gap,\n var(--spectrum-spacing-50)\n );\n }\n :host([package]) .icon {\n cursor: pointer;\n }\n sp-icon {\n margin-bottom: 10px;\n }\n .search {\n grid-column-start: 1;\n grid-column-end: -1;\n }\n .icon[tabindex]:focus {\n outline: none;\n }\n .icon[tabindex]:focus-visible {\n outline: var(--spectrum-alias-focus-ring-size) solid\n var(--spectrum-alias-focus-ring-color);\n outline-offset: calc(\n var(\n --spectrum-alias-focus-ring-gap,\n var(--spectrum-spacing-50)\n ) *\n 2\n );\n }\n `,\n ];\n }\n private handleKeydown(event: KeyboardEvent, tag: string): void {\n const { code } = event;\n if (code !== 'Enter' && code !== 'NumpadEnter' && code !== 'Space') {\n return;\n }\n event.preventDefault();\n this.shouldCopy(tag);\n }\n\n private shouldCopy(tag: string): void {\n if (!this.package) return;\n const conditionedTag = tag.slice(1, tag.length - 1);\n const importURL = `import '@spectrum-web-components/${this.package}/icons/${conditionedTag}.js';`;\n this.dispatchEvent(\n new CustomEvent('copy-text', {\n bubbles: true,\n composed: true,\n detail: {\n message: 'Import statement copied to clipboard!',\n text: importURL,\n },\n })\n );\n }\n private updateSearch(event: Event & { target: Search }): void {\n event.stopPropagation();\n this.search = event.target.value;\n }\n private submit(event: Event & { target: Search }): void {\n event.stopPropagation();\n this.updateSearch(event);\n }\n private renderSearch(): TemplateResult {\n const matchingIcons = this.search\n ? this.filteredIcons.filter((icon) =>\n icon.name.toLowerCase().includes(this.search.toLowerCase())\n )\n : this.filteredIcons;\n\n return html`\n <div class=\"search\" part=\"search\">\n <sp-field-label for=\"search\">Spectrum icons:</sp-field-label>\n <sp-search\n id=\"search\"\n @keydown=${this.updateSearch}\n @input=${this.updateSearch}\n @submit=${this.submit}\n .value=${this.search}\n label=\"Search for icons\"\n autocomplete=\"off\"\n >\n <sp-help-text slot=\"help-text\">\n Showing ${matchingIcons.length} of\n ${this.filteredIcons.length} available icons.\n </sp-help-text>\n </sp-search>\n </div>\n ${matchingIcons.map((icon) => {\n return html`\n <bdo\n class=\"icon\"\n part=\"icon\"\n dir=\"ltr\"\n class=\"icon\"\n @click=${() => this.shouldCopy(icon.tag)}\n @keydown=${(event: KeyboardEvent) =>\n this.handleKeydown(event, icon.tag)}\n tabindex=${ifDefined(this.package ? '0' : undefined)}\n >\n ${icon.story(this.size)} ${icon.tag}\n </bdo>\n `;\n })}\n `;\n }\n protected override render(): TemplateResult {\n return html`\n ${this.filteredIcons.length\n ? this.renderSearch()\n : html`\n <slot></slot>\n `}\n ${this.iconset.map(\n (icon) => html`\n <bdo class=\"icon\" dir=\"ltr\">\n <sp-icon\n size=\"xl\"\n name=${`${this.name}:${icon}`}\n ></sp-icon>\n ${icon}\n </bdo>\n `\n )}\n `;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,101 +0,0 @@
1
- "use strict";
2
- import { waitForPredicate } from "../../../test/testing-helpers.js";
3
- import "@spectrum-web-components/icons/sp-icons-medium.js";
4
- import "@spectrum-web-components/icon/sp-icon.js";
5
- import { IconsetRegistry } from "@spectrum-web-components/iconset/src/iconset-registry.js";
6
- import { elementUpdated, expect, fixture, html } from "@open-wc/testing";
7
- import { stub } from "sinon";
8
- describe("Iconset", () => {
9
- after(() => {
10
- const sets = [...document.querySelectorAll("sp-icons-medium")];
11
- sets.map((set) => set.remove());
12
- });
13
- it("warns in Dev Mode of deprecation", async () => {
14
- const consoleWarnStub = stub(console, "warn");
15
- const el = document.createElement("sp-icons-medium");
16
- document.body.append(el);
17
- await elementUpdated(el);
18
- expect(consoleWarnStub.called).to.be.true;
19
- const spyCall = consoleWarnStub.getCall(0);
20
- expect(
21
- spyCall.args.at(0).includes("deprecated"),
22
- "confirm deprecation message"
23
- ).to.be.true;
24
- expect(spyCall.args.at(-1), "confirm `data` shape").to.deep.equal({
25
- data: {
26
- localName: "sp-icons-medium",
27
- type: "api",
28
- level: "deprecation"
29
- }
30
- });
31
- consoleWarnStub.restore();
32
- });
33
- it("will re-register with new name", async () => {
34
- const icons = document.createElement("sp-icons-medium");
35
- document.body.append(icons);
36
- icons.name = "first-name";
37
- const registry = IconsetRegistry.getInstance();
38
- expect(registry.getIconset("first-name")).to.not.be.undefined;
39
- expect(registry.getIconset("")).to.be.undefined;
40
- expect(registry.getIconset("second-name")).to.be.undefined;
41
- expect(registry.getIconset("ui")).to.be.undefined;
42
- icons.name = "";
43
- expect(registry.getIconset("first-name")).to.be.undefined;
44
- expect(registry.getIconset("")).to.be.undefined;
45
- expect(registry.getIconset("second-name")).to.be.undefined;
46
- expect(registry.getIconset("ui")).to.be.undefined;
47
- icons.name = "second-name";
48
- expect(registry.getIconset("first-name")).to.be.undefined;
49
- expect(registry.getIconset("")).to.be.undefined;
50
- expect(registry.getIconset("second-name")).to.not.be.undefined;
51
- expect(registry.getIconset("ui")).to.be.undefined;
52
- });
53
- it("will not re-register on (dis)connect without a name", async () => {
54
- const icons = document.createElement("sp-icons-medium");
55
- document.body.append(icons);
56
- const registry = IconsetRegistry.getInstance();
57
- expect(registry.getIconset("ui")).to.not.be.undefined;
58
- icons.name = "";
59
- expect(registry.getIconset("ui")).to.be.undefined;
60
- icons.remove();
61
- document.body.append(icons);
62
- expect(registry.getIconset("ui")).to.be.undefined;
63
- });
64
- it("renders after adding and removing a second iconset of same name", async () => {
65
- const icons = document.createElement("sp-icons-medium");
66
- document.body.append(icons);
67
- const icons2 = document.createElement("sp-icons-medium");
68
- document.body.append(icons2);
69
- icons2.remove();
70
- window.dispatchEvent(
71
- new CustomEvent("sp-iconset-removed", {
72
- detail: { name: "Other Set" }
73
- })
74
- );
75
- const el = await fixture(html`
76
- <sp-icon name="ui:Chevron200"></sp-icon>
77
- `);
78
- let svg = el.shadowRoot ? el.shadowRoot.querySelector('[role="img"]') : null;
79
- function getSVG() {
80
- svg = el.shadowRoot ? el.shadowRoot.querySelector('[role="img"]') : null;
81
- return svg !== null;
82
- }
83
- await waitForPredicate(getSVG);
84
- expect(svg).to.not.be.null;
85
- });
86
- it("can be after `<sp-icon/>` in the DOM order", async () => {
87
- const el = await fixture(html`
88
- <div>
89
- <sp-icon name="ui:Chevron200"></sp-icon>
90
- <sp-icons-medium></sp-icons-medium>
91
- </div>
92
- `);
93
- const icon = el.querySelector("sp-icon");
94
- const iconSet = el.querySelector("sp-icons-medium");
95
- await elementUpdated(iconSet);
96
- await elementUpdated(icon);
97
- const svg = icon.shadowRoot ? icon.shadowRoot.querySelector('[role="img"]') : null;
98
- expect(svg).to.not.be.null;
99
- });
100
- });
101
- //# sourceMappingURL=iconset.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["iconset.test.ts"],
4
- "sourcesContent": ["/**\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { waitForPredicate } from '../../../test/testing-helpers.js';\nimport '@spectrum-web-components/icons/sp-icons-medium.js';\nimport '@spectrum-web-components/icon/sp-icon.js';\nimport { IconsMedium } from '@spectrum-web-components/icons';\nimport { Icon } from '@spectrum-web-components/icon';\nimport { IconsetRegistry } from '@spectrum-web-components/iconset/src/iconset-registry.js';\nimport { elementUpdated, expect, fixture, html } from '@open-wc/testing';\nimport { stub } from 'sinon';\n\ndescribe('Iconset', () => {\n after(() => {\n const sets = [...document.querySelectorAll('sp-icons-medium')];\n sets.map((set) => set.remove());\n });\n it('warns in Dev Mode of deprecation', async () => {\n const consoleWarnStub = stub(console, 'warn');\n const el = document.createElement('sp-icons-medium');\n document.body.append(el);\n\n await elementUpdated(el);\n\n expect(consoleWarnStub.called).to.be.true;\n const spyCall = consoleWarnStub.getCall(0);\n expect(\n spyCall.args.at(0).includes('deprecated'),\n 'confirm deprecation message'\n ).to.be.true;\n expect(spyCall.args.at(-1), 'confirm `data` shape').to.deep.equal({\n data: {\n localName: 'sp-icons-medium',\n type: 'api',\n level: 'deprecation',\n },\n });\n consoleWarnStub.restore();\n });\n\n it('will re-register with new name', async () => {\n const icons = document.createElement('sp-icons-medium');\n document.body.append(icons);\n icons.name = 'first-name';\n\n const registry = IconsetRegistry.getInstance();\n\n expect(registry.getIconset('first-name')).to.not.be.undefined;\n expect(registry.getIconset('')).to.be.undefined;\n expect(registry.getIconset('second-name')).to.be.undefined;\n expect(registry.getIconset('ui')).to.be.undefined;\n\n icons.name = '';\n\n expect(registry.getIconset('first-name')).to.be.undefined;\n expect(registry.getIconset('')).to.be.undefined;\n expect(registry.getIconset('second-name')).to.be.undefined;\n expect(registry.getIconset('ui')).to.be.undefined;\n\n icons.name = 'second-name';\n\n expect(registry.getIconset('first-name')).to.be.undefined;\n expect(registry.getIconset('')).to.be.undefined;\n expect(registry.getIconset('second-name')).to.not.be.undefined;\n expect(registry.getIconset('ui')).to.be.undefined;\n });\n it('will not re-register on (dis)connect without a name', async () => {\n const icons = document.createElement('sp-icons-medium');\n document.body.append(icons);\n\n const registry = IconsetRegistry.getInstance();\n\n expect(registry.getIconset('ui')).to.not.be.undefined;\n\n icons.name = '';\n\n expect(registry.getIconset('ui')).to.be.undefined;\n\n icons.remove();\n\n document.body.append(icons);\n\n expect(registry.getIconset('ui')).to.be.undefined;\n });\n it('renders after adding and removing a second iconset of same name', async () => {\n const icons = document.createElement('sp-icons-medium');\n document.body.append(icons);\n\n const icons2 = document.createElement('sp-icons-medium');\n document.body.append(icons2);\n\n icons2.remove();\n\n window.dispatchEvent(\n new CustomEvent('sp-iconset-removed', {\n detail: { name: 'Other Set' },\n })\n );\n\n const el = await fixture<Icon>(html`\n <sp-icon name=\"ui:Chevron200\"></sp-icon>\n `);\n\n let svg = el.shadowRoot\n ? el.shadowRoot.querySelector('[role=\"img\"]')\n : null;\n\n function getSVG(): boolean {\n svg = el.shadowRoot\n ? el.shadowRoot.querySelector('[role=\"img\"]')\n : null;\n\n return svg !== null;\n }\n\n await waitForPredicate(getSVG);\n\n expect(svg).to.not.be.null;\n });\n\n it('can be after `<sp-icon/>` in the DOM order', async () => {\n const el = await fixture<HTMLDivElement>(html`\n <div>\n <sp-icon name=\"ui:Chevron200\"></sp-icon>\n <sp-icons-medium></sp-icons-medium>\n </div>\n `);\n\n const icon = el.querySelector('sp-icon') as Icon;\n const iconSet = el.querySelector('sp-icons-medium') as IconsMedium;\n\n await elementUpdated(iconSet);\n await elementUpdated(icon);\n\n const svg = icon.shadowRoot\n ? icon.shadowRoot.querySelector('[role=\"img\"]')\n : null;\n expect(svg).to.not.be.null;\n });\n});\n"],
5
- "mappings": "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",
6
- "names": []
7
- }