@spectrum-web-components/base 1.1.0 → 1.1.2
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 +2 -2
- package/src/Base.d.ts +17 -0
- package/src/Base.dev.js +174 -0
- package/src/Base.dev.js.map +7 -0
- package/src/Base.js +2 -0
- package/src/Base.js.map +7 -0
- package/src/async-directive.d.ts +1 -0
- package/src/async-directive.dev.js +3 -0
- package/src/async-directive.dev.js.map +7 -0
- package/src/async-directive.js +2 -0
- package/src/async-directive.js.map +7 -0
- package/src/condition-attribute-with-id.d.ts +2 -0
- package/src/condition-attribute-with-id.dev.js +27 -0
- package/src/condition-attribute-with-id.dev.js.map +7 -0
- package/src/condition-attribute-with-id.js +2 -0
- package/src/condition-attribute-with-id.js.map +7 -0
- package/src/decorators.d.ts +1 -0
- package/src/decorators.dev.js +3 -0
- package/src/decorators.dev.js.map +7 -0
- package/src/decorators.js +2 -0
- package/src/decorators.js.map +7 -0
- package/src/define-element.d.ts +5 -0
- package/src/define-element.dev.js +14 -0
- package/src/define-element.dev.js.map +7 -0
- package/src/define-element.js +2 -0
- package/src/define-element.js.map +7 -0
- package/src/directive.d.ts +1 -0
- package/src/directive.dev.js +3 -0
- package/src/directive.dev.js.map +7 -0
- package/src/directive.js +2 -0
- package/src/directive.js.map +7 -0
- package/src/directives.d.ts +12 -0
- package/src/directives.dev.js +12 -0
- package/src/directives.dev.js.map +7 -0
- package/src/directives.js +2 -0
- package/src/directives.js.map +7 -0
- package/src/html.d.ts +1 -0
- package/src/html.dev.js +3 -0
- package/src/html.dev.js.map +7 -0
- package/src/html.js +2 -0
- package/src/html.js.map +7 -0
- package/src/index.d.ts +3 -0
- package/src/index.dev.js +5 -0
- package/src/index.dev.js.map +7 -0
- package/src/index.js +2 -0
- package/src/index.js.map +7 -0
- package/src/sizedMixin.d.ts +17 -0
- package/src/sizedMixin.dev.js +61 -0
- package/src/sizedMixin.dev.js.map +7 -0
- package/src/sizedMixin.js +2 -0
- package/src/sizedMixin.js.map +7 -0
- package/src/streaming-listener.d.ts +48 -0
- package/src/streaming-listener.dev.js +133 -0
- package/src/streaming-listener.dev.js.map +7 -0
- package/src/streaming-listener.js +2 -0
- package/src/streaming-listener.js.map +7 -0
- package/src/version.js +1 -1
- package/test/base-devmode.test.js +37 -0
- package/test/base-devmode.test.js.map +7 -0
- package/test/base.test.js +27 -0
- package/test/base.test.js.map +7 -0
- package/test/define-element.test.js +128 -0
- package/test/define-element.test.js.map +7 -0
- package/test/sizedMixin.test.js +60 -0
- package/test/sizedMixin.test.js.map +7 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["define-element.test.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 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*/\n\nimport { expect } from '@open-wc/testing';\nimport { stub } from 'sinon';\nimport {\n isFirefox,\n isWebKit,\n} from '@spectrum-web-components/shared/src/platform.js';\n\n// for window.__swc\nimport '@spectrum-web-components/base';\n\n// mostly alphabetical,\n// but reordered to put dependents above dependencies,\n// in order to avoid transitive dependency conflicts (eg card -> asset)\nconst elements = {\n 'sp-accordion-item': () =>\n import('@spectrum-web-components/accordion/sp-accordion-item.js'),\n 'sp-accordion': () =>\n import('@spectrum-web-components/accordion/sp-accordion.js'),\n 'sp-action-bar': () =>\n import('@spectrum-web-components/action-bar/sp-action-bar.js'),\n 'sp-action-menu': () =>\n import('@spectrum-web-components/action-menu/sp-action-menu.js'),\n 'sp-action-button': () =>\n import('@spectrum-web-components/action-button/sp-action-button.js'),\n 'sp-action-group': () =>\n import('@spectrum-web-components/action-group/sp-action-group.js'),\n 'sp-card': () => import('@spectrum-web-components/card/sp-card.js'),\n 'sp-asset': () => import('@spectrum-web-components/asset/sp-asset.js'),\n 'sp-avatar': () => import('@spectrum-web-components/avatar/sp-avatar.js'),\n 'sp-badge': () => import('@spectrum-web-components/badge/sp-badge.js'),\n 'sp-dialog-wrapper': () =>\n import('@spectrum-web-components/dialog/sp-dialog-wrapper.js'),\n 'sp-dialog': () => import('@spectrum-web-components/dialog/sp-dialog.js'),\n 'sp-dialog-base': () =>\n import('@spectrum-web-components/dialog/sp-dialog-base.js'),\n 'sp-button': () => import('@spectrum-web-components/button/sp-button.js'),\n 'sp-button-group': () =>\n import('@spectrum-web-components/button-group/sp-button-group.js'),\n 'sp-checkbox': () =>\n import('@spectrum-web-components/checkbox/sp-checkbox.js'),\n 'sp-coachmark': () =>\n import('@spectrum-web-components/coachmark/sp-coachmark.js'),\n 'sp-color-area': () =>\n import('@spectrum-web-components/color-area/sp-color-area.js'),\n 'sp-color-handle': () =>\n import('@spectrum-web-components/color-handle/sp-color-handle.js'),\n 'sp-color-loupe': () =>\n import('@spectrum-web-components/color-loupe/sp-color-loupe.js'),\n 'sp-color-slider': () =>\n import('@spectrum-web-components/color-slider/sp-color-slider.js'),\n 'sp-color-wheel': () =>\n import('@spectrum-web-components/color-wheel/sp-color-wheel.js'),\n 'sp-divider': () =>\n import('@spectrum-web-components/divider/sp-divider.js'),\n 'sp-dropzone': () =>\n import('@spectrum-web-components/dropzone/sp-dropzone.js'),\n 'sp-meter': () => import('@spectrum-web-components/meter/sp-meter.js'),\n 'sp-field-group': () =>\n import('@spectrum-web-components/field-group/sp-field-group.js'),\n 'sp-field-label': () =>\n import('@spectrum-web-components/field-label/sp-field-label.js'),\n 'sp-help-text': () =>\n import('@spectrum-web-components/help-text/sp-help-text.js'),\n 'sp-icon': () => import('@spectrum-web-components/icon/sp-icon.js'),\n 'sp-icons-medium': () =>\n import('@spectrum-web-components/icons/sp-icons-medium.js'),\n 'sp-icons-large': () =>\n import('@spectrum-web-components/icons/sp-icons-large.js'),\n 'sp-illustrated-message': () =>\n import(\n '@spectrum-web-components/illustrated-message/sp-illustrated-message.js'\n ),\n 'sp-link': () => import('@spectrum-web-components/link/sp-link.js'),\n 'sp-menu-group': () =>\n import('@spectrum-web-components/menu/sp-menu-group.js'),\n 'sp-menu-item': () =>\n import('@spectrum-web-components/menu/sp-menu-item.js'),\n 'sp-menu': () => import('@spectrum-web-components/menu/sp-menu.js'),\n 'overlay-trigger': () =>\n import('@spectrum-web-components/overlay/overlay-trigger.js'),\n 'sp-overlay': () =>\n import('@spectrum-web-components/overlay/sp-overlay.js'),\n 'sp-picker': () => import('@spectrum-web-components/picker/sp-picker.js'),\n 'sp-picker-button': () =>\n import('@spectrum-web-components/picker-button/sp-picker-button.js'),\n 'sp-popover': () =>\n import('@spectrum-web-components/popover/sp-popover.js'),\n 'sp-progress-bar': () =>\n import('@spectrum-web-components/progress-bar/sp-progress-bar.js'),\n 'sp-progress-circle': () =>\n import(\n '@spectrum-web-components/progress-circle/sp-progress-circle.js'\n ),\n 'sp-radio-group': () =>\n import('@spectrum-web-components/radio/sp-radio-group.js'),\n 'sp-radio': () => import('@spectrum-web-components/radio/sp-radio.js'),\n 'sp-search': () => import('@spectrum-web-components/search/sp-search.js'),\n 'sp-sidenav-item': () =>\n import('@spectrum-web-components/sidenav/sp-sidenav-item.js'),\n 'sp-sidenav': () =>\n import('@spectrum-web-components/sidenav/sp-sidenav.js'),\n 'sp-slider': () => import('@spectrum-web-components/slider/sp-slider.js'),\n 'sp-slider-handle': () =>\n import('@spectrum-web-components/slider/sp-slider-handle.js'),\n 'sp-split-view': () =>\n import('@spectrum-web-components/split-view/sp-split-view.js'),\n 'sp-status-light': () =>\n import('@spectrum-web-components/status-light/sp-status-light.js'),\n 'sp-swatch-group': () =>\n import('@spectrum-web-components/swatch/sp-swatch-group.js'),\n 'sp-swatch': () => import('@spectrum-web-components/swatch/sp-swatch.js'),\n 'sp-switch': () => import('@spectrum-web-components/switch/sp-switch.js'),\n 'sp-table': () => import('@spectrum-web-components/table/sp-table.js'),\n 'sp-table-body': () =>\n import('@spectrum-web-components/table/sp-table-body.js'),\n 'sp-table-cell': () =>\n import('@spectrum-web-components/table/sp-table-cell.js'),\n 'sp-table-head': () =>\n import('@spectrum-web-components/table/sp-table-head.js'),\n 'sp-table-checkbox-cell': () =>\n import('@spectrum-web-components/table/sp-table-checkbox-cell.js'),\n 'sp-table-head-cell': () =>\n import('@spectrum-web-components/table/sp-table-head-cell.js'),\n 'sp-table-row': () =>\n import('@spectrum-web-components/table/sp-table-row.js'),\n 'sp-tab': () => import('@spectrum-web-components/tabs/sp-tab.js'),\n 'sp-tabs': () => import('@spectrum-web-components/tabs/sp-tabs.js'),\n 'sp-tabs-overflow': () =>\n import('@spectrum-web-components/tabs/sp-tabs-overflow.js'),\n 'sp-tag': () => import('@spectrum-web-components/tags/sp-tag.js'),\n 'sp-tags': () => import('@spectrum-web-components/tags/sp-tags.js'),\n 'sp-textfield': () =>\n import('@spectrum-web-components/textfield/sp-textfield.js'),\n 'sp-thumbnail': () =>\n import('@spectrum-web-components/thumbnail/sp-thumbnail.js'),\n 'sp-toast': () => import('@spectrum-web-components/toast/sp-toast.js'),\n 'sp-tooltip': () =>\n import('@spectrum-web-components/tooltip/sp-tooltip.js'),\n 'sp-top-nav': () =>\n import('@spectrum-web-components/top-nav/sp-top-nav.js'),\n 'sp-tray': () => import('@spectrum-web-components/tray/sp-tray.js'),\n 'sp-underlay': () =>\n import('@spectrum-web-components/underlay/sp-underlay.js'),\n};\n\nconst browser: 'webkit' | 'firefox' | 'chromium' = isWebKit()\n ? 'webkit'\n : isFirefox()\n ? 'firefox'\n : 'chromium';\n\ndescribe('define-element', function () {\n // registrations are globally-unique, so retries will always fail\n this.retries(0);\n\n beforeEach(function () {\n window.__swc.verbose = true;\n this.warn = stub(console, 'warn');\n });\n\n afterEach(function () {\n this.warn.resetHistory();\n window.__swc.verbose = false;\n this.warn.restore();\n });\n\n Object.entries(elements).forEach(([name, register]) =>\n it(`'${name}' warns on redefinition`, async function () {\n // classes already-defined via transitive dependencies can't be tested this way\n if (customElements.get(name)) {\n this.skip();\n }\n const error = {\n webkit: 'Cannot define multiple custom elements with the same tag name',\n firefox: `'${name}' has already been defined`,\n chromium: `\"${name}\" has already been used with this registry`,\n }[browser];\n let caughtError: Error | undefined;\n\n customElements.define(name, class extends HTMLElement {});\n try {\n await register();\n } catch (error) {\n caughtError = error as Error;\n }\n\n expect(caughtError?.message ?? '').to.include(error);\n expect(this.warn.called, 'should call console.warn()').to.be.true;\n const spyCall = this.warn.getCall(0);\n expect(\n (spyCall.args.at(0) as string).includes('redefine'),\n `message should warn about redefining an element, instead got \"${spyCall.args.at(\n 0\n )}\"`\n ).to.be.true;\n })\n );\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["error"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import {
|
|
3
|
+
SizedMixin,
|
|
4
|
+
SpectrumElement
|
|
5
|
+
} from "../src/index.js";
|
|
6
|
+
import { html } from "@open-wc/testing";
|
|
7
|
+
import { elementUpdated, expect, fixture } from "@open-wc/testing";
|
|
8
|
+
export class FancySizedComponent extends SizedMixin(SpectrumElement, {
|
|
9
|
+
defaultSize: "m",
|
|
10
|
+
validSizes: ["xs", "s", "m", "l", "xl"]
|
|
11
|
+
}) {
|
|
12
|
+
render() {
|
|
13
|
+
return html`
|
|
14
|
+
I an wearing size ${this.size}
|
|
15
|
+
`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
customElements.define("fancy-sized-component", FancySizedComponent);
|
|
19
|
+
describe("sizedMixin", () => {
|
|
20
|
+
it("allows any given size in the validSizes array", async () => {
|
|
21
|
+
const validSizesChecks = ["xs", "s", "m", "l", "xl"].map(async (size) => {
|
|
22
|
+
var _a;
|
|
23
|
+
const el = await fixture(html`
|
|
24
|
+
<fancy-sized-component></fancy-sized-component>
|
|
25
|
+
`);
|
|
26
|
+
await elementUpdated(el);
|
|
27
|
+
el.size = size;
|
|
28
|
+
await elementUpdated(el);
|
|
29
|
+
expect((_a = el.shadowRoot) == null ? void 0 : _a.textContent).to.include(
|
|
30
|
+
`I an wearing size ${size}`
|
|
31
|
+
);
|
|
32
|
+
});
|
|
33
|
+
await Promise.all(validSizesChecks);
|
|
34
|
+
});
|
|
35
|
+
it("fallbacks to default size if the provided size is invalid", async () => {
|
|
36
|
+
var _a;
|
|
37
|
+
const el = await fixture(html`
|
|
38
|
+
<fancy-sized-component size="xxl"></fancy-sized-component>
|
|
39
|
+
`);
|
|
40
|
+
await elementUpdated(el);
|
|
41
|
+
expect((_a = el.shadowRoot) == null ? void 0 : _a.textContent).to.include("I an wearing size m");
|
|
42
|
+
});
|
|
43
|
+
it("fallbacks to default size if no size is provided", async () => {
|
|
44
|
+
var _a;
|
|
45
|
+
const el = await fixture(html`
|
|
46
|
+
<fancy-sized-component></fancy-sized-component>
|
|
47
|
+
`);
|
|
48
|
+
await elementUpdated(el);
|
|
49
|
+
expect((_a = el.shadowRoot) == null ? void 0 : _a.textContent).to.include("I an wearing size m");
|
|
50
|
+
});
|
|
51
|
+
it("applies the given size if it is a valid one", async () => {
|
|
52
|
+
var _a;
|
|
53
|
+
const el = await fixture(html`
|
|
54
|
+
<fancy-sized-component size="l"></fancy-sized-component>
|
|
55
|
+
`);
|
|
56
|
+
await elementUpdated(el);
|
|
57
|
+
expect((_a = el.shadowRoot) == null ? void 0 : _a.textContent).to.include("I an wearing size l");
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=sizedMixin.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["sizedMixin.test.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2025 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*/\n\nimport {\n ElementSize,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '../src/index.js';\nimport { html } from '@open-wc/testing';\nimport { elementUpdated, expect, fixture } from '@open-wc/testing';\n\nexport class FancySizedComponent extends SizedMixin(SpectrumElement, {\n defaultSize: 'm',\n validSizes: ['xs', 's', 'm', 'l', 'xl'],\n}) {\n public override render(): TemplateResult {\n return html`\n I an wearing size ${this.size}\n `;\n }\n}\n\ncustomElements.define('fancy-sized-component', FancySizedComponent);\n\ndescribe('sizedMixin', () => {\n it('allows any given size in the validSizes array', async () => {\n const validSizesChecks = (\n ['xs', 's', 'm', 'l', 'xl'] as ElementSize[]\n ).map(async (size) => {\n const el = await fixture<FancySizedComponent>(html`\n <fancy-sized-component></fancy-sized-component>\n `);\n await elementUpdated(el);\n\n el.size = size;\n await elementUpdated(el);\n expect(el.shadowRoot?.textContent).to.include(\n `I an wearing size ${size}`\n );\n });\n\n await Promise.all(validSizesChecks);\n });\n\n it('fallbacks to default size if the provided size is invalid', async () => {\n const el = await fixture<FancySizedComponent>(html`\n <fancy-sized-component size=\"xxl\"></fancy-sized-component>\n `);\n await elementUpdated(el);\n\n // Fallback is 'm', as defined by `defaultSize`.\n expect(el.shadowRoot?.textContent).to.include('I an wearing size m');\n });\n\n it('fallbacks to default size if no size is provided', async () => {\n const el = await fixture<FancySizedComponent>(html`\n <fancy-sized-component></fancy-sized-component>\n `);\n await elementUpdated(el);\n\n // Default is 'm', as defined by `defaultSize`.\n expect(el.shadowRoot?.textContent).to.include('I an wearing size m');\n });\n\n it('applies the given size if it is a valid one', async () => {\n const el = await fixture<FancySizedComponent>(html`\n <fancy-sized-component size=\"l\"></fancy-sized-component>\n `);\n await elementUpdated(el);\n\n expect(el.shadowRoot?.textContent).to.include('I an wearing size l');\n });\n});\n"],
|
|
5
|
+
"mappings": ";AAYA;AAAA,EAEI;AAAA,EACA;AAAA,OAEG;AACP,SAAS,YAAY;AACrB,SAAS,gBAAgB,QAAQ,eAAe;AAEzC,aAAM,4BAA4B,WAAW,iBAAiB;AAAA,EACjE,aAAa;AAAA,EACb,YAAY,CAAC,MAAM,KAAK,KAAK,KAAK,IAAI;AAC1C,CAAC,EAAE;AAAA,EACiB,SAAyB;AACrC,WAAO;AAAA,gCACiB,KAAK,IAAI;AAAA;AAAA,EAErC;AACJ;AAEA,eAAe,OAAO,yBAAyB,mBAAmB;AAElE,SAAS,cAAc,MAAM;AACzB,KAAG,iDAAiD,YAAY;AAC5D,UAAM,mBACF,CAAC,MAAM,KAAK,KAAK,KAAK,IAAI,EAC5B,IAAI,OAAO,SAAS;AAtC9B;AAuCY,YAAM,KAAK,MAAM,QAA6B;AAAA;AAAA,aAE7C;AACD,YAAM,eAAe,EAAE;AAEvB,SAAG,OAAO;AACV,YAAM,eAAe,EAAE;AACvB,cAAO,QAAG,eAAH,mBAAe,WAAW,EAAE,GAAG;AAAA,QAClC,qBAAqB,IAAI;AAAA,MAC7B;AAAA,IACJ,CAAC;AAED,UAAM,QAAQ,IAAI,gBAAgB;AAAA,EACtC,CAAC;AAED,KAAG,6DAA6D,YAAY;AAtDhF;AAuDQ,UAAM,KAAK,MAAM,QAA6B;AAAA;AAAA,SAE7C;AACD,UAAM,eAAe,EAAE;AAGvB,YAAO,QAAG,eAAH,mBAAe,WAAW,EAAE,GAAG,QAAQ,qBAAqB;AAAA,EACvE,CAAC;AAED,KAAG,oDAAoD,YAAY;AAhEvE;AAiEQ,UAAM,KAAK,MAAM,QAA6B;AAAA;AAAA,SAE7C;AACD,UAAM,eAAe,EAAE;AAGvB,YAAO,QAAG,eAAH,mBAAe,WAAW,EAAE,GAAG,QAAQ,qBAAqB;AAAA,EACvE,CAAC;AAED,KAAG,+CAA+C,YAAY;AA1ElE;AA2EQ,UAAM,KAAK,MAAM,QAA6B;AAAA;AAAA,SAE7C;AACD,UAAM,eAAe,EAAE;AAEvB,YAAO,QAAG,eAAH,mBAAe,WAAW,EAAE,GAAG,QAAQ,qBAAqB;AAAA,EACvE,CAAC;AACL,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|