@arcgis/lumina 4.31.0-next.150 → 4.31.0-next.151

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.
@@ -0,0 +1,31 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+ var propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };
9
+ var propTypeFlags = {
10
+ state: 1 << 0,
11
+ reflect: 1 << 1,
12
+ number: 1 << 2,
13
+ boolean: 1 << 3
14
+ };
15
+ var flag = 43;
16
+ var stringFlag2 = flag.toString(2);
17
+ console.log(stringFlag2[propNumFlags.boolean] === "1");
18
+ console.log(flag & propTypeFlags.state);
19
+ console.log(flag & 1 /* state */);
20
+
21
+ export {
22
+ lazyMetaGroupJoiner,
23
+ lazyMetaItemJoiner,
24
+ lazyMetaSubItemJoiner,
25
+ defaultEventBubbles,
26
+ defaultEventCancelable,
27
+ defaultEventComposed,
28
+ propNumFlags,
29
+ propTypeFlags
30
+ };
31
+ //# sourceMappingURL=chunk-A4JIXA23.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lit` and\n * `@arcgis/lit-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n\nexport const propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };\nexport const propTypeFlags = {\n state: 1 << 0,\n reflect: 1 << 1,\n number: 1 << 2,\n boolean: 1 << 3,\n};\n\n/*@__PURE__*/\nenum propTypeEnum {\n state = 1 << 0,\n reflect = 1 << 1,\n number = 1 << 2,\n boolean = 1 << 3,\n}\n\nconst flag = 43;\n\nconst stringFlag2 = flag.toString(2);\nconsole.log(stringFlag2[propNumFlags.boolean] === \"1\");\n\nconsole.log(flag & propTypeFlags.state);\nconsole.log(flag & propTypeEnum.state);\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAE7B,IAAM,eAAe,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE;AACnE,IAAM,gBAAgB;AAAA,EAC3B,OAAO,KAAK;AAAA,EACZ,SAAS,KAAK;AAAA,EACd,QAAQ,KAAK;AAAA,EACb,SAAS,KAAK;AAChB;AAUA,IAAM,OAAO;AAEb,IAAM,cAAc,KAAK,SAAS,CAAC;AACnC,QAAQ,IAAI,YAAY,aAAa,OAAO,MAAM,GAAG;AAErD,QAAQ,IAAI,OAAO,cAAc,KAAK;AACtC,QAAQ,IAAI,OAAO,aAAkB;","names":[]}
@@ -0,0 +1,39 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+ var propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };
9
+ var propTypeFlags = {
10
+ state: 1 << 0,
11
+ reflect: 1 << 1,
12
+ number: 1 << 2,
13
+ boolean: 1 << 3
14
+ };
15
+ var propTypeEnum = /* @__PURE__ */ ((propTypeEnum2) => {
16
+ propTypeEnum2[propTypeEnum2["state"] = 1] = "state";
17
+ propTypeEnum2[propTypeEnum2["reflect"] = 2] = "reflect";
18
+ propTypeEnum2[propTypeEnum2["number"] = 4] = "number";
19
+ propTypeEnum2[propTypeEnum2["boolean"] = 8] = "boolean";
20
+ return propTypeEnum2;
21
+ })(propTypeEnum || {});
22
+ var flag = 43;
23
+ var stringFlag2 = flag.toString(2);
24
+ console.log(stringFlag2[propNumFlags.boolean] === "1");
25
+ console.log(flag & propTypeFlags.state);
26
+ console.log(flag & 1 /* state */);
27
+
28
+ export {
29
+ lazyMetaGroupJoiner,
30
+ lazyMetaItemJoiner,
31
+ lazyMetaSubItemJoiner,
32
+ defaultEventBubbles,
33
+ defaultEventCancelable,
34
+ defaultEventComposed,
35
+ propNumFlags,
36
+ propTypeFlags,
37
+ propTypeEnum
38
+ };
39
+ //# sourceMappingURL=chunk-CTQVJVF7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lit` and\n * `@arcgis/lit-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n\nexport const propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };\nexport const propTypeFlags = {\n state: 1 << 0,\n reflect: 1 << 1,\n number: 1 << 2,\n boolean: 1 << 3,\n};\nexport enum propTypeEnum {\n state = 1 << 0,\n reflect = 1 << 1,\n number = 1 << 2,\n boolean = 1 << 3,\n}\n\nconst flag = 43;\n\nconst stringFlag2 = flag.toString(2);\nconsole.log(stringFlag2[propNumFlags.boolean] === \"1\");\n\nconsole.log(flag & propTypeFlags.state);\nconsole.log(flag & propTypeEnum.state);\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAE7B,IAAM,eAAe,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE;AACnE,IAAM,gBAAgB;AAAA,EAC3B,OAAO,KAAK;AAAA,EACZ,SAAS,KAAK;AAAA,EACd,QAAQ,KAAK;AAAA,EACb,SAAS,KAAK;AAChB;AACO,IAAK,eAAL,kBAAKA,kBAAL;AACL,EAAAA,4BAAA,WAAQ,KAAR;AACA,EAAAA,4BAAA,aAAU,KAAV;AACA,EAAAA,4BAAA,YAAS,KAAT;AACA,EAAAA,4BAAA,aAAU,KAAV;AAJU,SAAAA;AAAA,GAAA;AAOZ,IAAM,OAAO;AAEb,IAAM,cAAc,KAAK,SAAS,CAAC;AACnC,QAAQ,IAAI,YAAY,aAAa,OAAO,MAAM,GAAG;AAErD,QAAQ,IAAI,OAAO,cAAc,KAAK;AACtC,QAAQ,IAAI,OAAO,aAAkB;","names":["propTypeEnum"]}
@@ -0,0 +1,28 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+ var PropertyFlags = /* @__PURE__ */ ((PropertyFlags2) => {
9
+ PropertyFlags2[PropertyFlags2["ATTRIBUTE"] = 1] = "ATTRIBUTE";
10
+ PropertyFlags2[PropertyFlags2["REFLECT"] = 2] = "REFLECT";
11
+ PropertyFlags2[PropertyFlags2["BOOLEAN"] = 4] = "BOOLEAN";
12
+ PropertyFlags2[PropertyFlags2["NUMBER"] = 8] = "NUMBER";
13
+ PropertyFlags2[PropertyFlags2["STATE"] = 16] = "STATE";
14
+ PropertyFlags2[PropertyFlags2["READ_ONLY"] = 32] = "READ_ONLY";
15
+ PropertyFlags2[PropertyFlags2["NO_ACCESSOR"] = 64] = "NO_ACCESSOR";
16
+ return PropertyFlags2;
17
+ })(PropertyFlags || {});
18
+
19
+ export {
20
+ lazyMetaGroupJoiner,
21
+ lazyMetaItemJoiner,
22
+ lazyMetaSubItemJoiner,
23
+ defaultEventBubbles,
24
+ defaultEventCancelable,
25
+ defaultEventComposed,
26
+ PropertyFlags
27
+ };
28
+ //# sourceMappingURL=chunk-DEEVUK5Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lit` and\n * `@arcgis/lit-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n\n/* eslint-disable @typescript-eslint/no-magic-numbers */\n/**\n * By default in Lit, the `@property()` decorator accepts an object. However, to\n * keep the bundle size smaller, in production builds, instead of passing it an\n * object, we pass it a compact number, that gets converted back to an object\n * in createProperty() at runtime.\n */\nexport enum PropertyFlags {\n // Ordered based on frequency of usage to keep flags as short as possible\n ATTRIBUTE = 1 << 0,\n REFLECT = 1 << 1,\n BOOLEAN = 1 << 2,\n NUMBER = 1 << 3,\n STATE = 1 << 4,\n READ_ONLY = 1 << 5,\n // Inverted so that the more common case is \"false\"\n NO_ACCESSOR = 1 << 6,\n}\n/* eslint-enable @typescript-eslint/no-magic-numbers */\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAS7B,IAAK,gBAAL,kBAAKA,mBAAL;AAEL,EAAAA,8BAAA,eAAY,KAAZ;AACA,EAAAA,8BAAA,aAAU,KAAV;AACA,EAAAA,8BAAA,aAAU,KAAV;AACA,EAAAA,8BAAA,YAAS,KAAT;AACA,EAAAA,8BAAA,WAAQ,MAAR;AACA,EAAAA,8BAAA,eAAY,MAAZ;AAEA,EAAAA,8BAAA,iBAAc,MAAd;AATU,SAAAA;AAAA,GAAA;","names":["PropertyFlags"]}
@@ -0,0 +1,16 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+
9
+ export {
10
+ lazyMetaGroupJoiner,
11
+ lazyMetaItemJoiner,
12
+ lazyMetaSubItemJoiner,
13
+ defaultEventBubbles,
14
+ defaultEventCancelable,
15
+ defaultEventComposed
16
+ };
@@ -0,0 +1,31 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+ var propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };
9
+ var propTypeFlags = Object.freeze({
10
+ state: 1 << 0,
11
+ reflect: 1 << 1,
12
+ number: 1 << 2,
13
+ boolean: 1 << 3
14
+ });
15
+ var flag = 43;
16
+ var stringFlag2 = flag.toString(2);
17
+ console.log(stringFlag2[propNumFlags.boolean] === "1");
18
+ console.log(flag & propTypeFlags.state);
19
+ console.log(flag & propTypeFlags.state);
20
+
21
+ export {
22
+ lazyMetaGroupJoiner,
23
+ lazyMetaItemJoiner,
24
+ lazyMetaSubItemJoiner,
25
+ defaultEventBubbles,
26
+ defaultEventCancelable,
27
+ defaultEventComposed,
28
+ propNumFlags,
29
+ propTypeFlags
30
+ };
31
+ //# sourceMappingURL=chunk-FOOMFQOW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lit` and\n * `@arcgis/lit-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n\nexport const propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };\nexport const propTypeFlags = Object.freeze({\n state: 1 << 0,\n reflect: 1 << 1,\n number: 1 << 2,\n boolean: 1 << 3,\n});\n\nconst flag = 43;\n\nconst stringFlag2 = flag.toString(2);\nconsole.log(stringFlag2[propNumFlags.boolean] === \"1\");\n\nconsole.log(flag & propTypeFlags.state);\nconsole.log(flag & propTypeFlags.state);\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAE7B,IAAM,eAAe,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE;AACnE,IAAM,gBAAgB,OAAO,OAAO;AAAA,EACzC,OAAO,KAAK;AAAA,EACZ,SAAS,KAAK;AAAA,EACd,QAAQ,KAAK;AAAA,EACb,SAAS,KAAK;AAChB,CAAC;AAED,IAAM,OAAO;AAEb,IAAM,cAAc,KAAK,SAAS,CAAC;AACnC,QAAQ,IAAI,YAAY,aAAa,OAAO,MAAM,GAAG;AAErD,QAAQ,IAAI,OAAO,cAAc,KAAK;AACtC,QAAQ,IAAI,OAAO,cAAc,KAAK;","names":[]}
@@ -0,0 +1,28 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+ var PropertyFlags = /* @__PURE__ */ ((PropertyFlags2) => {
9
+ PropertyFlags2[PropertyFlags2["ATTRIBUTE"] = 1] = "ATTRIBUTE";
10
+ PropertyFlags2[PropertyFlags2["REFLECT"] = 2] = "REFLECT";
11
+ PropertyFlags2[PropertyFlags2["BOOLEAN"] = 4] = "BOOLEAN";
12
+ PropertyFlags2[PropertyFlags2["NUMBER"] = 8] = "NUMBER";
13
+ PropertyFlags2[PropertyFlags2["STATE"] = 16] = "STATE";
14
+ PropertyFlags2[PropertyFlags2["READ_ONLY"] = 32] = "READ_ONLY";
15
+ PropertyFlags2[PropertyFlags2["NO_ACCESSOR"] = 64] = "NO_ACCESSOR";
16
+ return PropertyFlags2;
17
+ })(PropertyFlags || {});
18
+
19
+ export {
20
+ lazyMetaGroupJoiner,
21
+ lazyMetaItemJoiner,
22
+ lazyMetaSubItemJoiner,
23
+ defaultEventBubbles,
24
+ defaultEventCancelable,
25
+ defaultEventComposed,
26
+ PropertyFlags
27
+ };
28
+ //# sourceMappingURL=chunk-HHA4SRXI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lit` and\n * `@arcgis/lit-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n\n/* eslint-disable @typescript-eslint/no-magic-numbers */\n/* eslint-disable @typescript-eslint/prefer-literal-enum-member */\n/**\n * By default in Lit, the `@property()` decorator accepts an object. However, to\n * keep the bundle size smaller, in production builds, instead of passing it an\n * object, we pass it a compact number, that gets converted back to an object\n * in createProperty() at runtime.\n */\nexport enum PropertyFlags {\n // Ordered based on frequency of usage to keep flags as short as possible\n ATTRIBUTE = 1 << 0,\n REFLECT = 1 << 1,\n BOOLEAN = 1 << 2,\n NUMBER = 1 << 3,\n STATE = 1 << 4,\n READ_ONLY = 1 << 5,\n // Inverted so that the more common case is \"false\"\n NO_ACCESSOR = 1 << 6,\n}\n/* eslint-enable @typescript-eslint/no-magic-numbers */\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAU7B,IAAK,gBAAL,kBAAKA,mBAAL;AAEL,EAAAA,8BAAA,eAAY,KAAZ;AACA,EAAAA,8BAAA,aAAU,KAAV;AACA,EAAAA,8BAAA,aAAU,KAAV;AACA,EAAAA,8BAAA,YAAS,KAAT;AACA,EAAAA,8BAAA,WAAQ,MAAR;AACA,EAAAA,8BAAA,eAAY,MAAZ;AAEA,EAAAA,8BAAA,iBAAc,MAAd;AATU,SAAAA;AAAA,GAAA;","names":["PropertyFlags"]}
@@ -0,0 +1,39 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+ var propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };
9
+ var propTypeFlags = {
10
+ state: 1 << 0,
11
+ reflect: 1 << 1,
12
+ number: 1 << 2,
13
+ boolean: 1 << 3
14
+ };
15
+ var propTypeEnum = /* @__PURE__ */ ((propTypeEnum2) => {
16
+ propTypeEnum2[propTypeEnum2["state"] = 1] = "state";
17
+ propTypeEnum2[propTypeEnum2["reflect"] = 2] = "reflect";
18
+ propTypeEnum2[propTypeEnum2["number"] = 4] = "number";
19
+ propTypeEnum2[propTypeEnum2["boolean"] = 8] = "boolean";
20
+ return propTypeEnum2;
21
+ })(propTypeEnum || {});
22
+ var flag = 43;
23
+ var stringFlag2 = flag.toString(2);
24
+ console.log(stringFlag2[propNumFlags.boolean] === "1");
25
+ console.log(flag & propTypeFlags.state);
26
+ console.log(flag & 1 /* state */);
27
+
28
+ export {
29
+ lazyMetaGroupJoiner,
30
+ lazyMetaItemJoiner,
31
+ lazyMetaSubItemJoiner,
32
+ defaultEventBubbles,
33
+ defaultEventCancelable,
34
+ defaultEventComposed,
35
+ propNumFlags,
36
+ propTypeFlags,
37
+ propTypeEnum
38
+ };
39
+ //# sourceMappingURL=chunk-KAFHPLZ3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lit` and\n * `@arcgis/lit-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n\nexport const propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };\nexport const propTypeFlags = {\n state: 1 << 0,\n reflect: 1 << 1,\n number: 1 << 2,\n boolean: 1 << 3,\n};\n\n/*@__PURE__*/\nexport enum propTypeEnum {\n state = 1 << 0,\n reflect = 1 << 1,\n number = 1 << 2,\n boolean = 1 << 3,\n}\n\nconst flag = 43;\n\nconst stringFlag2 = flag.toString(2);\nconsole.log(stringFlag2[propNumFlags.boolean] === \"1\");\n\nconsole.log(flag & propTypeFlags.state);\nconsole.log(flag & propTypeEnum.state);\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAE7B,IAAM,eAAe,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE;AACnE,IAAM,gBAAgB;AAAA,EAC3B,OAAO,KAAK;AAAA,EACZ,SAAS,KAAK;AAAA,EACd,QAAQ,KAAK;AAAA,EACb,SAAS,KAAK;AAChB;AAGO,IAAK,eAAL,kBAAKA,kBAAL;AACL,EAAAA,4BAAA,WAAQ,KAAR;AACA,EAAAA,4BAAA,aAAU,KAAV;AACA,EAAAA,4BAAA,YAAS,KAAT;AACA,EAAAA,4BAAA,aAAU,KAAV;AAJU,SAAAA;AAAA,GAAA;AAOZ,IAAM,OAAO;AAEb,IAAM,cAAc,KAAK,SAAS,CAAC;AACnC,QAAQ,IAAI,YAAY,aAAa,OAAO,MAAM,GAAG;AAErD,QAAQ,IAAI,OAAO,cAAc,KAAK;AACtC,QAAQ,IAAI,OAAO,aAAkB;","names":["propTypeEnum"]}
@@ -0,0 +1,17 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+
9
+ export {
10
+ lazyMetaGroupJoiner,
11
+ lazyMetaItemJoiner,
12
+ lazyMetaSubItemJoiner,
13
+ defaultEventBubbles,
14
+ defaultEventCancelable,
15
+ defaultEventComposed
16
+ };
17
+ //# sourceMappingURL=chunk-NENDOZLN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lit` and\n * `@arcgis/lit-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;","names":[]}
@@ -0,0 +1,28 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+ var PropertyFlags = /* @__PURE__ */ ((PropertyFlags2) => {
9
+ PropertyFlags2[PropertyFlags2["STATE"] = 1] = "STATE";
10
+ PropertyFlags2[PropertyFlags2["REFLECT"] = 2] = "REFLECT";
11
+ PropertyFlags2[PropertyFlags2["NUMBER"] = 4] = "NUMBER";
12
+ PropertyFlags2[PropertyFlags2["BOOLEAN"] = 8] = "BOOLEAN";
13
+ PropertyFlags2[PropertyFlags2["ATTRIBUTE"] = 16] = "ATTRIBUTE";
14
+ PropertyFlags2[PropertyFlags2["NO_ACCESSOR"] = 32] = "NO_ACCESSOR";
15
+ PropertyFlags2[PropertyFlags2["READ_ONLY"] = 64] = "READ_ONLY";
16
+ return PropertyFlags2;
17
+ })(PropertyFlags || {});
18
+
19
+ export {
20
+ lazyMetaGroupJoiner,
21
+ lazyMetaItemJoiner,
22
+ lazyMetaSubItemJoiner,
23
+ defaultEventBubbles,
24
+ defaultEventCancelable,
25
+ defaultEventComposed,
26
+ PropertyFlags
27
+ };
28
+ //# sourceMappingURL=chunk-SWNWS2UY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lit` and\n * `@arcgis/lit-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n\n/**\n * By default in Lit, the `@property()` decorator accepts an object. However, to\n * keep the bundle size smaller, in production builds, instead of passing it an\n * object, we pass it a compact number, that gets converted back to an object\n * in createProperty() at runtime.\n */\nexport enum PropertyFlags {\n STATE = 1 << 0,\n REFLECT = 1 << 1,\n NUMBER = 1 << 2,\n BOOLEAN = 1 << 3,\n ATTRIBUTE = 1 << 4,\n NO_ACCESSOR = 1 << 5,\n READ_ONLY = 1 << 6,\n}\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAQ7B,IAAK,gBAAL,kBAAKA,mBAAL;AACL,EAAAA,8BAAA,WAAQ,KAAR;AACA,EAAAA,8BAAA,aAAU,KAAV;AACA,EAAAA,8BAAA,YAAS,KAAT;AACA,EAAAA,8BAAA,aAAU,KAAV;AACA,EAAAA,8BAAA,eAAY,MAAZ;AACA,EAAAA,8BAAA,iBAAc,MAAd;AACA,EAAAA,8BAAA,eAAY,MAAZ;AAPU,SAAAA;AAAA,GAAA;","names":["PropertyFlags"]}
@@ -0,0 +1,28 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+ var PropertyFlags = /* @__PURE__ */ ((PropertyFlags2) => {
9
+ PropertyFlags2[PropertyFlags2["ATTRIBUTE"] = 1] = "ATTRIBUTE";
10
+ PropertyFlags2[PropertyFlags2["REFLECT"] = 2] = "REFLECT";
11
+ PropertyFlags2[PropertyFlags2["BOOLEAN"] = 4] = "BOOLEAN";
12
+ PropertyFlags2[PropertyFlags2["NUMBER"] = 8] = "NUMBER";
13
+ PropertyFlags2[PropertyFlags2["STATE"] = 16] = "STATE";
14
+ PropertyFlags2[PropertyFlags2["READ_ONLY"] = 32] = "READ_ONLY";
15
+ PropertyFlags2[PropertyFlags2["NO_ACCESSOR"] = 64] = "NO_ACCESSOR";
16
+ return PropertyFlags2;
17
+ })(PropertyFlags || {});
18
+
19
+ export {
20
+ lazyMetaGroupJoiner,
21
+ lazyMetaItemJoiner,
22
+ lazyMetaSubItemJoiner,
23
+ defaultEventBubbles,
24
+ defaultEventCancelable,
25
+ defaultEventComposed,
26
+ PropertyFlags
27
+ };
28
+ //# sourceMappingURL=chunk-TITMTQYB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lumina` and\n * `@arcgis/lumina-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n\n/* eslint-disable @typescript-eslint/no-magic-numbers */\n/**\n * By default in Lit, the `@property()` decorator accepts an object. However, to\n * keep the bundle size smaller, in production builds, instead of passing it an\n * object, we pass it a compact number, that gets converted back to an object\n * in createProperty() at runtime.\n */\nexport enum PropertyFlags {\n // Ordered based on frequency of usage to keep flags as short as possible\n ATTRIBUTE = 1 << 0,\n REFLECT = 1 << 1,\n BOOLEAN = 1 << 2,\n NUMBER = 1 << 3,\n STATE = 1 << 4,\n READ_ONLY = 1 << 5,\n // Inverted so that the more common case is \"false\"\n NO_ACCESSOR = 1 << 6,\n}\n/* eslint-enable @typescript-eslint/no-magic-numbers */\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAS7B,IAAK,gBAAL,kBAAKA,mBAAL;AAEL,EAAAA,8BAAA,eAAY,KAAZ;AACA,EAAAA,8BAAA,aAAU,KAAV;AACA,EAAAA,8BAAA,aAAU,KAAV;AACA,EAAAA,8BAAA,YAAS,KAAT;AACA,EAAAA,8BAAA,WAAQ,MAAR;AACA,EAAAA,8BAAA,eAAY,MAAZ;AAEA,EAAAA,8BAAA,iBAAc,MAAd;AATU,SAAAA;AAAA,GAAA;","names":["PropertyFlags"]}
@@ -0,0 +1,38 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+ var propFlags = ["state", "reflect", "number", "boolean"];
9
+ var propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };
10
+ var propTypeFlags = {
11
+ state: 1 << 0,
12
+ reflect: 1 << 1,
13
+ number: 1 << 2,
14
+ boolean: 1 << 3
15
+ };
16
+ var flag = 43;
17
+ var stringFlag = flag.toString(2);
18
+ console.log(
19
+ // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
20
+ stringFlag[propFlags.indexOf("state")] === "1"
21
+ );
22
+ var stringFlag2 = flag.toString(2);
23
+ console.log(stringFlag2[propNumFlags.boolean] === "1");
24
+ console.log(flag & propTypeFlags.state);
25
+ console.log(flag & propTypeFlags.state);
26
+
27
+ export {
28
+ lazyMetaGroupJoiner,
29
+ lazyMetaItemJoiner,
30
+ lazyMetaSubItemJoiner,
31
+ defaultEventBubbles,
32
+ defaultEventCancelable,
33
+ defaultEventComposed,
34
+ propFlags,
35
+ propNumFlags,
36
+ propTypeFlags
37
+ };
38
+ //# sourceMappingURL=chunk-VDVC6NX7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lit` and\n * `@arcgis/lit-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n\nexport const propFlags = [\"state\", \"reflect\", \"number\", \"boolean\"];\nexport const propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };\nexport const propTypeFlags = {\n state: 1 << 0,\n reflect: 1 << 1,\n number: 1 << 2,\n boolean: 1 << 3,\n};\n\nconst flag = 43;\n\nconst stringFlag = flag.toString(2);\nconsole.log(\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n stringFlag[propFlags.indexOf(\"state\")] === \"1\",\n);\n\nconst stringFlag2 = flag.toString(2);\nconsole.log(stringFlag2[propNumFlags.boolean] === \"1\");\n\nconsole.log(flag & propTypeFlags.state);\nconsole.log(flag & propTypeFlags.state);\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAE7B,IAAM,YAAY,CAAC,SAAS,WAAW,UAAU,SAAS;AAC1D,IAAM,eAAe,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE;AACnE,IAAM,gBAAgB;AAAA,EAC3B,OAAO,KAAK;AAAA,EACZ,SAAS,KAAK;AAAA,EACd,QAAQ,KAAK;AAAA,EACb,SAAS,KAAK;AAChB;AAEA,IAAM,OAAO;AAEb,IAAM,aAAa,KAAK,SAAS,CAAC;AAClC,QAAQ;AAAA;AAAA,EAEN,WAAW,UAAU,QAAQ,OAAO,CAAC,MAAM;AAC7C;AAEA,IAAM,cAAc,KAAK,SAAS,CAAC;AACnC,QAAQ,IAAI,YAAY,aAAa,OAAO,MAAM,GAAG;AAErD,QAAQ,IAAI,OAAO,cAAc,KAAK;AACtC,QAAQ,IAAI,OAAO,cAAc,KAAK;","names":[]}
@@ -0,0 +1,31 @@
1
+ // src/config.ts
2
+ var lazyMetaGroupJoiner = ";";
3
+ var lazyMetaItemJoiner = ",";
4
+ var lazyMetaSubItemJoiner = ":";
5
+ var defaultEventBubbles = true;
6
+ var defaultEventCancelable = true;
7
+ var defaultEventComposed = true;
8
+ var propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };
9
+ var propTypeFlags = {
10
+ state: 1 << 0,
11
+ reflect: 1 << 1,
12
+ number: 1 << 2,
13
+ boolean: 1 << 3
14
+ };
15
+ var flag = 43;
16
+ var stringFlag2 = flag.toString(2);
17
+ console.log(stringFlag2[propNumFlags.boolean] === "1");
18
+ console.log(flag & propTypeFlags.state);
19
+ console.log(flag & 1 /* state */);
20
+
21
+ export {
22
+ lazyMetaGroupJoiner,
23
+ lazyMetaItemJoiner,
24
+ lazyMetaSubItemJoiner,
25
+ defaultEventBubbles,
26
+ defaultEventCancelable,
27
+ defaultEventComposed,
28
+ propNumFlags,
29
+ propTypeFlags
30
+ };
31
+ //# sourceMappingURL=chunk-WASYSR3I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration options that are shared between `@arcgis/lit` and\n * `@arcgis/lit-compiler`. To avoid the need of loading DOM modules in Node.js,\n * this file is extracted into a separate entrypoint.\n */\n\nexport const lazyMetaGroupJoiner = \";\";\nexport const lazyMetaItemJoiner = \",\";\nexport const lazyMetaSubItemJoiner = \":\";\n\n/**\n * While these defaults don't match DOM defaults (all false), they match\n * Stencil and Shoelace defaults. Also, they make more sense for our\n * usage (i.e why would you want events to not be cancelable by default?)\n */\nexport const defaultEventBubbles = true;\nexport const defaultEventCancelable = true;\nexport const defaultEventComposed = true;\n\nexport const propNumFlags = { state: 0, reflect: 1, number: 2, boolean: 3 };\nexport const propTypeFlags = {\n state: 1 << 0,\n reflect: 1 << 1,\n number: 1 << 2,\n boolean: 1 << 3,\n};\n\nenum propTypeEnum {\n state = 1 << 0,\n reflect = 1 << 1,\n number = 1 << 2,\n boolean = 1 << 3,\n}\n\nconst flag = 43;\n\nconst stringFlag2 = flag.toString(2);\nconsole.log(stringFlag2[propNumFlags.boolean] === \"1\");\n\nconsole.log(flag & propTypeFlags.state);\nconsole.log(flag & propTypeEnum.state);\n"],"mappings":";AAMO,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,wBAAwB;AAO9B,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAE7B,IAAM,eAAe,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE;AACnE,IAAM,gBAAgB;AAAA,EAC3B,OAAO,KAAK;AAAA,EACZ,SAAS,KAAK;AAAA,EACd,QAAQ,KAAK;AAAA,EACb,SAAS,KAAK;AAChB;AASA,IAAM,OAAO;AAEb,IAAM,cAAc,KAAK,SAAS,CAAC;AACnC,QAAQ,IAAI,YAAY,aAAa,OAAO,MAAM,GAAG;AAErD,QAAQ,IAAI,OAAO,cAAc,KAAK;AACtC,QAAQ,IAAI,OAAO,aAAkB;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/createEvent.ts","../src/decorators.ts","../src/lazyLoad.ts","../src/devOnlyDetectIncorrectLazyUsages.ts","../src/lifecycleSupport.ts","../src/utils.ts","../src/hmrSupport.ts","../src/LitElement.ts","../src/runtime.ts","../src/jsx/jsx.ts","../src/jsx/directives.ts","../src/wrappersUtils.ts"],"sourcesContent":["import { retrieveComponent, trackPropertyKey } from \"@arcgis/components-controllers\";\nimport { defaultEventBubbles, defaultEventCancelable, defaultEventComposed } from \"./config\";\n\n/**\n * An event emitter object\n */\nexport type EventEmitter<T = undefined> = {\n // Avoid covariance issues\n // eslint-disable-next-line @typescript-eslint/method-signature-style\n emit(payload: T extends undefined ? void : T): CustomEvent<T>;\n};\n\nexport type EventOptions = {\n /**\n * A Boolean indicating whether the event bubbles up through the DOM or not.\n *\n * @default true\n */\n bubbles?: boolean;\n /**\n * A Boolean indicating whether the event is cancelable. Defaults to `true`,\n * unlike the DOM's default of `false`, as that is the desired behavior most\n * of the time.\n *\n * @default true\n */\n cancelable?: boolean;\n /**\n * A Boolean value indicating whether or not the event can bubble across the\n * boundary between the shadow DOM and the regular DOM.\n *\n * @default true\n */\n composed?: boolean;\n};\n\n/**\n * While we don't actually return CustomEvent<T>, only EventEmitter<T>, claiming\n * that we return CustomElement<T> simplifies typing.\n *\n * See:\n * ```ts\n * handleClick(event: ArcgisCounter['arcgisClick']): void {\n * }\n * ```\n *\n * Without it, you would have to do:\n * ```ts\n * handleClick(event: ReturnType<ArcgisCounter['arcgisClick']['emit']>): void {\n * }\n * ```\n *\n * It also simplifies the work for Lumina - having property claim to\n * be an even makes it easy to find event properties to provide JSX type-checking,\n * and to find events when doing docs generation.\n */\nexport const createEventFactory = <T = undefined>(\n eventName = \"\",\n options: EventOptions = {},\n component = retrieveComponent(),\n): CustomEvent<T> & EventEmitter<T> => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const emitter = {\n emit: (payload?: T) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (eventName === \"\") {\n throw new Error(\"Unable to resolve event name from property name\");\n }\n if (!component.el.isConnected) {\n console.warn(\n `Trying to emit an ${eventName} event on a disconnected element ${component.el.tagName.toLowerCase()}`,\n );\n }\n }\n\n const event = new CustomEvent(eventName, {\n detail: payload,\n cancelable: defaultEventCancelable,\n bubbles: defaultEventBubbles,\n composed: defaultEventComposed,\n ...options,\n });\n component.el.dispatchEvent(event);\n return event;\n },\n } as CustomEvent<T> & EventEmitter<T>;\n\n if (eventName === \"\") {\n trackPropertyKey(\n component,\n (key) => {\n if (process.env.NODE_ENV !== \"production\" && key === undefined) {\n throw new Error(`createEvent must be called in property default value only`);\n }\n eventName = key!;\n },\n emitter,\n );\n }\n\n return emitter;\n};\n\n/**\n * Creates an event emitter.\n * Events emitted by your component will be included in the documentation.\n *\n * @example\n * Declaring an event whose payload is of type `number`:\n *\n * ```ts\n * class MyComponent extends LitElement {\n * arcgisClick = createEvent<number>();\n * }\n * ```\n *\n */\nexport const createEvent = createEventFactory.bind(null, \"\") as <T = undefined>(\n options?: EventOptions,\n) => CustomEvent<T> & EventEmitter<T>;\n","import type { LitElementPropertyDeclaration } from \"@arcgis/components-controllers\";\n\nexport { state } from \"@lit/reactive-element/decorators/state.js\";\n\nimport { property as litProperty } from \"@lit/reactive-element/decorators/property.js\";\n\n/**\n * A class field or accessor decorator which creates a reactive property that\n * reflects a corresponding attribute value. When a decorated property is set\n * the element will update and render.\n *\n * This decorator should only be used for public fields. As public fields,\n * properties should be considered as primarily settable by element users,\n * either via attribute or the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the `state()` decorator.\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating public\n * properties should typically not be done for non-primitive (object or array)\n * properties. In other cases when an element needs to manage state, a private\n * property decorated via the `state()` decorator should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n *\n * @example\n *\n * ```ts\n * class MyElement {\n * \\@property()\n * clicked = false;\n * }\n * ```\n *\n * @example\n * Declaring a readOnly property:\n *\n * ```ts\n * class MyElement {\n * \\@property({ readOnly: true })\n * state: State = \"loading\";\n * }\n * ```\n */\nexport const property = litProperty as (options?: Omit<LitElementPropertyDeclaration, \"state\">) => PropertyDecorator;\n\ndeclare type CustomMethodDecorator<T> = (\n target: unknown,\n propertyKey: string | symbol,\n descriptor: TypedPropertyDescriptor<T>,\n) => TypedPropertyDescriptor<T> | void;\n\n/**\n * The `@method()` decorator is used to expose methods on the public API.\n * Class methods decorated with the `@method()` decorator can be called directly\n * from the element, meaning they are intended to be callable from the outside.\n *\n * @remarks\n * This decorator does not exist at runtime and is only used as a hint for the\n * compiler to declare certain methods as public.\n */\nexport const method = undefined as unknown as () => CustomMethodDecorator<any>;\n","import { Deferred, camelToKebab } from \"@arcgis/components-utils\";\nimport type { LitElement } from \"./LitElement\";\nimport type { Runtime } from \"./runtime\";\nimport { devOnlyDetectIncorrectLazyUsages } from \"./devOnlyDetectIncorrectLazyUsages\";\nimport { lazyMetaGroupJoiner, lazyMetaItemJoiner, lazyMetaSubItemJoiner } from \"./config\";\nimport { attachToAncestor } from \"./lifecycleSupport\";\nimport { noShadowRoot } from \"./utils\";\nimport type { ControllerManager } from \"@arcgis/components-controllers\";\n\n/**\n * Defines lazy-loading proxy components for all web components in this package.\n *\n * As soon as a proxied web component is created (e.g. by adding it to the DOM),\n * it will start loading the actual web component source code.\n */\nexport interface DefineCustomElements {\n (\n // Window is not used, but present for backwards-compatibility with Stencil\n _window?: Window,\n options?: LazyLoadOptions,\n ): void;\n (options?: LazyLoadOptions): void;\n}\n\nexport type LazyLoadOptions = {\n readonly resourcesUrl?: string;\n};\n\nexport const makeDefineCustomElements = (\n runtime: Runtime,\n structure: Readonly<Record<string, CompactMeta>>,\n): DefineCustomElements =>\n function defineCustomElements(windowOrOptions?: LazyLoadOptions | Window, options?: LazyLoadOptions): void {\n if (!globalThis.customElements) {\n return;\n }\n\n const resolvedOptions = options ?? windowOrOptions ?? {};\n\n const resourcesUrl = (resolvedOptions as LazyLoadOptions).resourcesUrl;\n if (resourcesUrl) {\n runtime.setAssetPath(resourcesUrl);\n }\n\n Object.entries(structure).forEach(createLazyElement);\n };\n\n// FEATURE: add \"flags\" int into compact meta for future use?\n/**\n * Use compact meta to reduce bundle size (otherwise, it would be ~65kb for\n * map-components). Also, the meta is a string to speed-up parsing\n * (browsers parse strings much faster).\n * See https://twitter.com/mathias/status/1143551692732030979\n */\ntype CompactMeta = readonly [load: () => Promise<Record<string, typeof LitElement>>, compact?: string];\n\nfunction createLazyElement([tagName, [load, compactMeta = \"\"]]: readonly [\n tagName: string,\n compactMeta: CompactMeta,\n]): void {\n if (customElements.get(tagName)) {\n return;\n }\n\n const [compactObservedProps, compactAsyncMethods, compactSyncMethods] = compactMeta.split(lazyMetaGroupJoiner);\n\n const observedProps = compactObservedProps\n ? compactObservedProps?.split(lazyMetaItemJoiner).map(parseCondensedProp)\n : undefined;\n\n const observedProperties = observedProps?.map(([property]) => property);\n\n const ProxyClass = class extends ProxyComponent {\n static override observedAttributes = observedProps\n ?.map(([, attribute]) => attribute)\n .filter((attribute) => attribute !== \"\");\n static override _properties = observedProperties;\n static override _asyncMethods = compactAsyncMethods ? compactAsyncMethods?.split(lazyMetaItemJoiner) : undefined;\n static override _syncMethods = compactSyncMethods?.split(lazyMetaItemJoiner);\n static override _name: string = tagName;\n\n constructor() {\n const isFirstInstanceOfType = !ProxyClass._loadPromise;\n if (isFirstInstanceOfType) {\n ProxyClass._loadPromise = load();\n ProxyClass._initializePrototype();\n }\n\n super();\n }\n };\n\n customElements.define(tagName, ProxyClass);\n}\n\nfunction parseCondensedProp(propAndAttribute: string): readonly [property: string, attribute: string] {\n const name = propAndAttribute.split(lazyMetaSubItemJoiner);\n return name.length === 1 ? [name[0], camelToKebab(name[0])] : (name as [string, string]);\n}\n\n/**\n * If this file is run from a Node.js environment, HTMLElement won't be defined.\n * Falling back to uselessly extending parseCondensedProp in that case\n * (that particular function chosen just because it already exists, rather than\n * needlessly creating mock class/function)\n * That will error if you try to instantiate a ProxyComponent in Node.js, but\n * that is expected - if you need to instantiate ProxyComponent, HTMLElement\n * must be defined\n */\nconst HtmlElement = globalThis.HTMLElement ?? parseCondensedProp;\n\n/**\n * A web-component that, once connected to the page, starts loading the actual\n * component, and set's up two-way forwarding of attributes and methods.\n *\n * It also makes the actual component render it's content in this 'proxy'\n * component, so as to have identical DOM structure for lazy vs non-lazy builds\n * (otherwise, css selectors may break)\n *\n * @internal\n */\nexport abstract class ProxyComponent extends HtmlElement {\n public static observedAttributes?: readonly string[];\n\n /** @internal */\n public static _loadPromise: Promise<Record<string, typeof LitElement>> | undefined;\n /** @internal */\n public static _LitConstructor?: typeof LitElement;\n /**\n * A list of instances of this component. This allows hot module replacement\n * to update all proxy component to use a new LitElement instance.\n *\n * @internal\n */\n public static _hmrInstances: WeakRef<ProxyComponent>[] | undefined;\n /** @internal */\n public static _hmrIndex: number | undefined;\n /** @internal */\n public static _properties?: readonly string[];\n /** @internal */\n public static _asyncMethods?: readonly string[];\n /** @internal */\n public static _syncMethods?: readonly string[];\n protected static _name: string;\n\n static readonly lumina = true;\n\n /** @internal */\n public static _initializePrototype(): void {\n /*\n * We must define each property on the component as soon as possible.\n * This is needed for (P)React to correctly set a property vs attribute\n * (it's doing a `propertyName in el` check, and ignoring non-literal\n * property values if property doesn't exist on the element)\n */\n this._properties?.forEach(this._bindProp, this);\n\n /*\n * For each async method, await component ready, before calling the method\n * on the actual component.\n */\n this._asyncMethods?.forEach(this._bindAsync, this);\n\n /*\n * For sync methods, we can't await the component ready, so must throw\n * (in development only to keep bundle smaller)\n */\n this._syncMethods?.forEach(this._bindSync, this);\n }\n\n private static _bindProp(propName: string): void {\n Object.defineProperty(this.prototype, propName, {\n configurable: true,\n enumerable: true,\n get(this: ProxyComponent) {\n return (this._store as Record<string, unknown>)[propName];\n },\n set(this: ProxyComponent, value: unknown) {\n (this._store as Record<string, unknown>)[propName] = value;\n if (process.env.NODE_ENV !== \"production\") {\n this._hmrSetProps.add(propName);\n }\n },\n });\n }\n\n private static _bindAsync(methodName: string): void {\n Object.defineProperty(this.prototype, methodName, {\n async value(this: ProxyComponent, ...args: readonly unknown[]) {\n if (!this._litElement) {\n await this._postLoaded.promise;\n }\n const genericLitElement = this._litElement as { method?: (...args: unknown[]) => Promise<unknown> };\n return await genericLitElement[methodName as \"method\"]!(...args);\n },\n configurable: true,\n writable: true,\n enumerable: true,\n });\n }\n\n private static _bindSync(methodName: string): void {\n Object.defineProperty(this.prototype, methodName, {\n value(this: ProxyComponent, ...args: readonly unknown[]) {\n if (process.env.NODE_ENV === \"development\" && !this._litElement) {\n const ProxyClass = this.constructor as typeof ProxyComponent;\n throw new Error(\n `Tried to call method ${methodName}() on <${ProxyClass._name}> component before it's fully loaded. Please do 'await component.componentOnReady();' before calling this method.`,\n );\n }\n const genericLitElement = this._litElement as { method?: (...args: unknown[]) => unknown };\n return genericLitElement[methodName as \"method\"]!(...args);\n },\n configurable: true,\n enumerable: true,\n });\n }\n\n /**\n * On HMR, preserve the values of all properties that at least once were set\n * by someone other than component itself.\n *\n * @internal\n */\n public _hmrSetProps = new Set<PropertyKey>();\n /** @internal */\n public _hmrSetAttributes = new Set<string>();\n /** @internal */\n public _litElement: LitElement | undefined;\n /** @internal */\n public _store: LitElement | Record<string, unknown> = {};\n /**\n * If attributeChangedCallback() is called before the LitElement is loaded,\n * store the attributes here, and replay later\n */\n private _pendingAttributes: string[] = [];\n\n /**\n * Resolved once LitElement's load() is complete.\n * Not read inside of this class, but needed for LitElement to determine if\n * it's closest ancestor finished load()\n */\n _postLoad = new Deferred<void>();\n /**\n * Resolved once LitElement's loaded() is complete\n */\n _postLoaded = new Deferred<void>();\n /**\n * Direct offspring that should be awaited before loaded() is emitted\n */\n _offspring: (Partial<Pick<LitElement, \"manager\">> & Pick<LitElement, \"componentOnReady\">)[] = [];\n /**\n * Promise that resolves once parent's load() completed. False if there is no\n * parent\n */\n _ancestorLoad?: Promise<void> | false;\n\n get manager(): ControllerManager | undefined {\n return this._litElement?.manager;\n }\n\n constructor() {\n super();\n\n this._saveInstanceProperties();\n const ProxyClass = this.constructor as typeof ProxyComponent;\n if (ProxyClass._LitConstructor) {\n // Key name does not matter here. Keeping it short to reduce bundle size\n this._initializeComponent({ a: ProxyClass._LitConstructor });\n } else {\n void ProxyClass._loadPromise!.then(this._initializeComponent.bind(this)).catch(this._postLoaded.reject);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n ProxyClass._hmrInstances ??= [];\n ProxyClass._hmrInstances.push(new WeakRef(this));\n }\n }\n\n /**\n * Until the custom element is registered on the page, an instance of that\n * element can be constructed and some properties on that instance set.\n *\n * These properties are set before the element prototype is set to this proxy\n * class and thus none of our getters/setters are yet registered - such\n * properties will be set by JavaScript on the instance directly.\n *\n * Once element is registered, the properties set in the meanwhile will shadow\n * the getter/setters, and thus break reactivity. The fix is to delete these\n * properties from the instance, and re-apply them once accessors are set.\n *\n * @example\n * ```ts\n * import { defineCustomElements } from '@arcgis/map-components';\n * const map = document.createElement('arcgis-map');\n * // This will shadow the getter/setters\n * map.itemId = '...';\n * // This finally defines the custom elements and sets the property accessors\n * defineCustomElements();\n * ```\n *\n * @remarks\n * This is an equivalent of the __saveInstanceProperties method in Lit's\n * ReactiveElement. Lit takes care of this on LitElement, but we have to take\n * care of this on the lazy proxy\n */\n protected _saveInstanceProperties(): void {\n const ProxyClass = this.constructor as typeof ProxyComponent;\n const genericThis = this as { key?: unknown };\n ProxyClass._properties?.forEach((propName) => {\n if (Object.hasOwn(this, propName)) {\n (this._store as Record<string, unknown>)[propName] = genericThis[propName as \"key\"];\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete genericThis[propName as \"key\"];\n }\n });\n }\n\n /*\n * This method must be statically present rather than added later, or else,\n * browsers won't call it. Same for connected and disconnected callbacks.\n */\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void {\n this._litElement?.attributeChangedCallback(name, oldValue, newValue);\n if (!this._litElement) {\n this._pendingAttributes.push(name);\n }\n if (process.env.NODE_ENV !== \"production\") {\n this._hmrSetAttributes.add(name);\n }\n }\n\n connectedCallback(): void {\n if (this._litElement) {\n this._litElement?.connectedCallback();\n } else {\n /**\n * We must notify the parent of our presence as soon as possible (before\n * the litElement is even downloaded) so that ancestor can wait for us to\n * finish loaded() before firing it's loaded().\n *\n * At the same time, lazy wrappers are registered in an alphabetical\n * order. In a DOM structure like arcgis-map > arcgis-home, connected will\n * be called for arcgis-home first, at which point arcgis-map is not yet\n * updated, and so does not yet look like a Lit Element. We must wait for\n * one microtask to allow for all proxies to register.\n */\n queueMicrotask(() => {\n this._ancestorLoad = attachToAncestor(this, this);\n });\n }\n }\n\n disconnectedCallback(): void {\n this._litElement?.disconnectedCallback();\n }\n\n /**\n * Create a promise that resolves once component is fully loaded\n */\n async componentOnReady(): Promise<LitElement> {\n await this._postLoaded.promise;\n return this._litElement!;\n }\n\n /** @internal */\n public _initializeComponent(module: Record<string, typeof LitElement>): void {\n const ProxyClass = this.constructor as typeof ProxyComponent;\n const tagName = ProxyClass._name;\n\n if (process.env.NODE_ENV !== \"production\") {\n Object.entries(module).forEach(([name, LitConstructor]) => {\n if (\n (name !== \"exportsForTests\" && typeof LitConstructor !== \"function\") ||\n typeof LitConstructor.tagName !== \"string\"\n ) {\n console.warn(\n `Found non-component export \"${name}\" in the file for the \"${tagName}\" component. This will interfere with hot module replacement. Please move \"${name}\" into a separate file.`,\n );\n }\n });\n }\n\n // Support multiple components in a single file\n const LitConstructor: typeof LitElement = Object.values(module).find(\n (LitConstructor) => LitConstructor.tagName === tagName,\n )!;\n\n if (process.env.NODE_ENV !== \"production\" && !LitConstructor) {\n throw new Error(\n `Unable to find the LitElement class for the \"${tagName}\" custom element in the lazy-loaded module`,\n );\n }\n\n /**\n * `customElements.define()` can't be called with the same tag twice.\n * When in HMR, we muse produce a unique tag name each time\n */\n const lazyTagName =\n process.env.NODE_ENV === \"production\"\n ? `${tagName}--lazy`\n : (ProxyClass._hmrIndex ?? 0) === 0\n ? `${tagName}--lazy`\n : `${tagName}--lazy-${ProxyClass._hmrIndex}`;\n\n /**\n * In production build, this condition is true only once per Lit element\n * constructor. In HMR, this condition is true every time the module is\n * reloaded\n */\n const isFirstInitialization = !ProxyClass._LitConstructor;\n if (isFirstInitialization) {\n ProxyClass._LitConstructor = LitConstructor;\n LitConstructor.prototype.removeAttribute = removeAttribute;\n LitConstructor.prototype.setAttribute = setAttribute;\n if (process.env.NODE_ENV !== \"production\" && LitConstructor.shadowRootOptions !== noShadowRoot) {\n devOnlyDetectIncorrectLazyUsages(Object.getPrototypeOf(LitConstructor) as typeof LitElement);\n }\n\n /*\n * You can't call custom element's constructor directly, so we need to\n * register it with a different tag name, and then create an instance of it\n */\n customElements.define(lazyTagName, LitConstructor);\n }\n\n // Create actual Lit element\n LitConstructor.lazy = this;\n const litElement = document.createElement(lazyTagName) as LitElement;\n LitConstructor.lazy = undefined;\n this._litElement = litElement;\n\n /**\n * Until Lit element was initialized, attributeChangedCallback may have been\n * called if some attributes were set early - replay those now.\n *\n * If the same attribute was set multiple times before initialization, then\n * this array will contain duplicates - that is ok - not worth the bundle\n * size increase to use new Set() here for this unlikely case.\n *\n * If both property and an equivalent attribute were set before\n * initialization, property always takes priority - this matches Lit's\n * native behavior.\n */\n this._pendingAttributes.forEach((name) => {\n const value = this.getAttribute(name);\n litElement.attributeChangedCallback(\n name,\n // Lit doesn't look at this value, thus even if attribute already exists, that's ok\n null,\n value,\n );\n });\n\n /*\n * Until Lit element is initialized, all properties set by the user were\n * stored on a dummy object. Now that Lit element is initialized, we can\n * copy over any values that were set.\n */\n Object.entries(this._store).forEach(syncLitElement, litElement);\n // From now on, any get/set on the proxy will be forwarded to the Lit element\n this._store = litElement;\n\n // Verify observed attribute list in lazy spec and actual element match\n if (process.env.NODE_ENV !== \"production\") {\n const litObserved = LitConstructor.observedAttributes ?? [];\n const lazyObserved = (ProxyClass as { observedAttributes?: string[] }).observedAttributes ?? [];\n const missingFromLazy = litObserved.filter((attribute) => !lazyObserved.includes(attribute));\n const missingFromLit = lazyObserved.filter((attribute) => !litObserved.includes(attribute));\n if (missingFromLazy.length > 0) {\n console.warn(\n `The following attributes on <${ProxyClass._name}> are present on the Lit element, but are missing from the lazy proxy component: ${missingFromLazy.join(\", \")}. This either indicates a bug in Lumina, or you are creating the attribute dynamically in a way that compiler can not infer statically. For these attributes, lazy-loading version of your component won't work correctly, thus this must be resolved`,\n );\n }\n if (missingFromLit.length > 0) {\n console.warn(\n `The following attributes on <${ProxyClass._name}> are defined on the lazy proxy component, but not on the actual Lit element: ${missingFromLit.join(\", \")}. This either indicates a bug in Lumina, or you are creating the attribute dynamically in a way that compiler can not infer statically. This is a non-critical issue, but does indicate that something is going wrong and should be fixed`,\n );\n }\n }\n\n // Note: we might have been disconnected while loading\n if (this.isConnected) {\n litElement.connectedCallback();\n }\n }\n}\n\n/**\n * When Lit calls this.removeAttribute, instead update the actual DOM element.\n */\nfunction removeAttribute(this: LitElement, qualifiedName: string): void {\n HTMLElement.prototype.removeAttribute.call(this.el, qualifiedName);\n}\n\n/**\n * When Lit calls this.setAttribute, instead update the actual DOM element.\n */\nfunction setAttribute(this: LitElement, qualifiedName: string, value: string): void {\n HTMLElement.prototype.setAttribute.call(this.el, qualifiedName, value);\n}\n\nfunction syncLitElement(this: { key?: unknown }, [key, value]: readonly [string, unknown]): void {\n this[key as \"key\"] = value;\n}\n","import type { LitElement } from \"./LitElement\";\n\n/**\n * When in lazy-build, the actual Lit element is never attached to the DOM.\n * Instead, a proxy element is present and should be used for all DOM actions.\n *\n * In practice, this means using this.el.getAttribute() instead of\n * this.getAttribute() and etc for each DOM method\n *\n * This code does not ship in production builds.\n */\nexport function devOnlyDetectIncorrectLazyUsages(LitClass: typeof LitElement): void {\n const genericPrototype = LitClass.prototype as { key?: unknown };\n const allowList = new Set([\n // We shouldn't be overwriting this property\n \"constructor\",\n // Called by Lit - we proxy it to this.el in ProxyComponent\n \"setAttribute\",\n ]);\n\n const customErrorMessages: Record<string, string | undefined> = {\n addEventListener: \"use this.listen() or this.el.addEventListener()\",\n };\n\n Object.entries({\n ...Object.getOwnPropertyDescriptors(HTMLElement.prototype),\n ...Object.getOwnPropertyDescriptors(Element.prototype),\n ...Object.getOwnPropertyDescriptors(Node.prototype),\n ...Object.getOwnPropertyDescriptors(EventTarget.prototype),\n })\n .filter(([key, { value }]) => typeof value === \"function\" && !allowList.has(key))\n .forEach(([key]) => {\n genericPrototype[key as \"key\"] = (...args: unknown[]): never => {\n /**\n * Called by Lit in SSR hydrate patch:\n * https://github.com/lit/lit/blob/a2cd76cfdea4ed717362bb1db32710d70550469d/packages/labs/ssr-client/src/lit-element-hydrate-support.ts#L71\n *\n * We don't care about it because our LitElement includes the above\n * hasAttribute call in it's connectedCallback.\n */\n if (key === \"hasAttribute\" && args[0] === \"defer-hydration\") {\n return false as never;\n }\n throw new Error(\n `You should not be calling this.${key}() directly as it won't work correctly in lazy-builds. Instead, ${customErrorMessages[key] ?? `use this.el.${key}()`}`,\n );\n };\n });\n}\n","import type { LitElement } from \"./LitElement\";\nimport type { ProxyComponent } from \"./lazyLoad\";\n\n/**\n * If there is a parent component, tell it to await it's loaded() until we\n * completed load().\n * Also, return a promise that will delay our load() until parent's load()\n * is completed.\n */\nexport function attachToAncestor(child: ProxyComponent[\"_offspring\"][number], el: HTMLElement): Promise<void> | false {\n let ancestor: Element | ParentNode | null = el;\n\n /**\n * Accessing \"parentNode\" to climb the light dom.\n * Accessing \"host\" to climb the shadow dom.\n */\n while ((ancestor = ancestor.parentNode ?? (ancestor as ShadowRoot).host)) {\n if ((ancestor?.constructor as typeof LitElement)?.lumina) {\n const litParent = ancestor as LitElement | ProxyComponent;\n if (!litParent.manager?.loadedCalled) {\n litParent._offspring.push(child);\n }\n return litParent._postLoad?.promise;\n }\n }\n return false;\n}\n","/**\n * Add this static property to your component to disable shadow root.\n *\n * @remarks\n * Without shadow root, any styles added using the `styles` property will\n * be applied to the entire DOM that the component is attached to, not just to\n * the insides of this component.\n *\n * @example\n * ```ts\n * static override shadowRootOptions = noShadowRoot;\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\nexport const noShadowRoot = {} as ShadowRootInit;\n\n/**\n * The above property is an empty object at runtime for bundle size reasons.\n * While empty object is not a valid shadowRootOption, it is never passed to\n * attachShadow() since we use this exact empty object as a magic value to opt\n * out of shadow root.\n */\n","import type { ModuleNamespace } from \"vite/types/hot.js\";\nimport type { LitElement } from \"./LitElement\";\nimport { ProxyComponent } from \"./lazyLoad\";\nimport { camelToKebab } from \"@arcgis/components-utils\";\n\n/**\n * Update web component proxies when a module is updated.\n *\n * @remarks\n * You should not need to call this function directly - it will be inserted\n * automatically when running in serve mode.\n */\nexport function handleHmrUpdate(newModules: (ModuleNamespace | undefined)[]): void {\n newModules.forEach((newModule) => {\n if (newModule === undefined) {\n return;\n }\n Object.values(newModule).forEach((exported) => {\n if (typeof exported !== \"function\" || typeof (exported as typeof LitElement).tagName !== \"string\") {\n return;\n }\n const LitConstructor = exported as typeof LitElement;\n\n const ProxyClass = customElements.get(LitConstructor.tagName) as typeof ProxyComponent | undefined;\n if (ProxyClass === undefined) {\n throw new Error(`Failed to find custom element proxy for tag name: ${LitConstructor.tagName}`);\n }\n\n // Trigger fresh initialization\n ProxyClass._LitConstructor = undefined;\n ProxyClass._loadPromise = undefined;\n\n // Prevent calling customElements.define() with the same tag name twice\n ProxyClass._hmrIndex ??= 0;\n ProxyClass._hmrIndex += 1;\n\n /**\n * Update proxy members. It is expected that handleComponentMetaUpdate()\n * was called before this, thus giving us an up-to-date lazy component\n * meta\n */\n ProxyClass._initializePrototype();\n\n // Update each instance\n ProxyClass._hmrInstances?.forEach((instanceWeakRef) => {\n const instance = instanceWeakRef.deref();\n if (instance === undefined) {\n return;\n }\n\n /**\n * If instance is not initialized yet, wait for it to be initialized\n * before replacing it.\n */\n if (instance._litElement === undefined) {\n void ProxyClass._loadPromise!.then(() => reInitialize(instance, newModule));\n } else {\n reInitialize(instance, newModule);\n }\n });\n\n return;\n });\n });\n}\n\n/**\n * Update web component proxy instance\n */\nfunction reInitialize(instance: ProxyComponent, newModule: ModuleNamespace): void {\n const PreviousLitConstructor = instance._litElement!.constructor as typeof LitElement;\n const properties = PreviousLitConstructor.elementProperties;\n /*\n * Preserve only properties that were set from outside the component\n * at least once. Without this check, we may end up trying to set a readonly\n * property, and thus triggering an exception.\n */\n const preservedProperties = Array.from(properties.entries())\n .filter(\n ([propertyName, descriptor]) =>\n typeof propertyName === \"string\" &&\n (instance._hmrSetProps.has(propertyName) ||\n (typeof descriptor.attribute === \"string\" && instance._hmrSetAttributes.has(descriptor.attribute))),\n )\n .map(([key]) => [key, (instance as { key?: unknown })[key as \"key\"]] as const);\n\n instance._store = Object.fromEntries(preservedProperties);\n\n const isConnected = instance.isConnected;\n /**\n * No need to remove old children from the element root because lit-html will\n * do that on re-render.\n * This is because while Lit reuses previous children if you render again with\n * the same template, the way Lit detects if template is the same requires\n * that the template also originate from the same place in the source code,\n * where as creating a new file during HMR will create a new file, thus\n * busting the cache.\n * See https://github.com/littledan/ecma262/commit/8b5698ad8d4a1e1b774821f4370178384edc8afd\n *\n * At the same time we are not removing the element itself from the DOM to\n * keep HMR less disruptive (i.e. not losing focus, etc).\n */\n if (isConnected) {\n instance._litElement!.disconnectedCallback();\n }\n\n instance._initializeComponent(newModule);\n}\n\nexport type HmrComponentMeta = {\n readonly tagName: string;\n /**\n * 2nd tuple element (\"attribute\") is missing when attribute name can be\n * trivially inferred from the property name (using camelToKebab()).\n * If 2nd tuple element is empty string, it means the property does not have\n * an attribute.\n */\n readonly properties: (readonly [property: string, attribute: string] | readonly [property: string])[];\n readonly asyncMethods: readonly string[];\n readonly syncMethods: readonly string[];\n};\n\n/**\n * Update lazy component meta\n *\n * @remarks\n * You should not need to call this function directly - it will be inserted\n * automatically when running in serve mode.\n */\nexport function handleComponentMetaUpdate(meta: HmrComponentMeta): void {\n const ProxyClass = customElements.get(meta.tagName) as typeof ProxyComponent | undefined;\n if (ProxyClass === undefined) {\n return;\n }\n\n /*\n * Empty string attribute means property does not have an attribute - filter\n * out such. Undefined attribute name means attribute is trivial - thus infer\n * it\n */\n const attributes = meta.properties\n .map(([property, attribute]) => attribute ?? camelToKebab(property))\n .filter(Boolean);\n\n observedAttributes[meta.tagName] ??= {};\n observedAttributes[meta.tagName]!.original ??= new Set(ProxyClass.observedAttributes);\n const originallyObserved = observedAttributes[meta.tagName]!.original!;\n observedAttributes[meta.tagName]!.manuallyObserved ??= new Set(\n /**\n * Never manually observe attributes that were in the original\n * observedAttributes as those would be observed by the browser\n */\n attributes.filter((attribute) => !originallyObserved.has(attribute)),\n );\n\n ProxyClass._asyncMethods = meta.asyncMethods;\n ProxyClass._syncMethods = meta.syncMethods;\n ProxyClass._properties = meta.properties.map(([name]) => name);\n /**\n * Changing observedAttributes after component is initialized won't make\n * browser watch the new attributes. We update observedAttributes anyway\n * because:\n * - Component code may be reading observedAttributes\n * - ProxyComponent has a validation check for proxy attributes matching Lit\n * element attributes. That validation relies on observedAttributes\n */\n ProxyClass.observedAttributes = attributes;\n}\n\n/**\n * Changing observedAttributes after component is initialized won't make\n * browser watch the new attributes. Instead, we overwrite setAttribute() on the\n * proxy to listen to attribute changes, and manually call\n * attributeChangedCallback if observed attribute was changed.\n *\n * We can not use MutationObserver for this because it is async. Lit's\n * reactive-element makes assumptions about .setAttribute() firing\n * attributeChangedCallback synchronously (for attribute reflect). Component\n * code may also rely on this behavior.\n *\n * Overwriting setAttribute() is a better option as then we can closer match the\n * semantics.\n *\n * @remarks\n * Not overwriting `setAttributeNS`, `setAttributeNode`, `setAttributeNodeNS`,\n * `removeAttributeNS`, `removeAttributeNode` to keep things simple as these\n * methods are rarely used on web components.\n */\n\n// Use Symbol.for over Symbol for stability across HMR\nconst observedAttributesSymbol = Symbol.for(\"@arcgis/lumina:observedAttributes\");\ntype GlobalThisWithObservedAttributes = typeof globalThis & {\n [observedAttributesSymbol]?: Record<\n string,\n | {\n manuallyObserved?: ReadonlySet<string>;\n original?: ReadonlySet<string>;\n }\n | undefined\n >;\n};\nconst globalThisWithObservedAttributes = globalThis as GlobalThisWithObservedAttributes;\nconst alreadyHadObservers = observedAttributesSymbol in globalThisWithObservedAttributes;\nglobalThisWithObservedAttributes[observedAttributesSymbol] ??= {};\nconst observedAttributes = globalThisWithObservedAttributes[observedAttributesSymbol];\n\n// This module may be called multiple times due to HMR, thus set observers only once\nif (!alreadyHadObservers) {\n const makeObserver = <ARGS extends unknown[], RETURN>(original: (qualifiedName: string, ...rest: ARGS) => RETURN) =>\n function observeAttributes(this: ProxyComponent, qualifiedName: string, ...rest: ARGS): RETURN {\n const observed = observedAttributes[this.tagName.toLowerCase()]?.manuallyObserved;\n if (observed?.has(qualifiedName)) {\n const oldValue = this.getAttribute(qualifiedName);\n const returns = original.call(this, qualifiedName, ...rest);\n const newValue = this.getAttribute(qualifiedName);\n this.attributeChangedCallback(qualifiedName, oldValue, newValue);\n return returns;\n } else {\n return original.call(this, qualifiedName, ...rest);\n }\n };\n\n ProxyComponent.prototype.setAttribute = makeObserver(ProxyComponent.prototype.setAttribute);\n ProxyComponent.prototype.toggleAttribute = makeObserver(ProxyComponent.prototype.toggleAttribute);\n ProxyComponent.prototype.removeAttribute = makeObserver(ProxyComponent.prototype.removeAttribute);\n}\n","import { Deferred, camelToKebab } from \"@arcgis/components-utils\";\nimport type { CSSResultGroup, CSSResultOrNative, PropertyValues } from \"lit\";\nimport { LitElement as OriginalLitElement, isServer } from \"lit\";\nimport type {\n LitElementPropertyDeclaration,\n LitElementWithChangedPropertiesMap,\n LitElementWithCreateEventFactory,\n} from \"@arcgis/components-controllers\";\nimport { useControllerManager } from \"@arcgis/components-controllers\";\nimport type { DevOnlyGlobalComponentRefCallback, Runtime } from \"./runtime\";\nimport { createEventFactory } from \"./createEvent\";\nimport type { ProxyComponent } from \"./lazyLoad\";\nimport { attachToAncestor } from \"./lifecycleSupport\";\nimport { noShadowRoot } from \"./utils\";\nimport { PropertyFlags } from \"./config\";\n\ntype ComponentLifecycle = {\n connectedCallback?: () => void;\n disconnectedCallback?: () => void;\n load?: () => Promise<void> | void;\n loaded?: () => void;\n};\n\nconst emptyFunction = (): undefined => undefined;\n\n/**\n * Base Lit class that should be used by all components instead of the original\n * Lit element.\n *\n * This class:\n * - Handles being used in a lazy-loading build\n * - Connects to the Controller Manager\n * - Provides load/loaded lifecycle hooks\n * (like componentWillLoad and componentDidLoad in Stencil)\n * - Provides a .listen() method like Stencil's \\@Listen decorator\n *\n * @remarks\n * Even though all components will extend this class, it is not exposed in the\n * public typings as we do not want to expose internal methods like\n * addController() and connectedCallback() to the public typings.\n *\n * Instead, `@arcgis/lumina-compiler` will make it appear that your component\n * extends `PublicLitElement`.\n *\n * `PublicLitElement` will never be called at runtime - it exists for typings\n * only.\n */\nexport class LitElement extends OriginalLitElement implements ComponentLifecycle {\n /** @internal */\n declare static runtime: Runtime;\n\n declare static tagName: string;\n\n static override finalizeStyles(styles?: CSSResultGroup): CSSResultOrNative[] {\n /**\n * In Node.js environment, css may be disabled. In that case some styles\n * be undefined or empty strings - filter them out here.\n */\n if (process.env.NODE_ENV === \"test\" && Array.isArray(styles)) {\n styles = styles.filter(Boolean);\n }\n\n const finalizedStyles = super.finalizeStyles(styles);\n\n const options = (this.constructor as typeof LitElement).shadowRootOptions;\n /**\n * Do not include common styles for non-shadow-root elements. If you want\n * to apply styles to these elements too, these should be global styles.\n */\n const useLightDom = options === noShadowRoot;\n\n /*\n * \"finalizeStyles()\" may be called by Lit several times, including before\n * customElement() set the runtime meta\n */\n return this.runtime?.commonStyles === undefined || useLightDom\n ? finalizedStyles\n : [this.runtime.commonStyles, ...finalizedStyles];\n }\n\n static override createProperty(\n name: PropertyKey,\n /**\n * While in vanilla Lit this type is always LitElementPropertyDeclaration,\n * in Lumina it is always number or\n * [number,LitElementPropertyDeclaration], so we don't even check for the\n * LitElementPropertyDeclaration case. LitElementPropertyDeclaration is here\n * only to satisfy the type checker.\n */\n options?: LitElementPropertyDeclaration | number | [number, LitElementPropertyDeclaration],\n ): void {\n const flags = typeof options === \"number\" ? options : Array.isArray(options) ? options[0] : 0;\n const rest = Array.isArray(options) ? options[1] : undefined;\n\n super.createProperty(name, {\n /**\n * By default to infer attribute name from property name, Lit just\n * converts property name to lowercase. That is consistent with\n * native DOM attributes.\n *\n * However, that is not consistent with Stencil and would be a\n * breaking change for us. Also, kebab-case is more common among the\n * web components. But the most important reason is that we have\n * some pretty long attribute names, which would be utterly\n * unreadable in lowercase.\n *\n * Also, if browsers add new attributes, that may cause a conflict\n * with our attributes.\n *\n * Thus, overwriting Lit's default behavior to use kebab-case:\n */\n attribute: !!(flags & PropertyFlags.ATTRIBUTE) && typeof name === \"string\" ? camelToKebab(name) : false,\n reflect: !!(flags & PropertyFlags.REFLECT),\n type: flags & PropertyFlags.BOOLEAN ? Boolean : flags & PropertyFlags.NUMBER ? Number : undefined,\n /**\n * At the moment in Lit, state:true just means attribute:false, so this\n * line is technically redundant, but let's keep it here just in case Lit\n * will add more meaning to state:true in the future.\n */\n state: !!(flags & PropertyFlags.STATE),\n // Controllers add this option to Lit\n readOnly: !!(flags & PropertyFlags.READ_ONLY),\n noAccessor: !!(flags & PropertyFlags.NO_ACCESSOR),\n ...rest,\n } satisfies LitElementPropertyDeclaration);\n }\n\n /**\n * Since we can't pass arguments to web component constructor, before lazy\n * loading logic calls document.createElement(), it temporary sets this static\n * property.\n *\n * @internal\n * */\n static lazy: ProxyComponent | undefined;\n\n static readonly lumina = true;\n\n /**\n * In lazy build, the actual DOM element differs from the class instance:\n * - \"this.el\" is a proxy custom element - it's physically present in the DOM\n * even before the Lit component is loaded.\n * - \"this\" is the actual Lit component - in case of Lazy builds, it's\n * never directly attached to the DOM. Instead, all interactions with the\n * proxy are forwarded to the actual Lit component. And, when Lit wants to\n * render, it renders into the shadow root of the proxy.\n *\n * \"this.el\" should be used instead of \"this\" for all things involving the\n * DOM (addEventListener, querySelector, children, setAttribute,\n * MutationObserver, etc...)\n *\n * @example\n * ```ts\n * // Generally, you shouldn't have to write logic specific to lazy or non-lazy\n * // build, but if you have to, you can detect if you are in a lazy build like so:\n * const isLazy = this.el !== this;\n * ```\n */\n el: HTMLElement = (this.constructor as typeof LitElement).lazy ?? (this as unknown as HTMLElement);\n\n /**\n * Controller Manager orchestrates all components used by this component,\n * connecting their lifecycle hooks and providing context information.\n */\n manager = useControllerManager(this);\n\n /**\n * Map with keys for any properties that have changed since the last\n * update cycle with previous values.\n *\n * Do not access this directly as this value is only set during the update\n * lifecycle. Instead, use the `changes` property that is provided\n * to the shouldUpdate(), willUpdate() and didUpdate() lifecycle hooks.\n *\n * @internal\n *\n * @remarks\n * The name does not start with `_` because in the future we may configure the\n * minifier to mangle such properties - but this property is accessed from\n * outside this package, so should not be mangled.\n */\n $changes!: PropertyValues;\n\n /** @internal */\n _postLoad: ProxyComponent[\"_postLoad\"] =\n (this.constructor as typeof LitElement).lazy?._postLoad ?? new Deferred<void>();\n\n /**\n * Direct offspring that should be awaited before loaded() is emitted.\n *\n * `attachToAncestor()` will add elements to this array\n *\n * @internal\n */\n _offspring: ProxyComponent[\"_offspring\"] = (this.constructor as typeof LitElement).lazy?._offspring ?? [];\n\n /**\n * Promise that resolves once parent's load() completed. False if there is no\n * parent\n *\n * @internal\n */\n _ancestorLoad: ProxyComponent[\"_ancestorLoad\"] = (this.constructor as typeof LitElement).lazy?._ancestorLoad;\n\n private _originalShouldUpdate?: typeof this.shouldUpdate;\n private _enableUpdating: (success: boolean) => void;\n private _postLoaded: ProxyComponent[\"_postLoaded\"] =\n (this.constructor as typeof LitElement).lazy?._postLoaded ?? new Deferred<void>();\n\n constructor() {\n super();\n\n // Disable Lit updates until our load() lifecycle is complete\n this._enableUpdating = this.enableUpdating;\n this.enableUpdating = emptyFunction;\n\n /**\n * If component defined shouldUpdate(), then overwrite it with our version\n * just so that we can definitely receive a reference to changedProperties\n */\n const ourShouldUpdate = LitElement.prototype.shouldUpdate;\n if (this.shouldUpdate !== ourShouldUpdate) {\n this._originalShouldUpdate = this.shouldUpdate;\n this.shouldUpdate = ourShouldUpdate;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n (globalThis as DevOnlyGlobalComponentRefCallback).devOnly$luminaComponentRefCallback?.(this);\n }\n\n /**\n * During SSR, the connectedCallback, load and loaded lifecycles don't\n * happen. Thus, we need to add hydrated attribute ahead of time. Otherwise,\n * if initial html sent by the server does not include the hydrated\n * attribute, then the element won't be visible on the page until the\n * loaded() lifecycle, negating most benefits of SSR.\n */\n if (isServer) {\n this.el.setAttribute((this.constructor as typeof LitElement).runtime.hydratedAttribute, \"\");\n }\n }\n\n override connectedCallback(): void {\n /**\n * Lit's hydrate support patch ignores connectedCallback until the\n * defer-hydration attribute is replaced. That attribute is used to ensure\n * parent components are hydrated before children during SSR hydration.\n *\n * @see https://github.com/lit/lit/blob/a2cd76cfdea4ed717362bb1db32710d70550469d/packages/labs/ssr-client/src/lit-element-hydrate-support.ts#L71\n *\n * Lit does it by calling this.hasAttribute. However, since in lazy loading\n * the attribute is on this.el instead, we can either patch hasAttribute\n * to check on this.el (which is what we do for setAttribute and\n * removeAttribute in ./lazyLoad.ts) OR, we can do the check ourselves.\n *\n * The other reason we do the check here is that we want to know if Lit's\n * connectedCallback() will be a noop, so that we don't start load() yet.\n *\n * @remarks\n * While we are able to delay all controllers logic, and load() lifecycle\n * till defer-hydration is removed, we can't delay the logic that is in\n * the connectedCallback directly on the component - in SSR build, that may\n * execute before the parent component is fully hydrated.\n * If that is an issue in some component, they can either check for\n * defer-hydration themselves, or use hostConnected() controller hook.\n */\n if (this.el.hasAttribute(\"defer-hydration\")) {\n return;\n }\n\n const isFirstCall = !this.manager.connectedCalled;\n super.connectedCallback();\n\n if (isFirstCall) {\n /**\n * Regarding `queueMicrotask()` here:\n * For non-lazy builds, we don't control the order in which elements are\n * registered. In a DOM structure like arcgis-map > arcgis-home, connected\n * callback may be called for arcgis-home first, at which point arcgis-map\n * is not yet updated, and so does not yet look like a LitElement. We\n * must wait for one microtask to allow all components to load. That way,\n * when _load() finally calls attachToAncestor(), it correctly identifies\n * it's parent as being a LitElement.\n * This also matches the behavior in Stencil.\n *\n * Regarding `.catch()` here:\n * By only rejecting _postLoaded here in case of failure, but not\n * _postLoad, we get two things:\n * - If parent component fails to load, the children will be \"frozen\"\n * (will never load, and never resolve their promise) - thus preventing\n * any cascading errors.\n * - The component failing will not reject the children loading promises,\n * and thus not pollute the console with duplicate error messages.\n *\n * The above are the case because children components are awaiting the\n * _postLoad promise on the component before they do their load().\n *\n * If someone is awaiting _postLoaded (i.e via .componentOnReady()), they\n * will receive the promise rejection (only in the case that this exact\n * component failed, rather than it's parent), and be able to handle it.\n * If no one is listening for this promise rejection, then it is an\n * unhandled promise, and so the browser/Node will surface it up. Doing\n * console.error here will be redundant, add bundle size and make testing\n * components more complicated (since will have to mock the console.error\n * too, rather than simply handle the componentOnReady promise).\n */\n queueMicrotask(() => void this._load().catch(this._postLoaded.reject));\n }\n }\n\n /**\n * Overwrite Lit's default behavior of attaching shadow root to the lit\n * element, and instead use this.el to support lazy builds.\n *\n * Also, support the case when component asked to not use shadow root\n */\n protected override createRenderRoot(): DocumentFragment | HTMLElement {\n /**\n * Shadow root will already be present in two cases:\n * - component has declarative shadow DOM (usually because we are being\n * rendered in SSR)\n * - during re-rendering in HMR\n */\n const existingShadowRoot = this.el.shadowRoot;\n\n const Class = this.constructor as typeof LitElement;\n const options = Class.shadowRootOptions;\n const useLightDom = options === noShadowRoot;\n\n const renderRoot = existingShadowRoot ?? (useLightDom ? this.el : this.el.attachShadow(options));\n /**\n * This is a readonly property, so can't simply do `this.shadowRoot =`\n */\n Object.defineProperty(this, \"shadowRoot\", {\n // Create shadow root on the proxy instance, to make Lit render content there\n value: renderRoot,\n });\n\n if (existingShadowRoot) {\n if (process.env.NODE_ENV === \"production\") {\n /**\n * When in SSR, Lit's hydrate support patch overwrites default\n * createRenderRoot with a custom one. The custom one sets\n * `this._$needsHydration = true` flag, which tells Lit to hydrate the\n * shadow root on first render.\n *\n * @see https://github.com/lit/lit/blob/a2cd76cfdea4ed717362bb1db32710d70550469d/packages/labs/ssr-client/src/lit-element-hydrate-support.ts#L81\n *\n * Since we are overwriting Lit's default createRenderRoot with a custom\n * implementation, we miss out on that behavior. `this._$needsHydration`\n * is a private property that gets minified in production build.\n * It is minified to a stable name, but still it's risky to rely on\n * that fact.\n *\n * @see https://github.com/lit/lit/blob/a2cd76cfdea4ed717362bb1db32710d70550469d/rollup-common.js#L117\n *\n * Instead, if this.shadowRoot already exists, the current\n * implementation of createRenderRoot in the hydrate patch does nothing\n * besides setting the `_$needsHydration` flag - thus, we call it here.\n *\n * Only do this in production because in development we are presumably\n * not in SSR, and thus createRenderRoot is not patched. Lit's default\n * createRenderRoot attaches styles, which we don't want to do as we\n * have custom logic for that.\n */\n (OriginalLitElement as typeof LitElement).prototype.createRenderRoot.call(this);\n }\n return existingShadowRoot;\n }\n\n const domRoot = renderRoot.getRootNode() as ShadowRoot;\n /**\n * Can't use Lit's adoptStyles() because it replaces the styles rather than\n * adds to them - that is ok for shadow root, but not for light dom, where\n * we want the element to add to the document styles, not replace them\n */\n domRoot.adoptedStyleSheets = [\n ...domRoot.adoptedStyleSheets,\n ...Class.elementStyles.map((stylesheet) => (\"styleSheet\" in stylesheet ? stylesheet.styleSheet! : stylesheet)),\n ];\n return renderRoot;\n }\n\n /** Do asynchronous component load */\n private async _load(): Promise<void> {\n const parentLoadPromise = this._ancestorLoad ?? attachToAncestor(this, this);\n if (parentLoadPromise) {\n await parentLoadPromise;\n }\n\n // This will call load() on all controllers, and then on the component itself\n await this.manager._load();\n\n // Start up Lit's updating lifecycles\n this._enableUpdating(true);\n /*\n * While Lit will schedule an update automatically once we call\n * enableUpdating, we want to know exactly when update lifecycle completed\n * so that we can do our loaded() logic. That is why, we manually perform\n * the update ahead of schedule - Lit supports this workflow. Once the\n * scheduled update comes around, it will be a no-op.\n */\n this.performUpdate();\n\n /*\n * At this point component load is complete.\n * Let children load before emitting loaded()\n */\n\n // This will unblock children components from loading\n this._postLoad.resolve();\n\n /**\n * Microtask delay to give a chance to all newly rendered children to\n * call attachToAncestor() and add themselves to this._offspring. This is\n * needed because we use queueMicrotask() in connectedCallback() in\n * LitElement and ProxyComponent classes. See comments in\n * connectedCallback() for reasons why.\n */\n await Promise.resolve();\n\n // Wait for all children to load\n const pendingChildren = this._offspring.filter((loaded) => !loaded.manager?.loadedCalled);\n if (pendingChildren.length) {\n await Promise.allSettled(pendingChildren.map(async (child) => await child.componentOnReady()));\n }\n // Remove references to children to prevent memory leaks\n this._offspring.length = 0;\n\n // Unhide this element in the UI (it was hidden during loading to prevent jumping)\n this.el.setAttribute((this.constructor as typeof LitElement).runtime.hydratedAttribute, \"\");\n\n // This will call loaded() on all controllers, and then on the component itself\n this.manager._loaded();\n this._postLoaded.resolve();\n }\n\n /**\n * Overwriting default shouldUpdate simply to get access to\n * \"changedProperties\" so that we can later provide it to ControllerManager\n */\n protected override shouldUpdate(_changedProperties: PropertyValues): boolean {\n /**\n * Using \"satisfies\" to establish a \"contract\" clearly showing that\n * Controllers package expects LitElement to provide this property of this\n * type\n */\n (this satisfies LitElementWithChangedPropertiesMap).$changes = _changedProperties;\n return this._originalShouldUpdate?.(_changedProperties) ?? true;\n }\n\n /**\n * A helper for setting event listener on the current component.\n *\n * The event listener will be removed automatically when component\n * disconnects, and added back if component re-comments, thus you don't have\n * to clean it up manually.\n *\n * @remarks\n * This listens for any event on the component or one of it's children.\n * If you only want to listen for events originating from the component itself\n * use `const isSelf = event.target === this.el;` to check.\n *\n * @example\n * ```tsx\n * constructor() {\n * // Handle click will only be called while component is connected\n * this.listen('click', this.handleClick);\n * }\n * handleClick(event: MouseEvent):void {\n * console.log('clicked');\n * }\n * ```\n */\n listen<K extends keyof HTMLElementEventMap>(\n type: K,\n listener: (this: this, event: HTMLElementEventMap[K]) => unknown,\n options?: AddEventListenerOptions | boolean,\n ): void;\n listen(\n type: string,\n listener: (this: this, event: Event) => unknown,\n options?: AddEventListenerOptions | boolean,\n ): void;\n listen(\n name: string,\n listener: (this: this, event: Event) => unknown,\n options: AddEventListenerOptions | boolean,\n ): void {\n const boundListener: EventListenerOrEventListenerObject = (listener as EventListener)?.bind(this) ?? listener;\n this.manager.onLifecycle(() => {\n this.el.addEventListener(name, boundListener, options);\n return (): void => this.el.removeEventListener(name, boundListener, options);\n });\n }\n\n /**\n * A helper for setting even listener on any element (or window / document).\n *\n * The event listener will be removed automatically when component\n * disconnects, and added back if component re-comments, thus you don't have\n * to clean it up manually.\n *\n * Use cases:\n * - Listening for pointer events on the top-most element\n * - Listening to events that are emitted exclusively on document/window/body\n * - Imperatively listening for events on children components\n * - Listening for events on non-Element objects (like Worker, WebSocket, etc)\n * - Your component could emit a custom event, and then listen for that event\n * on the window. This lets consumer of the component handle the event and\n * stop propagation - and if they didn't and event reached the window, your\n * component can handle the event itself using the default behavior.\n *\n * @example\n * ```tsx\n * constructor() {\n * // Handle click will only be called while component is connected\n * this.listenOn(window, 'click', this.handleWindowClick);\n * }\n * handleWindowClick(event: MouseEvent):void {\n * console.log('clicked');\n * }\n * ```\n */\n listenOn<Name extends keyof WindowEventMap>(\n target: Window,\n name: Name,\n listener: Listener<this, WindowEventMap[Name] & { currentTarget: Window }>,\n options?: AddEventListenerOptions | boolean,\n ): void;\n listenOn<Name extends keyof DocumentEventMap>(\n target: Document,\n name: Name,\n listener: Listener<this, DocumentEventMap[Name] & { currentTarget: Document }>,\n options?: AddEventListenerOptions | boolean,\n ): void;\n listenOn<Name extends keyof HTMLElementEventMap>(\n target: HTMLElement,\n name: Name,\n listener: Listener<this, HTMLElementEventMap[Name] & { currentTarget: HTMLElement }>,\n options?: AddEventListenerOptions | boolean,\n ): void;\n listenOn<\n EventType extends\n Event = CustomEvent<\"Provide type like this.listenOn<CustomEvent<MyType>>() to get type-checked payload type\">,\n Target = EventTarget,\n >(\n target: Target,\n name: string,\n listener: Listener<this, EventType & { currentTarget: Target }>,\n options?: AddEventListenerOptions | boolean,\n ): void;\n listenOn(\n target: EventTarget,\n name: string,\n listener: Listener<this, Event>,\n options?: AddEventListenerOptions | boolean,\n ): void {\n const boundListener: Listener<this, Event> = (listener as EventListener)?.bind(this) ?? listener;\n this.manager.onLifecycle(() => {\n target.addEventListener(name, boundListener, options);\n return (): void => target.removeEventListener(name, boundListener, options);\n });\n }\n\n /**\n * Create a promise that resolves once component is fully loaded.\n *\n * @example\n * const map = document.createElement('arcgis-map');\n * document.body.append(map);\n * map.componentOnReady().then(() => {\n * console.log('Map is ready to go!');\n * });\n */\n async componentOnReady(): Promise<this> {\n await this._postLoaded.promise;\n return this;\n }\n}\n\n/**\n * Expose the createEventFactory for use in `@arcgis/components-controllers`\n * package without forcing the controllers package to declare a dependency\n * on `@arcgis/lumina` (as that would cause a circular dependency and inflate\n * bundle size for Stencil consumers).\n */\n(LitElement as Partial<LitElementWithCreateEventFactory>).createEvent = createEventFactory;\n\nif (process.env.NODE_ENV !== \"production\") {\n const globalWithLit = globalThis as { litIssuedWarnings?: Set<string> };\n globalWithLit.litIssuedWarnings ??= new Set();\n /**\n * Disable this warning as it only applies when using standard decorators,\n * which we don't use.\n * In the future, once we use standard decorators, code can be refactored to\n * wrap the `@property()` decorator in custom logic rather than overwriting\n * createProperty() - until then, createProperty() overwrite is more efficient.\n */\n globalWithLit.litIssuedWarnings.add(\n \"Overriding ReactiveElement.createProperty() is deprecated. The override will not be called with standard decorators See https://lit.dev/msg/no-override-create-property for more information.\",\n );\n}\n\ntype Listener<ThisType, EventType> =\n | ((this: ThisType, event: EventType) => unknown)\n | {\n // Disable covariance checks\n // eslint-disable-next-line @typescript-eslint/method-signature-style\n handleEvent(event: EventType): unknown;\n };\n","import type { CSSResult } from \"lit\";\nimport type { LitElement } from \"./LitElement\";\n\n/**\n * `@arcgis/lumina` package may be bundled once but used by multiple packages with\n * different configuration options. For that reason, the configuration options\n * can not be a global object, but has to be an object that you pass around.\n */\nexport type Runtime = RuntimeOptions & {\n /**\n * Get the base path to where the package assets can be found.\n * By default, the package asset path is set to \"https://js.arcgis.com/<simplified-package-name>/<released-verion>/\".\n * We are hosting our assets on a CDN (Content Delivery Network) to ensure fast and reliable access.\n * It is CORS-enabled, so you can load the assets from any domain.\n * Use \"setAssetPath(path)\" if the path needs to be customized.\n */\n readonly getAssetPath: (suffix: string) => string;\n\n /**\n * Used to manually set the base path where package assets (like localization\n * and icons) can be found.\n *\n * By default, the package asset path is set to \"https://js.arcgis.com/<simplified-package-name>/<released-verion>/\".\n * For example, \"https://js.arcgis.com/map-components/4.30/\".\n * We are hosting our assets on a CDN (Content Delivery Network) to ensure fast and reliable access.\n * It is CORS-enabled, so you can load the assets from any domain.\n * This is the recommended way to load the assets and avoid bundling them with your application.\n * It means that by default, you don't need to use \"setAssetPath\" since the path is already set.\n *\n * However, if you need to host the assets locally, you can use \"setAssetPath\" to set the base path.\n * If the script is used as \"module\", it's recommended to use \"import.meta.url\",\n * such as \"setAssetPath(import.meta.url)\". Other options include\n * \"setAssetPath(document.currentScript.src)\", or using a bundler's replace plugin to\n * dynamically set the path at build time, such as \"setAssetPath(process.env.ASSET_PATH)\".\n * But do note that this configuration depends on how your script is bundled, or lack of\n * bundling, and where your assets can be loaded from. Additionally custom bundling\n * will have to ensure the static assets are copied to its build directory.\n */\n readonly setAssetPath: (path: URL | string) => void;\n\n /**\n * The customElement decorator. Unlike default Lit's decorator this one\n * provides runtime instance to the LitElement class\n *\n * @remarks\n * You do not need to call this decorator in your component.\n * It will be added automatically at build time.\n *\n * Instead, make sure your component file has the following:\n * ```ts\n * declare global {\n * interface DeclareElements {\n * \"arcgis-your-component\": ArcgisYourComponent;\n * }\n * }\n * ```\n */\n readonly customElement: (tagName: string, component: typeof LitElement) => void;\n};\n\nexport type RuntimeOptions = {\n /**\n * The default asset path to use in NPM and CDN builds.\n *\n * This option will be set by Lumina compiler based on the value of the\n * `assets.defaultPath` option in the `useLumina()` plugin.\n */\n readonly defaultAssetPath: string;\n\n /**\n * The attribute that indicates a component has rendered it's content.\n * Usually this attribute is added after your component's `loaded()` lifecycle\n * happened. However, during SSR, \"hydrated\" is added right away on the\n * server.\n *\n * Until element has this attribute, it will have `visibility:hidden` style\n * applied.\n *\n * This option will be set by the Lumina compiler based on the value of\n * the `css.hydratedAttribute` option in the `useLumina()` plugin.\n */\n readonly hydratedAttribute: string;\n\n /**\n * Styles that you wish to make available in each component's shadow root, but\n * to not apply outside the shadow root\n *\n * This option will be set by Lumina compiler based on the value of the\n * `css.commonStylesPath` option in the `useLumina()` plugin.\n */\n readonly commonStyles?: CSSResult;\n};\n\n/**\n * The options object will be provided by Lumina compiler at build-time.\n * It should not be specified in the source code.\n */\nexport function makeRuntime(options?: RuntimeOptions): Runtime {\n let assetPath: string;\n const setAssetPath = (path: URL | string): void => {\n assetPath = new URL(path, globalThis.location?.href).href;\n };\n const runtime: Runtime = {\n ...options!,\n // FEATURE: research https://vitejs.dev/guide/build.html#advanced-base-options\n getAssetPath(suffix: string): string {\n const assetUrl = new URL(suffix, assetPath);\n return assetUrl.origin !== globalThis.location?.origin ? assetUrl.href : assetUrl.pathname;\n },\n setAssetPath,\n customElement(tagName: string, component: typeof LitElement): void {\n component.runtime = runtime;\n /*\n * Used by lazy-loading to uniquely identify this component if there are\n * multiple defined in a file\n */\n component.tagName = tagName;\n\n // Lazy version of this element might have already been defined\n if (!customElements.get(tagName)) {\n customElements.define(tagName, component as CustomElementConstructor);\n }\n },\n };\n setAssetPath(options!.defaultAssetPath);\n\n if (process.env.NODE_ENV !== \"production\") {\n (globalThis as DevOnlyGlobalRuntime).devOnly$luminaRuntime = runtime;\n }\n\n return runtime;\n}\n\n/**\n * Exposing the reference to the runtime globally when in tests or development.\n * This is primarily for usage by dynamically created components in tests\n */\nexport type DevOnlyGlobalRuntime = typeof globalThis & {\n devOnly$luminaRuntime?: Runtime;\n};\n\n/**\n * Called from the component constructor when in development or test mode.\n * Used primarily by mount to get a reference to the rendered component.\n */\nexport type DevOnlyGlobalComponentRefCallback = typeof globalThis & {\n devOnly$luminaComponentRefCallback?: (component: LitElement) => void;\n};\n","/**\n * This reference directive is removed by tsup at compile time. It is only\n * needed to correctly type-check this package. For consumers of this package,\n * they should have an `./src/lumina.ts` file like so:\n * ```ts\n * /// <reference types=\"@arcgis/lumina/typings\" />\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path=\"../typings/jsxGlobals.ts\" />\n\n/* eslint-disable @typescript-eslint/no-empty-interface */\nimport type { Properties as CssProperties } from \"csstype\";\nimport type { TemplateResult } from \"lit-html\";\nimport type { DirectiveResult } from \"lit-html/directive.js\";\nimport type { ClassMapDirective } from \"lit-html/directives/class-map.js\";\nimport type { StyleMapDirective } from \"lit-html/directives/style-map.js\";\nimport type { Ref } from \"lit-html/directives/ref.js\";\nimport { directive as litDirective } from \"lit-html/directive.js\";\nimport { noChange as litNoChange, nothing as litNothing } from \"lit-html\";\nimport type { ClassInfo } from \"lit/directives/class-map.js\";\nimport type { DirectiveClass } from \"lit/directive.js\";\n\n/**\n * The \"h\" namespace is used to import JSX types for elements and attributes.\n * It is imported in order to avoid conflicting global JSX issues.\n */\nexport declare namespace h {\n // TypeScript does not type-check the JSX function signature\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export function h(sel: any, data?: any, text?: any): TemplateResult;\n\n export type { LitJsx as JSX };\n}\n\n/**\n * Fragment\n *\n * @remarks\n * This function is not actually defined in the code since references to it will\n * be removed at build time by the jsxToLitHtml plugin.\n */\nexport declare function Fragment(props: { children?: JsxNode }): TemplateResult;\n\n/**\n * @remarks\n * This function is not actually defined in the code since references to it will\n * be removed at build time by the jsxToLitHtml plugin.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport declare function h(sel: any, data?: any, text?: any): TemplateResult;\n\n/**\n * @remarks\n * This function is not actually defined in the code since references to it will\n * be removed at build time by the jsxToLitHtml plugin.\n */\nexport declare function jsx(type: string, props: unknown, key?: unknown): JsxNode;\n\n/**\n * @remarks\n * This function is not actually defined in the code since references to it will\n * be removed at build time by the jsxToLitHtml plugin.\n */\nexport declare function jsxs(type: string, props: unknown, key?: unknown): JsxNode;\n\n/**\n * The JSX to lit-html conversion has a heuristic to determine whether a prop\n * should be converted to a property or attribute at runtime. In cases where\n * that heuristic is not sufficient, you can use the `bindAttribute()` function to\n * explicitly tell the conversion to treat the prop as an attribute.\n *\n * This function call will be erased at build-time, thus it has no runtime\n * impact. But that also means you should not call this function anywhere other\n * than at the top level of a JSX prop value\n *\n * @example\n * ```tsx\n * <my-component\n * name={bindAttribute(\"Pass name as attribute rather than property\")}\n * />\n * ```\n *\n * Will be converted at build time into:\n * ```ts\n * html`<my-component name=\"Pass name as attribute rather than property\"></my-component>`\n * ```\n *\n * @remarks\n * If you often encounter cases where the JSX to lit-html incorrectly converts\n * the prop to a property necessitating the use of `bindAttribute()`, please open\n * an issue for Lumina.\n */\nexport const bindAttribute = undefined as unknown as <T>(value: T) => T;\n\n/**\n * The JSX to lit-html conversion has a heuristic to determine whether a prop\n * should be converted to a property, attribute or boolean attribute at runtime.\n * In cases where that heuristic is not sufficient, you can use the\n * `bindBooleanAttribute()` function to explicitly tell the conversion to treat the\n * prop as a boolean attribute.\n *\n * This function call will be erased at build-time, thus it has no runtime\n * impact. But that also means you should not call this function anywhere other\n * than at the top level of a JSX prop value\n *\n * @see https://lit.dev/docs/templates/expressions/#boolean-attribute-expressions\n *\n * @example\n * ```tsx\n * <my-component\n * checked={bindBooleanAttribute(myBoolean)}\n * />\n * ```\n *\n * Will be converted at build time into:\n * ```ts\n * html`<my-component ?checked=${myBoolean}></my-component>`\n * ```\n *\n * @remarks\n * If you often encounter cases where the JSX to lit-html incorrectly converts\n * the prop necessitating the use of `bindBooleanAttribute()`, please open\n * an issue for Lumina.\n */\nexport const bindBooleanAttribute = undefined as unknown as <T>(value: T) => T;\n\n/**\n * The JSX to lit-html conversion has a heuristic to determine whether a prop\n * should be converted to a property or attribute at runtime. In cases where\n * that heuristic is not sufficient, you can use the `bindProperty()` function to\n * explicitly tell the conversion to treat the prop as a property.\n *\n * This function call will be erased at build-time, thus it has no runtime\n * impact. But that also means you should not call this function anywhere other\n * than at the top level of a JSX prop value\n *\n * @example\n * ```tsx\n * <my-component\n * my-prop={bindProperty(\"Pass my-prop as a property rather than attribute\")}\n * />\n * ```\n *\n * Will be converted at build time into:\n * ```ts\n * html`<my-component .my-prop=\"Pass my-prop as a property rather than attribute\"></my-component>`\n * ```\n *\n * @remarks\n * If you often encounter cases where the JSX to lit-html incorrectly converts\n * the prop to an attribute necessitating the use of `bindProperty()`, please open\n * an issue for Lumina.\n *\n * @remarks\n * This function is not named `property()` because that is already taken by\n * Lit's \\@property() decorator\n */\nexport const bindProperty = undefined as unknown as <T>(value: T) => T;\n\n/**\n * The `bindEvent()` function lets you customize the event binding behavior by\n * providing options like passive, capture, once and other options that you\n * normally can provide to `addEventListener`\n *\n * This function call will be erased at build-time, thus it has no runtime\n * impact.\n *\n * @example\n * ```tsx\n * <my-component\n * onScroll={bindEvent({ handleEvent: console.log, passive:true })}\n * />\n * ```tsx\n *\n * ```ts\n * html`<my-component onScroll=${{ handleEvent: console.log, passive:true }}></my-component>`\n * ```\n *\n * @remarks\n * This function is a _JSX to lit-html_ adaptation of the Lit's event listener\n * customization syntax.\n * See https://lit.dev/docs/components/events/#event-options-decorator\n *\n *\n * @remarks\n * This function is not named `event` because there is a legacy `window.event`\n * global that was interfering with auto-imports of this function.\n */\nexport const bindEvent = undefined as unknown as <T>(\n descriptor: T | (AddEventListenerOptions & { handleEvent: T }),\n) => T;\n\nexport type JsxNode =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | DirectiveResult<any>\n | JsxNodeArray\n | Node\n | TemplateResult\n | boolean\n | number\n | (NonNullable<unknown> & string)\n | null\n | undefined;\n\n/**\n * Equivalent to Lit's \"nothing\", but has type \"never\" to allow it to be set as a\n * value for any JSX attribute.\n *\n * By default in Lit, nullish attribute value renders to an attribute without a\n * value (which is interpreted by HTML as \"true\"). To tell Lit that you don't\n * want the attribute to be present, use the `nothing` value.\n *\n * @example\n * ```tsx\n * <a href={this.href ?? nothing}>{this.label}</a>\n * ```\n *\n * @remarks\n * This is not a concern for properties as they are passed as is without\n * serialization. For this reason, during _JSX to lit-html_ conversion, most JSX\n * props are converted properties, except for the few cases when an attribute\n * has no equivalent property.\n */\nexport const nothing: never = litNothing as never;\n\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n *\n * @remarks\n * This is equivalent to Lit's native \"noChange\", but has type \"never\" to allow\n * it be set as a value for any JSX attribute.\n */\nexport const noChange: never = litNoChange as never;\n\n/**\n * Creates a user-facing directive function from a Directive class. This\n * function has the same parameters as the directive's render() method.\n *\n * @remarks\n * This is equivalent to Lit's native \"directive()\", but has return type\n * \"never\" to allow it be set as a value for any JSX attribute.\n */\nexport const directive = litDirective as <C extends DirectiveClass>(\n c: C,\n) => (...values: Parameters<InstanceType<C>[\"render\"]>) => never;\n\ninterface JsxNodeArray extends Array<JsxNode> {}\n\n/**\n * These typings are based on dom-expressions typings:\n * https://github.com/ryansolid/dom-expressions/blob/main/packages/dom-expressions/src/jsx.d.ts\n *\n * They in turn based the typings on Surplus and Inferno:\n * - https://github.com/adamhaile/surplus/blob/master/index.d.ts\n * - https://github.com/infernojs/inferno/blob/master/packages/inferno/src/core/types.ts\n *\n * Documentation about how to type JSX in TypeScript:\n * https://www.typescriptlang.org/docs/handbook/jsx.html\n */\n\ntype DOMElement = Element;\n\n/* eslint-disable @typescript-eslint/sort-type-constituents */\n/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n\nexport declare namespace LitJsx {\n /**\n * Whether to pick TemplateResult or JsxNode here is a compromise.\n *\n * - If I tell it Lit JSX type is JsxNode, then even <a /> expression will\n * have a very broad JsxNode type (union of template results, null,\n * undefined, false, and more). This may slow down type-checking and may be\n * too-broad for certain use cases.\n * - Since <a /> would be typed very broad, you won't be able to declare\n * your function as receiving just TemplateResult\n * - Also, this makes TypeScript not allow you to return undefined from\n * your functional component\n * - This is what React did and what I am going with\n * - If I tell TypeScript that JSX type is TemplateResult, then my function\n * component is no longer allowed to return undefined or string or etc.\n *\n * This is mainly a TypeScript limitation. Issues tracking this:\n * - https://github.com/microsoft/TypeScript/issues/21699\n * - https://github.com/DefinitelyTyped/DefinitelyTyped/issues/18912\n *\n */\n type Element = TemplateResult;\n\n /*\n * Class-based components are not supported. All custom elements are to be\n * invoked as <intrinsic-elements>.\n */\n interface ElementClass {}\n interface ElementAttributesProperty {}\n interface IntrinsicClassAttributes {}\n\n interface ElementChildrenAttribute {\n children: JsxNode;\n }\n interface IntrinsicAttributes {\n /**\n * The `key` is a special attribute that can be set on any element.\n *\n * At build-time it is translated into the `keyed()` directive:\n * https://lit.dev/docs/templates/directives/#keyed\n *\n * @remarks\n * Unlike in React or Stencil, any JavaScript value is acceptable as a key\n */\n key?: unknown;\n }\n interface IntrinsicElements\n extends HTMLElementTags,\n SVGElementTags,\n ReMappedComponents<globalThis.DeclareElements>,\n Omit<ReMapStencilComponents<globalThis.ImportStencilElements>, keyof HTMLElementTags | keyof SVGElementTags> {}\n\n /**\n * By not requiring to have some sort of typings generation watcher to run\n * in the background and generate types for the components based on the\n * exposed properties, we improve developer experience a lot.\n * (no need to run a watcher in the background, no need to commit an\n * autogenerated file, fewer merge conflicts...)\n *\n * The trade-off is that we can't tell in TypeScript if component's public\n * properties have a `@property()` decorator or not, so have to expose them\n * all. To reduce the noise, we exclude some properties that we know are\n * definitely not props (as they are coming from LitElement)\n *\n * An ESLint rule that mandates all properties to be private/protected or else\n * to have a `@property()` decorator would mitigate the issue to a large\n * extent.\n *\n * This does not impact the typings we publish - at build time we have all the\n * information and can generate the typings that expose only the actual\n * properties component declared.\n */\n type ExcludedProperties =\n | \"renderRoot\"\n | \"isUpdatePending\"\n | \"hasUpdated\"\n | \"addController\"\n | \"removeController\"\n | \"connectedCallback\"\n | \"disconnectedCallback\"\n | \"attributeChangedCallback\"\n | \"requestUpdate\"\n | \"updateComplete\"\n | \"el\"\n | \"manager\"\n | \"componentOnReady\"\n | \"listen\"\n | \"load\"\n | \"loaded\"\n | \"willUpdate\"\n | \"updated\"\n | \"render\"\n | \"renderOptions\";\n\n type ReMappedComponents<Components> = {\n [Key in keyof Components]: ComponentProps<Components[Key]>;\n };\n\n /**\n * * A utility type for getting the JSX prop types for a given component\n *\n * - Exclude LitElement properties that should not be exposed to the end-user\n * - Convert event .emit() properties into event callbacks\n * - Replace original HTMLElement property typings with the ones we provide for\n * greater type-safety and control\n * - For native events listeners, make currentTarget equal to the component's\n * HTML instance\n *\n * We mark all component properties as optional because there is no easy\n * way for us to differentiate between public component properties and just\n * regular members that don't have `@property()` decorator (presence or\n * absence of decorator does not change the type). Thus, if we don't mark all\n * properties as optional, TypeScript will force us to provide a value for all\n * methods, and regular properties component may have.\n */\n export type ComponentProps<Component> = Partial<\n Omit<Component, FindEventProperties<Component> | ExcludedProperties | keyof HTMLElement>\n > & {\n [Key in FindEventProperties<Component> as `on${Key & string}`]?: (\n event: Omit<Component[Key], \"emit\"> & { currentTarget: Component },\n ) => void;\n } & HTMLAttributes<Component>;\n\n type FindEventProperties<Component> = {\n [Key in keyof Component]: Component[Key] extends CustomEvent\n ? // Excluding \"any\"\n unknown extends Component[Key]\n ? never\n : Key\n : never;\n }[keyof Component];\n\n /**\n * - Make ref prop return HTMLElement rather than Stencil element type\n * - Uncapitalize the event properties to match the syntax of React 19,\n * Preact and Lumina\n * - Replace Stencil's HTMLElement property typings with the ones we provide\n * for greater type-safety, better documentation and more control\n */\n type ReMapStencilComponents<Components> = {\n [Key in keyof Pick<Components, keyof Components & keyof HTMLElementTagNameMap>]: ReMapStencilComponent<\n Components[Key]\n > &\n HTMLAttributes<HTMLElementTagNameMap[Key]>;\n };\n\n type ReMapStencilComponent<Component> = {\n [Key in keyof Component as Key extends \"ref\" | keyof HTMLElement\n ? never\n : FixupStencilEventCasing<Key>]: Component[Key];\n };\n\n type FixupStencilEventCasing<PropertyName extends PropertyKey> = PropertyName extends `on${infer EventName}`\n ? `on${Uncapitalize<EventName>}`\n : PropertyName;\n\n type EventHandlerUnion<T, E extends Event> = (\n e: E & {\n currentTarget: T;\n target: DOMElement;\n },\n ) => void;\n\n type InputEventHandlerUnion<T, E extends InputEvent> = (\n e: E & {\n currentTarget: T;\n target: T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement ? T : DOMElement;\n },\n ) => void;\n\n type ChangeEventHandlerUnion<T, E extends Event> = (\n e: E & {\n currentTarget: T;\n target: T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement ? T : DOMElement;\n },\n ) => void;\n\n type FocusEventHandlerUnion<T, E extends FocusEvent> = (\n e: E & {\n currentTarget: T;\n target: T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement ? T : DOMElement;\n },\n ) => void;\n\n /* Bivariance hack for consistent unsoundness with Ref<T> */\n // eslint-disable-next-line @typescript-eslint/method-signature-style\n export type RefCallback<T> = { bivarianceHack(instance: T | undefined): void }[\"bivarianceHack\"];\n\n export interface CustomAttributes<T = HTMLElement> {\n /**\n * The `key` is a special attribute that can be set on any element.\n *\n * At build-time it is translated into the `keyed()` directive:\n * https://lit.dev/docs/templates/directives/#keyed\n *\n * @remarks\n * Unlike in React or Stencil, any JavaScript value is acceptable as a key\n */\n key?: unknown;\n ref?: RefCallback<T> | Ref<T>;\n directives?: readonly DirectiveResult[];\n }\n\n // FEATURE: Can we piggy-back on HTML typings more? Or auto-generate typings from typescript to keep them up to date?\n export interface DOMAttributes<T = HTMLElement> extends CustomAttributes<T>, GlobalEventHandlersCamelCase<T> {\n children?: JsxNode;\n innerHTML?: string;\n innerText?: string | number;\n textContent?: string | number;\n class?: string | ClassInfo | DirectiveResult<typeof ClassMapDirective>;\n }\n\n export interface GlobalEventHandlersCamelCase<T = HTMLElement> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationcancel_event) */\n onAnimationCancel?: EventHandlerUnion<T, AnimationEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event) */\n onAnimationEnd?: EventHandlerUnion<T, AnimationEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event) */\n onAnimationIteration?: EventHandlerUnion<T, AnimationEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event) */\n onAnimationStart?: EventHandlerUnion<T, AnimationEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/auxclick_event) */\n onAuxClick?: EventHandlerUnion<T, MouseEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/beforeinput_event) */\n onBeforeInput?: InputEventHandlerUnion<T, InputEvent>;\n /**\n * Fires when the object loses the input focus.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/blur_event)\n */\n onBlur?: FocusEventHandlerUnion<T, FocusEvent>;\n /**\n * Fires when the contents of the object or selection have changed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/change_event)\n */\n onChange?: ChangeEventHandlerUnion<T, Event>;\n /**\n * Fires when the user clicks the left mouse button on the object\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/click_event)\n */\n onClick?: EventHandlerUnion<T, MouseEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/compositionend_event) */\n onCompositionEnd?: EventHandlerUnion<T, CompositionEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/compositionstart_event) */\n onCompositionStart?: EventHandlerUnion<T, CompositionEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/compositionupdate_event) */\n onCompositionUpdate?: EventHandlerUnion<T, CompositionEvent>;\n /**\n * Fires when the user clicks the right mouse button in the client area, opening the context menu.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/contextmenu_event)\n */\n onContextMenu?: EventHandlerUnion<T, MouseEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/copy_event) */\n onCopy?: EventHandlerUnion<T, ClipboardEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/cut_event) */\n onCut?: EventHandlerUnion<T, ClipboardEvent>;\n /**\n * Fires when the user double-clicks the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/dblclick_event)\n */\n onDblClick?: EventHandlerUnion<T, MouseEvent>;\n /**\n * Fires on the source object continuously during a drag operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drag_event)\n */\n onDrag?: EventHandlerUnion<T, DragEvent>;\n /**\n * Fires on the source object when the user releases the mouse at the close of a drag operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragend_event)\n */\n onDragEnd?: EventHandlerUnion<T, DragEvent>;\n /**\n * Fires on the target element when the user drags the object to a valid drop target.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragenter_event)\n */\n onDragEnter?: EventHandlerUnion<T, DragEvent>;\n /**\n * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragleave_event)\n */\n onDragLeave?: EventHandlerUnion<T, DragEvent>;\n /**\n * Fires on the target element continuously while the user drags the object over a valid drop target.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragover_event)\n */\n onDragOver?: EventHandlerUnion<T, DragEvent>;\n /**\n * Fires on the source object when the user starts to drag a text selection or selected object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragstart_event)\n */\n onDragStart?: EventHandlerUnion<T, DragEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drop_event) */\n onDrop?: EventHandlerUnion<T, DragEvent>;\n\n onEncrypted?: EventHandlerUnion<T, Event>;\n /**\n * Fires when an error occurs during object loading.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event)\n */\n onError?: EventHandlerUnion<T, Event>;\n /**\n * Fires when the object receives focus.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event)\n */\n onFocus?: FocusEventHandlerUnion<T, FocusEvent>;\n /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/focusout_event) */\n onFocusOut?: FocusEventHandlerUnion<T, FocusEvent>;\n /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/focusin_event) */\n onFocusIn?: FocusEventHandlerUnion<T, FocusEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenchange_event) */\n onFullscreenChange?: EventHandlerUnion<T, Event>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenerror_event) */\n onFullscreenError?: EventHandlerUnion<T, Event>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/gotpointercapture_event) */\n onGotPointerCapture?: EventHandlerUnion<T, PointerEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/input_event) */\n onInput?: InputEventHandlerUnion<T, InputEvent>;\n /**\n * Fires when the user presses a key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keydown_event)\n */\n onKeyDown?: EventHandlerUnion<T, KeyboardEvent>;\n /**\n * Fires when the user releases a key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keyup_event)\n */\n onKeyUp?: EventHandlerUnion<T, KeyboardEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lostpointercapture_event) */\n onLostPointerCapture?: EventHandlerUnion<T, PointerEvent>;\n /**\n * Fires when the user clicks the object with either mouse button.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousedown_event)\n */\n onMouseDown?: EventHandlerUnion<T, MouseEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseenter_event) */\n onMouseEnter?: EventHandlerUnion<T, MouseEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseleave_event) */\n onMouseLeave?: EventHandlerUnion<T, MouseEvent>;\n /**\n * Fires when the user moves the mouse over the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousemove_event)\n */\n onMouseMove?: EventHandlerUnion<T, MouseEvent>;\n /**\n * Fires when the user moves the mouse pointer outside the boundaries of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseout_event)\n */\n onMouseOut?: EventHandlerUnion<T, MouseEvent>;\n /**\n * Fires when the user moves the mouse pointer into the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseover_event)\n */\n onMouseOver?: EventHandlerUnion<T, MouseEvent>;\n /**\n * Fires when the user releases a mouse button while the mouse is over the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseup_event)\n */\n onMouseUp?: EventHandlerUnion<T, MouseEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/paste_event) */\n onPaste?: EventHandlerUnion<T, ClipboardEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointercancel_event) */\n onPointerCancel?: EventHandlerUnion<T, PointerEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerdown_event) */\n onPointerDown?: EventHandlerUnion<T, PointerEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerenter_event) */\n onPointerEnter?: EventHandlerUnion<T, PointerEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerleave_event) */\n onPointerLeave?: EventHandlerUnion<T, PointerEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointermove_event) */\n onPointerMove?: EventHandlerUnion<T, PointerEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerout_event) */\n onPointerOut?: EventHandlerUnion<T, PointerEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerover_event) */\n onPointerOver?: EventHandlerUnion<T, PointerEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerup_event) */\n onPointerUp?: EventHandlerUnion<T, PointerEvent>;\n /**\n * Fires when the user repositions the scroll box in the scroll bar on the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scroll_event)\n */\n onScroll?: EventHandlerUnion<T, Event>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollend_event) */\n onScrollEnd?: EventHandlerUnion<T, Event>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/securitypolicyviolation_event) */\n onSecurityPolicyViolation?: EventHandlerUnion<T, SecurityPolicyViolationEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/selectstart_event) */\n onSelectStart?: EventHandlerUnion<T, Event>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchcancel_event) */\n onTouchCancel?: EventHandlerUnion<T, TouchEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchend_event) */\n onTouchEnd?: EventHandlerUnion<T, TouchEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchmove_event) */\n onTouchMove?: EventHandlerUnion<T, TouchEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchstart_event) */\n onTouchStart?: EventHandlerUnion<T, TouchEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitioncancel_event) */\n onTransitionCancel?: EventHandlerUnion<T, TransitionEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event) */\n onTransitionEnd?: EventHandlerUnion<T, TransitionEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionrun_event) */\n onTransitionRun?: EventHandlerUnion<T, TransitionEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionstart_event) */\n onTransitionStart?: EventHandlerUnion<T, TransitionEvent>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/wheel_event) */\n onWheel?: EventHandlerUnion<T, WheelEvent>;\n }\n\n type HTMLAutocapitalize = \"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\";\n type HTMLDir = \"ltr\" | \"rtl\" | \"auto\";\n type HTMLFormEncType = \"application/x-www-form-urlencoded\" | \"multipart/form-data\" | \"text/plain\";\n type HTMLFormMethod = \"post\" | \"get\" | \"dialog\";\n type HTMLCrossOrigin = \"anonymous\" | \"use-credentials\" | \"\";\n type HTMLReferrerPolicy =\n | \"no-referrer\"\n | \"no-referrer-when-downgrade\"\n | \"origin\"\n | \"origin-when-cross-origin\"\n | \"same-origin\"\n | \"strict-origin\"\n | \"strict-origin-when-cross-origin\"\n | \"unsafe-url\";\n type HTMLIframeSandbox =\n | \"allow-downloads-without-user-activation\"\n | \"allow-downloads\"\n | \"allow-forms\"\n | \"allow-modals\"\n | \"allow-orientation-lock\"\n | \"allow-pointer-lock\"\n | \"allow-popups\"\n | \"allow-popups-to-escape-sandbox\"\n | \"allow-presentation\"\n | \"allow-same-origin\"\n | \"allow-scripts\"\n | \"allow-storage-access-by-user-activation\"\n | \"allow-top-navigation\"\n | \"allow-top-navigation-by-user-activation\"\n | \"allow-top-navigation-to-custom-protocols\";\n type HTMLLinkAs =\n | \"audio\"\n | \"document\"\n | \"embed\"\n | \"fetch\"\n | \"font\"\n | \"image\"\n | \"object\"\n | \"script\"\n | \"style\"\n | \"track\"\n | \"video\"\n | \"worker\";\n\n /**\n * All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/\n *\n * @remarks\n * If attribute is settable as a property, that is preferred - such aria\n * attributes are in camelCase in this interface. Some are settable as\n * DOM attribute only - such names are in kebab-case.\n */\n export interface AriaAttributes {\n /**\n * Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.\n *\n * @remarks\n * While HTML attributes on regular HTML elements are case-insensitive, when\n * the same common attributes are set on a foreign HTML elements (SVG/Math),\n * they are case sensitive. Thus, we can't author this as\n * \"aria-activeDescendant\"\n */\n [\"aria-activedescendant\"]?: string;\n ariaActiveDescendantElement?: HTMLElement;\n /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */\n ariaAtomic?: boolean | \"false\" | \"true\";\n /**\n * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be\n * presented if they are made.\n */\n ariaAutoComplete?: \"none\" | \"inline\" | \"list\" | \"both\";\n /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */\n ariaBusy?: boolean | \"false\" | \"true\";\n /**\n * Indicates the current \"checked\" state of checkboxes, radio buttons, and other widgets.\n * @see ariaPressed\n * @see ariaSelected\n */\n ariaChecked?: boolean | \"false\" | \"mixed\" | \"true\";\n /**\n * Defines the total number of columns in a table, grid, or treegrid.\n * @see ariaColIndex\n */\n ariaColCount?: number | string;\n /**\n * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.\n * @see ariaColCount\n * @see ariaColSpan\n */\n ariaColIndex?: number | string;\n /**\n * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.\n * @see ariaColIndex\n * @see ariaRowSpan\n */\n ariaColSpan?: number | string;\n /**\n * Identifies the element (or elements) whose contents or presence are controlled by the current element.\n * @see ariaOwns.\n */\n [\"aria-controls\"]?: string;\n ariaControlsElements?: HTMLElement[];\n /** Indicates the element that represents the current item within a container or set of related elements. */\n ariaCurrent?: boolean | \"false\" | \"true\" | \"page\" | \"step\" | \"location\" | \"date\" | \"time\";\n /**\n * Identifies the element (or elements) that describes the object.\n * @see aria-labelledby\n */\n [\"aria-describedby\"]?: string;\n ariaDescribedByElements?: HTMLElement;\n /**\n * Identifies the element that provides a detailed, extended description for the object.\n * @see aria-describedby\n */\n [\"aria-details\"]?: string;\n ariaDetailsElements?: HTMLElement;\n /**\n * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.\n * @see ariaHidden\n * @see ariaReadonly\n */\n ariaDisabled?: boolean | \"false\" | \"true\";\n /**\n * Identifies the element that provides an error message for the object.\n * @see ariaInvalid\n * @see aria-describedby\n */\n [\"aria-errormessage\"]?: string;\n ariaErrorMessageElements?: HTMLElement;\n /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */\n ariaExpanded?: boolean | \"false\" | \"true\";\n /**\n * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,\n * allows assistive technology to override the general default of reading in document source order.\n */\n [\"aria-flowto\"]?: string;\n ariaFlowToElements?: HTMLElement;\n /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */\n ariaHasPopup?: boolean | \"false\" | \"true\" | \"menu\" | \"listbox\" | \"tree\" | \"grid\" | \"dialog\";\n /**\n * Indicates whether the element is exposed to an accessibility API.\n * @see ariaDisabled\n */\n ariaHidden?: boolean | \"false\" | \"true\";\n /**\n * Indicates the entered value does not conform to the format expected by the application.\n * @see aria-errormessage\n */\n ariaInvalid?: boolean | \"false\" | \"true\" | \"grammar\" | \"spelling\";\n /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */\n ariaKeyShortcuts?: string;\n /**\n * Defines a string value that labels the current element.\n * @see aria-labelledby\n */\n ariaLabel?: string;\n /**\n * Identifies the element (or elements) that labels the current element.\n * @see aria-describedby\n */\n [\"aria-labelledby\"]?: string;\n ariaLabelledByElements?: HTMLElement;\n /** Defines the hierarchical level of an element within a structure. */\n ariaLevel?: number | string;\n /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */\n ariaLive?: \"off\" | \"assertive\" | \"polite\";\n /** Indicates whether an element is modal when displayed. */\n ariaModal?: boolean | \"false\" | \"true\";\n /** Indicates whether a text box accepts multiple lines of input or only a single line. */\n ariaMultiLine?: boolean | \"false\" | \"true\";\n /** Indicates that the user may select more than one item from the current selectable descendants. */\n ariaMultiSelectable?: boolean | \"false\" | \"true\";\n /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */\n ariaOrientation?: \"horizontal\" | \"vertical\";\n /**\n * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship\n * between DOM elements where the DOM hierarchy cannot be used to represent the relationship.\n * @see aria-controls\n */\n [\"aria-owns\"]?: string;\n ariaOwnsElements?: HTMLElement;\n /**\n * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.\n * A hint could be a sample value or a brief description of the expected format.\n */\n ariaPlaceholder?: string;\n /**\n * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.\n * @see ariaSetSize.\n */\n ariaPosInSet?: number | string;\n /**\n * Indicates the current \"pressed\" state of toggle buttons.\n * @see ariaChecked\n * @see ariaSelected\n */\n ariaPressed?: boolean | \"false\" | \"mixed\" | \"true\";\n /**\n * Indicates that the element is not editable, but is otherwise operable.\n * @see ariaDisabled\n */\n ariaReadOnly?: boolean | \"false\" | \"true\";\n /**\n * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.\n * @see ariaAtomic\n */\n ariaRelevant?:\n | \"additions\"\n | \"additions removals\"\n | \"additions text\"\n | \"all\"\n | \"removals\"\n | \"removals additions\"\n | \"removals text\"\n | \"text\"\n | \"text additions\"\n | \"text removals\";\n /** Indicates that user input is required on the element before a form may be submitted. */\n ariaRequired?: boolean | \"false\" | \"true\";\n /** Defines a human-readable, author-localized description for the role of an element. */\n ariaRoleDescription?: string;\n /**\n * Defines the total number of rows in a table, grid, or treegrid.\n * @see ariaRowIndex\n */\n ariaRowCount?: number | string;\n /**\n * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.\n * @see ariaRowCount\n * @see ariaRowSpan\n */\n ariaRowIndex?: number | string;\n /**\n * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.\n * @see ariaRowIndex\n * @see ariaColSpan\n */\n ariaRowSpan?: number | string;\n /**\n * Indicates the current \"selected\" state of various widgets.\n * @see ariaChecked\n * @see ariaPressed\n */\n ariaSelected?: boolean | \"false\" | \"true\";\n /**\n * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.\n * @see ariaPosInSet\n */\n ariaSetSize?: number | string;\n /** Indicates if items in a table or grid are sorted in ascending or descending order. */\n ariaSort?: \"none\" | \"ascending\" | \"descending\" | \"other\";\n /** Defines the maximum allowed value for a range widget. */\n ariaValueMax?: number | string;\n /** Defines the minimum allowed value for a range widget. */\n ariaValueMin?: number | string;\n /**\n * Defines the current value for a range widget.\n * @see ariaValueText.\n */\n ariaValueNow?: number | string;\n /** Defines the human readable text alternative of ariaValueNow for a range widget. */\n ariaValueText?: string;\n role?:\n | \"alert\"\n | \"alertdialog\"\n | \"application\"\n | \"article\"\n | \"banner\"\n | \"button\"\n | \"cell\"\n | \"checkbox\"\n | \"columnheader\"\n | \"combobox\"\n | \"complementary\"\n | \"contentinfo\"\n | \"definition\"\n | \"dialog\"\n | \"directory\"\n | \"document\"\n | \"feed\"\n | \"figure\"\n | \"form\"\n | \"grid\"\n | \"gridcell\"\n | \"group\"\n | \"heading\"\n | \"img\"\n | \"link\"\n | \"list\"\n | \"listbox\"\n | \"listitem\"\n | \"log\"\n | \"main\"\n | \"marquee\"\n | \"math\"\n | \"menu\"\n | \"menubar\"\n | \"menuitem\"\n | \"menuitemcheckbox\"\n | \"menuitemradio\"\n | \"meter\"\n | \"navigation\"\n | \"none\"\n | \"note\"\n | \"option\"\n | \"presentation\"\n | \"progressbar\"\n | \"radio\"\n | \"radiogroup\"\n | \"region\"\n | \"row\"\n | \"rowgroup\"\n | \"rowheader\"\n | \"scrollbar\"\n | \"search\"\n | \"searchbox\"\n | \"separator\"\n | \"slider\"\n | \"spinbutton\"\n | \"status\"\n | \"switch\"\n | \"tab\"\n | \"table\"\n | \"tablist\"\n | \"tabpanel\"\n | \"term\"\n | \"textbox\"\n | \"timer\"\n | \"toolbar\"\n | \"tooltip\"\n | \"tree\"\n | \"treegrid\"\n | \"treeitem\";\n }\n\n export interface HTMLAttributes<T = HTMLElement> extends AriaAttributes, DOMAttributes<T>, RdfaAttributes {\n accessKey?: string;\n dir?: HTMLDir;\n draggable?: boolean;\n hidden?: boolean | \"hidden\" | \"until-found\";\n id?: string;\n inert?: boolean;\n lang?: string;\n spellcheck?: boolean;\n style?: CssProperties | string | DirectiveResult<typeof StyleMapDirective>;\n title?: string;\n translate?: boolean;\n popover?: boolean | \"manual\" | \"auto\";\n slot?: string;\n part?: string;\n contentEditable?: boolean | \"plaintext-only\" | \"inherit\";\n tabIndex?: number | string;\n autocapitalize?: HTMLAutocapitalize;\n itemProp?: string;\n itemScope?: boolean;\n itemType?: string;\n itemId?: string;\n itemRef?: string;\n exportParts?: string;\n inputMode?: \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | \"search\";\n }\n\n interface RdfaAttributes {\n about?: string;\n datatype?: string;\n inList?: string;\n prefix?: string;\n property?: string;\n rel?: string;\n resource?: string;\n rev?: string;\n typeof?: string;\n vocab?: string;\n }\n\n interface AnchorHTMLAttributes<T> extends HTMLAttributes<T> {\n /**\n * Provide empty string, or file name\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#download\n */\n download?: string;\n href?: string;\n hreflang?: string;\n media?: string;\n ping?: string;\n rel?: string;\n target?: string;\n type?: string;\n referrerPolicy?: HTMLReferrerPolicy;\n }\n interface AudioHTMLAttributes<T> extends MediaHTMLAttributes<T> {}\n interface AreaHTMLAttributes<T> extends HTMLAttributes<T> {\n alt?: string;\n coords?: string;\n /**\n * Provide empty string, or file name\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#download\n */\n download?: string;\n href?: string;\n hreflang?: string;\n ping?: string;\n rel?: string;\n shape?: \"rect\" | \"circle\" | \"poly\" | \"default\";\n target?: string;\n referrerPolicy?: HTMLReferrerPolicy;\n }\n interface BaseHTMLAttributes<T> extends HTMLAttributes<T> {\n href?: string;\n target?: string;\n }\n interface BlockquoteHTMLAttributes<T> extends HTMLAttributes<T> {\n cite?: string;\n }\n interface ButtonHTMLAttributes<T> extends HTMLAttributes<T> {\n autofocus?: boolean;\n disabled?: boolean;\n form?: string;\n name?: string;\n type?: \"submit\" | \"reset\" | \"button\";\n value?: string | number;\n formAction?: string;\n formEnctype?: HTMLFormEncType;\n formMethod?: HTMLFormMethod;\n formNoValidate?: boolean;\n formTarget?: string;\n popoverTarget?: string;\n popoverTargetElement?: HTMLElement;\n popoverTargetAction?: \"hide\" | \"show\" | \"toggle\";\n }\n interface CanvasHTMLAttributes<T> extends HTMLAttributes<T> {\n width?: number | string;\n height?: number | string;\n }\n interface ColHTMLAttributes<T> extends HTMLAttributes<T> {\n span?: number | string;\n width?: number | string;\n }\n interface ColgroupHTMLAttributes<T> extends HTMLAttributes<T> {\n span?: number | string;\n }\n interface DataHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: string | number;\n }\n interface DetailsHTMLAttributes<T> extends HTMLAttributes<T> {\n open?: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/toggle_event) */\n onToggle?: EventHandlerUnion<T, Event>;\n }\n interface DialogHTMLAttributes<T> extends HTMLAttributes<T> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/open) */\n open?: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/returnValue) */\n returnValue?: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/cancel_event) */\n onCancel?: EventHandlerUnion<T, Event>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close_event) */\n onClose?: EventHandlerUnion<T, Event>;\n }\n interface EmbedHTMLAttributes<T> extends HTMLAttributes<T> {\n height?: number | string;\n src?: string;\n type?: string;\n width?: number | string;\n }\n interface FieldsetHTMLAttributes<T> extends HTMLAttributes<T> {\n disabled?: boolean;\n form?: string;\n name?: string;\n }\n interface FormHTMLAttributes<T> extends HTMLAttributes<T> {\n acceptCharset?: string;\n action?: string;\n encoding?: HTMLFormEncType;\n enctype?: HTMLFormEncType;\n method?: HTMLFormMethod;\n name?: string;\n target?: string;\n noValidate?: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */\n onFormData?: EventHandlerUnion<T, FormDataEvent>;\n /**\n * Fires when the user resets a form.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset_event)\n */\n onReset?: EventHandlerUnion<T, Event>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit_event) */\n onSubmit?: EventHandlerUnion<\n T,\n Event & {\n submitter: HTMLElement;\n }\n >;\n }\n interface IframeHTMLAttributes<T> extends HTMLAttributes<T> {\n allow?: string;\n allowFullscreen?: boolean;\n height?: number | string;\n loading?: \"eager\" | \"lazy\";\n name?: string;\n sandbox?: HTMLIframeSandbox | string;\n src?: string;\n srcdoc?: string;\n width?: number | string;\n referrerPolicy?: HTMLReferrerPolicy;\n }\n interface ImgHTMLAttributes<T> extends HTMLAttributes<T> {\n alt?: string;\n decoding?: \"sync\" | \"async\" | \"auto\";\n height?: number | string;\n isMap?: boolean;\n loading?: \"eager\" | \"lazy\";\n referrerPolicy?: HTMLReferrerPolicy;\n sizes?: string;\n src?: string;\n srcset?: string;\n useMap?: string;\n width?: number | string;\n crossOrigin?: HTMLCrossOrigin;\n elementTiming?: string;\n fetchPriority?: \"high\" | \"low\" | \"auto\";\n }\n interface InputHTMLAttributes<T> extends HTMLAttributes<T> {\n accept?: string;\n alt?: string;\n autofocus?: boolean;\n capture?: boolean | string;\n checked?: boolean;\n disabled?: boolean;\n enterKeyHint?: \"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\";\n form?: string;\n height?: number | string;\n incremental?: boolean;\n list?: string;\n max?: number | string;\n min?: number | string;\n multiple?: boolean;\n name?: string;\n pattern?: string;\n placeholder?: string;\n readOnly?: boolean;\n results?: number;\n required?: boolean;\n size?: number | string;\n src?: string;\n step?: number | string;\n type?: string;\n value?: string | number;\n defaultValue?: string | number;\n width?: number | string;\n formAction?: string;\n formEnctype?: HTMLFormEncType;\n formMethod?: HTMLFormMethod;\n formNoValidate?: boolean;\n formTarget?: string;\n maxLength?: number | string;\n minLength?: number | string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/invalid_event) */\n onInvalid?: EventHandlerUnion<T, Event>;\n /**\n * Fires when the current selection changes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select_event)\n */\n onSelect?: EventHandlerUnion<T, UIEvent>;\n }\n interface InsHTMLAttributes<T> extends HTMLAttributes<T> {\n cite?: string;\n dateTime?: string;\n }\n interface LabelHTMLAttributes<T> extends HTMLAttributes<T> {\n htmlFor?: string;\n form?: string;\n }\n interface LiHTMLAttributes<T> extends HTMLAttributes<T> {\n value?: number | string;\n }\n interface LinkHTMLAttributes<T> extends HTMLAttributes<T> {\n as?: HTMLLinkAs;\n disabled?: boolean;\n fetchPriority?: \"high\" | \"low\" | \"auto\";\n href?: string;\n hreflang?: string;\n imageSizes?: string;\n imageSrcset?: string;\n integrity?: string;\n media?: string;\n rel?: string;\n sizes?: string;\n type?: string;\n crossOrigin?: HTMLCrossOrigin;\n referrerPolicy?: HTMLReferrerPolicy;\n }\n interface MapHTMLAttributes<T> extends HTMLAttributes<T> {\n name?: string;\n }\n interface MathMLAttributes<T = HTMLMathElement> extends HTMLAttributes<T> {\n dir?: \"ltr\" | \"rtl\" | undefined;\n /**\n * HTML attributes in foreign elements are case-sensitive\n */\n displaystyle?: boolean | undefined;\n nonce?: string | undefined;\n /**\n * HTML attributes in foreign elements are case-sensitive\n */\n scriptlevel?: boolean | string | undefined;\n }\n interface HTMLMathElement extends MathMLElement {\n display?: \"block\" | \"inline\" | undefined;\n }\n interface MediaHTMLAttributes<T> extends HTMLAttributes<T> {\n autoplay?: boolean;\n controls?: boolean;\n loop?: boolean;\n muted?: boolean;\n preload?: \"none\" | \"metadata\" | \"auto\" | \"\";\n src?: string;\n crossOrigin?: HTMLCrossOrigin;\n /**\n * Fires when the user aborts the download.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/abort_event)\n */\n onAbort?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when playback is possible, but would require further buffering.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplay_event)\n */\n onCanPlay?: EventHandlerUnion<T, Event>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplaythrough_event) */\n onCanPlayThrough?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when the duration attribute is updated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/durationchange_event)\n */\n onDurationChange?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when the media element is reset to its initial state.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/emptied_event)\n */\n onEmptied?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when media data is loaded at the current playback position.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadeddata_event)\n */\n onLoadedData?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when the duration and dimensions of the media have been determined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadedmetadata_event)\n */\n onLoadedMetadata?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when Internet Explorer begins looking for media data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadstart_event)\n */\n onLoadStart?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when playback is paused.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause_event)\n */\n onPause?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when the play method is requested.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play_event)\n */\n onPlay?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when the audio or video has started playing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playing_event)\n */\n onPlaying?: EventHandlerUnion<T, Event>;\n /**\n * Occurs to indicate progress while downloading media data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/progress_event)\n */\n onProgress?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when the playback rate is increased or decreased.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ratechange_event)\n */\n onRateChange?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when the seek operation ends.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeked_event)\n */\n onSeeked?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when the current playback position is moved.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking_event)\n */\n onSeeking?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when the download has stopped.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/stalled_event)\n */\n onStalled?: EventHandlerUnion<T, Event>;\n /**\n * Occurs if the load operation has been intentionally halted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/suspend_event)\n */\n onSuspend?: EventHandlerUnion<T, Event>;\n /**\n * Occurs to indicate the current playback position.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/timeupdate_event)\n */\n onTimeUpdate?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when the volume is changed, or playback is muted or unmuted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volumechange_event)\n */\n onVolumeChange?: EventHandlerUnion<T, Event>;\n /**\n * Occurs when playback stops because the next frame of a video resource is not available.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waiting_event)\n */\n onWaiting?: EventHandlerUnion<T, Event>;\n }\n interface MenuHTMLAttributes<T> extends HTMLAttributes<T> {\n label?: string;\n type?: \"context\" | \"toolbar\";\n }\n interface MetaHTMLAttributes<T> extends HTMLAttributes<T> {\n charset?: string;\n content?: string;\n httpEquiv?: string;\n name?: string;\n media?: string;\n }\n interface MeterHTMLAttributes<T> extends HTMLAttributes<T> {\n form?: string;\n high?: number | string;\n low?: number | string;\n max?: number | string;\n min?: number | string;\n optimum?: number | string;\n value?: string | number;\n }\n interface QuoteHTMLAttributes<T> extends HTMLAttributes<T> {\n cite?: string;\n }\n interface ObjectHTMLAttributes<T> extends HTMLAttributes<T> {\n data?: string;\n form?: string;\n height?: number | string;\n name?: string;\n type?: string;\n width?: number | string;\n useMap?: string;\n }\n interface OlHTMLAttributes<T> extends HTMLAttributes<T> {\n reversed?: boolean;\n start?: number | string;\n type?: \"1\" | \"a\" | \"A\" | \"i\" | \"I\";\n }\n interface OptgroupHTMLAttributes<T> extends HTMLAttributes<T> {\n disabled?: boolean;\n label?: string;\n }\n interface OptionHTMLAttributes<T> extends HTMLAttributes<T> {\n disabled?: boolean;\n label?: string;\n selected?: boolean;\n value?: string | number;\n }\n interface OutputHTMLAttributes<T> extends HTMLAttributes<T> {\n form?: string;\n for?: string;\n name?: string;\n }\n interface ProgressHTMLAttributes<T> extends HTMLAttributes<T> {\n max?: number | string;\n value?: string | number;\n }\n interface ScriptHTMLAttributes<T> extends HTMLAttributes<T> {\n async?: boolean;\n charset?: string;\n defer?: boolean;\n integrity?: string;\n nonce?: string;\n src?: string;\n type?: string;\n crossOrigin?: HTMLCrossOrigin;\n noModule?: boolean;\n referrerPolicy?: HTMLReferrerPolicy;\n }\n interface SelectHTMLAttributes<T> extends HTMLAttributes<T> {\n autofocus?: boolean;\n disabled?: boolean;\n form?: string;\n multiple?: boolean;\n name?: string;\n required?: boolean;\n size?: number | string;\n value?: string | number;\n }\n interface SlotHTMLAttributes<T = HTMLSlotElement> extends HTMLAttributes<T> {\n name?: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/slotchange_event) */\n onSlotChange?: EventHandlerUnion<T, Event>;\n }\n interface SourceHTMLAttributes<T> extends HTMLAttributes<T> {\n media?: string;\n sizes?: string;\n src?: string;\n srcset?: string;\n type?: string;\n }\n interface StyleHTMLAttributes<T> extends HTMLAttributes<T> {\n media?: string;\n nonce?: string;\n scoped?: boolean;\n type?: string;\n }\n interface TdHTMLAttributes<T> extends HTMLAttributes<T> {\n headers?: string;\n colSpan?: number | string;\n rowSpan?: number | string;\n }\n interface TemplateHTMLAttributes<T extends HTMLTemplateElement> extends HTMLAttributes<T> {\n content?: DocumentFragment;\n }\n interface TextareaHTMLAttributes<T> extends HTMLAttributes<T> {\n children?: \"Error: Use value property instead. See https://lit.dev/docs/templates/expressions/#invalid-locations\";\n autofocus?: boolean;\n cols?: number | string;\n dirname?: string;\n disabled?: boolean;\n enterKeyHint?: \"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\";\n form?: string;\n name?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n rows?: number | string;\n value?: string | number;\n wrap?: \"hard\" | \"soft\" | \"off\";\n maxLength?: number | string;\n minLength?: number | string;\n }\n interface ThHTMLAttributes<T> extends HTMLAttributes<T> {\n headers?: string;\n colSpan?: number | string;\n rowSpan?: number | string;\n scope?: \"col\" | \"row\" | \"rowgroup\" | \"colgroup\";\n }\n interface TimeHTMLAttributes<T> extends HTMLAttributes<T> {\n dateTime?: string;\n }\n interface TrackHTMLAttributes<T> extends HTMLAttributes<T> {\n default?: boolean;\n kind?: \"subtitles\" | \"captions\" | \"descriptions\" | \"chapters\" | \"metadata\";\n label?: string;\n src?: string;\n srclang?: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/cuechange_event) */\n onCueChange?: EventHandlerUnion<T, Event>;\n }\n interface VideoHTMLAttributes<T> extends MediaHTMLAttributes<T> {\n height?: number | string;\n playsInline?: boolean;\n poster?: string;\n width?: number | string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/resize_event) */\n onResize?: EventHandlerUnion<T, UIEvent>;\n }\n type SVGPreserveAspectRatio =\n | \"none\"\n | \"xMinYMin\"\n | \"xMidYMin\"\n | \"xMaxYMin\"\n | \"xMinYMid\"\n | \"xMidYMid\"\n | \"xMaxYMid\"\n | \"xMinYMax\"\n | \"xMidYMax\"\n | \"xMaxYMax\"\n | \"xMinYMin meet\"\n | \"xMidYMin meet\"\n | \"xMaxYMin meet\"\n | \"xMinYMid meet\"\n | \"xMidYMid meet\"\n | \"xMaxYMid meet\"\n | \"xMinYMax meet\"\n | \"xMidYMax meet\"\n | \"xMaxYMax meet\"\n | \"xMinYMin slice\"\n | \"xMidYMin slice\"\n | \"xMaxYMin slice\"\n | \"xMinYMid slice\"\n | \"xMidYMid slice\"\n | \"xMaxYMid slice\"\n | \"xMinYMax slice\"\n | \"xMidYMax slice\"\n | \"xMaxYMax slice\";\n type ImagePreserveAspectRatio =\n | SVGPreserveAspectRatio\n | \"defer none\"\n | \"defer xMinYMin\"\n | \"defer xMidYMin\"\n | \"defer xMaxYMin\"\n | \"defer xMinYMid\"\n | \"defer xMidYMid\"\n | \"defer xMaxYMid\"\n | \"defer xMinYMax\"\n | \"defer xMidYMax\"\n | \"defer xMaxYMax\"\n | \"defer xMinYMin meet\"\n | \"defer xMidYMin meet\"\n | \"defer xMaxYMin meet\"\n | \"defer xMinYMid meet\"\n | \"defer xMidYMid meet\"\n | \"defer xMaxYMid meet\"\n | \"defer xMinYMax meet\"\n | \"defer xMidYMax meet\"\n | \"defer xMaxYMax meet\"\n | \"defer xMinYMin slice\"\n | \"defer xMidYMin slice\"\n | \"defer xMaxYMin slice\"\n | \"defer xMinYMid slice\"\n | \"defer xMidYMid slice\"\n | \"defer xMaxYMid slice\"\n | \"defer xMinYMax slice\"\n | \"defer xMidYMax slice\"\n | \"defer xMaxYMax slice\";\n type SVGUnits = \"userSpaceOnUse\" | \"objectBoundingBox\";\n interface CoreSVGAttributes<T> extends AriaAttributes, DOMAttributes<T> {\n id?: string;\n lang?: string;\n tabIndex?: number | string;\n }\n interface StylableSVGAttributes {\n class?: string | ClassInfo | DirectiveResult<typeof ClassMapDirective>;\n style?: CssProperties | string | DirectiveResult<typeof StyleMapDirective>;\n }\n interface TransformableSVGAttributes {\n transform?: string | undefined;\n }\n interface ConditionalProcessingSVGAttributes {\n requiredExtensions?: string;\n requiredFeatures?: string;\n systemLanguage?: string;\n }\n interface ExternalResourceSVGAttributes {\n externalResourcesRequired?: boolean | \"true\" | \"false\";\n }\n interface AnimationTimingSVGAttributes {\n begin?: string | undefined;\n dur?: string | undefined;\n end?: string | undefined;\n min?: string | undefined;\n max?: string | undefined;\n restart?: \"always\" | \"whenNotActive\" | \"never\" | undefined;\n repeatCount?: number | \"indefinite\" | undefined;\n repeatDur?: string | undefined;\n fill?: \"freeze\" | \"remove\" | undefined;\n }\n interface AnimationValueSVGAttributes {\n calcMode?: \"discrete\" | \"linear\" | \"paced\" | \"spline\" | undefined;\n values?: string | undefined;\n keyTimes?: string | undefined;\n keySplines?: string | undefined;\n from?: number | string | undefined;\n to?: number | string | undefined;\n by?: number | string | undefined;\n }\n interface AnimationAdditionSVGAttributes {\n attributeName?: string | undefined;\n additive?: \"replace\" | \"sum\" | undefined;\n accumulate?: \"none\" | \"sum\" | undefined;\n }\n interface AnimationAttributeTargetSVGAttributes {\n attributeName?: string | undefined;\n attributeType?: \"CSS\" | \"XML\" | \"auto\" | undefined;\n }\n interface PresentationSVGAttributes {\n \"alignment-baseline\"?:\n | \"auto\"\n | \"baseline\"\n | \"before-edge\"\n | \"text-before-edge\"\n | \"middle\"\n | \"central\"\n | \"after-edge\"\n | \"text-after-edge\"\n | \"ideographic\"\n | \"alphabetic\"\n | \"hanging\"\n | \"mathematical\"\n | \"inherit\";\n \"baseline-shift\"?: number | string;\n \"clip\"?: string;\n \"clip-path\"?: string;\n \"clip-rule\"?: \"nonzero\" | \"evenodd\" | \"inherit\";\n \"color\"?: string;\n \"color-interpolation\"?: \"auto\" | \"sRGB\" | \"linearRGB\" | \"inherit\";\n \"color-interpolation-filters\"?: \"auto\" | \"sRGB\" | \"linearRGB\" | \"inherit\";\n \"color-profile\"?: string;\n \"color-rendering\"?: \"auto\" | \"optimizeSpeed\" | \"optimizeQuality\" | \"inherit\";\n \"cursor\"?: string;\n \"direction\"?: \"ltr\" | \"rtl\" | \"inherit\";\n \"display\"?: string;\n \"dominant-baseline\"?:\n | \"auto\"\n | \"text-bottom\"\n | \"alphabetic\"\n | \"ideographic\"\n | \"middle\"\n | \"central\"\n | \"mathematical\"\n | \"hanging\"\n | \"text-top\"\n | \"inherit\";\n \"enable-background\"?: string;\n \"fill\"?: string;\n \"fill-opacity\"?: number | string | \"inherit\";\n \"fill-rule\"?: \"nonzero\" | \"evenodd\" | \"inherit\";\n \"filter\"?: string;\n \"flood-color\"?: string;\n \"flood-opacity\"?: number | string | \"inherit\";\n \"font-family\"?: string;\n \"font-size\"?: string;\n \"font-size-adjust\"?: number | string;\n \"font-stretch\"?: string;\n \"font-style\"?: \"normal\" | \"italic\" | \"oblique\" | \"inherit\";\n \"font-variant\"?: string;\n \"font-weight\"?: number | string;\n \"glyph-orientation-horizontal\"?: string;\n \"glyph-orientation-vertical\"?: string;\n \"image-rendering\"?: \"auto\" | \"optimizeQuality\" | \"optimizeSpeed\" | \"inherit\";\n \"kerning\"?: string;\n \"letter-spacing\"?: number | string;\n \"lighting-color\"?: string;\n \"marker-end\"?: string;\n \"marker-mid\"?: string;\n \"marker-start\"?: string;\n \"mask\"?: string;\n \"opacity\"?: number | string | \"inherit\";\n \"overflow\"?: \"visible\" | \"hidden\" | \"scroll\" | \"auto\" | \"inherit\";\n \"pathLength\"?: string | number;\n \"pointer-events\"?:\n | \"bounding-box\"\n | \"visiblePainted\"\n | \"visibleFill\"\n | \"visibleStroke\"\n | \"visible\"\n | \"painted\"\n | \"color\"\n | \"fill\"\n | \"stroke\"\n | \"all\"\n | \"none\"\n | \"inherit\";\n \"shape-rendering\"?: \"auto\" | \"optimizeSpeed\" | \"crispEdges\" | \"geometricPrecision\" | \"inherit\";\n \"stop-color\"?: string;\n \"stop-opacity\"?: number | string | \"inherit\";\n \"stroke\"?: string;\n \"stroke-dasharray\"?: string;\n \"stroke-dashoffset\"?: number | string;\n \"stroke-linecap\"?: \"butt\" | \"round\" | \"square\" | \"inherit\";\n \"stroke-linejoin\"?: \"arcs\" | \"bevel\" | \"miter\" | \"miter-clip\" | \"round\" | \"inherit\";\n \"stroke-miterlimit\"?: number | string | \"inherit\";\n \"stroke-opacity\"?: number | string | \"inherit\";\n \"stroke-width\"?: number | string;\n \"text-anchor\"?: \"start\" | \"middle\" | \"end\" | \"inherit\";\n \"text-decoration\"?: \"none\" | \"underline\" | \"overline\" | \"line-through\" | \"blink\" | \"inherit\";\n \"text-rendering\"?: \"auto\" | \"optimizeSpeed\" | \"optimizeLegibility\" | \"geometricPrecision\" | \"inherit\";\n \"unicode-bidi\"?: string;\n \"visibility\"?: \"visible\" | \"hidden\" | \"collapse\" | \"inherit\";\n \"word-spacing\"?: number | string;\n \"writing-mode\"?: \"lr-tb\" | \"rl-tb\" | \"tb-rl\" | \"lr\" | \"rl\" | \"tb\" | \"inherit\";\n }\n interface AnimationElementSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n ExternalResourceSVGAttributes,\n ConditionalProcessingSVGAttributes {}\n interface ContainerElementSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n ShapeElementSVGAttributes<T>,\n Pick<\n PresentationSVGAttributes,\n | \"clip-path\"\n | \"mask\"\n | \"cursor\"\n | \"opacity\"\n | \"filter\"\n | \"enable-background\"\n | \"color-interpolation\"\n | \"color-rendering\"\n > {}\n interface FilterPrimitiveElementSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n Pick<PresentationSVGAttributes, \"color-interpolation-filters\"> {\n x?: number | string | undefined;\n y?: number | string | undefined;\n width?: number | string | undefined;\n height?: number | string | undefined;\n result?: string | undefined;\n }\n interface SingleInputFilterSVGAttributes {\n in?: string | undefined;\n }\n interface DoubleInputFilterSVGAttributes {\n in?: string | undefined;\n in2?: string | undefined;\n }\n interface FitToViewBoxSVGAttributes {\n viewBox?: string;\n preserveAspectRatio?: SVGPreserveAspectRatio;\n }\n interface GradientElementSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes {\n gradientUnits?: SVGUnits | undefined;\n gradientTransform?: string | undefined;\n spreadMethod?: \"pad\" | \"reflect\" | \"repeat\" | undefined;\n href?: string | undefined;\n }\n interface GraphicsElementSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n Pick<\n PresentationSVGAttributes,\n | \"clip-rule\"\n | \"mask\"\n | \"pointer-events\"\n | \"cursor\"\n | \"opacity\"\n | \"filter\"\n | \"display\"\n | \"visibility\"\n | \"color-interpolation\"\n | \"color-rendering\"\n > {}\n interface LightSourceElementSVGAttributes<T> extends CoreSVGAttributes<T> {}\n interface NewViewportSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n Pick<PresentationSVGAttributes, \"overflow\" | \"clip\"> {\n viewBox?: string;\n }\n interface ShapeElementSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n Pick<\n PresentationSVGAttributes,\n | \"color\"\n | \"fill\"\n | \"fill-rule\"\n | \"fill-opacity\"\n | \"stroke\"\n | \"stroke-width\"\n | \"stroke-linecap\"\n | \"stroke-linejoin\"\n | \"stroke-miterlimit\"\n | \"stroke-dasharray\"\n | \"stroke-dashoffset\"\n | \"stroke-opacity\"\n | \"shape-rendering\"\n | \"pathLength\"\n > {}\n interface TextContentElementSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n Pick<\n PresentationSVGAttributes,\n | \"font-family\"\n | \"font-style\"\n | \"font-variant\"\n | \"font-weight\"\n | \"font-stretch\"\n | \"font-size\"\n | \"font-size-adjust\"\n | \"kerning\"\n | \"letter-spacing\"\n | \"word-spacing\"\n | \"text-decoration\"\n | \"glyph-orientation-horizontal\"\n | \"glyph-orientation-vertical\"\n | \"direction\"\n | \"unicode-bidi\"\n | \"text-anchor\"\n | \"dominant-baseline\"\n | \"color\"\n | \"fill\"\n | \"fill-rule\"\n | \"fill-opacity\"\n | \"stroke\"\n | \"stroke-width\"\n | \"stroke-linecap\"\n | \"stroke-linejoin\"\n | \"stroke-miterlimit\"\n | \"stroke-dasharray\"\n | \"stroke-dashoffset\"\n | \"stroke-opacity\"\n > {}\n interface ZoomAndPanSVGAttributes {\n zoomAndPan?: \"disable\" | \"magnify\";\n }\n interface AnimateSVGAttributes<T>\n extends AnimationElementSVGAttributes<T>,\n AnimationAttributeTargetSVGAttributes,\n AnimationTimingSVGAttributes,\n AnimationValueSVGAttributes,\n AnimationAdditionSVGAttributes,\n Pick<PresentationSVGAttributes, \"color-interpolation\" | \"color-rendering\"> {}\n interface AnimateMotionSVGAttributes<T>\n extends AnimationElementSVGAttributes<T>,\n AnimationTimingSVGAttributes,\n AnimationValueSVGAttributes,\n AnimationAdditionSVGAttributes {\n path?: string | undefined;\n keyPoints?: string | undefined;\n rotate?: number | string | \"auto\" | \"auto-reverse\" | undefined;\n origin?: \"default\" | undefined;\n }\n interface AnimateTransformSVGAttributes<T>\n extends AnimationElementSVGAttributes<T>,\n AnimationAttributeTargetSVGAttributes,\n AnimationTimingSVGAttributes,\n AnimationValueSVGAttributes,\n AnimationAdditionSVGAttributes {\n type?: \"translate\" | \"scale\" | \"rotate\" | \"skewX\" | \"skewY\" | undefined;\n }\n interface CircleSVGAttributes<T>\n extends GraphicsElementSVGAttributes<T>,\n ShapeElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes {\n cx?: number | string | undefined;\n cy?: number | string | undefined;\n r?: number | string | undefined;\n }\n interface ClipPathSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes,\n Pick<PresentationSVGAttributes, \"clip-path\"> {\n clipPathUnits?: SVGUnits | undefined;\n }\n interface DefsSVGAttributes<T>\n extends ContainerElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes {}\n interface DescSVGAttributes<T> extends CoreSVGAttributes<T>, StylableSVGAttributes {}\n interface EllipseSVGAttributes<T>\n extends GraphicsElementSVGAttributes<T>,\n ShapeElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes {\n cx?: number | string | undefined;\n cy?: number | string | undefined;\n rx?: number | string | undefined;\n ry?: number | string | undefined;\n }\n interface FeBlendSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n DoubleInputFilterSVGAttributes,\n StylableSVGAttributes {\n mode?: \"normal\" | \"multiply\" | \"screen\" | \"darken\" | \"lighten\" | undefined;\n }\n interface FeColorMatrixSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n SingleInputFilterSVGAttributes,\n StylableSVGAttributes {\n type?: \"matrix\" | \"saturate\" | \"hueRotate\" | \"luminanceToAlpha\" | undefined;\n values?: string | undefined;\n }\n interface FeComponentTransferSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n SingleInputFilterSVGAttributes,\n StylableSVGAttributes {}\n interface FeCompositeSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n DoubleInputFilterSVGAttributes,\n StylableSVGAttributes {\n operator?: \"over\" | \"in\" | \"out\" | \"atop\" | \"xor\" | \"arithmetic\" | undefined;\n k1?: number | string | undefined;\n k2?: number | string | undefined;\n k3?: number | string | undefined;\n k4?: number | string | undefined;\n }\n interface FeConvolveMatrixSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n SingleInputFilterSVGAttributes,\n StylableSVGAttributes {\n order?: number | string | undefined;\n kernelMatrix?: string | undefined;\n divisor?: number | string | undefined;\n bias?: number | string | undefined;\n targetX?: number | string | undefined;\n targetY?: number | string | undefined;\n edgeMode?: \"duplicate\" | \"wrap\" | \"none\" | undefined;\n kernelUnitLength?: number | string | undefined;\n preserveAlpha?: boolean | \"true\" | \"false\" | undefined;\n }\n interface FeDiffuseLightingSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n SingleInputFilterSVGAttributes,\n StylableSVGAttributes,\n Pick<PresentationSVGAttributes, \"color\" | \"lighting-color\"> {\n surfaceScale?: number | string | undefined;\n diffuseConstant?: number | string | undefined;\n kernelUnitLength?: number | string | undefined;\n }\n interface FeDisplacementMapSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n DoubleInputFilterSVGAttributes,\n StylableSVGAttributes {\n scale?: number | string | undefined;\n xChannelSelector?: \"R\" | \"G\" | \"B\" | \"A\" | undefined;\n yChannelSelector?: \"R\" | \"G\" | \"B\" | \"A\" | undefined;\n }\n interface FeDistantLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {\n azimuth?: number | string | undefined;\n elevation?: number | string | undefined;\n }\n interface FeDropShadowSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n FilterPrimitiveElementSVGAttributes<T>,\n StylableSVGAttributes,\n Pick<PresentationSVGAttributes, \"color\" | \"flood-color\" | \"flood-opacity\"> {\n dx?: number | string | undefined;\n dy?: number | string | undefined;\n stdDeviation?: number | string | undefined;\n }\n interface FeFloodSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n StylableSVGAttributes,\n Pick<PresentationSVGAttributes, \"color\" | \"flood-color\" | \"flood-opacity\"> {}\n interface FeFuncSVGAttributes<T> extends CoreSVGAttributes<T> {\n type?: \"identity\" | \"table\" | \"discrete\" | \"linear\" | \"gamma\" | undefined;\n tableValues?: string | undefined;\n slope?: number | string | undefined;\n intercept?: number | string | undefined;\n amplitude?: number | string | undefined;\n exponent?: number | string | undefined;\n offset?: number | string | undefined;\n }\n interface FeGaussianBlurSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n SingleInputFilterSVGAttributes,\n StylableSVGAttributes {\n stdDeviation?: number | string | undefined;\n }\n interface FeImageSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes {\n preserveAspectRatio?: SVGPreserveAspectRatio | undefined;\n href?: string | undefined;\n }\n interface FeMergeSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, StylableSVGAttributes {}\n interface FeMergeNodeSVGAttributes<T> extends CoreSVGAttributes<T>, SingleInputFilterSVGAttributes {}\n interface FeMorphologySVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n SingleInputFilterSVGAttributes,\n StylableSVGAttributes {\n operator?: \"erode\" | \"dilate\" | undefined;\n radius?: number | string | undefined;\n }\n interface FeOffsetSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n SingleInputFilterSVGAttributes,\n StylableSVGAttributes {\n dx?: number | string | undefined;\n dy?: number | string | undefined;\n }\n interface FePointLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {\n x?: number | string | undefined;\n y?: number | string | undefined;\n z?: number | string | undefined;\n }\n interface FeSpecularLightingSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n SingleInputFilterSVGAttributes,\n StylableSVGAttributes,\n Pick<PresentationSVGAttributes, \"color\" | \"lighting-color\"> {\n surfaceScale?: string | undefined;\n specularConstant?: string | undefined;\n specularExponent?: string | undefined;\n kernelUnitLength?: number | string | undefined;\n }\n interface FeSpotLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {\n x?: number | string | undefined;\n y?: number | string | undefined;\n z?: number | string | undefined;\n pointsAtX?: number | string | undefined;\n pointsAtY?: number | string | undefined;\n pointsAtZ?: number | string | undefined;\n specularExponent?: number | string | undefined;\n limitingConeAngle?: number | string | undefined;\n }\n interface FeTileSVGAttributes<T>\n extends FilterPrimitiveElementSVGAttributes<T>,\n SingleInputFilterSVGAttributes,\n StylableSVGAttributes {}\n interface FeTurbulanceSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, StylableSVGAttributes {\n baseFrequency?: number | string | undefined;\n numOctaves?: number | string | undefined;\n seed?: number | string | undefined;\n stitchTiles?: \"stitch\" | \"noStitch\" | undefined;\n type?: \"fractalNoise\" | \"turbulence\" | undefined;\n }\n interface FilterSVGAttributes<T> extends CoreSVGAttributes<T>, ExternalResourceSVGAttributes, StylableSVGAttributes {\n filterUnits?: SVGUnits | undefined;\n primitiveUnits?: SVGUnits | undefined;\n x?: number | string | undefined;\n y?: number | string | undefined;\n width?: number | string | undefined;\n height?: number | string | undefined;\n filterRes?: number | string | undefined;\n }\n interface ForeignObjectSVGAttributes<T>\n extends NewViewportSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes,\n Pick<PresentationSVGAttributes, \"display\" | \"visibility\"> {\n x?: number | string | undefined;\n y?: number | string | undefined;\n width?: number | string | undefined;\n height?: number | string | undefined;\n }\n interface GSVGAttributes<T>\n extends ContainerElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes,\n Pick<PresentationSVGAttributes, \"display\" | \"visibility\"> {}\n interface ImageSVGAttributes<T>\n extends NewViewportSVGAttributes<T>,\n GraphicsElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes,\n Pick<PresentationSVGAttributes, \"color-profile\" | \"image-rendering\"> {\n x?: number | string | undefined;\n y?: number | string | undefined;\n width?: number | string | undefined;\n height?: number | string | undefined;\n preserveAspectRatio?: ImagePreserveAspectRatio | undefined;\n href?: string | undefined;\n }\n interface LineSVGAttributes<T>\n extends GraphicsElementSVGAttributes<T>,\n ShapeElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes,\n Pick<PresentationSVGAttributes, \"marker-start\" | \"marker-mid\" | \"marker-end\"> {\n x1?: number | string | undefined;\n y1?: number | string | undefined;\n x2?: number | string | undefined;\n y2?: number | string | undefined;\n }\n interface LinearGradientSVGAttributes<T> extends GradientElementSVGAttributes<T> {\n x1?: number | string | undefined;\n x2?: number | string | undefined;\n y1?: number | string | undefined;\n y2?: number | string | undefined;\n }\n interface MarkerSVGAttributes<T>\n extends ContainerElementSVGAttributes<T>,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n FitToViewBoxSVGAttributes,\n Pick<PresentationSVGAttributes, \"overflow\" | \"clip\"> {\n markerUnits?: \"strokeWidth\" | \"userSpaceOnUse\" | undefined;\n refX?: number | string | undefined;\n refY?: number | string | undefined;\n markerWidth?: number | string | undefined;\n markerHeight?: number | string | undefined;\n orient?: string | undefined;\n }\n interface MaskSVGAttributes<T>\n extends Omit<ContainerElementSVGAttributes<T>, \"opacity\" | \"filter\">,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes {\n maskUnits?: SVGUnits | undefined;\n maskContentUnits?: SVGUnits | undefined;\n x?: number | string | undefined;\n y?: number | string | undefined;\n width?: number | string | undefined;\n height?: number | string | undefined;\n }\n interface MetadataSVGAttributes<T> extends CoreSVGAttributes<T> {}\n interface MPathSVGAttributes<T> extends CoreSVGAttributes<T> {}\n interface PathSVGAttributes<T>\n extends GraphicsElementSVGAttributes<T>,\n ShapeElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes,\n Pick<PresentationSVGAttributes, \"marker-start\" | \"marker-mid\" | \"marker-end\"> {\n d?: string | undefined;\n pathLength?: number | string | undefined;\n }\n interface PatternSVGAttributes<T>\n extends ContainerElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n FitToViewBoxSVGAttributes,\n Pick<PresentationSVGAttributes, \"overflow\" | \"clip\"> {\n x?: number | string | undefined;\n y?: number | string | undefined;\n width?: number | string | undefined;\n height?: number | string | undefined;\n patternUnits?: SVGUnits | undefined;\n patternContentUnits?: SVGUnits | undefined;\n patternTransform?: string | undefined;\n href?: string | undefined;\n }\n interface PolygonSVGAttributes<T>\n extends GraphicsElementSVGAttributes<T>,\n ShapeElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes,\n Pick<PresentationSVGAttributes, \"marker-start\" | \"marker-mid\" | \"marker-end\"> {\n points?: string | undefined;\n }\n interface PolylineSVGAttributes<T>\n extends GraphicsElementSVGAttributes<T>,\n ShapeElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes,\n Pick<PresentationSVGAttributes, \"marker-start\" | \"marker-mid\" | \"marker-end\"> {\n points?: string | undefined;\n }\n interface RadialGradientSVGAttributes<T> extends GradientElementSVGAttributes<T> {\n cx?: number | string | undefined;\n cy?: number | string | undefined;\n r?: number | string | undefined;\n fx?: number | string | undefined;\n fy?: number | string | undefined;\n }\n interface RectSVGAttributes<T>\n extends GraphicsElementSVGAttributes<T>,\n ShapeElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes {\n x?: number | string | undefined;\n y?: number | string | undefined;\n width?: number | string | undefined;\n height?: number | string | undefined;\n rx?: number | string | undefined;\n ry?: number | string | undefined;\n }\n interface SetSVGAttributes<T> extends CoreSVGAttributes<T>, StylableSVGAttributes, AnimationTimingSVGAttributes {}\n interface StopSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n StylableSVGAttributes,\n Pick<PresentationSVGAttributes, \"color\" | \"stop-color\" | \"stop-opacity\"> {\n offset?: number | string | undefined;\n }\n interface SvgSVGAttributes<T>\n extends ContainerElementSVGAttributes<T>,\n NewViewportSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n FitToViewBoxSVGAttributes,\n ZoomAndPanSVGAttributes,\n PresentationSVGAttributes {\n version?: string;\n baseProfile?: string;\n x?: number | string;\n y?: number | string;\n width?: number | string;\n height?: number | string;\n contentScriptType?: string;\n contentStyleType?: string;\n xmlns?: string;\n /**\n * Fires immediately after the browser loads the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/load_event)\n */\n onLoad?: EventHandlerUnion<T, Event>;\n }\n interface SwitchSVGAttributes<T>\n extends ContainerElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes,\n Pick<PresentationSVGAttributes, \"display\" | \"visibility\"> {}\n interface SymbolSVGAttributes<T>\n extends ContainerElementSVGAttributes<T>,\n NewViewportSVGAttributes<T>,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n FitToViewBoxSVGAttributes {\n width?: number | string | undefined;\n height?: number | string | undefined;\n preserveAspectRatio?: SVGPreserveAspectRatio | undefined;\n refX?: number | string | undefined;\n refY?: number | string | undefined;\n viewBox?: string | undefined;\n x?: number | string | undefined;\n y?: number | string | undefined;\n }\n interface TextSVGAttributes<T>\n extends TextContentElementSVGAttributes<T>,\n GraphicsElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n TransformableSVGAttributes,\n Pick<PresentationSVGAttributes, \"writing-mode\" | \"text-rendering\"> {\n x?: number | string | undefined;\n y?: number | string | undefined;\n dx?: number | string | undefined;\n dy?: number | string | undefined;\n rotate?: number | string | undefined;\n textLength?: number | string | undefined;\n lengthAdjust?: \"spacing\" | \"spacingAndGlyphs\" | undefined;\n }\n interface TextPathSVGAttributes<T>\n extends TextContentElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n Pick<PresentationSVGAttributes, \"alignment-baseline\" | \"baseline-shift\" | \"display\" | \"visibility\"> {\n startOffset?: number | string | undefined;\n method?: \"align\" | \"stretch\" | undefined;\n spacing?: \"auto\" | \"exact\" | undefined;\n href?: string | undefined;\n }\n interface TSpanSVGAttributes<T>\n extends TextContentElementSVGAttributes<T>,\n ConditionalProcessingSVGAttributes,\n ExternalResourceSVGAttributes,\n StylableSVGAttributes,\n Pick<PresentationSVGAttributes, \"alignment-baseline\" | \"baseline-shift\" | \"display\" | \"visibility\"> {\n x?: number | string | undefined;\n y?: number | string | undefined;\n dx?: number | string | undefined;\n dy?: number | string | undefined;\n rotate?: number | string | undefined;\n textLength?: number | string | undefined;\n lengthAdjust?: \"spacing\" | \"spacingAndGlyphs\" | undefined;\n }\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use\n */\n interface UseSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n StylableSVGAttributes,\n ConditionalProcessingSVGAttributes,\n GraphicsElementSVGAttributes<T>,\n PresentationSVGAttributes,\n ExternalResourceSVGAttributes,\n TransformableSVGAttributes {\n x?: number | string | undefined;\n y?: number | string | undefined;\n width?: number | string | undefined;\n height?: number | string | undefined;\n href?: string | undefined;\n }\n interface ViewSVGAttributes<T>\n extends CoreSVGAttributes<T>,\n ExternalResourceSVGAttributes,\n FitToViewBoxSVGAttributes,\n ZoomAndPanSVGAttributes {\n viewTarget?: string | undefined;\n }\n\n /**\n * A list of native HTML elements and their props.\n *\n * @see {HTMLElementTagNameMap}\n */\n export interface HTMLElementTags {\n a: AnchorHTMLAttributes<HTMLAnchorElement>;\n abbr: HTMLAttributes;\n address: HTMLAttributes;\n area: AreaHTMLAttributes<HTMLAreaElement>;\n article: HTMLAttributes;\n aside: HTMLAttributes;\n audio: AudioHTMLAttributes<HTMLAudioElement>;\n b: HTMLAttributes;\n base: BaseHTMLAttributes<HTMLBaseElement>;\n bdi: HTMLAttributes;\n bdo: HTMLAttributes;\n blockquote: BlockquoteHTMLAttributes<HTMLElement>;\n body: HTMLAttributes<HTMLBodyElement>;\n br: HTMLAttributes<HTMLBRElement>;\n button: ButtonHTMLAttributes<HTMLButtonElement>;\n canvas: CanvasHTMLAttributes<HTMLCanvasElement>;\n caption: HTMLAttributes;\n cite: HTMLAttributes;\n code: HTMLAttributes;\n col: ColHTMLAttributes<HTMLTableColElement>;\n colgroup: ColgroupHTMLAttributes<HTMLTableColElement>;\n data: DataHTMLAttributes<HTMLElement>;\n datalist: HTMLAttributes<HTMLDataListElement>;\n dd: HTMLAttributes;\n del: HTMLAttributes;\n details: DetailsHTMLAttributes<HTMLDetailsElement>;\n dfn: HTMLAttributes;\n dialog: DialogHTMLAttributes<HTMLDialogElement>;\n div: HTMLAttributes<HTMLDivElement>;\n dl: HTMLAttributes<HTMLDListElement>;\n dt: HTMLAttributes;\n em: HTMLAttributes;\n embed: EmbedHTMLAttributes<HTMLEmbedElement>;\n fieldset: FieldsetHTMLAttributes<HTMLFieldSetElement>;\n figcaption: HTMLAttributes;\n figure: HTMLAttributes;\n footer: HTMLAttributes;\n form: FormHTMLAttributes<HTMLFormElement>;\n h1: HTMLAttributes<HTMLHeadingElement>;\n h2: HTMLAttributes<HTMLHeadingElement>;\n h3: HTMLAttributes<HTMLHeadingElement>;\n h4: HTMLAttributes<HTMLHeadingElement>;\n h5: HTMLAttributes<HTMLHeadingElement>;\n h6: HTMLAttributes<HTMLHeadingElement>;\n head: HTMLAttributes<HTMLHeadElement>;\n header: HTMLAttributes;\n hgroup: HTMLAttributes;\n hr: HTMLAttributes<HTMLHRElement>;\n html: HTMLAttributes<HTMLHtmlElement>;\n i: HTMLAttributes;\n iframe: IframeHTMLAttributes<HTMLIFrameElement>;\n img: ImgHTMLAttributes<HTMLImageElement>;\n input: InputHTMLAttributes<HTMLInputElement>;\n ins: InsHTMLAttributes<HTMLModElement>;\n kbd: HTMLAttributes;\n label: LabelHTMLAttributes<HTMLLabelElement>;\n legend: HTMLAttributes<HTMLLegendElement>;\n li: LiHTMLAttributes<HTMLLIElement>;\n link: LinkHTMLAttributes<HTMLLinkElement>;\n main: HTMLAttributes;\n map: MapHTMLAttributes<HTMLMapElement>;\n math: MathMLAttributes;\n mark: HTMLAttributes;\n menu: MenuHTMLAttributes<HTMLElement>;\n meta: MetaHTMLAttributes<HTMLMetaElement>;\n meter: MeterHTMLAttributes<HTMLElement>;\n nav: HTMLAttributes;\n noscript: HTMLAttributes;\n object: ObjectHTMLAttributes<HTMLObjectElement>;\n ol: OlHTMLAttributes<HTMLOListElement>;\n optgroup: OptgroupHTMLAttributes<HTMLOptGroupElement>;\n option: OptionHTMLAttributes<HTMLOptionElement>;\n output: OutputHTMLAttributes<HTMLElement>;\n p: HTMLAttributes<HTMLParagraphElement>;\n picture: HTMLAttributes;\n pre: HTMLAttributes<HTMLPreElement>;\n progress: ProgressHTMLAttributes<HTMLProgressElement>;\n q: QuoteHTMLAttributes<HTMLQuoteElement>;\n rp: HTMLAttributes;\n rt: HTMLAttributes;\n ruby: HTMLAttributes;\n s: HTMLAttributes;\n samp: HTMLAttributes;\n script: ScriptHTMLAttributes<HTMLScriptElement>;\n search: HTMLAttributes;\n section: HTMLAttributes;\n select: SelectHTMLAttributes<HTMLSelectElement>;\n slot: SlotHTMLAttributes;\n small: HTMLAttributes;\n source: SourceHTMLAttributes<HTMLSourceElement>;\n span: HTMLAttributes<HTMLSpanElement>;\n strong: HTMLAttributes;\n /**\n * For use when you have a dynamic CSS string that needs to be added as a\n * style. If you have a static string, use Lit's \"styles\" property instead\n * for better performance.\n */\n style: StyleHTMLAttributes<HTMLStyleElement>;\n svg: SvgSVGAttributes<SVGSVGElement>;\n sub: HTMLAttributes;\n summary: HTMLAttributes;\n sup: HTMLAttributes;\n table: HTMLAttributes<HTMLTableElement>;\n tbody: HTMLAttributes<HTMLTableSectionElement>;\n td: TdHTMLAttributes<HTMLTableCellElement>;\n template: TemplateHTMLAttributes<HTMLTemplateElement>;\n textarea: TextareaHTMLAttributes<HTMLTextAreaElement>;\n tfoot: HTMLAttributes<HTMLTableSectionElement>;\n th: ThHTMLAttributes<HTMLTableCellElement>;\n thead: HTMLAttributes<HTMLTableSectionElement>;\n time: TimeHTMLAttributes<HTMLElement>;\n title: HTMLAttributes<HTMLTitleElement>;\n tr: HTMLAttributes<HTMLTableRowElement>;\n track: TrackHTMLAttributes<HTMLTrackElement>;\n u: HTMLAttributes;\n ul: HTMLAttributes<HTMLUListElement>;\n var: HTMLAttributes;\n video: VideoHTMLAttributes<HTMLVideoElement>;\n wbr: HTMLAttributes;\n }\n\n /**\n * A list of native SVG elements and their props.\n *\n * @type {SVGElementTagNameMap}\n */\n interface SVGElementTags {\n animate: AnimateSVGAttributes<SVGAnimateElement>;\n animateMotion: AnimateMotionSVGAttributes<SVGAnimateMotionElement>;\n animateTransform: AnimateTransformSVGAttributes<SVGAnimateTransformElement>;\n circle: CircleSVGAttributes<SVGCircleElement>;\n clipPath: ClipPathSVGAttributes<SVGClipPathElement>;\n defs: DefsSVGAttributes<SVGDefsElement>;\n desc: DescSVGAttributes<SVGDescElement>;\n ellipse: EllipseSVGAttributes<SVGEllipseElement>;\n feBlend: FeBlendSVGAttributes<SVGFEBlendElement>;\n feColorMatrix: FeColorMatrixSVGAttributes<SVGFEColorMatrixElement>;\n feComponentTransfer: FeComponentTransferSVGAttributes<SVGFEComponentTransferElement>;\n feComposite: FeCompositeSVGAttributes<SVGFECompositeElement>;\n feConvolveMatrix: FeConvolveMatrixSVGAttributes<SVGFEConvolveMatrixElement>;\n feDiffuseLighting: FeDiffuseLightingSVGAttributes<SVGFEDiffuseLightingElement>;\n feDisplacementMap: FeDisplacementMapSVGAttributes<SVGFEDisplacementMapElement>;\n feDistantLight: FeDistantLightSVGAttributes<SVGFEDistantLightElement>;\n feDropShadow: FeDropShadowSVGAttributes<SVGFEDropShadowElement>;\n feFlood: FeFloodSVGAttributes<SVGFEFloodElement>;\n feFuncA: FeFuncSVGAttributes<SVGFEFuncAElement>;\n feFuncB: FeFuncSVGAttributes<SVGFEFuncBElement>;\n feFuncG: FeFuncSVGAttributes<SVGFEFuncGElement>;\n feFuncR: FeFuncSVGAttributes<SVGFEFuncRElement>;\n feGaussianBlur: FeGaussianBlurSVGAttributes<SVGFEGaussianBlurElement>;\n feImage: FeImageSVGAttributes<SVGFEImageElement>;\n feMerge: FeMergeSVGAttributes<SVGFEMergeElement>;\n feMergeNode: FeMergeNodeSVGAttributes<SVGFEMergeNodeElement>;\n feMorphology: FeMorphologySVGAttributes<SVGFEMorphologyElement>;\n feOffset: FeOffsetSVGAttributes<SVGFEOffsetElement>;\n fePointLight: FePointLightSVGAttributes<SVGFEPointLightElement>;\n feSpecularLighting: FeSpecularLightingSVGAttributes<SVGFESpecularLightingElement>;\n feSpotLight: FeSpotLightSVGAttributes<SVGFESpotLightElement>;\n feTile: FeTileSVGAttributes<SVGFETileElement>;\n feTurbulence: FeTurbulanceSVGAttributes<SVGFETurbulenceElement>;\n filter: FilterSVGAttributes<SVGFilterElement>;\n foreignObject: ForeignObjectSVGAttributes<SVGForeignObjectElement>;\n g: GSVGAttributes<SVGGElement>;\n image: ImageSVGAttributes<SVGImageElement>;\n line: LineSVGAttributes<SVGLineElement>;\n linearGradient: LinearGradientSVGAttributes<SVGLinearGradientElement>;\n marker: MarkerSVGAttributes<SVGMarkerElement>;\n mask: MaskSVGAttributes<SVGMaskElement>;\n metadata: MetadataSVGAttributes<SVGMetadataElement>;\n mpath: MPathSVGAttributes<SVGMPathElement>;\n path: PathSVGAttributes<SVGPathElement>;\n pattern: PatternSVGAttributes<SVGPatternElement>;\n polygon: PolygonSVGAttributes<SVGPolygonElement>;\n polyline: PolylineSVGAttributes<SVGPolylineElement>;\n radialGradient: RadialGradientSVGAttributes<SVGRadialGradientElement>;\n rect: RectSVGAttributes<SVGRectElement>;\n set: SetSVGAttributes<SVGSetElement>;\n stop: StopSVGAttributes<SVGStopElement>;\n svg: SvgSVGAttributes<SVGSVGElement>;\n switch: SwitchSVGAttributes<SVGSwitchElement>;\n symbol: SymbolSVGAttributes<SVGSymbolElement>;\n text: TextSVGAttributes<SVGTextElement>;\n textPath: TextPathSVGAttributes<SVGTextPathElement>;\n tspan: TSpanSVGAttributes<SVGTSpanElement>;\n use: UseSVGAttributes<SVGUseElement>;\n view: ViewSVGAttributes<SVGViewElement>;\n }\n}\n/* eslint-enable @typescript-eslint/no-redundant-type-constituents */\n/* eslint-enable @typescript-eslint/sort-type-constituents */\n","import type { Nil } from \"@arcgis/components-utils\";\nimport type { Properties as CssProperties } from \"csstype\";\nimport type { ClassInfo } from \"lit-html/directives/class-map.js\";\nimport { classMap } from \"lit-html/directives/class-map.js\";\nimport type { DirectiveResult } from \"lit/directive.js\";\nimport type { ClassMapDirective } from \"lit/directives/class-map.js\";\nimport type { StyleInfo, StyleMapDirective } from \"lit/directives/style-map.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\n\n/**\n * You likely won't have to import this directly. It will be added during\n * _JSX to lit-html_ conversion.\n *\n * @remarks\n * In JSX we allow both of the following:\n * ```tsx\n * const myString = \"foo\";\n * const myObject = { foo: true, bar: false };\n * render(<p class={myString} />);\n * render(<p class={myObject} />);\n * ```\n *\n * One of the above needs to call `classMap` directive, the other must not.\n *\n * To keep the build fast, and to guard against types being possibly incorrect,\n * we are not relying on the TypeScript type-checker to check if the provided\n * variable is a string or an object.\n * Instead, if the prop value is a object definition, variable reference,\n * ternary expression or etc, the `safeClassMap` will be called, which will\n * determine at runtime if directive should be called\n */\nexport const safeClassMap = (\n parameters: ClassInfo | Nil | string,\n): DirectiveResult<typeof ClassMapDirective> | Nil | string =>\n typeof parameters === \"object\" && parameters != null ? classMap(parameters) : parameters;\n\n/**\n * You likely won't have to import this directly. It will be added during\n * _JSX to lit-html_ conversion.\n *\n * @remarks\n * In JSX we allow both of the following:\n * ```tsx\n * const myString = \"font-size:'2px'\";\n * const myObject = { fontSize: \"2px\" };\n * render(<p style={myString} />);\n * render(<p style={myObject} />);\n * ```\n *\n * One of the above needs to call `styleMap` directive, the other must not.\n *\n * To keep the build fast, and to guard against types being possibly incorrect,\n * we are not relying on the TypeScript type-checker to check if the provided\n * variable is a string or an object.\n * Instead, if the prop value is a object definition, variable reference,\n * ternary expression or etc, the `safeStyleMap` will be called, which will\n * determine at runtime if directive should be called\n */\nexport const safeStyleMap = (\n parameters: CssProperties | Nil | string,\n): DirectiveResult<typeof StyleMapDirective> | Nil | string =>\n typeof parameters === \"object\" && parameters != null ? styleMap(parameters as Readonly<StyleInfo>) : parameters;\n","type Constructor<T> = new () => T;\n\n/**\n * Returns a proxy object for a custom element prototype.\n * The function that creates a React wrapper component for a custom element,\n * if rendered, will need the custom element prototype to define the React component properties.\n * Because the custom element may not yet be defined in global scope when\n * `createPrototypeProxy()` is called, this small proxy delays retrieving the custom\n * element prototype until it is actually needed, and caches the result for future calls.\n */\nexport function createPrototypeProxy<T extends HTMLElement>(tagName: string): new () => T {\n const customElement: { name: string; prototype: unknown } = {\n name: tagName,\n get prototype(): T {\n const customElementPrototype = customElements.get(tagName)?.prototype as T | undefined;\n\n // In development mode, tree-shaking may not have been enabled.\n // Requests to get the prototype of a custom element that is not defined could still be made.\n // In non development mode, throw an error if the custom element is not found.\n if (!customElementPrototype) {\n if (process.env.NODE_ENV === \"production\") {\n throw new Error(`Custom element \"${tagName}\" not found`);\n } else {\n return Object.create(HTMLElement.prototype) as T;\n }\n }\n\n Object.defineProperty(customElement, \"prototype\", customElementPrototype);\n return customElementPrototype;\n },\n };\n return customElement as Constructor<T>;\n}\n"],"mappings":"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","names":["property","LitConstructor","camelToKebab","property","Deferred","camelToKebab","Deferred","camelToKebab"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/stencil-ssr-compatibility/index.ts"],"sourcesContent":["/**\n * Lots of silencing of ESLint in this file to be compatible with Stencil's\n * unsafe typings.\n */\n\nimport { getWindow } from \"@lit-labs/ssr/lib/dom-shim.js\";\nimport { render, type RenderInfo } from \"@lit-labs/ssr/lib/render.js\";\nimport type { html as coreHtml } from \"lit-html\";\nimport { html } from \"@lit-labs/ssr/lib/server-template.js\";\nimport { unsafeStatic, withStatic } from \"lit/static-html.js\";\nimport { collectResult, type RenderResult } from \"@lit-labs/ssr/lib/render-result.js\";\nimport { RenderResultReadable } from \"@lit-labs/ssr/lib/render-result-readable.js\";\nimport type { Readable } from \"node:stream\";\n\nconst staticHtml = withStatic(html as typeof coreHtml);\n\ntype InternalWindow = {\n document: InternalDocument;\n};\n\ntype InternalDocument = {\n defaultView: InternalWindow;\n templateHtml: string;\n buildId: string;\n outerHtml?: string;\n documentElement?: {\n outerHTML: string;\n };\n};\n\n/**\n * @deprecated\n * Use `render` from `@lit-labs/ssr` instead.\n *\n * @see https://lit.dev/docs/ssr/server-usage/\n */\nexport interface HydrateResults {\n buildId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n diagnostics: any[];\n url: string;\n host: string;\n hostname: string;\n href: string;\n port: string;\n pathname: string;\n search: string;\n hash: string;\n html: string;\n components: HydrateComponent[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n anchors: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n imgs: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n scripts: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n styles: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n staticData: any[];\n title: string;\n hydratedCount: number;\n httpStatus: number;\n}\n\nexport interface HydrateComponent {\n tag: string;\n mode: string;\n count: number;\n depth: number;\n}\n\n/**\n * @deprecated\n * Use `getWindow` from `@lit-labs/ssr/lib/dom-shim` instead.\n *\n * @see https://lit.dev/docs/ssr/server-usage/\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function createWindowFromHtml(templateHtml: string, uniqueId: string = Math.random().toString()): any {\n const window = getWindow({ includeJSBuiltIns: true }) as InternalWindow;\n window.document.defaultView = window;\n window.document.templateHtml = templateHtml;\n window.document.buildId = uniqueId;\n return window;\n}\n\n/**\n * @deprecated\n * Use `RenderResultReadable` from `@lit-labs/ssr` instead.\n *\n * @see https://lit.dev/docs/ssr/server-usage/\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function streamToString(html: any, options?: Partial<RenderInfo>): Readable {\n const { result } = getRenderResult(html, options);\n return new RenderResultReadable(result);\n}\n\nfunction getRenderResult(\n rawSource: unknown,\n options?: Partial<RenderInfo>,\n): { result: RenderResult; tagNames: string[]; maybeDocument: Partial<InternalDocument> | undefined } {\n const maybeDocument =\n typeof rawSource === \"object\" && rawSource !== null\n ? \"document\" in rawSource\n ? (rawSource as InternalWindow).document\n : (rawSource as Partial<InternalDocument>)\n : undefined;\n const source =\n maybeDocument && \"templateHtml\" in maybeDocument\n ? maybeDocument.templateHtml\n : maybeDocument && \"documentElement\" in maybeDocument\n ? (maybeDocument.documentElement?.outerHTML ?? maybeDocument)\n : rawSource;\n const renderTemplate = typeof source === \"string\" ? staticHtml`${unsafeStatic(source)}` : source;\n const tagNames: string[] = [];\n const result = render(renderTemplate, {\n customElementRendered(tagName) {\n tagNames.push(tagName);\n },\n ...options,\n });\n\n return { result, maybeDocument, tagNames };\n}\n\n/**\n * @deprecated\n * Use `render` from `@lit-labs/ssr` instead.\n *\n * @see https://lit.dev/docs/ssr/server-usage/\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function renderToString(html: any, options?: Partial<RenderInfo>): Promise<HydrateResults>;\nexport function renderToString(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n html: any,\n options: Partial<RenderInfo> | undefined,\n asStream: true,\n): Readable;\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport function renderToString(\n html: unknown,\n options?: Partial<RenderInfo>,\n asStream = false,\n): Promise<HydrateResults> | Readable {\n if (asStream) {\n return streamToString(html, options);\n } else {\n return resultsToString(html, options);\n }\n}\n\nasync function resultsToString(html: unknown, options?: Partial<RenderInfo>): Promise<HydrateResults> {\n const { result, tagNames, maybeDocument } = getRenderResult(html, options);\n const collected = await collectResult(result);\n\n const renderResult: HydrateResults = {\n buildId: maybeDocument?.buildId ?? Math.random().toString(),\n diagnostics: [],\n url: globalThis?.location?.href ?? \"https://hydrate.stenciljs.com/\",\n host: globalThis?.location?.host ?? \"hydrate.stenciljs.com\",\n hostname: globalThis?.location?.hostname ?? \"hydrate.stenciljs.com\",\n href: globalThis?.location?.href ?? \"https://hydrate.stenciljs.com/\",\n port: globalThis?.location?.port ?? \"\",\n pathname: globalThis?.location?.pathname ?? \"/\",\n search: globalThis?.location?.search ?? \"\",\n hash: globalThis?.location?.hash ?? \"\",\n html: collected,\n httpStatus: 200,\n hydratedCount: tagNames.length,\n anchors: [],\n components: tagNames.map((tag) => ({\n tag,\n mode: \"$\",\n count: 1,\n depth: 1,\n })),\n imgs: [],\n scripts: [],\n staticData: [],\n styles: [],\n title: globalThis?.document?.title ?? \"Vite + TS\",\n };\n if (maybeDocument && \"templateHtml\" in maybeDocument) {\n maybeDocument.outerHtml = collected;\n }\n\n return renderResult;\n}\n\n/**\n * @deprecated\n * Use `render` from `@lit-labs/ssr` instead.\n *\n * @see https://lit.dev/docs/ssr/server-usage/\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function hydrateDocument(doc: any, options?: Partial<RenderInfo>): Promise<HydrateResults>;\nexport function hydrateDocument(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n doc: any,\n options: Partial<RenderInfo> | undefined,\n asStream: true,\n): Readable;\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport function hydrateDocument(\n doc: unknown,\n options?: Partial<RenderInfo>,\n asStream?: true,\n): Promise<HydrateResults> | Readable {\n return renderToString(doc, options, asStream!);\n}\n\n/**\n * @deprecated\n * Use `render` from `@lit-labs/ssr` instead.\n *\n * @see https://lit.dev/docs/ssr/server-usage/\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function serializeDocumentToString(doc: any, _unused?: unknown): string {\n const maybeDocument = doc as Partial<InternalDocument>;\n return maybeDocument.outerHtml ?? maybeDocument.templateHtml ?? String(maybeDocument);\n}\n"],"mappings":";AAKA,SAAS,iBAAiB;AAC1B,SAAS,cAA+B;AAExC,SAAS,YAAY;AACrB,SAAS,cAAc,kBAAkB;AACzC,SAAS,qBAAwC;AACjD,SAAS,4BAA4B;AAGrC,IAAM,aAAa,WAAW,IAAuB;AAiE9C,SAAS,qBAAqB,cAAsB,WAAmB,KAAK,OAAO,EAAE,SAAS,GAAQ;AAC3G,QAAM,SAAS,UAAU,EAAE,mBAAmB,KAAK,CAAC;AACpD,SAAO,SAAS,cAAc;AAC9B,SAAO,SAAS,eAAe;AAC/B,SAAO,SAAS,UAAU;AAC1B,SAAO;AACT;AASO,SAAS,eAAeA,OAAW,SAAyC;AACjF,QAAM,EAAE,OAAO,IAAI,gBAAgBA,OAAM,OAAO;AAChD,SAAO,IAAI,qBAAqB,MAAM;AACxC;AAEA,SAAS,gBACP,WACA,SACoG;AACpG,QAAM,gBACJ,OAAO,cAAc,YAAY,cAAc,OAC3C,cAAc,YACX,UAA6B,WAC7B,YACH;AACN,QAAM,SACJ,iBAAiB,kBAAkB,gBAC/B,cAAc,eACd,iBAAiB,qBAAqB,gBACnC,cAAc,iBAAiB,aAAa,gBAC7C;AACR,QAAM,iBAAiB,OAAO,WAAW,WAAW,aAAa,aAAa,MAAM,CAAC,KAAK;AAC1F,QAAM,WAAqB,CAAC;AAC5B,QAAM,SAAS,OAAO,gBAAgB;AAAA,IACpC,sBAAsB,SAAS;AAC7B,eAAS,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AAED,SAAO,EAAE,QAAQ,eAAe,SAAS;AAC3C;AAiBO,SAAS,eACdA,OACA,SACA,WAAW,OACyB;AACpC,MAAI,UAAU;AACZ,WAAO,eAAeA,OAAM,OAAO;AAAA,EACrC,OAAO;AACL,WAAO,gBAAgBA,OAAM,OAAO;AAAA,EACtC;AACF;AAEA,eAAe,gBAAgBA,OAAe,SAAwD;AACpG,QAAM,EAAE,QAAQ,UAAU,cAAc,IAAI,gBAAgBA,OAAM,OAAO;AACzE,QAAM,YAAY,MAAM,cAAc,MAAM;AAE5C,QAAM,eAA+B;AAAA,IACnC,SAAS,eAAe,WAAW,KAAK,OAAO,EAAE,SAAS;AAAA,IAC1D,aAAa,CAAC;AAAA,IACd,KAAK,YAAY,UAAU,QAAQ;AAAA,IACnC,MAAM,YAAY,UAAU,QAAQ;AAAA,IACpC,UAAU,YAAY,UAAU,YAAY;AAAA,IAC5C,MAAM,YAAY,UAAU,QAAQ;AAAA,IACpC,MAAM,YAAY,UAAU,QAAQ;AAAA,IACpC,UAAU,YAAY,UAAU,YAAY;AAAA,IAC5C,QAAQ,YAAY,UAAU,UAAU;AAAA,IACxC,MAAM,YAAY,UAAU,QAAQ;AAAA,IACpC,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,eAAe,SAAS;AAAA,IACxB,SAAS,CAAC;AAAA,IACV,YAAY,SAAS,IAAI,CAAC,SAAS;AAAA,MACjC;AAAA,MACA,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,IACT,EAAE;AAAA,IACF,MAAM,CAAC;AAAA,IACP,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,IACT,OAAO,YAAY,UAAU,SAAS;AAAA,EACxC;AACA,MAAI,iBAAiB,kBAAkB,eAAe;AACpD,kBAAc,YAAY;AAAA,EAC5B;AAEA,SAAO;AACT;AAiBO,SAAS,gBACd,KACA,SACA,UACoC;AACpC,SAAO,eAAe,KAAK,SAAS,QAAS;AAC/C;AASO,SAAS,0BAA0B,KAAU,SAA2B;AAC7E,QAAM,gBAAgB;AACtB,SAAO,cAAc,aAAa,cAAc,gBAAgB,OAAO,aAAa;AACtF;","names":["html"]}
@@ -0,0 +1 @@
1
+ export declare const litElementSymbol: unique symbol;
@@ -0,0 +1,38 @@
1
+ export {};
2
+
3
+ declare global {
4
+ /**
5
+ * This interface will be extended in each source file that defines a LitElement.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * declare global {
10
+ * interface DeclareElements {
11
+ * "arcgis-root": ArcgisRoot;
12
+ * }
13
+ * }
14
+ * ```
15
+ */
16
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
17
+ export interface DeclareElements {}
18
+
19
+ /**
20
+ * Extend this interface with Stencil web components that you wish to use
21
+ * in Lit
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import type { JSX as CalciteJSX } from "@esri/calcite-components/dist/types/components";
26
+ * import type { JSX as CommonComponentsJsx } from "@arcgis/common-components/dist/types/components";
27
+ *
28
+ * declare global {
29
+ * interface ImportStencilElements
30
+ * extends CalciteJSX.IntrinsicElements,
31
+ * CommonComponentsJsx.IntrinsicElements {
32
+ * }
33
+ * }
34
+ * ```
35
+ */
36
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
37
+ export interface ImportStencilElements {}
38
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Returns a mock custom element class that contains the prototype of the custom element and the tag name.
3
+ * The prototype is lazy loaded, so it will throw an error if the custom element is not found.
4
+ * This method is used by custom elements wrapper packages to get the prototype of the custom element.
5
+ *
6
+ * @param tagName - The tag name of the custom element
7
+ * @returns - a mock custom element class that contains the prototype of the custom element and the tag name
8
+ */
9
+ export declare function getMockCustomElement<T>(tagName: string): new () => T;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/lumina",
3
- "version": "4.31.0-next.150",
3
+ "version": "4.31.0-next.151",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -19,8 +19,8 @@
19
19
  ],
20
20
  "license": "SEE LICENSE IN LICENSE.md",
21
21
  "dependencies": {
22
- "@arcgis/components-controllers": "4.31.0-next.150",
23
- "@arcgis/components-utils": "4.31.0-next.150",
22
+ "@arcgis/components-controllers": "4.31.0-next.151",
23
+ "@arcgis/components-utils": "4.31.0-next.151",
24
24
  "@lit-labs/ssr": "^3.2.2",
25
25
  "@lit-labs/ssr-client": "^1.1.7",
26
26
  "csstype": "^3.1.3",