@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.
- package/package.json +75 -75
 - package/CHANGELOG.md +0 -509
 - package/src/iconset-registry.d.ts +0 -33
 - package/src/iconset-registry.dev.js +0 -35
 - package/src/iconset-registry.dev.js.map +0 -7
 - package/src/iconset-registry.js +0 -2
 - package/src/iconset-registry.js.map +0 -7
 - package/src/iconset-svg.d.ts +0 -40
 - package/src/iconset-svg.dev.js +0 -123
 - package/src/iconset-svg.dev.js.map +0 -7
 - package/src/iconset-svg.js +0 -6
 - package/src/iconset-svg.js.map +0 -7
 - package/src/iconset.d.ts +0 -31
 - package/src/iconset.dev.js +0 -87
 - package/src/iconset.dev.js.map +0 -7
 - package/src/iconset.js +0 -2
 - package/src/iconset.js.map +0 -7
 - package/src/index.d.ts +0 -14
 - package/src/index.dev.js +0 -5
 - package/src/index.dev.js.map +0 -7
 - package/src/index.js +0 -2
 - package/src/index.js.map +0 -7
 - package/stories/icons-demo.js +0 -281
 - package/stories/icons-demo.js.map +0 -7
 - package/test/iconset.test.js +0 -101
 - package/test/iconset.test.js.map +0 -7
 
    
        package/stories/icons-demo.js
    DELETED
    
    | 
         @@ -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 
     | 
    
         
            -
            }
         
     | 
    
        package/test/iconset.test.js
    DELETED
    
    | 
         @@ -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
         
     | 
    
        package/test/iconset.test.js.map
    DELETED
    
    | 
         @@ -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 
     | 
    
         
            -
            }
         
     |